Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Gameboy Feature] force cgb on gb game #150

Open
benderscruffy opened this issue Jan 19, 2025 · 1 comment
Open

[Gameboy Feature] force cgb on gb game #150

benderscruffy opened this issue Jan 19, 2025 · 1 comment
Labels
enhancement New feature or request gb Game Boy / Game Boy Color

Comments

@benderscruffy
Copy link

No description provided.

@jsgroth jsgroth added enhancement New feature or request gb Game Boy / Game Boy Color labels Jan 19, 2025
@jsgroth
Copy link
Owner

jsgroth commented Jan 19, 2025

This is a little harder than implementing the "force DMG mode" option was because DMG-on-CGB compatibility mode works differently from normal CGB mode. The hardware basically tries to mimic DMG behavior as closely as possible, except instead of displaying the 2-bit DMG colors from BGP/OBP0/OBP1, it uses them to index into CGB palette RAM. It expects that the CGB boot process pre-populated CGB BG palette 0 and CGB OBJ palettes 0/1 with useful colors.

This feature won't be very useful without also adding a way to initialize the CGB palettes, e.g. by booting from a CGB boot ROM. I think I'd rather add support for boot ROMs than hardcode the DMG-on-CGB palette initialization logic, because it's pretty involved (see SameBoy's open source boot ROM).

There are also some hardware edge cases that are different between DMG and DMG-on-CGB. I think the most noticeable are the STAT bug being fixed on CGB and APU wavetable RAM having different initial contents at power-on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request gb Game Boy / Game Boy Color
Projects
None yet
Development

No branches or pull requests

2 participants