A Game Boy emulator written in C, using SDL2 for rendering and input. As well as a pong game written in gameboy assembly.
- Emulates CPU instructions
- Renders 160x144 display via SDL
- Handles D-pad and button input
- Mostly simulates display
- Handles most interrupts
| Key | Action |
|---|---|
| W | Up |
| A | Left |
| S | Down |
| D | Right |
| J | B Button |
| K | A Button |
| L | Select |
| ; | Start |
| SPACE | Boost |
| CAPS | Registers |
| Q | Quit |
Make sure you have SDL2 installed. Then compile with make in the root directory. For pongus, make inside that directory, rgbasm is required.
Then run: ./GBemu path/to/rom.gb
Or link the rgbasmtest.asm and run the "hello world" program
Or run the PI program by ncw
- cpu.c/.h: CPU emulation (instructions, memory)
- display.c: SDL rendering, VRAM decoding, input handling
- cartridge.c: Cartridge loading, MBC1 support
- Tile layering fix
- Batches not working for other ROMs
- Probably a million more bugs
- Sound emulation
- Other Cartridge MBC support
- Save states
- PAN DOCS
- RGBASM
- INSTRUCTION SET
- Nintendo lol
MIT


