CarlKenner / dolphin

Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.
GNU General Public License v2.0
137 stars 30 forks source link

Touch controllers not recognized? #111

Closed Kosyne closed 7 years ago

Kosyne commented 7 years ago

Unsure if I'm doing this right nor not. Under emulated wiimote, the dropdown does not list touch.

Using the presets, I can get it to select "VR/0/Touch", but even then touch does not show up or work in game, nor does it recognize my inputs on the config screen.

Is there a certain process to doing this that I'm missing? Everything else works quite fine, however.

I'm on the latest version (compiled today).

CarlKenner commented 7 years ago

If you're compiling it yourself, you need to put LibOVR from the Oculus SDK in the Externals folder before you open the solution in Visual Studio. Otherwise it only works on DK1/DK2 with Runtime 0.5 or 0.6. I also recommend putting openvr from https://github.com/ValveSoftware/openvr.git in the Externals folder too.

There is a known issue with the config screen when you aren't in a game. Currently VR is only initialised while you're in a game, so the buttons won't automatically detect unless you open the config screen while in a game.

But I think the main problem is that one of the recent changes in the main branch broke my VR input device support, and I didn't notice it was broken. If you download an older version of Dolphin VR, then Touch should work.

I live in Australia, so I don't have Touch yet, despite pre-ordering. So I've currently only implemented Touch as a Gamepad, rather than a motion controller. I do have the HTC Vive though, and you should be able to use Touch as a motion controller via SteamVR, if you start Dolphin with -steamvr.

CarlKenner commented 7 years ago

OK, I've fixed the bug. Pull the latest version.

The following issues still exist though:

Kosyne commented 7 years ago

Yeah, I was compiling with LibOVR in externals. Will pull and retry tomorrow.

(On that note, it will not compile nicely with LibOVR, you have to import the LibOVR project into the dolphinvr solution and tell it to use the MD runtime instead of the MT one when building release-x64, otherwise you get linker errors.)

I'll get the new build up tomorrow and let you know how it goes. Also, if theres anything specific you want tested in the meanwhile till you get touch, I can try my hand at that.

Kosyne commented 7 years ago

Went ahead and did it today before bed, and everything seems to work fine (except for the issues you listed). Also, it may be helpful to put a notice somewhere (in the readme or the app itself) telling users that they need to be in-game before their input is detected on the controller config screen.

CarlKenner commented 7 years ago

BTW, if you're building from source, the Vive controller texture skins aren't included in Git because they're large binary files. You'll can get them from one of my recent released versions.

I just made the Oculus Touch skins today (in theory, I haven't tested them). Now I need to make it load the Oculus Touch models from SteamVR, even if we're using the Oculus SDK.

It compiles nicely with LibOVR for me, as long as the folder is there before I open the solution. But I've only tested versions from 0.4.0 up to 1.3.0.

CarlKenner commented 7 years ago

LibOVR versions from 0.4.0 to 1.9.0 compile nicely. It's only version 1.10.0 and above that doesn't compile because they changed the linking.

Kosyne commented 7 years ago

Yeah, I'm using LibOVR 1.10.1. It works fine just changing that setting I mentioned though.

And if you're using it through steamVR, does that mean it'll use that version of the touch model? SteamVR is nice in that it shows button presses/stick rotations on the model by default, which I haven't seen happen in many oculus games (medium, toybox, etc).

Anyway, this is probably my favorite VR project, so again, I'm more than willing to help out time permitting, so shoot me a message if you'd like some stuff tested.

CarlKenner commented 7 years ago

Yeah, I'm using LibOVR 1.10.1. It works fine just changing that setting I mentioned though.

The problem is, this part of GPL v3:

The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work

I think close enough is good enough when it comes to open source licenses, but I'd prefer to be able to use it unmodified if possible.

And if you're using it through SteamVR, does that mean it'll use that version of the touch model?

Currently, I think it might be hardcoded to use the HTC Vive controller model (vr_controller_vive_1_5). I don't remember exactly how I implemented it. I know I deliberately didn't use the workshop feature, so if you skinned or changed the controller model in SteamVR Workshop, that doesn't affect Dolphin VR. I created a variety of textures for the HTC Vive controller model to look like different Wii controllers with different button mappings.

SteamVR is nice in that it shows button presses/stick rotations on the model by default, which I haven't seen happen in many oculus games (medium, toybox, etc).

I didn't implement that yet. But I did implement a pink line that shows where your thumb is. And I even made the pink line move over to the Menu button when you press it, and even show half way between the touch pad and menu button when your thumb is pressing both.

There's a .json file C:\Program Files (x86)\Steam\steamapps\common\SteamVR\resources\rendermodels\vr_controller_vive_1_5\vr_controller_vive_1_5.json that specifies the models for each moving part, and how to move or rotate them when pressed, but I'm not actually using it. I just use the model that contains all the parts, and I don't move any of them. Sorry.

But here's the bad news.

I got banned for the /r/Oculus subreddit. So I decided I'm personally not going to add Oculus Touch support to Dolphin VR.

Unfortunately, that was a day after I just finished making all the skins for the Oculus Touch model.

Kosyne commented 7 years ago

Well, that is sad to hear. They may not see eye to eye with you, but one would hope that hard feelings with a subreddit wouldn't be cause to turn you off of any thing oculus related. There's more to VR than just the politics of it, and I hope that this project can continue strongly on all fronts despite this, for the sake of VR as a whole.

0x8080 commented 6 years ago

Despite this being an old issue, it would be best to implement proper support for the Oculus Touch controllers due to its market share of ~46% (According to Steam HW Survey of December 2017). Please add support for the people out there (myself included) who don't have anything else but the touch controllers for VR.