diff options
Diffstat (limited to 'src/mame/drivers/fuukifg2.c')
-rw-r--r-- | src/mame/drivers/fuukifg2.c | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c index 71172433c7b..f680191ba08 100644 --- a/src/mame/drivers/fuukifg2.c +++ b/src/mame/drivers/fuukifg2.c @@ -60,7 +60,7 @@ To Do: ***************************************************************************/ -WRITE16_MEMBER(fuuki16_state::fuuki16_vregs_w) +WRITE16_MEMBER(fuuki16_state::vregs_w) { UINT16 old_data = m_vregs[offset]; UINT16 new_data = COMBINE_DATA(&m_vregs[offset]); @@ -72,7 +72,7 @@ WRITE16_MEMBER(fuuki16_state::fuuki16_vregs_w) } } -WRITE16_MEMBER(fuuki16_state::fuuki16_sound_command_w) +WRITE16_MEMBER(fuuki16_state::sound_command_w) { if (ACCESSING_BITS_0_7) { @@ -86,17 +86,17 @@ WRITE16_MEMBER(fuuki16_state::fuuki16_sound_command_w) static ADDRESS_MAP_START( fuuki16_map, AS_PROGRAM, 16, fuuki16_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM AM_RANGE(0x400000, 0x40ffff) AM_RAM // RAM - AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(fuuki16_vram_0_w) AM_SHARE("vram.0") // Layers - AM_RANGE(0x502000, 0x503fff) AM_RAM_WRITE(fuuki16_vram_1_w) AM_SHARE("vram.1") // - AM_RANGE(0x504000, 0x505fff) AM_RAM_WRITE(fuuki16_vram_2_w) AM_SHARE("vram.2") // - AM_RANGE(0x506000, 0x507fff) AM_RAM_WRITE(fuuki16_vram_3_w) AM_SHARE("vram.3") // + AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(vram_0_w) AM_SHARE("vram.0") // Layers + AM_RANGE(0x502000, 0x503fff) AM_RAM_WRITE(vram_1_w) AM_SHARE("vram.1") // + AM_RANGE(0x504000, 0x505fff) AM_RAM_WRITE(vram_2_w) AM_SHARE("vram.2") // + AM_RANGE(0x506000, 0x507fff) AM_RAM_WRITE(vram_3_w) AM_SHARE("vram.3") // AM_RANGE(0x600000, 0x601fff) AM_MIRROR(0x008000) AM_DEVREADWRITE("fuukivid", fuukivid_device, fuuki_sprram_r, fuuki_sprram_w) AM_SHARE("spriteram") // Sprites, mirrored? AM_RANGE(0x700000, 0x703fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x800000, 0x800001) AM_READ_PORT("SYSTEM") AM_RANGE(0x810000, 0x810001) AM_READ_PORT("P1_P2") AM_RANGE(0x880000, 0x880001) AM_READ_PORT("DSW") - AM_RANGE(0x8a0000, 0x8a0001) AM_WRITE(fuuki16_sound_command_w) // To Sound CPU - AM_RANGE(0x8c0000, 0x8c001f) AM_RAM_WRITE(fuuki16_vregs_w) AM_SHARE("vregs") // Video Registers + AM_RANGE(0x8a0000, 0x8a0001) AM_WRITE(sound_command_w) // To Sound CPU + AM_RANGE(0x8c0000, 0x8c001f) AM_RAM_WRITE(vregs_w) AM_SHARE("vregs") // Video Registers AM_RANGE(0x8d0000, 0x8d0003) AM_RAM AM_SHARE("unknown") // AM_RANGE(0x8e0000, 0x8e0001) AM_RAM AM_SHARE("priority") // ADDRESS_MAP_END @@ -110,7 +110,7 @@ ADDRESS_MAP_END ***************************************************************************/ -WRITE8_MEMBER(fuuki16_state::fuuki16_sound_rombank_w) +WRITE8_MEMBER(fuuki16_state::sound_rombank_w) { if (data <= 2) membank("bank1")->set_entry(data); @@ -118,7 +118,7 @@ WRITE8_MEMBER(fuuki16_state::fuuki16_sound_rombank_w) logerror("CPU #1 - PC %04X: unknown bank bits: %02X\n", space.device().safe_pc(), data); } -WRITE8_MEMBER(fuuki16_state::fuuki16_oki_banking_w) +WRITE8_MEMBER(fuuki16_state::oki_banking_w) { /* data & 0x06 is always equals to data & 0x60 @@ -136,9 +136,9 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( fuuki16_sound_io_map, AS_IO, 8, fuuki16_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_WRITE(fuuki16_sound_rombank_w) // ROM Bank + AM_RANGE(0x00, 0x00) AM_WRITE(sound_rombank_w) // ROM Bank AM_RANGE(0x11, 0x11) AM_READ(soundlatch_byte_r) AM_WRITENOP // From Main CPU / ? To Main CPU ? - AM_RANGE(0x20, 0x20) AM_WRITE(fuuki16_oki_banking_w) // Oki Banking + AM_RANGE(0x20, 0x20) AM_WRITE(oki_banking_w) // Oki Banking AM_RANGE(0x30, 0x30) AM_WRITENOP // ? In the NMI routine AM_RANGE(0x40, 0x41) AM_DEVWRITE("ym1", ym2203_device, write) AM_RANGE(0x50, 0x51) AM_DEVREADWRITE("ym2", ym3812_device, read, write) @@ -399,11 +399,11 @@ void fuuki16_state::device_timer(emu_timer &timer, device_timer_id id, int param { case TIMER_LEVEL_1_INTERRUPT: m_maincpu->set_input_line(1, HOLD_LINE); - timer_set(m_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); + m_level_1_interrupt_timer->adjust(m_screen->time_until_pos(248)); break; case TIMER_VBLANK_INTERRUPT: m_maincpu->set_input_line(3, HOLD_LINE); // VBlank IRQ - timer_set(m_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); + m_vblank_interrupt_timer->adjust(m_screen->time_until_vblank_start()); break; case TIMER_RASTER_INTERRUPT: m_maincpu->set_input_line(5, HOLD_LINE); // Raster Line IRQ @@ -422,6 +422,8 @@ void fuuki16_state::machine_start() membank("bank1")->configure_entries(0, 3, &ROM[0x10000], 0x8000); + m_level_1_interrupt_timer = timer_alloc(TIMER_LEVEL_1_INTERRUPT); + m_vblank_interrupt_timer = timer_alloc(TIMER_VBLANK_INTERRUPT); m_raster_interrupt_timer = timer_alloc(TIMER_RASTER_INTERRUPT); } @@ -430,8 +432,8 @@ void fuuki16_state::machine_reset() { const rectangle &visarea = m_screen->visible_area(); - timer_set(m_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); - timer_set(m_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); + m_level_1_interrupt_timer->adjust(m_screen->time_until_pos(248)); + m_vblank_interrupt_timer->adjust(m_screen->time_until_vblank_start()); m_raster_interrupt_timer->adjust(m_screen->time_until_pos(0, visarea.max_x + 1)); } @@ -452,7 +454,7 @@ static MACHINE_CONFIG_START( fuuki16, fuuki16_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-16-1) - MCFG_SCREEN_UPDATE_DRIVER(fuuki16_state, screen_update_fuuki16) + MCFG_SCREEN_UPDATE_DRIVER(fuuki16_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", fuuki16) @@ -661,6 +663,6 @@ ROM_END ***************************************************************************/ -GAME( 1995, gogomile, 0, fuuki16, gogomile, driver_device, 0, ROT0, "Fuuki", "Susume! Mile Smile / Go Go! Mile Smile (newer)", 0 ) -GAME( 1995, gogomileo, gogomile, fuuki16, gogomileo, driver_device, 0, ROT0, "Fuuki", "Susume! Mile Smile / Go Go! Mile Smile (older)", 0 ) -GAME( 1996, pbancho, 0, fuuki16, pbancho, driver_device, 0, ROT0, "Fuuki", "Gyakuten!! Puzzle Bancho (Japan)", 0) +GAME( 1995, gogomile, 0, fuuki16, gogomile, driver_device, 0, ROT0, "Fuuki", "Susume! Mile Smile / Go Go! Mile Smile (newer)", GAME_SUPPORTS_SAVE ) +GAME( 1995, gogomileo, gogomile, fuuki16, gogomileo, driver_device, 0, ROT0, "Fuuki", "Susume! Mile Smile / Go Go! Mile Smile (older)", GAME_SUPPORTS_SAVE ) +GAME( 1996, pbancho, 0, fuuki16, pbancho, driver_device, 0, ROT0, "Fuuki", "Gyakuten!! Puzzle Bancho (Japan)", GAME_SUPPORTS_SAVE ) |