Gamepads & Analog

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 buttonXInputSwitchPS3
1 — top leftXYSquare
2 — top middleYXTriangle
3 — top rightLBLL1
4 — bottom leftABCross
5 — bottom middleBACircle
6 — bottom rightRBRR1

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=RB

XInput 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=minus

Switch 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=select

PS3 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 channelRacing2player
0SteeringP1 stick vertical
1AcceleratorP1 stick horizontal
2BrakeUnused
3UnusedUnused
4UnusedP2 stick vertical
5UnusedP2 stick horizontal
6–7UnusedUnused

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=1

Use analog0 through analog7 for the eight channels. Each has a destination, an invert setting (true or false), and a controller number (1 or 2).

DestinationControl
left_thumb_xLeft stick horizontal
left_thumb_yLeft stick vertical
right_thumb_xRight stick horizontal
right_thumb_yRight stick vertical
left_triggerLeft trigger
right_triggerRight trigger
noneUnused

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