mirror of
https://github.com/holub/mame
synced 2025-05-23 22:20:01 +03:00
02718: zigzag, zigzag2: Don't boot correctly. The screen just flashes over and over.
This commit is contained in:
parent
f2c32190ea
commit
2667ca65f1
@ -2305,9 +2305,11 @@ static void common_init(
|
||||
|
||||
static void unmap_galaxian_sound(running_machine *machine, offs_t base)
|
||||
{
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), base + 0x0004, base + 0x0007, 0, 0x07f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), base + 0x0800, base + 0x0807, 0, 0x07f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), base + 0x1800, base + 0x1800, 0, 0x07ff, SMH_UNMAP);
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
memory_install_write8_handler(space, base + 0x0004, base + 0x0007, 0, 0x07f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(space, base + 0x0800, base + 0x0807, 0, 0x07f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(space, base + 0x1800, base + 0x1800, 0, 0x07ff, SMH_UNMAP);
|
||||
}
|
||||
|
||||
|
||||
@ -2326,31 +2328,37 @@ static DRIVER_INIT( galaxian )
|
||||
|
||||
static DRIVER_INIT( nolock )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* same as galaxian... */
|
||||
DRIVER_INIT_CALL(galaxian);
|
||||
|
||||
/* ...but coin lockout disabled/disconnected */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x6002, 0x6002, 0, 0x7f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(space, 0x6002, 0x6002, 0, 0x7f8, SMH_UNMAP);
|
||||
}
|
||||
|
||||
|
||||
static DRIVER_INIT( azurian )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* yellow bullets instead of white ones */
|
||||
common_init(machine, scramble_draw_bullet, galaxian_draw_background, NULL, NULL);
|
||||
|
||||
/* coin lockout disabled */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x6002, 0x6002, 0, 0x7f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(space, 0x6002, 0x6002, 0, 0x7f8, SMH_UNMAP);
|
||||
}
|
||||
|
||||
|
||||
static DRIVER_INIT( gmgalax )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, gmgalax_extend_tile_info, gmgalax_extend_sprite_info);
|
||||
|
||||
/* ROM is banked */
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x0000, 0x3fff, 0, 0, SMH_BANK1);
|
||||
memory_install_read8_handler(space, 0x0000, 0x3fff, 0, 0, SMH_BANK1);
|
||||
memory_configure_bank(machine, 1, 0, 2, memory_region(machine, "main") + 0x10000, 0x4000);
|
||||
|
||||
/* callback when the game select is toggled */
|
||||
@ -2361,31 +2369,37 @@ static DRIVER_INIT( gmgalax )
|
||||
|
||||
static DRIVER_INIT( pisces )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, pisces_extend_tile_info, pisces_extend_sprite_info);
|
||||
|
||||
/* coin lockout replaced by graphics bank */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x6002, 0x6002, 0, 0x7f8, galaxian_gfxbank_w);
|
||||
memory_install_write8_handler(space, 0x6002, 0x6002, 0, 0x7f8, galaxian_gfxbank_w);
|
||||
}
|
||||
|
||||
|
||||
static DRIVER_INIT( batman2 )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, batman2_extend_tile_info, upper_extend_sprite_info);
|
||||
|
||||
/* coin lockout replaced by graphics bank */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x6002, 0x6002, 0, 0x7f8, galaxian_gfxbank_w);
|
||||
memory_install_write8_handler(space, 0x6002, 0x6002, 0, 0x7f8, galaxian_gfxbank_w);
|
||||
}
|
||||
|
||||
|
||||
static DRIVER_INIT( frogg )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* same as galaxian... */
|
||||
common_init(machine, galaxian_draw_bullet, frogger_draw_background, frogger_extend_tile_info, frogger_extend_sprite_info);
|
||||
|
||||
/* ...but needs a full 2k of RAM */
|
||||
memory_install_readwrite8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x4000, 0x47ff, 0, 0, SMH_BANK1, SMH_BANK1);
|
||||
memory_install_readwrite8_handler(space, 0x4000, 0x47ff, 0, 0, SMH_BANK1, SMH_BANK1);
|
||||
memory_set_bankptr(machine, 1, auto_malloc(0x800));
|
||||
}
|
||||
|
||||
@ -2416,11 +2430,13 @@ static DRIVER_INIT( mooncrsu )
|
||||
|
||||
static DRIVER_INIT( mooncrgx )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, mooncrst_extend_tile_info, mooncrst_extend_sprite_info);
|
||||
|
||||
/* LEDs and coin lockout replaced by graphics banking */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x6000, 0x6002, 0, 0x7f8, galaxian_gfxbank_w);
|
||||
memory_install_write8_handler(space, 0x6000, 0x6002, 0, 0x7f8, galaxian_gfxbank_w);
|
||||
}
|
||||
|
||||
|
||||
@ -2440,11 +2456,13 @@ static DRIVER_INIT( moonqsr )
|
||||
|
||||
static DRIVER_INIT( pacmanbl )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* same as galaxian... */
|
||||
DRIVER_INIT_CALL(galaxian);
|
||||
|
||||
/* ...but coin lockout disabled/disconnected */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x6002, 0x6002, 0, 0x7f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(space, 0x6002, 0x6002, 0, 0x7f8, SMH_UNMAP);
|
||||
|
||||
/* also shift the sprite clip offset */
|
||||
galaxian_sprite_clip_start = 7;
|
||||
@ -2470,23 +2488,28 @@ static DRIVER_INIT( zigzag )
|
||||
common_init(machine, NULL, galaxian_draw_background, NULL, NULL);
|
||||
|
||||
/* make ROMs 2 & 3 swappable */
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x2000, 0x2fff, 0, 0, SMH_BANK1);
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x3000, 0x3fff, 0, 0, SMH_BANK2);
|
||||
memory_install_read8_handler(space, 0x2000, 0x2fff, 0, 0, SMH_BANK1);
|
||||
memory_install_read8_handler(space, 0x3000, 0x3fff, 0, 0, SMH_BANK2);
|
||||
memory_configure_bank(machine, 1, 0, 2, memory_region(machine, "main") + 0x2000, 0x1000);
|
||||
memory_configure_bank(machine, 2, 0, 2, memory_region(machine, "main") + 0x2000, 0x1000);
|
||||
|
||||
/* also re-install the fixed ROM area as a bank in order to inform the memory system that
|
||||
the fixed area only extends to 0x1fff */
|
||||
memory_install_read8_handler(space, 0x0000, 0x1fff, 0, 0, SMH_BANK3);
|
||||
memory_set_bankptr(machine, 3, memory_region(machine, "main") + 0x0000);
|
||||
|
||||
/* handler for doing the swaps */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x7002, 0x7002, 0, 0x07f8, zigzag_bankswap_w);
|
||||
memory_install_write8_handler(space, 0x7002, 0x7002, 0, 0x07f8, zigzag_bankswap_w);
|
||||
zigzag_bankswap_w(space, 0, 0);
|
||||
|
||||
/* coin lockout disabled */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x6002, 0x6002, 0, 0x7f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(space, 0x6002, 0x6002, 0, 0x7f8, SMH_UNMAP);
|
||||
|
||||
/* remove the galaxian sound hardware */
|
||||
unmap_galaxian_sound(machine, 0x6000);
|
||||
|
||||
/* install our AY-8910 handler */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x4800, 0x4fff, 0, 0, zigzag_ay8910_w);
|
||||
memory_install_write8_handler(space, 0x4800, 0x4fff, 0, 0, zigzag_ay8910_w);
|
||||
}
|
||||
|
||||
|
||||
@ -2499,15 +2522,18 @@ static DRIVER_INIT( jumpbug )
|
||||
|
||||
static DRIVER_INIT( checkman )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
const address_space *iospace = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, mooncrst_extend_tile_info, mooncrst_extend_sprite_info);
|
||||
|
||||
/* move the interrupt enable from $b000 to $b001 */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xb000, 0xb000, 0, 0x7f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xb001, 0xb001, 0, 0x7f8, irq_enable_w);
|
||||
memory_install_write8_handler(space, 0xb000, 0xb000, 0, 0x7f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(space, 0xb001, 0xb001, 0, 0x7f8, irq_enable_w);
|
||||
|
||||
/* attach the sound command handler */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x00, 0x00, 0, 0xffff, checkman_sound_command_w);
|
||||
memory_install_write8_handler(iospace, 0x00, 0x00, 0, 0xffff, checkman_sound_command_w);
|
||||
|
||||
/* decrypt program code */
|
||||
decode_checkman(machine);
|
||||
@ -2516,43 +2542,50 @@ static DRIVER_INIT( checkman )
|
||||
|
||||
static DRIVER_INIT( checkmaj )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, NULL, NULL);
|
||||
|
||||
/* attach the sound command handler */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x7800, 0x7800, 0, 0x7ff, checkman_sound_command_w);
|
||||
memory_install_write8_handler(space, 0x7800, 0x7800, 0, 0x7ff, checkman_sound_command_w);
|
||||
|
||||
/* for the title screen */
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x3800, 0x3800, 0, 0, checkmaj_protection_r);
|
||||
memory_install_read8_handler(space, 0x3800, 0x3800, 0, 0, checkmaj_protection_r);
|
||||
}
|
||||
|
||||
|
||||
static DRIVER_INIT( dingo )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, NULL, NULL);
|
||||
|
||||
/* attach the sound command handler */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x7800, 0x7800, 0, 0x7ff, checkman_sound_command_w);
|
||||
memory_install_write8_handler(space, 0x7800, 0x7800, 0, 0x7ff, checkman_sound_command_w);
|
||||
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x3000, 0x3000, 0, 0, dingo_3000_r);
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x3035, 0x3035, 0, 0, dingo_3035_r);
|
||||
memory_install_read8_handler(space, 0x3000, 0x3000, 0, 0, dingo_3000_r);
|
||||
memory_install_read8_handler(space, 0x3035, 0x3035, 0, 0, dingo_3035_r);
|
||||
}
|
||||
|
||||
|
||||
static DRIVER_INIT( dingoe )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
const address_space *iospace = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, mooncrst_extend_tile_info, mooncrst_extend_sprite_info);
|
||||
|
||||
/* move the interrupt enable from $b000 to $b001 */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xb000, 0xb000, 0, 0x7f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xb001, 0xb001, 0, 0x7f8, irq_enable_w);
|
||||
memory_install_write8_handler(space, 0xb000, 0xb000, 0, 0x7f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(space, 0xb001, 0xb001, 0, 0x7f8, irq_enable_w);
|
||||
|
||||
/* attach the sound command handler */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x00, 0x00, 0, 0xffff, checkman_sound_command_w);
|
||||
memory_install_write8_handler(iospace, 0x00, 0x00, 0, 0xffff, checkman_sound_command_w);
|
||||
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x3001, 0x3001, 0, 0, dingoe_3001_r); /* Protection check */
|
||||
memory_install_read8_handler(space, 0x3001, 0x3001, 0, 0, dingoe_3001_r); /* Protection check */
|
||||
|
||||
/* decrypt program code */
|
||||
decode_dingoe(machine);
|
||||
@ -2561,18 +2594,20 @@ static DRIVER_INIT( dingoe )
|
||||
|
||||
static DRIVER_INIT( skybase )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, pisces_extend_tile_info, pisces_extend_sprite_info);
|
||||
|
||||
/* coin lockout replaced by graphics bank */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xa002, 0xa002, 0, 0x7f8, galaxian_gfxbank_w);
|
||||
memory_install_write8_handler(space, 0xa002, 0xa002, 0, 0x7f8, galaxian_gfxbank_w);
|
||||
|
||||
/* needs a full 2k of RAM */
|
||||
memory_install_readwrite8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x8000, 0x87ff, 0, 0, SMH_BANK1, SMH_BANK1);
|
||||
memory_install_readwrite8_handler(space, 0x8000, 0x87ff, 0, 0, SMH_BANK1, SMH_BANK1);
|
||||
memory_set_bankptr(machine, 1, auto_malloc(0x800));
|
||||
|
||||
/* extend ROM */
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x0000, 0x5fff, 0, 0, SMH_BANK2);
|
||||
memory_install_read8_handler(space, 0x0000, 0x5fff, 0, 0, SMH_BANK2);
|
||||
memory_set_bankptr(machine, 2, memory_region(machine, "main"));
|
||||
}
|
||||
|
||||
@ -2605,13 +2640,15 @@ static DRIVER_INIT( mshuttlj )
|
||||
|
||||
static DRIVER_INIT( kingball )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, NULL, NULL);
|
||||
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xb000, 0xb000, 0, 0x7f8, kingball_sound1_w);
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xb001, 0xb001, 0, 0x7f8, irq_enable_w);
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xb002, 0xb002, 0, 0x7f8, kingball_sound2_w);
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xb003, 0xb003, 0, 0x7f8, kingball_speech_dip_w);
|
||||
memory_install_write8_handler(space, 0xb000, 0xb000, 0, 0x7f8, kingball_sound1_w);
|
||||
memory_install_write8_handler(space, 0xb001, 0xb001, 0, 0x7f8, irq_enable_w);
|
||||
memory_install_write8_handler(space, 0xb002, 0xb002, 0, 0x7f8, kingball_sound2_w);
|
||||
memory_install_write8_handler(space, 0xb003, 0xb003, 0, 0x7f8, kingball_speech_dip_w);
|
||||
|
||||
state_save_register_global(machine, kingball_speech_dip);
|
||||
state_save_register_global(machine, kingball_sound);
|
||||
@ -2620,23 +2657,25 @@ static DRIVER_INIT( kingball )
|
||||
|
||||
static DRIVER_INIT( scorpnmc )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, batman2_extend_tile_info, upper_extend_sprite_info);
|
||||
|
||||
/* move the interrupt enable from $b000 to $b001 */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xb000, 0xb000, 0, 0x7f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xb001, 0xb001, 0, 0x7f8, irq_enable_w);
|
||||
memory_install_write8_handler(space, 0xb000, 0xb000, 0, 0x7f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(space, 0xb001, 0xb001, 0, 0x7f8, irq_enable_w);
|
||||
|
||||
/* extra ROM */
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x5000, 0x67ff, 0, 0, SMH_BANK1);
|
||||
memory_install_read8_handler(space, 0x5000, 0x67ff, 0, 0, SMH_BANK1);
|
||||
memory_set_bankptr(machine, 1, memory_region(machine, "main") + 0x5000);
|
||||
|
||||
/* install RAM at $4000-$4800 */
|
||||
memory_install_readwrite8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x4000, 0x47ff, 0, 0, SMH_BANK2, SMH_BANK2);
|
||||
memory_install_readwrite8_handler(space, 0x4000, 0x47ff, 0, 0, SMH_BANK2, SMH_BANK2);
|
||||
memory_set_bankptr(machine, 2, auto_malloc(0x800));
|
||||
|
||||
/* doesn't appear to use original RAM */
|
||||
memory_install_readwrite8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x8000, 0x87ff, 0, 0, SMH_UNMAP, SMH_UNMAP);
|
||||
memory_install_readwrite8_handler(space, 0x8000, 0x87ff, 0, 0, SMH_UNMAP, SMH_UNMAP);
|
||||
}
|
||||
|
||||
|
||||
@ -2649,11 +2688,13 @@ static DRIVER_INIT( scorpnmc )
|
||||
|
||||
static DRIVER_INIT( theend )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, theend_draw_bullet, galaxian_draw_background, NULL, NULL);
|
||||
|
||||
/* coin counter on the upper bit of port C */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x6802, 0x6802, 0, 0x7f8, SMH_UNMAP);
|
||||
memory_install_write8_handler(space, 0x6802, 0x6802, 0, 0x7f8, SMH_UNMAP);
|
||||
}
|
||||
|
||||
|
||||
@ -2666,20 +2707,22 @@ static DRIVER_INIT( scramble )
|
||||
|
||||
static DRIVER_INIT( explorer )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, scramble_draw_bullet, scramble_draw_background, NULL, NULL);
|
||||
|
||||
/* watchdog works for writes as well? (or is it just disabled?) */
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x7000, 0x7000, 0, 0x7ff, watchdog_reset_w);
|
||||
memory_install_write8_handler(space, 0x7000, 0x7000, 0, 0x7ff, watchdog_reset_w);
|
||||
|
||||
/* I/O appears to be direct, not via PPIs */
|
||||
memory_install_readwrite8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x8000, 0xffff, 0, 0, SMH_UNMAP, SMH_UNMAP);
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x8000, 0x8000, 0, 0xffc, input_port_read_handler8(machine->portconfig, "IN0"));
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x8001, 0x8001, 0, 0xffc, input_port_read_handler8(machine->portconfig, "IN1"));
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x8002, 0x8002, 0, 0xffc, input_port_read_handler8(machine->portconfig, "IN2"));
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x8003, 0x8003, 0, 0xffc, input_port_read_handler8(machine->portconfig, "IN3"));
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x8000, 0x8000, 0, 0xfff, soundlatch_w);
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x9000, 0x9000, 0, 0xfff, explorer_sound_control_w);
|
||||
memory_install_readwrite8_handler(space, 0x8000, 0xffff, 0, 0, SMH_UNMAP, SMH_UNMAP);
|
||||
memory_install_read8_handler(space, 0x8000, 0x8000, 0, 0xffc, input_port_read_handler8(machine->portconfig, "IN0"));
|
||||
memory_install_read8_handler(space, 0x8001, 0x8001, 0, 0xffc, input_port_read_handler8(machine->portconfig, "IN1"));
|
||||
memory_install_read8_handler(space, 0x8002, 0x8002, 0, 0xffc, input_port_read_handler8(machine->portconfig, "IN2"));
|
||||
memory_install_read8_handler(space, 0x8003, 0x8003, 0, 0xffc, input_port_read_handler8(machine->portconfig, "IN3"));
|
||||
memory_install_write8_handler(space, 0x8000, 0x8000, 0, 0xfff, soundlatch_w);
|
||||
memory_install_write8_handler(space, 0x9000, 0x9000, 0, 0xfff, explorer_sound_control_w);
|
||||
}
|
||||
|
||||
|
||||
@ -2697,12 +2740,14 @@ static DRIVER_INIT( sfx )
|
||||
|
||||
static DRIVER_INIT( atlantis )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, scramble_draw_bullet, scramble_draw_background, NULL, NULL);
|
||||
|
||||
/* watchdog is at $7800? (or is it just disabled?) */
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x7000, 0x7000, 0, 0x7ff, SMH_UNMAP);
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x7800, 0x7800, 0, 0x7ff, watchdog_reset_r);
|
||||
memory_install_read8_handler(space, 0x7000, 0x7000, 0, 0x7ff, SMH_UNMAP);
|
||||
memory_install_read8_handler(space, 0x7800, 0x7800, 0, 0x7ff, watchdog_reset_r);
|
||||
}
|
||||
|
||||
|
||||
@ -2737,14 +2782,16 @@ static DRIVER_INIT( frogger )
|
||||
|
||||
static DRIVER_INIT( froggrmc )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
/* video extensions */
|
||||
common_init(machine, NULL, frogger_draw_background, frogger_extend_tile_info, frogger_extend_sprite_info);
|
||||
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xa800, 0xa800, 0, 0x7ff, soundlatch_w);
|
||||
memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xb001, 0xb001, 0, 0x7f8, froggrmc_sound_control_w);
|
||||
memory_install_write8_handler(space, 0xa800, 0xa800, 0, 0x7ff, soundlatch_w);
|
||||
memory_install_write8_handler(space, 0xb001, 0xb001, 0, 0x7f8, froggrmc_sound_control_w);
|
||||
|
||||
/* actually needs 2k of RAM */
|
||||
memory_install_readwrite8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x8000, 0x87ff, 0, 0, SMH_BANK1, SMH_BANK1);
|
||||
memory_install_readwrite8_handler(space, 0x8000, 0x87ff, 0, 0, SMH_BANK1, SMH_BANK1);
|
||||
memory_set_bankptr(machine, 1, auto_malloc(0x800));
|
||||
|
||||
/* decrypt */
|
||||
@ -2781,17 +2828,19 @@ static DRIVER_INIT( amidar )
|
||||
|
||||
static DRIVER_INIT( scorpion )
|
||||
{
|
||||
const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
common_init(machine, scramble_draw_bullet, scramble_draw_background, batman2_extend_tile_info, upper_extend_sprite_info);
|
||||
|
||||
/* hook up AY8910 */
|
||||
memory_install_readwrite8_handler(cpu_get_address_space(machine->cpu[1], ADDRESS_SPACE_IO), 0x00, 0xff, 0, 0, scorpion_ay8910_r, scorpion_ay8910_w);
|
||||
|
||||
/* extra ROM */
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x5800, 0x67ff, 0, 0, SMH_BANK1);
|
||||
memory_install_read8_handler(space, 0x5800, 0x67ff, 0, 0, SMH_BANK1);
|
||||
memory_set_bankptr(machine, 1, memory_region(machine, "main") + 0x5800);
|
||||
|
||||
/* no background related */
|
||||
// memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x6803, 0x6803, 0, 0, SMH_NOP);
|
||||
// memory_install_write8_handler(space, 0x6803, 0x6803, 0, 0, SMH_NOP);
|
||||
|
||||
memory_install_read8_handler(cpu_get_address_space(machine->cpu[1], ADDRESS_SPACE_PROGRAM), 0x3000, 0x3000, 0, 0, scorpion_sound_status_r);
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user