Hacker News new | past | comments | ask | show | jobs | submit login
A list of Game Boy development resources (github.com/avivace)
63 points by avivace on Nov 19, 2017 | hide | past | favorite | 9 comments



The Ultimate Game Boy Talk[0] (listed in the page) is one of my favorite talks of all time.

If you were to send this talk to someone, with basically just the videe they could likely build a faithful Gameboy clone. It's so dense, easy to understand, and comprehensive.

I'll listen to it form time to time and think about all the cool tricks it reveals. Super impressive to have that much knowledge for a system that only had a couple thousand programs ever written for it.

[0]: https://www.youtube.com/watch?v=HyzD8pNlpwI


This talk inspired me to create a Game Boy emulator [1] and indeed it's enough to create a general design of each hardware subsystem (CPU, IRQ, Pixel Processor Unit, etc.) Also, the part about the pixel transfer is great, only few emulators implement it with FIFO queue, as presented, and this seems to be very accurate way.

During the further work I needed more details (list of CPU opcodes, timing of the IRQs, a list of audio and timer bugs, etc.), but the list links to all required resources - as far as I know this is everything we know about the Game Boy at the moment. It doesn't mean the console is fully reverse-engineered - especially the STAT IRQ timings is still very hard to get right.

Particularly interesting link is the "Pan Docs", moved and updated in the gbdev wiki [2]. Maybe it's not the best place to get the general information about the hardware, but it provides a lot of specifics.

[1] https://github.com/trekawek/coffee-gb [2] http://gbdev.gg8.se/wiki/articles/Pan_Docs


>Super impressive to have that much knowledge for a system that only had a couple thousand programs ever written for it.

Released for it. Officially.


I wrote a gameboy color emulator a few years ago https://github.com/djhworld/gomeboycolor

Probably would require some effort to get it to build again, but it was a fun, if a little intense programming project.

The architecture is very approachable, although I never got the sound working.

There's no greater feeling of toiling away for months on the CPU/GPU/MMU code where you eventually reach the point where you can successfully boot the emulator into rendering the "Nintendo" logo that scrolls down the screen.


Can confirm


Playing GameBoy games is what led me onto the path of become a programmer, so I kind of don’t want to ruin the magic. On one hand, it’d be poetic. On the other hand, I’d lose a bit of my childhood to the real world.


Maybe.

One of the most formative events for me as a programmer was playing with the gameshark on ps1. It had a debugger where you could press a button on the device and it would halt the system. Then you could search through the memory and alter values. Realizing that everything you saw and did, everything about the state of the entire game world was just numbers in memory was mind blowing. It instantly broke the illusion, but what it was replaced with was even more magical.

I realized that I could do things like set the health bar, or number of lives to a fixed value. I could change the height of the character and "fly" around. I could do anything, as long as I could figure out how it was represented in ram.

It was a pretty big deal to 10-year old me. A few days later I was using a computer and it dawned on me that the same thing applied to the computer I was using at school.


The "Pan Docs" and "Everything You Always Wanted To Know About GAME BOY but were afraid to ask" are essentially two different versions of the same document. Martin Korth has another version on the NO$GMB web site that's the one I usually refer to in the unlikely event that I'm actually looking at GB code [1]. Also, Martin Korth, Paul Robson, and Marat Fayzullin are all listed twice in the "Special Thanks" section.

[1] http://problemkaputt.de/pandocs.htm


There are even more that are basically modified pandocs. The Unofficial CPU manual being my favorite one.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: