summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/vsnes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/vsnes.cpp')
-rw-r--r--src/mame/machine/vsnes.cpp108
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]);