summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2008-10-09 09:34:36 +0000
committer Aaron Giles <aaron@aarongiles.com>2008-10-09 09:34:36 +0000
commit86c1be8c70fc1f0151abf941a8ed9de117669a93 (patch)
treedcd3e129939e8c08e31cb06b7421bddc574820e6 /src
parent39a8efbdfbdc8e2f76d9df055c213adcd27fd011 (diff)
From: Franklin Bowen [mailto:Franklin@Bowen.net]
Sent: Sunday, October 05, 2008 3:46 AM To: submit@mamedev.org Subject: Delete previous submission! Space Duel: Add the P10/11 dip switch Delete previous submission! Functionally the same, just reordered some source and added a comment. Thanks! Space Duel: Add the P10/11 dip switch (only 4 switches instead of the standard 8) Let me know if you have any questions. Franklin
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/bwidow.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/mame/drivers/bwidow.c b/src/mame/drivers/bwidow.c
index 6d760f2d5c1..5176176bd5c 100644
--- a/src/mame/drivers/bwidow.c
+++ b/src/mame/drivers/bwidow.c
@@ -232,6 +232,9 @@
#define IN_THRUST (1 << 4)
#define IN_P1 (1 << 5)
#define IN_P2 (1 << 6)
+#define OPTION_1_PLAYER_GAME_ONLY (1 << 2)
+#define OPTION_2_CREDIT_MINIMUM (1 << 1)
+#define OPTION_CHARGE_BY_ (1 << 0)
/*************************************
@@ -253,9 +256,11 @@ static READ8_HANDLER( spacduel_IN3_r )
int res;
int res1;
int res2;
+ int res3;
res1 = input_port_read(machine, "IN3");
res2 = input_port_read(machine, "IN4");
+ res3 = input_port_read(machine, "DSW2");
res = 0x00;
switch (offset & 0x07)
@@ -282,12 +287,15 @@ static READ8_HANDLER( spacduel_IN3_r )
break;
case 5: /* Player 2 */
if (res2 & IN_THRUST) res |= 0x80;
+ if ((res3 & OPTION_CHARGE_BY_) == 0) res |= 0x40;
break;
case 6:
if (res1 & IN_P2) res |= 0x80;
+ if ((res3 & OPTION_2_CREDIT_MINIMUM) == 0) res |= 0x40;
break;
case 7:
res = (0x00 /* upright */ | (0 & 0x40));
+ if ((res3 & OPTION_1_PLAYER_GAME_ONLY) == 0) res |= 0x40;
break;
}
@@ -635,6 +643,20 @@ static INPUT_PORTS_START( spacduel )
PORT_DIPSETTING ( 0x20, "1 each 2" )
PORT_DIPSETTING ( 0x00, DEF_STR( None ) )
+ PORT_START("DSW2")
+ // Although a dip switch 1 setting is shown in the Space Duel - Operation, Maintenance, and Service Manual,
+ // this switch is not connected to anything on the PCB or in the schematics
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "P10/11:!1")
+ PORT_DIPNAME( 0x04, 0x04, "1-player game only" ) PORT_DIPLOCATION("P10/11:!2")
+ PORT_DIPSETTING ( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING ( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, "2-credit minimum" ) PORT_DIPLOCATION("P10/11:!3")
+ PORT_DIPSETTING ( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING ( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x01, 0x01, "Charge by ..." ) PORT_DIPLOCATION("P10/11:!4")
+ PORT_DIPSETTING ( 0x01, "player" )
+ PORT_DIPSETTING ( 0x00, "game" )
+
/* See machine/spacduel.c for more info on these 2 ports */
PORT_START("IN3") /* IN3 - Player 1 - spread over 8 memory locations */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1)