Guides

Settings for Wind Waker in Oculus Rift DK2 with Dolphin VR

vlcsnap-2015-04-22-12h37m07s201People keep asking what settings I run to get good performance in my videos of The Legend of Zelda: Wind Waker running in Dolphin VR, the fork of the Dolphin Gamecube emulator with support for the Oculus Rift DK2 (see my YouTube playlist for this game). I don’t know for sure which settings are important as I haven’t experimented with everything, but here is what I have at the moment, and I currently get a high-quality experience with no serious artifacts and smooth head tracking about 90% of the time.

Specs and CPU

I have 2x NVIDIA GeForce GTX 980 (EVGA), but am only using one (SLI disabled), and an Intel Core i7 4770K @ 3.5 GHz (not overclocked) (full specs here).

For Dolphin VR, it’s critical to disable any and all processes that may consume even a little CPU while you’re playing. No virus scanner, no cloud computing like folding@home, no backup, no indexing, make sure the Oculus Config Tool is minimized to the tray, and if you see .NET Runtime Optimization Service (mscorvw.exe) using CPU in your Task Manager, follow this guide to eliminate it. Also consider unplugging any hardware peripherals you are not using.

NVIDIA Control Panel

nvidia1I run in Extended mode. I set my Rift DK2 display to run at 60 Hz, and reduce my main monitor resolution from 3840×2160 to 1920×1080 or lower. If you don’t have an NVIDIA GPU, you can do the same in your Windows Control Panel Resolution Settings by clicking your DK2 display, then “Advanced Settings”, then “Monitor” tab.

Note that sometimes running at 60 Hz will cause the Dolphin VR application to start out in high persistence mode. You’ll notice this because it will seem brighter than usual and there will be motion blur when turning your head. If this happens, exit, go run the latest Tuscany or OculusWorldDemo to flip to low persistence mode, and then run it again. Some users may perceive visible flicker when running at 60 Hz; if you’re one of them you should leave it at 75 Hz, and set up Dolphin differently.

I also set all my settings under “Manage 3D settings” to the highest performance settings. I don’t know if this makes a difference, but I do it just to be careful:

nvidia_high_performance_3d_settings

Dolphin VR

As of my episodes 27-32, I am using Dolphin VR version 4.0-6324 with Oculus Runtime 0.4.4 (I don’t know if Oculus Runtime 0.5.0.1 presents any issues – I’ll find out soon enough). You can download it from Oculus Share.

Under Options→Configure, make sure you set your Framelimit to 60:

ba0e3dd454b4c952555a470e3fa1909c

Under Options→Graphics, I’m using the OpenGL backend and setting Internal Resolution to 2x Native (1280×1056). I enable “Skip EFB Access from CPU” and “Ignore Format Changes”. I leave the high-quality settings “Scaled EFB Copy”, “Per-Pixel Lighting”, and “Force Texture Filtering” enabled, but if you have performance trouble you can try disabling these.

dolphin_graphics_settings

Under Options→Audio Settings, I have DSP HLE Emulation (fast) set.

Next, Options→VR Settings. I only touch the first tab, VR. The critical setting is that I set Synchronous Timewarp to “1” to pull up from 30 FPS to 60 FPS (there is not a checkbox to go from 30 to 60, so we have to set it manually). Edit: I also found it was necessary to set Timewarp VSync Tweak to 0, not 0.0040 as recommended in build 7252. For the other settings, you can play around with them – I find HQ Distortion helps quality at pretty low cost, and I find both low persistence and position tracking to be critical for a good experience.

I experimented with using Opcode Replay instead of Synchronous Timewarp (set Sync Timewarp to 0, 0 and Opcode Replay to 1, 0) and this works and has less artifacts at the edge of the frame, but has more judder for me.

5bee340e2e66f90fbbe34c155f06e8d8Finally, right-click on your Wind Waker ROM and choose Properties. Under the VR tab, you will see a textbox at the bottom that gives you the developers’ advice on settings for best performance. Currently it says:

Disable Culling using AR Codes, Set Timewarped Frames to 1, Skip EFB, Ignore Format Changes, Use higher internal resolution (eg. 2.5x) to read text. For real telescope, zoom in 3x.

I adjust only one setting on the VR tab, setting Camera Forward from 0.6 to 0.2. For me, this avoids issues where Link gets way too close up in my face when he gets an item from a treasure chest.

The critical bit of the advice above is to disable culling using AR codes. This will avoid pop-out/culling artifacts in your periphery and behind you as the in-game camera moves (objects disappearing). Dolphin VR has added these AR codes to the included AR code list for Wind Waker, so just visit the AR Codes tab and enable them:

625af70ea5e4c27b734183adc4310325

To reduce artifacts in certain lava areas I’m also using a “Disable heat blur” AR code (003F6B2A 00000000). You can enable the First Person Mode AR code for a first person experience (there is a built-in one, and I added another, which is 043F9020 10000000
04122CB8 38004000), but this will prevent the use of certain critical in-game items like the sail, telescope, and grappling hook. Using these items can hang your game!

I have additional AR codes for 16:9 aspect ratio (043FA998 3FE38E39) and Disable HUD (01E00EFA 08000000 903ED848 00000000) but I only enable these in non-VR mode to collect background footage of the game for my talking segments.

And that’s it! If anything is unclear in this guide, or there are other settings you want to see, please give me a shout at eVRydayVR@gmail.com. Thanks!

Advertisements

3 thoughts on “Settings for Wind Waker in Oculus Rift DK2 with Dolphin VR

  1. Great guide, only one clarification, if Dolphin VR start out in high persistence mode, the best way to get low persistence is opening the vr configuration in dolphin and uncheck and recheck the low persistence checkbox.

    Like

  2. You should be to run at 75Hz, and use Opcode Replay if you uncheck “Disable Idle Skipping (speed up)” in the config tab, then choose the 30->75fps option in the VR settings. Framelimit would have to be set to 75hz as well. Sorry the settings are a bit awkward. I’ve fixed this now in the trunk, and it should run without having to mess with the “Idle Skipping” option in the next version (coming soon).

    Also, disabling EFB copies will give a large speed boost, but will cause your shadow to stop updating. I think it’s worth it for the ability to run at a higher resolution, but I guess other opinions may differ!

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s