Request: Shader to produce hybrid layout for Nintendo DS games

Hello!

As you may know, a common problem with emulating DS games is that it’s difficult to fit the system’s two screens onto a standard computer monitor in a graceful way. I actually don’t know of any emulators that handle this problem gracefully, not even dedicated DS emulators.

The default RetroArch behavior with DS games, on a standard monitor, puts the top and bottom screens in a narrow column in the middle of the screen, leaving an ocean of black on either side. The result is quite small on most monitors.

Remember, though, that a large number of DS games have a “main screen” where most of the action takes place, relegating the other for displaying a menu or something of the like. If you move the two screens all the way to one side (left or right, doesn’t matter; you could let the user configure this), you could fill the blank space using a magnified copy of the main screen.

So, basically, the result would look something like this (not to scale):

If you leave out the screen gap, and scale the main screen by 2x (using, say, nearest neighbor), the resulting layout has an aspect ratio of 2:1, which fills the majority of a standard 16:9 screen with only two narrow black bars at the top and bottom. It makes the main screen very large and easy to see, keeps both screens visible at all times, and doesn’t distort games that use both screens together to show a single large image. The only main drawbacks that I can see are that it arguably wastes screen space by duplicating one of the screens, and that it is not ideal for games that don’t really have one single “main screen.” Even this bare-bones implementation would greatly improve the experience of playing DS games on Retroarch for many users.

If you wanted to go the extra mile, here’s a few ideas for extra features you could add:

[ul] [li]Allow the user to specify the size of the gap between the top and bottom screens[/li][li]Allow the user to specify which shader is used to upscale the main screen, and allow them to apply a different shader to the other screens if desired[/li][/ul]

Thank you very much for taking the time to read through my request.