Text rendering issue with Solatorobo: Red the Hunter

Ask questions about DraStic or discuss compatibility issues here.
Post Reply
mark_k
Posts:9
Joined:Tue Sep 22, 2015 10:13 am
Text rendering issue with Solatorobo: Red the Hunter

Post by mark_k » Mon Oct 12, 2015 10:20 am

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?
Attachments
Normal3D.png
Normal rendering
Normal3D.png (238.49KiB)Viewed 5102 times
HighRes3D.png
High-res rendering
HighRes3D.png (230.86KiB)Viewed 5102 times

Exophase
Posts:1715
Joined:Mon Aug 05, 2013 9:08 pm

Re: Text rendering issue with Solatorobo: Red the Hunter

Post by Exophase » Mon Oct 12, 2015 1:29 pm

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.

Post Reply