diff options
Diffstat (limited to 'src/mame/machine/vsnes.cpp')
-rw-r--r-- | src/mame/machine/vsnes.cpp | 108 |
1 files changed, 54 insertions, 54 deletions
diff --git a/src/mame/machine/vsnes.cpp b/src/mame/machine/vsnes.cpp index b3fa0904d2b..c794e45767f 100644 --- a/src/mame/machine/vsnes.cpp +++ b/src/mame/machine/vsnes.cpp @@ -35,7 +35,7 @@ static const char * const chr_banknames[] = { "bank2", "bank3", "bank4", "bank5" * *************************************/ -WRITE8_MEMBER(vsnes_state::vsnes_in0_w) +void vsnes_state::vsnes_in0_w(uint8_t data) { /* Toggling bit 0 high then low resets both controllers */ if (data & 1) @@ -46,7 +46,7 @@ WRITE8_MEMBER(vsnes_state::vsnes_in0_w) } } -READ8_MEMBER(vsnes_state::gun_in0_r) +uint8_t vsnes_state::gun_in0_r() { int ret = (m_input_latch[0]) & 1; @@ -70,7 +70,7 @@ READ8_MEMBER(vsnes_state::gun_in0_r) } -READ8_MEMBER(vsnes_state::vsnes_in0_r) +uint8_t vsnes_state::vsnes_in0_r() { int ret = (m_input_latch[0]) & 1; @@ -84,7 +84,7 @@ READ8_MEMBER(vsnes_state::vsnes_in0_r) } -READ8_MEMBER(vsnes_state::vsnes_in1_r) +uint8_t vsnes_state::vsnes_in1_r() { int ret = (m_input_latch[1]) & 1; @@ -96,7 +96,7 @@ READ8_MEMBER(vsnes_state::vsnes_in1_r) return ret; } -WRITE8_MEMBER(vsnes_state::vsnes_in0_1_w) +void vsnes_state::vsnes_in0_1_w(uint8_t data) { /* Toggling bit 0 high then low resets both controllers */ if (data & 1) @@ -107,7 +107,7 @@ WRITE8_MEMBER(vsnes_state::vsnes_in0_1_w) } } -READ8_MEMBER(vsnes_state::vsnes_in0_1_r) +uint8_t vsnes_state::vsnes_in0_1_r() { int ret = (m_input_latch[2]) & 1; @@ -119,7 +119,7 @@ READ8_MEMBER(vsnes_state::vsnes_in0_1_r) return ret; } -READ8_MEMBER(vsnes_state::vsnes_in1_1_r) +uint8_t vsnes_state::vsnes_in1_1_r() { int ret = (m_input_latch[3]) & 1; @@ -196,7 +196,7 @@ MACHINE_START_MEMBER(vsnes_state,vsnes) m_nt_page[0][2] = m_nt_ram[0].get() + 0x800; m_nt_page[0][3] = m_nt_ram[0].get() + 0xc00; - ppu1_space.install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(vsnes_state::vsnes_nt0_r)), write8_delegate(*this, FUNC(vsnes_state::vsnes_nt0_w))); + ppu1_space.install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(*this, FUNC(vsnes_state::vsnes_nt0_r)), write8sm_delegate(*this, FUNC(vsnes_state::vsnes_nt0_w))); if (m_gfx1_rom != nullptr) { @@ -249,8 +249,8 @@ MACHINE_START_MEMBER(vsnes_state,vsdual) m_nt_page[1][2] = m_nt_ram[1].get() + 0x800; m_nt_page[1][3] = m_nt_ram[1].get() + 0xc00; - m_ppu1->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(vsnes_state::vsnes_nt0_r)), write8_delegate(*this, FUNC(vsnes_state::vsnes_nt0_w))); - m_ppu2->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(vsnes_state::vsnes_nt1_r)), write8_delegate(*this, FUNC(vsnes_state::vsnes_nt1_w))); + m_ppu1->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(*this, FUNC(vsnes_state::vsnes_nt0_r)), write8sm_delegate(*this, FUNC(vsnes_state::vsnes_nt0_w))); + m_ppu2->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(*this, FUNC(vsnes_state::vsnes_nt1_r)), write8sm_delegate(*this, FUNC(vsnes_state::vsnes_nt1_w))); // read only! m_ppu1->space(AS_PROGRAM).install_read_bank(0x0000, 0x1fff, "bank2"); // read only! @@ -267,25 +267,25 @@ MACHINE_START_MEMBER(vsnes_state,vsdual) * *************************************/ -WRITE8_MEMBER(vsnes_state::vsnes_nt0_w) +void vsnes_state::vsnes_nt0_w(offs_t offset, uint8_t data) { int page = ((offset & 0xc00) >> 10); m_nt_page[0][page][offset & 0x3ff] = data; } -WRITE8_MEMBER(vsnes_state::vsnes_nt1_w) +void vsnes_state::vsnes_nt1_w(offs_t offset, uint8_t data) { int page = ((offset & 0xc00) >> 10); m_nt_page[1][page][offset & 0x3ff] = data; } -READ8_MEMBER(vsnes_state::vsnes_nt0_r) +uint8_t vsnes_state::vsnes_nt0_r(offs_t offset) { int page = ((offset&0xc00) >> 10); return m_nt_page[0][page][offset & 0x3ff]; } -READ8_MEMBER(vsnes_state::vsnes_nt1_r) +uint8_t vsnes_state::vsnes_nt1_r(offs_t offset) { int page = ((offset & 0xc00) >> 10); return m_nt_page[1][page][offset & 0x3ff]; @@ -333,7 +333,7 @@ void vsnes_state::v_set_mirroring(int ppu, int mirroring) /**********************************************************************************/ /* Most games: VROM Banking in controller 0 write */ -WRITE8_MEMBER(vsnes_state::vsnormal_vrom_banking) +void vsnes_state::vsnormal_vrom_banking(uint8_t data) { /* switch vrom */ v_set_videorom_bank(0, 8, (data & 4) ? 8 : 0); @@ -341,19 +341,19 @@ WRITE8_MEMBER(vsnes_state::vsnormal_vrom_banking) /* bit 1 ( data & 2 ) enables writes to extra ram, we ignore it */ /* move along */ - vsnes_in0_w(space, offset, data); + vsnes_in0_w(data); } void vsnes_state::init_vsnormal() { /* vrom switching is enabled with bit 2 of $4016 */ - m_maincpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(*this, FUNC(vsnes_state::vsnormal_vrom_banking))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8smo_delegate(*this, FUNC(vsnes_state::vsnormal_vrom_banking))); } /**********************************************************************************/ /* Gun games: VROM Banking in controller 0 write */ -WRITE8_MEMBER(vsnes_state::gun_in0_w) +void vsnes_state::gun_in0_w(uint8_t data) { if (m_do_vrom_bank) { @@ -430,14 +430,14 @@ WRITE8_MEMBER(vsnes_state::gun_in0_w) void vsnes_state::init_vsgun() { /* VROM switching is enabled with bit 2 of $4016 */ - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(*this, FUNC(vsnes_state::gun_in0_r)), write8_delegate(*this, FUNC(vsnes_state::gun_in0_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8smo_delegate(*this, FUNC(vsnes_state::gun_in0_r)), write8smo_delegate(*this, FUNC(vsnes_state::gun_in0_w))); m_do_vrom_bank = 1; } /**********************************************************************************/ /* Konami games: ROMs bankings at $8000-$ffff */ -WRITE8_MEMBER(vsnes_state::vskonami_rom_banking) +void vsnes_state::vskonami_rom_banking(offs_t offset, uint8_t data) { int reg = (offset >> 12) & 0x07; int bankoffset = (data & 7) * 0x2000 + 0x10000; @@ -471,13 +471,13 @@ void vsnes_state::init_vskonami() memcpy(&prg[0x08000], &prg[0x18000], 0x8000); /* banking is done with writes to the $8000-$ffff area */ - m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::vskonami_rom_banking))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8sm_delegate(*this, FUNC(vsnes_state::vskonami_rom_banking))); } /***********************************************************************/ /* Vs. Gumshoe */ -WRITE8_MEMBER(vsnes_state::vsgshoe_gun_in0_w) +void vsnes_state::vsgshoe_gun_in0_w(uint8_t data) { int addr; if((data & 0x04) != m_old_bank) @@ -488,7 +488,7 @@ WRITE8_MEMBER(vsnes_state::vsgshoe_gun_in0_w) memcpy(&prg[0x08000], &prg[addr], 0x2000); } - gun_in0_w(space, offset, data); + gun_in0_w(data); } void vsnes_state::init_vsgshoe() @@ -498,7 +498,7 @@ void vsnes_state::init_vsgshoe() memcpy (&prg[0x08000], &prg[0x12000], 0x2000); /* vrom switching is enabled with bit 2 of $4016 */ - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(*this, FUNC(vsnes_state::gun_in0_r)), write8_delegate(*this, FUNC(vsnes_state::vsgshoe_gun_in0_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8smo_delegate(*this, FUNC(vsnes_state::gun_in0_r)), write8smo_delegate(*this, FUNC(vsnes_state::vsgshoe_gun_in0_w))); m_do_vrom_bank = 1; } @@ -507,7 +507,7 @@ void vsnes_state::init_vsgshoe() /* Dr Mario: ROMs bankings at $8000-$ffff */ -WRITE8_MEMBER(vsnes_state::drmario_rom_banking) +void vsnes_state::drmario_rom_banking(offs_t offset, uint8_t data) { /* basically, a MMC1 mapper from the nes */ @@ -627,7 +627,7 @@ void vsnes_state::init_drmario() memcpy(&prg[0x0c000], &prg[0x1c000], 0x4000); /* MMC1 mapper at writes to $8000-$ffff */ - m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::drmario_rom_banking))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8sm_delegate(*this, FUNC(vsnes_state::drmario_rom_banking))); m_drmario_shiftreg = 0; m_drmario_shiftcount = 0; @@ -636,7 +636,7 @@ void vsnes_state::init_drmario() /**********************************************************************************/ /* Games with VRAM instead of graphics ROMs: ROMs bankings at $8000-$ffff */ -WRITE8_MEMBER(vsnes_state::vsvram_rom_banking) +void vsnes_state::vsvram_rom_banking(uint8_t data) { int rombank = 0x10000 + (data & 7) * 0x4000; uint8_t *prg = memregion("maincpu")->base(); @@ -651,7 +651,7 @@ void vsnes_state::init_vsvram() memcpy(&prg[0x08000], &prg[0x28000], 0x8000); /* banking is done with writes to the $8000-$ffff area */ - m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::vsvram_rom_banking))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8smo_delegate(*this, FUNC(vsnes_state::vsvram_rom_banking))); /* allocate m_vram */ m_vram = std::make_unique<uint8_t[]>(0x2000); @@ -705,7 +705,7 @@ void vsnes_state::mapper4_irq( int scanline, int vblank, int blanked ) } } -WRITE8_MEMBER(vsnes_state::mapper4_w) +void vsnes_state::mapper4_w(offs_t offset, uint8_t data) { uint8_t MMC3_helper, cmd; @@ -802,7 +802,7 @@ void vsnes_state::init_MMC3() memcpy(&prg[0xe000], &prg[(MMC3_prg_chunks - 1) * 0x4000 + 0x12000], 0x2000); /* MMC3 mapper at writes to $8000-$ffff */ - m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::mapper4_w))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8sm_delegate(*this, FUNC(vsnes_state::mapper4_w))); /* extra ram at $6000-$7fff */ m_maincpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff); @@ -810,7 +810,7 @@ void vsnes_state::init_MMC3() /* Vs. RBI Baseball */ -READ8_MEMBER(vsnes_state::rbi_hack_r) +uint8_t vsnes_state::rbi_hack_r(offs_t offset) { /* Supplied by Ben Parnell <xodnizel@home.com> of FCE Ultra fame */ @@ -842,18 +842,18 @@ void vsnes_state::init_rbibb() init_MMC3(); /* RBI Base ball hack */ - m_maincpu->space(AS_PROGRAM).install_read_handler(0x5e00, 0x5e01, read8_delegate(*this, FUNC(vsnes_state::rbi_hack_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x5e00, 0x5e01, read8sm_delegate(*this, FUNC(vsnes_state::rbi_hack_r))); } /* Vs. Super Xevious */ -READ8_MEMBER(vsnes_state::supxevs_read_prot_1_r) +uint8_t vsnes_state::supxevs_read_prot_1_r() { return 0x05; } -READ8_MEMBER(vsnes_state::supxevs_read_prot_2_r) +uint8_t vsnes_state::supxevs_read_prot_2_r() { if (m_supxevs_prot_index) return 0; @@ -861,7 +861,7 @@ READ8_MEMBER(vsnes_state::supxevs_read_prot_2_r) return 0x01; } -READ8_MEMBER(vsnes_state::supxevs_read_prot_3_r) +uint8_t vsnes_state::supxevs_read_prot_3_r() { if (m_supxevs_prot_index) return 0xd1; @@ -869,7 +869,7 @@ READ8_MEMBER(vsnes_state::supxevs_read_prot_3_r) return 0x89; } -READ8_MEMBER(vsnes_state::supxevs_read_prot_4_r) +uint8_t vsnes_state::supxevs_read_prot_4_r() { if (m_supxevs_prot_index) { @@ -889,15 +889,15 @@ void vsnes_state::init_supxevs() init_MMC3(); /* Vs. Super Xevious Protection */ - m_maincpu->space(AS_PROGRAM).install_read_handler(0x54ff, 0x54ff, read8_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_1_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x5678, 0x5678, read8_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_2_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x578f, 0x578f, read8_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_3_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x5567, 0x5567, read8_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_4_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x54ff, 0x54ff, read8smo_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_1_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x5678, 0x5678, read8smo_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_2_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x578f, 0x578f, read8smo_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_3_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x5567, 0x5567, read8smo_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_4_r))); } /* Vs. TKO Boxing */ -READ8_MEMBER(vsnes_state::tko_security_r) +uint8_t vsnes_state::tko_security_r(offs_t offset) { static const uint8_t security_data[] = { 0xff, 0xbf, 0xb7, 0x97, 0x97, 0x17, 0x57, 0x4f, @@ -921,7 +921,7 @@ void vsnes_state::init_tkoboxng() init_MMC3(); /* security device at $5e00-$5e01 */ - m_maincpu->space(AS_PROGRAM).install_read_handler(0x5e00, 0x5e01, read8_delegate(*this, FUNC(vsnes_state::tko_security_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x5e00, 0x5e01, read8sm_delegate(*this, FUNC(vsnes_state::tko_security_r))); } /* Vs. Freedom Force */ @@ -930,7 +930,7 @@ void vsnes_state::init_vsfdf() { init_MMC3(); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(*this, FUNC(vsnes_state::gun_in0_r)), write8_delegate(*this, FUNC(vsnes_state::gun_in0_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8smo_delegate(*this, FUNC(vsnes_state::gun_in0_r)), write8smo_delegate(*this, FUNC(vsnes_state::gun_in0_w))); m_do_vrom_bank = 0; } @@ -938,7 +938,7 @@ void vsnes_state::init_vsfdf() /**********************************************************************************/ /* Platoon rom banking */ -WRITE8_MEMBER(vsnes_state::mapper68_rom_banking) +void vsnes_state::mapper68_rom_banking(offs_t offset, uint8_t data) { switch (offset & 0x7000) { @@ -979,13 +979,13 @@ void vsnes_state::init_platoon() memcpy(&prg[0x08000], &prg[0x10000], 0x4000); memcpy(&prg[0x0c000], &prg[0x2c000], 0x4000); - m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::mapper68_rom_banking))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8sm_delegate(*this, FUNC(vsnes_state::mapper68_rom_banking))); } /**********************************************************************************/ /* Vs. Raid on Bungeling Bay (Japan) */ -WRITE8_MEMBER(vsnes_state::set_bnglngby_irq_w) +void vsnes_state::set_bnglngby_irq_w(uint8_t data) { m_ret = data; m_maincpu->set_input_line(0, (data & 2) ? ASSERT_LINE : CLEAR_LINE); @@ -993,14 +993,14 @@ WRITE8_MEMBER(vsnes_state::set_bnglngby_irq_w) /* 0, 4, 84 */ } -READ8_MEMBER(vsnes_state::set_bnglngby_irq_r) +uint8_t vsnes_state::set_bnglngby_irq_r() { return m_ret; } void vsnes_state::init_bnglngby() { - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0231, 0x0231, read8_delegate(*this, FUNC(vsnes_state::set_bnglngby_irq_r)), write8_delegate(*this, FUNC(vsnes_state::set_bnglngby_irq_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0231, 0x0231, read8smo_delegate(*this, FUNC(vsnes_state::set_bnglngby_irq_r)), write8smo_delegate(*this, FUNC(vsnes_state::set_bnglngby_irq_w))); /* extra ram */ m_maincpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff); @@ -1014,7 +1014,7 @@ void vsnes_state::init_bnglngby() /**********************************************************************************/ /* VS Dualsystem */ -WRITE8_MEMBER(vsnes_state::vsdual_vrom_banking_main) +void vsnes_state::vsdual_vrom_banking_main(uint8_t data) { /* switch vrom */ membank("bank2")->set_entry(BIT(data, 2)); @@ -1023,10 +1023,10 @@ WRITE8_MEMBER(vsnes_state::vsdual_vrom_banking_main) m_subcpu->set_input_line(0, (data & 2) ? CLEAR_LINE : ASSERT_LINE); /* move along */ - vsnes_in0_w(space, offset, data); + vsnes_in0_w(data); } -WRITE8_MEMBER(vsnes_state::vsdual_vrom_banking_sub) +void vsnes_state::vsdual_vrom_banking_sub(uint8_t data) { /* switch vrom */ membank("bank3")->set_entry(BIT(data, 2)); @@ -1035,7 +1035,7 @@ WRITE8_MEMBER(vsnes_state::vsdual_vrom_banking_sub) m_maincpu->set_input_line(0, (data & 2) ? CLEAR_LINE : ASSERT_LINE); /* move along */ - vsnes_in0_1_w(space, offset, data); + vsnes_in0_1_w(data); } void vsnes_state::init_vsdual() @@ -1043,8 +1043,8 @@ void vsnes_state::init_vsdual() uint8_t *prg = memregion("maincpu")->base(); /* vrom switching is enabled with bit 2 of $4016 */ - m_maincpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(*this, FUNC(vsnes_state::vsdual_vrom_banking_main))); - m_subcpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(*this, FUNC(vsnes_state::vsdual_vrom_banking_sub))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8smo_delegate(*this, FUNC(vsnes_state::vsdual_vrom_banking_main))); + m_subcpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8smo_delegate(*this, FUNC(vsnes_state::vsdual_vrom_banking_sub))); /* shared ram at $6000 */ m_maincpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff, &prg[0x6000]); |