Saturday, April 28, 2018

RetroArch [DX11]

3D mod for RetroArch. This is essentially a depth and curvature mod that also includes anaglyph to 3D Vision conversion (for the Virtual Boy, for example). It's done with regex to ensure future compatibility.


Update (2018-04-28): added depth and curvature support for slang shaders. Not all of them are compatible, and none of them are compatible with the anaglyph to 3D conversion.


Intallation
- Unzip this file in your "RetroArch" folder (or however you called it), where "retroarch.exe" is.
- Go to the "Driver" settings in RetroArch, and select the "d3d11" Video Driver.
Step 1: DX11 renderer

- You may need to restart the emulator after the first time you set it.
- Make sure you are using exclusive fullscreen in the video options.


Depth and curvature usage
- Once you have loaded a game with a compatible DX11 emulator (non OpenGL specific emulators), press "t" to unlock separation and convergence, and/or press "v" to unlock curvature, which will be separation and convergence dependant (more convergence = more pronounced effect).
- Enabling bilinear filtering in RetroArch will make curvature look less pixelated (after all we are warping sharp pixels), but I still prefer the look of unfiltered integer scaling.

You can see what I mean here (download the images to compare them).
Unfiltered:
unfiltered

Bilinear:
bilinear


Anaglyph to 3D Vision
These are the instructions about how to convert anaglyph 3D to 3D Vision in a Virtual Boy emulator.

- Select the "Beetle VB" core and boot a Virtual Boy game.
step2

- In the core options (Quick Menu -> Options), you need to select "red & cyan" as the anaglyph preset. If it's the first time you set it, boot the game again.
step3

- The game will look like this without using any of my hotkeys. You get the same anaglyph image in both eyes.
step4

- Press the "u" key to separate the red color component from the others. This is enough to give you a real 3D image in 3D Vision.
step5

- However, colors can be uncomfortable. With the "j" key you can change the right eye view to something more green instead of blue. This is optional.step6

- What I recommend instead is installing ReShade, opening the configuration with shift+F2 and using the "Monochrome" effect with the color coefficients this screenshot shows (R: 147, G: 184, B:18). This will produce a black and white image with almost the same gray colors for both eyes. It's essentially a black and white console, so you won't lose any color information. You can assign this effect to a key and not use it by default.
step7

- Results, showing how it's better than having different colors per eye.
step8

- Using the "t" hotkey, you can unlock the ability to move the 3D scene more into depth, or the opposite. Whatever you like the best.step9


If other emulators (currently or in the future) offer anaglyph options, the same method should work.


Known issues
I can't apparently make the SBS/TAB/interlaced shader work correctly at boot, but there's a workaround that works:
- Boot a game normally.
- Alt+tab out of the emulator, open "d3dx.ini" and uncomment the ";include = ShaderFixes\3dvision2sbs.ini" line.
- Go back into the emulator, press F10 and then start pressing F11 to cycle through different 3D modes.

You'll need to do that after every game boot, not just every RetroArch boot. This happens because RetroArch restarts the window every time you run a game. Sorry for the inconvenience.


Hotkeys
- x: convergence presets.
- j: green color for the right eye view toggle.
- t: separation and convergence unlock toggle.
- v: curvature unlock toggle.
- u: anaglyph to active 3D conversion by separating color channels.

None of those effects are enabled by default because I assume you'll want to use different emulators at different times.


Note
- PPSSPP already works in 3D in DX11 mode (in RetroArch and also in the standalone emulator). The convergence hotkey probably doesn't suit the convergence needs of PPSSPP.
- Remember to not use slang shaders if you're going to use the Virtual Boy emulator. Image depth and curvature are safe to use depending on the shader (curvature is less compatible).
- The Virtual Boy works at 50fps, so I recommend playing in 3D at 100Hz (50Hz per eye).


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

1 comment: