mirror of
https://github.com/holub/mame
synced 2025-05-22 21:58:57 +03:00
Fixed Dip Switches for 'exprraid' and clones.
Enjoy the various notes ! ;)
This commit is contained in:
parent
b5c6bb78fa
commit
ef14884b5f
@ -5,8 +5,6 @@ Express Raider - (c) 1986 Data East USA
|
|||||||
Ernesto Corvi
|
Ernesto Corvi
|
||||||
ernesto@imagina.com
|
ernesto@imagina.com
|
||||||
|
|
||||||
Last Modified 14th Jul 2003
|
|
||||||
|
|
||||||
Memory Map:
|
Memory Map:
|
||||||
Main CPU: ( 6502 )
|
Main CPU: ( 6502 )
|
||||||
0000-05ff RAM
|
0000-05ff RAM
|
||||||
@ -21,6 +19,7 @@ Main CPU: ( 6502 )
|
|||||||
2800-2801 Protection
|
2800-2801 Protection
|
||||||
3800-3800 VBblank ( bootleg 1 only )
|
3800-3800 VBblank ( bootleg 1 only )
|
||||||
4000-ffff SMH_ROM
|
4000-ffff SMH_ROM
|
||||||
|
ffc0-ffc0 VBblank ( bootleg 2 only )
|
||||||
|
|
||||||
Sound Cpu: ( 6809 )
|
Sound Cpu: ( 6809 )
|
||||||
0000-1fff RAM
|
0000-1fff RAM
|
||||||
@ -58,6 +57,155 @@ sign has been defaced by the bootleggers
|
|||||||
2nd bootleg set expects to read vblank status from 0xFFC0, country warning
|
2nd bootleg set expects to read vblank status from 0xFFC0, country warning
|
||||||
sign is intact, however Credit is spelt incorrectly.
|
sign is intact, however Credit is spelt incorrectly.
|
||||||
|
|
||||||
|
|
||||||
|
Stephh's notes (based on the games M6502 code and some tests) :
|
||||||
|
|
||||||
|
1) 'exprraid'
|
||||||
|
|
||||||
|
- "@ 1986 DATA EAST USA, INC." (US)
|
||||||
|
- Number of enemies on "shoot" stages is determined by the level
|
||||||
|
(see code at 0x5d21 where location 0x0e is level number-1).
|
||||||
|
Note that time tables are coded backwards (locomotive first,
|
||||||
|
then 5th wagon, then 4th wagon ... up to 1st wagon).
|
||||||
|
This number of enemies is also supposed to be determined
|
||||||
|
by "Difficulty" settings (DSW1 bits 3 and 4).
|
||||||
|
There is however an ingame bug that reads DSW1 bits 4 and 5 :
|
||||||
|
|
||||||
|
5D2F: AD 03 18 lda $1803
|
||||||
|
5D32: 49 FF eor #$FF
|
||||||
|
5D34: 4A lsr a
|
||||||
|
5D35: 4A lsr a
|
||||||
|
5D36: 4A lsr a
|
||||||
|
5D37: 29 06 and #$06
|
||||||
|
|
||||||
|
So number of enemies is also determined by "Demo Sound" setting !
|
||||||
|
Correct code shall be :
|
||||||
|
|
||||||
|
5D37: 29 03 and #$03
|
||||||
|
|
||||||
|
- Time for each wagon on "shoot" stage is determined by the level
|
||||||
|
(see code at 0x6873 where location 0x0e is level number-1).
|
||||||
|
Note that time tables are coded backwards (locomotive first,
|
||||||
|
then 5th wagon, then 4th wagon ... up to 1st wagon).
|
||||||
|
- In the US manual, "bonus lives" settings are told be either
|
||||||
|
"Every 50000" or "50000/80000".
|
||||||
|
However, when you look at code at 0xe4a1, you'll notice that
|
||||||
|
settings shall be "50000 only" and "50000/80000".
|
||||||
|
- "Coin Mode" as well "Mode 2 Coinage" settings (DSW0 bits 0 to 4)
|
||||||
|
are undocumented in the US manual.
|
||||||
|
"Coin Mode" is tested though via code at 0xe7c5.
|
||||||
|
Coinage tables :
|
||||||
|
* 0xe7e2 : COIN1 - 0xe7ea : COIN2 (Mode 1)
|
||||||
|
* 0xe7f2 : COIN1 - 0xe7fa : COIN2 (Mode 2)
|
||||||
|
- "Force Coinage" (DSW1 bit 6) setting is undocumented in the US manual.
|
||||||
|
It is tested though via code at 0xe794.
|
||||||
|
When this Dip Switch is set to "On", pressing COIN1 or COIN2 always
|
||||||
|
adds 1 credit regardless of the "Coinage" and "Coin Mode" settings.
|
||||||
|
- At the begining of each level, you have text in upper case
|
||||||
|
which gives you some hints to pass the level or some advice.
|
||||||
|
- In this version, due to extra code at 0xfd80, you only have 4 wagons
|
||||||
|
for the "shoot" stages instead of 5.
|
||||||
|
- Continue play is always available and score is NOT reset to 0.
|
||||||
|
|
||||||
|
2) 'exprrada'
|
||||||
|
|
||||||
|
- "@ 1986 DATA EAST CORPORATION" + no code to display the Warning screen (World)
|
||||||
|
- Same way to code number of enemies in "shoot" stages as in 'exprraid'
|
||||||
|
(code at 5ce4) and same ingame bug :
|
||||||
|
|
||||||
|
5CF4: AD 03 18 lda $1803
|
||||||
|
5CF7: 49 FF eor #$FF
|
||||||
|
5CF9: 4A lsr a
|
||||||
|
5CFA: 4A lsr a
|
||||||
|
5CFB: 4A lsr a
|
||||||
|
5CFC: 29 06 and #$06
|
||||||
|
|
||||||
|
Correct code shall be :
|
||||||
|
|
||||||
|
5CFC: 29 03 and #$03
|
||||||
|
|
||||||
|
You'll notice by looking at the tables that there are sometimes
|
||||||
|
more enemies than in 'exprraid'.
|
||||||
|
- Time for each wagon on "shoot" stage is determined by the level
|
||||||
|
(see code at 0x6834 where location 0x0e is level number-1).
|
||||||
|
This time is also supposed to be determined by "Difficulty"
|
||||||
|
settings (DSW1 bits 3 and 4).
|
||||||
|
There is however an ingame bug that reads DSW1 bits 4 and 5 :
|
||||||
|
|
||||||
|
683B: AD 03 18 lda $1803
|
||||||
|
683E: 49 FF eor #$FF
|
||||||
|
6840: 4A lsr a
|
||||||
|
6841: 4A lsr a
|
||||||
|
6842: 4A lsr a
|
||||||
|
6843: 4A lsr a
|
||||||
|
6844: 29 03 and #$03
|
||||||
|
|
||||||
|
So Time is also determined by "Demo Sound" setting because of
|
||||||
|
extra "lsr a" instruction at 0x6843 !
|
||||||
|
Correct code shall be :
|
||||||
|
|
||||||
|
6843: EA nop
|
||||||
|
|
||||||
|
Fortunately, table at 0x685f is filled with 0x30 so you'll
|
||||||
|
always have 30 seconds to "clear" the wagon (which is more
|
||||||
|
than the time you have in 'exprraid').
|
||||||
|
For the locomotive, time is always set to 0x20 = 20 seconds
|
||||||
|
(which is again more than the time you have in 'exprraid').
|
||||||
|
- "Bonus lives" routine starts at 0xe49b.
|
||||||
|
- Coinage related stuff starts at 0xe78e.
|
||||||
|
Coinage tables :
|
||||||
|
* 0xe7dc : COIN1 - 0xe7e4 : COIN2 (Mode 1)
|
||||||
|
* 0xe7ec : COIN1 - 0xe7f4 : COIN2 (Mode 2)
|
||||||
|
- At the begining of each level, you have text in lower case
|
||||||
|
which doesn't give you any hints to pass the level.
|
||||||
|
- In this version, you always have 5 wagons for the "shoot" stages.
|
||||||
|
- Continue play is always available but score is reset to 0.
|
||||||
|
|
||||||
|
3) 'wexpress'
|
||||||
|
|
||||||
|
- "@ 1986 DATA EAST CORPORATION" + no code to display the Warning screen (World)
|
||||||
|
- This version is based on 'exprrada' so all comments also fit
|
||||||
|
for this set. The main difference is that reads from 0x2800
|
||||||
|
and 0x2801 (protection) are either discarded (jumps are noped
|
||||||
|
or patched) or changed to read what shall be the correct value
|
||||||
|
(reads from 0x2801 occur almost all the time).
|
||||||
|
So IMO this set looks like a World bootleg .
|
||||||
|
|
||||||
|
4) 'wexpresb'
|
||||||
|
|
||||||
|
- "@ 1986 DATA EAST CORPORATION" + extra code to display the Warning screen (Japan)
|
||||||
|
- Modified Warning screen
|
||||||
|
- This version is heavily based on 'exprrada' (even if I think
|
||||||
|
that there shall exist a "better" Japan undumped version)
|
||||||
|
so all comments also fit for this set. The main difference is
|
||||||
|
the way protection is bypassed (in a different way than 'wexpress'
|
||||||
|
as reads from 0x2801 only occur when a life is lost).
|
||||||
|
The other difference is that you can NOT continue a game.
|
||||||
|
- "Bonus lives" routine starts at 0xe4e5.
|
||||||
|
- Coinage related stuff starts at 0xe7d8.
|
||||||
|
- Coinage tables :
|
||||||
|
* 0xe826 : COIN1 - 0xe82e : COIN2 (Mode 1)
|
||||||
|
* 0xe836 : COIN1 - 0xe83e : COIN2 (Mode 2)
|
||||||
|
|
||||||
|
5) 'wexpresc'
|
||||||
|
|
||||||
|
- "@ 1986 DATA EAST CORPORATION" + extra code to display the Warning screen (Japan)
|
||||||
|
- Original Warning screen
|
||||||
|
- "CREDIT" mispelled to "CRDDIT".
|
||||||
|
- This version is heavily based on 'exprrada' (even if I think
|
||||||
|
that there shall exist a "better" Japan undumped version)
|
||||||
|
so all comments also fit for this set. The main difference is
|
||||||
|
the way protection is bypassed (in a different way than 'wexpress'
|
||||||
|
but also in a different way than 'wexpresb' as reads from 0x2801
|
||||||
|
occur when you lose a life but also on "shoot" stages).
|
||||||
|
The other difference is that you can NOT continue a game as in 'wexpresb'.
|
||||||
|
- "Bonus lives" routine starts at 0xe4e5 (same as 'wexpresb')
|
||||||
|
- Coinage related stuff starts at 0xe7d8 (same as 'wexpresb').
|
||||||
|
- Coinage tables (same as 'wexpresb') :
|
||||||
|
* 0xe826 : COIN1 - 0xe82e : COIN2 (Mode 1)
|
||||||
|
* 0xe836 : COIN1 - 0xe83e : COIN2 (Mode 2)
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#include "driver.h"
|
#include "driver.h"
|
||||||
@ -148,29 +296,39 @@ static INPUT_PORTS_START( exprraid )
|
|||||||
|
|
||||||
PORT_START("DSW0") /* DSW 0 - 0x1800 */
|
PORT_START("DSW0") /* DSW 0 - 0x1800 */
|
||||||
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
|
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x10)
|
||||||
PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
|
PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x10)
|
||||||
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
|
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x10)
|
||||||
PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
|
PORT_DIPSETTING( 0x03, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x00)
|
||||||
|
PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x10)
|
||||||
|
PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x00)
|
||||||
|
PORT_DIPSETTING( 0x01, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x00)
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x00)
|
||||||
PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) )
|
PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x00)
|
||||||
PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
|
PORT_DIPSETTING( 0x04, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x00)
|
||||||
PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x10)
|
||||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) )
|
PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x00)
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
|
PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x10)
|
||||||
|
PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x00)
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x10)
|
||||||
|
PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW0",0x10,PORTCOND_EQUALS,0x10)
|
||||||
|
PORT_DIPNAME( 0x10, 0x10, "Coin Mode" )
|
||||||
|
PORT_DIPSETTING( 0x10, "Mode 1" ) /* tables at 0xe7e2 (COIN1) and 0xe7ea (COIN2) */
|
||||||
|
PORT_DIPSETTING( 0x00, "Mode 2" ) /* tables at 0xe7f2 (COIN1) and 0xe7fa (COIN2) */
|
||||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) )
|
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) )
|
||||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) )
|
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||||
PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) )
|
PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) )
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW )
|
||||||
|
|
||||||
PORT_START("IN1") /* IN 1 - 0x1801 */
|
PORT_START("IN1") /* IN 1 - 0x1801 */
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
|
||||||
@ -178,32 +336,35 @@ static INPUT_PORTS_START( exprraid )
|
|||||||
|
|
||||||
PORT_START("IN2") /* IN 2 - 0x1802 */
|
PORT_START("IN2") /* IN 2 - 0x1802 */
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||||
|
|
||||||
PORT_START("DSW1") /* IN 3 - 0x1803 */
|
PORT_START("DSW1") /* DSW 1 - 0x1803 */
|
||||||
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
|
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
|
||||||
PORT_DIPSETTING( 0x01, "1" )
|
PORT_DIPSETTING( 0x01, "1" )
|
||||||
PORT_DIPSETTING( 0x03, "3" )
|
PORT_DIPSETTING( 0x03, "3" )
|
||||||
PORT_DIPSETTING( 0x02, "5" )
|
PORT_DIPSETTING( 0x02, "5" )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) )
|
||||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) )
|
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) ) /* see notes */
|
||||||
PORT_DIPSETTING( 0x04, "50K+" )
|
PORT_DIPSETTING( 0x00, "50k 80k" )
|
||||||
PORT_DIPSETTING( 0x00, "50K 80K" )
|
PORT_DIPSETTING( 0x04, "50k only" )
|
||||||
PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) )
|
PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) ) /* see notes */
|
||||||
PORT_DIPSETTING( 0x10, DEF_STR( Easy ) )
|
PORT_DIPSETTING( 0x18, DEF_STR( Easy ) )
|
||||||
PORT_DIPSETTING( 0x18, DEF_STR( Normal ) )
|
PORT_DIPSETTING( 0x10, DEF_STR( Normal ) )
|
||||||
PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
|
PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) )
|
||||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) )
|
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) /* see notes */
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||||
PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
|
PORT_DIPNAME( 0x40, 0x40, "Force Coinage = 1C/1C" ) /* see notes */
|
||||||
|
PORT_DIPSETTING( 0x40, DEF_STR( No ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
|
||||||
|
PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user