Dolphin, the GameCube and Wii emulator - Forums

Full Version: DorsalVR: VR interface with motion controls
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
(04-09-2021, 01:57 PM)iwubcode Wrote: [ -> ]So, I am planning on looking into adding an orthographic projection matrix customization system. Assuming it is useful at all. I thought it might be fun for 2d games. It could be used to fix this specific game issue most likely.

Oh, nice! Please let me know when you get somewhere with that, sounds promising.

(04-09-2021, 01:57 PM)iwubcode Wrote: [ -> ]Games do all sorts of crazy things.

For instance, the Last Story will draw a 3d scene, then it needs to do something so it draws over that scene in a small corner in the upper left.  WHOOPS.  So it then draws on top of that portion of the screen with just the portion that was missing.  It does this by drawing a 2d segment.

Ahh, I love game development Big Grin

(04-09-2021, 01:57 PM)iwubcode Wrote: [ -> ]Maybe you could have a toggle that takes you into "TV" mode that users would use for menus?  Inconvenient but it's something.

That is a great idea. I remember Minecraft for Gear VR did something really cool with that concept:

https://www.youtube.com/watch?v=_rYfkDmSRKs

And I think this is what VorpX does with its "Edge Peek" system, too - let you switch from being "inside" the game to viewing the game on a big flat screen.

(04-09-2021, 01:57 PM)iwubcode Wrote: [ -> ]Keep up the good work MichaelJW.  I have more surprises for you soon Smile Smile

Thanks! That's exciting!

oldgoose

ah I see, I think I understand the problem. It's because my setup is a gaming laptop which is why I have two graphics cards. I've ran the DGXIhybrid app which shows the same. Also I've tried as you suggested and set DorsalVR and Dolphin to be run under the integrated under Windows system settings and also via the Nvidia app. Sadly as it's a laptop I don't think I can change the primary display. Let me know if there's anything else I can try, thanks


DXGI adapters:

  NVIDIA GeForce GTX 1070 (0.0x000184B9)
    \\.\DISPLAY1
  Intel® HD Graphics 630 (0.0x00018062)
  Microsoft Basic Render Driver (0.0x0001847E)

Minimum power: Intel® HD Graphics 630 (0.0x00018062)
High performance: NVIDIA GeForce GTX 1070 (0.0x000184B9)

Hybrid: Output \\.\DISPLAY1 is shareable by DXGI adapters:
  - Minimal power adapter: Intel® HD Graphics 630 (0.0x00018062)

  - High performance adapter: NVIDIA GeForce GTX 1070 (0.0x000184B9)
(04-11-2021, 08:11 PM)oldgoose Wrote: [ -> ]ah I see, I think I understand the problem. It's because my setup is a gaming laptop which is why I have two graphics cards. I've ran the DGXIhybrid app which shows the same. Also I've tried as you suggested and set DorsalVR and Dolphin to be run under the integrated under Windows system settings and also via the Nvidia app. Sadly as it's a laptop I don't think I can change the primary display. Let me know if there's anything else I can try, thanks


DXGI adapters:

  NVIDIA GeForce GTX 1070 (0.0x000184B9)
    \\.\DISPLAY1
  Intel® HD Graphics 630 (0.0x00018062)
  Microsoft Basic Render Driver (0.0x0001847E)

Minimum power: Intel® HD Graphics 630 (0.0x00018062)
High performance: NVIDIA GeForce GTX 1070 (0.0x000184B9)

Hybrid: Output \\.\DISPLAY1 is shareable by DXGI adapters:
  - Minimal power adapter: Intel® HD Graphics 630 (0.0x00018062)

  - High performance adapter: NVIDIA GeForce GTX 1070 (0.0x000184B9)

I was just taking a look this weekend at other ways to mirror the screen and I've found a newer API that might do the trick. I'll let you know when I've implemented it. 
(04-11-2021, 08:11 PM)oldgoose Wrote: [ -> ]ah I see, I think I understand the problem. It's because my setup is a gaming laptop which is why I have two graphics cards. I've ran the DGXIhybrid app which shows the same. Also I've tried as you suggested and set DorsalVR and Dolphin to be run under the integrated under Windows system settings and also via the Nvidia app. Sadly as it's a laptop I don't think I can change the primary display. Let me know if there's anything else I can try, thanks

I've switched to the newer Windows.Graphics.Capture API, which might support hybrid systems. I'm not 100% sure whether it will - I can't find anyone talking about it on the web. Please download the dev build here when you have a chance and let me know if it works for you: http://michaeljw.com/scrap/DorsalVR-DevBuild.zip

The UI is very rudimentary; there isn't even a way yet to bring it back once you close it! Use the dropdown to pick which source you want. In theory it should allow you to choose any monitor or window, but in practice some windows just fail for reasons I'm not yet clear on. (I think it's partly to do with whether the window is in the background.)

If the screen is correctly mirrored but gets frozen, try changing which window is on top on your computer (i.e. Dolphin or DorsalVR).

I'll iron all these problems out over time, but we can see if this fixes the hybrid graphics problem now at least Smile 

kurt91

(04-07-2021, 01:38 PM)iwubcode Wrote: [ -> ]From a Free Look perspective, my end-goal isn't VR but just a very versatile camera system with lots of fun bells and whistles.

However, from what I understand from talking with Michael, VR is still a ways away from working well.  From a Dolphin perspective the current implementation works for 3DOF but is a bit nausea inducing due to drift.

No guarantee they will be merged but I have open merge requests to support 6DOF and also fix the drift (with some hacks on the DSU side).

Just curious but what did you have in mind if all the pieces are available?  I suppose we could eventually have a "VR" profile.

It's also worth noting there is still interest by one developer to support VR natively, so that may eventually come to pass.

Man, I'm sorry for just posting and then vanishing completely. I actually kind of forgot that I made a profile on the forums. Usually with sites like these, I'll make a profile just for bug-reporting or asking questions for troubleshooting purposes.

Like I said before, I don't have my headset available at the moment. I live in a college dorm, and I've been leaving my headset at home because I've been planning on putting together a gun-stock out of PVC piping that I can slot my controllers into, and I need the controllers at home for sizing. (I'm kind of forgetful, so it's easier to just leave my Oculus stuff at home so everything's in the same place. I'd be done sooner, but my sister took the handsaw for some home-renovation work.)

Anyways, the big things that I remember using DolphinVR for were F-Zero, Mario Kart, and Paper Mario. To be honest, I haven't really tried any Wii games on it, mainly GameCube games.

F-Zero and Mario Kart work beautifully even with only 3DoF tracking. Obviously, you're "sitting" in a vehicle, so you don't need to be able to walk around freely. As long as you can turn your head to look behind you, the "magic" all works and it's rather immersive.

Like I said, Paper Mario works amazingly in VR since it appears like a diorama in fields, and you feel like you're in the theater audience in battle. This, as well as Pikmin, work best with 6DoF, since the main appeal of VR is being able to walk around the diorama and see everything.

Wind Waker is another one that oddly-enough seems to work vaguely in VR as well. I've seen people pull the free-look camera in close and "staple" it to Link's forehead. (It needs to be slightly above eye-level so you don't see an endless void when swimming) This makes it work pretty well as a first-person game. 3DoF should be sufficient here, I can't imagine how you would jury-rig 6DoF for something like this.

Most of these work pretty well, using codes to turn off culling and make sure everything in the area that would normally be off-screen still loads. Mario Kart actually has special codes for this setup to remove Mario's head from his model to make space to shove the camera into.

The only special thing that I would imagine would be nice to add specifically for VR setups like this would be the ability to treat certain controller gestures as button presses when mapping controls for GameCube games. (GameCube specifically so you don't have clashing controls in Wii games) Nothing too detailed, just something like "shake the left/right controller" or "vertical/horizontal swipe" if you want to be particularly fancy. This would be for faking motion controls when doing VR Wind Waker, for instance. If we have codes to remove Mario's head in Mario Kart, I'm sure a code to remove Link's sword-arm could be done. Map a generic controller swipe as the B button, and you'd feel more like you're actually swinging the sword, without the mental disconnect of swiping in one direction and Link swinging in a different one. (It's kind of like missing your body in a VR game. For a lot of people, their body parts being invisible is actually more immersive than a body that's occasionally wrong, since you quickly stop noticing the missing body parts.)

I'd have to double-check if it's already possible, but the other big thing would be being able to use a screen size that's larger than the physical monitor. VR requires higher resolutions to look smooth compared to a normal monitor, just because the screens are so close to your eyes. VorpX has a set of directions to force games to allow larger window sizes, and then project them correctly to the headset. A 1080p full-screen New Vegas is blurry to the point of near-unplayability when in a VR headset. I think you need at least double that if you're going to be able to see things clearly.
(04-19-2021, 11:52 AM)kurt91 Wrote: [ -> ]The only special thing that I would imagine would be nice to add specifically for VR setups like this would be the ability to treat certain controller gestures as button presses when mapping controls for GameCube games. (GameCube specifically so you don't have clashing controls in Wii games) Nothing too detailed, just something like "shake the left/right controller" or "vertical/horizontal swipe" if you want to be particularly fancy. This would be for faking motion controls when doing VR Wind Waker, for instance. If we have codes to remove Mario's head in Mario Kart, I'm sure a code to remove Link's sword-arm could be done. Map a generic controller swipe as the B button, and you'd feel more like you're actually swinging the sword, without the mental disconnect of swiping in one direction and Link swinging in a different one. (It's kind of like missing your body in a VR game. For a lot of people, their body parts being invisible is actually more immersive than a body that's occasionally wrong, since you quickly stop noticing the missing body parts.)

I'm working on this! Looking initially at adding "steering wheel" controls to Gamecube racing games, for instance. I like your "swipe = sword" idea. That's a great point about the mental disconnect - even though people derided a lot of Wii games' "waggle controls" they do feel more natural when in VR.

(04-19-2021, 11:52 AM)kurt91 Wrote: [ -> ]I'd have to double-check if it's already possible, but the other big thing would be being able to use a screen size that's larger than the physical monitor. VR requires higher resolutions to look smooth compared to a normal monitor, just because the screens are so close to your eyes. VorpX has a set of directions to force games to allow larger window sizes, and then project them correctly to the headset. A 1080p full-screen New Vegas is blurry to the point of near-unplayability when in a VR headset. I think you need at least double that if you're going to be able to see things clearly.

Agreed. It's tricky, though, because pushing 4K from the desktop to the headset is a lot heavier on your connection than 1080p, naturally. There is some third-party software that can fake a 4K monitor being connected so it can be mirrored to the HMD, but I've forgotten the name of it for the moment. (I thought Spacedesk could do it but maybe not.)

oldgoose

(04-14-2021, 11:41 PM)MichaelJW Wrote: [ -> ]Success!! Just installed the dev build and it's working well, Great Job!

Update:
I'm using the Gyro config and that works, however occasionally I need to power off/on the controllers when the drift gets too much. The screen pointer hasn't really worked for me though, I've only once managed to get them pointing at the screen.
Pages: 1 2