mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
bus/msx: Fixed mislabeled button on FM Towns 6-button Pad.
This commit is contained in:
parent
24ed0b7319
commit
27229733d3
4 changed files with 31 additions and 11 deletions
|
@ -4,6 +4,25 @@
|
|||
|
||||
Sega controller adapter emulation
|
||||
|
||||
Simple wired adapter:
|
||||
|
||||
PC Pin Sega pin
|
||||
Up 1 1 Up
|
||||
Down 2 2 Down
|
||||
Left 3 3 Left
|
||||
Right 4 4 Right
|
||||
+5V 5 5 +5V
|
||||
Trigger 1 6 6 TL
|
||||
Trigger 2 7 9 TR
|
||||
Strobe 8 7 TH
|
||||
GND 9 8 GND
|
||||
|
||||
An adapter with this wiring was included with the game Chelnov
|
||||
for Sharp X68000, to be used with a 3-button Sega Mega Drive
|
||||
Control Pad. The same adapters were supported by Super Street
|
||||
Figher II for Sharp X68000 for use with 6-button Sega Mega
|
||||
Drive controllers.
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
|
|
|
@ -24,8 +24,8 @@ INPUT_PORTS_START(fm_towns_6b)
|
|||
|
||||
PORT_START("BUTTONS")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON6) PORT_NAME("%p Z")
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON5) PORT_NAME("%p X")
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_NAME("%p Y")
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON5) PORT_NAME("%p Y")
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_NAME("%p X")
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_NAME("%p C")
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("%p A")
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_NAME("%p B")
|
||||
|
|
|
@ -151,7 +151,7 @@ void sms_md6button_device::device_start()
|
|||
|
||||
void sms_md6button_device::device_reset()
|
||||
{
|
||||
// TODO: doesn't work reset happens before inputs are read
|
||||
// TODO: doesn't work - reset happens before host inputs are read for the first time
|
||||
if (!m_mode)
|
||||
m_mode = BIT(m_pad->read(), 11) | 0x02;
|
||||
}
|
||||
|
|
|
@ -13,16 +13,16 @@
|
|||
7 TRIG2 9 TR In Ack
|
||||
8 STROBE 7 TH Out Req
|
||||
|
||||
In analog mode, data is shifted out as eleven nybbles:
|
||||
In analog mode, data is shifted out as twelve nybbles:
|
||||
|
||||
_ ____________________________________________
|
||||
_ ________________________________________________________________
|
||||
Req \_________/
|
||||
____ __ __ __ __ __ __ __ __
|
||||
Ack \__/ \__/ \__/ \__/ \__/ \__/ \__/ \__/ \__/
|
||||
_____ _____ _____ _____
|
||||
L/H XX\____/ \_____/ \_____/ \_____/ \_____/
|
||||
____ _____ _____ _____ _____ _____ _____ _____ _____
|
||||
D XXX____X_____X_____X_____X_____X_____X_____X_____X_____X
|
||||
____ __ __ __ __ __ __ __ __ __ __ __ __
|
||||
Ack \__/ \__/ \__/ \__/ \__/ \__/ \__/ \__/ \__/ \__/ \__/ \__/
|
||||
_____ _____ _____ _____ _____ _____
|
||||
L/H _______/ \_____/ \_____/ \_____/ \_____/ \_____/ \__
|
||||
_____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____
|
||||
D XXXX_____X_____X_____X_____X_____X_____X_____X_____X_____X_____X_____X_____X
|
||||
|
||||
The falling edge on Req causes data output to start. The host
|
||||
can't control the speed, it just polls the L/H and Ack lines to
|
||||
|
@ -81,6 +81,7 @@
|
|||
* Estimate thresholds in digital modes.
|
||||
* Implement trigger A/B rapid fire switches.
|
||||
* Implement channel shift switch (Y->X, X->Z, Z->X).
|
||||
* Does channel shift affect digital mode?
|
||||
* Implement special modes (holding buttons on power-on):
|
||||
- Double displacement modes:
|
||||
+ X/Y (hold SELECT + A')
|
||||
|
|
Loading…
Reference in a new issue