Finally got a decent GB/GBC flashcart. No, this isn't to play games on (fwiw, the GB and GBC and even my original GBA are terribly hard to play these days without backlights) I got this so I could debug GB/GBC hardware for my emulator. Even though we have the GB programming manual from Nintendo available online, not even that freakin' explains everything (like how the LCD mode is reset when the LCD is disabled, and reset again when it's enabled, stupid stuff like that). I'm writing my own test ROMs (by hand with a hex editor)
I also got this kick-ass sticker:
Anyway, I've only really written one test ROM so far to test when LY and LYC registers are compared, and when LY is incremented by the hardware. It's incredibly difficult to see, but the test draws alternating lines of light and dark lines until a STAT interrupt disables the background (hence the white pixels for most of the screen). Depending on which color is last draw on an emulator, the emulator either passes (last color drawn = light) or fails (last color drawn = dark) to emulate the hardware accurately for this test. Naturally my emulator passes it (it didn't until a few commits ago). Got some other tests in mind (inaccessible OAM/VRAM). Now I can find out what the GB/GBC is doing exactly without having to try to decipher the incomplete documentation and the source code for 5 different other emulators:
Unboxing: (Show Spoiler)
I also got this kick-ass sticker:
Wait... what?: (Show Spoiler)
Anyway, I've only really written one test ROM so far to test when LY and LYC registers are compared, and when LY is incremented by the hardware. It's incredibly difficult to see, but the test draws alternating lines of light and dark lines until a STAT interrupt disables the background (hence the white pixels for most of the screen). Depending on which color is last draw on an emulator, the emulator either passes (last color drawn = light) or fails (last color drawn = dark) to emulate the hardware accurately for this test. Naturally my emulator passes it (it didn't until a few commits ago). Got some other tests in mind (inaccessible OAM/VRAM). Now I can find out what the GB/GBC is doing exactly without having to try to decipher the incomplete documentation and the source code for 5 different other emulators:
Testing on real hardware!: (Show Spoiler)

![[Image: jExKUVUK3qRE3.png]](http://i.minus.com/jExKUVUK3qRE3.png)
![[Image: jbhObhlbM37crl.png]](http://i6.minus.com/jbhObhlbM37crl.png)
![[Image: jfHbujhJVk6v8.png]](http://i4.minus.com/jfHbujhJVk6v8.png)
![[Image: jbmjkSOlRlk9sU.png]](http://i4.minus.com/jbmjkSOlRlk9sU.png)
![[Image: iYxItmkRKH9cC.png]](http://i3.minus.com/iYxItmkRKH9cC.png)