Star on GitHubStar2.4k stars

THE REVERSE ENGINEERING COLLECTION

Reverse-engineering case studies

Page 5 of 21, cases 801–1,000. 4,025 case studies from 5,191 curated resources, with documented reconstruction methods, scope, and original evidence.

Software reconstruction artifact reviews

Review artifacts from REA workflows and independent reconstructions. Each entry retains its original sources and known limits.

Reconstruction scope
Implemented features, known gaps and required original assets.
Available artifacts
Original code, releases or demos.
Evidence and attribution
Pinned sources, review dates and documented REA roles.
About these cases

Each case appears once under its primary subject, with all its target labels.

Cases 801–1,000 of 4,025

Games

2832 cases

All sections

Non-matching decompilations

343 cases

Lufia2Decomp reconstructs Lufia II: Rise of the Sinistrals game logic as a portable C library for SNES recompilation consumers. Its CPU-state and memory adapters preserve observable routine behavior, and a resource tool decodes compressed data from an owner's ROM. The author reports 2,305 functions marked verified by original-ROM differential checks.

prsche-disasm recovers C/C++ source for Need for Speed: Porsche Unleashed from its Windows x86 binaries. It indexes original modules and addresses, studies resource formats, and compares recovered functions with recorded original inputs, state, outputs, and ABI behavior. The recovered C++ modules build separately, but the full game does not yet link into a playable executable.

nfsu2_decomp rewrites logic from the PS2 PAL release of Need for Speed: Underground 2 as native Linux C++ and uses the user's disc data at runtime. The implementation replaces PS2 graphics and audio paths with OpenGL and SDL2, reads ZDIR.BIN and ZZDATA archives, and documents recovered vehicle physics and file decoding. The project describes its current build as a playable prototype.

Outlaw for the Atari 2600 (Atari, 1978) is reverse-engineered into commented 6502 source that compiles with DASM. Named RAM variables cover the playfield arrays, scores, bullets in each gun, sound state and obstacle positions, and the commented code walks through the score and magazine display, the main four-line display kernel, gun reloading, select handling, movement and bullet bouncing.

OutRun 2006 Coast 2 Coast is ported from a C++ reconstruction of its PC executable to Switch, Apple silicon macOS, PS5 homebrew and Xbox Developer Mode. Some functions remain translated from x86 while others are handwritten; each platform has native graphics, audio, input and file layers. The port reads tables and game data from the user's Steam installation.

Rewrites code from Bloodborne’s PS4 executable (CUSA03173 with update 1.09) as readable C++, one function at a time, aiming at a native PC source port on a clean-room runtime of its own. It is a functional rather than matching decompilation: each replacement is hooked in, compared with the original machine code on recorded and generated inputs, and independently reviewed. Work is at an early stage: README reports 21 of 157,757 functions verified, and the game does not yet run on Paleblood’s own runtime.

Pheenix documents a disassembly of the ZX Spectrum game using SkoolKit. The repository contains SkoolKit source, control and reference files, plus scripts that build browsable hexadecimal and decimal HTML listings. Building the development listings requires SkoolKit; users need the original game to disassemble its code.

Activision's 1982 Atari VCS game Pitfall! is disassembled into labeled and commented 6502 assembly (version 0.9). Notes explain how a reversible LFSR generates the 255 jungle scenes, which bits of the random number select ground objects, scene type, tree pattern and wall position, and how the nine-stripe display kernel draws Harry, the liana, holes, ladder and wall; assembler switches add optional optimizations, screensaver code and a training mode.

This reconstructs the European base release of Pokémon Moon for the Nintendo 3DS. The title ID is 0004000000175E00 and the product code is CTR-P-BNEA, title version 0. Retail code.bin has SHA-256 fbe0ce6da21542542f49645fff78ba1b7e5e7cc172ce4daceeb5c26ab54adba1. Retail static.crs has SHA-256 e18db06b0609739e8e62cd4786c6b2da838d20347050e4c2ac822bf35c016957. The manifest lists 2,984 source-backed functions out of 18,945, including 298 exact ARM matches.

Prototype incrementally reconstructs functions from the 2009 PC game's engine DLL as readable C++. A proxy xinput1_3.dll redirects calls to replacement functions; the project saves Ghidra annotations and checks replacement behavior against the original at runtime. The author reports 28 replaced functions.

Reimplements the engine of Oddworld: Abe’s Oddysee and Abe’s Exoddus as an open-source replacement executable that runs from the user’s own game folder. The team decompiled the original executables and replaced their functions incrementally, using injected DLLs that hook reimplemented code into the patched retail executable, then rewrote the result into a standalone cross-platform engine. The project site says both games are playable in their entirety, with bug fixes and windowed, high-resolution and controller play.

RAC2Decomp studies the PAL PlayStation 2 release of Ratchet & Clank 2: Going Commando and translates observed engine behavior into C. Its workflow uses Ghidra for static analysis and the PCSX2 debugger for runtime traces; the repository includes code and notes on boot state, graphics initialization, and text rendering.

Reconstructs C++ source for Plants vs. Zombies on PopCap’s open-source SexyAppFramework, starting from an earlier community decompilation of version 0.9.9 and adding functionality reversed from the Game of the Year edition, with functions annotated by GOTY addresses. The project also modernizes the engine with current C++ and is replacing the DirectDraw and Direct3D 7 renderers with GLFW. It builds a fan executable that runs from an original game folder, aiming at a modernized, extensible game rather than an identical binary.

A labeled and commented 6502 assembly listing reconstructs Red vs. Blue, a 1981 Atari 2600 multi-sprite demo that later became RealSports Football. The listing labels the vertical sync and timer loop, the display kernel for the red and blue animated players, eight animation frames of player graphics, and the horizontal-position and sprite-copy tables. A comment marks a frame-timing counter that has no effect on the animation rate.

reDM2: reconstructing Dungeon Master II in C

Independent reconstruction project

reDM2 reconstructs the DOS release of Dungeon Master II in C from its shipped SKULL.EXE executable. It separates game code from linked libraries and compares ported functions with the originals using Unicorn emulation, memory-write checks, and captured game-state snapshots. The author reports that some functions remain blocked by missing emulator capabilities.

REFLEC BEAT plus reconstructs Objective-C and C++ source for version 4.5.8 of the iOS rhythm game. The project uses Objective-C metadata, C++ RTTI, embedded strings, and original path fragments to organize the recovered routines; a separate OpenAPI file describes requests observed in the client. Building requires a user-supplied IPA for game assets.

ReFreedomFighters reconstructs Freedom Fighters file formats and PC executable functions, with Python decoders for audio, textures, scripts, scenes, and navigation data. It also supplies C++ function ports and game-specific RE helpers. The author reports 12,703 published ports tested against the original, while documenting checker gaps and pending rechecks.

Resident Evil 1 for PC Decompilation reconstructs the 1997 game’s logic from Ghidra analysis of its executable and runs it on Windows and Linux. The port replaces the original Marni System’s DirectX 5 implementation with Direct3D 11 or OpenGL rendering and corresponding audio and video layers. The author reports that the full game is playable and that 1,716 of 1,717 game logic functions are implemented.

Activision's 1982 Atari VCS game River Raid is disassembled into labeled and commented 6502 assembly (version 0.9). Notes explain how random river sections of 16 blocks ending in a bridge are generated, how one fuel tank, enemy or house is placed per block, how a two-line kernel repeated twelve times draws each 32-line block with hardware-only collision checks, and how the score lives directly in the display pointers; switches add screensaver code and a training mode.

Rockstar Table Tennis Decompilation reconstructs the Xbox 360 game's PowerPC functions as C++. Its source tree includes function maps, vtable data, initialization-flow findings and an MCP server that exposes decompilation context to contributors. The author reports 3,413 functions decompiled out of 13,545.

Reconstructs Retro Engine v3, the engine behind the 2011 Sonic CD remaster, as a native C++ source port for Windows, Linux, macOS and Android. The engine runs the game's own scripts and assets from an official release, which the repository does not ship, and adds a mod loader, a settings file with remappable controls, support for the mobile versions' updated scripts and extra developer-menu debug keys. Its license describes the code as mostly functionally the same as the original rather than byte-matching; the same team's RSDKv5 decompilation is listed as a separate case.

Decompiles Retro Engine (RSDK) v4, the engine behind Sonic the Hedgehog and Sonic the Hedgehog 2 (2013), together with the games’ natively coded menus, and builds it for Windows, Linux and Android. The engine runs the game scripts contained in the official releases’ data files, which users must supply. The project adds a script compiler, a mod loader and an experimental online mode for Sonic 2’s 2P VS; it is the predecessor of the same group’s RSDKv5 decompilation.

Reconstructs the Retro Engine (RSDK) v5 and v5 Ultimate runtime, the engine that runs Sonic Mania’s game code, and builds it for Windows, Linux, Switch and Android. RSDKv5U can also run RSDKv3 and RSDKv4 games such as Sonic CD and Sonic 1 & 2. The project adds a mod loader, a shader compiler and extra Windows backends, and ships no game data.

sead: decompilation of Nintendo EAD libraries

Independent reconstruction project

sead is a decompilation of the engine and libraries developed by Nintendo EAD, now EPD, as found in New Super Mario Bros. U and other games. The README describes engine/ as the standard library, nw_ptcl as a wrapper around NintendoWareForCafe Eft, and agl as the graphics library. It says a byte-identical rebuild is out of reach without the NSMBU compiler, and the current goal is matching functionality and efficiency.

SegaSonic The Hedgehog reconstructs the Sega System 32 arcade game's NEC V60 and Z80 programs as readable C. Its tools disassemble and decompile code, extract assets from the user's MAME ROM set, and compare game, video and sound behavior with reference runs frame by frame. The author reports Windows play for the SDL2 port; Linux and macOS builds had not been tried.

Severed Chains rewrites Legend of Dragoon from its assembly into Java and adds a modding API. The README says the game is fully playable with no known crashes. Java 25 is required. Disc images go in the isos directory, and Gradle configures the IntelliJ project. Assets are extracted from those images at runtime. Controllers, including rumble, and keyboard controls are supported.

shadowheartsdecompilation reconstructs C++ source for the core runtime classes of the PS2 game Shadow Hearts. It covers CThread, CTimer, CPoller, CPolling, CPolObj, CDrawObj, CDrawPolling, CDraw, CApp, CPause, FVector and Matrix, with each method annotated with its address in the original executable and written against Emotion Engine kernel calls and hardware timer registers.

skcollectioncport reconstructs the Windows game Sonic & Knuckles Collection as C and C++ source. It covers player and character objects, per-zone objects, the game, opening and stage-select modes, save data, collision and scrolling, map and sprite-pattern tables, and a Win32 front end whose functions are decompiled from the PC executable by address, including the software VDP renderer, sound, registry and controller handling.

SMB Vanilla reconstructs the gameplay of Super Mario Bros. and Super Mario Bros. 2 Japan in C. It runs against a user-supplied ROM for level and graphical data and aims to preserve original behavior, including many glitches. The author reports both games are beatable; refactoring of Ghidra-derived code, tests, and some audio remain unfinished.

SMBDIS.ASM reconstructs the NES game Super Mario Bros. as a single commented 6502 assembly file of about 16,000 lines. It names the PPU, APU and joypad registers and the game RAM variables, comments routines such as the sound engine, player movement and enemy handling, and lays out the metatile graphics table, level, enemy object, area object and music data; it assembles with x816 once the user supplies the character ROM data and an iNES header.

Reconstructs Sonic Mania’s game code in C and builds it with the separately decompiled RSDKv5 or RSDKv5U engine for Windows, Linux, Switch and Android. Assets must come from an official Sonic Mania (Plus) release; the project adds a mod loader and can build several retail versions. Its license describes the code as mostly functionally the same as the original, not byte-matching.

SPEED RE reconstructs routines from the SPEED engine using Need for Speed Underground 2 PC v1.2 as its reference. It documents recovered physics, collision, camera and HUD code, compares some functions byte-for-byte or through bounded execution, and runs an incomplete Linux driving demo on a user's installation.

spore-decomp reconstructs behaviour from Spore's SporeApp.exe in portable C++17, currently covering DBPF, RefPack and name hashing. It annotates reimplemented functions with original addresses and provides Ghidra scripts plus a Unicorn harness for differential tests against a user's game copy. The source tree also includes matching experiments and progress records.

This is a work-in-progress decompilation of a debug build of Star Fox Adventures, version GSAP01, file default.dol. The README says that file is on Interactive Multi-Game Demo Disc - July 2002 (USA) and is unused there. It was built for an internal debug environment, writes to addresses used for debug tracing, and expects an RGBA framebuffer at a fixed address. The README says the code will most likely not compile yet, and that the build does not boot on a console or an emulator.

Starmaster for the Atari 2600 (Activision, 1982) is disassembled with DiStella v2.0 and then analyzed, named and commented into readable 6502 source. Named constants describe the 6x6 sector map, starbases, enemy IDs, star field, warp and laser timing and enemy fire distance, and an OPTIMIZE switch swaps in code improvements the author identified while studying the routines.

Street Fighter Alpha 3 MAX: Decomp reconstructs the PSP game's functions as readable C inside a native PC runtime. Functions not yet decompiled are translated from the PSP program during the build, while parity tests compare selected runs frame by frame. The author reports 412 of 14,881 functions decompiled; the US ULUS-10062 disc supplies the program and assets.

Rebuilds the 1990 Amiga version of System 3's The Last Ninja Remix in C++, loading game data from the user's ADF disk images of the original. The source includes an ADF disk reader, actor, enemy, room, level and HUD code, and keeps disassembly labels such as sub_46A2 and word_14D6 for the routines and variables it reproduces. The first level is completable.

The Sims Bustin' Out GameCube decompilation targets the USA Rev 0 G4ME69 release. It combines decomp-toolkit build configuration, initial C files, and custom scripts that infer possible symbol matches from another GameCube decompilation. The author describes the split mapping as very early and largely heuristic.

The author’s REA fork, posted as rea-engine and since renamed RE-Agent, decompiles the shipped .NET executable of the GPL-licensed TicTacToe-AI game, recompiles the recovered C# and resources, and repairs one decompiler error against the original IL. A differential probe runs original and rebuilt code on all 19,683 board assignments for one status method and compares six form renders. The report passes only that method; the whole game remains partial.

wotwdecomp reconstructs the GameCube game Tom and Jerry: War of the Whiskers with C++ and assembly and builds a specified main.dol. Its Makefile combines reconstructed functions, remaining assembly, and the required GameCube toolchains. The author describes the build as experimental because unresolved hardcoded pointers prevent shifting it for general changes.

thug2-decomp reconstructs Tony Hawk's Underground 2 for PC as readable C++ across engine, game, rendering, scripting, and networking subsystems. The author says rewritten functions were checked against the original's behavior; the resulting executable runs using data from the user's game installation and includes source-level fixes and additions.

Tube: reconstructing the 1994 DOS game source

Independent reconstruction project

This recreates the source of Tube, the 1994 DOS game from Bullfrog, using Hex-Rays and IDA Pro. The result builds as a 32-bit program with SDL2. Windows uses build_windows.bat, Linux uses build_linux.sh, and the web build uses build_web.bat. The README also lists OpenWatcom 1.9 for a DOS DPMI build. It says the original code uses 32-bit pointers, so this tree does not build as 64-bit.

TWD · Source Recovery reconstructs selected functions from The Walking Dead: Season One as C++ replacements for an experimental hybrid runtime. It publishes geometry, hash and symbol code, comparison harnesses, analysis scripts and progress reports. The author reports 14 replacements among 18,299 recognized functions; the standalone source engine remains unfinished.

u5d: a semantic-match Ultima V decompilation

Independent reconstruction project

u5d reconstructs C source for Ultima V: Warriors of Destiny and compares it with the MS-DOS v1.16 program at the assembly-semantic level. The author reports that the modern version can be played through to the ending using original game data. The author reports approximately 95% matching for ULTIMA.EXE, excluding assembly functions, and approximately 95% for the overlays.

The author uses a pinned REA build with Ghidra to analyze a user-supplied Pokémon Ultra Sun base executable, rebuild it byte for byte from split objects, and swap in two small compiled C runtime routines. Both replacements are behavior-tested but nonmatching and every other byte stays original; one recorded input movie drives the original and hybrid builds to the same bedroom movement in the Azahar emulator. Retail compiler identity, exact matching, module loading and broader gameplay remain open.

Venture for the Atari 2600 (Coleco) is reverse-engineered into commented 6502 source with a DASM build command that writes a listing, symbol table and binary. Comments document the screen region used for rooms, sprite timesharing in the moving-wall room, monster status values, shot range, collision handling and per-room playfield offsets, and every graphics table carries a visual comment of its pixels; two RAM bytes are marked unused by the original code.

Recovers Virtua Fighter 2 Version 2.1’s Sega Model 2A i960 program into portable, non-matching C17, accepting each recovered path only when it matches a reference i960 executor at controlled boundaries. The repository adds ROM validation, i960 and 68000 analysis tools, a bounded Model 2A hardware model and snapshot-based differential runners. README states that it is not yet a playable port; match flow, combat, physics, AI, rasterization and much of the audio remain open.

Virtua Tennis decomp reconstructs the Dreamcast game's executable from a user-provided disc, first establishing a byte-matching assembly baseline and then substituting C for game functions. Its tools generate function tests and asset maps for models, textures, text and audio. The author reports C has been written for every function with a C form, with behavioral equivalence as the completion criterion.

This is a decompilation of Virtual Pro-Wrestling 2 (バーチャル・プロレス2 〜王道継承〜) for the Nintendo 64. An unmodified Z64 ROM named baserom.z64 has SHA-1 82dd25a044689eab57ab362fe10c0da6388c217a. make setup extracts the ROM. make builds it. The README says the project is still in progress.

Decompiles the USA Wii U release of The Wind Waker HD function by function into readable C++ in zeldaret/tww’s style, and verifies each function by running it beside the original, statically recompiled from the user’s own copy, comparing return values, memory writes and calls on generated and recorded inputs, with coverage and mutation checks. README reports 28,244 of the game’s 39,713 functions verified, including 22,068 of 22,215 GameCube-derived functions. The code calls undecompiled functions by address, so it runs only inside the ZeldaWWHDRecomp port, not as a standalone game build.

WinFish decompiles Insaniquarium Deluxe 1.1 from the Windows executable. The README says the result is fully playable and still has bugs. The solution WinFish.sln uses the Visual Studio 2022 v142 toolset. A 32-bit build needs bass.dll from the original game, plus the data, properties, and fishsongs folders copied beside the solution.

Wobbledogs reconstructs the Steam Windows game's managed assemblies by decompiling IL with ILSpy and recompiling the resulting C# with Roslyn against the game's Mono profile. Scripts export assemblies from an owned install, repair documented decompiler artifacts, package a runnable tree, and compare code and boot behavior. The author reports a 69.80% code match.

Zombie Revenge decomp reconstructs the European Dreamcast game's executable with C and a disc-derived assembly baseline. Its tools split functions, map assets, run directed equivalence cases and build a replacement executable; the author reports 65.8% instruction test coverage over functions eligible for C translation.

↑↓ move↵ open⌘↵ new tab