While creating a Lua script for BizHawk that makes a custom top-screen HUD for MKDS, I found that melonDS has different rendering behavior with the software renderer compared to the OpenGL compute renderer. I have no idea which one is correct and I'm not aware of any game where this matters without using hacks.
The script creates oam sprites with blending enabled. With the software renderer, I can enable blending by writing 0x0100 to BlendCnt (address 0x04000050). With the OpenGL compute renderer, I have to write 0x0140 to the same address to get blending to work.
Here's the Lua script in question, in case you want to see it: https://github.com/SuuperW/BizHawk-Lua-Scripts (file: SplitScripts/CustomHud.lua)
And it only works with the version of BizHawk in this PR: TASEmulators/BizHawk#4555
While creating a Lua script for BizHawk that makes a custom top-screen HUD for MKDS, I found that melonDS has different rendering behavior with the software renderer compared to the OpenGL compute renderer. I have no idea which one is correct and I'm not aware of any game where this matters without using hacks.
The script creates oam sprites with blending enabled. With the software renderer, I can enable blending by writing
0x0100to BlendCnt (address0x04000050). With the OpenGL compute renderer, I have to write0x0140to the same address to get blending to work.Here's the Lua script in question, in case you want to see it: https://github.com/SuuperW/BizHawk-Lua-Scripts (file: SplitScripts/CustomHud.lua)
And it only works with the version of BizHawk in this PR: TASEmulators/BizHawk#4555