Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


For an introduction to what this code is and does, please see this article.


cd goody

Requires the SDL2 headers and libraries to be installed. Also requires a sane development platform (i.e. not Windows) with at least a C++0x compiler.

Verified to compile without warnings and run at in Linux (Fedora 16) and Mac (10.9.4).

Structure of the code

lib/generator/ - Templates and opcode spec for the x86 emulator fetch/decode loop, which is automatically generated.

lib/ - The emulator code itself, including x86, CGA and devices.

tools/runner - The runner/debugger. Look at the source to see the available commands. You can put startup commands in runner.cmd.

tools/disassemble - The disassembler. Takes a prefix as a parameter, not a filename, e.g. prefix, and disassembles into prefix.asm, optionally reading prefix.cfg.

The disassembler works by following code paths from the entry point and disassembling all the reachable paths. But because it doesn't actually run the code, it misses entry points accessible through jump tables, e.g. JMP BX. You can manually add EntryPoint commands in the cfg file.

Disassembly can be done incrementally. If prefix.asm already exists, the disassembler will merge the comments in the existing file into the new disassembly. So you can disassemble, add an entry point to the cfg file, run the disassembler again, and not lose your previous work. runner can also generate a list of the entry points it actually runs through.

goody/ - The Goody remake proof-of-concept.


The code is licensed under the Whatever/Credit license: you may do whatever you want with the code; if you make something cool, credit is appreciated.

The assets are either public domain or licensed under various Creative Commons licenses. Please see the original licenses at the following links: 1, 2, 3, 4, 5.

The file should not be redistributed. I got the unofficial blessing from Gonzo Suarez, one of the original authors, and it can be found in abandonware sites, but still. Don't redistribute it.


See for a full description.



No releases published


No packages published