Gamepads & Analog
The JVS-PAC 2 can work as two gamepads instead of a keyboard. Choose XInput for computer games and emulators, Switch for Nintendo Switch, or PS3 for PlayStation 3. You can select the mode in the OLED USB mode menu.
Changing between Keyboard and XInput takes effect immediately. Changing to, from, or between Switch and PS3 requires SAVE+REBOOT. For the menu controls and saving settings, see Setup & Operation.
XInput
XInput mode sends each player’s controls to a separate gamepad. Directions use the D-pad, Start sends Start, and a coin sends Back. The default button layout is shown below.
MAME and MiSTer shift shortcuts still work in this mode. The keyboard remains available for those shortcuts, and configured spinners or trackballs continue to work as mice.
Check the player assignments in Windows, Steam or the game if the players are swapped. XInput mode does not support Xbox consoles. Four-player setups require Keyboard mode.
On MiSTer, XInput needs the supplied user-startup.sh script installed as /media/fat/linux/user-startup.sh on MiSTer’s SD card, followed by a reboot. If you already have that file, merge the supplied block before its final exit rather than replacing your script. Use Unix LF line endings. Keyboard mode needs no script.
Nintendo Switch
Select Switch in the USB mode menu, then SAVE+REBOOT. In the Switch Change Grip/Order screen, press panel buttons 3 and 6 together. These are L and R with the default mappings.
A normal tap on P1 Start sends Plus on release. Hold it for two seconds, then release it to send Home. P2 Start sends Plus, and each player’s coin sends Minus.
Switch mode uses digital panel controls. Keyboard shift shortcuts, rotary mice and JVS analog controls are not active.
PlayStation 3
Select PS3 in the USB mode menu, then SAVE+REBOOT. Each player’s Start button sends Start on a normal tap. Hold it for two seconds, then release it to send PS on that player’s controller. Coins send Select.
As with Switch mode, keyboard shift shortcuts, rotary mice and JVS analog controls are not active. Other PlayStation consoles are not supported.
Button layout
The six panel buttons use the following defaults. Both players share the same layout.
| Panel button | XInput | Switch | PS3 |
|---|---|---|---|
| 1 — top left | X | Y | Square |
| 2 — top middle | Y | X | Triangle |
| 3 — top right | LB | L | L1 |
| 4 — bottom left | A | B | Cross |
| 5 — bottom middle | B | A | Circle |
| 6 — bottom right | RB | R | R1 |
Changing the buttons
If the default layout suits you, there is nothing to edit. Otherwise, choose SAVE CONFIG, power off, and edit jvspac2.ini on the microSD card. Safely eject the card before putting it back. Changes take effect at startup.
Each output mode has its own section. These are the defaults:
[xinput]
button1=X
button2=Y
button3=LB
button4=A
button5=B
button6=RBXInput choices are A, B, X, Y, LB, RB or none. The six mappings apply to both players. Start and Back cannot be remapped here, and LT/RT are not available as panel-button assignments.
[switch]
button1=Y
button2=X
button3=L
button4=B
button5=A
button6=R
start=plus
coin=minusSwitch choices are A, B, X, Y, L, R, ZL, ZR, minus, plus, left_stick, right_stick, home, capture or none. Names follow the Switch Pro Controller layout. P1 Start’s long press still sends Home; its normal tap uses the start setting.
[ps3]
button1=square
button2=triangle
button3=L1
button4=cross
button5=circle
button6=R1
start=start
coin=selectPS3 choices are square, cross, circle, triangle, L1, R1, L2, R2, select, start, left_stick, right_stick, ps or none. A long press on either player’s Start still sends PS; a normal tap uses the start setting. Both players share the button, start and coin settings in each mode.
Analog controls
Analog controls require XInput mode and a JVS I/O board with analog inputs. They are off by default. Select a profile in the OLED Analog menu: racing, 2player or custom.
The channel numbers below start at zero, so channel 0 is the first analog input on the I/O board.
| JVS channel | Racing | 2player |
|---|---|---|
| 0 | Steering | P1 stick vertical |
| 1 | Accelerator | P1 stick horizontal |
| 2 | Brake | Unused |
| 3 | Unused | Unused |
| 4 | Unused | P2 stick vertical |
| 5 | Unused | P2 stick horizontal |
| 6–7 | Unused | Unused |
Racing sends steering to controller 1’s left-stick X axis, accelerator to the right trigger, and brake to the left trigger. The presets assume low JVS values at left/up or with pedals released, and high values at right/down or with pedals pressed. Use custom if your cabinet is wired differently.
Cabinet linking currently supports buttons and coins only. Analog inputs are not passed through when two cabinet I/O boards are linked, including inputs from a separate analog board.
Custom analog mapping
Custom lets you assign up to eight JVS analog inputs to the two XInput controllers. Edit the [xinput-analog] section of jvspac2.ini. This example assigns the first input to controller 1’s steering axis and reverses its direction:
[xinput-analog]
profile=custom
analog0=left_thumb_x
analog0invert=true
analog0controller=1Use analog0 through analog7 for the eight channels. Each has a destination, an invert setting (true or false), and a controller number (1 or 2).
| Destination | Control |
|---|---|
| left_thumb_x | Left stick horizontal |
| left_thumb_y | Left stick vertical |
| right_thumb_x | Right stick horizontal |
| right_thumb_y | Right stick vertical |
| left_trigger | Left trigger |
| right_trigger | Right trigger |
| none | Unused |
Use each destination only once per controller. Leave channels your I/O board does not have set to none. Unavailable channels do not automatically reset their assigned controls to neutral.
If a wheel or stick moves backwards, or a pedal reads pressed when released, change that channel’s invert setting. Save the file and restart to test. The USB output mode must still be XInput.
Last Updated on 2026-10-16 by admin
