Next Generation Emulation banner
1 - 20 of 202 Posts

· Ƹ̵̡Ӝ̵̨̄Ʒ 龍我雷 Ƹ̵̡Ӝ̵̨̄Ʒ
1,377 Posts
Discussion Starter · #1 · (Edited)
TwinPad Latest release v0.8.3

TwinPad v0.8.3
TwinPad v0.8.3 Source Code

Older version at the bottom of this post if you're interested..



  • Fixed a bug in Combo Matrices initializations, i.e., They were not filled with proper data.
    Didn't notice this silly bug. Thanks to Ellestar for this, and bbkdude for mentioning it.
  • Combo feature, Added the ability to leave empty actions at the end of any Combo, this will
    allow you to create Auto-Fire like behavior, e.g., First action is X, Second action is Empty, keep
    holding and pressing the key assigned for the combo will press/release X as fast as possible
    (or as slow, it depends on the delay value)
  • Added a more useful use for the Mouse Wheel, Now you can configure the wheel to do whatever
    you want, like selecting weapons in FPS games, Zoom In/Out in strategy games, or even page
    flipping for the items inventory in RPG games. Note that if you don't configure the wheel
    (Scroll UP/DOWN) it'll behave as increasing/decreasing the pressure sensitivity for the buttons.
Note: The old configurations WILL BE LOST, due to the fixes and feature additions. The plugin will notify you about this..
How to use:
Extract the DLL & EXE files inside the plugins folder, and you are ready to go..
to configure the plugin, run PCSX2 normally select TwinPad from the plugins' list and click on configure.
the TwinPad configuration utility will appear..

VISTA USERS: "ActiveX Can't create object error '429'" workaround..

Due to M$ stupidity, they dropped the support for DirectX 8 for VB in Vista it was supported in XP,
they will eventually drop DirectInput too once XNA is more mature, they say DirectInput is deprecated now.. heh..
And I am not willing to reWrite the whole Configuration utility, for 3 reasons:

1) It needs tremendous time and effort at this point (a lot of code and resources)
2) It's working.. (not for everybody, but it's working)
3) There is a simple solution to make it work for VISTA and Windows 7 too.. as some users tested it in Windows 7

Solution: download DX8VB.dll from -=>here<=-

1) If you have X86 version of windows, extract the DLL into: "C:\Windows\System32\"
If you have X64 version of windows, extract the DLL into: "C:\Windows\SysWow64\"
Assuming C:\Windows\ is the default windows path.. if it's not then find the System32 or SysWow64 inside your
Windows directory and extract it there..

2) Click Start->Programs->Accessories-> Command Prompt (right click, and select run as administrator <=-Important)

3) type.. "regsvr32.exe dx8vb.dll" without the quotes then press ENTER..

4) If everything is fine. it should give you Sucess message "dllregserver succeeded" , click Ok
and configure TwinPad, it should work.. Hopefully this will help..


The form will show you PSX/PS2 PAD buttons, click on the button you want to configure to assign a key to that
button, or you can hit "Auto Navigate" where the plugin will guide you to configure all buttons..

Click on "Nullifies All" to clear all configurations, for the selected pad..

to configure PAD 2, you can toggle between PAD 1 and PAD 2. by simply clicking on the pad you want (The box with
the red circle)..

The blue Box tells you what button you are trying to configure..


Now, to configure the mouse, click on the Arrow with the title MOUSE.. another form will appear
You can configure the mouse, for example, left mouse button as left analog stick, right mouse button as rightanalog stick, middle as Cross, depends on how many buttons you got on your mouse..

Also you can change the mouse sensitivity, you can choose from 1 to 6, where 1 is the old and most accurate..
2 to 6 tries to shrink the DEAD ZONE "the inner rectangle" more and more, the dead zone is in the center of
GS/GPU window, where analog movements not noticeable by some games.. some games they accept the analog moves
if they are greater than a certain value, others they don't..

I aimed for accuracy, even for higher sensitivity modes too..

Now I will explain what a COMBO is, A Combo is an attempt to simplify the way some games require from the player to press the pad buttons in specific order and timing.. to do special moves and techniques depends on the game..
like the ones in Tekken, Street Fighter, Devil May Cry series, Final Fantasy X overdrives..etc!

Each Combo contains at least one Action, or several actions up to 334, sequenced in execution top-down wise..

An Action is a group of pad buttons pressed at the same time for
specific period of time.. an Action can contain up to 24 different buttons (the maximum) to be pressed at the same
time.. you can't select for example, a CROSS "X" twice in the same action.. -nonsense-, but you can select
UP and DOWN in same action, although it's going to be useless, but they are not the same.. use common sense here..

you can add new action if you want, to group more buttons to be pressed at the same time.. Again you can add up to 334 actions per COMBO.. (that's a lot), if you need more you can create a new COMBO, there is no limit for how many COMBOS you create..

Now each Action has it's own Speed or Delay.. you can select a value from 1 to 1000, (1 is fast, 1000 is slow) I took 2 hours to think of a proper name for this, is it speed or delay, probably neither?? anyways.. let's call it a Delay.. :p

The delay value represents how many frames that an action is being executed.. depends on the game if it's NTSC or PAL (50 or 60) Frames Per Second.. if you specify "1" as delay value for Action #3, the third action will be executed only for one frame.. if you specify 1000 for the same action, the third action will be executed for 16.666 seconds (if the game is NTSC, 60fps) or 20 seconds if it's PAL (50fps).. I know it's impractical, But I gave you the chance to do that, chances that you wont need anything higher than 60.. oh well..

To configure the COMBOS, click on COMBOs arrow in the main form.. another form will appear.. the COMBO Editor.

First try to create a new COMBO.. by clicking on NEW.. write the name of the combo.. like "FINAL FANTASY X: Lulu's Overdrive" or "Tekken3 Jin Kazama's Combo Type 1" and hit OK.. you can start building your moves now..

Click on the buttons you need to put within the current action, and you will see it being added..

Once you finish with the current action, if you want to add new action, click on "Add new Action"

Any action can be empty, except the first one.. it would be totally useless if they were..
Empty Actions means all buttons are released (not pressed). usually this is useful to create a pause between actions..

you can put also the delay value for empty actions the same way you do with non-empty actions..

if you are not satisfied with the current action, you can always click on "Delete Last Action", it's the only way to delete actions, you can't delete an action positioned between two actions, only the last one, sorry if this is inconvenient.

After you delete the Action you must add new action manually, or else, when you add buttons, it's going to be added to the current Action "Which is the last one now"..

There is two ways to change the Delay value for Actions..

The first, using the text box that says Delay, write the delay value you need, or click up or down arrows to increase/decrease the value..

The second method is, you can click on the gray box next to each action that says "Delay: #" then you can modify the value directly for that Action..

When using the first method, all subsequent added actions will inherit the delay value from that box..

After you finish creating the actions for your COMBO, you need to assign a key to execute this combo, when the key is pressed while playing, the combo will start working.. (unless it was disabled in the Extended menu)..

Each combo, has it's own key.. if two or more combos share the same Key, the first one the plugin sees will be executed, as a rule of the thumb, make each combo has it's own key..

To assign a key to the current combo, just click on the box next to "KEY" then the program will be waiting for you to press a key.. You will see the Box flashing.. that means you must hit the key you want on the keyboard..

Note: "The same rule applies when selecting Combo Keys, you can't select a key used by the emu, like F1 to F10 for example"

You can select which PAD the COMBO system is using, PAD 1 or 2.. this will be applied to all combos..

You can view different saved COMBO from the drop-down box, you can edit it, add actions, remove actions, rename the combo or even delete
the COMBO itself..

To delete the current COMBO click on Delete inside the COMBO section.. "WOW! brain surgery!!"
To Rename the current COMBO click on Rename inside the COMBO section.. ":/"

Hovering the mouse over Analog stick icons will show a tool-tip telling you which one it belongs to.. Left & Right Analog sticks look identical, this way you can tell if the selected button is for the left or right analog.. i.e. "Right Analog (UP)" or "Left Analog (UP)

To save and exit click on Save button, it's the only way to save your configuration, the program wont notify you about changes..

Now after you are done, you want to test your COMBO if it's working or not i.e. you may need to modify delay values for some actions..
the best way to do this. is by editing the COMBO while playing, you can do this.. :)

Note: It is better if you execute the emulation in Window mode while doing this..
Make sure COMBOs, COMBOs HotKey and the PAD you use for COMBOs are "NOT" Disabled from the EXTENDED menu.. <=- Important..

* Copy "TwinPad.exe" to PCSX2 root folder where PCSX2.exe/PSXeven.exe/SSSPSX.exe or PCSX.exe exists..
* Run TwinPad.exe.
* select COMBO from the first FORM, select your combo you want to test from the drop-down box..
* Run PCSX2 (DON'T QUIT TwinPad, Keep it running), Start the emulation and run the game you want..
* Test your COMBO by hitting the assigned COMBO key.. if it doesn't work correctly, switch to TwinPad, Keep PCSX2 running..
* Modify your COMBO, delete actions, add actions, modify the delay, modify the Key.. whatever you want then click on ->SAVE<-..
* Switch to PCSX2 "The game is still running, and TwinPad is running too" hit "SPACE"<=- a HotKey to Load Combos configurations on-the-fly!
* Test your combo again.. hit the assigned key, if it works ->Good Job<- if it doesn't repeat steps 3 to 8.. have fun..

Note: you might need to load the savestate, you can do for example Lulu's fury only while in battle, save using F1 before trying
Fury, execute the Combo, load the state F3, when you want to try the modified COMBO, hit SPACE, and repeat.. it's faster this way..

For two players games, like TEKKEN for example, you should leave the last Check-Box in the Extended menu un-ticked.. For one player games like FFX, Keep it ticked..

From my experiments, FFX for example requires information only from PAD1, but for unknown reason PCSX2 also asks for PAD2.. but Tekken asks for PAD1 and PAD2 even if only one player is playing.. Not selecting this Option will make Fury Spells count drop almost to half.. instead of getting 16 spells in 1.75 seconds you will get them barely in 4 seconds.. but at the same time, TEKKEN3 Combo's timing would be correct.. (I could be wrong, but during my tests, this is the only explanation :/)

Anyways here is two videos I made about this newest feature..

Lulu's Overdrive Configuration, shows you how buttons added to actions
to perform fury spells..
View attachment 204116

Jin Kazama's Combo type #1, Note, the pic doesn't show the whole buttons, if you are interested about Tekken 3 combo and timing information
visit this site: Tekken 3 Moves List
View attachment 204117

Extended Options:
Now done with COMBOs, have a look to the Extended Options menu..
It's recommended to leave PAD1, PAD2, and MOUSE enabled, if you don't use COMBOs feature disable it, and disable COMBO's HotKey..

You can disable the Plugin from sending KeyEvents to PCSX2 or other plugins too, if you use two different PAD plugins, and you want the other plugin to send the information to PCSX2, "i.e. F2 to switch between states" as a solution for the double keystrokes phenomenon that happens when the two plugins send the same information to PCSX2.. DON"T SELECT THIS OPTION if you use TwinPad for both PAD1 and PAD2.. you will not be able to press ESCAPE to exit PCSX2..

Note: Disabling PAD1 for example will also DISABLE the Mouse or COMBOs if it was configured as PAD1, the same thing for PAD2..


* Fixed a Crash happens only when the Combo list is empty..
"can't resize vector matrices with zero dimension! shoot me in the head
for this :dead:"

* Fixed the mouse input. Mouse button presses were erased by keyboard
button releases, but now both should play nicely together..

* Recompiled the project, to link statically with the run-time library instead
of "Multi-threaded DLL '/MTD' " to "Multi-Threaded '/MT' " to remove the dependency of MSVCR90.dll,
padTwinPad.dll went from 42kb to 172kb because of this.. but oh well..
bottom line, users having crashes with v0.8.0 because they don't have MSVCR90.dll installed, now it should work
fine, hopefully.. -anyone has crashes before please confirm if this fixes it please..-

* Fixed a bug (also presented in PadWinKeyb plugin) when loading save states
so early as soon as emulation begins, causing games to show a message like
"No DualShock2 controller detected" in DMC3 or the player moving diagnolly without touching
the controls (FFX for example), the bug was present in PADpoll() not sending the right
length of commands to pcsx2, now it will detect what pad mode, Digital, DualShock 1 or 2
depends on the game when you load save states..

* Added support to PSX Emus. tested on SSSPSX, PCSX, PSXeven.
Note: for ePSXe you need Pete's ePSXecutor utility to choose and enable PADs, by default ePSXe has built-in PAD support.
Maybe it only supports external pads in Linux :dead:

* Now you can use the Mouse as PAD 2.

* Add mouse sensitivity. you can choose from 1 to 6, 1 is the old Accurate mode, 2 to 6
trying to shrink the Dead Zone in the center where Analog movements not accepted.

* Fixed the double keystroke issue, i.e. pressing F1-F...F10, Shift keys will send
the right commands to the Emu/Gs.. and Shift Key behavior is fixed too when selecting
save states, very accurate even if you try to hit L-Shift R-Shift at the same time..

* Fixed a bug (it was a typo T_T) when using mouse, if you configured mouse to use
Start, Up, Right, Left or Down, would give you error message.. it's fixed..

* TwinPad.exe is moveable, some users hate that, I dunno why :/

* Now for Walk/Run you only need to press one key instead of two, if a key defined
pressing it once will make the plugin send half presses for analog (emitate walking
in most RPG and other games), press it once more will make it back as full press (Running)

* Disabled the Windows logo key. ensures that the user cannot
inadvertently break out of the application. specially in Full Screen mode
So now you can use this key for PADs like most other keys.

* Added "Extended Options" in the configuration utility.. More details in the documentations..

* Adding a new and unique feature for PSX/PCSX2 emus, I call it "COMBOs", now with a single
keystroke you could perform series of buttons acting in timely manner, usefull in situations
like FFX's Overdrive or Tekken Combos.. *more details about this in the documentation*

* Small fixes, tweaks here and there.
TwinPad Plugin, latest version is 0.8.2 here..
source code, here
-Original Post, kept it for thread integrity-------------------------
Before I start, I want to know is it alright to modify source Code found in

'cause I tried to play some games, which are exclusivly for DulaShock2.
Like Devil May Cry 3, and the fact that I had PSX "like" pad (DirectPadPro)
but it has only LPT aka DB-25 (Like all PSX pads) no USB, and I am not gonna buy PSX-to-USB Adapter, for such a

small problem..
I remember some of posts around the ability to play with analog, assign key
values to Keyboard...etc! I posted One my self

if so, before everything I admire PCSX2(tm), Linuzappz asadr (for PadWinKeyb Plugin) and others as well.. the full

credit goes to them..

I modified the PadWinKeyboard Plugin so it can Assign KeyButtons to Analog
Left or Right stick ( in 4 Directions )

before I attach anything.. I would like to know if this thing will be
welcome'ed, No Offense to anyone

I understand the point if the Plugin Creator, Admins of this site, object to publish this modified plugin! ***if

so, No need 2 shout or Yell, just let me know in polite response! ***

I am waiting for the response? (The Modification and Source will be attached
if its Approved!)

thanx in advance..

· Premium Member
2,843 Posts
Yes this is the meaning of providing the SVN for some curious people to try and modify it to something better. As long as you provide source for it, it shouldn't be a problem.

Personally I've also wanted such support. :)

· PCSX2 Coder
11,343 Posts
modified plugins are welcomed, as long as source is provided, we have no problem with that.

we just dont like modified versions of the emulator itself, so as long as you stay clear of that, we're good :)

· Ƹ̵̡Ӝ̵̨̄Ʒ 龍我雷 Ƹ̵̡Ӝ̵̨̄Ʒ
1,377 Posts
Discussion Starter · #9 · (Edited)
Sorry for the long reply

Here it is the Plugin and Source

First of All, this is just Simple modification to the Plugin not Plugin release
itself (and I think It wont be an Official Plugin anytime)

To make Couple of things clear here is the Explanation:
- Just use it with the First PAD, (I cant figure out curPAD, pads from source)
I will try to make it using the second PAD, but no promises...
- Different name than PadWinKeyboard Plugin to prevent any interference
between the 2 plugins
- It supports L3 R3 to assign it to keyboards not Mouse Dbl-Click
- 2 Analog Sticks, 4 Directions, (At max Value, As if you pushed the analog
to the Limit, can't sense a half press, got the point)

- Different Configuration file "TwinPad.ini" for the Second reason.
- External GUI designed at VB, cause I can design better and faster in VB
(It took for me 15 minutes to build the GUI and CODE in VB, believe that)
But Cant program Windows using VC++, only C++ :p

Unzip the Plugin to Plugins directory, also the "TwinPad.exe" -=> GUI External
from DLL, Normally cant run by itself, USE the normal pad Configuartion from
PCSX2 Plugin Configurations..

And it would be better, if an Official Pad Plugin dev' like Asadr, implement this
so there will be no need for such this plugin..

Of course, all the Credit goes to LinuzAppz & Asadr for the great plugin (Last version was rich in comments :) )
Finally, I hope, I could bring something usefull, for any1 to use.

Edit: Incase if the GUI can't load (***UNLIKELY***) you will need Microsoft Common Controls installed "MSCOMCTL.OCX" v6.0 SP4 (I think these come shiped with windows), and Microsoft Scripting run time "scrrun.dll" in your system32 directory.. you can find them in microsoft or search the google for these files, (Not implemented for lack of size)

GUYS: See the whole thread as other releases in next pages. ;)

· AKA snkmad
4,063 Posts
OMG ill finally be able to play castlevania!
Gonna try it now.
THX a million!

· The Curious One
43 Posts
...And it works!! I'm playing FFXII without a pad! Both left and right analog works as it's supposed to and the game goes great!
Thanks a bunch Rebel_X. This'd be a salvation for those of us without a controller for PC.

· Premium Member
2,843 Posts
Thanks for the link, I think quite a lot people may be missing the MSCOMCTL.OCX file, I had to download it myself too, it can be downloaded here for example:

Just extract to windows\system32 folder and it should work. If not then also try download this.

Analog movement works perfect in FF12 with the keyboard buttons. Pressing both up and right for example moves the character in the diagonal direction so you don't only get the left, right, down and up movement directions but the 8-direction movement control. :)

Too bad you can't use all keyboard buttons tho, like would be nice to be able to use numpads for the right analog stick to control the viewing angle, also only letters and 0-9 can be used as assignment keys, not the other keys at least in my case.

Thanks for the plugin. :p

· Registered
745 Posts
Hehe, didn't notice this one is out and corrected analog mouse this morning.
Anyway does this plugin support mouse ( I don't have any games here so I can't try I'm just curious ) or just keyboard ?

Anyway admins should probably make this sticky ( or include it in pcsx2 release ??? )

· Ƹ̵̡Ӝ̵̨̄Ʒ 龍我雷 Ƹ̵̡Ӝ̵̨̄Ʒ
1,377 Posts
Discussion Starter · #19 ·
Too bad you can't use all keyboard buttons tho, like would be nice to be able to use numpads for the right analog stick to control the viewing angle, also only letters and 0-9 can be used as assignment keys, not the other keys at least in my case.
Hint: If the NUMLOCK is ON (pressing a key on the numeric keypad returns a number), If the NUMLOCK is OFF (pressing a key on the numeric keypad moves the cursor) seriously though, you can Open the TwinPad.ini and CHANGE the last 4 lines (corresponds to right analog) to any key you want!
NUMPADs from (0x60 = NUM 0) --- to --- (0x69 = NUM 9)

Thanx for correcting me its 8 Directions in total by mixing keys together!

And yes! it currently supports mouse, infact it has all the goodies and badies found in the original PadWinKeyb plugin..

Thanx all..

· Registered
14 Posts
i cant get twinpad to work installed all waht i need the .exe file does open too and i can configure all the buttons but when i start FFXII and press enter (for X) nothing happens. the same to alle th other buttons ... how can that be ?
1 - 20 of 202 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.