TheSimpsonsGameRecomp README

The project's README from github.com/YesterMester/TheSimpsonsGameRecomp. As one markdown file: README.md.

The Simpsons Game Recompiled

A native PC port of The Simpsons Game (Xbox 360, 2007) for Linux, Steam Deck and Windows, 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, 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 a Vulkan renderer on Linux and Direct3D 12 or Vulkan on Windows.

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

Download the latest release

Contents

Status

Platform Status
Linux (x86-64) Playable
Steam Deck Playable, and the main test platform
Windows (x86-64) Playable, less tested than Linux, mostly on Steam Deck hardware
Android Planned

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

Features

Requirements

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.

On Steam Deck, use Add to Steam in the launcher to play from Game 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.

Antivirus warnings. The Windows programs in the release are not code-signed, so Microsoft Defender and browsers such as Edge sometimes flag or block the download, occasionally with a generic detection like Trojan:Win32/Suschil!rfn. These are false positives: every release is built from this repository's source by the public GitHub Actions workflow in .github/workflows/release.yml. If your download is blocked, you can build the game yourself (see Building from source) or restore the file from Defender's protection history.

Configuration

Most settings are in the launcher's Settings tab. 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.

Saves and the shader cache are stored in:

Linux Windows
~/.local/share/simpsons %LOCALAPPDATA%\simpsons

Frame rate. 60 is the default and the recommended setting. 30 matches the original console exactly. The game's frame scheduler cannot go above 60 FPS, so the 90 and 120 settings do not add frames; they make frame pacing less even. Menus and loading screens run at 30 FPS regardless, because the game runs their logic once per frame (menu_frame_rate in simpsons.toml, 0 turns this off).

Image quality. FXAA anti-aliasing is on by default for new installs and smooths the cel-shading outlines at little cost. A render scale of 2x or 3x supersamples the whole image, which gives the outlines their cleanest look. On a Steam Deck, 1x holds 60 FPS; 2x looks much sharper and runs at about 50 FPS in Springfield, the busiest area.

Known issues

Building from source

The game and the ReXGlue SDK are built together in one CMake project. Continuous integration uses exactly these steps; see .github/workflows/build.yml for the full list of Linux packages.

Linux

Requirements: Clang 20, CMake 3.25 or newer, Ninja, pkg-config, and the development packages for GTK 3, Vulkan, X11 and XCB, Wayland, xkbcommon, udev, ALSA, PulseAudio and PipeWire.

git clone https://github.com/YesterMester/TheSimpsonsGameRecomp.git
cd TheSimpsonsGameRecomp/simpsons
cmake --preset linux-amd64-relwithdebinfo \
      -DREXSDK_DIR="$PWD/../tools/rexglue-sdk" \
      "-DCMAKE_C_FLAGS=-march=x86-64-v3" "-DCMAKE_CXX_FLAGS=-march=x86-64-v3"
cmake --build --preset linux-amd64-relwithdebinfo --target simpsons
cd ..

# ISO extraction tool used by the launcher's installer
cmake -S tools/extract-xiso -B tools/extract-xiso/build -G Ninja -DCMAKE_C_COMPILER=clang
cmake --build tools/extract-xiso/build

# Install your game and play
launcher/simpsons-launcher.sh

The Linux preset calls the compiler clang-20. If your distribution names it clang, add -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ to the first cmake command.

Windows

Requirements: LLVM/Clang 20, Visual Studio Build Tools with the "Desktop development with C++" workload (for the Windows SDK and linker), CMake 3.25 or newer, Ninja and Python 3.

git clone https://github.com/YesterMester/TheSimpsonsGameRecomp.git
cd TheSimpsonsGameRecomp\simpsons
cmake --preset win-amd64-relwithdebinfo `
      -DREXSDK_DIR="$PWD/../tools/rexglue-sdk" `
      "-DCMAKE_C_FLAGS=-march=x86-64-v3" "-DCMAKE_CXX_FLAGS=-march=x86-64-v3"
cmake --build --preset win-amd64-relwithdebinfo --target simpsons
cd ..

# ISO extraction tool (WIN32 must be defined for the bundled getopt)
cmake -S tools/extract-xiso -B tools/extract-xiso/build -G Ninja `
      -DCMAKE_C_COMPILER=clang "-DCMAKE_C_FLAGS=-DWIN32"
cmake --build tools/extract-xiso/build

# Install your game and play
pip install PySide6
python launcher\launcher.py

Windows builds include both the Direct3D 12 and Vulkan renderers; the launcher's settings choose between them. Without PySide6 the launcher opens in your web browser instead of its own window.

Contributing

Contributions are welcome, from bug reports to fixes and new features.

Before you start

Pull requests

By submitting a pull request, you agree that your contribution is licensed under the license of the part of the project it changes (see License).

Reporting bugs

Before opening an issue, check the known issues and the existing issues. When you open one, include:

Project layout

launcher/            Launcher and installer (Python, with a Qt WebEngine interface)
simpsons/            The game project: recompiled code (generated/), hand-written hooks (src/)
simpsons/re/         Notes on the game's internals
tools/rexglue-sdk/   ReXGlue runtime: kernel, audio, input and graphics layers
tools/XenonRecomp/   PowerPC to C++ static recompiler
tools/extract-xiso/  Xbox ISO extraction, used by the launcher's installer
tools/bench/         Unattended test and benchmark tooling
.github/workflows/   Build check on every push and pull request; manual release packaging

Not in the repository: game data, prebuilt toolchains (tools/clang20, tools/rexglue-bin) and build output.

Roadmap

The goal is for this to be the best way to play the game. In rough order:

The Simpsons Game is © 2007 Electronic Arts Inc. The Simpsons and all related characters and trademarks belong to their respective owners. Xbox and Xbox 360 are trademarks of Microsoft Corporation.

This is an unofficial, non-commercial fan project. It is not affiliated with, endorsed by or sponsored by Electronic Arts, Fox, Microsoft or any other rights holder.

This repository and its releases contain no game assets: no textures, models, audio, video, scripts or level data. The code in simpsons/generated is produced by recompiling the game's executable code and does not contain the game's data. The game runs only with data installed from an ISO of your own copy, and nothing from your installation is uploaded anywhere.

Please support the original release. Do not use this project with copies of the game you do not own, and do not ask for or share game files in this repository's issues or discussions. You are responsible for complying with the laws that apply to you regarding backups of media you own.

This software is provided as is, without warranty of any kind.

A note on AI assistance: parts of this project, including research into the game's internals, build tooling and bug fixes, have been developed with the assistance of Claude AI, in the interest of getting a working release out and turning around fixes as quickly as possible for a solo, fan-made effort. Treat it as a fast-moving hobby project rather than a polished commercial release.

License

The project's own code (the launcher, the hand-written game code and the tooling) is licensed under the GNU General Public License v3.0. The ReXGlue SDK in tools/rexglue-sdk is under the BSD 3-Clause License, as is the Xenia code it derives from. XenonRecomp in tools/XenonRecomp is under the MIT License. Third-party libraries keep their own licenses; see tools/rexglue-sdk/thirdparty.

Credits

TheSimpsonsGameRecomp (YesterMester/TheSimpsonsGameRecomp)

Searching Database…

这是什么?这是 The Simpsons Game(Xbox 360,2007 年)的原生 PC 移植版,做法是把原始的 PowerPC 可执行文件静态重编译为面向 x86-64 的 C++,让游戏自己的代码直接跑在 CPU 上,而不是在模拟器里运行。
这是模拟器,还是另一种形式的移植?它是静态重编译移植,而不是传统模拟器:Xbox 360 的 PowerPC 代码被提前转换为原生 x86-64 C++,而 ReXGlue 运行时(衍生自 Xenia)只提供内核、音频、输入和图形层。
怎么让游戏跑起来?下载适合你平台的发布压缩包并解压,然后在 Linux/Steam Deck 上运行 Play.sh,或在 Windows 上运行 simpsons-launcher.exe;在启动器的 Install 标签页里指向你的 Xbox 360 ISO 并按下 Play。
用它需要拥有这份游戏吗?需要,你要自备一份 Xbox 360 ISO 形式的 The Simpsons Game(主要针对美版);该项目本身完全不附带任何游戏内容。
有已知问题或硬件上的坑吗?标准构建需要支持 AVX2 的 CPU(大约 2013 年起),否则就得改用较慢的 -NoAVX2 包;某些脚本演出在 60 FPS 下会出问题(例如“Lisa the Tree Hugger”水坝段落里的随机死亡),而且在 Windows 上若不切换到 Vulkan 后端,视频可能黑屏。
现在哪些平台真正可以玩?Linux 和 Steam Deck 可以玩,其中 Steam Deck 是主要测试平台;Windows 可以玩但测试较少,Android 移植仅在计划中。
为什么杀毒软件有时会报 Windows 下载有毒?发布的文件没有做代码签名,所以 Defender 和 Edge 可能出现误报,例如“Trojan:Win32/Suschil!rfn”;实际上每个发布版本都是通过公开的 GitHub Actions 发布工作流直接从本仓库源码构建的。
路线图上有什么?包括:用完全原生的渲染器取代目前的 Xbox 360 GPU 命令流翻译、稳定 60 FPS 且无着色器编译卡顿、宽屏支持、像样的键盘/鼠标操作、匹配的手柄按键提示、修复错误、恢复未使用的内容、mod 支持,以及最终的 Android 移植。
使用它在法律上有风险吗?它的定位是一个非官方、非商业的粉丝项目,不附带任何游戏素材——游戏只有配合你从自己的 ISO 安装的数据才能运行,而且你安装中的任何内容都不会被上传到任何地方。
Size
131.3 MB
Stars
362
Age
3mo
Commits · 90 Days