
A list of Game Boy development resources - avivace
https://github.com/avivace/awesome-gbdev
======
rtpg
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](https://www.youtube.com/watch?v=HyzD8pNlpwI)

~~~
t0mek
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](https://github.com/trekawek/coffee-gb) [2]
[http://gbdev.gg8.se/wiki/articles/Pan_Docs](http://gbdev.gg8.se/wiki/articles/Pan_Docs)

------
gallerdude
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.

~~~
tekromancr
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.

------
0xcde4c3db
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](http://problemkaputt.de/pandocs.htm)

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

