An emulator, assembler, and disassembler for the Sega Game Gear
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Ben Kurtovic 443fb46beb Add signal handling, plus basic instruction fetch logic. 9 년 전
roms Initial commit 10 년 전
src Add signal handling, plus basic instruction fetch logic. 9 년 전
.gitignore Add to README, finish makefile; project structure. 10 년 전
LICENSE Update copyright for 2015; makefile updates. 9 년 전
README.md Make assembler output file optional; sanity checks; bugfixes. 9 년 전
crater.c Add IOManager, which manages emulation rather than the GG itself. 9 년 전
makefile Improve ROM loading. 9 년 전

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.