mgba-emu / mgba

mGBA Game Boy Advance Emulator
https://mgba.io/
Mozilla Public License 2.0
5.75k stars 795 forks source link

Dragon Warrior Monsters exhibits palette issues when run in SGB+CGB mode #3311

Open ketsuban opened 1 month ago

ketsuban commented 1 month ago

I'm aware this option is kind of a hack but I figure the worst that can happen is the issue gets closed without action.

The game almost works nicely, exhibiting both colourful graphics and Super Game Boy borders which switch out depending on where in the game you are. However, the game has a tendency to drop the colours for sprites, and closing most text boxes causes the palette to revert completely to a somewhat unattractive orange (before, after).

CasualPokePlayer commented 1 month ago

The SGB+CGB mode which mGBA has currently is a fantasy mode, intended for romhacks targeting this mode if anything (which can actually operate under knowledge of this mode existing). Nearly every SGB+CGB retail game would not work under this mode, as they would not try to use both SGB and CGB features at the same time (generally this just ends up being the game in plain CGB mode without any border set). This game seems to be an exception and does not properly gate SGB features away on CGB.

The issues you're describing seem to just be due to mGBA applying SGB colorings, having them override CGB colorings. The game was never intended to run like this, so it blindly applies SGB commands like it was on a plain SGB (e.g. opening a textbox has a ATTR_BLK command sent and closing that textbox has a PAL_SET command sent).

Interestingly, bgb doesn't seem to have this kind of issue, presumingly it suppresses SGB palattes?