summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/sfkick.cpp
diff options
context:
space:
mode:
author briantro <briantro@users.noreply.github.com>2016-01-03 03:51:58 -0600
committer briantro <briantro@users.noreply.github.com>2016-01-03 03:51:58 -0600
commitdf561a2a79e5fd894277b4991dfbf52034d22490 (patch)
tree48b1d2eed8cd6f74d117e57f883b1555b8971b0e /src/mame/drivers/sfkick.cpp
parent51b30c9d2399f6d271cf17f5deb5fa2082d2f827 (diff)
sfkick.cpp: Fill in missing dipswitches and added dip locations. [Brian Troha]
Diffstat (limited to 'src/mame/drivers/sfkick.cpp')
-rw-r--r--src/mame/drivers/sfkick.cpp171
1 files changed, 136 insertions, 35 deletions
diff --git a/src/mame/drivers/sfkick.cpp b/src/mame/drivers/sfkick.cpp
index f61a97cc71c..3ffc70c29ff 100644
--- a/src/mame/drivers/sfkick.cpp
+++ b/src/mame/drivers/sfkick.cpp
@@ -44,13 +44,112 @@ Board # CBK1029
CN1: 40 PIN Connector (Epoxy Block )
CN2: 8 PIN Connector (Epoxy Block)
-1UP: 4 PIN Connector (Analog Controls ?)
-2UP: 4 PIN Connector (Analog Controls ?)
+1UP: 4 PIN Connector (Analog Controls)
+2UP: 4 PIN Connector (Analog Controls)
Z8400A (x2)
UM82C55A-PC
YM2203C
+Documentation as per manual:
+
+ Main Jamma Connector
+ Solder Side | Parts Side
+------------------------------------------------------------------
+ GND | A | 1 | GND
+ GND | B | 2 | GND
+ +5 | C | 3 | +5
+ +5 | D | 4 | +5
+ | E | 5 |
+ +12 | F | 6 | +12
+----- KEY -----| H | 7 |----- KEY -----
+ | J | 8 |
+ | K | 9 |
+ Speaker (-) | L | 10| Speaker (+)
+ | M | 11|
+ Video Green | N | 12| Video Red
+ Video Sync | P | 13| Video Blue
+ Player 1 Left | R | 14| Player 2 Right
+Player 1 Right | S | 15| Player 2 Left
+ Coin Switch 2 | T | 16| Coin Switch 1
+Player 2 Start | U | 17| Player 1 Start
+ | V | 18|
+ | W | 19|
+ | X | 20|
+ | Y | 21|
+Player 2 Shoot | Z | 22| Player 1 Shoot
+ | a | 23|
+ | b | 24|
+ | c | 25|
+ | d | 26|
+ GND | e | 27| GND
+ GND | f | 28| GND
+
+ ____
+ / \
+ | Dial |
+ \____/
+ /| |\
+ / | | \
+ Blue Red Black Yellow
+ / | | \
+Left +5v GND Right
+
+
+DIPSW-1
+------------------------------------------------------------------
+ DipSwitch Title | Function | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
+------------------------------------------------------------------
+ Cabinet Style | Upright |off| |
+ | Cocktail |on | |
+------------------------------------------------------------------
+ Stage Select | Off | |off| |
+ | On | |on | |
+------------------------------------------------------------------
+ Freeze Screen | Off | |off| |
+ | On | |on | |
+------------------------------------------------------------------
+ Test / Game Mode | Game | |off| |
+ | Test | |on | |
+------------------------------------------------------------------
+ Allow Continue | Off | |off| |
+ | On | |on | |
+------------------------------------------------------------------
+ | 1cn/1cr | |off|off|off|
+ | 1cn/2cr | |on |off|off|
+ | 1cn/3cr | |off|on |off|
+ Coinage | 1cn/5cr | |on |on |off|
+ | 2cn/1cr | |off|off|on |
+ | 2cn/3cr | |on |off|on |
+ | 3cn/1cr | |off|on |on |
+ | 3cn/2cr | |on |on |on |
+------------------------------------------------------------------
+
+DIPSW-2
+------------------------------------------------------------------
+ DipSwitch Title | Function | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
+------------------------------------------------------------------
+ No Comment | N/A |off| |
+------------------------------------------------------------------
+ Demo Sounds | Yes | |off| |
+ | No | |on | |
+------------------------------------------------------------------
+ | 1 | |off|off| |
+ Players Count | 2 | |on |off| |
+ | 3 | |off|on | |
+ | 5 | |on |on | |
+-----------------------------------------------------------------
+ | None | |off|off| |
+ Bonus |Every 20K | |on |off| |
+ |20K & 50K | |off|on | |
+ |Every 50K | |on |on | |
+------------------------------------------------------------------
+ | Easy | |off|off|
+ Difficulty | Normal | |on |off|
+ | Hard | |off|on |
+ | V.Hard | |on |on |
+------------------------------------------------------------------
+
*/
#include "emu.h"
@@ -137,8 +236,8 @@ READ8_MEMBER(sfkick_state::ppi_port_b_r)
case 0: return m_in0->read();
case 1: return m_in1->read();
case 2: return BITSWAP8(m_dial->read(),4,5,6,7,3,2,1,0);
- case 3: return m_dsw2->read();
- case 4: return m_dsw1->read();
+ case 3: return m_dsw1->read();
+ case 4: return m_dsw2->read();
}
return 0xff;
}
@@ -411,41 +510,22 @@ static INPUT_PORTS_START( sfkick )
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(-20)
PORT_START("DSW1") /* bitswapped at read! 76543210 -> 45673210 */
- PORT_DIPNAME( 0x82, 0x02, DEF_STR( Unknown ) ) /* unknown, code @ $98a8 */
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPSETTING( 0x02, "2" )
- PORT_DIPSETTING( 0x80, "1" )
- PORT_DIPSETTING( 0x82, "0" )
- PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Difficulty ) ) /* not sure, code @ $9877 */
- PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Medium ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* unused ? */
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x41, 0x01, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPSETTING( 0x01, "3" )
- PORT_DIPSETTING( 0x40, "2" )
- PORT_DIPSETTING( 0x41, "1" )
-
- PORT_START("DSW2") /* bitswapped at read! 76543210 -> 45673210 */
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) /* unused ? */
- PORT_DIPNAME( 0x02, 0x02, "Test Mode" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:1")
PORT_DIPSETTING( 0x10, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
- PORT_DIPNAME( 0x20, 0x20, "Freeze" )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) )
+ PORT_DIPNAME( 0x01, 0x01, "Stage Select" ) PORT_DIPLOCATION("SW1:2") /* How does this work?? */
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, "Freeze" ) PORT_DIPLOCATION("SW1:3")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, "Test Mode" ) PORT_DIPLOCATION("SW1:4")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW1:5")
PORT_DIPSETTING( 0x40, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x8c, 0x8c, DEF_STR( Coinage ) )
+ PORT_DIPNAME( 0x8c, 0x8c, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:6,8,7")
PORT_DIPSETTING( 0x04, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x84, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x00, DEF_STR( 3C_2C ) )
@@ -454,6 +534,27 @@ static INPUT_PORTS_START( sfkick )
PORT_DIPSETTING( 0x88, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x0c, DEF_STR( 1C_3C ) )
PORT_DIPSETTING( 0x08, DEF_STR( 1C_5C ) )
+
+ PORT_START("DSW2") /* bitswapped at read! 76543210 -> 45673210 */
+ PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:1" ) /* Manual states "No Comment" */
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x41, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4")
+ PORT_DIPSETTING( 0x41, "1" )
+ PORT_DIPSETTING( 0x40, "2" )
+ PORT_DIPSETTING( 0x01, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPNAME( 0x82, 0x02, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:5,6")
+ PORT_DIPSETTING( 0x82, DEF_STR( None ) )
+ PORT_DIPSETTING( 0x00, "Every 50,000" )
+ PORT_DIPSETTING( 0x80, "Every 20,000" )
+ PORT_DIPSETTING( 0x02, "20,000 & 50,000" )
+ PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,8")
+ PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
INPUT_PORTS_END
WRITE_LINE_MEMBER(sfkick_state::sfkick_vdp_interrupt)