An emulator, assembler, and disassembler for the Sega Game Gear
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
Ben Kurtovic 0999915c40 Fully support labels on the same line as other instructions. 9 anos atrás
roms Initial commit 10 anos atrás
src Fully support labels on the same line as other instructions. 9 anos atrás
tests Print out decimal register values too; add more tests. 9 anos atrás
.gitignore Add to README, finish makefile; project structure. 10 anos atrás
LICENSE Update copyright for 2015; makefile updates. 9 anos atrás
README.md Make assembler output file optional; sanity checks; bugfixes. 9 anos atrás
crater.c Start working on assembler. 9 anos atrás
makefile Begin refactoring assembler into multiple files; fix use-after-free. 9 anos atrás

README.md

crater

crater is an emulator for the Sega Game Gear, written in C.

Why?

While the internet is full of emulators for retro game systems, writing one is nevertheless a fun learning project.

crater is named after 31 Crateris, a star that was – for a short time in 1974 – misidentified as a moon of Mercury. Mercury was Sega’s codename for the Game Gear during development.

Installing

Only OS X and Linux are tested. You’ll need a decent compiler that supports C11 (clang preferred) and SDL 2. Using Homebrew, you can brew install sdl2; using apt, you can apt-get install libsdl2-dev.

Run make to create ./crater. To build the development version with debug symbols (they can exist simultaneously), run make DEBUG=1, which creates ./crater-dev.

Usage

Running ./crater without arguments will display a list of ROM images located in the roms/ directory, and then ask the user to pick one, or enter their own ROM path. You can provide a path directly with ./crater path/to/rom.

Add or symlink ROMs to roms/ at your leisure. Note that they should end in .gg or .bin.

Add --fullscreen (-f) to enable fullscreen mode, or --scale <n> (-s <n>) to scale the game screen by an integer factor.

./crater -h gives (fairly basic) command-line usage, and ./crater -v gives the current version.

Advanced options

crater supports several advanced features. Add --debug (-g) to display detailed information about emulation state while running, including register values and memory contents. You can also pause emulation to set breakpoints and change state.

--assemble <input> [<output>] (-a) converts z80 assembly source code into a .gg binary that can be run by crater. --disassemble <input> [<output>] (-d) executes the opposite operation. If no output file is given, crater will use the name of the input file, with the extension replaced with .gg for -a and .s for -d. By default, this will never overwrite the original filename; pass --overwrite (-r) to let crater do so.