From 5844d38beba702c9e27d7e52f42845c4ff62ca52 Mon Sep 17 00:00:00 2001 From: AJR Date: Mon, 21 May 2018 02:24:37 -0400 Subject: suprnova.cpp, playch10.cpp: Eliminate machine().device (nw) --- src/mame/drivers/suprnova.cpp | 38 +++++++++++++++++------------------ src/mame/includes/playch10.h | 2 ++ src/mame/machine/playch10.cpp | 46 +++++++++++++++++++++---------------------- 3 files changed, 44 insertions(+), 42 deletions(-) diff --git a/src/mame/drivers/suprnova.cpp b/src/mame/drivers/suprnova.cpp index fd34849a11c..edad0122dc2 100644 --- a/src/mame/drivers/suprnova.cpp +++ b/src/mame/drivers/suprnova.cpp @@ -1007,25 +1007,25 @@ void skns_state::set_drc_pcflush(uint32_t addr) m_maincpu->sh2drc_add_pcflush(addr); } -void skns_state::init_galpani4() { machine().device("spritegen")->skns_sprite_kludge(-5,-1); init_drc(); } -void skns_state::init_galpanis() { machine().device("spritegen")->skns_sprite_kludge(-5,-1); init_drc(); } -void skns_state::init_cyvern() { machine().device("spritegen")->skns_sprite_kludge(+0,+2); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x604d3c8, 0x604d3cb, read32_delegate(FUNC(skns_state::cyvern_speedup_r),this) ); set_drc_pcflush(0x402ebd2); } -void skns_state::init_galpans2() { machine().device("spritegen")->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60fb6bc, 0x60fb6bf, read32_delegate(FUNC(skns_state::galpans2_speedup_r),this) ); set_drc_pcflush(0x4049ae2); } -void skns_state::init_gutsn() { machine().device("spritegen")->skns_sprite_kludge(+0,+0); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x600c780, 0x600c783, read32_delegate(FUNC(skns_state::gutsn_speedup_r),this) ); set_drc_pcflush(0x402206e); } -void skns_state::init_panicstr() { machine().device("spritegen")->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60f19e4, 0x60f19e7, read32_delegate(FUNC(skns_state::panicstr_speedup_r),this) ); set_drc_pcflush(0x404e68a); } -void skns_state::init_senknow() { machine().device("spritegen")->skns_sprite_kludge(+1,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60000dc, 0x60000df, read32_delegate(FUNC(skns_state::senknow_speedup_r),this) ); set_drc_pcflush(0x4017dce); } -void skns_state::init_puzzloope() { machine().device("spritegen")->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6081d38, 0x6081d3b, read32_delegate(FUNC(skns_state::puzzloope_speedup_r),this) ); set_drc_pcflush(0x401da14); } -void skns_state::init_puzzloopj() { machine().device("spritegen")->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6086714, 0x6086717, read32_delegate(FUNC(skns_state::puzzloopj_speedup_r),this) ); set_drc_pcflush(0x401dca0); } -void skns_state::init_puzzloopa() { machine().device("spritegen")->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085bcc, 0x6085bcf, read32_delegate(FUNC(skns_state::puzzloopa_speedup_r),this) ); set_drc_pcflush(0x401d9d4); } -void skns_state::init_puzzloopu() { machine().device("spritegen")->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085cec, 0x6085cef, read32_delegate(FUNC(skns_state::puzzloopu_speedup_r),this) ); set_drc_pcflush(0x401dab0); } -void skns_state::init_jjparads() { machine().device("spritegen")->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000994, 0x6000997, read32_delegate(FUNC(skns_state::jjparads_speedup_r),this) ); set_drc_pcflush(0x4015e84); } -void skns_state::init_jjparad2() { machine().device("spritegen")->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000984, 0x6000987, read32_delegate(FUNC(skns_state::jjparad2_speedup_r),this) ); set_drc_pcflush(0x401620a); } -void skns_state::init_ryouran() { machine().device("spritegen")->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000a14, 0x6000a17, read32_delegate(FUNC(skns_state::ryouran_speedup_r),this) ); set_drc_pcflush(0x40182ce); } -void skns_state::init_teljan() { machine().device("spritegen")->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6002fb4, 0x6002fb7, read32_delegate(FUNC(skns_state::teljan_speedup_r),this) ); set_drc_pcflush(0x401ba32); } -void skns_state::init_sengekis() { machine().device("spritegen")->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b74bc, 0x60b74bf, read32_delegate(FUNC(skns_state::sengekis_speedup_r),this) ); set_drc_pcflush(0x60006ec); } -void skns_state::init_sengekij() { machine().device("spritegen")->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b7380, 0x60b7383, read32_delegate(FUNC(skns_state::sengekij_speedup_r),this) ); set_drc_pcflush(0x60006ec); } -void skns_state::init_sarukani() { machine().device("spritegen")->skns_sprite_kludge(-1,-1); init_drc(); set_drc_pcflush(0x4013b42); } // Speedup is in io_w() -void skns_state::init_galpans3() { machine().device("spritegen")->skns_sprite_kludge(-1,-1); init_drc(); } +void skns_state::init_galpani4() { m_spritegen->skns_sprite_kludge(-5,-1); init_drc(); } +void skns_state::init_galpanis() { m_spritegen->skns_sprite_kludge(-5,-1); init_drc(); } +void skns_state::init_cyvern() { m_spritegen->skns_sprite_kludge(+0,+2); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x604d3c8, 0x604d3cb, read32_delegate(FUNC(skns_state::cyvern_speedup_r),this) ); set_drc_pcflush(0x402ebd2); } +void skns_state::init_galpans2() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60fb6bc, 0x60fb6bf, read32_delegate(FUNC(skns_state::galpans2_speedup_r),this) ); set_drc_pcflush(0x4049ae2); } +void skns_state::init_gutsn() { m_spritegen->skns_sprite_kludge(+0,+0); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x600c780, 0x600c783, read32_delegate(FUNC(skns_state::gutsn_speedup_r),this) ); set_drc_pcflush(0x402206e); } +void skns_state::init_panicstr() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60f19e4, 0x60f19e7, read32_delegate(FUNC(skns_state::panicstr_speedup_r),this) ); set_drc_pcflush(0x404e68a); } +void skns_state::init_senknow() { m_spritegen->skns_sprite_kludge(+1,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60000dc, 0x60000df, read32_delegate(FUNC(skns_state::senknow_speedup_r),this) ); set_drc_pcflush(0x4017dce); } +void skns_state::init_puzzloope() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6081d38, 0x6081d3b, read32_delegate(FUNC(skns_state::puzzloope_speedup_r),this) ); set_drc_pcflush(0x401da14); } +void skns_state::init_puzzloopj() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6086714, 0x6086717, read32_delegate(FUNC(skns_state::puzzloopj_speedup_r),this) ); set_drc_pcflush(0x401dca0); } +void skns_state::init_puzzloopa() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085bcc, 0x6085bcf, read32_delegate(FUNC(skns_state::puzzloopa_speedup_r),this) ); set_drc_pcflush(0x401d9d4); } +void skns_state::init_puzzloopu() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085cec, 0x6085cef, read32_delegate(FUNC(skns_state::puzzloopu_speedup_r),this) ); set_drc_pcflush(0x401dab0); } +void skns_state::init_jjparads() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000994, 0x6000997, read32_delegate(FUNC(skns_state::jjparads_speedup_r),this) ); set_drc_pcflush(0x4015e84); } +void skns_state::init_jjparad2() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000984, 0x6000987, read32_delegate(FUNC(skns_state::jjparad2_speedup_r),this) ); set_drc_pcflush(0x401620a); } +void skns_state::init_ryouran() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000a14, 0x6000a17, read32_delegate(FUNC(skns_state::ryouran_speedup_r),this) ); set_drc_pcflush(0x40182ce); } +void skns_state::init_teljan() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6002fb4, 0x6002fb7, read32_delegate(FUNC(skns_state::teljan_speedup_r),this) ); set_drc_pcflush(0x401ba32); } +void skns_state::init_sengekis() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b74bc, 0x60b74bf, read32_delegate(FUNC(skns_state::sengekis_speedup_r),this) ); set_drc_pcflush(0x60006ec); } +void skns_state::init_sengekij() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b7380, 0x60b7383, read32_delegate(FUNC(skns_state::sengekij_speedup_r),this) ); set_drc_pcflush(0x60006ec); } +void skns_state::init_sarukani() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc(); set_drc_pcflush(0x4013b42); } // Speedup is in io_w() +void skns_state::init_galpans3() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc(); } diff --git a/src/mame/includes/playch10.h b/src/mame/includes/playch10.h index 13e01f0a630..a5c1450ce5a 100644 --- a/src/mame/includes/playch10.h +++ b/src/mame/includes/playch10.h @@ -14,6 +14,7 @@ public: playch10_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") + , m_cartcpu(*this, "cart") , m_ppu(*this, "ppu") , m_rp5h01(*this, "rp5h01") , m_ram_8w(*this, "ram_8w") @@ -117,6 +118,7 @@ private: uint32_t screen_update_playch10_single(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); required_device m_maincpu; + required_device m_cartcpu; required_device m_ppu; optional_device m_rp5h01; diff --git a/src/mame/machine/playch10.cpp b/src/mame/machine/playch10.cpp index 5f9981562ef..e9fde5b157c 100644 --- a/src/mame/machine/playch10.cpp +++ b/src/mame/machine/playch10.cpp @@ -45,14 +45,14 @@ void playch10_state::machine_start() /* move to individual boards as documentation of actual boards allows */ m_nt_ram = std::make_unique(0x1000); - machine().device("ppu")->memory().space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(playch10_state::pc10_chr_r),this), write8_delegate(FUNC(playch10_state::pc10_chr_w),this)); - machine().device("ppu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(playch10_state::pc10_nt_r),this),write8_delegate(FUNC(playch10_state::pc10_nt_w),this)); + m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(playch10_state::pc10_chr_r),this), write8_delegate(FUNC(playch10_state::pc10_chr_w),this)); + m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(playch10_state::pc10_nt_r),this),write8_delegate(FUNC(playch10_state::pc10_nt_w),this)); if (nullptr != m_vram) set_videoram_bank(0, 8, 0, 8); else pc10_set_videorom_bank(0, 8, 0, 8); - nvram_device *nvram = machine().device("nvram"); + nvram_device *nvram = subdevice("nvram"); if (nvram != nullptr) nvram->set_base(memregion("cart")->base() + 0x6000, 0x1000); } @@ -68,8 +68,8 @@ MACHINE_START_MEMBER(playch10_state,playch10_hboard) m_vram = std::make_unique(0x2000); - machine().device("ppu")->memory().space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(playch10_state::pc10_chr_r),this), write8_delegate(FUNC(playch10_state::pc10_chr_w),this)); - machine().device("ppu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(playch10_state::pc10_nt_r),this), write8_delegate(FUNC(playch10_state::pc10_nt_w),this)); + m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(playch10_state::pc10_chr_r),this), write8_delegate(FUNC(playch10_state::pc10_chr_w),this)); + m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(playch10_state::pc10_nt_r),this), write8_delegate(FUNC(playch10_state::pc10_nt_w),this)); } /************************************* @@ -122,7 +122,7 @@ WRITE_LINE_MEMBER(playch10_state::dog_di_w) WRITE_LINE_MEMBER(playch10_state::ppu_reset_w) { if (state) - machine().device("ppu")->reset(); + m_ppu->reset(); } READ8_MEMBER(playch10_state::pc10_detectclr_r) @@ -544,7 +544,7 @@ WRITE8_MEMBER(playch10_state::aboard_vrom_switch_w) void playch10_state::init_pcaboard() { /* switches vrom with writes to the $803e-$8041 area */ - machine().device("cart")->memory().space(AS_PROGRAM).install_write_handler(0x8000, 0x8fff, write8_delegate(FUNC(playch10_state::aboard_vrom_switch_w),this)); + m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0x8fff, write8_delegate(FUNC(playch10_state::aboard_vrom_switch_w),this)); /* common init */ init_playch10(); @@ -576,7 +576,7 @@ void playch10_state::init_pcbboard() memcpy(&prg[0x08000], &prg[0x28000], 0x8000); /* Roms are banked at $8000 to $bfff */ - machine().device("cart")->memory().space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::bboard_rom_switch_w),this)); + m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::bboard_rom_switch_w),this)); /* common init */ init_playch10(); @@ -601,7 +601,7 @@ WRITE8_MEMBER(playch10_state::cboard_vrom_switch_w) void playch10_state::init_pccboard() { /* switches vrom with writes to $6000 */ - machine().device("cart")->memory().space(AS_PROGRAM).install_write_handler(0x6000, 0x6000, write8_delegate(FUNC(playch10_state::cboard_vrom_switch_w),this)); + m_cartcpu->space(AS_PROGRAM).install_write_handler(0x6000, 0x6000, write8_delegate(FUNC(playch10_state::cboard_vrom_switch_w),this)); /* we have no vram, make sure switching games doesn't point to an old allocation */ m_vram = nullptr; @@ -624,7 +624,7 @@ void playch10_state::init_pcdboard() m_mmc1_rom_mask = 0x07; /* MMC mapper at writes to $8000-$ffff */ - machine().device("cart")->memory().space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::mmc1_rom_switch_w),this)); + m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::mmc1_rom_switch_w),this)); /* common init */ @@ -640,7 +640,7 @@ void playch10_state::init_pcdboard() void playch10_state::init_pcdboard_2() { /* extra ram at $6000-$7fff */ - machine().device("cart")->memory().space(AS_PROGRAM).install_ram(0x6000, 0x7fff); + m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff); /* common init */ init_pcdboard(); @@ -735,13 +735,13 @@ void playch10_state::init_pceboard() memcpy(&prg[0x08000], &prg[0x28000], 0x8000); /* basically a mapper 9 on a nes */ - machine().device("cart")->memory().space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::eboard_rom_switch_w),this)); + m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::eboard_rom_switch_w),this)); /* ppu_latch callback */ m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(playch10_state::mapper9_latch),this)); /* nvram at $6000-$6fff */ - machine().device("cart")->memory().space(AS_PROGRAM).install_ram(0x6000, 0x6fff); + m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x6fff); /* common init */ init_playch10(); @@ -765,7 +765,7 @@ void playch10_state::init_pcfboard() m_mmc1_rom_mask = ((len - 0x10000) / 0x4000) - 1; /* MMC mapper at writes to $8000-$ffff */ - machine().device("cart")->memory().space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::mmc1_rom_switch_w),this)); + m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::mmc1_rom_switch_w),this)); /* common init */ init_playch10(); @@ -776,7 +776,7 @@ void playch10_state::init_pcfboard() void playch10_state::init_pcfboard_2() { /* extra ram at $6000-$6fff */ - machine().device("cart")->memory().space(AS_PROGRAM).install_ram(0x6000, 0x6fff); + m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x6fff); m_vram = nullptr; @@ -800,7 +800,7 @@ void playch10_state::gboard_scanline_cb( int scanline, int vblank, int blanked ) if (m_IRQ_enable && !blanked && (m_IRQ_count == 0) && priorCount) // according to blargg the latter should be present as well, but it breaks Rampart and Joe & Mac US: they probably use the alt irq! { - machine().device("cart")->execute().set_input_line(0, HOLD_LINE); + m_cartcpu->set_input_line(0, HOLD_LINE); } } } @@ -949,10 +949,10 @@ void playch10_state::init_pcgboard() memcpy(&prg[0x0c000], &prg[0x4c000], 0x4000); /* MMC3 mapper at writes to $8000-$ffff */ - machine().device("cart")->memory().space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::gboard_rom_switch_w),this)); + m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::gboard_rom_switch_w),this)); /* extra ram at $6000-$7fff */ - machine().device("cart")->memory().space(AS_PROGRAM).install_ram(0x6000, 0x7fff); + m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff); m_gboard_banks[0] = 0x1e; m_gboard_banks[1] = 0x1f; @@ -1003,7 +1003,7 @@ void playch10_state::init_pciboard() memcpy(&prg[0x08000], &prg[0x10000], 0x8000); /* Roms are banked at $8000 to $bfff */ - machine().device("cart")->memory().space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::iboard_rom_switch_w),this)); + m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::iboard_rom_switch_w),this)); /* common init */ init_playch10(); @@ -1070,10 +1070,10 @@ void playch10_state::init_pchboard() memcpy(&prg[0x0c000], &prg[0x4c000], 0x4000); /* Roms are banked at $8000 to $bfff */ - machine().device("cart")->memory().space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::hboard_rom_switch_w),this)); + m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::hboard_rom_switch_w),this)); /* extra ram at $6000-$7fff */ - machine().device("cart")->memory().space(AS_PROGRAM).install_ram(0x6000, 0x7fff); + m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff); m_gboard_banks[0] = 0x1e; m_gboard_banks[1] = 0x1f; @@ -1102,10 +1102,10 @@ void playch10_state::init_pckboard() m_mmc1_rom_mask = 0x0f; /* extra ram at $6000-$7fff */ - machine().device("cart")->memory().space(AS_PROGRAM).install_ram(0x6000, 0x7fff); + m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff); /* Roms are banked at $8000 to $bfff */ - machine().device("cart")->memory().space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::mmc1_rom_switch_w),this)); + m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::mmc1_rom_switch_w),this)); /* common init */ init_playch10(); -- cgit v1.2.3