diff options
Diffstat (limited to 'docs/release/src/hbmame/drivers/fcrash.cpp')
-rw-r--r-- | docs/release/src/hbmame/drivers/fcrash.cpp | 130 |
1 files changed, 67 insertions, 63 deletions
diff --git a/docs/release/src/hbmame/drivers/fcrash.cpp b/docs/release/src/hbmame/drivers/fcrash.cpp index 73fe905da44..194f4a21fd9 100644 --- a/docs/release/src/hbmame/drivers/fcrash.cpp +++ b/docs/release/src/hbmame/drivers/fcrash.cpp @@ -821,7 +821,7 @@ void cps_state::sound_map(address_map &map) { map(0xd800,0xd801).rw("ym1",FUNC(ym2203_device::read),FUNC(ym2203_device::write)); map(0xdc00,0xdc01).rw("ym2",FUNC(ym2203_device::read),FUNC(ym2203_device::write)); map(0xe000,0xe000).w(FUNC(cps_state::fcrash_snd_bankswitch_w)); - map(0xe400,0xe400).r("soundlatch",FUNC(generic_latch_8_device::read)); + map(0xe400,0xe400).r(m_soundlatch,FUNC(generic_latch_8_device::read)); map(0xe800,0xe800).w(FUNC(cps_state::fcrash_msm5205_0_data_w)); map(0xec00,0xec00).w(FUNC(cps_state::fcrash_msm5205_1_data_w)); } @@ -832,7 +832,7 @@ void cps_state::kodb_sound_map(address_map &map) { map(0xd000,0xd7ff).ram(); map(0xe000,0xe001).rw("2151",FUNC(ym2151_device::read),FUNC(ym2151_device::write)); map(0xe400,0xe400).rw("oki",FUNC(okim6295_device::read),FUNC(okim6295_device::write)); - map(0xe800,0xe800).r("soundlatch",FUNC(generic_latch_8_device::read)); + map(0xe800,0xe800).r(m_soundlatch,FUNC(generic_latch_8_device::read)); } void cps_state::sf2mdt_z80map(address_map &map) { @@ -840,7 +840,7 @@ void cps_state::sf2mdt_z80map(address_map &map) { map(0x8000,0xbfff).bankr("bank1"); map(0xd000,0xd7ff).ram(); map(0xd800,0xd801).rw("2151",FUNC(ym2151_device::read),FUNC(ym2151_device::write)); - map(0xdc00,0xdc00).r("soundlatch",FUNC(generic_latch_8_device::read)); + map(0xdc00,0xdc00).r(m_soundlatch,FUNC(generic_latch_8_device::read)); map(0xe000,0xe000).w(FUNC(cps_state::sf2mdt_snd_bankswitch_w)); map(0xe400,0xe400).w(FUNC(cps_state::fcrash_msm5205_0_data_w)); map(0xe800,0xe800).w(FUNC(cps_state::fcrash_msm5205_1_data_w)); @@ -852,7 +852,7 @@ void cps_state::knightsb_z80map(address_map &map) { map(0xcffe,0xcfff).nopw(); // writes lots of data map(0xd000,0xd7ff).ram(); map(0xd800,0xd801).rw("2151",FUNC(ym2151_device::read),FUNC(ym2151_device::write)); - map(0xdc00,0xdc00).r("soundlatch",FUNC(generic_latch_8_device::read)); + map(0xdc00,0xdc00).r(m_soundlatch,FUNC(generic_latch_8_device::read)); map(0xe000,0xe000).w(FUNC(cps_state::knightsb_snd_bankswitch_w)); map(0xe400,0xe400).w(FUNC(cps_state::fcrash_msm5205_0_data_w)); map(0xe800,0xe800).w(FUNC(cps_state::fcrash_msm5205_1_data_w)); @@ -866,8 +866,8 @@ void cps_state::sgyxz_sound_map(address_map &map) { map(0xf002,0xf002).rw("oki",FUNC(okim6295_device::read),FUNC(okim6295_device::write)); map(0xf004,0xf004).w(FUNC(cps_state::cps1_snd_bankswitch_w)); map(0xf006,0xf006).w(FUNC(cps_state::cps1_oki_pin7_w)); /* controls pin 7 of OKI chip */ - map(0xf008,0xf008).r("soundlatch",FUNC(generic_latch_8_device::read)); - map(0xf00a,0xf00a).r("soundlatch2",FUNC(generic_latch_8_device::read)); + map(0xf008,0xf008).r(m_soundlatch,FUNC(generic_latch_8_device::read)); + map(0xf00a,0xf00a).r(m_soundlatch2,FUNC(generic_latch_8_device::read)); } @@ -1456,6 +1456,7 @@ MACHINE_START_MEMBER(cps_state,sgyxz) m_layer_scroll1x_offset = 0x40; m_layer_scroll2x_offset = 0x40; m_layer_scroll3x_offset = 0x40; + m_sprite_list_end_marker = 0x8000; membank("bank1")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x10000, 0x4000); } @@ -1519,11 +1520,11 @@ MACHINE_START_MEMBER(cps_state, knightsb) membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000); - m_layer_enable_reg = 0x30; - m_layer_mask_reg[0] = 0x28; - m_layer_mask_reg[1] = 0x2a; - m_layer_mask_reg[2] = 0x2c; - m_layer_mask_reg[3] = 0x2e; + m_layer_enable_reg = 0x28; + m_layer_mask_reg[0] = 0x26; + m_layer_mask_reg[1] = 0x24; + m_layer_mask_reg[2] = 0x22; + m_layer_mask_reg[3] = 0x30; m_layer_scroll1x_offset = 0x3e; //text m_layer_scroll2x_offset = 0x3c; //bricks around scores m_layer_scroll3x_offset = 0x40; //hill with sword going in @@ -1605,15 +1606,15 @@ MACHINE_CONFIG_START( cps_state::fcrash ) MCFG_SOUND_ROUTE(2, "mono", 0.10) MCFG_SOUND_ROUTE(3, "mono", 1.0) - MCFG_DEVICE_ADD("msm1", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + MSM5205(config, m_msm_1, 24000000/64); /* ? */ + m_msm_1->vck_legacy_callback().set(FUNC(cps_state::m5205_int1)); /* interrupt function */ + m_msm_1->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_1->add_route(ALL_OUTPUTS, "mono", 0.25); - MCFG_DEVICE_ADD("msm2", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + MSM5205(config, m_msm_2, 24000000/64); /* ? */ + m_msm_2->vck_legacy_callback().set(FUNC(cps_state::m5205_int2)); /* interrupt function */ + m_msm_2->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_2->add_route(ALL_OUTPUTS, "mono", 0.25); MACHINE_CONFIG_END // HBMAME start @@ -1742,15 +1743,15 @@ MACHINE_CONFIG_START( cps_state::sf2mdt ) MCFG_SOUND_ROUTE(1, "mono", 0.35) /* has 2x MSM5205 instead of OKI6295 */ - MCFG_DEVICE_ADD("msm1", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MCFG_DEVICE_ADD("msm2", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + MSM5205(config, m_msm_1, 24000000/64); /* ? */ + m_msm_1->vck_legacy_callback().set(FUNC(cps_state::m5205_int1)); /* interrupt function */ + m_msm_1->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_1->add_route(ALL_OUTPUTS, "mono", 0.25); + + MSM5205(config, m_msm_2, 24000000/64); /* ? */ + m_msm_2->vck_legacy_callback().set(FUNC(cps_state::m5205_int2)); /* interrupt function */ + m_msm_2->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_2->add_route(ALL_OUTPUTS, "mono", 0.25); MACHINE_CONFIG_END MACHINE_CONFIG_START( cps_state::sf2b ) @@ -1762,48 +1763,51 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START( cps_state::knightsb ) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24000000 / 2) - MCFG_DEVICE_PROGRAM_MAP(knightsb_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + M68000(config, m_maincpu, 24000000 / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::knightsb_map); + m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack)); - MCFG_DEVICE_ADD("audiocpu", Z80, 29821000 / 8) - MCFG_DEVICE_PROGRAM_MAP(knightsb_z80map) + Z80(config, m_audiocpu, 29821000 / 8); + m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::knightsb_z80map); MCFG_MACHINE_START_OVERRIDE(cps_state, knightsb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1)) - MCFG_SCREEN_PALETTE("palette") - - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cps1) - MCFG_PALETTE_ADD("palette", 0xc00) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(64*8, 32*8); + m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash)); + m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1)); + m_screen->set_palette(m_palette); + + GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); + PALETTE(config, m_palette).set_entries(0xc00); MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) /* sound hardware */ SPEAKER(config, "mono").front_center(); + GENERIC_LATCH_8(config, m_soundlatch); + ym2151_device &ym2151(YM2151(config, "2151", 29821000 / 8)); ym2151.irq_handler().set_inputline(m_audiocpu, 0); ym2151.add_route(0, "mono", 0.35); ym2151.add_route(1, "mono", 0.35); /* has 2x MSM5205 instead of OKI6295 */ - MCFG_DEVICE_ADD("msm1", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MCFG_DEVICE_ADD("msm2", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + MSM5205(config, m_msm_1, 24000000/64); /* ? */ + m_msm_1->vck_legacy_callback().set(FUNC(cps_state::m5205_int1)); /* interrupt function */ + m_msm_1->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_1->add_route(ALL_OUTPUTS, "mono", 0.25); + + MSM5205(config, m_msm_2, 24000000/64); /* ? */ + m_msm_2->vck_legacy_callback().set(FUNC(cps_state::m5205_int2)); /* interrupt function */ + m_msm_2->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_2->add_route(ALL_OUTPUTS, "mono", 0.25); MACHINE_CONFIG_END #define CODE_SIZE 0x400000 @@ -3067,7 +3071,7 @@ HACK( 1990, ffightbl, ffight, fcrash, fcrash, cps_state, cps1, ROT0, HACK( 1990, ffightbla, ffight, fcrash, fcrash, cps_state, cps1, ROT0, "bootleg", "Final Fight (bootleg on Final Crash PCB)", MACHINE_SUPPORTS_SAVE ) // same as Final Crash without the modified gfx HACK( 1991, kodb, kod, kodb, kodb, cps_state, kodb, ROT0, "bootleg (Playmark)", "The King of Dragons (bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 910731 "ETC" -HACK( 1991, knightsb, knights, knightsb, knights, cps_state, dinopic, ROT0, "bootleg", "Knights of the Round (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 911127 - based on World version +HACK( 1991, knightsb, knights, knightsb, knights, cps_state, dinopic, ROT0, "bootleg", "Knights of the Round (bootleg)", MACHINE_SUPPORTS_SAVE ) // 911127 - based on World version HACK( 1993, punipic, punisher, punipic, punisher, cps_state, punipic, ROT0, "bootleg", "The Punisher (bootleg with PIC16c57, set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // 930422 ETC HACK( 1993, punipic2, punisher, punipic, punisher, cps_state, punipic, ROT0, "bootleg", "The Punisher (bootleg with PIC16c57, set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // 930422 ETC @@ -3154,15 +3158,15 @@ MACHINE_CONFIG_START( cps_state::captcommb2 ) MCFG_SOUND_ROUTE(1, "mono", 0.35) /* has 2x MSM5205 instead of OKI6295 */ - MCFG_DEVICE_ADD("msm1", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MCFG_DEVICE_ADD("msm2", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + MSM5205(config, m_msm_1, 24000000/64); /* ? */ + m_msm_1->vck_legacy_callback().set(FUNC(cps_state::m5205_int1)); /* interrupt function */ + m_msm_1->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_1->add_route(ALL_OUTPUTS, "mono", 0.25); + + MSM5205(config, m_msm_2, 24000000/64); /* ? */ + m_msm_2->vck_legacy_callback().set(FUNC(cps_state::m5205_int2)); /* interrupt function */ + m_msm_2->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_2->add_route(ALL_OUTPUTS, "mono", 0.25); MACHINE_CONFIG_END |