summaryrefslogtreecommitdiffstats
path: root/docs/release/src/hbmame/drivers/fcrash.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'docs/release/src/hbmame/drivers/fcrash.cpp')
-rw-r--r--docs/release/src/hbmame/drivers/fcrash.cpp130
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