Page 5 of 5
GBC boot code support
Posted: Mon Feb 01, 2010 5:21 am
by person
Can you please add support for the GBC boot code?
Â
The reason I would like it supported is that it contains a big database of predefined palettes, used to sligthly colorize certain older GB games. It also has the proper startup animation, and the 12 manually selectable palettes for GB games.
Â
It should not be difficult to add support for the code. It only writes to 3 non-documented registers, were we already know the function of 2 of them. The last unknown register can therefore easily be guessed.
Â
$FF50 = the value of $11 is written to this register, causing the startup-code to dissapear from the memory map.
$FF4C = CPU/timer/divider/serial/DMA Speed controll. If a GBC game is loaded; $80 is written to it, and if a GB game is loaded; $04 is written to it.
$FF6C = Register to lock the hardware into DMG-emulation mode. If a GB game is loaded; $01 is written to this register.
Â
About colorization of GB games, the startup sequence will load palettes for Obj0, Obj1, and BG0 into the GBC palette memory. this is done rigth after setting DMG-emulation mode, and those colors are used as an "overlay" of the palettes stored in the GB palette registers.
Â
I hope this is enough information for you to implement this feature.
GBC boot code support
Posted: Tue Feb 02, 2010 4:36 pm
by person
Please exuse my post. I didn't see the topic already were posted...
Â
Anyways, I'm currently working on disassembling the Boot code, and I can confirm the palettes are stored within the Boot ROM.
Â
I can also confirm that it will work just by making the code appear on offset $0000 (part 1) and $0200 (part 2). The header of the game must be present at offset $0100. You may need to add some code to redirect the GB-grayscale palette registers to the GBC OBJ0/OBJ1/BG0 palette registers if a nonzero write to $FF6C has been issued, but that should be all.
Â
I've uploaded a picture displaying all the palettes used to colorize GB-games, however it is to note that there are some additional non-standard palettes that starts at the last color of one palette and continues through the three first colors of the next palette. There are only two of those non-standard palettes, though.
Â
The first palette is 00, then next is 08, the third is 10 and so on all the way to E8 for the normal palettes. The two nonstandard palettes are 1E and DE, and they therefore starts at the last color of 18 or D8, with the three first colors of 20 or E0 following.
Â
[attachment=184]
GBC boot code support
Posted: Sat Dec 08, 2012 9:47 pm
by Squall Leonhart
GBC boot code support
Posted: Mon Dec 10, 2012 7:36 pm
by Peladon
I need a working patch in order to use the Game Boy Color boot ROM!
GBC boot code support
Posted: Mon Dec 10, 2012 8:01 pm
by Squall Leonhart
Implement it yourself if you're that desperate.
GBC boot code support
Posted: Tue Jan 15, 2013 3:51 am
by mudlord
i wish this was never invented.
GBC boot code support
Posted: Tue Jan 15, 2013 5:29 am
by Peladon
i wish this was never invented.
But why?