GBreaker (Gameboy Emulator) banner

GBreaker (Gameboy Emulator)

11 devlogs
12h 16m 23s

A Python Game Boy emulator that runs classic ROMs, with a fully mapped CPU, memory system, and interactive frontend.

theaaronsood

added input.py to log keyboard inputs and map them to gameboy commands which are the dpad, a, b, select and start buttons. i also implemented a test script to make sure it runs well.

(the JOYP = xxxxxxx in the terminal is a different button press so when i press a button it registers it in the terminal as 0 for pressed and 1 as released)

0
theaaronsood

Added ppu.py (pixel processing unit) to handle the graphics, modified registers.py and cpu.py to add more opcodes so it can run classical games such as tetris. Displays a green screen as of now but after developing main.py it should display the rom which is tetris.

Attachment
0
theaaronsood

Added more detail into cpu.py and memory.py so it can handle classic gameboy games such as tetris.

Attachment
Attachment
0
theaaronsood

I added more detail into cpu.py, test_cpu.py and modified registers.py. I ran into a bug which kept returning an assertion error so after a LOT of debugging I have gotten a successful output.

Attachment
0
theaaronsood

I made a skeleton for cpu.py and a test script to debug it. I had a minor hiccup due to a typo but once i resolved it, it worked

Attachment
0
theaaronsood

Changed all the files by adding comments and some spacing in between so viewers can read easily and understand it, and I also simplified some variables because why not

Attachment
0
theaaronsood

Implemented registers.py which defines all CPU registers for the Game Boy in Python, allowing read/write access as 16-bit pairs or 8-bit high/low halves. This was the most challenging module so far, as the BC section kept producing errors due to the values being assigned wrong but after a lot of debugging, I fixed it.

Attachment
0
theaaronsood

I finished writing memory.py which had ROM, WRAM and HRAM mapping and read/write methods. I then wrote test_memory.py which was a snippet to test memory.py and it worked on the first try (thankfully).

Attachment
0
theaaronsood

I’m working on my first project! This is so exciting. I can’t wait to share more updates as I build.

Attachment
0