How exactly do i use(/build?) this?



  • Originally posted by EigenFace


    I have a decent amount of programming experience and I'd like to emulate a ps4 controller for ps4 remote play on pc. I see the example of using xbox360ce in combination with ViGEM and thought i would alter it to map from xbox360ce to an emulated DS4. Only problem is it requires vigemUM.dll. I looked at the releases but didn't see a copy of vigemUM.dll.

    So, how do i build it? I tried to open the solution in VS2015 and build some of the projects and got a bunch of errors. I tried opening it in VS2012 and an error about Platform Toolset made me think maybe I needed to open it in VS2010?

    So-- Do I need to build vigemUM.dll? Do I need to open the solution in a specific version of VS? Are there any obvious gotchas about building it? How do I know what order to build stuff in?(Won't one project maybe produce some code another project needs?)



  • Originally posted by EigenFace


    Solved almost all my issues. Compiled vigemUM.dll and HidCerberus.lib.dll, installed HidGuardian and slightly edited the x360ce2vigem example. Is there anything else I need to do? For other people who might be having some problems: You can use VS2017 for the solution. When installing VS2017 I specifically selected WDK version 10.0.10586.0 under the 'individual components' and no other version, i'm not sure if this is necessary but I got an error otherwise. Also, kind of obvious, but I think you must install HidGuardian from an elevated command prompt, install instructions are in the project.

    Edit: Okay I wrote some code to translate XINPUT to a proper DS4 report. It seems like the button mappings and joysticks are working from what i can see in the x360ce controller properties panel(except the NE and NW dpad directions, oddly), but the controller still isn't recognized as a ds4 by ps4 remote play!

    Is there something I need to call to tell it, "Hey, this is a 'paired' PS4 controller"?



  • Originally posted by nefarius


    I noticed a couple days ago that the project settings for the libraries were inconsistent with the latest version of the Windows SDK and WDK so I fixed that. Will focus on build instructions next 😃



  • Originally posted by flapjack17


    EigenFace, Have you had any success with this? I'm trying to accomplish the same thing. I'm just starting to learn c++. most of my experience is building web apps, so this is a whole new can of worms. Basically I'm trying to fake the dualshock input in to the remote play app so I can basically have a script that will play a game for me.

    Any help with this would be greatly appreciated. I've been able to use SendInput to mimic Arrow keys, Enter, and ESC. but that the extent that remote play has for keyboard inputs..

    thanks in advance!



  • Originally posted by Ilias-P


    Hi
    I am trying to accomplish the same thing.
    Any progress on it?



  • Originally posted by nefarius


    Have a look at this.



  • Originally posted by Red


    I'm also trying to build the solution (so PS4 Remote Play can use a 360 controller) but I get 2 warnings and an error and don't really know how to fix it. I haven't done a whole lot of programming in a while and aren't really familiar with C/C+. The messages are:

    Severity	Code	Description	Project	File	Line	Suppression State
    Warning	C4267	'=': conversion from 'size_t' to 'ULONG', possible loss of data	ViGEmUM	c:\users\Red\downloads\vigem-master\vigemum\vigemum.cpp	653	
    
    Warning	C4244	'argument': conversion from 'DWORD' to 'UCHAR', possible loss of data	XInputExtensions	c:\users\Red\downloads\vigem-master\xinputextensions\xinputextensions.cpp	137	
    
    Error	C1083	Cannot open include file: 'Poco/Message.h': No such file or directory	HidCerberus.Lib	c:\users\Red\downloads\vigem-master\hidcerberus.lib\stdafx.h	14	
    

    The output said Build 10 succeeded, 1 failed, 2 up-to-date, 1 skipped.

    I'm not really sure either what files to use for install (from what's there).

    Sorry for any inconvenience.



  • Originally posted by nefarius


    @Red it succeeded pretty much. You probably don't have the POCO libraries set up which is fine if you don't need/use the HidGuardian projects. I will fix those warnings.



  • Originally posted by Red


    So I put ViGEmUM.dll and x360ce2ViGEm.exe into the x360ce_x64 directory with those related files but when I run x360ce2ViGEm.exe the command line window just flashes and nothing happens. What probably obvious thing am I missing?



  • Originally posted by nefarius


    You have to execute and configure x360ce first and let it generate both XInput1\_3.dll and XInput1\_4.dll.



  • Originally posted by Red


    All right. I didn't install the driver properly. I fixed that issue but PS4 Remote Play doesn't seem to recognize it. Looking at Device Manager it just appears as another Xbox 360 controller.

    My steps were:
    -Compile (x64)
    -Install driver
    -Copy ViGEmUM.dll and x360ce2ViGEm.exe to x360ce-64 folder (there is a XInput1_3.dll and XInput1_4.dll)
    -Run x360ce2ViGEm.exe
    -Run PS4 Remote Play with no input
    -Double check Device Manager for Virtual Gamepad Emulation Bus (check)
    -See second 360 controller (disappears closing x360ce2ViGEm.exe) It definitely shows in Location 1 (Virtual....)
    -Cry 🙂

    Are there steps I'm not doing?



  • Originally posted by nefarius


    In x360ce2ViGEm.exe it's currently hard-coded to emulate an X360 pad, but for PS4 Remote Play you need to emulate the DualShock 4. That's why. Maybe I find some time to whack together a sample.



  • Originally posted by Red


    I started wondering about that. I just followed a reddit post here. But I guess I didn't read closely enough. I thought it was included after watching your DS4 test video. Got my hopes up when I saw the one thing my cronusmax can't do. On the bright side I found a 360 controller emulator I like 🙂

    I'll try to donate in a couple weeks. Help you out where I can.



  • Originally posted by nefarius


    @Red it really shouldn't be a big deal to get this to work but unfortunately right now there are other things in the pipeline 😉



  • Originally posted by QuestingHero


    this is EXACTLY what I am trying to figure out how to do on my new GPD win. I am looking at https://inputmapper.com/ which I think is built off of ViGemu, but haven't had a chance to try it out.



  • Originally posted by evilC


    @QuestingHero, are you trying to take input from a DS4 controller and use it to drive a virtual Xbox controller?
    If so, you can just run [url=https://autohotkey.com/boards/viewtopic.php?f=19&t=12249]UCR[/url] and use it to create a virtual xbox controller (This currently uses vJoy's SCPVBus implementation, but I am working on a new version that uses ViGEm).
    If you need to stop the game from seeing the physical DS4 controller, you can use [url=https://autohotkey.com/boards/viewtopic.php?t=34890]WhiteKnight[/url] (Which leverages ViGEm's HidGuardian / HidCerberus)



  • Originally posted by QuestingHero


    @evilC#133 Neither. I am wanting to play PS4 remoteplay on my GPD Win and the requirements are that you use a DS4. the GPD win has a built in Xinput controller, so I would like the xinput controller to show up as a DS4.



  • Originally posted by evilC


    Do you absolutely need to hide the built-in XInput controller, or would creating an additional virtual DS4 be OK?
    That would be a lot simpler. I pretty much have the code for that already, I just have not implemented DPad support yet.



  • Originally posted by QuestingHero


    @evilC#135 I don't know.... I Don't think the xinput has to be hidden. The PS4 remote play app will only accept input from a DS4. so, I don't *think* I need to hide the xinput, just have the remote play app see the DS4. I would be more then happy to test something and we can find out.



  • Originally posted by QuestingHero


    I am really trying to figure out how this software works. I have installed the ViGEmBus using devcon, and all looks good in device manager... I just have no idea where to go from here. once again, I have an xbox 360 controller that I would like to emulate a Dualshock 4 for use in PS4 remote play. according to https://www.reddit.com/r/remoteplay/comments/62vlwj/use_xbox_one_controller_on_ps4_remote_play/, I just need to modify x360ce2ViGEm... but now I am moving outside my wheelhouse. here is his modified code from the above link https://gist.github.com/EigenFace/74b56efe33eb6585e1b6384d09c4034b


Log in to reply