All Projects → ggambetta → Emulator Backed Remakes

ggambetta / Emulator Backed Remakes

See http://www.gabrielgambetta.com/remakes.html for a full description.

Programming Languages

assembly
5116 projects

Introduction

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

Usage

cd goody
make
./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 prefix.com 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.

License

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 goody.com 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].