summaryrefslogtreecommitdiffstatshomepage
path: root/docs/source/usingmame/ui.rst
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2021-11-06 13:52:48 +1100
committer Vas Crabb <vas@vastheman.com>2021-11-06 13:52:48 +1100
commit270276c4d30721dc397de6d8c92334469ce37243 (patch)
tree99e802773ecec08ade94f574fdca3d665d726901 /docs/source/usingmame/ui.rst
parent07e55935cf49c94a94dcc75d8240d0733d1ed5d7 (diff)
-Enabled complex combinations for analog axes:
* Made it possible to add digital controls to axis settings as enables. * Mix multiple analog controls assigned to an axis setting. * Added a "reverse" modifier for analog controls (useful with mixing). * Fixed an issue assigning mouse axes using multiple mouse-like devices with -nomultimouse. -frontend: More cleanup: * Got rid of some abuse of "special main menus". * Added a helper class for auto-pause menus that don't spawn submenus. * Got rid of the fake menu that schedules an exit on the first frame. * Turned the confirm quit prompt into a menu, eliminated one more special-cased event loop. * Fixed the confirm quit prompt resuming if you return to emulation if you weren't paused to begin with. -bus/centronics: Fixed conflicting DIP locations, reversed order and inverted polarity for Epson printers. * Also added the LX-810 (without L suffix) DIP switches for reference - we don't have a device for this printer yet.
Diffstat (limited to 'docs/source/usingmame/ui.rst')
-rw-r--r--docs/source/usingmame/ui.rst87
1 files changed, 59 insertions, 28 deletions
diff --git a/docs/source/usingmame/ui.rst b/docs/source/usingmame/ui.rst
index 82f3aa579bd..f435c250c76 100644
--- a/docs/source/usingmame/ui.rst
+++ b/docs/source/usingmame/ui.rst
@@ -269,39 +269,70 @@ the **Steering Wheel Analog Inc** or **Steering Wheel Analog Dec** setting to
the X axis of the same analog stick.
You can assign one or more analog axes to the axis setting for an emulated
-analog input. When multiple axes are assigned to an axis setting using **or**
-operations, only the first axis that is not in the neutral position will take
-effect. For example suppose for Atari Star Wars you assign the **AD Stick X
-Analog** axis setting to **Joy 1 LSX or Joy 1 RSX** on an Xbox-style controller.
-You will be able to control the emulated X axis using the X axis of the left
-stick. If the left stick is in the neutral position (centred) on the X axis,
-you will be able to control the emulated X axis using the X axis of the right
-stick; however, if the left stick is *not* centred on the X axis, the X axis of
-the right stick will be ignored.
-
-MAME allows you to assign either the full range of an axis or the range on one
-side of the neutral position (a *half axis*) to an axis setting. Assigning a
-half axis is usually used for pedals or other absolute inputs where the neutral
-position is at one end of the input range. For example suppose for **Ridge
-Racer** you assign the **Brake Pedal Analog** setting to the portion of a
-vertical joystick axis below the neutral position. If the joystick is at or
-above the neutral position vertically, the brake pedal will be released; if the
-joystick is below the neutral position vertically, the brake pedal will be
-applied proportionally. Half axes are displayed as the name of the axis
-followed by a plus or minus sign (**+** or **-**). Plus refers to the portion
-of the axis below or to the right of the neutral position; minus refers to the
-portion of the axis above or to the left of the neutral position. For pedal
-or analog trigger controls, the active range is treated as being above the
-neutral position (the half axis indicated by a minus sign).
+analog input. When multiple axes are assigned to an axis setting, they will be
+added together, but absolute position controls will override relative position
+controls. For example suppose for Arkanoid you assign the **Dial Analog** axis
+setting to **Mouse X or Joy 1 LSX or Joy 1 RSX** on a mouse Xbox-style
+controller. You will be able to control the paddle with the mouse or either
+analog stick, but the mouse will only take effect if both analog sticks are in
+the neutral position (centred) on the X axis. If either analog stick is *not*
+centred on the X axis, the mouse will have no effect, because a mouse is a
+relative position control while a joystick is an absolute position control.
+
+For absolute position controls like joysticks and pedals, MAME allows you to
+assign either the full range of an axis or the range on one side of the neutral
+position (a *half axis*) to an axis setting. Assigning a half axis is usually
+used for pedals or other absolute inputs where the neutral position is at one
+end of the input range. For example suppose for **Ridge Racer** you assign the
+**Brake Pedal Analog** setting to the portion of a vertical joystick axis below
+the neutral position. If the joystick is at or above the neutral position
+vertically, the brake pedal will be released; if the joystick is below the
+neutral position vertically, the brake pedal will be applied proportionally.
+Half axes are displayed as the name of the axis followed by a plus or minus sign
+(**+** or **-**). Plus refers to the portion of the axis below or to the right
+of the neutral position; minus refers to the portion of the axis above or to the
+left of the neutral position. For pedal or analog trigger controls, the active
+range is treated as being above the neutral position (the half axis indicated by
+a minus sign).
+
+When keys or buttons are assigned to an axis setting, they conditionally enable
+analog controls assigned to the setting. This can be used in conjunction with
+an absolute position control to create a “sticky” control.
+
+Here are some examples of some possible axis setting assignments, assuming an
+Xbox-style controller and a mouse are used:
+
+Joy 1 RSY
+ Use vertical movement of the right analog stick to control the emulated
+ input.
+Mouse X or Joy 1 LT or Joy 1 RT Reverse
+ Use horizontal mouse movement, or the left and right triggers to control the
+ emulated input. The right trigger is reversed so it acts in the opposite
+ direction to the left trigger.
+Joy 1 LB Joy 1 LSX
+ Use horizontal movement of the left analog stick to control the emulated
+ input, but *only* while holding the left shoulder button. If the right
+ shoulder button is released while the left analog stick is not centred
+ horizontally, the emulated input will hold its value until the right
+ shoulder button is pressed again (a “sticky” control).
+not Joy 1 RB Joy 1 RSX or Joy 1 RB Joy 1 RSX Reverse
+ Use horizontal movement of the right analog stick to control the emulated
+ input, but invert the control if the right shoulder button is held.
When you select an axis setting, MAME will wait for you to enter an input:
* Move an analog control to assign it to the axis setting.
-* When appending to a setting, move the last assigned analog control to cycle
- between the full range of the axis and the portion of the axis on either side
- of the neutral position.
+* Press a key or button (or a combination of keys or buttons) *before* moving an
+ analog control to conditionally enable the analog control.
+* When appending to a setting, if the last assigned control is an absolute
+ position control, move the same control again to cycle between the full range
+ of the axis, the portion of the axis on either side of the neutral position,
+ and the full range of the axis reversed.
+* When appending to a setting, if the last assigned control is a relative
+ position control, move the same control again to toggle reversing the
+ direction of the control on or off.
* When appending to a setting, move an analog control other than the last
- assigned control to add an **or** operation.
+ assigned control or press a key or button to add an **or** operation.
* Pressing **UI Cancel** (**Escape** by default) *before* activating an analog
axis input clears the setting or restores the default assignment.
* Pressing **UI Cancel** *after* activating analog axis input leaves the setting