Dieser Bereich befasst sich mit dem Erstellen und dem Umschreiben der Control.ini Datei für Mame Version 0.60 (und höher). |
Für was werden die Controller ini Dateien benötigt ?
Die speziellen Controller ini Dateien (XArcade, SlikStik usw.) sind so gestaltet, dass du für deinen Controller eine eigene Datei für Tastenbelegung erstellen
kannst. Du kannst auch für spezielle Spiele eine eigene Controller Datei
erstellen. |
Erstellen einer Controller Datei
Suche als erstes den
Ordner C:\Mame\ctrlr. Der Ordner sollte etwa so aussehen:
Als nächstes musst du einen Ordner mit den Namen deines Controllers erstellen.
Benutzt du einen Wingman, solltest du logischerweise den Ordner Wingman
nennen. (Beachte: Wenn du Mame unter DOS verwendest, denke an die 8+3
Regel der Namenslänge). Nun kopiere die std-Datei aus dem Ordner ctrlr und
füge sie in den neuen Ordner (Wingman) ein.
Klicke mit der rechten Maustaste auf die Datei std.ini im Ordner Wingman und wähle
umbenennen. Ändere den Namen in default und drücke Enter.
Diese neue Datei (default) wird von Mame nun als Hauptdatei für die Steuerung in
allen Spielen und im "In-Game" Menü verwendet. Du kannst ebenso
eine individuelle Steuerungsdatei für bestimmte Spiele erstellen. Dies wird
dann benötigt, wenn du einen Controller mit sowohl einem Analogen als auch einem Digitalen Steuerkreuz verwendest.
Ein Beispiel: Du kannst eine spezielle Datei für die Fahrsimulation "Outrun" machen, das man eher mit einem analogen Stick spielt, oder eine für das Fightergame "Marvel Versus Capcom", das mit einem digitales Steuerkreuz mehr Spaß macht. Alles was du tun musst, ist eine Kopie der Datei default.ini zu erstellen und diese mit dem selben Namen wie die Spieledatei zu versehen. (In Mame32 findest du diesen Namen in der Spieleliste in der Spalte
"Directory"). Diese neue Datei heißt dann z.B. "pbobble.ini" beim Spiel "Puzzle Bobble". |
Die default.ini Datei
Dies hier wirst du in der default.ini Datei sehen:
# This file contains a
list of standard input definitions. # This file is NOT parsed by MAME,
but is instead presented to # describe the standard definitions. Lines
can be copied from # this file to create a controller customization
file. When # creating a file, keep the number of redefinitions to a
# minimum. Any input not listed will default to the sequence #
listed below. Note that several files may be parsed for any # given
controller/game combination, so an input may be # re-defined in
multiple places.
UI_CONFIGURE "KEYCODE_TAB" UI_ON_SCREEN_DISPLAY
"KEYCODE_TILDE" UI_PAUSE "KEYCODE_P" UI_RESET_MACHINE
"KEYCODE_F3" UI_SHOW_GFX "KEYCODE_F4" UI_FRAMESKIP_DEC
"KEYCODE_F8" UI_FRAMESKIP_INC "KEYCODE_F9" UI_THROTTLE
"KEYCODE_F10" UI_SHOW_FPS "KEYCODE_F11 ! KEYCODE_LCONTROL !
KEYCODE_LSHIFT" UI_SHOW_PROFILER "KEYCODE_F11 KEYCODE_LSHIFT" UI_SNAPSHOT "KEYCODE_F12" UI_TOGGLE_CHEAT
"KEYCODE_F6" UI_UP "KEYCODE_UP | JOYCODE_1_UP" UI_DOWN "KEYCODE_DOWN
| JOYCODE_1_DOWN" UI_LEFT "KEYCODE_LEFT | JOYCODE_1_LEFT" UI_RIGHT
"KEYCODE_RIGHT | JOYCODE_1_RIGHT" UI_SELECT "KEYCODE_ENTER |
JOYCODE_1_BUTTON1" UI_CANCEL "KEYCODE_ESC" UI_PAN_UP
"KEYCODE_PGUP ! KEYCODE_LSHIFT" UI_PAN_DOWN "KEYCODE_PGDN !
KEYCODE_LSHIFT" UI_PAN_LEFT "KEYCODE_PGUP KEYCODE_LSHIFT" UI_PAN_RIGHT
"KEYCODE_PGDN KEYCODE_LSHIFT" UI_TOGGLE_DEBUG "KEYCODE_F5" UI_SAVE_STATE
"KEYCODE_F7 KEYCODE_LSHIFT" UI_LOAD_STATE "KEYCODE_F7 !
KEYCODE_LSHIFT" UI_ADD_CHEAT "KEYCODE_A" UI_DELETE_CHEAT
"KEYCODE_D" UI_SAVE_CHEAT "KEYCODE_S" UI_WATCH_VALUE
"KEYCODE_W" UI_EDIT_CHEAT "KEYCODE_E" START1 "KEYCODE_1 |
JOYCODE_1_START" START2 "KEYCODE_2 | JOYCODE_2_START" START3
"KEYCODE_3 | JOYCODE_3_START" START4 "KEYCODE_4 |
JOYCODE_4_START" COIN1 "KEYCODE_5 | JOYCODE_1_SELECT" COIN2
"KEYCODE_6 | JOYCODE_2_SELECT" COIN3 "KEYCODE_7 |
JOYCODE_3_SELECT" COIN4 "KEYCODE_8 | JOYCODE_4_SELECT" SERVICE1
"KEYCODE_9" SERVICE2 "KEYCODE_0" SERVICE3 "KEYCODE_MINUS" SERVICE4
"KEYCODE_EQUALS" TILT "KEYCODE_T"
P1_JOYSTICK_UP "KEYCODE_UP |
JOYCODE_1_UP" P1_JOYSTICK_DOWN "KEYCODE_DOWN |
JOYCODE_1_DOWN" P1_JOYSTICK_LEFT "KEYCODE_LEFT |
JOYCODE_1_LEFT" P1_JOYSTICK_RIGHT "KEYCODE_RIGHT |
JOYCODE_1_RIGHT" P1_BUTTON1 "KEYCODE_LCONTROL | JOYCODE_1_BUTTON1 |
MOUSECODE_1_BUTTON1" P1_BUTTON2 "KEYCODE_LALT | JOYCODE_1_BUTTON2 |
MOUSECODE_1_BUTTON3" P1_BUTTON3 "KEYCODE_SPACE | JOYCODE_1_BUTTON3 |
MOUSECODE_1_BUTTON2" P1_BUTTON4 "KEYCODE_LSHIFT |
JOYCODE_1_BUTTON4" P1_BUTTON5 "KEYCODE_Z |
JOYCODE_1_BUTTON5" P1_BUTTON6 "KEYCODE_X |
JOYCODE_1_BUTTON6" P1_BUTTON7 "KEYCODE_C" P1_BUTTON8
"KEYCODE_V" P1_BUTTON9 "KEYCODE_B" P1_BUTTON10
"KEYCODE_N" P1_JOYSTICKRIGHT_UP "KEYCODE_I |
JOYCODE_1_BUTTON2" P1_JOYSTICKRIGHT_DOWN "KEYCODE_K |
JOYCODE_1_BUTTON3" P1_JOYSTICKRIGHT_LEFT "KEYCODE_J |
JOYCODE_1_BUTTON1" P1_JOYSTICKRIGHT_RIGHT "KEYCODE_L |
JOYCODE_1_BUTTON4" P1_JOYSTICKLEFT_UP "KEYCODE_E |
JOYCODE_1_UP" P1_JOYSTICKLEFT_DOWN "KEYCODE_D |
JOYCODE_1_DOWN" P1_JOYSTICKLEFT_LEFT "KEYCODE_S |
JOYCODE_1_LEFT" P1_JOYSTICKLEFT_RIGHT "KEYCODE_F |
JOYCODE_1_RIGHT" P2_JOYSTICK_UP "KEYCODE_R |
JOYCODE_2_UP" P2_JOYSTICK_DOWN "KEYCODE_F |
JOYCODE_2_DOWN" P2_JOYSTICK_LEFT "KEYCODE_D |
JOYCODE_2_LEFT" P2_JOYSTICK_RIGHT "KEYCODE_G |
JOYCODE_2_RIGHT" P2_BUTTON1 "KEYCODE_A |
JOYCODE_2_BUTTON1" P2_BUTTON2 "KEYCODE_S |
JOYCODE_2_BUTTON2" P2_BUTTON3 "KEYCODE_Q |
JOYCODE_2_BUTTON3" P2_BUTTON4 "KEYCODE_W |
JOYCODE_2_BUTTON4" P2_BUTTON5 "JOYCODE_2_BUTTON5" P2_BUTTON6
"JOYCODE_2_BUTTON6" P2_BUTTON7 "CODE_NONE" P2_BUTTON8
"CODE_NONE" P2_BUTTON9 "CODE_NONE" P2_BUTTON10
"CODE_NONE" P2_JOYSTICKRIGHT_UP "CODE_NONE" P2_JOYSTICKRIGHT_DOWN
"CODE_NONE" P2_JOYSTICKRIGHT_LEFT "CODE_NONE" P2_JOYSTICKRIGHT_RIGHT
"CODE_NONE" P2_JOYSTICKLEFT_UP "CODE_NONE" P2_JOYSTICKLEFT_DOWN
"CODE_NONE" P2_JOYSTICKLEFT_LEFT "CODE_NONE" P2_JOYSTICKLEFT_RIGHT
"CODE_NONE" P3_JOYSTICK_UP "KEYCODE_I |
JOYCODE_3_UP" P3_JOYSTICK_DOWN "KEYCODE_K |
JOYCODE_3_DOWN" P3_JOYSTICK_LEFT "KEYCODE_J |
JOYCODE_3_LEFT" P3_JOYSTICK_RIGHT "KEYCODE_L |
JOYCODE_3_RIGHT" P3_BUTTON1 "KEYCODE_RCONTROL |
JOYCODE_3_BUTTON1" P3_BUTTON2 "KEYCODE_RSHIFT |
JOYCODE_3_BUTTON2" P3_BUTTON3 "KEYCODE_ENTER |
JOYCODE_3_BUTTON3" P3_BUTTON4 "JOYCODE_3_BUTTON4" P4_JOYSTICK_UP
"JOYCODE_4_UP" P4_JOYSTICK_DOWN "JOYCODE_4_DOWN" P4_JOYSTICK_LEFT
"JOYCODE_4_LEFT" P4_JOYSTICK_RIGHT "JOYCODE_4_RIGHT" P4_BUTTON1
"JOYCODE_4_BUTTON1" P4_BUTTON2 "JOYCODE_4_BUTTON2" P4_BUTTON3
"JOYCODE_4_BUTTON3" P4_BUTTON4 "JOYCODE_4_BUTTON4"
P1_PEDAL "KEYCODE_LCONTROL |
JOYCODE_1_BUTTON1" P1_PEDAL_EXT "KEYCODE_Y" P2_PEDAL
"KEYCODE_A |
JOYCODE_2_BUTTON1" P2_PEDAL_EXT "KEYCODE_Y" P3_PEDAL
"KEYCODE_RCONTROL | JOYCODE_3_BUTTON1" P3_PEDAL_EXT "KEYCODE_Y" P4_PEDAL "JOYCODE_4_BUTTON1" P4_PEDAL_EXT
"KEYCODE_Y"
P1_PADDLE "KEYCODE_LEFT |
JOYCODE_1_LEFT" P1_PADDLE_EXT "KEYCODE_RIGHT |
JOYCODE_1_RIGHT" P2_PADDLE "KEYCODE_D |
JOYCODE_2_LEFT" P2_PADDLE_EXT "KEYCODE_G |
JOYCODE_2_RIGHT" P3_PADDLE "KEYCODE_J |
JOYCODE_3_LEFT" P3_PADDLE_EXT "KEYCODE_L |
JOYCODE_3_RIGHT" P4_PADDLE "JOYCODE_4_LEFT" P4_PADDLE_EXT
"JOYCODE_4_RIGHT"
P1_PADDLE_V "KEYCODE_UP |
JOYCODE_1_UP" P1_PADDLE_V_EXT "KEYCODE_DOWN |
JOYCODE_1_DOWN" P2_PADDLE_V "KEYCODE_R |
JOYCODE_2_UP" P2_PADDLE_V_EXT "KEYCODE_F |
JOYCODE_2_DOWN" P3_PADDLE_V "KEYCODE_I |
JOYCODE_3_UP" P3_PADDLE_V_EXT "KEYCODE_K |
JOYCODE_3_DOWN" P4_PADDLE_V "JOYCODE_4_UP" P4_PADDLE_V_EXT
"JOYCODE_4_DOWN"
P1_DIAL "KEYCODE_LEFT |
JOYCODE_1_LEFT" P1_DIAL_EXT "KEYCODE_RIGHT |
JOYCODE_1_RIGHT" P2_DIAL "KEYCODE_D | JOYCODE_2_LEFT" P2_DIAL_EXT
"KEYCODE_G | JOYCODE_2_RIGHT" P3_DIAL "KEYCODE_J |
JOYCODE_3_LEFT" P3_DIAL_EXT "KEYCODE_L | JOYCODE_3_RIGHT" P4_DIAL
"JOYCODE_4_LEFT" P4_DIAL_EXT "JOYCODE_4_RIGHT"
P1_DIAL_V "KEYCODE_UP |
JOYCODE_1_UP" P1_DIAL_V_EXT "KEYCODE_DOWN |
JOYCODE_1_DOWN" P2_DIAL_V "KEYCODE_R | JOYCODE_2_UP" P2_DIAL_V_EXT
"KEYCODE_F | JOYCODE_2_DOWN" P3_DIAL_V "KEYCODE_I |
JOYCODE_3_UP" P3_DIAL_V_EXT "KEYCODE_K | JOYCODE_3_DOWN" P4_DIAL_V
"JOYCODE_4_UP" P4_DIAL_V_EXT "JOYCODE_4_DOWN"
P1_TRACKBALL_X "KEYCODE_LEFT |
JOYCODE_1_LEFT" P1_TRACKBALL_X_EXT "KEYCODE_RIGHT |
JOYCODE_1_RIGHT" P2_TRACKBALL_X "KEYCODE_D |
JOYCODE_2_LEFT" P2_TRACKBALL_X_EXT "KEYCODE_G |
JOYCODE_2_RIGHT" P3_TRACKBALL_X "KEYCODE_J |
JOYCODE_3_LEFT" P3_TRACKBALL_X_EXT "KEYCODE_L |
JOYCODE_3_RIGHT" P4_TRACKBALL_X "JOYCODE_4_LEFT" P4_TRACKBALL_X_EXT
"JOYCODE_4_RIGHT"
P1_TRACKBALL_Y "KEYCODE_UP |
JOYCODE_1_UP" P1_TRACKBALL_Y_EXT "KEYCODE_DOWN |
JOYCODE_1_DOWN" P2_TRACKBALL_Y "KEYCODE_R |
JOYCODE_2_UP" P2_TRACKBALL_Y_EXT "KEYCODE_F |
JOYCODE_2_DOWN" P3_TRACKBALL_Y "KEYCODE_I |
JOYCODE_3_UP" P3_TRACKBALL_Y_EXT "KEYCODE_K |
JOYCODE_3_DOWN" P4_TRACKBALL_Y "JOYCODE_4_UP" P4_TRACKBALL_Y_EXT
"JOYCODE_4_DOWN"
P1_AD_STICK_X "KEYCODE_LEFT |
JOYCODE_1_LEFT" P1_AD_STICK_X_EXT "KEYCODE_RIGHT |
JOYCODE_1_RIGHT" P2_AD_STICK_X "KEYCODE_D |
JOYCODE_2_LEFT" P2_AD_STICK_X_EXT "KEYCODE_G |
JOYCODE_2_RIGHT" P3_AD_STICK_X "KEYCODE_J |
JOYCODE_3_LEFT" P3_AD_STICK_X_EXT "KEYCODE_L |
JOYCODE_3_RIGHT" P4_AD_STICK_X "JOYCODE_4_LEFT" P4_AD_STICK_X_EXT
"JOYCODE_4_RIGHT"
P1_AD_STICK_Y "KEYCODE_UP |
JOYCODE_1_UP" P1_AD_STICK_Y_EXT "KEYCODE_DOWN |
JOYCODE_1_DOWN" P2_AD_STICK_Y "KEYCODE_R |
JOYCODE_2_UP" P2_AD_STICK_Y_EXT "KEYCODE_F |
JOYCODE_2_DOWN" P3_AD_STICK_Y "KEYCODE_I |
JOYCODE_3_UP" P3_AD_STICK_Y_EXT "KEYCODE_K |
JOYCODE_3_DOWN" P4_AD_STICK_Y "JOYCODE_4_UP" P4_AD_STICK_Y_EXT
"JOYCODE_4_DOWN"
OSD_1 "CODE_NONE" OSD_2 "CODE_NONE" OSD_3
"CODE_NONE" OSD_4 "CODE_NONE"
|
Was du hier siehst ist der Name der Steuerung gefolgt vom Tastaturcode. Nachstehend
eine kleine Erklärung: |
P1_JOYSTICK_UP |
" |
KEYCODE_UP |
| |
JOYCODE_1_UP |
" |
Beschreibung
des Steuerelements |
|
Benutzter
Tastatur
Code |
Logischer Abstandshalter |
Benutzter
Joystick Code |
|
Dies ist eine korrekte Eingabe - verändere noch nichts.
O.K. Als erstes ignoriere die Zeichen "". Nun werde ich die diese Eingabe noch näher erklären.
P1_JOYSTICK_UP = Der Name des Controllers (JOYSTICK) und Bewegung (UP)
welche du verwendest oder ändern möchtest und für welchen Spieler (P1).
KEYCODE_UP = Der
Name der Taste welche du für deinen Controller verwenden möchtest. (KEYCODE_UP = Pfeiltaste nach oben auf der Tastatur)
| = Logischer
Abstandshalter (ähm...) Dies sind einfach Befehle so dass du hier Tasten
hinzufügen, kombinieren, oder ignorieren kannst. ( | =
ODER)
JOYCODE_1_UP = Der Name der Bewegung auf deinem Joystick/Joypad und dem Joystickeingang, an dem der Joystick angeschlossen ist.
Die Anführungszeichen ("") sind nur wichtig, wenn du mit mehreren Tasten
eine Bewegung machen möchtest (z.b. Joystick und Tastatur gleichzeitig). Bei
der Definition von zwei verschiedenen Tasten (z.b. Tastatur und Joystick) für
die gleiche Bewegung muss dies mit den Anführungszeichen ("")
eingegeben werden.
Im Klartext heißt diese Eingabe:
Damit Mame die Nachoben-Bewegung des Joysticks von Spieler 1 simuliert, muss man entweder die Pfeiltaste nach oben drücken oder den Joystick nach oben bewegen. |
Erstellen einer eigenen Controller Datei
Das beste ist, dass nicht alle Befehlszeilen in deiner ini Datei vorhanden sein müssen.
Du kannst die Zeilen löschen, die du nicht ändern möchtest.
Wenn du den Ordner deines Controllers offen hast (siehe unten) mach einen Doppelklick
auf die default.ini Datei und sie wird mit dem Windows Editor geöffnet.
Du siehst, dass die Datei den selben Inhalt hat wie die std.ini.
Bemerkung! Was auch immer du von jetzt an tust, kann durch erneutes Kopieren der std.ini Datei in deinen Controller Ordner rückgängig
gemacht werden. Hab also keine Angst, irgendwelche Fehler zu machen.
Als ich weiter oben sagte, die default.ini Datei ist für die Änderung der Tastenbelegung
für alle Mame Spiele, ist damit gemeint, dass du alle Befehlszeilen löschen
kannst (in der default ini deines Controller Ordners), die du nicht ändern
möchtest.
Bevor wir weitermachen, benötigst du die Codes der einzelnen Tasten und ein klein wenig
Hintergrundinformationen.
Hier die Codes der einzelnen Tasten (Joystick und Tastatur): |
KEYCODE_A KEYCODE_D KEYCODE_G KEYCODE_J KEYCODE_M KEYCODE_P KEYCODE_S KEYCODE_V KEYCODE_Y KEYCODE_1 KEYCODE_4 KEYCODE_7 KEYCODE_0_PAD KEYCODE_3_PAD KEYCODE_6_PAD KEYCODE_9_PAD KEYCODE_F3 KEYCODE_F6 KEYCODE_F9 KEYCODE_F12 KEYCODE_MINUS KEYCODE_TAB KEYCODE_ENTER KEYCODE_BACKSLASH KEYCODE_STOP KEYCODE_INSERT KEYCODE_END KEYCODE_LEFT KEYCODE_DOWN KEYCODE_MINUS_PAD KEYCODE_ENTER_PAD KEYCODE_LSHIFT KEYCODE_RCONTROL KEYCODE_SCRLOCK KEYCODE_LWIN
JOYCODE_1_LEFT JOYCODE_1_DOWN JOYCODE_1_BUTTON3 JOYCODE_1_BUTTON6 JOYCODE_2_LEFT JOYCODE_2_DOWN JOYCODE_2_BUTTON3 JOYCODE_2_BUTTON6 JOYCODE_3_LEFT JOYCODE_3_DOWN JOYCODE_3_BUTTON3 JOYCODE_3_BUTTON6 JOYCODE_4_LEFT JOYCODE_4_DOWN JOYCODE_4_BUTTON3 JOYCODE_4_BUTTON
MOUSECODE_1_BUTTON1
KEYCODE_NONE CODE_DEFAULT CODE_OR
|
KEYCODE_B KEYCODE_E KEYCODE_H KEYCODE_K KEYCODE_N KEYCODE_Q KEYCODE_T KEYCODE_W KEYCODE_Z KEYCODE_2 KEYCODE_5 KEYCODE_8 KEYCODE_1_PAD KEYCODE_4_PAD KEYCODE_7_PAD KEYCODE_F1 KEYCODE_F4 KEYCODE_F7 KEYCODE_F10 KEYCODE_ESC KEYCODE_EQUALS KEYCODE_OPENBRACE
KEYCODE_COLON KEYCODE_BACKSLASH2 KEYCODE_SLASH KEYCODE_DEL KEYCODE_PGUP KEYCODE_RIGHT KEYCODE_SLASH_PAD KEYCODE_PLUS_PAD KEYCODE_PRTSCR KEYCODE_RSHIFT
KEYCODE_LALT KEYCODE_NUMLOCK KEYCODE_RWIN
JOYCODE_1_RIGHT JOYCODE_1_BUTTON1 JOYCODE_1_BUTTON4 JOYCODE_1_START JOYCODE_2_RIGHT JOYCODE_2_BUTTON1 JOYCODE_2_BUTTON4 JOYCODE_2_START JOYCODE_3_RIGHT JOYCODE_3_BUTTON1 JOYCODE_3_BUTTON4 JOYCODE_3_START JOYCODE_4_RIGHT JOYCODE_4_BUTTON1 JOYCODE_4_BUTTON4 JOYCODE_4_START
MOUSECODE_1_BUTTON2
CODE_NONE CODE_PREVIOUS !
|
KEYCODE_C KEYCODE_F KEYCODE_I KEYCODE_L KEYCODE_O KEYCODE_R KEYCODE_U KEYCODE_X KEYCODE_0 KEYCODE_3 KEYCODE_6 KEYCODE_9 KEYCODE_2_PAD KEYCODE_5_PAD KEYCODE_8_PAD KEYCODE_F2 KEYCODE_F5 KEYCODE_F8 KEYCODE_F11 KEYCODE_TILDE KEYCODE_BACKSPACE KEYCODE_CLOSEBRACE KEYCODE_QUOTE KEYCODE_COMMA KEYCODE_SPACE KEYCODE_HOME KEYCODE_PGDN KEYCODE_UP KEYCODE_ASTERISK KEYCODE_DEL_PAD KEYCODE_PAUSE KEYCODE_LCONTROL KEYCODE_RALT KEYCODE_CAPSLOCK KEYCODE_MENU
JOYCODE_1_UP JOYCODE_1_BUTTON2 JOYCODE_1_BUTTON5 JOYCODE_1_SELECT JOYCODE_2_UP JOYCODE_2_BUTTON2 JOYCODE_2_BUTTON5 JOYCODE_2_SELECT JOYCODE_3_UP JOYCODE_3_BUTTON2 JOYCODE_3_BUTTON5 JOYCODE_3_SELECT JOYCODE_4_UP JOYCODE_4_BUTTON2 JOYCODE_4_BUTTON5 JOYCODE_4_SELECT
MOUSECODE_1_BUTTON3
CODE_OTHER CODE_NOT |
|
|
Wie du bemerkt hast, gibt es verschiedene Tastentypen.
Es gibt ...
KEYCODE = Dies bedeutet eine Taste auf deiner Tastatur
JOYCODE = Dies bedeutet eine Joystickbewegung oder eine Taste des Joysticks und welcher Joystick (Player1,
Player2, ...) gemeint ist.
MOUSECODE = Dies bedeutet einen Maustastenklick
KEYCODE NONE = Dies wird benutzt, wenn du einer Taste keine Belegung zuweisen möchtest
CODE_NONE = Dies wird benutzt, wenn du einer Taste keine Belegung zuweisen möchtest
CODE_DEFAULT = Benutzt die Standard Mame Taste
CODE_OTHER CODE_PREVIOUS = Zur Zeit nicht sicher !
CODE_NOT oder ! = Stoppt eine bestimmte Tastenkombination.
Beispiel: Wenn du die Funktion zum Öffnen des Vollbildmodus (Alt+Tab) stillegen möchtest, musst du folgendes eingeben:
KEYCODE_LALT CODE_NOT KEYCODE_TAB
oder
KEYCODE_LALT ! KEYCODE_TAB
CODE_OR oder | = Lässt dich mehr als eine Taste für eine Bewegung
hinzufügen.
Beispiel: Spieler Eins soll mit mit der STRG-Taste der Tastatur und mit
dem Jostick Feuer Knopf in einem Spiele feuern können, so musst du folgendes
eingeben:
KEYCODE_LCONTROL CODE_OR JOYCODE_1_BUTTON1
oder
KEYCODE_LCONTROL | JOYCODE_1_BUTTON1
SPACE = Wenn du ein Leerzeichen zwischen den Befehlen
lässt, werden beide Befehle zur selben Zeit ausgeführt.
Beispiel: Wenn du eine Taste für eine "runter-links" Bewegung definieren möchtest musst du folgendes eingeben:
JOYCODE_1_DOWN JOYCODE_1_LEFT |
Dies kannst du alles ändern:
UI_CONFIGURE UI_RESET_MACHINE UI_FRAMESKIP_INC UI_SHOW_PROFILER UI_UP UI_RIGHT UI_PAN_UP UI_PAN_RIGHT UI_LOAD_STATE UI_SAVE_CHEAT START1 START4 COIN3 SERVICE2 TILT
P1_JOYSTICK_UP P1_JOYSTICK_RIGHT P1_BUTTON3 P1_BUTTON6 P1_BUTTON9 P1_JOYSTICKRIGHT_DOWN P1_JOYSTICKLEFT_UP P1_JOYSTICKLEFT_RIGHT
P2_JOYSTICK_UP P2_JOYSTICK_RIGHT P2_BUTTON3 P2_BUTTON6 P2_BUTTON9 P2_JOYSTICKRIGHT_DOWN P2_JOYSTICKLEFT_UP P2_JOYSTICKLEFT_RIGHT
P3_JOYSTICK_UP P3_JOYSTICK_RIGHT P3_BUTTON3
P4_JOYSTICK_UP P4_JOYSTICK_RIGHT P4_BUTTON3
P1_PEDAL P2_PEDAL_EXT P4_PEDAL
P1_PADDLE P2_PADDLE_EXT P4_PADDLE P1_PADDLE_V_EXT P3_PADDLE_V P4_PADDLE_V_EXT
P1_DIAL P2_DIAL_EXT P4_DIAL P1_DIAL_V_EXT P3_DIAL_V P4_DIAL_V_EXT
P1_TRACKBALL_X P2_TRACKBALL_X_EXT P4_TRACKBALL_X
P1_TRACKBALL_Y P2_TRACKBALL_Y_EXT P4_TRACKBALL_Y
P1_AD_STICK_X P2_AD_STICK_X_EXT P4_AD_STICK_X
P1_AD_STICK_Y P2_AD_STICK_Y_EXT P4_AD_STICK_Y
OSD_1 OSD_4
|
UI_ON_SCREEN_DISPLAY UI_SHOW_GFX UI_THROTTLE UI_SNAPSHOT UI_DOWN UI_SELECT
UI_PAN_DOWN UI_TOGGLE_DEBUG UI_ADD_CHEAT UI_WATCH_VALUE START2
COIN1 COIN4 SERVICE3
P1_JOYSTICK_DOWN P1_BUTTON1
P1_BUTTON4 P1_BUTTON7 P1_BUTTON10 P1_JOYSTICKRIGHT_LEFT
P1_JOYSTICKLEFT_DOWN
P2_JOYSTICK_DOWN
P2_BUTTON1 P2_BUTTON4 P2_BUTTON7 P2_BUTTON10
P2_JOYSTICKRIGHT_LEFT P2_JOYSTICKLEFT_DOWN
P3_JOYSTICK_DOWN
P3_BUTTON1 P3_BUTTON4
P4_JOYSTICK_DOWN P4_BUTTON1
P4_BUTTON4
P1_PEDAL_EXT P3_PEDAL
P4_PEDAL_EXT
P1_PADDLE_EXT P3_PADDLE
P4_PADDLE_EXT P2_PADDLE_V
P3_PADDLE_V_EXT
P1_DIAL_EXT P3_DIAL P4_DIAL_EXT
P2_DIAL_V P3_DIAL_V_EXT
P1_TRACKBALL_X_EXT
P3_TRACKBALL_X P4_TRACKBALL_X_EXT
P1_TRACKBALL_Y_EXT
P3_TRACKBALL_Y P4_TRACKBALL_Y_EXT
P1_AD_STICK_X_EXT
P3_AD_STICK_X P4_AD_STICK_X_EXT
P1_AD_STICK_Y_EXT
P3_AD_STICK_Y P4_AD_STICK_Y_EXT
OSD_2
.
|
UI_PAUSE UI_FRAMESKIP_DEC UI_SHOW_FPS UI_TOGGLE_CHEAT UI_LEFT UI_CANCEL UI_PAN_LEFT UI_SAVE_STATE UI_DELETE_CHEAT UI_EDIT_CHEAT START3 COIN2 SERVICE1 SERVICE4
P1_JOYSTICK_LEFT P1_BUTTON2 P1_BUTTON5 P1_BUTTON8 P1_JOYSTICKRIGHT_UP P1_JOYSTICKRIGHT_RIGHT P1_JOYSTICKLEFT_LEFT
P2_JOYSTICK_LEFT P2_BUTTON2 P2_BUTTON5 P2_BUTTON8 P2_JOYSTICKRIGHT_UP P2_JOYSTICKRIGHT_RIGHT P2_JOYSTICKLEFT_LEFT
P3_JOYSTICK_LEFT P3_BUTTON2
P4_JOYSTICK_LEFT P4_BUTTON2
P2_PEDAL P3_PEDAL_EXT
P2_PADDLE P3_PADDLE_EXT P1_PADDLE_V P2_PADDLE_V_EXT P4_PADDLE_V
P2_DIAL P3_DIAL_EXT P1_DIAL_V P2_DIAL_V_EXT P4_DIAL_V
P2_TRACKBALL_X P3_TRACKBALL_X_EXT
P2_TRACKBALL_Y P3_TRACKBALL_Y_EXT
P2_AD_STICK_X P3_AD_STICK_X_EXT
P2_AD_STICK_Y P3_AD_STICK_Y_EXT
OSD_3 .
| |
Hier die Erklärung im einzelnen:
UI = Ein von Mame benutzter Befehl in der Grafischen Schnittstelle z.b. in-game-Menü / Spielstandsicherung usw.
JOYSTICK = Eine Steuerungsbewegung eines Josticks oder Knopf eines Joysticks
PEDAL = Ein Fusspedal eines Arcade-Automaten
PADDLE = Ich glaube, dies ist für nur-2-Wege Joysticks (Es könnte falsch sein)
DIAL = Ein Gerät, das für Spiele wie Arkanoid benutzt wird (nur links-rechts)
TRACKBALL = Ein Ball statt eines Joysticks, wird z.b. in Tempest verwendet
AD_STICK = Analog Joystick Steuerung
OSD = On screen display (Auf dem Bildschirm) Funktionen.
_EXT = Die Umkehrung einer Steuerung. Beispiel:
P1_PADDLE = Linke Bewegung
P1_PADDLE_EXT = Rechte Bewegung |
Nun kennst du die wichtigsten Befehle und Codes und hast das nötige
Hintergrundwissen. Als nächstes erstellen wir eine eigene Datei.
Alle Kommentare und Hinweise in der Datei beginnen mit dem Zeichen #. So ist es dir
möglich, Kommentare u.ä. in die Datei hinzuzufügen. Es wird empfohlen, eine
Kommentarzeile mit der vollen Beschreibung am Ende eines Befehls zu erstellen.
Dadurch ist es leichter, etwas rückgängig zu machen.
Nun musst du eine Befehlszeile nach deinem Kommentar einfügen. Diese Zeile sollte lauten:
ctrlrname "controller
name"
wobei controller name für den
Namen deines Controllers steht. Beispiel:
ctrlrname "Wingman Extreme"
Nun mach weiter und ändere die Tasten die du möchtest. Siehe dir meine Konfiguration
des Wingmans an:
Der Rest der Tastaturbelegung von Mame gefällt mir, so dass ich alle anderen
Befehlszeilen gelöscht habe. Du wirst einen speziellen Code sehen, der für
Knopf 9 auf meinem Controller benutzt wird. Die Hauptcodes funktionieren nur mit
6 Knöpfen, da ich aber Mame benutze kann ich den Knopf benutzen. |
Um einen Speziellen Code für das Spiel einzugeben, musst du das "In-Game-Menü" durch Drücken der TAB Taste während des Spiels öffnen.
Wähle die Option "Input (general)" und gehe nach unten, bis du die Taste gefunden
hast die du ändern möchtest. Drücke "Enter" und dann die
Controller-Taste die du verwenden möchtest. Nun mach dir eine exakte Notiz mit der genauen
Beschreibung, inklusive Groß-/Kleinschreibung.
Nun füge diese Beschreibung in deine config Datei ein und ersetze die Leerzeichen durch
Unterstriche ( _ ). Überzeuge dich, dass es exakt das gleiche ist! Speichere
deine Config Datei und starte Mame erneut. Um dir zu zeigen, dass es
funktioniert, schau dir das an:
|
Ich sagte vorher, dass du für spezielle Spiele eigene Steuerungsdateien erstellen kannst. Das einzige was du tun musst, ist der Steuerungsdatei denselben Namen wie der ZIP Datei des Spiel geben (z.b. wecleman.ini). Sie dir meine für WEC Le Mans an:
Du musst diese Datei in deinem Controller Ordner (obiges Beispiel Wingman) ablegen
und Mame wird diese Einstellung beim Starten des Spiels laden. |
Benutzen der eigenen Config Datei
Um deine eigene Config Datei in der Befehlszeilenversion von Mame benutzen zu können,
musst du die ctrlr Option bei der Befehlseingabe mit angeben. Beispiel:
Mame puckman -ctrlr wingman
Bei Mame 32 gehe zur Registerkarte Controllers (Mame Startfenster/Options/Default Options/Controllers).
Du kannst deinen Controller im unteren Teil des Fensters unter "Default
input layout" wählen. Einmal gewählt wird Mame diesen Controller als
Standard verwenden und auch die von dir erstellten Controller Dateien für
einzelne Spiele verwenden.
|
WICHTIG ! Das ist
das letzte was du beachten solltest. Wenn du eine Taste in der Grafischen
Oberfläche von Mame änderst und keine ini Datei verwendest, wird diese
Einstellung im cfg Ordner gespeichert. Veränderung der Tasten in der Grafischen
Oberfläche von Mame hat keine Auswirkung auf die ini Dateien.
Damit ist gemeint: Änderst du die Tastenbelegung im "In-Game-Menü (Drücken der TAB
Taste während des Spiels), musst du die default.cfg Datei und die cfg Datei mit
dem dementsprechenden Spielenamen löschen, wenn du später eine eigene
Steuerungsdatei für dieses Spiel verwenden möchtest. Sollte es Grundsätzlich
Probleme mit der Steuerung geben, lösche als erstes diese *.cfg Dateien und Mame
verwendet wieder die std.ini Datei als Hauptdatei. (Hast du eine default Datei
erstellt wird Mame selbstverständlich auf diese zurückgreifen) |