# Button Options

This lets you select the keyboard keys or joystick buttons assigned to the PinballY command functions.

The list shows all of the available command functions. If the command already has a keyboard key or joystick button assigned, it'll be listed in the "Key" column.

To change the key or button assigned to a command, click the mouse on the current key name. (If there's no key assigned to the command yet, just click on the blank area in the "Key" column for the command.) Now just press the key or joystick button that you want to assign to the command.

You can assign almost any key on the keyboard to each command, including the "modifier" keys (the Shift keys, Alt, and Ctrl). The left and right Shift, Alt, and Ctrl keys count as separate keys, so you can assign (say) the Left Shift and Right Shift keys to separate commands.

### Why can't I assign Ctrl+X, Alt+X, etc?

Because the Shift, Ctrl, Alt, and Windows keys can all be assigned as command keys in their own right. As soon as you press a key - even a modifier key like Shift or Ctrl - it immediately carries out its assigned command. That prevents using the modifier keys to form combinations with other keys.

This is different from Windows productivity apps, where it's more common to use combinations like Ctrl+X and Alt+X for command keys. But it's common in Windows games; it's the way that all of the pinball simulators (Visual Pinball, Future Pinball, etc) treat the keyboard during play. That's one reason that we use this approach: it makes for a more consistent experience switching back and forth between PinballY and game players. It also works better for pin cabs, which is PinballY's primary audience, since pin cab users want to be able to operate everything with the cabinet buttons; they don't want to have to get out a keyboard to access Ctrl/Shift/Alt combinations.

## Multiple keys per command

You can assign more than one key or button to the same command. This simply lets you access the command from any of the assigned buttons. If you've already assigned one key to a command, you can assign a second one as follows:

- Move the mouse over the "Key" column for the command
- Click the "+" button that appears at the right edge
- A new row will appear for the same command, with no key assigned yet
- Click in the blank "Key" area of the new row
- Press the new keyboard key or joystick button that you want to assign

You can repeat this process to assign any number of keys to the same command.

To delete one of the keys assigned to a command, move the mouse over the key name you want to delete, and click the "X" button that appears at the right side.

## Multiple commands per key

You can assign the same keyboard key or joystick button to more than one command. If you do, pressing the key/button will activate each of the commands assigned to it.

You wouldn't want to do this for most commands, but it's useful in some limited cases. In particular, the "Exit" and "Exit Game" commands are usually mapped to the same key (usually the Escape key). In this case, using the same key for both commands won't create any confusion, because "Exit" and "Exit Game" operate in different contexts.

The program will warn you any time you try to assign a new command to a key that already has a command assigned. The warning lets you know that the key is already in use, and lets you select whether you'd like to add the new command (keeping the existing command assignment(s)) or simply replace the existing command(s) with the new one.

## Joystick assignments

Joystick buttons can be assigned "generically", or for a specific joystick device.

The default is to assign joystick buttons generically. This means that PinballY doesn't think of the button as belonging to a specific joystick; only the button number is important. If a command is assigned generically to "Joystick button 4", pressing the 4th button on any attached joystick activates the command.

If you check the box at the bottom of the dialog that says "Remember device for each joystick button", then the program will tie buttons to individual joystick devices. Button assignments you make after checking the box will show the joystick device name in addition to the button number. For these assignments, the command will only be triggered when you press the given button on the same joystick. Pressing the same numbered button on another joystick device won't have any effect. That means that you can assign a different command to the same numbered button on a separate joystick, if you have two or more joysticks attached to your system.

If you only have one joystick, or if you only use the buttons on one joystick, you should use the "generic" mode. The generic mode is better in this case because it's more flexible in terms of changes to your system. If you switch to a different joystick device in the future, for example, generic button assignments will continue to be recognized. The "Remember" mode is only necessary if you have two or more joystick devices attached to your system at the same time, and you want to assign commands to the buttons on each joystick independently.

Any change to the "Remember" setting only applies to new command assignments made after you change the setting. Any existing assignments will remain as they were. That lets you use a mix of generic and device-specific button assignments, if you wish. If you want to change an existing button assignment from generic to device-specific or vice versa, simply re-do that button assignment with the new checkbox setting in effect.

## Command descriptions

Select/Enter: This is the main "do it" command throughout the user interface. When a menu is visible, pressing Select activates the current menu command. When a popup window is showing, Select usually closes it. When nothing else is going on, Select brings up the main game menu. This command is normally assigned to the Start button on a pin cab, which is typically mapped to the "1" key on the keyboard.

Cancel/Escape: This is the main "cancel" or "return" command throughout the user interface. When a menu is visible, pressing Exit dismisses the menu (without activating any commands). When a popup window is showing, Exit closes it. When nothing else is going on, Exit brings up the "Exit" menu, which shows options for exiting out of PinballY and a few other system functions. This command is normally assigned to the Exit button on a pin cab, which is typically mapped to the Escape key on the keyboard.

Exit Game: When there's a game running, pressing this button terminates the game and returns to the PinballY game list. On pin cabs, this is usually assigned to the "Exit" button, which is usually mapped to the Escape key on the keyboard. This is usually the same key or button mapped for the Cancel/Escape command above, but the two functions are separated into different commands in case you want to map them as different buttons for some reason.

Next: Navigates to the next game, menu item, popup page, etc. This is normally assigned to the Right Flipper button on a pin cab, which is usually mapped to the Right Shift key.

Previous: Navigates to the previous game, menu item, popup page, etc. This is normally assigned to the Left Flipper button on a pin cab, which is usually the Left Shift key.

Next Page: Navigates to the next letter group in the game list, the next page of a menu, etc. This is normally assigned to the Right Magna Save button on a pin cab, which is usually the Right Ctrl key.

Previous Page: Navigates to the previous letter group in the game list, the previous page of a menu, etc. This is normally assigned to the Left Magna Save button on a pin cab, which is usually the Left Ctrl key.

Launch: This command directly launches the currently selected game without bringing up the menu. This is just a convenience to bypass the extra step of selecting "Play" from the menu. When a menu is showing, this acts the same as the Select button. The usual mapping for this command is the "Launch Ball" button, if your pin cab has one; this is usually mapped to the Enter key on the keyboard.

Information: Shows information on the current game. There's no standard pin cab button for this, but some pin cab builders include a few extra front-panel buttons for special functions like this; if you have such a button, you can map it to this function. This button is completely optional, though, since you can access the same function with a couple of button clicks via the "Information" command in the main game menu.

Instructions: Displays the instruction card for the current game in a popup window. There's no standard pin cab button for this, but some pin cab builders include a few extra front-panel buttons for special functions like this. This button is completely optional, though, since you can access the same function with a couple of button clicks via the "Instructions" command in the main game menu.

Coin 1/2/3/4: If your pin cab has real coin slot switches wired to your key encoder, or you just have a "Coin In" button, you can assign the button to the Coin 1/2/3/4 functions. There are four of these commands because some pin cabs have multiple coin chutes with different denominations, in which case you'd want to assign a distinct command for each slot. The normal pin cab mappings for the coin chutes are the "3", "4", "5", and "6" keys, for the left, middle, right, and fourth coin chutes respectively. For US coin doors with two chutes, you'd normally map them to "3" and "5", since they count as left and right (with the "middle" and "fourth" slots unused).

If you map the coin commands, PinballY will keep track of coins inserted and will add "credits" to an internal counter, but this is purely for the sake of arcade simulation. It doesn't have any practical use, so you can leave the coin buttons unmapped if you don't care about this bit of simulation detail. See Coin Options for more on coin handling.

Coin door: If your pin cab has a coin door switch (that detects when the door is open or closed), you can map that key here. PinballY doesn't currently use this for anything, but could in the future. The typical pin cab setup uses the "End" key for the coin door switch.

Service 1/2/3/4: If your pin cab has a four-button service panel inside the coin door, you can assign those keys here. These are normally assigned to the "7", "8", "9", and "0" keys on the keyboard. PinballY uses the "Service 4/Enter" button to activate the "System" menu, which is useful for setting up new games and editing game details. The other service keys can be used to navigate within the service menu, but they're optional, since you can navigate this menu equally well with the regular Next/Previous/Select/Exit keys instead.

Frame Counter: Shows on-screen performance statistics, including the CPU load and a frames-per-second counter showing the graphics redraw rate. This can be helpful to gauge the effect on PinballY performance when adjusting your video card settings or other system settings. There's no standard pin cab key for this, but Visual Pinball uses the "F10" key to control its similar performance counter display. You can also access this function via the right-click menu in the main window.

Full Screen Toggle: Toggles the current window between normal and Full Screen modes. There's no standard pin cab key for this, but many other Windows apps (especially Web browsers) use the "F11" key for the same function. You can also access this function with the right-click menu in any window.

Settings: Brings up the setting dialog. There's no standard pin cab key for this. You can also access this function from the right-click menu in the main window.

Rotate Monitor: Rotates the current window's contents by 90 degrees clockwise. You can use this to adjust the display rotation of each window to match your physical monitor setup. There's no standard pin cab key for this. You can also access this function from the right-click menu in any window.