cancel
Showing results for 
Search instead for 
Did you mean: 

Dolphin Emulator DK2 compatibility

lohan
Honored Guest
The title pretty much says it all. I would like to know if anyone here has already tried to run the dolphin emulator with the DK2. Some say it should work. If yes this one should give us hundreds of titles to try out during the "starving period" even if those Wii/Gamecube titles don't use the full potential of the DK2.
1,298 REPLIES 1,298

OculusRiftRocks
Explorer
I would like to re-live the torture scene in MGS1 with the rift 😄

2EyeGuy
Adventurer
EDIT: New Christmas version 4.0-5286:
https://dl.dropboxusercontent.com/u/101772879/dolphin-vr-x64-4.0.exe
I accidentally included the sixense and iwear dll files in the installer, and can't be bothered to remake the installer. So ignore the part in the readme that says "not included".

This is based off of the latest Dolphin version on GitHub, as of Sunday 3rd August.

Make sure you read the readme.txt file.

GameCube games I have tested, from best to worst:
Wind Waker
Animal Crossing GameCube (near-clipping when turning head)
Bomberman Generation (angled camera)
Mario Party 4 (working, angled camera)
Mario Party 5 (white characters at start)
Baldur's Gate Dark Alliance (lights at HUD depth, angled camera)
Pikmin (3D HUD at wrong depth)
Pikmin 2 (3D HUD at wrong depth, far clipping)
Zelda Collector's Edition: OOT (Giant A button behind you)
Zelda Collector's Edition: Majora's Mask (Giant A button behind you)
Sonic Adventures DX (white subtitles and some screens)
Donkey Konga 2 (slight menu issues)
Tony Hawks Pro 4 (some intros missing head-tracking)
Four Swords Adventures (z-fighting, letterboxing)
Mario Kart Double Dash (dirty screen)
Paper Mario (works, a few things render strangely)
Soul Calibur 2 (HUD is ocluded by world behind it)
F-Zero GX (sort of works, resets)
Metroid Prime 2 Echoes GameCube (helmet at wrong depth, lots of culling)
Resident Evil 4 (intro weirdness, playable)
Zelda Collector's Edition: Wind Waker Demo (larger, sometimes distorted)
Star Fox Assault (menu depth problems)
Super Smash Bros. Melee (missing textures)
Kirby Air (sometimes one eye, change internal resolution during game to fix)
Eternal Darkness (HUD too close, scale not consistent)
Metroid Prime (slow, wrong depths)
Twilight Princess GameCube (bad orange rendering over HUD)
Need for Speed Underground (messed up menus)
Need for Speed Hot Pursuit 2 (menu and HUD problems)
Pokemon Coluseum (weird doubled menus and HUD, missing textures)
Killer 7 (impossible to proceed past menu)
Beyond Good and Evil (strobing)
Time Splitters (black noise)
Sonic Heroes (most things missing)
Luigi's Mansion (only intro works)

Zelda Collector's Edition: Zelda 1 (broken)
Zelda Collector's Edition: Zelda 2 (broken)
Game Boy Player (freezes)
Star Wars Rogue Squadron III (freezes)
Star Wars Rogue Leader (crashes)
Final Fantasy Crystal (Crash, CPU)
Super Mario Strikers (Crash)
Viewtiful Joe (crash)
Pokemon Box Ruby and Sapphire (crash)


Nobody has it except me, unless they built it themselves from my source on GitHub (with the LibOVR folder copied into Externals).
I don't have a DK2 (I'm in Australia), but I do have it working on my DK1 using the SDK 0.4.0 with DK1 Legacy App Support switched off, and with the head neck model working, which is as close as I can get to testing it on a DK2. Currently it is only working in Extend Desktop mode, but not in Direct HMD mode, and I have no idea why!
When I get it working in Direct HMD mode, remove a few debug prints, and copy my user per-game settings into the default per-game settings files, and write a readme, I'll release it. Oh, I should merge the Hydra support in first too.

Who says it doesn't use the full potential of the DK2?! As if I wouldn't use its full potential. 😄 Well, unless you count head-tracked sound, because I'm not adjusting the sound for head-tracking yet (and when I do, I won't be able to do much, since I only have a raw stereo signal to start from).

I'm not using Dolphin's full potential yet though. 😞 A lot of games still aren't working properly, due to unimplemented-in-VR features such as render-to-texture and eXternal Frame Buffer, and glitches with the depth buffer. And some games are just too slow.

NES and Super Nintendo Virtual Console games aren't working in VR yet. Most Sega and TurboGrafx Virtual Console games are working though.

I couldn't get any Nintendo 64 Virtual Console games to run in Dolphin, perhaps I dumped them wrong.

For the GameCube, Zelda Wind Waker (not HD) is working perfectly. F-Zero GX is sort-of working except for some menus. But I haven't had a chance to test other GameCube games (I never owned a GameCube).

For the Wii, some games like Attack of The Movies 3D, are working really well. Link's Crossbow Training is mostly working, except for the water. The most popular AAA games generally aren't working yet, or are only sort of working, including Twilight Princess, Skyward Sword, Metroid Prime 3, etc. But lots of other games work. And games that don't work are still often worth standing inside and looking around a bit, even if they aren't playable.

EDIT: Some games I have already set the scale, HUD depth, camera pitch, etc. for, but other games will require the user to do that in the settings or with the keys.

2EyeGuy
Adventurer
"OculusRiftRocks" wrote:
I would like to re-live the torture scene in MGS1 with the rift 😄


I haven't got or tested Metal Gear Solid: The Twin Snakes yet. So I don't know if the game will be playable, or if that scene is even rendered in 3D.


lohan
Honored Guest
Thanks 2eye for the roundup!

OculusRiftRocks
Explorer
Wow thanks for the update.

Really looking forward to trying it out much later when its more stable, I take it you are using the buit in camera hack to pan the camera around, I remember you were able to hold right mouse button and move the mouse and see all around the area?, and yeah with the built in "widescreen hack" (actually more a fit to window hack) is really awesome you can defenitly expand the vertical Field of view on practilly any game which im gussing if perfect for the rift.

for MGS may want to look into FPS mode Action replay code

http://bsfree.org/?s=17&d=6&g=6466.

never tried it myself, can only assume its like bieng in FPS mode but you are able to move at the same time?

2EyeGuy
Adventurer
"OculusRiftRocks" wrote:
Wow thanks for the update.

Really looking forward to trying it out much later when its more stable, I take it you are using the buit in camera hack to pan the camera around, I remember you were able to hold right mouse button and move the mouse and see all around the area?, and yeah with the built in "widescreen hack" (actually more a fit to window hack) is really awesome you can defenitly expand the vertical Field of view on practilly any game which im gussing if perfect for the rift.

for MGS may want to look into FPS mode Action replay code

http://bsfree.org/?s=17&d=6&g=6466.

never tried it myself, can only assume its like bieng in FPS mode but you are able to move at the same time?


Sort of. Actually it's separate from the built in camera hack and the widescreen hack, but it uses the same principles.
But it's more complicated than that because of the existence of 2D layers. I decided that 2D layers should be like floating panes of glass anchored to the world. And that they have to cover exactly the same section of the world they do normally, so your cursor, cross-hair, labels, menus, etc. all line up perfectly with the world behind them. And that they should have thickness rather than just being 2D, since orthographic rendering still uses z values, so different HUD elements could be at different depths. And 2D that doesn't have anything 3D in the scene with it should be treated differently. etc.

I've never played MGS before, or anything in that series. So I don't really know anything about it, except that it is available for GameCube, and therefore theoretically playable in Dolphin.

2EyeGuy
Adventurer
EDIT: NEW VERSION, SAME URL. Download again if your safety screen hasn't been replaced by a dialog box yet!

OK, I gave up on trying to get Direct HMD working, so you have to use Extended.

So I am releasing the Dolphin emulator for the Oculus Rift DK1 or DK2 (untested) and (optionally) Razer Hydra.

It's still buggy (and not all bugs are my fault).

Some recommended games:
Zelda Wind Waker (for GameCube)
Link's Crossbow Training
Attack of the Movies 3D (choose the 2D mode, it's still in 3D)
Animal Crossing
Centipede: Infestation
Little King's Story
Golden Axe (virtual console)
Alex the Kidd (virtual console)
ToeJam & Earl (virtual console)
Dungeon Explorer (virtual console)

Not working:
Any NES or SNES games.

If Wind Waker isn't showing the logo correctly, stop it and launch it again. I think it has to do with the Health and Safety Warning.

Enjoy, and let me know how it goes.

https://dl.dropboxusercontent.com/u/101772879/dolphin-vr-x64-4.0.exe

If you set up a game so that the scale and HUD look right, you can post your config file (and emulator settings) here for other people.

Also if you have any requests for games you want me to get working, let me know.

nuB
Honored Guest
So, any instruction on how Dolphin outputs to the rift?
I'm not seeing a Rift setting anywhere.
Or am I to understand this outputs to the rift exclusively?
I'll try and test it out!

2EyeGuy
Adventurer
"nuB" wrote:
So, any instruction on how Dolphin outputs to the rift?
I'm not seeing a Rift setting anywhere.
Or am I to understand this outputs to the rift exclusively?
I'll try and test it out!


There is no setting. If your Rift is plugged in (and the 0.4.0 Runtime is installed) when you launch Dolphin, it will use the Rift. If your Rift is not plugged in, (and a Vuzix VR920 is not plugged in either) it will be like normal Dolphin. The same with the Razer Hydra. Either way, Dolphin still looks like Dolphin until you play a game, or right click a game and choose properties and the VR tab.

But the Rift support only works in Extend Desktop mode, not Direct HMD mode.

Pressing the Play button will start the game on the Rift, so you need to put your HMD on quickly after that.

The readme file explains it all:

Dolphin VR
(Unofficial Dolphin build with Oculus Rift support.)
Open Source licence: GPL v2

The official Dolphin website: https://dolphin-emu.org
See the website for non-VR related help, and the Wiki for game specific information.
Don't both the official Dolphin devs with VR questions or issues, they don't know.

The VR branch: https://github.com/CarlKenner/dolphin/tree/VR-Hydra
Disscusion of the VR branch: https://developer.oculusvr.com/forums/

How to run:

Optional: Copy sixense_x64.dll, iweardrv.dll, and iwrstdrv.dll into your Dolphin directory.

Oculus Rift DK1 to DK2 are supported. You need the Oculus 0.4.0 runtime installed.
Set the Rift Display Mode to "Extend Desktop to the HMD", or it won't work!
Plug the Rift in, and make sure the service is running, before launching Dolphin.

Only the OpenGL renderer will work. In Graphics, turn off Render To Main Window.
In the Graphics options Enhancements tab set the internal resolution to a multiple
of the native. 1x Native is much too blurry, I use 2.5x Native for my DK1.
Lower resoultions are faster but blurrier.
I haven't tested Anti-Aliasing or Anisotropic filtering, so use at own risk!
Post-Processing has no effect and is not implemented.
eXternal Frame Buffer is always disabled regardless of what you choose.
Turning Free-Look on in the Advanced tab allows you to walk around with Shift+WASD.
The OnScreen Display or debug information doesn't work in VR mode, so don't bother.

Choose a game and click the Play button to start. Then put on the Rift.
Keep the mouse over the Rift's window, and click to focus input.

Per-game Settings:
Virtual Reality needs to be the correct scale, and the 2D elements need to be at
the correct depth. It's different for every game.
You can edit the per-game settings by right clicking a game in the list and
choosing "properties". It doesn't take effect until you restart the game.
You can also adjust the settings with the keyboard during the game.

Free-Look Keys:
(Free-Look must be turned on. These keys often conflict with game controls,
so you may need to map your game controls to other keys or gamepad.)
Shift+WASD to move around. If movement is too slow, the scale is too large.
Shift+Q move down, Shift+E move up.
Shift+R reset free-look position, also resets Rift position.
Shift+9 or Shift+0 halve or double speed. But fix the scale first instead.

VR 3D Settings Keys:
(Only affects scenes with some 3D perspective elements.)
Shift+R to recenter Rift.
Shift+- and Shift+= to adjust the scale to make the world smaller or bigger!
(Scale is important for VR, so try to get it life-size. Make it smaller first
until it is toy size, then bigger until it is life-size. Move the camera closer
with Free-Look so you can see close-up to a person.)
Shift+. and Shift+/ to move the HUD closer or further and change its size.
Shift+[ and Shift+] to make the HUD thinner or thicker.
Shift+P and Shift+; to move the camera closer or further from the action.
(Permanent per-game setting, not like Free-look. Also adjusts the HUD size
to compensate for new camera position so aiming is right at Aim-Distance.
Aim distance must be set in game properties.)
Shift+O and Shift+L to tilt the camera up or down by 5 degrees.
(Correct pitch is also important for VR, you want the floor horizontal.
But most third person games angle the camera down at various angles depending on
what is happening in the game. Tilting tha camera up 10 degrees is usually a
good compromise.)
Esc to stop emulation and give you the option to save VR settings.

VR 2D Settings:
(Only affects scenes which have no perspective projection and only 2D elements.)
Shift+I and Shift+K to tilt the 2D camera up or down by 5 degrees.
(This is good for top-down or 2.5D menus, intros, or games, for realism.)
Shift+U and Shift+J to move 2D screen out or in by 10cm, without changing size.
(I recommend less than 4 metres away so you can still feel its depth.)
Shift+M and Shift+, to scale 2D screen smaller or bigger.
(It looks like the screen is moving closer or further, but it isn't!
Stereoscopic depth isn't changing, just the size. I use this to make the screen
life size in Virtual Console games. Use Free-look to move closer to a person
to adjust the size to real-life.)
Shift+Y and Shift+H to move the 2D screen up and down by 10cm.
(Move the screen down/camera up for 2.5D games for more realism.
Move the screen up/camera down for 2D platform games to make the ground level
with the real floor. Move the screen up for top-down games so you can see better.)
You can't adjust the 2D screen thickness with the keys yet. Use the game properties.
Esc to stop emulation and give you the option to save VR settings.

VR debugging keys:
(Don't use these!)
Shift+B and Shift+N to change selected debug layer.

Other useful keys:
Alt+F5 to disconnect/reconnect virtual Wii remote.
Shift+F1 to Shift+F8 to save game with savestate 1 to 8.
(So you can exit and save and edit your settings.)
F1 to F8 to load game from savestate 1 to 8.
Esc to stop game
(It pauses to ask you to confirm stopping, so you can also use this to pause.
Take off the Rift after pressing this to view the dialog box.)
See the menus for more keys, these and other keys can be adjusted in the menus,
unlike the hardcoded Free-look and VR keys.

Razer Hydra:
You need sixense_x64.dll (not included) in your folder if you want to use the Hydra.
Exit the Razer Hydra and Sixense system tray icons before playing.

Unlike the Rift, you can plug in or unplug the Razer Hydra at any time.

This probably also supports the new Sixense STEM controller that Sixense is bringing out soon, which is likely to be backwards compatible.

This patch has no effect (dolphin behaves the same as before except for a log message) unless the user has sixense_x64.dll (part of the Sixense driver) installed (or sixense.dll for 32 bit). Users can get it from http://sixense.com/windowssdkdownload and put it in their Dolphin exe folder.

When the dll is present, and a Hydra is connected, and not sitting in the dock, and Wiimote 1 is set to Emulated Wiimote, the Hydra will automatically control Wiimote 1 and its Nuchuk or Classic Controller extensions. It will also control Gamecube controller 1 if it is enabled. While holding the hydra, the actual tilt will override any other emulated tilt, and the actual pointing will override any other emulated IR, and the actual joysticks will override other emulated joysticks, but emulated buttons, swings and shakes from other inputs will still work additively.

It currently uses a fixed control scheme to make it plug-and-play:
Wiimote:
A: right start button (middle)
B: right bumper or trigger (underneath)
Minus: right 3 button (top left)
Plus: right 4 button (top right)
Home/Recenter IR: push right stick in (top middle)
Dpad: right analog stick (top middle)
1: right 1 button (bottom left)
2: right 2 button (bottom right)
IR pointer: right controller's position in space relative to where you pressed Home
Orientation/Motion sensing: right controller's orientation/motion
Swap extension: push left stick in

Nunchuk:
C: left bumper (top) or left 1 button (bottom left)
Z: left trigger (bottom) or left 2 button (bottom right)
Stick: left stick
Orientation/Motion sensing: left controller's orientation/motion

Classic:
L: left analog trigger (bottom left unlike Classic Controller Pro)
ZL: left bumper (top left)
R: right analog trigger
ZR: right bumper
left stick: left stick
right stick: right stick
dpad: left buttons like if tilted inwards, 3=up, 2=down, 1=left, 4=right
a, b, x, y: right buttons like if tilted inwards: 2=a, 1=b, 4=x, 3=y
minus: left start
plus: right start
home/recenter IR: push right stick in

Sideways Wiimote (if left controller is docked):
turn right hydra sideways yourself, same as above wiimote controls

Sideways Wiimote (if holding both controllers):
steering/tilt left-right: angle between controllers (like holding imaginary wheel or sideways wiimote with both hands)
tilt forwards-backwards: tilt controllers (only measures right one) forwards or backwards
motion sensing: shake or swing controllers (only measures right one)
1: right 1 button (bottom left)
2: right 2 button (bottom right)
A: left or right start button
B: left or right bumpers or triggers
minus: right 3 button (top left)
plus: right 4 button (top right)
home/recenter IR: push right stick in

GameCube:
L: left analog trigger (bottom left like GameCube controller)
Z: left or right bumper (top left or top right)
R: right analog trigger (bottom right)
analog stick: left stick
C-substick: right stick
dpad: left buttons like if tilted inwards, 3=up, 2=down, 1=left, 4=right
a, b, x, y: right buttons like GameCube layout: 2=a, 1=b, 4=x, 3=y
start: right start

General:
Cycle between Wiimote/sideways Wiimote/Wiimote+Nunchuk/Classic: push left stick in
(note that doesn't affect the gamecube controller)
Recenter IR pointer: push right stick in (press again to get out of home screen)
Recenter hydra joysticks: dock then undock that controller
(if that doesn't help, disconnect and reconnect nunchuk/classic extension)

Troubleshooting:
Hydra isn't recognised: make sure sixense_x64.dll is in Dolphin's exe folder (see above).
Wii cursor isn't showing: push the right analog stick in, then exit the home screen.
IR Pointer doesn't aim smoothly: it uses position rather than angle, so move rather than aiming.
Orientation/motion sensing is messed up: make sure base is straight with cables at back, then dock both controllers and pick them up again. If that doesn't work, make sure you have the Sideways Wiimote setting set correctly in Wiimote settings.
Hands are swapped: The nunchuk should be the controller that says LT (or q7) on the triggers, so hold that one in your left hand.
Joystick is messed up: dock then undock both controllers, then disconnect and reconnect the extension in Wiimote settings.


## System Requirements
* OS
* Microsoft Windows (Vista or higher).
* Linux or Apple Mac OS X (10.7 or higher).
* Unix-like systems other than Linux might work but are not officially supported.
* Processor
* A CPU with SSE2 support.
* A modern CPU (3 GHz and Dual Core, not older than 2008) is highly recommended.
* Graphics
* A reasonably modern graphics card (Direct3D 10.0 / OpenGL 3.0).
* A graphics card that supports Direct3D 11 / OpenGL 4.4 is recommended.

## Command line usage
(not needed for VR)
`Usage: Dolphin [-h] [-d] [-l] [-e <str>] [-b] [-V <str>] [-A <str>]`

* -h, --help Show this help message
* -d, --debugger Opens the debugger
* -l, --logger Opens the logger
* -e, --exec=<str> Loads the specified file (DOL,ELF,WAD,GCM,ISO)
* -b, --batch Exit Dolphin with emulator
* -V, --video_backend=<str> Specify a video backend
* -A, --audio_emulation=<str> Low level (LLE) or high level (HLE) audio

Available DSP emulation engines are HLE (High Level Emulation) and
LLE (Low Level Emulation). HLE is fast but often less accurate while LLE is
slow but close to perfect. Note that LLE has two submodes (Interpreter and
Recompiler), which cannot be selected from the command line.

Available video backends are "D3D" (only available on Windows Vista or higher),
"OGL". There's also "Software Renderer", which uses the CPU for rendering and
is intended for debugging purposes, only.

## Sys Files
* `totaldb.dsy`: Database of symbols (for devs only)
* `GC/font_ansi.bin`: font dumps
* `GC/font_sjis.bin`: font dumps
* `GC/dsp_coef.bin`: DSP dumps
* `GC/dsp_rom.bin`: DSP dumps

The DSP dumps included with Dolphin have been written from scratch and do not
contain any copyrighted material. They should work for most purposes, however
some games implement copy protection by checksumming the dumps. You will need
to dump the DSP files from a console and replace the default dumps if you want
to fix those issues.

## Folder structure
These folders are installed read-only and should not be changed:

* `GameSettings`: per-game default settings database
* `GC`: DSP and font dumps
* `Maps`: symbol tables (dev only)
* `Shaders`: post-processing shaders
* `Themes`: icon themes for GUI
* `Wii`: default Wii NAND contents

## User folder structure
A number of user writeable directories are created for caching purposes or for
allowing the user to edit their contents. On OS X and Linux these folders are
stored in `~/Library/Application Support/Dolphin/` and `~/.dolphin-emu`
respectively. On Windows the user directory is stored in the `My Documents`
folder by default, but there are various way to override this behavior:

* Creating a file called `portable.txt` next to the Dolphin executable will
store the user directory in a local directory called "User" next to the
Dolphin executable.
* If the registry string value `LocalUserConfig` exists in
`HKEY_CURRENT_USER/Dolphin Emulator` and has the value **1**, Dolphin will
always start in portable mode.
* If the registry string value `UserConfigPath` exists in
`HKEY_CURRENT_USER/Dolphin Emulator`, the user folders will be stored in the
directory given by that string. The other two methods will be prioritized
over this setting.


List of user folders:

* `Cache`: used to cache the ISO list
* `Config`: configuration files
* `Dump`: anything dumped from dolphin
* `GameConfig`: additional settings to be applied per-game
* `GC`: memory cards
* `Load`: custom textures
* `Logs`: logs, if enabled
* `ScreenShots`: screenshots taken via Dolphin
* `StateSaves`: save states
* `Wii`: Wii NAND contents

## Custom textures
Custom textures have to be placed in the user directory under
`Load/Textures/[GameID]/`. You can find the Game ID by right-clicking a game
in the ISO list and selecting "ISO Properties".