The Simpsons Game Recompiled

The Simpsons Game Recompiled is a community recomp of The Simpsons Arcade Game that runs on Windows and Linux.

README

The Simpsons Game Recompiled

A native port of The Simpsons Game (Xbox 360, 2007) for Linux, Steam Deck and Windows, with an Android ARM64 development preview, made by statically recompiling the original game code.

The game's PowerPC executable is translated ahead of time into C++ and compiled for x86-64 or Android ARM64, so the game's own code runs directly on your CPU rather than inside an emulator. Underneath it, the ReXGlue runtime, which is derived from the Xenia project, provides the Xbox 360 kernel, audio, input and graphics layers, with Vulkan on Linux and Android, and Vulkan, Direct3D 12 or an experimental Direct3D 11 renderer on Windows. Native graphics resources and API conversion are tracked separately in Native GPU progress.

This project does not include any game content. You need your own copy of the Xbox 360 game.

Download the latest release

Contents

Status

PlatformStatus
Linux (x86-64)Playable
Steam DeckPlayable, and the main test platform
Windows (x86-64)Playable, less tested than Linux, mostly on Steam Deck hardware
Android (ARM64)Development preview; tried on a Pixel 9 Pro so far

The game boots, plays its videos, saves and loads, and runs its levels. See Known issues for what still misbehaves.

0.0.7.0 adds native graphics-call conversion (native_gpu_calls, on by default), an Android preview, settings and player assignment in the game's own menus, two-player free roam in Springfield, cutscene skipping, mod packages and a separate desktop Modkit preview with translation tools. The debug menu also has experimental scene and character tools; NPC possession and full character ragdolls are unfinished. The release notes list everything, and the character-tool notes describe what those tools do today.

Features

  • Recompiled game code runs directly on x86-64, with an ARM64 build for Android. Desktop downloads include a NoAVX2 variant for older CPUs.
  • Vulkan on Linux and Windows, Direct3D 12 on Windows, and an experimental Direct3D 11 backend for Windows 10/11. Android uses Vulkan with device-dependent shader preparation.
  • Native vertex and index buffers, texture uploads, render targets, colour/depth/stencil resolves, surface transfers and native GPU API call conversion (native_gpu_calls, enabled by default) across the three desktop renderers. Retained versions protect queued draws from later writes. Supported GPU-owned and overlapping inputs stay on the GPU; guarded cases keep their existing path. See the renderer plan.
  • Ahead-of-time shader variants for matching desktop configurations, persistent driver caches, separate vertex/pixel program identities and correct invalidation when shader code changes.
  • 60 FPS gameplay by default, with 30, 90, 120, 144, 165, 240 and Unlimited choices. Menus keep their original logic cadence, physics uses fixed steps and videos keep their authored timing. Some campaign scripts still need higher-rate checks.
  • Settings inside the game's own main and pause menus, including live changes where supported. Mouse clicks and touch work on native menu rows, sliders, episode/movie browsers and maps.
  • Independent player assignments and font-based prompts for Xbox, PlayStation, Nintendo, Steam Deck and keyboard. Keyboard/mouse and a controller can share a two-player game.
  • Two-player split-screen free roam in Springfield, using the game's own co-op players and cameras. Episode and time-trial player limits remain as authored.
  • Render scaling, texture filtering, FXAA, CAS sharpening and FSR1 image scaling. Free camera, photo mode, zoom, HUD hiding, ink-outline controls and cleaner character eyes are included. Character tessellation and colour grading are optional Vulkan features.
  • Native audio scheduling, mixer/decoder lifetime fixes and improved recovery under CPU load. Android folds centre-channel dialogue into stereo for phone speakers and headphones.
  • Original save slots and checkpoints, local backups and all 44 Xbox 360 achievements, including recognition of progress from older saves. The save-library experiment is shelved.
  • A debug menu drawn in the game, with health, family characters, teleports, game speed, gravity, progress unlocks and a whole-game resource index. Spawning uses exact authored definitions and loaded sources. Unsupported or ambiguous assets fail without substituting a different NPC. Arbitrary NPC AI suspension and cross-rig animation playback are unfinished.
  • Animations & poses lists the controlled character's loaded clips by their authored names and checks that the selected clip belongs to that character before playback.
  • Experimental Spooner freecam editing of supported loaded entities: selection, movement, rotation, scale, cloning, replacement and reversible parking of existing map actors. Authored AI/scripts remain active; this is not a complete offline world editor.
  • An experimental NPC costume preview follows the controlled family character. It preserves the original family HUD and abilities; it does not possess an NPC's controller or attacks.
  • A preinstalled Experimental Knockdowns example (euphoria.ragdolls), disabled by default. Its whole-character root motion is a prototype and stays separate from the native work. The launcher adds it to the Mods tab once; if you remove it, it stays removed.
  • An opt-in native family ragdoll test is in Debug Menu → Ragdolls & knockdowns. It uses 13 physical bodies and 12 joints with separate passive limits, drives the actual skeleton, and restores animation and controls after two simulation seconds. Paused menus keep their controls, and recovery preserves any game-owned teleport. Linux checks cover collision handoff, movement blocking, repeated recovery and a level exit/reload. This is a passive test; NPC ragdolls, anatomical tuning, animated get-up and phone qualification are in progress. Known issue: the same physics froze the game when the other family member touched the fallen body; keep them apart while testing.
  • Development Quick launch level (dev) selection (quick_launch_level) uses a private gameflow override and advances the original front end automatically. It is intended for isolated Modkit Test profiles; it does not establish a native level-loader bypass.
  • A launcher for installation, settings, patches, mod packages, save backups, updates and support bundles. Linux packages include a native window and Steam Deck Gaming Mode support.
  • A separate Windows/Linux Modkit preview for Lua/C++ mods, scenes, missions, assets and translation packs. Android imports and manages mod packages.

Native GPU progress

The progress script measures recorded work at defined graphics boundaries. The snapshot below is the November 4 private Steam Deck/RADV Vulkan startup/title run: 1,079 frames at 1x with experimental native_gpu_calls enabled. It is not a whole-game completion percentage.

Draw command dispatch     ████████████████████   100%
Geometry source selection ████████████████████   100%
Texture upload commits    ████████████████████   100%
Host resolve requests     ████████████████████   100%
Shader command dispatch   ███████████████████░   99.89%
GPU synchronization       ███████████████████░   99.75%
Buffer submissions        ███████████████████░   <100%
Presentation commands     ████████████████████   100%
State and constants       ███████████████████░   99.55%
Queries                   ····················   not exercised
Other commands            ░░░░░░░░░░░░░░░░░░░░   0.00%
Host presentation         ███████████████████░   99.35%

The run records 3,367,526 native draw dispatches, no compatibility resource dependencies and no compatibility allocations. Eleven of twelve systems were exercised. Queries were not exercised; other executed commands still include retained markers. Seven startup host-refresh attempts had no refreshed output and remain counted. Buffer submissions also retain four attempts, so the script deliberately shows less than 100%.

Separate older generated geometry fixtures record 564 native draws and zero legacy draw packets for each of Vulkan, Direct3D 11 and Direct3D 12. Windows APIs ran through Proton on the Deck. Those reports lack the newer system counters, so their other percentages remain unknown. They are not combined with the title sample or treated as Windows/Android coverage.

The snapshot, input reports and reproduction commands keep the counts and hashes together. The measurement guide explains each denominator. Native graphics-call conversion (native_gpu_calls) is enabled by default in 0.0.7.0 and can be toggled in the Launcher or in-game Graphics settings; ordinary native resource paths also have their own settings. Remaining API contracts, campaign states and device checks are tracked in the conversion notes.

Modding and Modkit

The separate Modkit application opens with Modkit.sh on Linux or simpsons-modkit.exe on Windows. The game launcher handles play, settings and installed mod packages; the desktop editor handles authoring. Android only imports and manages packages. The kit is a preview: the full release gate is still open.

  • Create credited projects from commented Lua, native plugin, input, owned-object, scene, mission, combat, camera and file-replacement examples. Validate, Test and export ZIPs. Packages import disabled and keep creator/translator credit, dependencies and file hashes.
  • Use named Lua/C++ operations for players, transforms, health, cameras, native menu pages, events, simulation timers and saved mod state. Code reload prepares replacements in the background, preserves supported state/timers and rejects a failed replacement before commit.
  • Edit source in independent tabs with undo, revision-checked saves, Find/replace, Quick open, a command palette and built-in API/help pages. Code navigation links generated functions to reviewed system names, callers and public operations.
  • Test with separate progress and a real native game viewport on supported Windows/X11 systems. Direct level previews select installed standard map entries. Paused free-camera controls and geometry/actor visibility help inspect a scene without playing through it.
  • Search the game-wide resource library, use rotating model hover previews and inspect supported decoded geometry before Play. Live supported props can be dragged into the scene, moved, rotated, resized and removed with undo/redo and portable drafts. Offline mesh views show geometry; complete offline world editing, native materials and transform gizmos remain.
  • Author route missions with objectives, dependencies, time limits, failure and retry points. Scene and mission drafts can be applied together. Combat and camera workshops use the same native ownership services; broader AI, campaign HUD and cinematic sequencing remain.
  • Inspect native model parts, export supported geometry to OBJ and package bounded vertex, normal and UV edits. New topology, rigs, animation, collision and world import remain work.
  • Make translation packs without writing gameplay code: export source text, search and edit catalogs, validate placeholders/button tags, track untranslated lines and export a partial language pack with translator credit. Missing translations retain their fallback text. Complete Unicode font coverage and right-to-left layout still need work.

The Modkit guide, editor workflow, scene tools, mission tools and translation workflow cover the supported paths and limits. Browsing an asset does not mean every class can spawn with complete behavior. Native Windows drivers, Android devices and the remaining creator acceptance projects need separate checks.

Requirements

  • Your own copy of The Simpsons Game for Xbox 360, as an ISO image. The USA release (title ID 45410809) is the main target. The European release also boots and plays but has seen less testing.
  • About 5 GB of free disk space for the installed game data.
  • A 64-bit x86 CPU. The standard download needs AVX2 (Intel Haswell, AMD Excavator or Zen, or newer, roughly 2013 onwards). For older CPUs with SSE4.2, download the package ending in -NoAVX2 instead; it runs the same game, somewhat slower.
  • A GPU with a current Vulkan driver (Linux) or Direct3D 12 driver (Windows). The experimental Direct3D 11 renderer needs feature level 11.0 or newer.
  • A controller is recommended.

Installation

  1. Download the archive for your platform from the Releases page. Use the -NoAVX2 package if your CPU predates AVX2 (the standard package then fails to start, on Windows with error 0xc0000142).
  2. Extract it anywhere.
  3. Start the launcher:
    • Linux and Steam Deck: run Play.sh.
    • Windows: run simpsons-launcher.exe. It is a standalone program and does not need Python.
  4. In the Install tab, select your Xbox 360 ISO. The launcher extracts and installs the game data.
  5. Press Play.

Android (preview): on an ARM64 phone with Android 10 or newer and Vulkan 1.1, download TheSimpsonsGame-Recompiled-Android-arm64.apk from the release and open it, allowing installs from your browser or file manager when Android asks. The app installs the game from your ISO or an already extracted folder, and offers later releases itself.

On Steam Deck, use Add to Steam in the launcher from Desktop Mode, then find The Simpsons Game (Recompiled) under Steam's Non-Steam Games to play from Game Mode. If this installation is already registered, the button shows its existing Steam name instead of adding another copy. It reports command errors and keeps Steam running while it starts.

The 0.0.7.0 Linux launcher bundles its native window and opens fullscreen in Game Mode. Steam Linux Runtime 1.0 is supported. When Steam runs the shell launcher inside Runtime 2, it starts the native launcher alongside Steam, keeping the game's Steam identity and controller environment. Add to Steam uses a desktop entry for the game's name and donut icon, handles spaces and special characters in the installation path, and sends sandboxed requests to the same host as Steam. If Steam opens an Add a Game dialog, finish it in Desktop Mode.

To start the game without the launcher window, for example from your own Steam shortcut, run Play.sh --play on Linux or simpsons-launcher.exe --play on Windows. It uses the same settings as the launcher's Play button.

The launcher can update itself from the About tab. Updates replace only the engine and launcher files. Your settings, saves and mods are kept. If the installed package does not match your CPU, the launcher offers the right one.

Updating from 0.0.6.5 or earlier takes two steps. That launcher copies only the files its own version had, so after it finishes and you restart, the new launcher offers to finish the update and installs what 0.0.7.0 added: the mod runtime's description, the Modkit and, on Linux, the launcher's own window. Until then the game plays, but mods cannot be enabled. In Steam Deck Game Mode this second step runs by itself on the first start.

Windows ISO extractor. The 0.0.7.0 packaging uses the unchanged 41,472-byte Win64 Release build from XboxDev/extract-xiso, rather than rebuilding it with an embedded C runtime. Its download and executable hashes are pinned and checked before packaging. The launcher's installer supplies the required C runtime from a separate folder. extract-xiso-source.json records the upstream version, source and packaged file hashes; the upstream license is included under licenses/extract-xiso.

Antivirus warnings. The Windows programs are not code-signed. If security software flags a file, report the product, exact detection name and the file's SHA-256 so the actual binary can be checked. A public build or a smaller file does not by itself establish that a detection is a false positive. Microsoft provides a file review service for incorrectly detected software.

The Windows launcher build pins PyInstaller and compiles its bootloader from source, without using a cached wheel or falling back to the prebuilt bootloader. This does not replace checking the final release package with the antivirus that reported it.

On Windows laptops with integrated and dedicated graphics, the game executable requests the high performance GPU before the renderer starts. The graphics driver or Windows graphics preferences can override that request. Include the selected adapter from the game log when reporting poor laptop performance.

Configuration

Most settings are in the launcher's Settings tab, saved as soon as you change them. They are written to simpsons.toml next to the game executable, inside a block the launcher manages. Settings outside that block can be edited by hand. The launcher has a light and a dark theme; the button at its top right switches between them.

Click a settings heading to expand or collapse it; Enter and Space work too. Sections start collapsed and remember which ones you opened. Expand all and Collapse all also control the subsections. To change the debug menu's keyboard shortcut, open In-game shortcut keys and choose Change beside Debug menu (F2 by default).

Saves and the shader cache are stored in:

LinuxWindows
~/.local/share/simpsons%LOCALAPPDATA%\simpsons

Saves. The original four slots, checkpoint saves and save menus are used. The experimental save library and save-anywhere menu are shelved for now. Existing library files are kept in the data folder; this change does not delete saves or convert them over your original slots.

Achievements and the debug menu. Both are drawn in the game, once a save is loaded. While playing, hold RB and press Left on the D-pad for the debug menu; in the pause menu, press Y for the achievements and X for the debug menu. F5 and F2 open them on a keyboard, and both are under Options → Extras, which is also the way in with touch. The debug menu's top bar has a close button, and a back arrow on its inner pages. Achievements are kept in achievements.txt next to your save slots, so the launcher's save backups include them; achievement_notifications = false in simpsons.toml turns the unlock pop-ups off. Spawned things go when the level unloads; other debug menu changes last until the game restarts, except power upgrades and infinite power, which the game saves.

Cheats. The debug menu's god mode, teleports, characters, spawning, game speed, gravity and unlocks are cheats: they work once Cheats at the top of the debug menu is on, and `