Tuesday, September 8, 2020

Nintendo DS [OpenGL]












3D Vision fix for Nintendo DS emulators, mostly intended for melonDS (tested with the 0.9 version) but it also can work with DeSmuME.



What this fix does
- It stereoizes geometry, and sometimes sprites layers.
- I provide two different stereoization formulas. The default one is meant to be used with most games played with melonDS. The other one is a standard formula that should work with DeSmuMe, but only for 60fps games.
- 60fps games show 30fps per eye in 3D, but 30fps games (with melonDS) also show 30fps per eye. For that case, getting sequential or synchronized frames is random. Using fast forward for a bit may help. 


The fix, common for melonDS and DeSmuME
This is the link.


Installation (melonDS)
- Before installing the fix, configure all the emulator settings the way you want (high resolution, maximized window, etc). It's important to check the "Config -> Limit framerate" option to avoid problems
- Extract the fix contents in the folder of the melonDS emulator (like "melonDS_0.9_win64"), where "melonDS.exe" is. From this moment, every time you need to access a pop up config menu (like the controls or graphics) you need to temporarily rename the "opengl32.dll" file to something else. Otherwise the emulator will crash.
- Right click "melonDS.exe", go to the compatibility tab and set it to run as administrator and to disable fullscreen optimizations.
- Drag and drop a game ROM to the "melonDS.exe" file.


Installation (DeSmuME)
- Before installing the fix, configure all the emulator settings the way you want (high resolution but not as much as in melonDS, a big window size, etc).
- Extract the fix contents in the folder of the DeSmuME emulator (like "desmume-git#be2735b3-windows-x64"), where the emulator exe file is. From this moment, every time you need to access a pop up config menu (like the controls or graphics) you need to temporarily rename the "opengl32.dll" file to something else. Otherwise the emulator will crash.
- Copy the "3DVisionWrapper.ini" file that is inside the "desmume_wrapper_config" folder and paste it in the emulator folder.
- Right click the emulator exe, go to the compatibility tab and set it to run as administrator. Disabling fullscreen optimizations is optional and I didn't see a difference, unlike in melonDS.
- Important: use RTSS to limit the emulator exe to exactly 90fps.
- Drag and drop a game ROM to the emulator exe file.
- Sometimes the emulator may break the stereoization or invert it. Press the fast forward hotkey briefly to fix it.


Game compatibility
- For melonDS, check the "melonds_compatibility.txt" to see what games can or can't work. They are games I personally tested.
- For DeSmuME, in general you can play games that run at 60fps. But you won't get 3D from games that run at 30fps because of the way it repeats frames.


Emulator comparison table

melonDSDeSmuME
Can it run 60fps games?YesYes
Can it run 30fps games?YesNo
Stable at very high resolutions?YesNo
Does it have texture filtering?NoYes


Hotkeys
- Numbers (not numpad) from 1 to 0: convergence settings (1, 2, 3, 8, 16, 32, 64, 128, 256, and 0, respectively).
- o: default stereoization formula for melonDS. You don't need to press it at launch if it's what you want to use.
- k: different stereoization formula for melonDS, which works for a pair of games.
- l: addition of a depth check for the first stereoization formula. This makes Pokémons in battle in Black / White versions that scale too much with convergence be at screen depth. It isn't used by default because some polygons can be caught in other games or locations.


Recommendations
- Each screen has a 4:3 aspect ratio, and therefore the maximum separation is lower than when you play a 16:9 game. You can open "3DVisionWrapper.ini" and use a higher "DepthMultiplicationFactor" to compensate that. In theory, 1.333333 is the multiplier you need to get the equivalent max separation of a 16:9 game, assuming the full vertical space is being used.


If you liked the fix and want to contribute for more future fixes, you can donate to this PayPal account: masterotakusuko@gmail.com

5 comments:

  1. Never thought Nintendo DS games would look so good in 3d, not a single issue in those pics, and Castlevania DS in 3d so cool!

    ReplyDelete
  2. Very interesting, will have to check this out!

    ReplyDelete
  3. somebody has the configuration for a single screen please ?

    ReplyDelete
  4. Hi thanks for sharing, couldn´t make it work, there´s anything more missing in the tutorial?

    ReplyDelete
    Replies
    1. Couldn´t make it work downloading latest version of melonds or desmume and the fixes, but the other way Pcsx2 duckstation and flycast works perfectly and looks great, thanks for sharing

      Delete