Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
2D rendering bug in Pokémon - Mystery Dungeon - Explorers of Sky (also present in no$gba, formerly present in desmume) #299
Hi. I reported a bug in Desmume a while back on IRC where this particular scene in Pokémon: Mystery Dungeon: Explorers of Sky would render improperly. I just tested it today, and it also impacts your emulator, as well as No$GBA. Here's what it looks like:
My guess is this is impacting all of your emulators because all of them use gbatek as a reference. I think this is because the section titled 'Semi-Transparent OBJs' is inaccurate, but I am not an expert on the DS GPU so take that with a grain of salt.
Here's a save file from immediately before it happens, in raw (.sav) format:
Here's the bug report from DeSmuMe:
And a description of how they think the bug worked:
And the commit that fixed it (see line 2011):
this is interesting.
I have a quick idea how to fix this (basically swapping around some if statements in the special effect code), but I'd like to test this against hardware before (if semi-transparent OBJs have priority over the window color-effect flags, does that also apply to 3D-layer blending?)
Not a problem. Were they helpful and relatively accurate?
Also, if you have any way to contact Martin Korth, my email must not have reached him because it's still present in No$GBA 2.9. So if you know how to contact him, would you let him know about this?
yeah, it was! saved a whole lotta time there. otherwise I'd have had to go down the standard path of examining what is displayed, the modes/blending/window/etc and why it's not rendering properly, etc
also, nope, don't know how to contact Martin :/
I know one of my fixes somehow made it to him tho (the bit where 3D matrix push/pop/store/restore in mode1 works same as in mode2), but dunno how. and this is another thing that was independently figured out and fixed in DeSmuME ages ago.