summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/dec0.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/dec0.cpp')
-rw-r--r--src/mame/drivers/dec0.cpp190
1 files changed, 158 insertions, 32 deletions
diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp
index 5901dd9ca4f..9518cd340a7 100644
--- a/src/mame/drivers/dec0.cpp
+++ b/src/mame/drivers/dec0.cpp
@@ -450,9 +450,12 @@ static ADDRESS_MAP_START( dec0_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0x24cc00, 0x24cfff) AM_DEVREADWRITE("tilegen3", deco_bac06_device, pf_rowscroll_r, pf_rowscroll_w)
AM_RANGE(0x24d000, 0x24d7ff) AM_DEVREADWRITE("tilegen3", deco_bac06_device, pf_data_r, pf_data_w)
- AM_RANGE(0x300000, 0x30001f) AM_READ(dec0_rotary_r)
+ AM_RANGE(0x300000, 0x300001) AM_READ_PORT("AN0")
+ AM_RANGE(0x300008, 0x300009) AM_READ_PORT("AN1")
AM_RANGE(0x30c000, 0x30c00b) AM_READ(dec0_controls_r)
AM_RANGE(0x30c010, 0x30c01f) AM_WRITE(dec0_control_w) /* Priority, sound, etc. */
+ AM_RANGE(0x30c012, 0x30c013) AM_READNOP // clr.w for sprite DMA
+ AM_RANGE(0x30c018, 0x30c019) AM_READNOP // clr.w for irq ack
AM_RANGE(0x310000, 0x3107ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x314000, 0x3147ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
AM_RANGE(0xff8000, 0xffbfff) AM_RAM AM_SHARE("ram") /* Main ram */
@@ -642,6 +645,14 @@ static ADDRESS_MAP_START( midres_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0x320000, 0x321fff) AM_RAM
ADDRESS_MAP_END
+static ADDRESS_MAP_START( midresb_map, AS_PROGRAM, 16, dec0_state )
+ AM_RANGE(0x180000, 0x18000f) AM_READ(dec0_controls_r)
+ AM_RANGE(0x180014, 0x180015) AM_WRITE(midres_sound_w)
+ AM_RANGE(0x1a0000, 0x1a0001) AM_READ_PORT("AN0")
+ AM_RANGE(0x1a0008, 0x1a0009) AM_READ_PORT("AN1")
+ AM_IMPORT_FROM( midres_map )
+ADDRESS_MAP_END
+
/******************************************************************************/
static ADDRESS_MAP_START( dec0_s_map, AS_PROGRAM, 8, dec0_state )
@@ -727,7 +738,8 @@ static ADDRESS_MAP_START( automat_map, AS_PROGRAM, 16, dec0_automat_state )
AM_RANGE(0x24cc00, 0x24cfff) AM_RAM
AM_RANGE(0x24d000, 0x24d7ff) AM_RAM AM_DEVREADWRITE("tilegen3", deco_bac06_device, pf_data_r, pf_data_w)
- AM_RANGE(0x300000, 0x30001f) AM_READ(dec0_rotary_r)
+ AM_RANGE(0x300000, 0x300001) AM_READ_PORT("AN0")
+ AM_RANGE(0x300008, 0x300009) AM_READ_PORT("AN1")
AM_RANGE(0x30c000, 0x30c00b) AM_READ(dec0_controls_r)
AM_RANGE(0x30c000, 0x30c01f) AM_WRITE(automat_control_w) /* Priority, sound, etc. */
AM_RANGE(0x310000, 0x3107ff) AM_READWRITE(automat_palette_r, automat_palette_w) AM_SHARE("palette")
@@ -874,9 +886,43 @@ INPUT_PORTS_END
PORT_DIPSETTING( 0x000c, DEF_STR( 1C_1C ) ) \
PORT_DIPSETTING( 0x0008, DEF_STR( 1C_2C ) )
+static const ioport_value rotary_table[12] =
+{
+ 0xfffe, 0xfffd, 0xfffb, 0xfff7,
+ 0xffef, 0xffdf, 0xffbf, 0xff7f,
+ 0xfeff, 0xfdff, 0xfbff, 0xf7ff
+};
+
+static INPUT_PORTS_START( rotary_ports )
+ PORT_START("AN0") /* player 1 12-way rotary control */
+ PORT_BIT( 0xffff, 0x0000, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(10) PORT_KEYDELTA(1) PORT_REMAP_TABLE(rotary_table) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
+
+ PORT_START("AN1") /* player 2 12-way rotary control */
+ PORT_BIT( 0xffff, 0x0000, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(10) PORT_KEYDELTA(1) PORT_REMAP_TABLE(rotary_table) PORT_PLAYER(2) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( rotary_null )
+ PORT_START("AN0")
+ PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("AN1")
+ PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
static INPUT_PORTS_START( hbarrel )
PORT_INCLUDE( dec0 )
-
+
+ PORT_MODIFY("INPUTS")
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire")
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Bomb")
+ PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Fire")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Bomb")
+ PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNUSED )
+
PORT_START("DSW")
PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2")
PORT_DIPSETTING( 0x0000, DEF_STR( 2C_1C ) )
@@ -917,16 +963,23 @@ static INPUT_PORTS_START( hbarrel )
PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" ) // Always OFF
- PORT_START("AN0") /* player 1 12-way rotary control - converted in controls_r() */
- PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
-
- PORT_START("AN1") /* player 2 12-way rotary control - converted in controls_r() */
- PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
+ PORT_INCLUDE( rotary_ports )
INPUT_PORTS_END
static INPUT_PORTS_START( birdtry )
PORT_INCLUDE( dec0 )
+ PORT_MODIFY("INPUTS")
+// PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Shoot")
+// PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Select")
+ PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
+// PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Shoot")
+// PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Select")
+ PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNUSED )
+
PORT_START("DSW")
DEC0_COIN_SETTING
PORT_SERVICE_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" )
@@ -975,16 +1028,24 @@ static INPUT_PORTS_START( birdtry )
Give up -5 -5 -4 -2
*/
- PORT_START("AN0") /* player 1 12-way rotary control - converted in controls_r() */
- PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
-
- PORT_START("AN1") /* player 2 12-way rotary control - converted in controls_r() */
- PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
+ PORT_INCLUDE( rotary_null )
+// TODO: trackball inputs
INPUT_PORTS_END
static INPUT_PORTS_START( baddudes )
PORT_INCLUDE( dec0 )
+ PORT_MODIFY("INPUTS")
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Attack")
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Jump")
+ PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Attack")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Jump")
+ PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNUSED )
+
PORT_START("DSW")
DEC0_COIN_SETTING
PORT_SERVICE_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" )
@@ -1017,11 +1078,7 @@ static INPUT_PORTS_START( baddudes )
PORT_DIPUNUSED_DIPLOC( 0x4000, IP_ACTIVE_LOW, "SW2:7" ) // Always OFF
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
- PORT_START("AN0") /* player 1 12-way rotary control - converted in controls_r() */
- PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused */
-
- PORT_START("AN1") /* player 2 12-way rotary control - converted in controls_r() */
- PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused */
+ PORT_INCLUDE( rotary_null )
INPUT_PORTS_END
static INPUT_PORTS_START( drgninja )
@@ -1039,6 +1096,17 @@ INPUT_PORTS_END
static INPUT_PORTS_START( robocop )
PORT_INCLUDE( dec0 )
+ PORT_MODIFY("INPUTS")
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Attack")
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Jump")
+ PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Attack")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Jump")
+ PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNUSED )
+
PORT_START("DSW")
DEC0_COIN_SETTING
PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" ) // Always OFF
@@ -1076,11 +1144,24 @@ static INPUT_PORTS_START( robocop )
Japanese manual says "Invulnerable Brink Time On Continue / Off=Long / On=Short"
*/
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
+
+ PORT_INCLUDE( rotary_null )
INPUT_PORTS_END
static INPUT_PORTS_START( hippodrm )
PORT_INCLUDE( dec0 )
+ PORT_MODIFY("INPUTS")
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Attack")
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Jump")
+ PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Attack")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Jump")
+ PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNUSED )
+
PORT_START("DSW")
DEC0_COIN_SETTING
PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" ) // Always OFF
@@ -1114,6 +1195,8 @@ static INPUT_PORTS_START( hippodrm )
PORT_START("VBLANK")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
+
+ PORT_INCLUDE( rotary_null )
INPUT_PORTS_END
static INPUT_PORTS_START( ffantasy )
@@ -1141,6 +1224,14 @@ static INPUT_PORTS_START( slyspy )
PORT_INCLUDE( dec1 )
/* if you set VBLANK as ACTIVE_LOW, you obtain screwed up colors */
+ PORT_MODIFY("INPUTS")
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Attack")
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Jump")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Attack")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Jump")
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
+
PORT_START("DSW")
DEC0_COIN_SETTING
PORT_SERVICE_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" )
@@ -1170,11 +1261,21 @@ static INPUT_PORTS_START( slyspy )
PORT_DIPUNUSED_DIPLOC( 0x2000, IP_ACTIVE_LOW, "SW2:6" ) // Always OFF
PORT_DIPUNUSED_DIPLOC( 0x4000, IP_ACTIVE_LOW, "SW2:7" ) // Always OFF
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
+
+ PORT_INCLUDE( rotary_null )
INPUT_PORTS_END
static INPUT_PORTS_START( midres )
PORT_INCLUDE( dec1 )
+ PORT_MODIFY("INPUTS")
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire")
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Jump")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Fire")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Jump")
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
+
PORT_START("DSW")
DEC0_COIN_SETTING
PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" ) // Always OFF
@@ -1207,11 +1308,7 @@ static INPUT_PORTS_START( midres )
PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
- PORT_START("AN0") /* player 1 12-way rotary control - converted in controls_r() */
- PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
-
- PORT_START("AN1") /* player 2 12-way rotary control - converted in controls_r() */
- PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
+ PORT_INCLUDE( rotary_ports )
INPUT_PORTS_END
static INPUT_PORTS_START( midresu )
@@ -1223,12 +1320,22 @@ static INPUT_PORTS_START( midresu )
PORT_DIPSETTING( 0x0300, "3" )
PORT_DIPSETTING( 0x0200, "5" )
PORT_DIPSETTING( 0x0000, "Infinite (Cheat)")
-
INPUT_PORTS_END
static INPUT_PORTS_START( midresb )
PORT_INCLUDE( dec0 )
+ PORT_MODIFY("INPUTS")
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire")
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Jump")
+ PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Fire")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Jump")
+ PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNUSED )
+
PORT_START("DSW")
DEC0_COIN_SETTING
PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:5" ) // Always OFF
@@ -1257,16 +1364,31 @@ static INPUT_PORTS_START( midresb )
PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
- PORT_START("AN0") /* player 1 12-way rotary control - converted in controls_r() */
- PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
-
- PORT_START("AN1") /* player 2 12-way rotary control - converted in controls_r() */
- PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) PORT_REVERSE PORT_FULL_TURN_COUNT(12)
+ PORT_INCLUDE( rotary_ports )
INPUT_PORTS_END
static INPUT_PORTS_START( bouldash )
PORT_INCLUDE( dec1 )
+ PORT_MODIFY("INPUTS")
+ // 4 way joysticks according to manual
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) // squeeze diamond
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) // escape
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 3 - only in Service Mode */
+// PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL // squeeze diamond
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL // escape
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
+// PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
+
PORT_MODIFY("SYSTEM")
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") /* extremely slow palette fades with ACTIVE_HIGH */
@@ -1317,6 +1439,8 @@ static INPUT_PORTS_START( bouldash )
PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8")
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+
+ PORT_INCLUDE( rotary_null )
INPUT_PORTS_END
/******************************************************************************/
@@ -1824,6 +1948,8 @@ static MACHINE_CONFIG_DERIVED( midres, dec1 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( midresb, midres )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(midresb_map)
MCFG_CPU_REPLACE("audiocpu", M6502, 1500000 )
MCFG_CPU_PROGRAM_MAP(dec0_s_map)
@@ -3515,10 +3641,10 @@ ROM_END
DRIVER_INIT_MEMBER(dec0_state,midresb)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00180000, 0x0018000f, read16_delegate(FUNC(dec0_state::dec0_controls_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x001a0000, 0x001a000f, read16_delegate(FUNC(dec0_state::dec0_rotary_r),this));
+// m_maincpu->space(AS_PROGRAM).install_read_handler(0x00180000, 0x0018000f, read16_delegate(FUNC(dec0_state::dec0_controls_r),this));
+// m_maincpu->space(AS_PROGRAM).install_read_handler(0x001a0000, 0x001a000f, read16_delegate(FUNC(dec0_state::dec0_rotary_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x00180014, 0x00180015, write16_delegate(FUNC(dec0_state::midres_sound_w),this));
+// m_maincpu->space(AS_PROGRAM).install_write_handler(0x00180014, 0x00180015, write16_delegate(FUNC(dec0_state::midres_sound_w),this));
}
READ16_MEMBER(dec0_state::ffantasybl_242024_r)