A new and completely redesigned user interface, based on wxWidgets v3.0.2. No more DX8VB dll
Ability to erase a single button for Pad1/2 tab (right click to erase it).
Get settings directory from emu is working. If emu doesn't provide settings path (PSX emus),
TwinPad will use default 'inis' directory next to the emu's exe. If 'inis' not found it will be
created. Just make sure you (as a user) have the privilege to read/write at that location.
In Combos, Reduced number of buttons to 20 buttons per Action. Make it impossible to add
nonsensical buttons at once (e.g,: Left Analog Up + Left Analog Down at the same time).
Note: Some games rely on opposite D-Pad buttons being pressed, and indeed, PS2 allows you to
press D-Pad UP and Down, or Left and Right at the same time.
Ability to assign button sensitivity for each button inside a Combo. Note that due to limitation
of DualShock 2 (not TwinPad) you can't have 2 sensitive buttons pressed (12 total for DS2) at the
same time. Otherwise, PS2 or the Emu will consider the buttons being simply pressed (no pressure).
Just keep this in mind when making a new Combo. Different pressure values for different Actions is okay.
Ability to set individual Combos for pad 1 or 2. Unlike before, all combos for the selected pad.
Ability to have empty action at the beginning of a Combo.
Ability to execute 2 combos independently of each other at the same time. One for each pad.
You can even have two Combos share the same predefined key as long as they have different pad
assigned than each other.
Combo editor now allows you to add, insert (2 different versions), and delete Actions. Or delete
To turn off a Combo but keep it there instead of deleting it, just remove the assigned key for
it (again right click on the configured key).
Fixed a logical bug in Combo execution, delay was off by one type error.
Enhanced mouse sensitivity when set greater than 1 (one is the default and recommended).
Fixed Scroll Up/Down mouse wheel behavior when set to actual PS buttons.
Eliminated some not needed options from Misc tab. Load Configurations on the fly has to go,
sorry. TwinPad Configuration doesn't run from EXE file anymore.
Many small bug fixes which I forgot. And many more code refactoring and cleanups. Still looks
All previous configurations will be LOST (including Combos). The plugin will notify you
P.S: I didn't have the chance to test the GUI extensively. There might be some issues regarding the GUI.. If there are any,
please report them here and the steps to reproduce the issues. Thanks
P.S.2: If you complain about the DLL size jumping from 150KB to being greater than 3.5MB, blame wxWidgets for being bulky.
How to use:
Extract the DLL into 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..
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 clear a single configured button, right-click.
Toggle between Pad 1 and 2 configuration using radio button.
The blue Box tells you what button you are trying to configure, when it turns crimson, that means TwinPad is
waiting for a key from the user.
Note: Walk/Run is just a simple method to toggle between full press or half press for all buttons during the game.
If a key is configured say "CAPS LOCK", pressing that once, will make for example CROSS or SQUARE send half pressure
values to the emu. When pressed again, the full pressure is applied. This also affects the Analog stick movements, it will
cause it to half tilt or fully tilt towards the desired direction.You don't have to keep pressing the Walk/Run button,
just once to half sensitivity for all buttons, once again when done and want full pressure for the sensitive buttons.
Now, to configure the mouse, click on the Mouse tab another form will appear.
You can configure the mouse, for example, left mouse button as left analog stick, right mouse button
as right analog 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..
Note: While pressing any of the mouse buttons inside the GS/GPU window, the mouse will be trapped into it.
Once the button is released, the mouse is free to go anywhere.
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 sequenced in execution top-down wise.
An Action is a group of pad buttons pressed at the same time (the same frame as in Frame Per Second -FPS-) for
specific number of frames. An Action can contain up to 20 different buttons 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
D-Pad UP and DOWN in same action. But you can't select opposite Analog directions such as Right Analog (Right and Left)
together it's going to be useless. TwinPad will notify you if such thing happen.
You can add new action if you want, to group more buttons to be pressed at the same time.
There is no limit for how many COMBOS you create. To disable a COMBO, just deactivate its
configured key by Right-Clicking on the "KEY" area. You don't need to delete the COMBO.
Now each Action has it's own Speed or Delay.. you can select a value from 1 to 99999, (1 is fast, 99999 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.
The delay value represents how many times an Action will be repeated, that is for 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, that 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 tab 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, 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 want to create Auto-Fire buttons. Specify the first or last action as empty, say the COMBO consists of 2 actions
First action contains one button "X" cross, and Last Action is empty. Both Actions has a delay value of 1 and the key "Z" is configured
for the COMBO. Holding 'Z' down while playing will press/depress "X" 30 times in a second if it was NTSC 60 FPS game or 25 times in
a second if it was PAL 50FPS game. Of course that is if the game runs at full speed.
If you are not satisfied with the current action, you can always click on "Delete Last Action" if it was the last,
or if it was positioned in between many actions, then you have to select that Action by clicking on the Action
number to the left to highlight it (Crismson), you can select multiple Actions either by dragging the mouse
or holding CTRL or SHIFT keys while highlighting Actions. Then click on "Delete Selected Action(s)".
For an action to be successfully highlighted for deletion or insertion, all buttons in that action (the 20 buttons) must be highlighted.
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.
You can insert Actions into and between other actions by highlighting the Action you want to insert a new one in that position,
then click Insert Action(s). You can insert one or more actions at a time.
There are two flavors of inserting more than 1 action at a time, Insert Action or Insert In between Actions.
The first will insert a number of Actions adjacent to each other based on the number of highlighted actions. Say you want to insert 3 actions close to each other, you must highlight 3 adjacent actions to insert the new Actions there, the old Actions will be pushed down the list. It is the same way you add a new row in Excel.
The second will insert a number of Actions separate than each other, you highlight the actions you want the new actions to be inserted there. Say you highlight Action #3 and Action #6 (while pressing and holding 'CTRL' down and clicking the Action number). The new actions will be inserted there.
There are 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 dark gray box next to each action that have a number (first column for the 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. If you didn't specify a key, the COMBO is disabled. Also if you Disable COMBOs in the Misc tab, all combos will be disabled.
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. Unless they differ with the assigned PAD number, which you can use to execute 2 COMBOs at the same time,
one for each pad, even if they share the same configured key which is not mandatory.
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. To erase the assigned key, right-click there.
Note: The same rule applies when selecting Combo Keys as PAD 1/2 for Keyboard tab. You can't select reserved keys 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 the current COMBO only, pay attention to which
PAD is assigned to each COMBO.
When adding a new button to the current action, some buttons have sensitivity (12 Buttons for DualShock 2). You can specify the sensitivity
for each of those buttons by selecting the added button and changing its pressure/sensitivity value using the spin control next to the pad
selection. Note that when hovering the mouse over a button in the editor, a tool-tip will tell you the value of the sensitivity for the button
underneath if it was a pressure sensitive button of course. Otherwise it will say that that button is not pressure sensitive.
By default, all added new buttons have highest pressure value of 255. Which you can modify for individual buttons.
Note: To make it easier, you notice that Analog sticks are not pressure sensitive, but dealing with then as pressure sensitive
makes it easier to specify how much is the stick is tilted. Say for example, Left Analog Up has a sensitivity value of 64 and Left Analog Right
has a value of 192. That means, when the COMBO is executed, it will be interpreted by the game as the Left Analog is titled half way through
diagonally to the upper right corner.
Analog sticks have their own corresponding maximum sensitivity, for both left and right Analog sticks:
Analog UP or Analog LEFT (sensitivity = 0, All the way to the TOP or LEFT edges respectively) Valid values 0 to 128.
Analog Down or Analog Right (sensitivity = 255, All the way to BOTTOM or RIGHT edges respectively) Valid values 128 to 255.
If you specify 128, that means that analog is not tilted at all (sensitivity = 128) <=- At the center.
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 buttons or 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).
Also it shows the Sensitivity assigned to those buttons in the Editor for the Sensitive buttons or the Analog Sticks.
To save and exit click on Save button inside the Keyboard tab. If you close TwinPad without clicking "Save", all changes will be lost.
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.
Run the emulator, at the time you want to execute the combo, press the configured key for that combo.
I suggest making a save state (pressing F1) before testing the COMBO to make it easier and time saving when testing a new combo.
If it doesn't work correctly or the timing is off, press Escape, configure TwinPad and modify the COMBO. Save then resume
the game and load the saved state (pressing F3) to the point where you want to execute the combo and try to execute it again.
Repeat this process, until you successfully have your COMBO working.
Anyways here are two videos I made about this newest feature..
And this old one is from an old friend RPGW1ZaRD, that shows how the mouse work as analog sticks for both
Running/Walking and the Camera. The game is Grandia 3
Lulu's Overdrive Configuration, shows you how buttons added to actions
to perform fury spells.. from TwinPad 0.8.0
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: Tekken3 MoveList
Now done with COMBOs, have a look to the Misc Options tab (if you want )
It's recommended to leave PAD1, PAD2, and MOUSE enabled, if you don't use COMBOs feature disable it or leave it there, it wont cost you a dime.
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..
Oh last time I worked on this plugin was the time I uploaded FFX fury video in march, so consider this as beta version.. at least it passed alpha stage for me
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..
* 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 "
Heh, Visual Studio was driving me nuts, variables change their value by themself when debugging,
cleaning the solution from intermediate and debug files solved the problem!
* 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!..-
* 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
* 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*
I'm vista home premium, it's crashed too. My other keyboard plugins that came with pcsx2 except lilypad crashed too
ps- My specs
Operating System Microsoft Windows Vista Home Edition
OS Service Pack Service Pack 1
DirectX 4.09.00.0904 (DirectX 9.0c)
Computer Name ANORLDGOH-PC
User Name Anorld goh
CPU Type 2x Intel Pentium III Xeon, 2666 MHz (9 x 296)
Motherboard Name Unknown
Motherboard Chipset Unknown
System Memory 2048 MB
BIOS Type AMI (04/09/09)
Video Adapter GeForce GT 120
Video Adapter GeForce GT 120
Monitor HP 2009 Series Wide LCD Monitor [NoDB] (3CQ9133JYX)
Audio Adapter High Definition Audio Controller [NoDB]
IDE Controller Intel® ICH10 Family 4 port Serial ATA Storage Controller 1 - 3A20
SCSI/RAID Controller A89VT6O1 IDE Controller
SCSI/RAID Controller Microsoft iSCSI Initiator
Disk Drive ST3500418AS ATA Device (465 GB, IDE)
Disk Drive Generic- SD/MMC USB Device
Disk Drive Generic- Compact Flash USB Device
Disk Drive Generic- SM/xD-Picture USB Device
Disk Drive Generic- MS/MS-Pro USB Device
Optical Drive TSSTcorp CDDVDW TS-H653Z ATA Device
Optical Drive YHYLIL I7GPMFS5YV4X SCSI CdRom Device
SMART Hard Disks Status OK
Network Adapter Realtek RTL8168D/8111D Family PCI-E GBE NIC (192.168.1.8)
Printer Microsoft XPS Document Writer
Printer Send To OneNote 2007
USB1 Controller Intel® ICH10 Family USB Universal Host Controller - 3A34 [NoDB]
USB1 Controller Intel® ICH10 Family USB Universal Host Controller - 3A35 [NoDB]
USB1 Controller Intel® ICH10 Family USB Universal Host Controller - 3A36 [NoDB]
USB1 Controller Intel® ICH10 Family USB Universal Host Controller - 3A37 [NoDB]
USB1 Controller Intel® ICH10 Family USB Universal Host Controller - 3A38 [NoDB]
USB1 Controller Intel® ICH10 Family USB Universal Host Controller - 3A39 [NoDB]
USB2 Controller Intel® ICH10 Family USB Enhanced Host Controller - 3A3A [NoDB]
USB2 Controller Intel® ICH10 Family USB Enhanced Host Controller - 3A3C [NoDB]
USB Device USB Composite Device
USB Device USB Human Interface Device
USB Device USB Human Interface Device
USB Device USB Mass Storage Device
(This post was last modified: 07-16-2009 07:34 AM by vni.)
Crash pcsx2 on run using the plugin 0.8.0 and 0.8.1
Debugger visual studios Info
The thread 'Win32 Thread' (0x1648) has exited with code -1073740777 (0xc0000417).
The thread 'Win32 Thread' (0x1690) has exited with code -1073740777 (0xc0000417).
The thread 'Win32 Thread' (0x818) has exited with code -1073740777 (0xc0000417).
The thread 'Win32 Thread' (0x152c) has exited with code -1073740777 (0xc0000417).
The program ' pcsx2-dbg.exe: Native' has exited with code -1073740777 (0xc0000417).