An emulator, assembler, and disassembler for the Sega Game Gear
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 2.0 KiB

10 years ago
10 years ago
10 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. crater
  2. ======
  3. **crater** is an emulator for the [Sega Game Gear][game gear], written in C.
  4. [game gear]: https://en.wikipedia.org/wiki/Sega_Game_Gear
  5. Why?
  6. ----
  7. While the internet is full of emulators for retro game systems, writing one is
  8. nevertheless a fun learning project.
  9. crater is named after [31 Crateris][crateris], a star that was – for a short
  10. time in 1974 – misidentified as [a moon of Mercury][moon]. Mercury was Sega's
  11. codename for the Game Gear during development.
  12. [crateris]: http://www.astrostudio.org/xhip.php?hip=58587
  13. [moon]: https://en.wikipedia.org/wiki/Mercury%27s_moon
  14. Installing
  15. ----------
  16. Only OS X and Linux are tested. You'll need a decent compiler that supports C11
  17. (clang preferred) and SDL 2. Using Homebrew, you can `brew install sdl2`; using
  18. apt, you can `apt-get install libsdl2-dev`.
  19. Run `make` to create `./crater`. To build the development version with debug
  20. symbols (they can exist simultaneously), run `make DEBUG=1`, which creates
  21. `./crater-dev`.
  22. Usage
  23. -----
  24. Running `./crater` without arguments will display a list of ROM images located
  25. in the `roms/` directory, and then ask the user to pick one, or enter their own
  26. ROM path. You can provide a path directly with `./crater path/to/rom`.
  27. Add or symlink ROMs to `roms/` at your leisure. Note that they should end in
  28. `.gg` or `.bin`.
  29. Add `--fullscreen` (`-f`) to enable fullscreen mode, or `--scale <n>`
  30. (`-s <n>`) to scale the game screen by an integer factor.
  31. `./crater -h` gives (fairly basic) command-line usage, and `./crater -v` gives
  32. the current version.
  33. ### Advanced options
  34. crater supports several advanced features. Add `--debug` (`-g`) to display
  35. detailed information about emulation state while running, including register
  36. values and memory contents. You can also pause emulation to set breakpoints and
  37. change state.
  38. `--assemble <input> <output>` (`-a`) converts z80 assembly source code into a
  39. `.gg` binary that can be run by crater. `--disassemble <input> <output>` (`-d`)
  40. executes the opposite operation.