mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
bus/sms_ctrl: A few refinements for the XE-1AP controller:
* Game pad version omits the fourth axis from the cyber stick. * Remumbered analog input ports to match documented channel names. * Improved notes.
This commit is contained in:
parent
d57396edf0
commit
7a66e97194
@ -20,7 +20,7 @@
|
||||
____ __ __ __ __ __ __ __ __
|
||||
Ack \__/ \__/ \__/ \__/ \__/ \__/ \__/ \__/ \__/
|
||||
_____ _____ _____ _____
|
||||
L/H XX\____/ \_____/ \_____/ \_____/ \_____X
|
||||
L/H XX\____/ \_____/ \_____/ \_____/ \_____/
|
||||
____ _____ _____ _____ _____ _____ _____ _____ _____
|
||||
D XXX____X_____X_____X_____X_____X_____X_____X_____X_____X
|
||||
|
||||
@ -60,10 +60,18 @@
|
||||
|
||||
TODO:
|
||||
* Measure timings.
|
||||
* What do the A/B Normal/Auto switches do?
|
||||
* Confirm direction of RZ (throttle twist).
|
||||
* Confirm reported value for unused analog channel 4.
|
||||
* Confirm A', B', E1 and E2 bit mappings in analog mode.
|
||||
* Confirm buttons mapping in digital mode.
|
||||
- Is the mapping different in PC vs MD mode?
|
||||
* Implement trigger A/B rapid fire switches.
|
||||
* Implement channel shift switch (Y->X, X->Z, Z->X).
|
||||
* Implement special modes (holding buttons on power-on):
|
||||
- Double displacement modes:
|
||||
+ X/Y (hold SELECT + A')
|
||||
+ Z (hold SELECT + B')
|
||||
+ X/Y/Z (hold SELECT + A' + B')
|
||||
- Up/down reverse mode (hold C)
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
@ -121,16 +129,16 @@ INPUT_PORTS_START( sms_xe1ap )
|
||||
PORT_BIT(0x0c00, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
|
||||
PORT_START("CH0")
|
||||
PORT_BIT(0xff, 0x80, IPT_AD_STICK_X) PORT_SENSITIVITY(50) PORT_KEYDELTA(50)
|
||||
|
||||
PORT_START("CH1")
|
||||
PORT_BIT(0xff, 0x80, IPT_AD_STICK_Y) PORT_SENSITIVITY(50) PORT_KEYDELTA(50)
|
||||
|
||||
PORT_START("CH1")
|
||||
PORT_BIT(0xff, 0x80, IPT_AD_STICK_X) PORT_SENSITIVITY(50) PORT_KEYDELTA(50)
|
||||
|
||||
PORT_START("CH2")
|
||||
PORT_BIT(0xff, 0x80, IPT_PADDLE) PORT_SENSITIVITY(50) PORT_KEYDELTA(50)
|
||||
PORT_BIT(0xff, 0x80, IPT_PADDLE_V) PORT_REVERSE PORT_SENSITIVITY(50) PORT_KEYDELTA(50)
|
||||
|
||||
PORT_START("CH3")
|
||||
PORT_BIT(0xff, 0x80, IPT_PADDLE_V) PORT_REVERSE PORT_SENSITIVITY(50) PORT_KEYDELTA(50)
|
||||
PORT_BIT(0xff, 0x80, IPT_UNUSED)
|
||||
|
||||
PORT_START("MODE")
|
||||
PORT_CONFNAME(0x01, 0x01, "Mode") PORT_CHANGED_MEMBER(DEVICE_SELF, sms_xe1ap_device, mode_changed, 0)
|
||||
@ -274,7 +282,7 @@ TIMER_CALLBACK_MEMBER(sms_xe1ap_device::step_output)
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
m_out = BIT(m_axes[(step - 2) & 0x03]->read(), (step < 6) ? 4 : 0, 4);
|
||||
m_out = BIT(m_axes[((step - 2) & 0x03) ^ 0x01]->read(), (step < 6) ? 4 : 0, 4);
|
||||
break;
|
||||
case 10:
|
||||
m_out = BIT(m_buttons->read(), 8, 4);
|
||||
|
Loading…
Reference in New Issue
Block a user