| Chase H.Q. | About this Project |
This is an in-progress disassembly and rebuild of the ZX Spectrum conversion of Chase H.Q. by Ocean Software, made up of two halves that feed each other:
The disassembly explains the game; the C port proves the explanation is right. They do get out of sync sometimes.
The C rebuild builds with CMake, links against SDL3, and plays through all five stages – you can play it in your browser via an Emscripten/WebAssembly build. There's also a self-contained native RISC OS application built from the same engine sources.
Chase H.Q. was one of the games I grew up with on the Spectrum, and reverse engineering it is a way of properly understanding how it worked – not just what it did, but the specific tricks (stretchy objects, self-modifying dispatch, banked memory juggling) a small team used to squeeze a pseudo-3D racing game out of a 3.5MHz Z80. Writing a portable C port alongside the disassembly is a way of proving that understanding: if the C code doesn't behave like the original, the explanation is wrong somewhere.
This project is by David Thomas. I previously disassembled and rebuilt The Great Escape (and its C rebuild), and wrote SlopAY, an AY-3-8912 emulator. I've also made some videos about this project.
Source for everything is on GitHub at dpt/ChaseHQ.