padGnneco is a pad plugin for PS emulator.
padGnneco is a derivative of padXwin v1.6 by linuzappz.
(c) 2002 linuzappz 2003 yokota

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

requirements

* PS emulator with PSE_PAD_TYPE_NEGCON or PADpoll()/PADstartPoll()
  support. (tested with Pcsx 1.5)
* DirectX 7 or later.

to build

* MinGW (MinGW-2.0.0-3.exe or later) http://mingw.sourceforge.net
* GNU utilities (UnxUtils.zip) http://unxutils.sourceforge.net 
* BCC 5.5 (brcc32.exe, rw32core.dll) http://www.borland.com
* DirectX 7 (dx70_mgw.zip) http://alleg.sourceforge.net
  or DirectX 8 (dx4devc.zip) http://www.bloodshed.net/dev/index.html

usage

1. Put it on plugin dir, start emulator, and open configure dialog.
2. Select (or input) threshold in combobox. Smaller value brings
   sensitive detection.
3. Click a button on dialog you want to configure.
4. Push a key on gamepad (or keyboard) you want to use and KEEP IT
   PRESSED for a second. If plural candidates exist, new dialog
   appears. Click a button which you want to use dialog.
5. Push "Neutral" if you want to reset neutral state.
6. Click "autofire config" when use it. (see autofire section.)
7. Uncheck "save config to - ini file" to use registry.
8. Push "reload config from ini / reg" to reset config.
9. Mark the type of pad what you want to use.
10. Goto 3, or click "OK" on dialog to save.

dialog

+--------------------------------------------------+
| (L2)      [pad type]     change-type        (R2) |
| analog-L                                   btn-R |
|      up    [twist-left twist-right]   btn-B      |
| left    right                   analog-II  btn-A |
|     down     (select)  btn-Start     analog-I    |
+--------------------------------------------------+

 * up/down/left/right: D-pad 
 * btn-A/B/R/Start: digital button

 * twist-left/right: wheel(left/right)
 * analog-I: accel
 * analog-II: brake
 * analog-L: usually digital function (shift, view-change,
   air-brake, ...)

 * select, L2, R2: for digital pad
 * pad type: pad type to emulate.
 * change-type: key to change pad type on emulation.

You can see a figure by takwu on here.
 http://www.ngemu.com/forums/attachment.php?attachmentid=38433

autofire

1. Click "autofire" button. New dialog appears.
2. Mark the check box you want to use.
3. Push button, and push a key on gamepad (or keyboard).
4. Set autofire speed with combo box. "0" for no assist, 
   "1" for fastest fire, and larger value makes slower fire.
5. Click "OK".

inifile

 * device (keyboard: 1, Joy1: 2, Joy2: 4, Joy3: 8, ...)
 * key (DI device constant.)
 * analog (limitation of analog axis. decrease this value if you
   want to soften "all or nothing" read of D-pad or keyboard.)
 * max/min (range of axis.)

acknowledgements

Gismo, for bug reports and development of padNeGcon, a sister plugin.
takwu, for bug reports and figure.
Gyruss, for bug reports and advice of user interface.
Mr. K, for photograph of my cats.
Edo, for request of autofire feature.

references

http://www.pcsx.net
http://www.cs.virginia.edu/~lcc-win32/
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/zsnes/zsnes/src/win/winlink.cpp?rev=1.232&content-type=text/vnd.viewcvs-markup
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mame32jp/mame32jp/src/Win32/DIJoystick.c?rev=1.6&content-type=text/vnd.viewcvs-markup
http://www.uri.sakura.ne.jp/~cosmic/yuno/lab/dinput_keycode.html
http://www.microsoft.com/japan/msdn/directx/downloads.asp
http://www.geocities.co.jp/Playtown-Rook/2087/pad_interface.zip 
http://lillith.sk.tsukuba.ac.jp/~kashima/games/ps-e.txt

known bugs

* USB keyboard detection on DX9.
* POV detection.

changelog

version 0.06
* Added Bravo switch (experimental).

version 0.05
* Added digital pad function.
* Bug fixes.

version 0.04
* More bug fixes in configuration dialog.
* Added autofire function.
* Added registry save.

version 0.03
* Added suport of PADstartPoll/PADpoll function.
* Fixed treatment of analog value. They are now returned in
  negConWheel, negConB1, negConB2, and negConB3 of PADdataS.
* Few fixes in configuration dialog.
* Small changes in internal archtecture.
* Small fixes in resource.

version 0.02
* Can be compiled with DI5 (glitch on configuration dialog) or DI8.
* Many fixes in resource.
* Many fixes in configuration dialog.
* Many fixes in Readme.txt.

version 0.01
* First release.
* Tested with Pcsx 1.4 (patched) / Windows 95 / DirectX 8.0a.

Permission is granted to copy, distribute and/or modify Readme.txt
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".

shirouto_yokota-lj@infoseek.jp
http://members.at.infoseek.co.jp/shirouto_yokota/
