diff options
Diffstat (limited to 'src/mame/drivers/dec0.cpp')
-rw-r--r-- | src/mame/drivers/dec0.cpp | 190 |
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) |