MAMEWAH v1.62+ Ctrlr (Input) System


File Structure & Use

This is how the ctrlr system works: MAMEWAH will check for the following .cfg (ctrlr) files in the order below. If a given file does not exist, then MAMEWAH will move onto the next file in the hierarchy. If NONE of the files exist, MAMEWAH will exit as it will be uncontrollable!

Note that 'emuname' should be replaced with the emulator name, as used by MAMEWAH's ini config system. The '?' refers to the game list number, again, as used the \ini config system:

\mamewah\config\emuname\emuname-?.cfg			emulator & game list specific ctrlr file
\mamewah\config\emuname\emuname.cfg			emulator specific ctrlr file
\mamewah\config\mamewah.cfg



Input Definitions

This is a list of key, mouse and joystick input codes which can be used in MAMEWAH's ctrlr ini config system.  Note that keycodes are DirectInput standard codes, please consult http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dx81_vb/directx_vb/Input/VB_Ref/Enums/const_dikeyflags.asp for a more thorough explanation (some keycodes are not obvious which keys they are for!).  SEE BELOW these codes for further settings...

'Main Keys:
DIK_0
DIK_1
DIK_2
DIK_3
DIK_4
DIK_5
DIK_6
DIK_7
DIK_8
DIK_9

DIK_A
DIK_B
DIK_C
DIK_D
DIK_E
DIK_F
DIK_G
DIK_H
DIK_I
DIK_J
DIK_K
DIK_L
DIK_M
DIK_N
DIK_O
DIK_P
DIK_Q
DIK_R
DIK_S
DIK_T
DIK_U
DIK_V
DIK_W
DIK_X
DIK_Y
DIK_Z

DIK_UP or DIK_UPARROW
DIK_DOWN or DIK_DOWNARROW
DIK_LEFT or DIK_LEFTARROW"
DIK_RIGHT or DIK_RIGHTARROW

DIK_NUMPAD0
DIK_NUMPAD1
DIK_NUMPAD2
DIK_NUMPAD3
DIK_NUMPAD4
DIK_NUMPAD5
DIK_NUMPAD6
DIK_NUMPAD7
DIK_NUMPAD8
DIK_NUMPAD9
DIK_NUMLOCK
DIK_NUMPADSLASH or DIK_DIVIDE
DIK_NUMPADSTAR or DIK_MULTIPLY
DIK_NUMPADMINUS or DIK_SUBTRACT
DIK_NUMPADPLUS or DIK_ADD
DIK_NUMPADENTER
DIK_NUMPADPERIOD or DIK_DECIMAL
DIK_NUMPADCOMMA
DIK_NUMPADEQUALS

DIK_ESCAPE
DIK_F1
DIK_F2
DIK_F3
DIK_F4
DIK_F5
DIK_F6
DIK_F7
DIK_F8
DIK_F9
DIK_F10
DIK_F11
DIK_F12
DIK_F13
DIK_F14
DIK_F15

DIK_GRAVE
DIK_TAB
DIK_CAPSLOCK or DIK_CAPITOL
DIK_LSHIFT
DIK_BACKSLASH
DIK_MINUS
DIK_EQUALS
DIK_BACKSPACE or DIK_BACK
DIK_LBRACKET
DIK_RBRACKET
DIK_RETURN
DIK_SEMICOLON
DIK_APOSTROPHE
DIK_COMMA
DIK_PERIOD
DIK_SLASH
DIK_RSHIFT
DIK_LCONTROL
DIK_LWIN
DIK_LALT or DIK_LMENU
DIK_SPACE
DIK_RALT or DIK_RMENU
DIK_RWIN
DIK_APPS
DIK_RCONTROL

DIK_SYSRQ
DIK_SCROLL
DIK_PAUSE
DIK_INSERT
DIK_HOME
DIK_PGUP or DIK_PRIOR
DIK_DELETE
DIK_END
DIK_PGDN or DIK_NEXT

'Brazilian Keyboards:
DIK_ABNT_C1
DIK_ABNT_C2

'British/German Keyboards:
DIK_OEM_102

'Japanese Keyboards:
DIK_AT
DIK_AX
DIK_CIRCUMFLEX
DIK_COLON
DIK_CONVERT
DIK_KANA
DIK_KANJI
DIK_NOCONVERT
DIK_STOP
DIK_UNDERLINE
DIK_UNLABELED
DIK_YEN

'Multimedia/Web Keyboards:
DIK_CALCULATOR
DIK_MAIL
DIK_MEDIASELECT
DIK_MEDIASTOP
DIK_MUTE
DIK_MYCOMPUTER
DIK_NEXTTRACK
DIK_PLAYPAUSE
DIK_POWER
DIK_PREVTRACK
DIK_VOLUMEDOWN
DIK_VOLUMEUP
DIK_WAKE
DIK_WEBBACK
DIK_WEBFAVORITES
DIK_WEBFORWARD
DIK_WEBHOME
DIK_WEBREFRESH
DIK_WEBSEARCH
DIK_WEBSTOP

'Mouse Inputs:
MOUSE_LEFT
MOUSE_RIGHT
MOUSE_UP
MOUSE_DOWN
MOUSE_SCROLLUP
MOUSE_SCROLLDOWN
MOUSE_BUTTON0
MOUSE_BUTTON1
MOUSE_BUTTON2
MOUSE_BUTTON3
    
'Joystick Inputs (?=device no.):
JOY?_LEFT
JOY?_RIGHT
JOY?_UP
JOY?_DOWN
JOY?_IN
JOY?_OUT
JOY?_ROTATELEFT
JOY?_ROTATERIGHT
JOY?_ROTATEUP
JOY?_ROTATEDOWN
JOY?_ROTATEIN
JOY?_ROTATEOUT
JOY?_SLIDER0INC
JOY?_SLIDER0DEC
JOY?_SLIDER1INC
JOY?_SLIDER1DEC
JOY?_POV0-3_LEFT
JOY?_POV0-3_RIGHT
JOY?_POV0-3_UP
JOY?_POV0-3_DOWN
JOY?_BUTTON0-31



Other Settings:

Various other settings are available for use using the ctrlr ini files (see the bottom of the supplied mamewah.cfg).  Here is a brief explanation:

keyboard			- enable / disable keyboard
mouse				- enable / disable mouse
joystick			- enable / disable joysticks

digital_scroll_rate 		- scroll rate for games / options lists (also minimum scroll rate for similated analog, see below)

simulated_analog_max_rate	- maximum scroll rate for 'simulated analog' (accelerated) scrolling (games list only)

mouse_x_sensitivity		- mouse x-axis sensitivity
mouse_y_sensitivity		- mouse y-axis sensitivity

(The below are joystick device no. [?] and [axis] specific)

joy?_axis_deadzone		- % of travel before joystick is engaged
joy?_axis_saturation		- % of travel before maximum joystick value is reached
joy?_axis_sensitivity		- joystick sensitivity
joy?_axis_analog		- specifies whether 