I noticed a small rendering bug with the game Solatorobo: Red the Hunter when High-Resolution 3D Rendering is enabled. I'm testing with a Huawei G620S phone (Android 4.4.4, Qualcomm MSM9216, Adreno 306 GPU).
See the two screenshots. The display is set to 2x scaling with no filtering, so there shouldn't be any artifacts from scaling there.
To reproduce: run game, choose Air Robo GP and press A. The text which appears has the problem. I guess the game is rendering that text using the 3D engine, and there's some rounding or off-by-one bug that causes the problem?
Text rendering issue with Solatorobo: Red the Hunter
Text rendering issue with Solatorobo: Red the Hunter
- Attachments
-
- Normal rendering
- Normal3D.png (238.49 KiB) Viewed 6188 times
-
- High-res rendering
- HighRes3D.png (230.86 KiB) Viewed 6188 times
Re: Text rendering issue with Solatorobo: Red the Hunter
The DS has really, really weird texture coordination quantization which is hard to emulate accurately. Doing it the "right" way will screw up a lot of games, but of course so will doing it various wrong ways (including the way it's currently done). I haven't determined the exactly right wrong way that works all the time, and not without a lot of attempt to properly reverse engineer this.
There's an optimization where quads that look like 1:1 sprites are rendered specially, and as a kludge some corner cases that are clearly intended to be this are included in this optimization. That ends up rendering things like this better. But, in hires mode they no longer register as 1:1 since they end up looking like 2:1 instead. So the rendering errors return, but they're not as bad as in lores mode because there's an extra sub-pixel to deal with it.
In truth it's hard to say exactly what the "right" way to render this in hires mode even is since that's not even how a DS is supposed to work to begin with.
There's an optimization where quads that look like 1:1 sprites are rendered specially, and as a kludge some corner cases that are clearly intended to be this are included in this optimization. That ends up rendering things like this better. But, in hires mode they no longer register as 1:1 since they end up looking like 2:1 instead. So the rendering errors return, but they're not as bad as in lores mode because there's an extra sub-pixel to deal with it.
In truth it's hard to say exactly what the "right" way to render this in hires mode even is since that's not even how a DS is supposed to work to begin with.