PixelSorcery logo: a wizard casting sparkles before a castle

PixelSorcery

Sega Mega Drive / Genesis games rebuilt as native programs: decompiled, recompiled to C, and run on their own video, sound and input code, with no emulator in the loop.

Mac: macOS 14+ on Apple silicon, unsigned (System Settings → Privacy & Security → Open Anyway) · Windows: 10/11 64-bit, run PixelSorcery-run PixelSorcery-0.4.1-windows.exelt;versionrun PixelSorcery-0.4.1-windows.exegt;-windows.exe (the first run installs its compiler, about 600 MB) · Linux: Debian / Ubuntu, sudo apt install ./pixelsorcery_<version>_all.deb, then pixelsorcery · no ROMs included

How it works

  1. Point it at your own dumps. PixelSorcery recognises each game by its checksum.
  2. Recompile. The 68000 game code and the Z80 sound driver are translated to C.
  3. Build. That C is compiled with the native runtime into a program for your computer.
  4. Play. Widescreen, instant save states, controller mapping and a settings menu come with it.

The app

The same three screens on every computer: Build games… finds your dumps and compiles the ones you tick; Your games has a card per built game with Play, and Collections opens a shelf to go from game to game in fullscreen; Controller… maps your gamepad. Share last session… sends nothing until you have read and accepted what would be shared.

The PixelSorcery window on Windows: Your games, with Castle of Illusion and its Play button

Checked against the original

Every poll. Recorded play sessions and full-game input recordings are replayed on the port and on Genesis Plus GX. Work RAM must match at every controller poll.
Mixed runs. The same replays run again with part of the code in a 68000 interpreter, which proves the hand-over between compiled and interpreted code is exact.
Measured coverage. How much of each game's code has run in a verified replay is measured per title, and level-select recordings push it further.

Game coverage

Share of each game's code that has run in a replay verified against the original (1 November 2026). Reachable counts the code the game can actually run: functions that ran, plus everything their code calls or jumps to. All code also counts leftover routines nothing calls. Code that hasn't run yet still works: it falls back to the built-in 68000 interpreter, so lower coverage costs speed, not correctness.

GameReachable code verifiedAll codeIn the app
Castle of Illusion87.4%51.2%yes
QuackShot (REV00)87.8%54.2%yes
QuackShot (REV01)86.5%45.9%yes
Sonic the Hedgehog 279.9%60.9%yes
World of Illusion (USA)77.9%27.4%yes
Sonic the Hedgehog76.6%59.3%yes
World of Illusion (Europe)75.6%29.1%yes
Knuckles in Sonic 272.5%52.5%yes
Sonic 3 & Knuckles71.1%36.3%yes
Sonic & Knuckles67.7%35.7%yes
Sonic the Hedgehog 363.0%32.4%yes
Knuckles in Sonic 1 (our own)53.4%40.7%yes
Sonic CD (Mega CD)runs native (the Mega CD too); coverage not measured yetyes (needs your BIOS)

Native, no emulation

68000 and Z80: recompiled C.
Video (VDP): its own renderer, with Metal on macOS.
Sound (YM2612 + PSG): its own synthesis.

No game included

PixelSorcery ships no ROMs and no code or data made from them. Every game is built on the player's machine, from a dump of a cartridge they own. Free for non-commercial use (PolyForm Noncommercial).