diff options
| author | 2021-11-19 18:12:44 +0100 | |
|---|---|---|
| committer | 2021-11-19 18:12:44 +0100 | |
| commit | d4d92d2aa99c1ec958430642c7c7100869f63fbb (patch) | |
| tree | c3e16f21a88b183d0c13e3d499956787d16833b4 /src | |
| parent | f85d81986d72e029db20a484313794832999e24d (diff) | |
- seta.cpp: removed some unneeded VIDEO_START macros
- taito_x.cpp: split in subclasses, minor cleanups
Diffstat (limited to 'src')
| -rw-r--r-- | src/mame/drivers/seta.cpp | 81 | ||||
| -rw-r--r-- | src/mame/drivers/taito_x.cpp | 447 | ||||
| -rw-r--r-- | src/mame/includes/seta.h | 11 | ||||
| -rw-r--r-- | src/mame/includes/taito_x.h | 61 | ||||
| -rw-r--r-- | src/mame/video/seta.cpp | 9 |
5 files changed, 266 insertions, 343 deletions
diff --git a/src/mame/drivers/seta.cpp b/src/mame/drivers/seta.cpp index 880ccc28766..804304193a1 100644 --- a/src/mame/drivers/seta.cpp +++ b/src/mame/drivers/seta.cpp @@ -2425,13 +2425,13 @@ void seta_state::drgnunit_map(address_map &map) The Roulette ***************************************************************************/ -MACHINE_START_MEMBER(setaroul_state, setaroul) +void setaroul_state::machine_start() { m_leds.resolve(); } // Coin drop -MACHINE_RESET_MEMBER(setaroul_state, setaroul) +void setaroul_state::machine_reset() { m_coin_start_cycles = 0; } @@ -7947,8 +7947,6 @@ void downtown_state::tndrcade(machine_config &config) PALETTE(config, m_palette).set_entries(512); // sprites only - MCFG_VIDEO_START_OVERRIDE(downtown_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8005,8 +8003,6 @@ void downtown_state::twineagl(machine_config &config) PALETTE(config, m_palette).set_entries(512); - MCFG_VIDEO_START_OVERRIDE(downtown_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8057,8 +8053,6 @@ void downtown_state::downtown(machine_config &config) PALETTE(config, m_palette).set_entries(512); - MCFG_VIDEO_START_OVERRIDE(downtown_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8147,8 +8141,6 @@ void usclssic_state::usclssic(machine_config &config) PALETTE(config, m_palette, FUNC(usclssic_state::usclssic_palette), 16*32 + 64*32*2, 0x400); // sprites, layer - layer is 6 planes deep - MCFG_VIDEO_START_OVERRIDE(usclssic_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8212,8 +8204,6 @@ void downtown_state::calibr50(machine_config &config) PALETTE(config, m_palette).set_entries(512); - MCFG_VIDEO_START_OVERRIDE(downtown_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8267,8 +8257,6 @@ void downtown_state::metafox(machine_config &config) PALETTE(config, m_palette).set_entries(512); - MCFG_VIDEO_START_OVERRIDE(downtown_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8317,8 +8305,6 @@ void seta_state::atehate(machine_config &config) PALETTE(config, m_palette).set_entries(512); // sprites only - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8366,8 +8352,6 @@ void seta_state::blandia(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_blandia_layer2).set_xoffsets(6, -2); PALETTE(config, m_palette, FUNC(seta_state::blandia_palette), (16*32 + 64*32*4)*2, 0x600*2); // sprites, layer1, layer2, palette effect - layers 1&2 are 6 planes deep - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8405,8 +8389,6 @@ void seta_state::blandiap(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_blandia_layer2).set_xoffsets(6, -2); PALETTE(config, m_palette, FUNC(seta_state::blandia_palette), (16*32 + 64*32*4)*2, 0x600*2); // sprites, layer1, layer2, palette effect - layers 1&2 are 6 planes deep - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8445,8 +8427,6 @@ void seta_state::blockcar(machine_config &config) PALETTE(config, m_palette).set_entries(512); // sprites only - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8523,8 +8503,6 @@ void seta_state::daioh(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_msgundam_layer2).set_xoffsets(-2, -2); PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2 - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8582,8 +8560,6 @@ void seta_state::drgnunit(machine_config &config) X1_012(config, m_layers[0], m_palette, gfx_downtown).set_xoffsets(-2, -2); PALETTE(config, m_palette).set_entries(512); - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8643,9 +8619,6 @@ void setaroul_state::setaroul(machine_config &config) WATCHDOG_TIMER(config, "watchdog"); - MCFG_MACHINE_START_OVERRIDE(setaroul_state, setaroul) - MCFG_MACHINE_RESET_OVERRIDE(setaroul_state, setaroul) - SETA001_SPRITE(config, m_seta001, 16'000'000, m_palette, gfx_setaroul_sprites); m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback)); // position kludges @@ -8674,8 +8647,6 @@ void setaroul_state::setaroul(machine_config &config) X1_012(config, m_layers[0], m_palette, gfx_setaroul).set_xoffsets(0, 5); PALETTE(config, m_palette, FUNC(setaroul_state::setaroul_palette), 512); - MCFG_VIDEO_START_OVERRIDE(setaroul_state,seta) - /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -8721,8 +8692,6 @@ void seta_state::eightfrc(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_msgundam_layer2); PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2 - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8769,8 +8738,6 @@ void seta_state::extdwnhl(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_zingzip_layer2).set_xoffsets(-2, -2); PALETTE(config, m_palette, FUNC(seta_state::zingzip_palette), 16*32 + 16*32 + 64*32*2, 0x600); // sprites, layer2, layer1 - layer 1 gfx is 6 planes deep - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -8838,8 +8805,6 @@ void seta_state::gundhara(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_jjsquawk_layer2); PALETTE(config, m_palette, FUNC(seta_state::gundhara_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep (seta_state,but have only 4 palettes) - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8914,8 +8879,6 @@ void seta_state::jjsquawk(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_jjsquawk_layer2).set_xoffsets(-1, -1); PALETTE(config, m_palette, FUNC(seta_state::jjsquawk_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8950,8 +8913,6 @@ void seta_state::jjsquawb(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_jjsquawkb_layer2).set_xoffsets(-1, -1); PALETTE(config, m_palette, FUNC(seta_state::jjsquawk_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -8998,8 +8959,6 @@ void seta_state::kamenrid(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_msgundam_layer2).set_xoffsets(-2, -2); PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2 - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -9039,8 +8998,6 @@ void seta_state::orbs(machine_config &config) PALETTE(config, m_palette).set_entries(512); // sprites only - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -9082,8 +9039,6 @@ void seta_state::keroppi(machine_config &config) PALETTE(config, m_palette).set_entries(512); // sprites only - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -9131,8 +9086,6 @@ void seta_state::krzybowl(machine_config &config) PALETTE(config, m_palette).set_entries(512); // sprites only - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -9179,8 +9132,6 @@ void seta_state::madshark(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_jjsquawk_layer2); PALETTE(config, m_palette, FUNC(seta_state::jjsquawk_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -9231,8 +9182,6 @@ void seta_state::magspeed(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_msgundam_layer2).set_xoffsets(0, -2); PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2 - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -9279,8 +9228,6 @@ void seta_state::msgundam(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_msgundam_layer2).set_xoffsets(-2, -2); PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2 - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -9421,8 +9368,6 @@ void kiwame_state::kiwame(machine_config &config) PALETTE(config, m_palette).set_entries(512); // sprites only - MCFG_VIDEO_START_OVERRIDE(kiwame_state,seta) - /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -9468,8 +9413,6 @@ void seta_state::rezon(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_msgundam_layer2).set_xoffsets(-2, -2); PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2 - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -9509,8 +9452,6 @@ void seta_state::thunderl(machine_config &config) PALETTE(config, m_palette).set_entries(512); // sprites only - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -9585,8 +9526,6 @@ void seta_state::wiggie(machine_config &config) PALETTE(config, m_palette).set_entries(512); // sprites only - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -9627,8 +9566,6 @@ void seta_state::wits(machine_config &config) PALETTE(config, m_palette).set_entries(512); // sprites only - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -9666,8 +9603,6 @@ void seta_state::umanclub(machine_config &config) PALETTE(config, m_palette).set_entries(512); - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -9711,8 +9646,6 @@ void seta_state::utoukond(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_msgundam_layer2).set_xoffsets(0, -2); PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2 - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -9773,8 +9706,6 @@ void seta_state::wrofaero(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_msgundam_layer2); PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2 - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -9821,8 +9752,6 @@ void seta_state::zingzip(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_zingzip_layer2).set_xoffsets(-2, -1); PALETTE(config, m_palette, FUNC(seta_state::zingzip_palette), 16*32 + 16*32 + 64*32*2, 0x600); // sprites, layer2, layer1 - layer 1 gfx is 6 planes deep - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -9877,8 +9806,6 @@ void seta_state::pairlove(machine_config &config) PALETTE(config, m_palette).set_entries(2048); // sprites only - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -9929,8 +9856,6 @@ void seta_state::crazyfgt(machine_config &config) X1_012(config, m_layers[1], m_palette, gfx_blandia_layer2).set_xoffsets(0, -2); PALETTE(config, m_palette, FUNC(seta_state::gundhara_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep (seta_state,but have only 4 palettes) - MCFG_VIDEO_START_OVERRIDE(seta_state,seta) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -10010,8 +9935,6 @@ void jockeyc_state::jockeyc(machine_config &config) X1_012(config, m_layers[0], m_palette, gfx_downtown).set_xoffsets(126, -2); PALETTE(config, m_palette, FUNC(seta_state::palette_init_RRRRRGGGGGBBBBB_proms), 512 * 1); - MCFG_VIDEO_START_OVERRIDE(jockeyc_state,seta) - /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); diff --git a/src/mame/drivers/taito_x.cpp b/src/mame/drivers/taito_x.cpp index 3315cfbd08a..bc792cfcd5a 100644 --- a/src/mame/drivers/taito_x.cpp +++ b/src/mame/drivers/taito_x.cpp @@ -317,18 +317,90 @@ Stephh's notes (based on the game M68000 code and some tests) : ***************************************************************************/ #include "emu.h" -#include "includes/taito_x.h" + +#include "includes/seta.h" #include "includes/taitoipt.h" #include "audio/taitosnd.h" +#include "machine/taitocchip.h" #include "cpu/m68000/m68000.h" #include "cpu/z80/z80.h" +#include "machine/timer.h" #include "sound/ymopm.h" #include "sound/ymopn.h" + #include "screen.h" #include "speaker.h" -void taitox_state::superman_counters_w(u8 data) + +namespace { + +class taitox_state : public seta_state +{ +public: + taitox_state(const machine_config &mconfig, device_type type, const char *tag) : + seta_state(mconfig, type, tag), + m_z80bank(*this, "z80bank"), + m_dswa_io(*this, "DSWA"), + m_dswb_io(*this, "DSWB"), + m_in_io(*this, "IN%u", 0U) + { } + + void ballbros(machine_config &config); + void kyustrkr(machine_config &config); + void gigandes(machine_config &config); + void daisenpu(machine_config &config); + +protected: + virtual void machine_start() override; + + u16 dsw_input_r(offs_t offset); + + void taito_x_base_map(address_map &map); + void sound_map(address_map &map); + +private: + u16 input_r(offs_t offset); + void daisenpu_input_w(offs_t offset, u16 data); + void kyustrkr_input_w(offs_t offset, u16 data); + void sound_bankswitch_w(u8 data); + + void ballbros_map(address_map &map); + void daisenpu_map(address_map &map); + void daisenpu_sound_map(address_map &map); + void gigandes_map(address_map &map); + void kyustrkr_map(address_map &map); + + required_memory_bank m_z80bank; + required_ioport m_dswa_io; + required_ioport m_dswb_io; + required_ioport_array<3> m_in_io; +}; + +class taitox_cchip_state : public taitox_state +{ +public: + taitox_cchip_state(const machine_config &mconfig, device_type type, const char *tag) : + taitox_state(mconfig, type, tag), + m_cchip(*this, "cchip"), + m_cchip_irq_clear(*this, "cchip_irq_clear") + { } + + void superman(machine_config &config); + +private: + void counters_w(u8 data); + + INTERRUPT_GEN_MEMBER(interrupt); + TIMER_DEVICE_CALLBACK_MEMBER(cchip_irq_clear_cb); + + void superman_map(address_map &map); + + required_device<taito_cchip_device> m_cchip; + required_device<timer_device> m_cchip_irq_clear; +}; + +void taitox_cchip_state::counters_w(u8 data) { machine().bookkeeping().coin_lockout_w(1, data & 0x08); machine().bookkeeping().coin_lockout_w(0, data & 0x04); @@ -336,7 +408,7 @@ void taitox_state::superman_counters_w(u8 data) machine().bookkeeping().coin_counter_w(0, data & 0x01); } -u16 taitox_state::superman_dsw_input_r(offs_t offset) +u16 taitox_state::dsw_input_r(offs_t offset) { switch (offset) { @@ -354,16 +426,16 @@ u16 taitox_state::superman_dsw_input_r(offs_t offset) } } -u16 taitox_state::daisenpu_input_r(offs_t offset) +u16 taitox_state::input_r(offs_t offset) { switch (offset) { case 0x00: - return m_in_io[0]->read(); /* Player 1 controls + START1 */ + return m_in_io[0]->read(); // Player 1 controls + START1 case 0x01: - return m_in_io[1]->read(); /* Player 2 controls + START2 */ + return m_in_io[1]->read(); // Player 2 controls + START2 case 0x02: - return m_in_io[2]->read(); /* COINn + SERVICE1 + TILT */ + return m_in_io[2]->read(); // COINn + SERVICE1 + TILT default: logerror("taitox unknown input read offset: %04x\n", offset); @@ -375,16 +447,16 @@ void taitox_state::daisenpu_input_w(offs_t offset, u16 data) { switch (offset) { - case 0x04: /* coin counters and lockout */ - machine().bookkeeping().coin_counter_w(0,data & 0x01); - machine().bookkeeping().coin_counter_w(1,data & 0x02); - machine().bookkeeping().coin_lockout_w(0,~data & 0x04); - machine().bookkeeping().coin_lockout_w(1,~data & 0x08); -//logerror("taitox coin control %04x to offset %04x\n",data,offset); + case 0x04: // coin counters and lockout + machine().bookkeeping().coin_counter_w(0, data & 0x01); + machine().bookkeeping().coin_counter_w(1, data & 0x02); + machine().bookkeeping().coin_lockout_w(0, ~data & 0x04); + machine().bookkeeping().coin_lockout_w(1, ~data & 0x08); +//logerror("taitox coin control %04x to offset %04x\n", data, offset); break; default: - logerror("taitox unknown input write %04x to offset %04x\n",data,offset); + logerror("taitox unknown input write %04x to offset %04x\n", data, offset); } } @@ -393,16 +465,16 @@ void taitox_state::kyustrkr_input_w(offs_t offset, u16 data) { switch (offset) { - case 0x04: /* coin counters and lockout */ - machine().bookkeeping().coin_counter_w(0,data & 0x01); - machine().bookkeeping().coin_counter_w(1,data & 0x02); - machine().bookkeeping().coin_lockout_w(0,data & 0x04); - machine().bookkeeping().coin_lockout_w(1,data & 0x08); -//logerror("taitox coin control %04x to offset %04x\n",data,offset); + case 0x04: // coin counters and lockout + machine().bookkeeping().coin_counter_w(0, data & 0x01); + machine().bookkeeping().coin_counter_w(1, data & 0x02); + machine().bookkeeping().coin_lockout_w(0, data & 0x04); + machine().bookkeeping().coin_lockout_w(1, data & 0x08); +//logerror("taitox coin control %04x to offset %04x\n", data, offset); break; default: - logerror("taitox unknown input write %04x to offset %04x\n",data,offset); + logerror("taitox unknown input write %04x to offset %04x\n", data, offset); } } @@ -423,17 +495,17 @@ void taitox_state::taito_x_base_map(address_map &map) map(0xd00000, 0xd005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y map(0xd00600, 0xd00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16)); map(0xe00000, 0xe03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr - map(0xf00000, 0xf03fff).ram(); /* Main RAM */ + map(0xf00000, 0xf03fff).ram(); // Main RAM } -void taitox_state::superman_map(address_map &map) +void taitox_cchip_state::superman_map(address_map &map) { taito_x_base_map(map); map(0x000000, 0x07ffff).rom(); - map(0x300000, 0x300001).nopw(); /* written each frame at $3a9c, mostly 0x10 */ - map(0x400000, 0x400001).nopw(); /* written each frame at $3aa2, mostly 0x10 */ - map(0x500000, 0x500007).r(FUNC(taitox_state::superman_dsw_input_r)); - map(0x600000, 0x600001).nopw(); /* written each frame at $3ab0, mostly 0x10 */ + map(0x300000, 0x300001).nopw(); // written each frame at $3a9c, mostly 0x10 + map(0x400000, 0x400001).nopw(); // written each frame at $3aa2, mostly 0x10 + map(0x500000, 0x500007).r(FUNC(taitox_cchip_state::dsw_input_r)); + map(0x600000, 0x600001).nopw(); // written each frame at $3ab0, mostly 0x10 map(0x800000, 0x800001).nopr(); map(0x800001, 0x800001).w("tc0140syt", FUNC(tc0140syt_device::master_port_w)); map(0x800003, 0x800003).rw("tc0140syt", FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w)); @@ -445,52 +517,52 @@ void taitox_state::daisenpu_map(address_map &map) { taito_x_base_map(map); map(0x000000, 0x03ffff).rom(); -// map(0x400000, 0x400001).nopw(); /* written each frame at $2ac, values change */ - map(0x500000, 0x50000f).r(FUNC(taitox_state::superman_dsw_input_r)); -// map(0x600000, 0x600001).nopw(); /* written each frame at $2a2, values change */ +// map(0x400000, 0x400001).nopw(); // written each frame at $2ac, values change + map(0x500000, 0x50000f).r(FUNC(taitox_state::dsw_input_r)); +// map(0x600000, 0x600001).nopw(); // written each frame at $2a2, values change map(0x800000, 0x800001).nopr(); map(0x800001, 0x800001).w("ciu", FUNC(pc060ha_device::master_port_w)); map(0x800003, 0x800003).rw("ciu", FUNC(pc060ha_device::master_comm_r), FUNC(pc060ha_device::master_comm_w)); - map(0x900000, 0x90000f).rw(FUNC(taitox_state::daisenpu_input_r), FUNC(taitox_state::daisenpu_input_w)); + map(0x900000, 0x90000f).rw(FUNC(taitox_state::input_r), FUNC(taitox_state::daisenpu_input_w)); } void taitox_state::gigandes_map(address_map &map) { taito_x_base_map(map); map(0x000000, 0x07ffff).rom(); - map(0x400000, 0x400001).nopw(); /* 0x1 written each frame at $d42, watchdog? */ - map(0x500000, 0x500007).r(FUNC(taitox_state::superman_dsw_input_r)); - map(0x600000, 0x600001).nopw(); /* 0x1 written each frame at $d3c, watchdog? */ + map(0x400000, 0x400001).nopw(); // 0x1 written each frame at $d42, watchdog? + map(0x500000, 0x500007).r(FUNC(taitox_state::dsw_input_r)); + map(0x600000, 0x600001).nopw(); // 0x1 written each frame at $d3c, watchdog? map(0x800000, 0x800001).nopr(); map(0x800001, 0x800001).w("tc0140syt", FUNC(tc0140syt_device::master_port_w)); map(0x800003, 0x800003).rw("tc0140syt", FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w)); - map(0x900000, 0x90000f).rw(FUNC(taitox_state::daisenpu_input_r), FUNC(taitox_state::daisenpu_input_w)); + map(0x900000, 0x90000f).rw(FUNC(taitox_state::input_r), FUNC(taitox_state::daisenpu_input_w)); } void taitox_state::ballbros_map(address_map &map) { taito_x_base_map(map); map(0x000000, 0x03ffff).rom(); - map(0x400000, 0x400001).nopw(); /* 0x1 written each frame at $c56, watchdog? */ - map(0x500000, 0x50000f).r(FUNC(taitox_state::superman_dsw_input_r)); - map(0x600000, 0x600001).nopw(); /* 0x1 written each frame at $c4e, watchdog? */ + map(0x400000, 0x400001).nopw(); // 0x1 written each frame at $c56, watchdog? + map(0x500000, 0x50000f).r(FUNC(taitox_state::dsw_input_r)); + map(0x600000, 0x600001).nopw(); // 0x1 written each frame at $c4e, watchdog? map(0x800000, 0x800001).nopr(); map(0x800001, 0x800001).w("tc0140syt", FUNC(tc0140syt_device::master_port_w)); map(0x800003, 0x800003).rw("tc0140syt", FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w)); - map(0x900000, 0x90000f).rw(FUNC(taitox_state::daisenpu_input_r), FUNC(taitox_state::daisenpu_input_w)); + map(0x900000, 0x90000f).rw(FUNC(taitox_state::input_r), FUNC(taitox_state::daisenpu_input_w)); } void taitox_state::kyustrkr_map(address_map &map) { taito_x_base_map(map); map(0x000000, 0x03ffff).rom(); - map(0x400000, 0x400001).nopw(); /* 0x1 written each frame at $c56, watchdog? */ - map(0x500000, 0x50000f).r(FUNC(taitox_state::superman_dsw_input_r)); - map(0x600000, 0x600001).nopw(); /* 0x1 written each frame at $c4e, watchdog? */ + map(0x400000, 0x400001).nopw(); // 0x1 written each frame at $c56, watchdog? + map(0x500000, 0x50000f).r(FUNC(taitox_state::dsw_input_r)); + map(0x600000, 0x600001).nopw(); // 0x1 written each frame at $c4e, watchdog? map(0x800000, 0x800001).nopr(); map(0x800001, 0x800001).w("tc0140syt", FUNC(tc0140syt_device::master_port_w)); map(0x800003, 0x800003).rw("tc0140syt", FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w)); - map(0x900000, 0x90000f).rw(FUNC(taitox_state::daisenpu_input_r), FUNC(taitox_state::kyustrkr_input_w)); + map(0x900000, 0x90000f).rw(FUNC(taitox_state::input_r), FUNC(taitox_state::kyustrkr_input_w)); } @@ -504,10 +576,10 @@ void taitox_state::sound_map(address_map &map) map(0xe000, 0xe003).rw("ymsnd", FUNC(ym2610_device::read), FUNC(ym2610_device::write)); map(0xe200, 0xe200).nopr().w("tc0140syt", FUNC(tc0140syt_device::slave_port_w)); map(0xe201, 0xe201).rw("tc0140syt", FUNC(tc0140syt_device::slave_comm_r), FUNC(tc0140syt_device::slave_comm_w)); - map(0xe400, 0xe403).nopw(); /* pan */ + map(0xe400, 0xe403).nopw(); // pan map(0xea00, 0xea00).nopr(); - map(0xee00, 0xee00).nopw(); /* ? */ - map(0xf000, 0xf000).nopw(); /* ? */ + map(0xee00, 0xee00).nopw(); // ? + map(0xf000, 0xf000).nopw(); // ? map(0xf200, 0xf200).w(FUNC(taitox_state::sound_bankswitch_w)); } @@ -519,9 +591,9 @@ void taitox_state::daisenpu_sound_map(address_map &map) map(0xe000, 0xe001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); map(0xe200, 0xe200).nopr().w("ciu", FUNC(pc060ha_device::slave_port_w)); map(0xe201, 0xe201).rw("ciu", FUNC(pc060ha_device::slave_comm_r), FUNC(pc060ha_device::slave_comm_w)); - map(0xe400, 0xe403).nopw(); /* pan */ + map(0xe400, 0xe403).nopw(); // pan map(0xea00, 0xea00).nopr(); - map(0xee00, 0xee00).nopw(); /* ? */ + map(0xee00, 0xee00).nopw(); // ? map(0xf000, 0xf000).nopw(); map(0xf200, 0xf200).w(FUNC(taitox_state::sound_bankswitch_w)); } @@ -529,7 +601,7 @@ void taitox_state::daisenpu_sound_map(address_map &map) /**************************************************************************/ -static INPUT_PORTS_START( taitox_generic ) /* The Dip Switches will be modified as needed for each game */ +static INPUT_PORTS_START( taitox_generic ) // The Dip Switches will be modified as needed for each game PORT_START("DSWA") TAITO_MACHINE_NO_COCKTAIL_LOC(SW1) @@ -561,7 +633,7 @@ static INPUT_PORTS_START( taitox_generic ) /* The Dip Switches will be modified PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END -static INPUT_PORTS_START( taitox_east_tech ) /* The Dip Switches will be modified as needed for each game */ +static INPUT_PORTS_START( taitox_east_tech ) // The Dip Switches will be modified as needed for each game PORT_START("DSWA") PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") @@ -625,8 +697,8 @@ static INPUT_PORTS_START( taitox_east_tech ) /* The Dip Switches will be modifie INPUT_PORTS_END static INPUT_PORTS_START( superman ) - /* DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf01c4a ($1c4a,A5) */ - /* DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf01c4c ($1c4c,A5) */ + // DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf01c4a ($1c4a,A5) + // DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf01c4c ($1c4c,A5) PORT_INCLUDE( taitox_generic ) PORT_MODIFY("DSWB") @@ -662,8 +734,8 @@ static INPUT_PORTS_START( supermanj ) INPUT_PORTS_END static INPUT_PORTS_START( twinhawk ) - /* DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf001b8 */ - /* DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf001ba */ + // DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf001b8 + // DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf001ba PORT_INCLUDE( taitox_generic ) PORT_MODIFY("DSWB") @@ -694,8 +766,8 @@ static INPUT_PORTS_START( twinhawku ) INPUT_PORTS_END static INPUT_PORTS_START( daisenpu ) - /* DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf001a4 */ - /* DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf001a6 */ + // DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf001a4 + // DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf001a6 PORT_INCLUDE( twinhawk ) PORT_MODIFY("DSWA") @@ -711,14 +783,14 @@ static INPUT_PORTS_START( daisenpu ) INPUT_PORTS_END static INPUT_PORTS_START( gigandes ) - /* DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf00a3c */ - /* DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf00a3e */ + // DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf00a3c + // DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf00a3e PORT_INCLUDE( taitox_east_tech ) INPUT_PORTS_END static INPUT_PORTS_START( kyustrkr ) - /* DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf028fe */ - /* DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf02900 */ + // DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf028fe + // DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf02900 PORT_INCLUDE( taitox_east_tech ) PORT_MODIFY("DSWB") @@ -734,15 +806,15 @@ static INPUT_PORTS_START( kyustrkr ) INPUT_PORTS_END static INPUT_PORTS_START( ballbros ) - /* DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf028fe */ - /* DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf02900 */ + // DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf028fe + // DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf02900 PORT_INCLUDE( taitox_east_tech ) PORT_MODIFY("DSWB") - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:2") /* Opposite of the other East Technology games */ + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:2") // Opposite of the other East Technology games PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:3") /* Opposite of the other East Technology games */ + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:3") // Opposite of the other East Technology games PORT_DIPSETTING( 0x00, DEF_STR( No ) ) PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW2:4" ) @@ -751,8 +823,8 @@ static INPUT_PORTS_START( ballbros ) PORT_DIPSETTING( 0x00, DEF_STR( English ) ) PORT_DIPSETTING( 0x20, DEF_STR( Japanese ) ) PORT_DIPNAME( 0x40, 0x00, "Color Change" ) PORT_DIPLOCATION("SW2:7") - PORT_DIPSETTING( 0x00, "Less" ) /* each pattern */ - PORT_DIPSETTING( 0x40, "More" ) /* every 3 times */ + PORT_DIPSETTING( 0x00, "Less" ) // each pattern + PORT_DIPSETTING( 0x40, "More" ) // every 3 times PORT_MODIFY("IN0") TAITO_JOY_UDLR_1_BUTTON_START( 1 ) @@ -766,37 +838,37 @@ INPUT_PORTS_END static const gfx_layout tilelayout = { - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,1), /* 16384 of them */ - 4, /* 4 bits per pixel */ + 16,16, // 16*16 sprites + RGN_FRAC(1,1), // 16384 of them + 4, // 4 bits per pixel { STEP4(0,8) }, { STEP8(0,1), STEP8(8*4*8,1) }, { STEP8(0,8*4), STEP8(8*4*8*2,8*4) }, - 16*16*4 /* every sprite takes 64 consecutive bytes */ + 16*16*4 // every sprite takes 64 consecutive bytes }; static GFXDECODE_START( gfx_taito_x ) - GFXDECODE_ENTRY( "gfx1", 0x000000, tilelayout, 0, 128 ) /* sprites & playfield */ + GFXDECODE_ENTRY( "gfx1", 0x000000, tilelayout, 0, 128 ) // sprites & playfield GFXDECODE_END /**************************************************************************/ -MACHINE_START_MEMBER(taitox_state,taitox) +void taitox_state::machine_start() { int banks = memregion("audiocpu")->bytes() / 0x4000; m_z80bank->configure_entries(0, banks, memregion("audiocpu")->base(), 0x4000); } -INTERRUPT_GEN_MEMBER(taitox_state::interrupt) +INTERRUPT_GEN_MEMBER(taitox_cchip_state::interrupt) { m_maincpu->set_input_line(6, HOLD_LINE); m_cchip->ext_interrupt(ASSERT_LINE); m_cchip_irq_clear->adjust(attotime::zero); } -TIMER_DEVICE_CALLBACK_MEMBER(taitox_state::cchip_irq_clear_cb) +TIMER_DEVICE_CALLBACK_MEMBER(taitox_cchip_state::cchip_irq_clear_cb) { m_cchip->ext_interrupt(CLEAR_LINE); } @@ -804,51 +876,47 @@ TIMER_DEVICE_CALLBACK_MEMBER(taitox_state::cchip_irq_clear_cb) /**************************************************************************/ -void taitox_state::superman(machine_config &config) +void taitox_cchip_state::superman(machine_config &config) { - /* basic machine hardware */ - M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */ - m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::superman_map); - m_maincpu->set_vblank_int("screen", FUNC(taitox_state::interrupt)); + // basic machine hardware + M68000(config, m_maincpu, XTAL(16'000'000) / 2); // verified on PCB + m_maincpu->set_addrmap(AS_PROGRAM, &taitox_cchip_state::superman_map); + m_maincpu->set_vblank_int("screen", FUNC(taitox_cchip_state::interrupt)); - Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */ - m_audiocpu->set_addrmap(AS_PROGRAM, &taitox_state::sound_map); + Z80(config, m_audiocpu, XTAL(16'000'000) / 4); // verified on PCB + m_audiocpu->set_addrmap(AS_PROGRAM, &taitox_cchip_state::sound_map); - TAITO_CCHIP(config, m_cchip, 16_MHz_XTAL/2); // 8MHz measured on pin 20 + TAITO_CCHIP(config, m_cchip, 16_MHz_XTAL / 2); // 8MHz measured on pin 20 m_cchip->in_pa_callback().set_ioport("IN0"); m_cchip->in_pb_callback().set_ioport("IN1"); m_cchip->in_ad_callback().set_ioport("IN2"); - m_cchip->out_pc_callback().set(FUNC(taitox_state::superman_counters_w)); - - TIMER(config, "cchip_irq_clear").configure_generic(FUNC(taitox_state::cchip_irq_clear_cb)); + m_cchip->out_pc_callback().set(FUNC(taitox_cchip_state::counters_w)); - config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ + TIMER(config, m_cchip_irq_clear).configure_generic(FUNC(taitox_cchip_state::cchip_irq_clear_cb)); - MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox) + config.set_maximum_quantum(attotime::from_hz(600)); // 10 CPU slices per frame - enough for the sound CPU to read all commands SETA001_SPRITE(config, m_seta001, 16'000'000, m_palette, gfx_taito_x); // position kludges m_seta001->set_fg_yoffsets(-0x12, 0x0e); m_seta001->set_bg_yoffsets(0x1, -0x1); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(57.43); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(52*8, 32*8); screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1); - screen.set_screen_update(FUNC(taitox_state::screen_update_seta_no_layers)); + screen.set_screen_update(FUNC(taitox_cchip_state::screen_update_seta_no_layers)); screen.set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); - MCFG_VIDEO_START_OVERRIDE(taitox_state,seta) - - /* sound hardware */ + // sound hardware SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(16'000'000)/2)); /* verified on pcb */ + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(16'000'000) / 2)); // verified on PCB ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ymsnd.add_route(0, "lspeaker", 0.25); ymsnd.add_route(0, "rspeaker", 0.25); @@ -862,24 +930,22 @@ void taitox_state::superman(machine_config &config) void taitox_state::daisenpu(machine_config &config) { - /* basic machine hardware */ - M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */ + // basic machine hardware + M68000(config, m_maincpu, XTAL(16'000'000) / 2); // verified on PCB m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::daisenpu_map); m_maincpu->set_vblank_int("screen", FUNC(taitox_state::irq2_line_hold)); - Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */ + Z80(config, m_audiocpu, XTAL(16'000'000) / 4); // verified on PCB m_audiocpu->set_addrmap(AS_PROGRAM, &taitox_state::daisenpu_sound_map); - config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ - - MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox) + config.set_maximum_quantum(attotime::from_hz(600)); // 10 CPU slices per frame - enough for the sound CPU to read all commands SETA001_SPRITE(config, m_seta001, 16'000'000, m_palette, gfx_taito_x); // position kludges m_seta001->set_fg_yoffsets(-0x12, 0x0e); m_seta001->set_bg_yoffsets(0x1, -0x1); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); @@ -890,13 +956,11 @@ void taitox_state::daisenpu(machine_config &config) PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); - MCFG_VIDEO_START_OVERRIDE(taitox_state,seta) - - /* sound hardware */ + // sound hardware SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - ym2151_device &ymsnd(YM2151(config, "ymsnd", XTAL(16'000'000)/4)); /* verified on pcb */ + ym2151_device &ymsnd(YM2151(config, "ymsnd", XTAL(16'000'000) / 4)); // verified on PCB ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ymsnd.add_route(0, "lspeaker", 0.45); ymsnd.add_route(1, "rspeaker", 0.45); @@ -908,23 +972,21 @@ void taitox_state::daisenpu(machine_config &config) void taitox_state::gigandes(machine_config &config) { - /* basic machine hardware */ - M68000(config, m_maincpu, 8000000); /* 8 MHz? */ + // basic machine hardware + M68000(config, m_maincpu, 8000000); // 8 MHz? m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::gigandes_map); m_maincpu->set_vblank_int("screen", FUNC(taitox_state::irq2_line_hold)); - Z80(config, m_audiocpu, 4000000); /* 4 MHz ??? */ + Z80(config, m_audiocpu, 4000000); // 4 MHz ??? m_audiocpu->set_addrmap(AS_PROGRAM, &taitox_state::sound_map); - config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ - - MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox) + config.set_maximum_quantum(attotime::from_hz(600)); // 10 CPU slices per frame - enough for the sound CPU to read all commands SETA001_SPRITE(config, m_seta001, 16000000, m_palette, gfx_taito_x); m_seta001->set_fg_yoffsets(-0xa, 0xe); m_seta001->set_bg_yoffsets(0x1, -0x1); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); @@ -935,9 +997,7 @@ void taitox_state::gigandes(machine_config &config) PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); - MCFG_VIDEO_START_OVERRIDE(taitox_state,seta) - - /* sound hardware */ + // sound hardware SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -955,24 +1015,22 @@ void taitox_state::gigandes(machine_config &config) void taitox_state::ballbros(machine_config &config) { - /* basic machine hardware */ - M68000(config, m_maincpu, 8000000); /* 8 MHz? */ + // basic machine hardware + M68000(config, m_maincpu, 8000000); // 8 MHz? m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::ballbros_map); m_maincpu->set_vblank_int("screen", FUNC(taitox_state::irq2_line_hold)); - Z80(config, m_audiocpu, 4000000); /* 4 MHz ??? */ + Z80(config, m_audiocpu, 4000000); // 4 MHz ??? m_audiocpu->set_addrmap(AS_PROGRAM, &taitox_state::sound_map); - config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ - - MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox) + config.set_maximum_quantum(attotime::from_hz(600)); // 10 CPU slices per frame - enough for the sound CPU to read all commands SETA001_SPRITE(config, m_seta001, 16000000, m_palette, gfx_taito_x); // position kludges m_seta001->set_fg_yoffsets(-0x0a, 0x0e); m_seta001->set_bg_yoffsets(0x1, -0x1); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); @@ -983,9 +1041,7 @@ void taitox_state::ballbros(machine_config &config) PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); - MCFG_VIDEO_START_OVERRIDE(taitox_state, seta) - - /* sound hardware */ + // sound hardware SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -1004,7 +1060,7 @@ void taitox_state::ballbros(machine_config &config) void taitox_state::kyustrkr(machine_config &config) { ballbros(config); - /* basic machine hardware */ + // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::kyustrkr_map); } @@ -1056,74 +1112,75 @@ Notes: YM2203 running at 3.000Mz (12/4) VSync 60Hz -NOTE: There is an alternate version that uses a daughter card to replace the 8Mbit mask roms - with two 4Mbit mask roms. These roms are B61-02 through B61-05, high and low for each. +NOTE: There is an alternate version that uses a daughter card (K9100202A J9100154A) to replace + the 4Mbit mask ROMs with two 2Mbit mask ROMs. These ROMs are B61-02 through B61-05, high + and low for each. */ ROM_START( superman ) - ROM_REGION( 0x80000, "maincpu", 0 ) /* 512k for 68000 code */ + ROM_REGION( 0x80000, "maincpu", 0 ) // 512k for 68000 code ROM_LOAD16_BYTE( "b61_09.a10", 0x00000, 0x20000, CRC(640f1d58) SHA1(e768d32eae1dba39c23189996fbd5454c8627809) ) ROM_LOAD16_BYTE( "b61_07.a5", 0x00001, 0x20000, CRC(fddb9953) SHA1(8b562712810a5a72f4647f1ba1314a1be2e249e7) ) ROM_LOAD16_BYTE( "b61_08.a8", 0x40000, 0x20000, CRC(79fc028e) SHA1(bf42b3f84dcad8fd9085c702a78dc895cc12d670) ) ROM_LOAD16_BYTE( "b61_13.a3", 0x40001, 0x20000, CRC(9f446a44) SHA1(16f7cd6438e47fdaac93a368df5c093f6ff0f1f0) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 code */ + ROM_REGION( 0x10000, "audiocpu", 0 ) // 64k for Z80 code ROM_LOAD( "b61_10.d18", 0x00000, 0x10000, CRC(6efe79e8) SHA1(7a76efaaeab71473f4b0b23a89141f203488ce1d) ) ROM_REGION( 0x200000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "b61-14.f1", 0x000002, 0x80000, CRC(89368c3e) SHA1(8d227439ab321fd5d432d860544daea0e78ce588) ) /* Plane 0, 1 */ + ROM_LOAD32_WORD_SWAP( "b61-14.f1", 0x000002, 0x80000, CRC(89368c3e) SHA1(8d227439ab321fd5d432d860544daea0e78ce588) ) // Plane 0, 1 ROM_LOAD32_WORD_SWAP( "b61-15.h1", 0x100002, 0x80000, CRC(910cc4f9) SHA1(9ecfa84123a8f9d048f0a689647e92f25af73899) ) - ROM_LOAD32_WORD_SWAP( "b61-16.j1", 0x000000, 0x80000, CRC(3622ed2f) SHA1(03f4383f6ff8b5f1e26bc6bbef2fb1855d3bb93f) ) /* Plane 2, 3 */ + ROM_LOAD32_WORD_SWAP( "b61-16.j1", 0x000000, 0x80000, CRC(3622ed2f) SHA1(03f4383f6ff8b5f1e26bc6bbef2fb1855d3bb93f) ) // Plane 2, 3 ROM_LOAD32_WORD_SWAP( "b61-17.k1", 0x100000, 0x80000, CRC(c34f27e0) SHA1(07ee02c18ce29f35e8ae87d0c1ed80b726c246a6) ) - ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) /* ADPCM samples */ + ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) // ADPCM samples ROM_LOAD( "b61-01.e18", 0x00000, 0x80000, CRC(3cf99786) SHA1(f6febf9bda87ca04f0a5890d0e8001c26dfa6c81) ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) ROM_LOAD( "b61_11.m11", 0x0000, 0x2000, CRC(3bc5d44b) SHA1(6ba3ba35fe313af77d732412572d91a202b50542) ) ROM_END -ROM_START( supermanu ) /* No US copyright notice or FBI logo - Just a coinage difference, see notes above */ - ROM_REGION( 0x80000, "maincpu", 0 ) /* 512k for 68000 code */ +ROM_START( supermanu ) // No US copyright notice or FBI logo - Just a coinage difference, see notes above + ROM_REGION( 0x80000, "maincpu", 0 ) // 512k for 68000 code ROM_LOAD16_BYTE( "b61_09.a10", 0x00000, 0x20000, CRC(640f1d58) SHA1(e768d32eae1dba39c23189996fbd5454c8627809) ) ROM_LOAD16_BYTE( "b61_07.a5", 0x00001, 0x20000, CRC(fddb9953) SHA1(8b562712810a5a72f4647f1ba1314a1be2e249e7) ) ROM_LOAD16_BYTE( "b61_08.a8", 0x40000, 0x20000, CRC(79fc028e) SHA1(bf42b3f84dcad8fd9085c702a78dc895cc12d670) ) ROM_LOAD16_BYTE( "b61_12.a3", 0x40001, 0x20000, CRC(064d3bfe) SHA1(75abf924a6e44203169d2fa15852caa0bf57db30) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 code */ + ROM_REGION( 0x10000, "audiocpu", 0 ) // 64k for Z80 code ROM_LOAD( "b61_10.d18", 0x00000, 0x10000, CRC(6efe79e8) SHA1(7a76efaaeab71473f4b0b23a89141f203488ce1d) ) ROM_REGION( 0x200000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "b61-14.f1", 0x000002, 0x80000, CRC(89368c3e) SHA1(8d227439ab321fd5d432d860544daea0e78ce588) ) /* Plane 0, 1 */ + ROM_LOAD32_WORD_SWAP( "b61-14.f1", 0x000002, 0x80000, CRC(89368c3e) SHA1(8d227439ab321fd5d432d860544daea0e78ce588) ) // Plane 0, 1 ROM_LOAD32_WORD_SWAP( "b61-15.h1", 0x100002, 0x80000, CRC(910cc4f9) SHA1(9ecfa84123a8f9d048f0a689647e92f25af73899) ) - ROM_LOAD32_WORD_SWAP( "b61-16.j1", 0x000000, 0x80000, CRC(3622ed2f) SHA1(03f4383f6ff8b5f1e26bc6bbef2fb1855d3bb93f) ) /* Plane 2, 3 */ + ROM_LOAD32_WORD_SWAP( "b61-16.j1", 0x000000, 0x80000, CRC(3622ed2f) SHA1(03f4383f6ff8b5f1e26bc6bbef2fb1855d3bb93f) ) // Plane 2, 3 ROM_LOAD32_WORD_SWAP( "b61-17.k1", 0x100000, 0x80000, CRC(c34f27e0) SHA1(07ee02c18ce29f35e8ae87d0c1ed80b726c246a6) ) - ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) /* ADPCM samples */ + ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) // ADPCM samples ROM_LOAD( "b61-01.e18", 0x00000, 0x80000, CRC(3cf99786) SHA1(f6febf9bda87ca04f0a5890d0e8001c26dfa6c81) ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) ROM_LOAD( "b61_11.m11", 0x0000, 0x2000, CRC(3bc5d44b) SHA1(6ba3ba35fe313af77d732412572d91a202b50542) ) ROM_END -ROM_START( supermanj ) /* Shows a Japan copyright notice */ - ROM_REGION( 0x80000, "maincpu", 0 ) /* 512k for 68000 code */ +ROM_START( supermanj ) // Shows a Japan copyright notice + ROM_REGION( 0x80000, "maincpu", 0 ) // 512k for 68000 code ROM_LOAD16_BYTE( "b61_09.a10", 0x00000, 0x20000, CRC(640f1d58) SHA1(e768d32eae1dba39c23189996fbd5454c8627809) ) ROM_LOAD16_BYTE( "b61_07.a5", 0x00001, 0x20000, CRC(fddb9953) SHA1(8b562712810a5a72f4647f1ba1314a1be2e249e7) ) ROM_LOAD16_BYTE( "b61_08.a8", 0x40000, 0x20000, CRC(79fc028e) SHA1(bf42b3f84dcad8fd9085c702a78dc895cc12d670) ) ROM_LOAD16_BYTE( "b61_06.a3", 0x40001, 0x20000, CRC(714a0b68) SHA1(b0b42c55d2404c7c193eb8cab3bd92e321947845) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 code */ + ROM_REGION( 0x10000, "audiocpu", 0 ) // 64k for Z80 code ROM_LOAD( "b61_10.d18", 0x00000, 0x10000, CRC(6efe79e8) SHA1(7a76efaaeab71473f4b0b23a89141f203488ce1d) ) ROM_REGION( 0x200000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "b61-14.f1", 0x000002, 0x80000, CRC(89368c3e) SHA1(8d227439ab321fd5d432d860544daea0e78ce588) ) /* Plane 0, 1 */ + ROM_LOAD32_WORD_SWAP( "b61-14.f1", 0x000002, 0x80000, CRC(89368c3e) SHA1(8d227439ab321fd5d432d860544daea0e78ce588) ) // Plane 0, 1 ROM_LOAD32_WORD_SWAP( "b61-15.h1", 0x100002, 0x80000, CRC(910cc4f9) SHA1(9ecfa84123a8f9d048f0a689647e92f25af73899) ) - ROM_LOAD32_WORD_SWAP( "b61-16.j1", 0x000000, 0x80000, CRC(3622ed2f) SHA1(03f4383f6ff8b5f1e26bc6bbef2fb1855d3bb93f) ) /* Plane 2, 3 */ + ROM_LOAD32_WORD_SWAP( "b61-16.j1", 0x000000, 0x80000, CRC(3622ed2f) SHA1(03f4383f6ff8b5f1e26bc6bbef2fb1855d3bb93f) ) // Plane 2, 3 ROM_LOAD32_WORD_SWAP( "b61-17.k1", 0x100000, 0x80000, CRC(c34f27e0) SHA1(07ee02c18ce29f35e8ae87d0c1ed80b726c246a6) ) - ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) /* ADPCM samples */ + ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) // ADPCM samples ROM_LOAD( "b61-01.e18", 0x00000, 0x80000, CRC(3cf99786) SHA1(f6febf9bda87ca04f0a5890d0e8001c26dfa6c81) ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) @@ -1141,102 +1198,102 @@ P0-051A */ ROM_START( twinhawk ) - ROM_REGION( 0x40000, "maincpu", 0 ) /* 256k for 68000 code */ + ROM_REGION( 0x40000, "maincpu", 0 ) // 256k for 68000 code ROM_LOAD16_BYTE( "b87-11.u7", 0x00000, 0x20000, CRC(fc84a399) SHA1(6e5552b7ee433bee74f8936a8e583b5f81b5f2b2) ) ROM_LOAD16_BYTE( "b87-10.u5", 0x00001, 0x20000, CRC(17181706) SHA1(b7cab502b68a8f02918412538f23682120cbe1d3) ) - ROM_REGION( 0x8000, "audiocpu", 0 ) /* 32k for Z80 code */ + ROM_REGION( 0x8000, "audiocpu", 0 ) // 32k for Z80 code ROM_LOAD( "b87-07.13e", 0x00000, 0x8000, CRC(e2e0efa0) SHA1(4f1435ba738895996f26a64c2237e8349337df4a) ) ROM_REGION( 0x200000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "b87-02.3h", 0x000002, 0x80000, CRC(89ad43a0) SHA1(6ff6ee085c1c06a05f4f8743d979d3552b7475a0) ) /* Plane 0, 1 */ + ROM_LOAD32_WORD_SWAP( "b87-02.3h", 0x000002, 0x80000, CRC(89ad43a0) SHA1(6ff6ee085c1c06a05f4f8743d979d3552b7475a0) ) // Plane 0, 1 ROM_LOAD32_WORD_SWAP( "b87-01.3f", 0x100002, 0x80000, CRC(81e82ae1) SHA1(d4dbdbf9ae0af69bbeccafb3cc2f67dadda72432) ) - ROM_LOAD32_WORD_SWAP( "b87-04.3k", 0x000000, 0x80000, CRC(958434b6) SHA1(cf5912c4468cb2079ff180203045a436175c037c) ) /* Plane 2, 3 */ + ROM_LOAD32_WORD_SWAP( "b87-04.3k", 0x000000, 0x80000, CRC(958434b6) SHA1(cf5912c4468cb2079ff180203045a436175c037c) ) // Plane 2, 3 ROM_LOAD32_WORD_SWAP( "b87-03.3j", 0x100000, 0x80000, CRC(ce155ae0) SHA1(7293125fc23f2411c4edd427a2576c145b3f2dd4) ) ROM_END ROM_START( twinhawku ) - ROM_REGION( 0x40000, "maincpu", 0 ) /* 256k for 68000 code */ + ROM_REGION( 0x40000, "maincpu", 0 ) // 256k for 68000 code ROM_LOAD16_BYTE( "b87-09.u7", 0x00000, 0x20000, CRC(7e6267c7) SHA1(a623c1b740008675f36e8b63bbc17a573917db30) ) ROM_LOAD16_BYTE( "b87-08.u5", 0x00001, 0x20000, CRC(31d9916f) SHA1(8ae491a51a4095717c6f65fe81a83902feccd54b) ) - ROM_REGION( 0x8000, "audiocpu", 0 ) /* 32k for Z80 code */ + ROM_REGION( 0x8000, "audiocpu", 0 ) // 32k for Z80 code ROM_LOAD( "b87-07.13e", 0x00000, 0x8000, CRC(e2e0efa0) SHA1(4f1435ba738895996f26a64c2237e8349337df4a) ) ROM_REGION( 0x200000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "b87-02.3h", 0x000002, 0x80000, CRC(89ad43a0) SHA1(6ff6ee085c1c06a05f4f8743d979d3552b7475a0) ) /* Plane 0, 1 */ + ROM_LOAD32_WORD_SWAP( "b87-02.3h", 0x000002, 0x80000, CRC(89ad43a0) SHA1(6ff6ee085c1c06a05f4f8743d979d3552b7475a0) ) // Plane 0, 1 ROM_LOAD32_WORD_SWAP( "b87-01.3f", 0x100002, 0x80000, CRC(81e82ae1) SHA1(d4dbdbf9ae0af69bbeccafb3cc2f67dadda72432) ) - ROM_LOAD32_WORD_SWAP( "b87-04.3k", 0x000000, 0x80000, CRC(958434b6) SHA1(cf5912c4468cb2079ff180203045a436175c037c) ) /* Plane 2, 3 */ + ROM_LOAD32_WORD_SWAP( "b87-04.3k", 0x000000, 0x80000, CRC(958434b6) SHA1(cf5912c4468cb2079ff180203045a436175c037c) ) // Plane 2, 3 ROM_LOAD32_WORD_SWAP( "b87-03.3j", 0x100000, 0x80000, CRC(ce155ae0) SHA1(7293125fc23f2411c4edd427a2576c145b3f2dd4) ) ROM_END ROM_START( daisenpu ) - ROM_REGION( 0x40000, "maincpu", 0 ) /* 256k for 68000 code */ + ROM_REGION( 0x40000, "maincpu", 0 ) // 256k for 68000 code ROM_LOAD16_BYTE( "b87-06.u7", 0x00000, 0x20000, CRC(cf236100) SHA1(7944a20950188f64c0a09edd1a4efe0270264b27) ) ROM_LOAD16_BYTE( "b87-05.u5", 0x00001, 0x20000, CRC(7f15edc7) SHA1(3deba512f3c97f354ed4155f62058da160047bc5) ) - ROM_REGION( 0x8000, "audiocpu", 0 ) /* 32k for Z80 code */ + ROM_REGION( 0x8000, "audiocpu", 0 ) // 32k for Z80 code ROM_LOAD( "b87-07.13e", 0x00000, 0x8000, CRC(e2e0efa0) SHA1(4f1435ba738895996f26a64c2237e8349337df4a) ) ROM_REGION( 0x200000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "b87-02.3h", 0x000002, 0x80000, CRC(89ad43a0) SHA1(6ff6ee085c1c06a05f4f8743d979d3552b7475a0) ) /* Plane 0, 1 */ + ROM_LOAD32_WORD_SWAP( "b87-02.3h", 0x000002, 0x80000, CRC(89ad43a0) SHA1(6ff6ee085c1c06a05f4f8743d979d3552b7475a0) ) // Plane 0, 1 ROM_LOAD32_WORD_SWAP( "b87-01.3f", 0x100002, 0x80000, CRC(81e82ae1) SHA1(d4dbdbf9ae0af69bbeccafb3cc2f67dadda72432) ) - ROM_LOAD32_WORD_SWAP( "b87-04.3k", 0x000000, 0x80000, CRC(958434b6) SHA1(cf5912c4468cb2079ff180203045a436175c037c) ) /* Plane 2, 3 */ + ROM_LOAD32_WORD_SWAP( "b87-04.3k", 0x000000, 0x80000, CRC(958434b6) SHA1(cf5912c4468cb2079ff180203045a436175c037c) ) // Plane 2, 3 ROM_LOAD32_WORD_SWAP( "b87-03.3j", 0x100000, 0x80000, CRC(ce155ae0) SHA1(7293125fc23f2411c4edd427a2576c145b3f2dd4) ) ROM_END ROM_START( gigandes ) - ROM_REGION( 0x80000, "maincpu", 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "east_1.10a", 0x00000, 0x20000, CRC(ae74e4e5) SHA1(1cac0a0e591b63142d8d249c67f803256fb28c2a) ) /* 'fixed' test mode, see notes above */ - ROM_LOAD16_BYTE( "east_3.5a", 0x00001, 0x20000, CRC(8bcf2116) SHA1(9255d7e0ab568ad7a894421d3260fa80b8a0a5d0) ) /* 'fixed' test mode, see notes above */ + ROM_REGION( 0x80000, "maincpu", 0 ) // 512k for 68000 code + ROM_LOAD16_BYTE( "east_1.10a", 0x00000, 0x20000, CRC(ae74e4e5) SHA1(1cac0a0e591b63142d8d249c67f803256fb28c2a) ) // 'fixed' test mode, see notes above + ROM_LOAD16_BYTE( "east_3.5a", 0x00001, 0x20000, CRC(8bcf2116) SHA1(9255d7e0ab568ad7a894421d3260fa80b8a0a5d0) ) // 'fixed' test mode, see notes above ROM_LOAD16_BYTE( "east_2.8a", 0x40000, 0x20000, CRC(dd94b4d0) SHA1(2efff9fd51b28fd1fb46d16b359f0991af91054e) ) ROM_LOAD16_BYTE( "east_4.3a", 0x40001, 0x20000, CRC(a647310a) SHA1(49db488a36f6c74729825bdf0214bcd30773eaf4) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 code */ + ROM_REGION( 0x10000, "audiocpu", 0 ) // 64k for Z80 code ROM_LOAD( "east_5.17d", 0x00000, 0x10000, CRC(b24ab5f4) SHA1(e4730df984e9686c538df5fc626b795bda1db939) ) ROM_REGION( 0x200000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "east_8.3f", 0x000002, 0x80000, CRC(75eece28) SHA1(7ce66cd8bca7dd214367beae067727c8735c0f7e) ) /* Plane 0, 1 */ + ROM_LOAD32_WORD_SWAP( "east_8.3f", 0x000002, 0x80000, CRC(75eece28) SHA1(7ce66cd8bca7dd214367beae067727c8735c0f7e) ) // Plane 0, 1 ROM_LOAD32_WORD_SWAP( "east_7.3h", 0x100002, 0x80000, CRC(b179a76a) SHA1(cff2caf1eb0dda8a1b8283b9950b908b102f61de) ) - ROM_LOAD32_WORD_SWAP( "east_9.3j", 0x000000, 0x80000, CRC(5c5e6898) SHA1(f348ac752a571902c55f36e21aa3fb9ef97528e3) ) /* Plane 2, 3 */ + ROM_LOAD32_WORD_SWAP( "east_9.3j", 0x000000, 0x80000, CRC(5c5e6898) SHA1(f348ac752a571902c55f36e21aa3fb9ef97528e3) ) // Plane 2, 3 ROM_LOAD32_WORD_SWAP( "east_6.3k", 0x100000, 0x80000, CRC(52db30e9) SHA1(0b6d73f2c6e6c1ad5fcb2a9edf50069cd0691483) ) - ROM_REGION( 0x80000, "ymsnd:adpcmb", 0 ) /* Delta-T samples */ + ROM_REGION( 0x80000, "ymsnd:adpcmb", 0 ) // Delta-T samples ROM_LOAD( "east-11.16f", 0x00000, 0x80000, CRC(92111f96) SHA1(e781f24761b7a923388f4cda64c7b31388fd64c5) ) - ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) /* ADPCM samples */ + ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) // ADPCM samples ROM_LOAD( "east-10.16e", 0x00000, 0x80000, CRC(ca0ac419) SHA1(b29f30a8ff1286c65b741353b6551918a45bcafe) ) ROM_END ROM_START( gigandesa ) - ROM_REGION( 0x80000, "maincpu", 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "east-1.10a", 0x00000, 0x20000, CRC(290c50e0) SHA1(ac8008619891a5b54ba2069e4e18836976532c99) ) /* 'buggy' test mode, see notes above */ - ROM_LOAD16_BYTE( "east-3.5a", 0x00001, 0x20000, CRC(9cef82af) SHA1(6dad850de699d40dfba54bde6baca75bb0059c83) ) /* 'buggy' test mode, see notes above */ + ROM_REGION( 0x80000, "maincpu", 0 ) // 512k for 68000 code + ROM_LOAD16_BYTE( "east-1.10a", 0x00000, 0x20000, CRC(290c50e0) SHA1(ac8008619891a5b54ba2069e4e18836976532c99) ) // 'buggy' test mode, see notes above + ROM_LOAD16_BYTE( "east-3.5a", 0x00001, 0x20000, CRC(9cef82af) SHA1(6dad850de699d40dfba54bde6baca75bb0059c83) ) // 'buggy' test mode, see notes above ROM_LOAD16_BYTE( "east_2.8a", 0x40000, 0x20000, CRC(dd94b4d0) SHA1(2efff9fd51b28fd1fb46d16b359f0991af91054e) ) ROM_LOAD16_BYTE( "east_4.3a", 0x40001, 0x20000, CRC(a647310a) SHA1(49db488a36f6c74729825bdf0214bcd30773eaf4) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 code */ + ROM_REGION( 0x10000, "audiocpu", 0 ) // 64k for Z80 code ROM_LOAD( "east_5.17d", 0x00000, 0x10000, CRC(b24ab5f4) SHA1(e4730df984e9686c538df5fc626b795bda1db939) ) ROM_REGION( 0x200000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "east_8.3f", 0x000002, 0x80000, CRC(75eece28) SHA1(7ce66cd8bca7dd214367beae067727c8735c0f7e) ) /* Plane 0, 1 */ + ROM_LOAD32_WORD_SWAP( "east_8.3f", 0x000002, 0x80000, CRC(75eece28) SHA1(7ce66cd8bca7dd214367beae067727c8735c0f7e) ) // Plane 0, 1 ROM_LOAD32_WORD_SWAP( "east_7.3h", 0x100002, 0x80000, CRC(b179a76a) SHA1(cff2caf1eb0dda8a1b8283b9950b908b102f61de) ) - ROM_LOAD32_WORD_SWAP( "east_9.3j", 0x000000, 0x80000, CRC(5c5e6898) SHA1(f348ac752a571902c55f36e21aa3fb9ef97528e3) ) /* Plane 2, 3 */ + ROM_LOAD32_WORD_SWAP( "east_9.3j", 0x000000, 0x80000, CRC(5c5e6898) SHA1(f348ac752a571902c55f36e21aa3fb9ef97528e3) ) // Plane 2, 3 ROM_LOAD32_WORD_SWAP( "east_6.3k", 0x100000, 0x80000, CRC(52db30e9) SHA1(0b6d73f2c6e6c1ad5fcb2a9edf50069cd0691483) ) - ROM_REGION( 0x80000, "ymsnd:adpcmb", 0 ) /* Delta-T samples */ + ROM_REGION( 0x80000, "ymsnd:adpcmb", 0 ) // Delta-T samples ROM_LOAD( "east-11.16f", 0x00000, 0x80000, CRC(92111f96) SHA1(e781f24761b7a923388f4cda64c7b31388fd64c5) ) - ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) /* ADPCM samples */ + ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) // ADPCM samples ROM_LOAD( "east-10.16e", 0x00000, 0x80000, CRC(ca0ac419) SHA1(b29f30a8ff1286c65b741353b6551918a45bcafe) ) ROM_END ROM_START( kyustrkr ) - ROM_REGION( 0x40000, "maincpu", 0 ) /* 512k for 68000 code */ + ROM_REGION( 0x40000, "maincpu", 0 ) // 512k for 68000 code ROM_LOAD16_BYTE( "pe.9a", 0x00000, 0x20000, CRC(082b5f96) SHA1(97c08b506b2a07d63f3323359b8564aa3621f483) ) ROM_LOAD16_BYTE( "po.4a", 0x00001, 0x20000, CRC(0100361e) SHA1(45791f697c86309c459d0d8c3d3e967a3ece3ede) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 code */ + ROM_REGION( 0x10000, "audiocpu", 0 ) // 64k for Z80 code ROM_LOAD( "ic.18d", 0x00000, 0x10000, CRC(92cfb788) SHA1(41cd5433584df05652bd0ce8c5a35dc38262d6f2) ) ROM_REGION( 0x80000, "gfx1", 0 ) @@ -1245,42 +1302,44 @@ ROM_START( kyustrkr ) ROM_LOAD32_BYTE( "m-8-1.u5", 0x00001, 0x20000, CRC(9d95aad6) SHA1(3391b14196fea12223ab247d909791bc68fc8d56) ) ROM_LOAD32_BYTE( "m-8-0.u6", 0x00000, 0x20000, CRC(0dfb6ed3) SHA1(0937614c8f97040d0216363bfb2bc21161128a3c) ) - ROM_REGION( 0x80000, "ymsnd:adpcmb", 0 ) /* Delta-T samples */ + ROM_REGION( 0x80000, "ymsnd:adpcmb", 0 ) // Delta-T samples ROM_LOAD( "m-8-5.u2", 0x00000, 0x20000, CRC(d9d90e0a) SHA1(1011548b4fb5f1a194c93ded512e74cda2c06ceb) ) - ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) /* ADPCM samples */ + ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) // ADPCM samples ROM_LOAD( "m-8-4.u1", 0x00000, 0x20000, CRC(d3f6047a) SHA1(0db6d762bbe2d68cddf30e06125b904e1021b96d) ) ROM_END ROM_START( ballbros ) - ROM_REGION( 0x40000, "maincpu", 0 ) /* 256k for 68000 code */ + ROM_REGION( 0x40000, "maincpu", 0 ) // 256k for 68000 code ROM_LOAD16_BYTE( "10a", 0x00000, 0x20000, CRC(4af0e858) SHA1(817817169aee075d52411bdbe568514511760386) ) ROM_LOAD16_BYTE( "5a", 0x00001, 0x20000, CRC(0b983a69) SHA1(7be06761a19e1dc5d1404d1920797b406421e365) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 code */ + ROM_REGION( 0x10000, "audiocpu", 0 ) // 64k for Z80 code ROM_LOAD( "8d", 0x00000, 0x10000, CRC(d1c515af) SHA1(00451991b4c793487b156f9be2b2e4688325ff24) ) ROM_REGION( 0x080000, "gfx1", 0 ) - ROM_LOAD32_BYTE( "3", 0x000003, 0x20000, CRC(ec3e0537) SHA1(51fe5c6ef007c188b2f51ad2225753d2b403e35a) ) /* Plane 0 */ - ROM_LOAD32_BYTE( "2", 0x000002, 0x20000, CRC(bb441717) SHA1(205ae0aa3ded11766ae8f6fe7d08fefff17a9b73) ) /* Plane 1 */ - ROM_LOAD32_BYTE( "1", 0x000001, 0x20000, CRC(8196d624) SHA1(c859e3b1d3b481f38cfe47576efc1dcdbe6cde28) ) /* Plane 2 */ - ROM_LOAD32_BYTE( "0", 0x000000, 0x20000, CRC(1cc584e5) SHA1(18cf607fa06c095d088b80cea2a1e507d19c7126) ) /* Plane 3 */ + ROM_LOAD32_BYTE( "3", 0x000003, 0x20000, CRC(ec3e0537) SHA1(51fe5c6ef007c188b2f51ad2225753d2b403e35a) ) // Plane 0 + ROM_LOAD32_BYTE( "2", 0x000002, 0x20000, CRC(bb441717) SHA1(205ae0aa3ded11766ae8f6fe7d08fefff17a9b73) ) // Plane 1 + ROM_LOAD32_BYTE( "1", 0x000001, 0x20000, CRC(8196d624) SHA1(c859e3b1d3b481f38cfe47576efc1dcdbe6cde28) ) // Plane 2 + ROM_LOAD32_BYTE( "0", 0x000000, 0x20000, CRC(1cc584e5) SHA1(18cf607fa06c095d088b80cea2a1e507d19c7126) ) // Plane 3 - ROM_REGION( 0x80000, "ymsnd:adpcmb", 0 ) /* Delta-T samples */ + ROM_REGION( 0x80000, "ymsnd:adpcmb", 0 ) // Delta-T samples ROM_LOAD( "east-11", 0x00000, 0x80000, CRC(92111f96) SHA1(e781f24761b7a923388f4cda64c7b31388fd64c5) ) - ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) /* ADPCM samples */ + ROM_REGION( 0x80000, "ymsnd:adpcma", 0 ) // ADPCM samples ROM_LOAD( "east-10", 0x00000, 0x80000, CRC(ca0ac419) SHA1(b29f30a8ff1286c65b741353b6551918a45bcafe) ) ROM_END +} // Anonymous namespace + -GAME( 1988, superman, 0, superman, superman, taitox_state, empty_init, ROT0, "Taito Corporation", "Superman (World)", 0 ) -GAME( 1988, supermanu, superman, superman, supermanu, taitox_state, empty_init, ROT0, "Taito Corporation", "Superman (US)", 0 ) -GAME( 1988, supermanj, superman, superman, supermanj, taitox_state, empty_init, ROT0, "Taito Corporation", "Superman (Japan)", 0 ) -GAME( 1989, twinhawk, 0, daisenpu, twinhawk, taitox_state, empty_init, ROT270, "Taito Corporation Japan", "Twin Hawk (World)", 0 ) -GAME( 1989, twinhawku, twinhawk, daisenpu, twinhawku, taitox_state, empty_init, ROT270, "Taito America Corporation", "Twin Hawk (US)", 0 ) -GAME( 1989, daisenpu, twinhawk, daisenpu, daisenpu, taitox_state, empty_init, ROT270, "Taito Corporation", "Daisenpu (Japan)", 0 ) -GAME( 1989, gigandes, 0, gigandes, gigandes, taitox_state, empty_init, ROT0, "East Technology", "Gigandes", 0 ) -GAME( 1989, gigandesa, gigandes, gigandes, gigandes, taitox_state, empty_init, ROT0, "East Technology", "Gigandes (earlier)", 0 ) -GAME( 1989, kyustrkr, 0, kyustrkr, kyustrkr, taitox_state, empty_init, ROT180, "East Technology", "Last Striker / Kyuukyoku no Striker", 0 ) -GAME( 1992, ballbros, 0, ballbros, ballbros, taitox_state, empty_init, ROT0, "East Technology", "Balloon Brothers", 0 ) +GAME( 1988, superman, 0, superman, superman, taitox_cchip_state, empty_init, ROT0, "Taito Corporation", "Superman (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, supermanu, superman, superman, supermanu, taitox_cchip_state, empty_init, ROT0, "Taito Corporation", "Superman (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, supermanj, superman, superman, supermanj, taitox_cchip_state, empty_init, ROT0, "Taito Corporation", "Superman (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, twinhawk, 0, daisenpu, twinhawk, taitox_state, empty_init, ROT270, "Taito Corporation Japan", "Twin Hawk (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, twinhawku, twinhawk, daisenpu, twinhawku, taitox_state, empty_init, ROT270, "Taito America Corporation", "Twin Hawk (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, daisenpu, twinhawk, daisenpu, daisenpu, taitox_state, empty_init, ROT270, "Taito Corporation", "Daisenpu (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, gigandes, 0, gigandes, gigandes, taitox_state, empty_init, ROT0, "East Technology", "Gigandes", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, gigandesa, gigandes, gigandes, gigandes, taitox_state, empty_init, ROT0, "East Technology", "Gigandes (earlier)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, kyustrkr, 0, kyustrkr, kyustrkr, taitox_state, empty_init, ROT180, "East Technology", "Last Striker / Kyuukyoku no Striker", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, ballbros, 0, ballbros, ballbros, taitox_state, empty_init, ROT0, "East Technology", "Balloon Brothers", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/seta.h b/src/mame/includes/seta.h index bb290cdc3ba..bd33e9be3b0 100644 --- a/src/mame/includes/seta.h +++ b/src/mame/includes/seta.h @@ -108,6 +108,8 @@ public: u32 screen_update_seta_layers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); protected: + virtual void video_start() override; + required_device<cpu_device> m_maincpu; optional_device<cpu_device> m_audiocpu; required_device<seta001_device> m_seta001; @@ -162,8 +164,6 @@ protected: void magspeed_lights_w(offs_t offset, u16 data, u16 mem_mask = ~0); u16 extra_r(); - DECLARE_VIDEO_START(seta); - void blandia_palette(palette_device &palette) const; void zingzip_palette(palette_device &palette) const; DECLARE_MACHINE_START(wrofaero); @@ -437,6 +437,10 @@ public: DECLARE_WRITE_LINE_MEMBER(screen_vblank); +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + private: void rtc_w(u16 data); u16 rtc_r(offs_t offset); @@ -454,9 +458,6 @@ private: void spritectrl_w(offs_t offset, u16 data); - DECLARE_MACHINE_START(setaroul); - DECLARE_MACHINE_RESET(setaroul); - void setaroul_palette(palette_device &palette) const; u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); diff --git a/src/mame/includes/taito_x.h b/src/mame/includes/taito_x.h deleted file mode 100644 index fc92475a048..00000000000 --- a/src/mame/includes/taito_x.h +++ /dev/null @@ -1,61 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Howie Cohen, Yochizo -// thanks-to:Richard Bush -#ifndef MAME_INCLUDES_TAITO_X_H -#define MAME_INCLUDES_TAITO_X_H - -#pragma once - -#include "includes/seta.h" -#include "machine/taitocchip.h" -#include "machine/timer.h" - -class taitox_state : public seta_state -{ -public: - taitox_state(const machine_config &mconfig, device_type type, const char *tag) : - seta_state(mconfig, type, tag), - m_cchip(*this, "cchip"), - m_cchip_irq_clear(*this, "cchip_irq_clear"), - m_z80bank(*this, "z80bank"), - m_dswa_io(*this, "DSWA"), - m_dswb_io(*this, "DSWB"), - m_in_io(*this, "IN%u", 0U) - { } - - void superman(machine_config &config); - void ballbros(machine_config &config); - void kyustrkr(machine_config &config); - void gigandes(machine_config &config); - void daisenpu(machine_config &config); - -private: - u16 superman_dsw_input_r(offs_t offset); - void superman_counters_w(u8 data); - u16 daisenpu_input_r(offs_t offset); - void daisenpu_input_w(offs_t offset, u16 data); - void kyustrkr_input_w(offs_t offset, u16 data); - void sound_bankswitch_w(u8 data); - DECLARE_MACHINE_START(taitox); - - INTERRUPT_GEN_MEMBER(interrupt); - TIMER_DEVICE_CALLBACK_MEMBER(cchip_irq_clear_cb); - - void ballbros_map(address_map &map); - void daisenpu_map(address_map &map); - void daisenpu_sound_map(address_map &map); - void gigandes_map(address_map &map); - void kyustrkr_map(address_map &map); - void sound_map(address_map &map); - void superman_map(address_map &map); - void taito_x_base_map(address_map &map); - - optional_device<taito_cchip_device> m_cchip; - optional_device<timer_device> m_cchip_irq_clear; - required_memory_bank m_z80bank; - optional_ioport m_dswa_io; - optional_ioport m_dswb_io; - optional_ioport_array<3> m_in_io; -}; - -#endif // MAME_INCLUDES_TAITO_X_H diff --git a/src/mame/video/seta.cpp b/src/mame/video/seta.cpp index fc1375d3be3..8b09abeae8c 100644 --- a/src/mame/video/seta.cpp +++ b/src/mame/video/seta.cpp @@ -42,8 +42,8 @@ Note: if MAME_DEBUG is defined, pressing Z with: [ 1024 Sprites ] - Sprites are 16x16x4. They are just like those in "The Newzealand Story", - "Revenge of DOH" etc (tnzs.c). Obviously they're hooked to a 16 bit + Sprites are 16x16x4. They are just like those in "The NewZealand Story", + "Revenge of DOH" etc (tnzs.cpp). Obviously they're hooked to a 16 bit CPU here, so they're mapped a bit differently in memory. Additionally, there are two banks of sprites. The game can flip between the two to do double buffering, writing to a bit of a control register(see below) @@ -247,7 +247,8 @@ u16 usclssic_state::tile_offset(u16 code) VIDEO_START_MEMBER(seta_state,oisipuzl) { - VIDEO_START_CALL_MEMBER(seta); + video_start(); + m_tilemaps_flip = 1; } @@ -259,7 +260,7 @@ SETA001_SPRITE_GFXBANK_CB_MEMBER(seta_state::setac_gfxbank_callback) return code; } -VIDEO_START_MEMBER(seta_state,seta) +void seta_state::video_start() { m_tilemaps_flip = 0; |
