Author Topic: An Useful Open Source DualShock Tool (DirectInput) for FFVII  (Read 6991 times)

zzzplayer

  • Newbie
  • *
  • Posts: 4
  • Karma: 3
    • View Profile
Hello folks,

I want to share an open source tool with you that makes DS controller, especially DS3, work with Final Fantasy VII (Steam version).

You may have heard of tools such as

# MotioninJoy: malware

# Better DS3: has better interface, but still relies on malware MotioninJoy driver

# DS4windows.com: supports only DS4. emulates a xbox 360 controller (that is, Xinput games only) or keyboard.

# other Keyboard-to-DS tool:

   # InputMapper: free and ad-supported. supports only DS4. emulates a xbox 360 controller (that is, Xinput games only) or keyboard.
   # JoyToKey:commercial and proprietary
   # Xpadder: commercial and proprietary (though, seems to be free on the sourceforge page)
   # Pinnaclegameprofiler.com: commercial and proprietary

# "SCP Driver": an open source driver for DualShock 2/3/4 on Windows. emulates a xbox 360 controller (that is, Xinput games only).

Among these, the best is either SCP Driver or DS4windows; however, while the SCP Driver worked fine, the FFVII game seems to only respond to the left analog stick and not the D-PAD (for me at least).

The tool I'm introducing here is called "Dinput Wrapper for SCP Driver", and with the latest updates that I've worked with the author to patch, you now have an open source tool that makes DualShock 3 or 4 work on FF VII.

"Dinput Wrapper for SCP Driver" works along with "SCP Driver" and "vJoy".

Together, "Dinput Wrapper for SCP Driver" features the following:

# open source
# works with DualShock 2, 3, or 4
# not by keyboard emulation
# works directly with DirectInput games


Steps for installing ScpToolkit and "Dinput Wrapper for SCP Driver":

1. Download and install ScpToolkit (aka ScpServer Reloaded). Read & Follow the installation instructions.
   http://forums.pcsx2.net/Thread-ScpToolkit-XInput-Wrapper-aka-ScpServer-Reloaded
   https://github.com/nefarius/ScpServer

2. Test the controller work with ScpToolkit
   i) start ScpToolkit Monitor (Windows Start Menu -> ScpToolkit -> ScpToolkit Monitor)
   ii) once started, there shall be a SCP Monitor icon appear in the Notification area of Windows Taskbar
   iii) right click on the SCP Monitor icon and click "Input Tester"
   iv) test all buttons, D-Pad, and analog sticks
   v) once done, right click on the SCP Monitor icon and click "exit"
   vi) also, if you go to the "Devices and Printers" screen within Control Panel on Windows, you DS controller should be installed as a "Xbox 360 Controller for Windows".

3. Download and install "Dinput Wrapper for SCP Driver"
   http://forums.pcsx2.net/Thread-Dinput-Wrapper-for-SCP-Driver
   https://github.com/TheLastRar/SCP2vJoy

4. Download and install vJoy
   http://vjoystick.sourceforge.net/site/index.php/download-a-install

5. Configure "Dinput Wrapper for SCP Driver"
   
   i) I assume you want FFVII configuration work by default whenever you start "ScpPad2vJoy.exe"
   ii) go to the directory for ScpToolkit ( typically  C:\Program Files\Nefarius Software Solutions\ScpToolkit ) and create a file called "Default_vjConfig.txt"
   iii) In your "Default_vjConfig.txt", use the following code

Code: [Select]
B1=SQUARE
B2=TRIANGLE
B3=CROSS
B4=CIRCLE
B5=L1
B6=R1
B7=L2
B8=R2
B9=SELECT_SHARE
B10=START_OPTIONS
AY_UL=UP
AY_DR=DOWN
AX_UL=LEFT
AX_DR=RIGHT
      
   # The four AX_ and AY_ parameters are the key mappings here that makes this solution work. Initially, when only SCP Driver is installed, the game only responds to the left analog stick of DS 3 for directional control. The issue remains when the "Dinput Wrapper for SCP Driver" and vJoy device is used. Since the game only responds to axis values, the four AX_ and AY_ parameters is a workaround solution that converts the D-PAD physical buttons to axis values to make it work.

6. Start "Dinput Wrapper for SCP Driver"

7. Test the controller work with vJoy
   
   i) run Start -> Programs -> vJoy -> Monitor vJoy
   ii) test the buttons and D-PAD:
      # When you press a regular button, the button colors should switch to red.
      # When you press the D-PAD buttons, the axis bars should go either up or down.

8. Run FFVII

   i) map the buttons in game: Settings -> Joystick
   
      Map the button function names according to the PS1 buttons. This also tests if the game captures your buttons.
      
      you may want to use the following table:
      https://web.archive.org/web/20150820154346/http://www.cavesofnarshe.com/ff7/buttons.php
      
   ii) start the game and test play
« Last Edit: 2017-09-02 12:01:11 by zzzplayer »

Covarr

  • Covarr-Let
  • Administrator
  • No life
  • *
  • Posts: 3906
  • Karma: 116
  • The Great Redarr.
    • View Profile
Re: Introducing an open source DS tool (Dinput) for FFVII
« Reply #1 on: 2015-08-21 20:42:00 »
This is amazing and you are a hero.

sen

  • No life
  • *
  • Posts: 1243
  • Karma: 26
    • View Profile
Re: Introducing an open source DS tool (Dinput) for FFVII
« Reply #2 on: 2015-08-21 23:38:25 »
Wow good strawberries man, wondering will this work with other games too? Most importantly is this compatible with both ps3 and ps4 controller in one? If so that's amazing
« Last Edit: 2015-08-21 23:40:05 by sunz »

zzzplayer

  • Newbie
  • *
  • Posts: 4
  • Karma: 3
    • View Profile
Re: Introducing an open source DS tool (Dinput) for FFVII
« Reply #3 on: 2015-08-22 03:03:54 »
wondering will this work with other games too?

In the "Dinput Wrapper for SCP Driver" forum thread that I listed, there is one guy who tried this on Final Fantasy XI PC (another old game that was made before the newer Xinput was introduced) and has worked for him.

Most importantly is this compatible with both ps3 and ps4 controller in one? If so that's amazing

The "Dinput Wrapper" serves as an interface between "SCP Driver" and vJoy. Since the "SCP Driver" already supports the DS4, it will install the controller as Xinput device, then the "Dinput Wrapper" would take from there. Though I havn't personally tried the "Dinput Wrapper" on the DS 4, but in theory, it's very likely that the software will work on the DS 4 too (I've already tried the software on the DS 3 and it worked as I described in my opening post). The "Dinput Wrapper" should take the Xinput signal and re-map it as vJoy (a Dinput device) output.

If any of you have tried the "Dinput Wrapper" with a Dinput game on the DS 4, you're welcomed to post and share your experiences here.
« Last Edit: 2015-09-14 09:43:16 by zzzplayer »

chaoticyeshua

  • Newbie
  • *
  • Posts: 3
  • Karma: 0
    • View Profile
To anyone able to help, I can't seem to get this to work.

I've been using ScpReloaded for a while, and that works great even with Bluetooth. However, I cannot seem to make SCPPad2VJoy work in Final Fantasy VII. I've installed vJoy. When I run SCPPad2VJoy I click Start, and see the devices enable/disable in Device Manager like they're supposed to. In "Set up USB Game Controllers" it shows vJoy Device, and picks up input. When I use Monitor vJoy it picks up input. It even picks up input in Final Fantasy VII's Settings -> Joystick to configure the buttons... But when I launch the game itself, no button presses are picked up. I've patched the game with Reunion from http://forums.qhimm.com/?topic=14914.0. But I've also removed the patch and verified the game cache through Steam again and it still didn't help. I have the latest versions of everything which, supposedly, are compatible with each other.

Any help would be appreciated if there are people out there who still use this.

Jahiliyyah

  • Fast newbie
  • *
  • Posts: 49
  • Karma: 7
    • View Profile
Interesting. Using my DS3 and SCP Driver I never noticed the issue you're describing with the D-pad myself.
« Last Edit: 2016-03-01 22:50:38 by Jahiliyyah »

chaoticyeshua

  • Newbie
  • *
  • Posts: 3
  • Karma: 0
    • View Profile
It's not just the d-pad, though, it doesn't pick up -any- input at all even though I've set the buttons in Settings -> Joystick.

eXistenZe

  • Crazy poster
  • *
  • Posts: 216
  • Karma: 4
    • View Profile
Also using SCP Driver and server with DS3 with no issues at all in all games. No need for complicated setups.

chaoticyeshua

  • Newbie
  • *
  • Posts: 3
  • Karma: 0
    • View Profile
The problem is that just using SCP with my DS3 in Final Fantasy 7 (Steam version) the d-pad doesn't work. All directional input has to be done through the left analog stick.

If you have this working while only using SCP, then please tell me what you've done to make it work, because I can't seem to.
« Last Edit: 2016-02-25 18:13:30 by chaoticyeshua »

zzzplayer

  • Newbie
  • *
  • Posts: 4
  • Karma: 3
    • View Profile
The problem is that just using SCP with my DS3 in Final Fantasy 7 (Steam version) the d-pad doesn't work. All directional input has to be done through the left analog stick.

If you have this working while only using SCP, then please tell me what you've done to make it work, because I can't seem to.

chaoticyeshua, if you have solved your problem over at PCSX2 forum, you should update your post.

The reason it didn't work for you is because you didn't correctly follow the instructions that I posted above.

The cause of the problem is revealed in your own post over at this PCSX2 forum thread.

You have used the wrong config for the D-PAD

Quote
.
.
.
PU=UP
PD=DOWN
PL=LEFT
PR=RIGHT


While my original post used the following config for the D-Pad:

Quote
.
.
.
AY_UL=UP
AY_DR=DOWN
AX_UL=LEFT
AX_DR=RIGHT

Clearly, the wrong config for the D-PAD is what caused the issue you described.

In my original post, I said when you test using the "Monitor vJoy" tool:
"the axis bars (if you use the AX_ and AY_ parameters above) should go up or down when you press the D-PAD buttons." This step is important because it tells user the D-Pad signal is being converted to axis signals, which the game responds to.

The author of "Dinput-Wrapper-for-SCP-Driver" (Ge-Force) who helped you solved the issue used the exact same config as I have posted above.

WhiteShadow11

  • Fast newbie
  • *
  • Posts: 29
  • Karma: 2
  • You are free.
    • View Profile
Hello, does this work for DS4Windows too?