- seta.cpp: removed some unneeded VIDEO_START macros

- taito_x.cpp: split in subclasses, minor cleanups
This commit is contained in:
Ivan Vangelista 2021-11-19 18:12:44 +01:00
parent f85d81986d
commit d4d92d2aa9
5 changed files with 266 additions and 343 deletions

View File

@ -2425,13 +2425,13 @@ void seta_state::drgnunit_map(address_map &map)
The Roulette The Roulette
***************************************************************************/ ***************************************************************************/
MACHINE_START_MEMBER(setaroul_state, setaroul) void setaroul_state::machine_start()
{ {
m_leds.resolve(); m_leds.resolve();
} }
// Coin drop // Coin drop
MACHINE_RESET_MEMBER(setaroul_state, setaroul) void setaroul_state::machine_reset()
{ {
m_coin_start_cycles = 0; 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 PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(downtown_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
@ -8005,8 +8003,6 @@ void downtown_state::twineagl(machine_config &config)
PALETTE(config, m_palette).set_entries(512); PALETTE(config, m_palette).set_entries(512);
MCFG_VIDEO_START_OVERRIDE(downtown_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
@ -8057,8 +8053,6 @@ void downtown_state::downtown(machine_config &config)
PALETTE(config, m_palette).set_entries(512); PALETTE(config, m_palette).set_entries(512);
MCFG_VIDEO_START_OVERRIDE(downtown_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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 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 */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
@ -8212,8 +8204,6 @@ void downtown_state::calibr50(machine_config &config)
PALETTE(config, m_palette).set_entries(512); PALETTE(config, m_palette).set_entries(512);
MCFG_VIDEO_START_OVERRIDE(downtown_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
@ -8267,8 +8257,6 @@ void downtown_state::metafox(machine_config &config)
PALETTE(config, m_palette).set_entries(512); PALETTE(config, m_palette).set_entries(512);
MCFG_VIDEO_START_OVERRIDE(downtown_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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 PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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 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 */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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 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 */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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 PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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 PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); X1_012(config, m_layers[0], m_palette, gfx_downtown).set_xoffsets(-2, -2);
PALETTE(config, m_palette).set_entries(512); PALETTE(config, m_palette).set_entries(512);
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
@ -8643,9 +8619,6 @@ void setaroul_state::setaroul(machine_config &config)
WATCHDOG_TIMER(config, "watchdog"); 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); SETA001_SPRITE(config, m_seta001, 16'000'000, m_palette, gfx_setaroul_sprites);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback)); m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
// position kludges // 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); X1_012(config, m_layers[0], m_palette, gfx_setaroul).set_xoffsets(0, 5);
PALETTE(config, m_palette, FUNC(setaroul_state::setaroul_palette), 512); PALETTE(config, m_palette, FUNC(setaroul_state::setaroul_palette), 512);
MCFG_VIDEO_START_OVERRIDE(setaroul_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right(); 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); X1_012(config, m_layers[1], m_palette, gfx_msgundam_layer2);
PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2 PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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 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 */ /* sound hardware */
SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right(); 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); 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) 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 */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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 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 */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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 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 */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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 PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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 PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right(); 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 PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right(); 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 PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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 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 */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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 PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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 PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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 PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(kiwame_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right(); 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); 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 PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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 PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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 PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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 PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
@ -9666,8 +9603,6 @@ void seta_state::umanclub(machine_config &config)
PALETTE(config, m_palette).set_entries(512); PALETTE(config, m_palette).set_entries(512);
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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 PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right(); 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); X1_012(config, m_layers[1], m_palette, gfx_msgundam_layer2);
PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2 PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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 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 */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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 PALETTE(config, m_palette).set_entries(2048); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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) 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 */ /* sound hardware */
SPEAKER(config, "mono").front_center(); 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); 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); PALETTE(config, m_palette, FUNC(seta_state::palette_init_RRRRRGGGGGBBBBB_proms), 512 * 1);
MCFG_VIDEO_START_OVERRIDE(jockeyc_state,seta)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right(); SPEAKER(config, "rspeaker").front_right();

View File

@ -317,18 +317,90 @@ Stephh's notes (based on the game M68000 code and some tests) :
***************************************************************************/ ***************************************************************************/
#include "emu.h" #include "emu.h"
#include "includes/taito_x.h"
#include "includes/seta.h"
#include "includes/taitoipt.h" #include "includes/taitoipt.h"
#include "audio/taitosnd.h" #include "audio/taitosnd.h"
#include "machine/taitocchip.h"
#include "cpu/m68000/m68000.h" #include "cpu/m68000/m68000.h"
#include "cpu/z80/z80.h" #include "cpu/z80/z80.h"
#include "machine/timer.h"
#include "sound/ymopm.h" #include "sound/ymopm.h"
#include "sound/ymopn.h" #include "sound/ymopn.h"
#include "screen.h" #include "screen.h"
#include "speaker.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(1, data & 0x08);
machine().bookkeeping().coin_lockout_w(0, data & 0x04); 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); 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) 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) switch (offset)
{ {
case 0x00: case 0x00:
return m_in_io[0]->read(); /* Player 1 controls + START1 */ return m_in_io[0]->read(); // Player 1 controls + START1
case 0x01: case 0x01:
return m_in_io[1]->read(); /* Player 2 controls + START2 */ return m_in_io[1]->read(); // Player 2 controls + START2
case 0x02: case 0x02:
return m_in_io[2]->read(); /* COINn + SERVICE1 + TILT */ return m_in_io[2]->read(); // COINn + SERVICE1 + TILT
default: default:
logerror("taitox unknown input read offset: %04x\n", offset); 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) switch (offset)
{ {
case 0x04: /* coin counters and lockout */ case 0x04: // coin counters and lockout
machine().bookkeeping().coin_counter_w(0,data & 0x01); machine().bookkeeping().coin_counter_w(0, data & 0x01);
machine().bookkeeping().coin_counter_w(1,data & 0x02); machine().bookkeeping().coin_counter_w(1, data & 0x02);
machine().bookkeeping().coin_lockout_w(0,~data & 0x04); machine().bookkeeping().coin_lockout_w(0, ~data & 0x04);
machine().bookkeeping().coin_lockout_w(1,~data & 0x08); machine().bookkeeping().coin_lockout_w(1, ~data & 0x08);
//logerror("taitox coin control %04x to offset %04x\n",data,offset); //logerror("taitox coin control %04x to offset %04x\n", data, offset);
break; break;
default: 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) switch (offset)
{ {
case 0x04: /* coin counters and lockout */ case 0x04: // coin counters and lockout
machine().bookkeeping().coin_counter_w(0,data & 0x01); machine().bookkeeping().coin_counter_w(0, data & 0x01);
machine().bookkeeping().coin_counter_w(1,data & 0x02); machine().bookkeeping().coin_counter_w(1, data & 0x02);
machine().bookkeeping().coin_lockout_w(0,data & 0x04); machine().bookkeeping().coin_lockout_w(0, data & 0x04);
machine().bookkeeping().coin_lockout_w(1,data & 0x08); machine().bookkeeping().coin_lockout_w(1, data & 0x08);
//logerror("taitox coin control %04x to offset %04x\n",data,offset); //logerror("taitox coin control %04x to offset %04x\n", data, offset);
break; break;
default: 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(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(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(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); taito_x_base_map(map);
map(0x000000, 0x07ffff).rom(); map(0x000000, 0x07ffff).rom();
map(0x300000, 0x300001).nopw(); /* written each frame at $3a9c, 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(0x400000, 0x400001).nopw(); // written each frame at $3aa2, mostly 0x10
map(0x500000, 0x500007).r(FUNC(taitox_state::superman_dsw_input_r)); map(0x500000, 0x500007).r(FUNC(taitox_cchip_state::dsw_input_r));
map(0x600000, 0x600001).nopw(); /* written each frame at $3ab0, mostly 0x10 */ map(0x600000, 0x600001).nopw(); // written each frame at $3ab0, mostly 0x10
map(0x800000, 0x800001).nopr(); map(0x800000, 0x800001).nopr();
map(0x800001, 0x800001).w("tc0140syt", FUNC(tc0140syt_device::master_port_w)); 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(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); taito_x_base_map(map);
map(0x000000, 0x03ffff).rom(); map(0x000000, 0x03ffff).rom();
// map(0x400000, 0x400001).nopw(); /* written each frame at $2ac, values change */ // map(0x400000, 0x400001).nopw(); // written each frame at $2ac, values change
map(0x500000, 0x50000f).r(FUNC(taitox_state::superman_dsw_input_r)); map(0x500000, 0x50000f).r(FUNC(taitox_state::dsw_input_r));
// map(0x600000, 0x600001).nopw(); /* written each frame at $2a2, values change */ // map(0x600000, 0x600001).nopw(); // written each frame at $2a2, values change
map(0x800000, 0x800001).nopr(); map(0x800000, 0x800001).nopr();
map(0x800001, 0x800001).w("ciu", FUNC(pc060ha_device::master_port_w)); 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(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) void taitox_state::gigandes_map(address_map &map)
{ {
taito_x_base_map(map); taito_x_base_map(map);
map(0x000000, 0x07ffff).rom(); map(0x000000, 0x07ffff).rom();
map(0x400000, 0x400001).nopw(); /* 0x1 written each frame at $d42, watchdog? */ map(0x400000, 0x400001).nopw(); // 0x1 written each frame at $d42, watchdog?
map(0x500000, 0x500007).r(FUNC(taitox_state::superman_dsw_input_r)); map(0x500000, 0x500007).r(FUNC(taitox_state::dsw_input_r));
map(0x600000, 0x600001).nopw(); /* 0x1 written each frame at $d3c, watchdog? */ map(0x600000, 0x600001).nopw(); // 0x1 written each frame at $d3c, watchdog?
map(0x800000, 0x800001).nopr(); map(0x800000, 0x800001).nopr();
map(0x800001, 0x800001).w("tc0140syt", FUNC(tc0140syt_device::master_port_w)); 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(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) void taitox_state::ballbros_map(address_map &map)
{ {
taito_x_base_map(map); taito_x_base_map(map);
map(0x000000, 0x03ffff).rom(); map(0x000000, 0x03ffff).rom();
map(0x400000, 0x400001).nopw(); /* 0x1 written each frame at $c56, watchdog? */ map(0x400000, 0x400001).nopw(); // 0x1 written each frame at $c56, watchdog?
map(0x500000, 0x50000f).r(FUNC(taitox_state::superman_dsw_input_r)); map(0x500000, 0x50000f).r(FUNC(taitox_state::dsw_input_r));
map(0x600000, 0x600001).nopw(); /* 0x1 written each frame at $c4e, watchdog? */ map(0x600000, 0x600001).nopw(); // 0x1 written each frame at $c4e, watchdog?
map(0x800000, 0x800001).nopr(); map(0x800000, 0x800001).nopr();
map(0x800001, 0x800001).w("tc0140syt", FUNC(tc0140syt_device::master_port_w)); 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(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) void taitox_state::kyustrkr_map(address_map &map)
{ {
taito_x_base_map(map); taito_x_base_map(map);
map(0x000000, 0x03ffff).rom(); map(0x000000, 0x03ffff).rom();
map(0x400000, 0x400001).nopw(); /* 0x1 written each frame at $c56, watchdog? */ map(0x400000, 0x400001).nopw(); // 0x1 written each frame at $c56, watchdog?
map(0x500000, 0x50000f).r(FUNC(taitox_state::superman_dsw_input_r)); map(0x500000, 0x50000f).r(FUNC(taitox_state::dsw_input_r));
map(0x600000, 0x600001).nopw(); /* 0x1 written each frame at $c4e, watchdog? */ map(0x600000, 0x600001).nopw(); // 0x1 written each frame at $c4e, watchdog?
map(0x800000, 0x800001).nopr(); map(0x800000, 0x800001).nopr();
map(0x800001, 0x800001).w("tc0140syt", FUNC(tc0140syt_device::master_port_w)); 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(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(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(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(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(0xea00, 0xea00).nopr();
map(0xee00, 0xee00).nopw(); /* ? */ map(0xee00, 0xee00).nopw(); // ?
map(0xf000, 0xf000).nopw(); /* ? */ map(0xf000, 0xf000).nopw(); // ?
map(0xf200, 0xf200).w(FUNC(taitox_state::sound_bankswitch_w)); 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(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(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(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(0xea00, 0xea00).nopr();
map(0xee00, 0xee00).nopw(); /* ? */ map(0xee00, 0xee00).nopw(); // ?
map(0xf000, 0xf000).nopw(); map(0xf000, 0xf000).nopw();
map(0xf200, 0xf200).w(FUNC(taitox_state::sound_bankswitch_w)); 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") PORT_START("DSWA")
TAITO_MACHINE_NO_COCKTAIL_LOC(SW1) 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 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END 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_START("DSWA")
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") 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 INPUT_PORTS_END
static INPUT_PORTS_START( superman ) static INPUT_PORTS_START( superman )
/* DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf01c4a ($1c4a,A5) */ // DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf01c4a ($1c4a,A5)
/* DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf01c4c ($1c4c,A5) */ // DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf01c4c ($1c4c,A5)
PORT_INCLUDE( taitox_generic ) PORT_INCLUDE( taitox_generic )
PORT_MODIFY("DSWB") PORT_MODIFY("DSWB")
@ -662,8 +734,8 @@ static INPUT_PORTS_START( supermanj )
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( twinhawk ) static INPUT_PORTS_START( twinhawk )
/* DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf001b8 */ // DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf001b8
/* DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf001ba */ // DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf001ba
PORT_INCLUDE( taitox_generic ) PORT_INCLUDE( taitox_generic )
PORT_MODIFY("DSWB") PORT_MODIFY("DSWB")
@ -694,8 +766,8 @@ static INPUT_PORTS_START( twinhawku )
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( daisenpu ) static INPUT_PORTS_START( daisenpu )
/* DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf001a4 */ // DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf001a4
/* DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf001a6 */ // DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf001a6
PORT_INCLUDE( twinhawk ) PORT_INCLUDE( twinhawk )
PORT_MODIFY("DSWA") PORT_MODIFY("DSWA")
@ -711,14 +783,14 @@ static INPUT_PORTS_START( daisenpu )
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( gigandes ) static INPUT_PORTS_START( gigandes )
/* DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf00a3c */ // DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf00a3c
/* DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf00a3e */ // DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf00a3e
PORT_INCLUDE( taitox_east_tech ) PORT_INCLUDE( taitox_east_tech )
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( kyustrkr ) static INPUT_PORTS_START( kyustrkr )
/* DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf028fe */ // DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf028fe
/* DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf02900 */ // DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf02900
PORT_INCLUDE( taitox_east_tech ) PORT_INCLUDE( taitox_east_tech )
PORT_MODIFY("DSWB") PORT_MODIFY("DSWB")
@ -734,15 +806,15 @@ static INPUT_PORTS_START( kyustrkr )
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( ballbros ) static INPUT_PORTS_START( ballbros )
/* DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf028fe */ // DSWA - 0x500000 (low) and 0x500002 (high) -> 0xf028fe
/* DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf02900 */ // DSWB - 0x500004 (low) and 0x500006 (high) -> 0xf02900
PORT_INCLUDE( taitox_east_tech ) PORT_INCLUDE( taitox_east_tech )
PORT_MODIFY("DSWB") 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( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) 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( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW2:4" ) PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW2:4" )
@ -751,8 +823,8 @@ static INPUT_PORTS_START( ballbros )
PORT_DIPSETTING( 0x00, DEF_STR( English ) ) PORT_DIPSETTING( 0x00, DEF_STR( English ) )
PORT_DIPSETTING( 0x20, DEF_STR( Japanese ) ) PORT_DIPSETTING( 0x20, DEF_STR( Japanese ) )
PORT_DIPNAME( 0x40, 0x00, "Color Change" ) PORT_DIPLOCATION("SW2:7") PORT_DIPNAME( 0x40, 0x00, "Color Change" ) PORT_DIPLOCATION("SW2:7")
PORT_DIPSETTING( 0x00, "Less" ) /* each pattern */ PORT_DIPSETTING( 0x00, "Less" ) // each pattern
PORT_DIPSETTING( 0x40, "More" ) /* every 3 times */ PORT_DIPSETTING( 0x40, "More" ) // every 3 times
PORT_MODIFY("IN0") PORT_MODIFY("IN0")
TAITO_JOY_UDLR_1_BUTTON_START( 1 ) TAITO_JOY_UDLR_1_BUTTON_START( 1 )
@ -766,37 +838,37 @@ INPUT_PORTS_END
static const gfx_layout tilelayout = static const gfx_layout tilelayout =
{ {
16,16, /* 16*16 sprites */ 16,16, // 16*16 sprites
RGN_FRAC(1,1), /* 16384 of them */ RGN_FRAC(1,1), // 16384 of them
4, /* 4 bits per pixel */ 4, // 4 bits per pixel
{ STEP4(0,8) }, { STEP4(0,8) },
{ STEP8(0,1), STEP8(8*4*8,1) }, { STEP8(0,1), STEP8(8*4*8,1) },
{ STEP8(0,8*4), STEP8(8*4*8*2,8*4) }, { 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 ) 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 GFXDECODE_END
/**************************************************************************/ /**************************************************************************/
MACHINE_START_MEMBER(taitox_state,taitox) void taitox_state::machine_start()
{ {
int banks = memregion("audiocpu")->bytes() / 0x4000; int banks = memregion("audiocpu")->bytes() / 0x4000;
m_z80bank->configure_entries(0, banks, memregion("audiocpu")->base(), 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_maincpu->set_input_line(6, HOLD_LINE);
m_cchip->ext_interrupt(ASSERT_LINE); m_cchip->ext_interrupt(ASSERT_LINE);
m_cchip_irq_clear->adjust(attotime::zero); 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); 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 */ // basic machine hardware
M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */ 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_addrmap(AS_PROGRAM, &taitox_cchip_state::superman_map);
m_maincpu->set_vblank_int("screen", FUNC(taitox_state::interrupt)); m_maincpu->set_vblank_int("screen", FUNC(taitox_cchip_state::interrupt));
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::sound_map); 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_pa_callback().set_ioport("IN0");
m_cchip->in_pb_callback().set_ioport("IN1"); m_cchip->in_pb_callback().set_ioport("IN1");
m_cchip->in_ad_callback().set_ioport("IN2"); m_cchip->in_ad_callback().set_ioport("IN2");
m_cchip->out_pc_callback().set(FUNC(taitox_state::superman_counters_w)); m_cchip->out_pc_callback().set(FUNC(taitox_cchip_state::counters_w));
TIMER(config, "cchip_irq_clear").configure_generic(FUNC(taitox_state::cchip_irq_clear_cb)); TIMER(config, m_cchip_irq_clear).configure_generic(FUNC(taitox_cchip_state::cchip_irq_clear_cb));
config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ 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)
SETA001_SPRITE(config, m_seta001, 16'000'000, m_palette, gfx_taito_x); SETA001_SPRITE(config, m_seta001, 16'000'000, m_palette, gfx_taito_x);
// position kludges // position kludges
m_seta001->set_fg_yoffsets(-0x12, 0x0e); m_seta001->set_fg_yoffsets(-0x12, 0x0e);
m_seta001->set_bg_yoffsets(0x1, -0x1); m_seta001->set_bg_yoffsets(0x1, -0x1);
/* video hardware */ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(57.43); screen.set_refresh_hz(57.43);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(52*8, 32*8); screen.set_size(52*8, 32*8);
screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1); 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); screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); 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, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right(); 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.irq_handler().set_inputline(m_audiocpu, 0);
ymsnd.add_route(0, "lspeaker", 0.25); ymsnd.add_route(0, "lspeaker", 0.25);
ymsnd.add_route(0, "rspeaker", 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) void taitox_state::daisenpu(machine_config &config)
{ {
/* basic machine hardware */ // basic machine hardware
M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */ 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_addrmap(AS_PROGRAM, &taitox_state::daisenpu_map);
m_maincpu->set_vblank_int("screen", FUNC(taitox_state::irq2_line_hold)); 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); 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 */ 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)
SETA001_SPRITE(config, m_seta001, 16'000'000, m_palette, gfx_taito_x); SETA001_SPRITE(config, m_seta001, 16'000'000, m_palette, gfx_taito_x);
// position kludges // position kludges
m_seta001->set_fg_yoffsets(-0x12, 0x0e); m_seta001->set_fg_yoffsets(-0x12, 0x0e);
m_seta001->set_bg_yoffsets(0x1, -0x1); m_seta001->set_bg_yoffsets(0x1, -0x1);
/* video hardware */ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60); screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); 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); 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, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right(); 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.irq_handler().set_inputline(m_audiocpu, 0);
ymsnd.add_route(0, "lspeaker", 0.45); ymsnd.add_route(0, "lspeaker", 0.45);
ymsnd.add_route(1, "rspeaker", 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) void taitox_state::gigandes(machine_config &config)
{ {
/* basic machine hardware */ // basic machine hardware
M68000(config, m_maincpu, 8000000); /* 8 MHz? */ M68000(config, m_maincpu, 8000000); // 8 MHz?
m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::gigandes_map); m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::gigandes_map);
m_maincpu->set_vblank_int("screen", FUNC(taitox_state::irq2_line_hold)); 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); 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 */ 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)
SETA001_SPRITE(config, m_seta001, 16000000, m_palette, gfx_taito_x); SETA001_SPRITE(config, m_seta001, 16000000, m_palette, gfx_taito_x);
m_seta001->set_fg_yoffsets(-0xa, 0xe); m_seta001->set_fg_yoffsets(-0xa, 0xe);
m_seta001->set_bg_yoffsets(0x1, -0x1); m_seta001->set_bg_yoffsets(0x1, -0x1);
/* video hardware */ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60); screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); 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); 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, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right(); SPEAKER(config, "rspeaker").front_right();
@ -955,24 +1015,22 @@ void taitox_state::gigandes(machine_config &config)
void taitox_state::ballbros(machine_config &config) void taitox_state::ballbros(machine_config &config)
{ {
/* basic machine hardware */ // basic machine hardware
M68000(config, m_maincpu, 8000000); /* 8 MHz? */ M68000(config, m_maincpu, 8000000); // 8 MHz?
m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::ballbros_map); m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::ballbros_map);
m_maincpu->set_vblank_int("screen", FUNC(taitox_state::irq2_line_hold)); 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); 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 */ 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)
SETA001_SPRITE(config, m_seta001, 16000000, m_palette, gfx_taito_x); SETA001_SPRITE(config, m_seta001, 16000000, m_palette, gfx_taito_x);
// position kludges // position kludges
m_seta001->set_fg_yoffsets(-0x0a, 0x0e); m_seta001->set_fg_yoffsets(-0x0a, 0x0e);
m_seta001->set_bg_yoffsets(0x1, -0x1); m_seta001->set_bg_yoffsets(0x1, -0x1);
/* video hardware */ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60); screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); 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); 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, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right(); SPEAKER(config, "rspeaker").front_right();
@ -1004,7 +1060,7 @@ void taitox_state::ballbros(machine_config &config)
void taitox_state::kyustrkr(machine_config &config) void taitox_state::kyustrkr(machine_config &config)
{ {
ballbros(config); ballbros(config);
/* basic machine hardware */ // basic machine hardware
m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::kyustrkr_map); m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::kyustrkr_map);
} }
@ -1056,74 +1112,75 @@ Notes:
YM2203 running at 3.000Mz (12/4) YM2203 running at 3.000Mz (12/4)
VSync 60Hz VSync 60Hz
NOTE: There is an alternate version that uses a daughter card to replace the 8Mbit mask roms NOTE: There is an alternate version that uses a daughter card (K9100202A J9100154A) to replace
with two 4Mbit mask roms. These roms are B61-02 through B61-05, high and low for each. 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_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_09.a10", 0x00000, 0x20000, CRC(640f1d58) SHA1(e768d32eae1dba39c23189996fbd5454c8627809) )
ROM_LOAD16_BYTE( "b61_07.a5", 0x00001, 0x20000, CRC(fddb9953) SHA1(8b562712810a5a72f4647f1ba1314a1be2e249e7) ) 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_08.a8", 0x40000, 0x20000, CRC(79fc028e) SHA1(bf42b3f84dcad8fd9085c702a78dc895cc12d670) )
ROM_LOAD16_BYTE( "b61_13.a3", 0x40001, 0x20000, CRC(9f446a44) SHA1(16f7cd6438e47fdaac93a368df5c093f6ff0f1f0) ) 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_LOAD( "b61_10.d18", 0x00000, 0x10000, CRC(6efe79e8) SHA1(7a76efaaeab71473f4b0b23a89141f203488ce1d) )
ROM_REGION( 0x200000, "gfx1", 0 ) 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-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_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_LOAD( "b61-01.e18", 0x00000, 0x80000, CRC(3cf99786) SHA1(f6febf9bda87ca04f0a5890d0e8001c26dfa6c81) )
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
ROM_LOAD( "b61_11.m11", 0x0000, 0x2000, CRC(3bc5d44b) SHA1(6ba3ba35fe313af77d732412572d91a202b50542) ) ROM_LOAD( "b61_11.m11", 0x0000, 0x2000, CRC(3bc5d44b) SHA1(6ba3ba35fe313af77d732412572d91a202b50542) )
ROM_END ROM_END
ROM_START( supermanu ) /* No US copyright notice or FBI logo - Just a coinage difference, see notes above */ 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_REGION( 0x80000, "maincpu", 0 ) // 512k for 68000 code
ROM_LOAD16_BYTE( "b61_09.a10", 0x00000, 0x20000, CRC(640f1d58) SHA1(e768d32eae1dba39c23189996fbd5454c8627809) ) 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_07.a5", 0x00001, 0x20000, CRC(fddb9953) SHA1(8b562712810a5a72f4647f1ba1314a1be2e249e7) )
ROM_LOAD16_BYTE( "b61_08.a8", 0x40000, 0x20000, CRC(79fc028e) SHA1(bf42b3f84dcad8fd9085c702a78dc895cc12d670) ) 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_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_LOAD( "b61_10.d18", 0x00000, 0x10000, CRC(6efe79e8) SHA1(7a76efaaeab71473f4b0b23a89141f203488ce1d) )
ROM_REGION( 0x200000, "gfx1", 0 ) 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-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_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_LOAD( "b61-01.e18", 0x00000, 0x80000, CRC(3cf99786) SHA1(f6febf9bda87ca04f0a5890d0e8001c26dfa6c81) )
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
ROM_LOAD( "b61_11.m11", 0x0000, 0x2000, CRC(3bc5d44b) SHA1(6ba3ba35fe313af77d732412572d91a202b50542) ) ROM_LOAD( "b61_11.m11", 0x0000, 0x2000, CRC(3bc5d44b) SHA1(6ba3ba35fe313af77d732412572d91a202b50542) )
ROM_END ROM_END
ROM_START( supermanj ) /* Shows a Japan copyright notice */ ROM_START( supermanj ) // Shows a Japan copyright notice
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_09.a10", 0x00000, 0x20000, CRC(640f1d58) SHA1(e768d32eae1dba39c23189996fbd5454c8627809) )
ROM_LOAD16_BYTE( "b61_07.a5", 0x00001, 0x20000, CRC(fddb9953) SHA1(8b562712810a5a72f4647f1ba1314a1be2e249e7) ) 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_08.a8", 0x40000, 0x20000, CRC(79fc028e) SHA1(bf42b3f84dcad8fd9085c702a78dc895cc12d670) )
ROM_LOAD16_BYTE( "b61_06.a3", 0x40001, 0x20000, CRC(714a0b68) SHA1(b0b42c55d2404c7c193eb8cab3bd92e321947845) ) 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_LOAD( "b61_10.d18", 0x00000, 0x10000, CRC(6efe79e8) SHA1(7a76efaaeab71473f4b0b23a89141f203488ce1d) )
ROM_REGION( 0x200000, "gfx1", 0 ) 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-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_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_LOAD( "b61-01.e18", 0x00000, 0x80000, CRC(3cf99786) SHA1(f6febf9bda87ca04f0a5890d0e8001c26dfa6c81) )
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
@ -1141,102 +1198,102 @@ P0-051A
*/ */
ROM_START( twinhawk ) 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-11.u7", 0x00000, 0x20000, CRC(fc84a399) SHA1(6e5552b7ee433bee74f8936a8e583b5f81b5f2b2) )
ROM_LOAD16_BYTE( "b87-10.u5", 0x00001, 0x20000, CRC(17181706) SHA1(b7cab502b68a8f02918412538f23682120cbe1d3) ) 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_LOAD( "b87-07.13e", 0x00000, 0x8000, CRC(e2e0efa0) SHA1(4f1435ba738895996f26a64c2237e8349337df4a) )
ROM_REGION( 0x200000, "gfx1", 0 ) 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-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_LOAD32_WORD_SWAP( "b87-03.3j", 0x100000, 0x80000, CRC(ce155ae0) SHA1(7293125fc23f2411c4edd427a2576c145b3f2dd4) )
ROM_END ROM_END
ROM_START( twinhawku ) 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-09.u7", 0x00000, 0x20000, CRC(7e6267c7) SHA1(a623c1b740008675f36e8b63bbc17a573917db30) )
ROM_LOAD16_BYTE( "b87-08.u5", 0x00001, 0x20000, CRC(31d9916f) SHA1(8ae491a51a4095717c6f65fe81a83902feccd54b) ) 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_LOAD( "b87-07.13e", 0x00000, 0x8000, CRC(e2e0efa0) SHA1(4f1435ba738895996f26a64c2237e8349337df4a) )
ROM_REGION( 0x200000, "gfx1", 0 ) 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-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_LOAD32_WORD_SWAP( "b87-03.3j", 0x100000, 0x80000, CRC(ce155ae0) SHA1(7293125fc23f2411c4edd427a2576c145b3f2dd4) )
ROM_END ROM_END
ROM_START( daisenpu ) 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-06.u7", 0x00000, 0x20000, CRC(cf236100) SHA1(7944a20950188f64c0a09edd1a4efe0270264b27) )
ROM_LOAD16_BYTE( "b87-05.u5", 0x00001, 0x20000, CRC(7f15edc7) SHA1(3deba512f3c97f354ed4155f62058da160047bc5) ) 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_LOAD( "b87-07.13e", 0x00000, 0x8000, CRC(e2e0efa0) SHA1(4f1435ba738895996f26a64c2237e8349337df4a) )
ROM_REGION( 0x200000, "gfx1", 0 ) 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-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_LOAD32_WORD_SWAP( "b87-03.3j", 0x100000, 0x80000, CRC(ce155ae0) SHA1(7293125fc23f2411c4edd427a2576c145b3f2dd4) )
ROM_END ROM_END
ROM_START( gigandes ) ROM_START( gigandes )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 512k for 68000 code */ 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_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_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_2.8a", 0x40000, 0x20000, CRC(dd94b4d0) SHA1(2efff9fd51b28fd1fb46d16b359f0991af91054e) )
ROM_LOAD16_BYTE( "east_4.3a", 0x40001, 0x20000, CRC(a647310a) SHA1(49db488a36f6c74729825bdf0214bcd30773eaf4) ) 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_LOAD( "east_5.17d", 0x00000, 0x10000, CRC(b24ab5f4) SHA1(e4730df984e9686c538df5fc626b795bda1db939) )
ROM_REGION( 0x200000, "gfx1", 0 ) 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_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_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_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_LOAD( "east-10.16e", 0x00000, 0x80000, CRC(ca0ac419) SHA1(b29f30a8ff1286c65b741353b6551918a45bcafe) )
ROM_END ROM_END
ROM_START( gigandesa ) ROM_START( gigandesa )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 512k for 68000 code */ 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-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-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_2.8a", 0x40000, 0x20000, CRC(dd94b4d0) SHA1(2efff9fd51b28fd1fb46d16b359f0991af91054e) )
ROM_LOAD16_BYTE( "east_4.3a", 0x40001, 0x20000, CRC(a647310a) SHA1(49db488a36f6c74729825bdf0214bcd30773eaf4) ) 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_LOAD( "east_5.17d", 0x00000, 0x10000, CRC(b24ab5f4) SHA1(e4730df984e9686c538df5fc626b795bda1db939) )
ROM_REGION( 0x200000, "gfx1", 0 ) 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_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_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_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_LOAD( "east-10.16e", 0x00000, 0x80000, CRC(ca0ac419) SHA1(b29f30a8ff1286c65b741353b6551918a45bcafe) )
ROM_END ROM_END
ROM_START( kyustrkr ) 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( "pe.9a", 0x00000, 0x20000, CRC(082b5f96) SHA1(97c08b506b2a07d63f3323359b8564aa3621f483) )
ROM_LOAD16_BYTE( "po.4a", 0x00001, 0x20000, CRC(0100361e) SHA1(45791f697c86309c459d0d8c3d3e967a3ece3ede) ) 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_LOAD( "ic.18d", 0x00000, 0x10000, CRC(92cfb788) SHA1(41cd5433584df05652bd0ce8c5a35dc38262d6f2) )
ROM_REGION( 0x80000, "gfx1", 0 ) 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-1.u5", 0x00001, 0x20000, CRC(9d95aad6) SHA1(3391b14196fea12223ab247d909791bc68fc8d56) )
ROM_LOAD32_BYTE( "m-8-0.u6", 0x00000, 0x20000, CRC(0dfb6ed3) SHA1(0937614c8f97040d0216363bfb2bc21161128a3c) ) 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_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_LOAD( "m-8-4.u1", 0x00000, 0x20000, CRC(d3f6047a) SHA1(0db6d762bbe2d68cddf30e06125b904e1021b96d) )
ROM_END ROM_END
ROM_START( ballbros ) 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( "10a", 0x00000, 0x20000, CRC(4af0e858) SHA1(817817169aee075d52411bdbe568514511760386) )
ROM_LOAD16_BYTE( "5a", 0x00001, 0x20000, CRC(0b983a69) SHA1(7be06761a19e1dc5d1404d1920797b406421e365) ) 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_LOAD( "8d", 0x00000, 0x10000, CRC(d1c515af) SHA1(00451991b4c793487b156f9be2b2e4688325ff24) )
ROM_REGION( 0x080000, "gfx1", 0 ) ROM_REGION( 0x080000, "gfx1", 0 )
ROM_LOAD32_BYTE( "3", 0x000003, 0x20000, CRC(ec3e0537) SHA1(51fe5c6ef007c188b2f51ad2225753d2b403e35a) ) /* Plane 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( "2", 0x000002, 0x20000, CRC(bb441717) SHA1(205ae0aa3ded11766ae8f6fe7d08fefff17a9b73) ) // Plane 1
ROM_LOAD32_BYTE( "1", 0x000001, 0x20000, CRC(8196d624) SHA1(c859e3b1d3b481f38cfe47576efc1dcdbe6cde28) ) /* Plane 2 */ 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( "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_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_LOAD( "east-10", 0x00000, 0x80000, CRC(ca0ac419) SHA1(b29f30a8ff1286c65b741353b6551918a45bcafe) )
ROM_END 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, superman, 0, superman, superman, taitox_cchip_state, empty_init, ROT0, "Taito Corporation", "Superman (World)", MACHINE_SUPPORTS_SAVE )
GAME( 1988, supermanj, superman, superman, supermanj, taitox_state, empty_init, ROT0, "Taito Corporation", "Superman (Japan)", 0 ) GAME( 1988, supermanu, superman, superman, supermanu, taitox_cchip_state, empty_init, ROT0, "Taito Corporation", "Superman (US)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, twinhawk, 0, daisenpu, twinhawk, taitox_state, empty_init, ROT270, "Taito Corporation Japan", "Twin Hawk (World)", 0 ) GAME( 1988, supermanj, superman, superman, supermanj, taitox_cchip_state, empty_init, ROT0, "Taito Corporation", "Superman (Japan)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, twinhawku, twinhawk, daisenpu, twinhawku, taitox_state, empty_init, ROT270, "Taito America Corporation", "Twin Hawk (US)", 0 ) GAME( 1989, twinhawk, 0, daisenpu, twinhawk, taitox_state, empty_init, ROT270, "Taito Corporation Japan", "Twin Hawk (World)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, daisenpu, twinhawk, daisenpu, daisenpu, taitox_state, empty_init, ROT270, "Taito Corporation", "Daisenpu (Japan)", 0 ) GAME( 1989, twinhawku, twinhawk, daisenpu, twinhawku, taitox_state, empty_init, ROT270, "Taito America Corporation", "Twin Hawk (US)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, gigandes, 0, gigandes, gigandes, taitox_state, empty_init, ROT0, "East Technology", "Gigandes", 0 ) GAME( 1989, daisenpu, twinhawk, daisenpu, daisenpu, taitox_state, empty_init, ROT270, "Taito Corporation", "Daisenpu (Japan)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, gigandesa, gigandes, gigandes, gigandes, taitox_state, empty_init, ROT0, "East Technology", "Gigandes (earlier)", 0 ) GAME( 1989, gigandes, 0, gigandes, gigandes, taitox_state, empty_init, ROT0, "East Technology", "Gigandes", MACHINE_SUPPORTS_SAVE )
GAME( 1989, kyustrkr, 0, kyustrkr, kyustrkr, taitox_state, empty_init, ROT180, "East Technology", "Last Striker / Kyuukyoku no Striker", 0 ) GAME( 1989, gigandesa, gigandes, gigandes, gigandes, taitox_state, empty_init, ROT0, "East Technology", "Gigandes (earlier)", MACHINE_SUPPORTS_SAVE )
GAME( 1992, ballbros, 0, ballbros, ballbros, taitox_state, empty_init, ROT0, "East Technology", "Balloon Brothers", 0 ) 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 )

View File

@ -108,6 +108,8 @@ public:
u32 screen_update_seta_layers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); u32 screen_update_seta_layers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
protected: protected:
virtual void video_start() override;
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu; optional_device<cpu_device> m_audiocpu;
required_device<seta001_device> m_seta001; required_device<seta001_device> m_seta001;
@ -162,8 +164,6 @@ protected:
void magspeed_lights_w(offs_t offset, u16 data, u16 mem_mask = ~0); void magspeed_lights_w(offs_t offset, u16 data, u16 mem_mask = ~0);
u16 extra_r(); u16 extra_r();
DECLARE_VIDEO_START(seta);
void blandia_palette(palette_device &palette) const; void blandia_palette(palette_device &palette) const;
void zingzip_palette(palette_device &palette) const; void zingzip_palette(palette_device &palette) const;
DECLARE_MACHINE_START(wrofaero); DECLARE_MACHINE_START(wrofaero);
@ -437,6 +437,10 @@ public:
DECLARE_WRITE_LINE_MEMBER(screen_vblank); DECLARE_WRITE_LINE_MEMBER(screen_vblank);
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
private: private:
void rtc_w(u16 data); void rtc_w(u16 data);
u16 rtc_r(offs_t offset); u16 rtc_r(offs_t offset);
@ -454,9 +458,6 @@ private:
void spritectrl_w(offs_t offset, u16 data); void spritectrl_w(offs_t offset, u16 data);
DECLARE_MACHINE_START(setaroul);
DECLARE_MACHINE_RESET(setaroul);
void setaroul_palette(palette_device &palette) const; void setaroul_palette(palette_device &palette) const;
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);

View File

@ -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

View File

@ -42,8 +42,8 @@ Note: if MAME_DEBUG is defined, pressing Z with:
[ 1024 Sprites ] [ 1024 Sprites ]
Sprites are 16x16x4. They are just like those in "The Newzealand Story", 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 "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, 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 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) 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_MEMBER(seta_state,oisipuzl)
{ {
VIDEO_START_CALL_MEMBER(seta); video_start();
m_tilemaps_flip = 1; m_tilemaps_flip = 1;
} }
@ -259,7 +260,7 @@ SETA001_SPRITE_GFXBANK_CB_MEMBER(seta_state::setac_gfxbank_callback)
return code; return code;
} }
VIDEO_START_MEMBER(seta_state,seta) void seta_state::video_start()
{ {
m_tilemaps_flip = 0; m_tilemaps_flip = 0;