Case study
Imperialism: reconstructing the 1997 game in C++ and Rust
Imperialism reconstructs the 1997 Windows game's executable as ABI and behavior faithful C++ using Ghidra evidence, the original MSVC 5.0 toolchain and reccmp comparisons. A separate Rust implementation imports retail files and uses process-isolated differential tests against named behavioral captures.
- Targets
- Binary · Game
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
- Stars
- 5
- Last commit
- 2026-10-07
- Language
- C++
GitHub data as of 2026-11-10
Requirements & limits
- Supply a legally obtained Imperialism.exe.
- The C++ workflow requires Git LFS, just, uv, Docker, Wine/GDB, Java 25 and the pinned Ghidra fork.
Cite
BibTeX
@misc{imperialism-decomp-case,
title = {{Imperialism: reconstructing the 1997 game in C++ and Rust}},
howpublished = {\url{https://github.com/agluszak/imperialism-decomp}},
url = {https://github.com/agluszak/imperialism-decomp},
urldate = {2026-11-06},
note = {Awesome REA entry: \url{https://awesomerea.org/resources/imperialism-decomp-case/}}
}Plain text
Imperialism: reconstructing the 1997 game in C++ and Rust. https://github.com/agluszak/imperialism-decomp (accessed 2026-11-06). Awesome REA entry: https://awesomerea.org/resources/imperialism-decomp-case/
Useful? Star Awesome REA on GitHub2.4k
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · agluszak/imperialism-decomp · Revision a468302
- decomp/README.md GitHub · agluszak/imperialism-decomp · Revision a468302
More in Games
- Indiana Jones and the Infernal Machine: a matching C decompilation · Case study
- Jackal: commented disassembly of the NES game · Case study
- Jawbreaker: an annotated Atari VCS disassembly that compiles to the exact ROM · Case study
- Jet Set Radio Future: early matching Xbox decompilation · Case study
- Kanken Training 2: matching reconstruction of a Nintendo 3DS executable · Case study
- Karateka: a byte-matched DOS disassembly · Case study