diff options
author | Olivier Galibert <galibert@pobox.com> | 2020-11-02 12:11:43 +0100 |
---|---|---|
committer | Olivier Galibert <galibert@pobox.com> | 2020-11-02 12:12:11 +0100 |
commit | b8c338858a101d14308c64c87b0f714db4f05326 (patch) | |
tree | a34dca21d603b98f5450d31868ce33a7e4c103b0 /src/mame/drivers | |
parent | f4172ded3ec6f3b877ab813f6453d6d1907c1c00 (diff) |
emumem: Simplify memory management. [O. Galibert]
API impact:
- install_ram/rom/writeonly now requires a non-null pointer. If you want
automatically managed ram, add it to a memory map, not in machine_start
- install_*_bank now requires a memory_bank *, not a string
- one can create memory banks outside of memory maps with memory_bank_creator
- one can create memory shares outside of memory maps with memory_share_creator
Memory maps impact:
- ram ranges with overlapping addresses are not shared anymore. Use .share()
- ram ranges touching each other are not merged anymore. Stay in your range
Extra note:
- there is no need to create a bank just to dynamically map some memory/rom.
Just use install_rom/ram/writeonly
Diffstat (limited to 'src/mame/drivers')
211 files changed, 1474 insertions, 1474 deletions
diff --git a/src/mame/drivers/3do.cpp b/src/mame/drivers/3do.cpp index 21c83a4d497..e621c2a9bde 100644 --- a/src/mame/drivers/3do.cpp +++ b/src/mame/drivers/3do.cpp @@ -108,7 +108,7 @@ Part list of Goldstar 3DO Interactive Multiplayer void _3do_state::main_mem(address_map &map) { - map(0x00000000, 0x001FFFFF).bankrw(m_bank1).share(m_dram); /* DRAM */ + map(0x00000000, 0x001FFFFF).bankrw(m_bank1); /* DRAM */ map(0x00200000, 0x003FFFFF).ram().share(m_vram); /* VRAM */ map(0x03000000, 0x030FFFFF).rom().region("bios", 0); /* BIOS */ map(0x03100000, 0x0313FFFF).ram(); /* Brooktree? */ diff --git a/src/mame/drivers/4enlinea.cpp b/src/mame/drivers/4enlinea.cpp index 4e9fc05ef40..9c5e6d32d37 100644 --- a/src/mame/drivers/4enlinea.cpp +++ b/src/mame/drivers/4enlinea.cpp @@ -333,7 +333,7 @@ void isa8_cga_4enlinea_device::device_start() //m_isa->install_device(0x3bf, 0x3bf, 0, 0, nullptr, write8_delegate(*this, FUNC(isa8_cga_4enlinea_device::_4enlinea_mode_control_w))); m_isa->install_device(0x3d0, 0x3df, read8sm_delegate(*this, FUNC(isa8_cga_4enlinea_device::_4enlinea_io_read)), write8sm_delegate(*this, FUNC(isa8_cga_device::io_write))); - m_isa->install_bank(0x8000, 0xbfff, "bank1", &m_vram[0]); + m_isa->install_bank(0x8000, 0xbfff, &m_vram[0]); // Initialise the CGA palette int i; diff --git a/src/mame/drivers/8080bw.cpp b/src/mame/drivers/8080bw.cpp index 28cd39bc228..21be1a32d1d 100644 --- a/src/mame/drivers/8080bw.cpp +++ b/src/mame/drivers/8080bw.cpp @@ -2226,7 +2226,7 @@ void _8080bw_state::yosakdon_map(address_map &map) { map(0x0000, 0x1fff).rom(); map(0x2000, 0x3fff).ram().share("main_ram"); - map(0x4000, 0x43ff).writeonly(); /* what's this? */ + map(0x4000, 0x43ff).nopw(); /* what's this? */ } void _8080bw_state::yosakdon_io_map(address_map &map) diff --git a/src/mame/drivers/a5105.cpp b/src/mame/drivers/a5105.cpp index 3525ce5b51d..1da08b80a1a 100644 --- a/src/mame/drivers/a5105.cpp +++ b/src/mame/drivers/a5105.cpp @@ -287,12 +287,12 @@ void a5105_state::a5105_memsel_w(uint8_t data) { case 0: membank("bank1")->set_base(m_rom_base); - prog.install_read_bank(0x0000, 0x3fff, "bank1"); + prog.install_read_bank(0x0000, 0x3fff, membank("bank1")); prog.unmap_write(0x0000, 0x3fff); break; case 2: membank("bank1")->set_base(m_ram_base); - prog.install_readwrite_bank(0x0000, 0x3fff, "bank1"); + prog.install_readwrite_bank(0x0000, 0x3fff, membank("bank1")); break; default: prog.unmap_readwrite(0x0000, 0x3fff); @@ -308,17 +308,17 @@ void a5105_state::a5105_memsel_w(uint8_t data) { case 0: membank("bank2")->set_base(m_rom_base + 0x4000); - prog.install_read_bank(0x4000, 0x7fff, "bank2"); + prog.install_read_bank(0x4000, 0x7fff, membank("bank2")); prog.unmap_write(0x4000, 0x4000); break; case 1: membank("bank2")->set_base(memregion("k5651")->base()); - prog.install_read_bank(0x4000, 0x7fff, "bank2"); + prog.install_read_bank(0x4000, 0x7fff, membank("bank2")); prog.unmap_write(0x4000, 0x4000); break; case 2: membank("bank2")->set_base(m_ram_base + 0x4000); - prog.install_readwrite_bank(0x4000, 0x7fff, "bank2"); + prog.install_readwrite_bank(0x4000, 0x7fff, membank("bank2")); break; default: prog.unmap_readwrite(0x4000, 0x7fff); @@ -334,12 +334,12 @@ void a5105_state::a5105_memsel_w(uint8_t data) { case 0: membank("bank3")->set_base(m_rom_base + 0x8000); - prog.install_read_bank(0x8000, 0xbfff, "bank3"); + prog.install_read_bank(0x8000, 0xbfff, membank("bank3")); prog.unmap_write(0x8000, 0xbfff); break; case 2: membank("bank3")->set_base(m_ram_base + 0x8000); - prog.install_readwrite_bank(0x8000, 0xbfff, "bank3"); + prog.install_readwrite_bank(0x8000, 0xbfff, membank("bank3")); break; default: prog.unmap_readwrite(0x8000, 0xbfff); @@ -355,7 +355,7 @@ void a5105_state::a5105_memsel_w(uint8_t data) { case 2: membank("bank4")->set_base(m_ram_base + 0xc000); - prog.install_readwrite_bank(0xc000, 0xffff, "bank4"); + prog.install_readwrite_bank(0xc000, 0xffff, membank("bank4")); break; default: prog.unmap_readwrite(0xc000, 0xffff); diff --git a/src/mame/drivers/a7150.cpp b/src/mame/drivers/a7150.cpp index 92a3327b452..70831508053 100644 --- a/src/mame/drivers/a7150.cpp +++ b/src/mame/drivers/a7150.cpp @@ -340,18 +340,18 @@ void a7150_state::k7070_cpu_banked(address_map &map) map.unmap_value_high(); // default map: IML=0, MSEL=0. ROM + local RAM. map(0x00000, 0x01fff).rom().region("user2", 0); - map(0x02000, 0x07fff).bankrw("kgs_ram1"); - map(0x08000, 0x0ffff).bankrw("kgs_ram2"); + map(0x02000, 0x07fff).ram().share("kgs_ram1"); + map(0x08000, 0x0ffff).ram().share("kgs_ram2"); // IML=1, MSEL=0. local RAM only. - map(0x10000, 0x11fff).bankrw("kgs_ram0"); - map(0x12000, 0x17fff).bankrw("kgs_ram1"); - map(0x18000, 0x1ffff).bankrw("kgs_ram2"); + map(0x10000, 0x11fff).ram().share("kgs_ram0"); + map(0x12000, 0x17fff).ram().share("kgs_ram1"); + map(0x18000, 0x1ffff).ram().share("kgs_ram2"); // IML=0, MSEL=1. ROM + local RAM. map(0x20000, 0x21fff).rom().region("user2", 0); - map(0x22000, 0x27fff).bankrw("kgs_ram1"); + map(0x22000, 0x27fff).ram().share("kgs_ram1"); // IML=1, MSEL=1. local RAM only. - map(0x30000, 0x31fff).bankrw("kgs_ram0"); - map(0x32000, 0x37fff).bankrw("kgs_ram1"); + map(0x30000, 0x31fff).ram().share("kgs_ram0"); + map(0x32000, 0x37fff).ram().share("kgs_ram1"); map(0x38000, 0x3ffff).ram().share("video_ram"); } diff --git a/src/mame/drivers/aeroboto.cpp b/src/mame/drivers/aeroboto.cpp index 7957ef66f23..1a06e99ff86 100644 --- a/src/mame/drivers/aeroboto.cpp +++ b/src/mame/drivers/aeroboto.cpp @@ -84,7 +84,7 @@ void aeroboto_state::main_map(address_map &map) map(0x0000, 0x07ff).ram().share("mainram"); // main RAM map(0x01a2, 0x01a2).w(FUNC(aeroboto_state::aeroboto_1a2_w)); // affects IRQ line (more protection?) map(0x0800, 0x08ff).ram(); // tile color buffer; copied to 0x2000 - map(0x0900, 0x09ff).writeonly(); // a backup of default tile colors + map(0x0900, 0x09ff).writeonly().share("colors2"); // a backup of default tile colors map(0x1000, 0x17ff).ram().w(FUNC(aeroboto_state::aeroboto_videoram_w)).share("videoram"); // tile RAM map(0x1800, 0x183f).ram().share("hscroll"); // horizontal scroll regs map(0x1840, 0x27ff).nopw(); // cleared during custom LSI test diff --git a/src/mame/drivers/alphasma.cpp b/src/mame/drivers/alphasma.cpp index ce5f8bcdf9e..3eb07232fa5 100644 --- a/src/mame/drivers/alphasma.cpp +++ b/src/mame/drivers/alphasma.cpp @@ -209,7 +209,7 @@ void asma2k_state::port_a_w(uint8_t data) address_space &space = m_maincpu->space(AS_PROGRAM); if (data & 0x40) - space.install_readwrite_bank(0x0000, 0x7fff, "rambank"); + space.install_readwrite_bank(0x0000, 0x7fff, m_rambank); else space.install_readwrite_handler(0x0000, 0x7fff, read8sm_delegate(*this, FUNC(asma2k_state::io_r)), write8sm_delegate(*this, FUNC(asma2k_state::io_w))); } diff --git a/src/mame/drivers/amiga.cpp b/src/mame/drivers/amiga.cpp index 16db6a5718b..4a28f17e2bb 100644 --- a/src/mame/drivers/amiga.cpp +++ b/src/mame/drivers/amiga.cpp @@ -793,7 +793,7 @@ void a1000_state::machine_reset() // bootrom visible, wom writable m_bootrom->set_bank(0); - m_maincpu->space(AS_PROGRAM).install_write_bank(0xfc0000, 0xffffff, "wom"); + m_maincpu->space(AS_PROGRAM).install_write_bank(0xfc0000, 0xffffff, m_wom); } // any write to this area will write protect the wom and disable the bootrom diff --git a/src/mame/drivers/apc.cpp b/src/mame/drivers/apc.cpp index cf3686b1730..09b740343e7 100644 --- a/src/mame/drivers/apc.cpp +++ b/src/mame/drivers/apc.cpp @@ -87,6 +87,7 @@ public: m_fdc_connector(*this, "upd765:%u", 0U), m_dmac(*this, "i8237"), m_pit(*this, "pit8253"), + m_aux_pcg(*this, "aux_pcg"), m_speaker(*this, "mono"), m_sound(*this, "upd1771c"), m_video_ram_1(*this, "video_ram_1"), @@ -115,8 +116,8 @@ private: required_device_array<floppy_connector, 2> m_fdc_connector; required_device<am9517a_device> m_dmac; required_device<pit8253_device> m_pit; + required_shared_ptr<uint8_t> m_aux_pcg; uint8_t *m_char_rom; - uint8_t *m_aux_pcg; required_device<speaker_device> m_speaker; required_device<upd1771c_device> m_sound; @@ -185,7 +186,6 @@ private: void apc_state::video_start() { m_char_rom = memregion("gfx")->base(); - m_aux_pcg = memregion("aux_pcg")->base(); } uint32_t apc_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ) @@ -478,7 +478,7 @@ void apc_state::apc_map(address_map &map) map(0xa0000, 0xa0fff).ram().share("cmos"); // map(0xa1000, 0xbffff) mirror CMOS // map(0xc0000, 0xcffff) standard character ROM - map(0xd8000, 0xd9fff).ram().region("aux_pcg", 0); // AUX character RAM + map(0xd8000, 0xd9fff).ram().share("aux_pcg"); // AUX character RAM // map(0xe0000, 0xeffff) Special Character RAM map(0xfe000, 0xfffff).rom().region("ipl", 0); } @@ -791,7 +791,6 @@ static GFXDECODE_START( gfx_apc ) GFXDECODE_ENTRY( "gfx", 0x0800, charset_8x16, 0, 128 ) GFXDECODE_ENTRY( "gfx", 0x1000, charset_8x16, 0, 128 ) GFXDECODE_ENTRY( "gfx", 0x1800, charset_8x16, 0, 128 ) -// GFXDECODE_ENTRY( "aux_pcg", 0x0000, charset_pcg, 0, 128 ) GFXDECODE_END @@ -1000,8 +999,6 @@ ROM_START( apc ) ROM_REGION( 0x2000, "gfx", ROMREGION_ERASE00 ) ROM_LOAD("pfcu1r.bin", 0x000000, 0x002000, CRC(683efa94) SHA1(43157984a1746b2e448f3236f571011af9a3aa73) ) - - ROM_REGION16_LE( 0x2000, "aux_pcg", ROMREGION_ERASE00 ) ROM_END void apc_state::init_apc() diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp index 6b12a1f9962..0dcb3c76e21 100644 --- a/src/mame/drivers/apple2gs.cpp +++ b/src/mame/drivers/apple2gs.cpp @@ -1276,8 +1276,7 @@ void apple2gs_state::machine_start() int ramsize = m_ram_size - 0x20000; // subtract 128K for banks 0 and 1, which are handled specially // RAM sizes for both classes of machine no longer include the Mega II RAM - space.install_readwrite_bank(0x020000, ramsize - 1 + 0x20000, "bank1"); - membank("bank1")->set_base(m_ram_ptr + 0x020000); + space.install_ram(0x020000, ramsize - 1 + 0x20000, m_ram_ptr + 0x020000); // setup save states save_item(NAME(m_speaker_state)); diff --git a/src/mame/drivers/apricotp.cpp b/src/mame/drivers/apricotp.cpp index 8e6b94d197d..30603452158 100644 --- a/src/mame/drivers/apricotp.cpp +++ b/src/mame/drivers/apricotp.cpp @@ -97,8 +97,7 @@ public: , m_floppy1(*this, WD2797_TAG":1") , m_floppy(nullptr) , m_centronics(*this, CENTRONICS_TAG) - , m_work_ram(*this, "work_ram") - , m_video_ram(*this, "video_ram") + , m_video_ram(*this, "video_ram", 0x20000, ENDIANNESS_LITTLE) { } void fp(machine_config &config); @@ -139,10 +138,10 @@ private: void lat_ls259_w(offs_t offset, int state); - optional_shared_ptr<uint16_t> m_work_ram; + uint16_t *m_work_ram; // video state - optional_shared_ptr<uint16_t> m_video_ram; + memory_share_creator<uint16_t> m_video_ram; uint8_t m_video; int m_centronics_busy; @@ -168,8 +167,6 @@ private: void fp_state::video_start() { - // allocate memory - m_video_ram.allocate(0x20000); } MC6845_UPDATE_ROW( fp_state::update_row ) @@ -535,7 +532,7 @@ WRITE_LINE_MEMBER( fp_state::write_centronics_perror ) void fp_state::machine_start() { // allocate memory - m_work_ram.allocate(m_ram->size() / 2); + m_work_ram = reinterpret_cast<uint16_t *>(m_ram->pointer()); } diff --git a/src/mame/drivers/aristmk4.cpp b/src/mame/drivers/aristmk4.cpp index 0220a60610e..156b8b83088 100644 --- a/src/mame/drivers/aristmk4.cpp +++ b/src/mame/drivers/aristmk4.cpp @@ -1034,7 +1034,7 @@ void aristmk4_state::slots_mem(address_map &map) map(0x1c00, 0x1cff).w(FUNC(aristmk4_state::mk4_printer_w)); map(0x1900, 0x19ff).r(FUNC(aristmk4_state::mk4_printer_r)); map(0x2000, 0x3fff).rom(); // graphics rom map - map(0x4000, 0x4fff).bankrw("bank1").share("nvram"); + map(0x4000, 0x4fff).ram().share("nvram"); map(0x5000, 0x5000).w(FUNC(aristmk4_state::u3_p0)); map(0x5002, 0x5002).r(FUNC(aristmk4_state::u3_p2)); @@ -1078,7 +1078,7 @@ void aristmk4_state::poker_mem(address_map &map) map(0x1801, 0x1801).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w)); map(0x1c00, 0x1cff).w(FUNC(aristmk4_state::mk4_printer_w)); map(0x1900, 0x19ff).r(FUNC(aristmk4_state::mk4_printer_r)); - map(0x4000, 0x4fff).bankrw("bank1").share("nvram"); + map(0x4000, 0x4fff).ram().share("nvram"); map(0x5000, 0x5000).w(FUNC(aristmk4_state::u3_p0)); map(0x5002, 0x5002).r(FUNC(aristmk4_state::u3_p2)); diff --git a/src/mame/drivers/arsystems.cpp b/src/mame/drivers/arsystems.cpp index ef96482e00d..1e60e43fa1a 100644 --- a/src/mame/drivers/arsystems.cpp +++ b/src/mame/drivers/arsystems.cpp @@ -66,6 +66,8 @@ public: arcadia_amiga_state(const machine_config &mconfig, device_type type, const char *tag) : amiga_state(mconfig, type, tag) , m_bios_region(*this, "user2") + , m_rom_board(*this, "user3") + { } @@ -103,7 +105,7 @@ private: virtual void machine_reset() override; - optional_memory_region m_bios_region; + optional_memory_region m_bios_region, m_rom_board; uint8_t m_coin_counter[2]; }; @@ -119,7 +121,7 @@ private: void arcadia_amiga_state::arcadia_multibios_change_game(uint16_t data) { if (data == 0) - m_maincpu->space(AS_PROGRAM).install_read_bank(0x800000, 0x97ffff, "bank2"); + m_maincpu->space(AS_PROGRAM).install_rom(0x800000, 0x97ffff, m_rom_board->base()); else m_maincpu->space(AS_PROGRAM).nop_read(0x800000, 0x97ffff); } @@ -221,7 +223,7 @@ void arcadia_amiga_state::a500_mem(address_map &map) void arcadia_amiga_state::arcadia_map(address_map &map) { a500_mem(map); - map(0x800000, 0x97ffff).bankr("bank2").region("user3", 0); + map(0x800000, 0x97ffff).rom().region("user3", 0); map(0x980000, 0x9fbfff).rom().region("user2", 0); map(0x9fc000, 0x9ffffd).ram().share("nvram"); map(0x9ffffe, 0x9fffff).w(FUNC(arcadia_amiga_state::arcadia_multibios_change_game)); @@ -231,7 +233,7 @@ void arcadia_amiga_state::arcadia_map(address_map &map) void arcadia_amiga_state::argh_map(address_map &map) { a500_mem(map); - map(0x800000, 0x97ffff).bankr("bank2").region("user3", 0); + map(0x800000, 0x97ffff).rom().region("user3", 0); // map(0x980000, 0x9fefff).rom().region("user3", 0); map(0x9ff000, 0x9fffff).ram().share("nvram"); map(0xf00000, 0xf7ffff).rom().region("user3", 0); @@ -468,7 +470,7 @@ ROM_END ROM_START( ar_dart2 ) ARCADIA_BIOS - ROM_REGION16_BE(0x200000, "user3", 0) + ROM_REGION16_BE(0x180000, "user3", 0) ROM_LOAD16_BYTE( "arcadia3.u10", 0x00000, 0x10000, CRC(7166c736) SHA1(9892725b4d0aac6486950f8153083ba3f6982ad8) ) ROM_LOAD16_BYTE( "arcadia3.u6", 0x00001, 0x10000, CRC(f226137e) SHA1(61540885ff83420f5adc1087547e0ece33383ffd) ) ROM_LOAD16_BYTE( "arcadia3.u11", 0x20000, 0x10000, CRC(5d9a7804) SHA1(acd8eb7fd28594e8008eb953f843a72f12782ea2) ) @@ -645,7 +647,7 @@ ROM_END ROM_START( ar_ninj ) ARCADIA_BIOS - ROM_REGION16_BE(0x200000, "user3", 0) + ROM_REGION16_BE(0x180000, "user3", 0) ROM_LOAD16_BYTE( "ninj_1h.bin", 0x00000, 0x10000, CRC(53b07b4d) SHA1(4852005adf60fe63f2da880dd32740d18fd31169) ) ROM_LOAD16_BYTE( "ninj_1l.bin", 0x00001, 0x10000, CRC(3337a6c1) SHA1(be9719f0cd5872b51f4c6d32fcac2638c0dedaf4) ) ROM_LOAD16_BYTE( "ninj_2h.bin", 0x20000, 0x10000, CRC(e28a5fa8) SHA1(150e26aea24706b72d2e6612280d5dddc527061b) ) @@ -663,7 +665,7 @@ ROM_END ROM_START( ar_ninj2 ) ARCADIA_BIOS - ROM_REGION16_BE(0x200000, "user3", 0) + ROM_REGION16_BE(0x180000, "user3", 0) ROM_LOAD16_BYTE( "arcadia5.u10", 0x00000, 0x10000, CRC(217cb8eb) SHA1(7cb1da4d5d5b5af5f42c10848c7535bdeebbcd94) ) ROM_LOAD16_BYTE( "arcadia5.u6", 0x00001, 0x10000, CRC(009bee8f) SHA1(ff61a0770643400ecddc70e603ca6589424b6831) ) ROM_LOAD16_BYTE( "arcadia5.u11", 0x20000, 0x10000, CRC(f5c84e48) SHA1(8149a225a406ffb7c9faaa48af4947c2f66f750d) ) @@ -687,7 +689,7 @@ ROM_END ROM_START( ar_rdwr ) ARCADIA_BIOS - ROM_REGION16_BE(0x200000, "user3", 0) + ROM_REGION16_BE(0x180000, "user3", 0) ROM_LOAD16_BYTE( "rdwr_1h.bin", 0x00000, 0x10000, CRC(f52cb704) SHA1(cce8c7484ae8c3a3d14b2e79a981780a277c9b1c) ) ROM_LOAD16_BYTE( "rdwr_1l.bin", 0x00001, 0x10000, CRC(fde0de6d) SHA1(7f62ce854a040775548c5ba3b05e6a4dcb0d7cfb) ) ROM_LOAD16_BYTE( "rdwr_2h.bin", 0x20000, 0x10000, CRC(8f3c1a2c) SHA1(e473e55457c04ebd597375e9936aeb0473507ed7) ) @@ -721,7 +723,7 @@ ROM_END ROM_START( ar_sdwr2 ) ARCADIA_BIOS - ROM_REGION16_BE(0x200000, "user3", 0) + ROM_REGION16_BE(0x180000, "user3", 0) ROM_LOAD16_BYTE( "arcadia1.u10", 0x00000, 0x10000, CRC(30949f1f) SHA1(270cd449f994eda76afd5532018bad636ac4cf68) ) ROM_LOAD16_BYTE( "arcadia1.u6", 0x00001, 0x10000, CRC(c760d1c4) SHA1(7d311e8b192e493da9501755e096599e1e8e8d3e) ) ROM_LOAD16_BYTE( "arcadia1.u11", 0x20000, 0x10000, CRC(d67ba564) SHA1(2afba72a77806e3925c9ca1e13c16c442a6cfc3a) ) diff --git a/src/mame/drivers/asteroid.cpp b/src/mame/drivers/asteroid.cpp index c02bdca7311..3762bca38ee 100644 --- a/src/mame/drivers/asteroid.cpp +++ b/src/mame/drivers/asteroid.cpp @@ -321,8 +321,8 @@ void asteroid_state::asteroid_map(address_map &map) { map.global_mask(0x7fff); map(0x0000, 0x01ff).ram(); - map(0x0200, 0x02ff).bankrw("ram1").share("ram1"); - map(0x0300, 0x03ff).bankrw("ram2").share("ram2"); + map(0x0200, 0x02ff).bankrw("ram1"); + map(0x0300, 0x03ff).bankrw("ram2"); map(0x2000, 0x2007).r(FUNC(asteroid_state::asteroid_IN0_r)).nopw(); // IN0 map(0x2400, 0x2407).r(FUNC(asteroid_state::asteroid_IN1_r)); // IN1 map(0x2800, 0x2803).r(FUNC(asteroid_state::asteroid_DSW1_r)).nopw(); // DSW1 @@ -333,7 +333,7 @@ void asteroid_state::asteroid_map(address_map &map) map(0x3a00, 0x3a00).w(FUNC(asteroid_state::asteroid_thump_w)); map(0x3c00, 0x3c07).w("audiolatch", FUNC(ls259_device::write_d7)); map(0x3e00, 0x3e00).w(FUNC(asteroid_state::asteroid_noise_reset_w)); - map(0x4000, 0x47ff).ram().share("dvg:vectorram").region("maincpu", 0x4000); + map(0x4000, 0x47ff).ram().share("dvg:vectorram"); map(0x5000, 0x57ff).rom(); // Vector ROM map(0x6800, 0x7fff).rom(); } @@ -343,8 +343,8 @@ void asteroid_state::astdelux_map(address_map &map) { map.global_mask(0x7fff); map(0x0000, 0x01ff).ram(); - map(0x0200, 0x02ff).bankrw("ram1").share("ram1"); - map(0x0300, 0x03ff).bankrw("ram2").share("ram2"); + map(0x0200, 0x02ff).bankrw("ram1"); + map(0x0300, 0x03ff).bankrw("ram2"); map(0x2000, 0x2007).r(FUNC(asteroid_state::asteroid_IN0_r)).nopw(); // IN0 map(0x2400, 0x2407).r(FUNC(asteroid_state::asteroid_IN1_r)).nopw(); // IN1 map(0x2800, 0x2803).r(FUNC(asteroid_state::asteroid_DSW1_r)); // DSW1 @@ -357,7 +357,7 @@ void asteroid_state::astdelux_map(address_map &map) map(0x3a00, 0x3a00).w(FUNC(asteroid_state::earom_control_w)); map(0x3c00, 0x3c07).w("audiolatch", FUNC(ls259_device::write_d7)); map(0x3e00, 0x3e00).w(FUNC(asteroid_state::asteroid_noise_reset_w)); - map(0x4000, 0x47ff).ram().share("dvg:vectorram").region("maincpu", 0x4000); + map(0x4000, 0x47ff).ram().share("dvg:vectorram"); map(0x4800, 0x57ff).rom(); // Vector ROM map(0x6000, 0x7fff).rom(); } @@ -376,7 +376,7 @@ void asteroid_state::llander_map(address_map &map) map(0x3400, 0x3400).w("watchdog", FUNC(watchdog_timer_device::reset_w)); map(0x3c00, 0x3c00).w(FUNC(asteroid_state::llander_sounds_w)); map(0x3e00, 0x3e00).w(FUNC(asteroid_state::llander_snd_reset_w)); - map(0x4000, 0x47ff).ram().share("dvg:vectorram").region("maincpu", 0x4000); + map(0x4000, 0x47ff).ram().share("dvg:vectorram"); map(0x4800, 0x5fff).rom(); // Vector ROM map(0x5800, 0x5800).nopw(); // INC access? map(0x6000, 0x7fff).rom(); diff --git a/src/mame/drivers/at.cpp b/src/mame/drivers/at.cpp index e1c1436c6aa..a9b79ec54e8 100644 --- a/src/mame/drivers/at.cpp +++ b/src/mame/drivers/at.cpp @@ -442,9 +442,7 @@ void at_state::init_at_common(int xmsbase) if (m_ram->size() > xmsbase) { offs_t ram_limit = 0x100000 + m_ram->size() - xmsbase; - space.install_read_bank(0x100000, ram_limit - 1, "bank1"); - space.install_write_bank(0x100000, ram_limit - 1, "bank1"); - membank("bank1")->set_base(m_ram->pointer() + xmsbase); + space.install_ram(0x100000, ram_limit - 1, m_ram->pointer() + xmsbase); } } @@ -463,8 +461,7 @@ void at_vrom_fix_state::machine_start() at_state::machine_start(); address_space& space = m_maincpu->space(AS_PROGRAM); - space.install_read_bank(0xc0000, 0xcffff, "vrom_bank"); - membank("vrom_bank")->set_base(machine().root_device().memregion("bios")->base()); + space.install_rom(0xc0000, 0xcffff, machine().root_device().memregion("bios")->base()); } void at_state::cfg_single_1200K(device_t *device) diff --git a/src/mame/drivers/atari400.cpp b/src/mame/drivers/atari400.cpp index ebb5c0739e2..29f28455d75 100644 --- a/src/mame/drivers/atari400.cpp +++ b/src/mame/drivers/atari400.cpp @@ -328,9 +328,6 @@ private: required_device<pia6821_device> m_pia; optional_device<dac_bit_interface> m_dac; required_memory_region m_region_maincpu; - memory_bank *m_0000 = nullptr; - memory_bank *m_8000 = nullptr; - memory_bank *m_a000 = nullptr; optional_device<a800_cart_slot_device> m_cart; optional_device<a800_cart_slot_device> m_cart2; @@ -1739,35 +1736,17 @@ void a400_state::setup_ram(int bank, uint32_t size) { case 0: // 0x0000-0x7fff ram_top = std::min(size, uint32_t(0x8000)) - 1; - m_maincpu->space(AS_PROGRAM).install_readwrite_bank(0x0000, ram_top, "0000"); - m_0000 = membank("0000"); - m_0000->set_base(m_ram->pointer()); + m_maincpu->space(AS_PROGRAM).install_ram(0x0000, ram_top, m_ram->pointer()); break; case 1: // 0x8000-0x9fff ram_top = std::min(size, uint32_t(0xa000)) - 1; if (ram_top > 0x8000) - { - m_maincpu->space(AS_PROGRAM).install_readwrite_bank(0x8000, ram_top, "8000"); - m_8000 = membank("8000"); - m_8000->set_base(m_ram->pointer() + 0x8000); - } - else - { - m_8000 = nullptr; - } + m_maincpu->space(AS_PROGRAM).install_ram(0x8000, ram_top, m_ram->pointer() + 0x8000); break; case 2: // 0xa000-0xbfff ram_top = std::min(size, uint32_t(0xc000)) - 1; if (ram_top > 0xa000) - { - m_maincpu->space(AS_PROGRAM).install_readwrite_bank(0xa000, ram_top, "a000"); - m_a000 = membank("a000"); - m_a000->set_base(m_ram->pointer() + 0xa000); - } - else - { - m_a000 = nullptr; - } + m_maincpu->space(AS_PROGRAM).install_ram(0xa000, ram_top, m_ram->pointer() + 0xa000); break; } } diff --git a/src/mame/drivers/aussiebyte.cpp b/src/mame/drivers/aussiebyte.cpp index 2004e423783..f0b1502e1c9 100644 --- a/src/mame/drivers/aussiebyte.cpp +++ b/src/mame/drivers/aussiebyte.cpp @@ -48,7 +48,7 @@ void aussiebyte_state::mem_map(address_map &map) map(0x0000, 0x3fff).bankr("bankr0").bankw("bankw0"); map(0x4000, 0x7fff).bankrw("bank1"); map(0x8000, 0xbfff).bankrw("bank2"); - map(0xc000, 0xffff).bankrw("bank3"); + map(0xc000, 0xffff).ram(); } void aussiebyte_state::io_map(address_map &map) @@ -99,7 +99,7 @@ INPUT_PORTS_END ************************************************************/ void aussiebyte_state::port15_w(u8 data) { - membank("bankr0")->set_entry(m_port15); // point at ram + m_bankr0->set_entry(m_port15); // point at ram m_port15 = true; } @@ -175,34 +175,34 @@ void aussiebyte_state::port1a_w(u8 data) case 4: m_port1a = data*3+1; if (m_port15) - membank("bankr0")->set_entry(data*3+1); - membank("bankw0")->set_entry(data*3+1); - membank("bank1")->set_entry(data*3+2); - membank("bank2")->set_entry(data*3+3); + m_bankr0->set_entry(data*3+1); + m_bankw0->set_entry(data*3+1); + m_bank1->set_entry(data*3+2); + m_bank2->set_entry(data*3+3); break; case 5: m_port1a = 1; if (m_port15) - membank("bankr0")->set_entry(1); - membank("bankw0")->set_entry(1); - membank("bank1")->set_entry(2); - membank("bank2")->set_entry(13); + m_bankr0->set_entry(1); + m_bankw0->set_entry(1); + m_bank1->set_entry(2); + m_bank2->set_entry(13); break; case 6: m_port1a = 14; if (m_port15) - membank("bankr0")->set_entry(14); - membank("bankw0")->set_entry(14); - membank("bank1")->set_entry(15); - //membank("bank2")->set_entry(0); // open bus + m_bankr0->set_entry(14); + m_bankw0->set_entry(14); + m_bank1->set_entry(15); + //m_bank2->set_entry(0); // open bus break; case 7: m_port1a = 1; if (m_port15) - membank("bankr0")->set_entry(1); - membank("bankw0")->set_entry(1); - membank("bank1")->set_entry(4); - membank("bank2")->set_entry(13); + m_bankr0->set_entry(1); + m_bankw0->set_entry(1); + m_bank1->set_entry(4); + m_bank2->set_entry(13); break; } } @@ -412,8 +412,8 @@ QUICKLOAD_LOAD_MEMBER(aussiebyte_state::quickload_cb) /* RAM must be banked in */ m_port15 = true; // disable boot rom m_port1a = 4; - membank("bankr0")->set_entry(m_port1a); /* enable correct program bank */ - membank("bankw0")->set_entry(m_port1a); + m_bankr0->set_entry(m_port1a); /* enable correct program bank */ + m_bankw0->set_entry(m_port1a); /* Avoid loading a program if CP/M-80 is not in memory */ if ((prog_space.read_byte(0) != 0xc3) || (prog_space.read_byte(5) != 0xc3)) @@ -454,11 +454,10 @@ void aussiebyte_state::machine_reset() m_port1a = 1; m_alpha_address = 0; m_graph_address = 0; - membank("bankr0")->set_entry(16); // point at rom - membank("bankw0")->set_entry(1); // always write to ram - membank("bank1")->set_entry(2); - membank("bank2")->set_entry(3); - membank("bank3")->set_entry(0); + m_bankr0->set_entry(16); // point at rom + m_bankw0->set_entry(1); // always write to ram + m_bank1->set_entry(2); + m_bank2->set_entry(3); m_maincpu->reset(); } @@ -486,15 +485,12 @@ void aussiebyte_state::machine_start() // Main ram is divided into 16k blocks (0-15). The boot rom is block number 16. // For convenience, bank 0 is permanently assigned to C000-FFFF - u8 *main = memregion("roms")->base(); - u8 *ram = m_ram.get(); - - membank("bankr0")->configure_entries(0, 16, ram, 0x4000); - membank("bankw0")->configure_entries(0, 16, ram, 0x4000); - membank("bank1")->configure_entries(0, 16, ram, 0x4000); - membank("bank2")->configure_entries(0, 16, ram, 0x4000); - membank("bank3")->configure_entries(0, 1, ram, 0x4000); - membank("bankr0")->configure_entry(16, &main[0x0000]); + + m_bankr0->configure_entries(0, 16, m_p_mram, 0x4000); + m_bankw0->configure_entries(0, 16, m_p_mram, 0x4000); + m_bank1->configure_entries(0, 16, m_p_mram, 0x4000); + m_bank2->configure_entries(0, 16, m_p_mram, 0x4000); + m_bankr0->configure_entry(16, memregion("roms")->base()); } diff --git a/src/mame/drivers/b2m.cpp b/src/mame/drivers/b2m.cpp index 43af7e76820..23ade9eea09 100644 --- a/src/mame/drivers/b2m.cpp +++ b/src/mame/drivers/b2m.cpp @@ -41,11 +41,7 @@ Need a schematic so that the fdc could be repaired. /* Address maps */ void b2m_state::b2m_mem(address_map &map) { - map(0x0000, 0x27ff).bankrw("bank1"); - map(0x2800, 0x2fff).bankrw("bank2"); - map(0x3000, 0x6fff).bankrw("bank3"); - map(0x7000, 0xdfff).bankrw("bank4"); - map(0xe000, 0xffff).bankrw("bank5"); + // Dynamic, set with b2m_set_bank } void b2m_state::b2m_io(address_map &map) @@ -279,9 +275,9 @@ ROM_START( b2m ) ROM_END ROM_START( b2mrom ) - ROM_REGION( 0x12000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "bios2.rom", 0x00000, 0x2000, CRC(c22a98b7) SHA1(7de91e653bf4b191ded62cf21532578268e4a2c1) ) - ROM_LOAD( "ramdos.sys", 0x02000, 0x60c0, CRC(91ed6df0) SHA1(4fd040f2647a6b7930c330c75560a035027d0606) ) + ROM_REGION( 0x80c0, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "bios2.rom", 0x0000, 0x2000, CRC(c22a98b7) SHA1(7de91e653bf4b191ded62cf21532578268e4a2c1) ) + ROM_LOAD( "ramdos.sys", 0x2000, 0x60c0, CRC(91ed6df0) SHA1(4fd040f2647a6b7930c330c75560a035027d0606) ) ROM_END diff --git a/src/mame/drivers/beathead.cpp b/src/mame/drivers/beathead.cpp index 142766c28d8..f8b06b8c4bf 100644 --- a/src/mame/drivers/beathead.cpp +++ b/src/mame/drivers/beathead.cpp @@ -249,7 +249,7 @@ void beathead_state::coin_count_w(offs_t offset, uint32_t data) void beathead_state::main_map(address_map &map) { map(0x00000000, 0x0001ffff).ram().share("ram_base"); - map(0x01800000, 0x01bfffff).rom().region("user1", 0).share("rom_base"); + map(0x01800000, 0x01bfffff).rom().region("user1", 0); map(0x40000000, 0x400007ff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask32(0x000000ff); map(0x41000000, 0x41000000).rw(m_jsa, FUNC(atari_jsa_iii_device::main_response_r), FUNC(atari_jsa_iii_device::main_command_w)); map(0x41000100, 0x41000103).r(FUNC(beathead_state::interrupt_control_r)); diff --git a/src/mame/drivers/blitz68k.cpp b/src/mame/drivers/blitz68k.cpp index 2fdfb11ef41..e0b24ecdbd5 100644 --- a/src/mame/drivers/blitz68k.cpp +++ b/src/mame/drivers/blitz68k.cpp @@ -1012,7 +1012,7 @@ void blitz68k_state::cjffruit_map(address_map &map) map(0x8fc000, 0x8fc001).w(FUNC(blitz68k_state::cjffruit_leds3_w)).share("leds2"); map(0x8fe000, 0x8fe003).w(FUNC(blitz68k_state::blit_flags_w)); // flipx,y,solid,trans - map(0x8fe004, 0x8fe005).writeonly(); + map(0x8fe004, 0x8fe005).nopw(); map(0x8fe006, 0x8fe007).w(FUNC(blitz68k_state::crtc_lpen_w)); // 0x8fe006: 0->1, 0x8fe007: 1->0 map(0xc40000, 0xc40001).rw(FUNC(blitz68k_state::crtc_r), FUNC(blitz68k_state::crtc_w)); @@ -1112,7 +1112,7 @@ void blitz68k_state::deucesw2_map(address_map &map) map(0x89c000, 0x89c001).w(FUNC(blitz68k_state::deucesw2_leds3_w)).share("leds2"); map(0x89e000, 0x89e003).w(FUNC(blitz68k_state::blit_flags_w)); // flipx,y,solid,trans - map(0x89e004, 0x89e005).writeonly(); + map(0x89e004, 0x89e005).nopw(); map(0x89e006, 0x89e007).w(FUNC(blitz68k_state::crtc_lpen_w)); // 0x89e006: 0->1, 0x89e007: 1->0 map(0xc00000, 0xc00001).rw(FUNC(blitz68k_state::crtc_r), FUNC(blitz68k_state::crtc_w)); @@ -1288,7 +1288,7 @@ void blitz68k_state::hermit_map(address_map &map) map(0x9e8000, 0x9e8001).w(FUNC(blitz68k_state::hermit_leds2_w)).share("leds1"); map(0x9f0000, 0x9f0003).w(FUNC(blitz68k_state::blit_flags_w)); // flipx,y,solid,trans - map(0x9f0004, 0x9f0005).writeonly(); + map(0x9f0004, 0x9f0005).nopw(); map(0x9f0006, 0x9f0007).w(FUNC(blitz68k_state::crtc_lpen_w)); // 0x9f0006: 0->1, 0x9f0007: 1->0 map(0xb00000, 0xb00001).rw(FUNC(blitz68k_state::crtc_r), FUNC(blitz68k_state::crtc_w)); // triggered by MCU? diff --git a/src/mame/drivers/blmbycar.cpp b/src/mame/drivers/blmbycar.cpp index f713061b1e0..12e1ee5e1a4 100644 --- a/src/mame/drivers/blmbycar.cpp +++ b/src/mame/drivers/blmbycar.cpp @@ -114,10 +114,10 @@ void blmbycar_state::vram_w(offs_t offset, uint16_t data, uint16_t mem_mask) void blmbycar_state::common_map(address_map &map) { map(0x000000, 0x0fffff).rom(); - map(0x100000, 0x103fff).writeonly(); // ??? + map(0x100000, 0x103fff).writeonly().share("unk_100000"); // ??? map(0x104000, 0x105fff).ram().w(FUNC(blmbycar_state::vram_w<1>)).share("vram_1"); // Layer 1 map(0x106000, 0x107fff).ram().w(FUNC(blmbycar_state::vram_w<0>)).share("vram_0"); // Layer 0 - map(0x108000, 0x10bfff).writeonly(); // ??? + map(0x108000, 0x10bfff).writeonly().share("unk_108000"); // ??? map(0x10c000, 0x10c003).writeonly().share("scroll_1"); // Scroll 1 map(0x10c004, 0x10c007).writeonly().share("scroll_0"); // Scroll 0 map(0x200000, 0x203fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette").mirror(0x4000); // Palette @@ -156,7 +156,7 @@ void blmbycar_state::watrball_map(address_map &map) map(0x700006, 0x700007).nopr(); // read map(0x700008, 0x700009).r(FUNC(blmbycar_state::waterball_unk_r)); // 0x0008 must toggle - map(0x70000a, 0x70000b).writeonly(); // ?? busy + map(0x70000a, 0x70000b).nopw(); // ?? busy } void blmbycar_state::blmbycar_oki_map(address_map &map) diff --git a/src/mame/drivers/bmcbowl.cpp b/src/mame/drivers/bmcbowl.cpp index 79970bf864b..552dad12ad6 100644 --- a/src/mame/drivers/bmcbowl.cpp +++ b/src/mame/drivers/bmcbowl.cpp @@ -122,7 +122,7 @@ public: bmcbowl_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), - m_stats_ram(*this, "nvram", 16), + m_stats_ram(*this, "nvram"), m_vid1(*this, "vid1"), m_vid2(*this, "vid2"), m_palette(*this, "palette"), diff --git a/src/mame/drivers/bnstars.cpp b/src/mame/drivers/bnstars.cpp index 1574a2b02c3..f1e7b8f3baf 100644 --- a/src/mame/drivers/bnstars.cpp +++ b/src/mame/drivers/bnstars.cpp @@ -106,14 +106,14 @@ class bnstars_state : public ms32_state public: bnstars_state(const machine_config &mconfig, device_type type, const char *tag) : ms32_state(mconfig, type, tag) - , m_ms32_tx0_ram(*this, "tx0_ram", 32) - , m_ms32_tx1_ram(*this, "tx1_ram", 32) - , m_ms32_bg0_ram(*this, "bg0_ram", 32) - , m_ms32_bg1_ram(*this, "bg1_ram", 32) - , m_ms32_roz0_ram(*this, "roz0_ram", 32) - , m_ms32_roz1_ram(*this, "roz1_ram", 32) + , m_ms32_tx0_ram(*this, "tx0_ram") + , m_ms32_tx1_ram(*this, "tx1_ram") + , m_ms32_bg0_ram(*this, "bg0_ram") + , m_ms32_bg1_ram(*this, "bg1_ram") + , m_ms32_roz0_ram(*this, "roz0_ram") + , m_ms32_roz1_ram(*this, "roz1_ram") , m_ms32_roz_ctrl(*this, "roz_ctrl.%u", 0) - , m_ms32_spram(*this, "spram", 32) + , m_ms32_spram(*this, "spram") , m_ms32_tx0_scroll(*this, "tx0_scroll") , m_ms32_bg0_scroll(*this, "bg0_scroll") , m_ms32_tx1_scroll(*this, "tx1_scroll") diff --git a/src/mame/drivers/btime.cpp b/src/mame/drivers/btime.cpp index 1a4498ab4ec..e892228c932 100644 --- a/src/mame/drivers/btime.cpp +++ b/src/mame/drivers/btime.cpp @@ -2165,8 +2165,7 @@ void btime_state::init_disco() void btime_state::init_cookrace() { - m_audiocpu->space(AS_PROGRAM).install_read_bank(0x0200, 0x0fff, "bank10"); - membank("bank10")->set_base(memregion("audiocpu")->base() + 0xe200); + m_audiocpu->space(AS_PROGRAM).install_rom(0x0200, 0x0fff, memregion("audiocpu")->base() + 0xe200); m_audio_nmi_enable_type = AUDIO_ENABLE_DIRECT; } @@ -2180,8 +2179,7 @@ void btime_state::init_wtennis() { m_maincpu->space(AS_PROGRAM).install_read_handler(0xc15f, 0xc15f, read8smo_delegate(*this, FUNC(btime_state::wtennis_reset_hack_r))); - m_audiocpu->space(AS_PROGRAM).install_read_bank(0x0200, 0x0fff, "bank10"); - membank("bank10")->set_base(memregion("audiocpu")->base() + 0xe200); + m_audiocpu->space(AS_PROGRAM).install_rom(0x0200, 0x0fff, memregion("audiocpu")->base() + 0xe200); m_audio_nmi_enable_type = AUDIO_ENABLE_AY8910; } diff --git a/src/mame/drivers/buggychl.cpp b/src/mame/drivers/buggychl.cpp index b474c67b9f7..4e625f56f3d 100644 --- a/src/mame/drivers/buggychl.cpp +++ b/src/mame/drivers/buggychl.cpp @@ -233,7 +233,7 @@ void buggychl_state::buggychl_map(address_map &map) map(0xd820, 0xd83f).ram(); // TODO map(0xd840, 0xd85f).writeonly().share("scrollv"); map(0xdb00, 0xdbff).writeonly().share("scrollh"); - map(0xdc04, 0xdc04).writeonly(); /* should be fg scroll */ + map(0xdc04, 0xdc04).nopw(); /* should be fg scroll */ map(0xdc06, 0xdc06).w(FUNC(buggychl_state::buggychl_bg_scrollx_w)); } diff --git a/src/mame/drivers/bw12.cpp b/src/mame/drivers/bw12.cpp index bc8caefa4f0..7a45b119eb2 100644 --- a/src/mame/drivers/bw12.cpp +++ b/src/mame/drivers/bw12.cpp @@ -45,22 +45,22 @@ void bw12_state::bankswitch() { address_space &program = m_maincpu->space(AS_PROGRAM); - switch (m_bank) + switch (m_curbank) { case 0: /* ROM */ - program.install_read_bank(0x0000, 0x7fff, "bank1"); + program.install_read_bank(0x0000, 0x7fff, m_bank); program.unmap_write(0x0000, 0x7fff); break; case 1: /* BK0 */ - program.install_readwrite_bank(0x0000, 0x7fff, "bank1"); + program.install_readwrite_bank(0x0000, 0x7fff, m_bank); break; case 2: /* BK1 */ case 3: /* BK2 */ if (m_ram->size() > 64*1024) { - program.install_readwrite_bank(0x0000, 0x7fff, "bank1"); + program.install_readwrite_bank(0x0000, 0x7fff, m_bank); } else { @@ -69,7 +69,7 @@ void bw12_state::bankswitch() break; } - membank("bank1")->set_entry(m_bank); + m_bank->set_entry(m_curbank); } void bw12_state::floppy_motor_on_off() @@ -97,13 +97,13 @@ TIMER_DEVICE_CALLBACK_MEMBER(bw12_state::floppy_motor_off_tick) WRITE_LINE_MEMBER(bw12_state::ls138_a0_w) { - m_bank = (m_bank & 0x02) | state; + m_curbank = (m_curbank & 0x02) | state; bankswitch(); } WRITE_LINE_MEMBER(bw12_state::ls138_a1_w) { - m_bank = (state << 1) | (m_bank & 0x01); + m_curbank = (state << 1) | (m_curbank & 0x01); bankswitch(); } @@ -135,7 +135,7 @@ uint8_t bw12_state::ls259_r(offs_t offset) void bw12_state::bw12_mem(address_map &map) { - map(0x0000, 0x7fff).bankrw("bank1"); + map(0x0000, 0x7fff).bankrw("bank"); map(0x8000, 0xf7ff).ram(); map(0xf800, 0xffff).ram().share("video_ram"); } @@ -438,12 +438,12 @@ WRITE_LINE_MEMBER( bw12_state::ay3600_data_ready_w ) void bw12_state::machine_start() { /* setup memory banking */ - membank("bank1")->configure_entry(0, m_rom->base()); - membank("bank1")->configure_entry(1, m_ram->pointer()); - membank("bank1")->configure_entries(2, 2, m_ram->pointer() + 0x10000, 0x8000); + m_bank->configure_entry(0, m_rom->base()); + m_bank->configure_entry(1, m_ram->pointer()); + m_bank->configure_entries(2, 2, m_ram->pointer() + 0x10000, 0x8000); /* register for state saving */ - save_item(NAME(m_bank)); + save_item(NAME(m_curbank)); save_item(NAME(m_pit_out2)); save_item(NAME(m_key_data)); save_item(NAME(m_key_sin)); diff --git a/src/mame/drivers/bwidow.cpp b/src/mame/drivers/bwidow.cpp index c7197bca545..6cd1b95cde3 100644 --- a/src/mame/drivers/bwidow.cpp +++ b/src/mame/drivers/bwidow.cpp @@ -407,7 +407,7 @@ void bwidow_state::irq_ack_w(uint8_t data) void bwidow_state::bwidow_map(address_map &map) { map(0x0000, 0x07ff).ram(); - map(0x2000, 0x27ff).ram().share("avg:vectorram").region("maincpu", 0x2000); + map(0x2000, 0x27ff).ram().share("avg:vectorram"); map(0x2800, 0x5fff).rom(); map(0x6000, 0x67ff).rw("pokey1", FUNC(pokey_device::read), FUNC(pokey_device::write)); map(0x6800, 0x6fff).rw("pokey2", FUNC(pokey_device::read), FUNC(pokey_device::write)); @@ -436,7 +436,7 @@ void bwidow_state::bwidowp_map(address_map &map) map(0x2800, 0x2800).w("avg", FUNC(avg_device::reset_w)); map(0x3000, 0x3000).w("watchdog", FUNC(watchdog_timer_device::reset_w)); map(0x3800, 0x3800).w(FUNC(bwidow_state::bwidow_misc_w)); /* coin counters, leds */ - map(0x4000, 0x47ff).ram().share("avg:vectorram").region("maincpu", 0x4000); + map(0x4000, 0x47ff).ram().share("avg:vectorram"); map(0x4800, 0x6fff).rom(); map(0x6000, 0x6000).w(FUNC(bwidow_state::irq_ack_w)); /* interrupt acknowledge */ map(0x8000, 0x803f).w(FUNC(bwidow_state::earom_write)); @@ -462,7 +462,7 @@ void bwidow_state::spacduel_map(address_map &map) map(0x0f00, 0x0f3f).w(FUNC(bwidow_state::earom_write)); map(0x1000, 0x10ff).rw("pokey1", FUNC(pokey_device::read), FUNC(pokey_device::write)); map(0x1400, 0x14ff).rw("pokey2", FUNC(pokey_device::read), FUNC(pokey_device::write)); - map(0x2000, 0x27ff).ram().share("avg:vectorram").region("maincpu", 0x2000); + map(0x2000, 0x27ff).ram().share("avg:vectorram"); map(0x2800, 0x3fff).rom(); map(0x4000, 0xffff).rom(); } diff --git a/src/mame/drivers/bzone.cpp b/src/mame/drivers/bzone.cpp index ccfefcb64e4..9f278f4fa91 100644 --- a/src/mame/drivers/bzone.cpp +++ b/src/mame/drivers/bzone.cpp @@ -348,10 +348,20 @@ void bzone_state::bzone_map(address_map &map) map(0x1820, 0x182f).rw("pokey", FUNC(pokey_device::read), FUNC(pokey_device::write)); map(0x1840, 0x1840).w(FUNC(bzone_state::bzone_sounds_w)); map(0x1860, 0x187f).w(m_mathbox, FUNC(mathbox_device::go_w)); - map(0x2000, 0x2fff).ram().share("avg:vectorram").region("maincpu", 0x2000); + map(0x2000, 0x2fff).ram().share("avg:vectorram"); map(0x3000, 0x7fff).rom(); } +void bzone_state::bradley_map(address_map &map) +{ + bzone_map(map); + map(0x0400, 0x07ff).ram(); + map(0x1808, 0x1808).portr("1808"); + map(0x1809, 0x1809).portr("1809"); + map(0x180a, 0x180a).r(FUNC(bzone_state::analog_data_r)); + map(0x1848, 0x1850).w(FUNC(bzone_state::analog_select_w)); +} + void redbaron_state::redbaron_map(address_map &map) { map.global_mask(0x7fff); @@ -373,7 +383,7 @@ void redbaron_state::redbaron_map(address_map &map) map(0x1810, 0x181f).rw("pokey", FUNC(pokey_device::read), FUNC(pokey_device::write)); map(0x1820, 0x185f).rw(FUNC(redbaron_state::earom_read), FUNC(redbaron_state::earom_write)); map(0x1860, 0x187f).nopr().w("mathbox", FUNC(mathbox_device::go_w)); - map(0x2000, 0x2fff).ram().share("avg:vectorram").region("maincpu", 0x2000); + map(0x2000, 0x2fff).ram().share("avg:vectorram"); map(0x3000, 0x7fff).rom(); } @@ -600,6 +610,12 @@ void bzone_state::bzone(machine_config &config) bzone_audio(config); } +void bzone_state::bradley(machine_config &config) +{ + bzone(config); + m_maincpu->set_addrmap(AS_PROGRAM, &bzone_state::bradley_map); +} + void redbaron_state::redbaron(machine_config &config) { bzone_base(config); @@ -890,18 +906,6 @@ void bzone_state::analog_select_w(offs_t offset, uint8_t data) } -void bzone_state::init_bradley() -{ - address_space &space = m_maincpu->space(AS_PROGRAM); - space.install_ram(0x400, 0x7ff); - space.install_read_port(0x1808, 0x1808, "1808"); - space.install_read_port(0x1809, 0x1809, "1809"); - space.install_read_handler(0x180a, 0x180a, read8smo_delegate(*this, FUNC(bzone_state::analog_data_r))); - space.install_write_handler(0x1848, 0x1850, write8sm_delegate(*this, FUNC(bzone_state::analog_select_w))); -} - - - /************************************* * * Game drivers @@ -911,6 +915,6 @@ void bzone_state::init_bradley() GAMEL(1980, bzone, 0, bzone, bzone, bzone_state, empty_init, ROT0, "Atari", "Battle Zone (rev 2)", MACHINE_SUPPORTS_SAVE, layout_bzone ) GAMEL(1980, bzonea, bzone, bzone, bzone, bzone_state, empty_init, ROT0, "Atari", "Battle Zone (rev 1)", MACHINE_SUPPORTS_SAVE, layout_bzone ) GAMEL(1980, bzonec, bzone, bzone, bzone, bzone_state, empty_init, ROT0, "Atari", "Battle Zone (cocktail)", MACHINE_SUPPORTS_SAVE|MACHINE_NO_COCKTAIL, layout_bzone ) -GAME( 1980, bradley, 0, bzone, bradley, bzone_state, init_bradley, ROT0, "Atari", "Bradley Trainer", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, bradley, 0, bradley, bradley, bzone_state, empty_init, ROT0, "Atari", "Bradley Trainer", MACHINE_SUPPORTS_SAVE ) GAMEL(1980, redbaron, 0, redbaron, redbaron, redbaron_state, empty_init, ROT0, "Atari", "Red Baron (Revised Hardware)", MACHINE_SUPPORTS_SAVE, layout_redbaron ) GAMEL(1980, redbarona, redbaron, redbaron, redbaron, redbaron_state, empty_init, ROT0, "Atari", "Red Baron", MACHINE_SUPPORTS_SAVE, layout_redbaron ) diff --git a/src/mame/drivers/c128.cpp b/src/mame/drivers/c128.cpp index 71d24a0ceb6..220740ba0d8 100644 --- a/src/mame/drivers/c128.cpp +++ b/src/mame/drivers/c128.cpp @@ -69,7 +69,7 @@ public: m_from(*this, "from"), m_rom(*this, M8502_TAG), m_charom(*this, "charom"), - m_color_ram(*this, "color_ram"), + m_color_ram(*this, "color_ram", 0x800, ENDIANNESS_LITTLE), m_row(*this, "ROW%u", 0), m_k(*this, "K%u", 0), m_lock(*this, "LOCK"), @@ -113,7 +113,7 @@ public: required_device<generic_slot_device> m_from; required_memory_region m_rom; required_memory_region m_charom; - optional_shared_ptr<uint8_t> m_color_ram; + memory_share_creator<uint8_t> m_color_ram; required_ioport_array<8> m_row; required_ioport_array<3> m_k; required_ioport m_lock; @@ -1565,9 +1565,6 @@ void c128d81_iec_devices(device_slot_interface &device) void c128_state::machine_start() { - // allocate memory - m_color_ram.allocate(0x800); - // initialize memory uint8_t data = 0xff; diff --git a/src/mame/drivers/c64.cpp b/src/mame/drivers/c64.cpp index cf09c234d03..9083442a636 100644 --- a/src/mame/drivers/c64.cpp +++ b/src/mame/drivers/c64.cpp @@ -64,7 +64,7 @@ public: m_user(*this, PET_USER_PORT_TAG), m_ram(*this, RAM_TAG), m_cassette(*this, PET_DATASSETTE_PORT_TAG), - m_color_ram(*this, "color_ram"), + m_color_ram(*this, "color_ram", 0x400, ENDIANNESS_LITTLE), m_row(*this, "ROW%u", 0), m_lock(*this, "LOCK"), m_loram(1), @@ -93,7 +93,7 @@ public: required_device<pet_user_port_device> m_user; required_device<ram_device> m_ram; optional_device<pet_datassette_port_device> m_cassette; - optional_shared_ptr<uint8_t> m_color_ram; + memory_share_creator<uint8_t> m_color_ram; optional_ioport_array<8> m_row; optional_ioport m_lock; @@ -1409,9 +1409,6 @@ void c64_state::machine_start() } m_charom = memregion("charom")->base(); - // allocate memory - m_color_ram.allocate(0x400); - // initialize memory uint8_t data = 0xff; diff --git a/src/mame/drivers/cabaret.cpp b/src/mame/drivers/cabaret.cpp index 3b3094d794d..d78aeb07817 100644 --- a/src/mame/drivers/cabaret.cpp +++ b/src/mame/drivers/cabaret.cpp @@ -201,7 +201,7 @@ void cabaret_state::ppi2_c_w(uint8_t data) void cabaret_state::cabaret_map(address_map &map) { map(0x00000, 0x0efff).rom(); - map(0x0f000, 0x0ffff).ram().region("maincpu", 0xf000); + map(0x0f000, 0x0ffff).ram(); } void cabaret_state::cabaret_portmap(address_map &map) diff --git a/src/mame/drivers/calchase.cpp b/src/mame/drivers/calchase.cpp index 3b71cc8ef9f..ded34063bcb 100644 --- a/src/mame/drivers/calchase.cpp +++ b/src/mame/drivers/calchase.cpp @@ -407,7 +407,7 @@ void calchase_state::calchase_map(address_map &map) { map(0x00000000, 0x0009ffff).ram(); map(0x000a0000, 0x000bffff).rw("vga", FUNC(trident_vga_device::mem_r), FUNC(trident_vga_device::mem_w)); // VGA VRAM - map(0x000c0000, 0x000c7fff).ram().region("video_bios", 0); + map(0x000c0000, 0x000c7fff).rom().region("video_bios", 0); map(0x000c8000, 0x000cffff).noprw(); //map(0x000d0000, 0x000d0003).ram(); // XYLINX - Sincronus serial communication map(0x000d0004, 0x000d0005).r(FUNC(calchase_state::calchase_iocard1_r)); diff --git a/src/mame/drivers/calorie.cpp b/src/mame/drivers/calorie.cpp index 78c2e54ebe2..439cf8d90a8 100644 --- a/src/mame/drivers/calorie.cpp +++ b/src/mame/drivers/calorie.cpp @@ -186,7 +186,6 @@ uint32_t calorie_state::screen_update_calorie(screen_device &screen, bitmap_ind1 m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); } - for (x = 0x400; x >= 0; x -= 4) { int xpos, ypos, tileno, color, flipx, flipy; @@ -287,7 +286,7 @@ void calorie_state::calorie_map(address_map &map) void calorie_state::decrypted_opcodes_map(address_map &map) { map(0x0000, 0x7fff).rom().share("decrypted_opcodes"); - map(0x8000, 0xbfff).rom(); + map(0x8000, 0xbfff).rom().region("maincpu", 0x8000); map(0xc000, 0xcfff).ram().share("ram"); } diff --git a/src/mame/drivers/cbm2.cpp b/src/mame/drivers/cbm2.cpp index ae2bbae0d14..75d408303bf 100644 --- a/src/mame/drivers/cbm2.cpp +++ b/src/mame/drivers/cbm2.cpp @@ -93,9 +93,9 @@ public: m_basic(*this, "basic"), m_kernal(*this, "kernal"), m_charom(*this, "charom"), - m_buffer_ram(*this, "buffer_ram"), - m_extbuf_ram(*this, "extbuf_ram"), - m_video_ram(*this, "video_ram"), + m_buffer_ram(*this, "buffer_ram", 0x800, ENDIANNESS_LITTLE), + m_extbuf_ram(*this, "extbuf_ram", 0x800, ENDIANNESS_LITTLE), + m_video_ram(*this, "video_ram", 0x800, ENDIANNESS_LITTLE), m_pa(*this, "PA%u", 0), m_pb(*this, "PB%u", 0), m_lock(*this, "LOCK"), @@ -132,9 +132,9 @@ public: required_memory_region m_basic; required_memory_region m_kernal; required_memory_region m_charom; - optional_shared_ptr<uint8_t> m_buffer_ram; - optional_shared_ptr<uint8_t> m_extbuf_ram; - optional_shared_ptr<uint8_t> m_video_ram; + memory_share_creator<uint8_t> m_buffer_ram; + memory_share_creator<uint8_t> m_extbuf_ram; + memory_share_creator<uint8_t> m_video_ram; required_ioport_array<8> m_pa; required_ioport_array<8> m_pb; required_ioport m_lock; @@ -259,7 +259,7 @@ public: : cbm2_state(mconfig, type, tag), m_pla2(*this, PLA2_TAG), m_vic(*this, MOS6569_TAG), - m_color_ram(*this, "color_ram"), + m_color_ram(*this, "color_ram", 0x400, ENDIANNESS_LITTLE), m_statvid(1), m_vicdotsel(1), m_vicbnksel(0x03) @@ -267,7 +267,7 @@ public: required_device<pla_device> m_pla2; required_device<mos6566_device> m_vic; - optional_shared_ptr<uint8_t> m_color_ram; + memory_share_creator<uint8_t> m_color_ram; DECLARE_MACHINE_START( p500 ); DECLARE_MACHINE_START( p500_ntsc ); @@ -2062,10 +2062,6 @@ void cbm2_state::device_timer(emu_timer &timer, device_timer_id id, int param, v MACHINE_START_MEMBER( cbm2_state, cbm2 ) { - // allocate memory - m_video_ram.allocate(m_video_ram_size); - m_buffer_ram.allocate(0x800); - // allocate timer int todclk = (m_ntsc ? 60 : 50) * 2; @@ -2115,9 +2111,6 @@ MACHINE_START_MEMBER( cbm2_state, cbm2_pal ) MACHINE_START_MEMBER( cbm2_state, cbm2x_ntsc ) { - // allocate memory - m_extbuf_ram.allocate(0x800); - MACHINE_START_CALL_MEMBER(cbm2_ntsc); } @@ -2128,9 +2121,6 @@ MACHINE_START_MEMBER( cbm2_state, cbm2x_ntsc ) MACHINE_START_MEMBER( cbm2_state, cbm2x_pal ) { - // allocate memory - m_extbuf_ram.allocate(0x800); - MACHINE_START_CALL_MEMBER(cbm2_pal); } @@ -2145,9 +2135,6 @@ MACHINE_START_MEMBER( p500_state, p500 ) MACHINE_START_CALL_MEMBER(cbm2); - // allocate memory - m_color_ram.allocate(0x400); - // state saving save_item(NAME(m_statvid)); save_item(NAME(m_vicdotsel)); diff --git a/src/mame/drivers/cham24.cpp b/src/mame/drivers/cham24.cpp index e8dd7e34f75..dcb1247683a 100644 --- a/src/mame/drivers/cham24.cpp +++ b/src/mame/drivers/cham24.cpp @@ -94,6 +94,7 @@ public: void cham24_set_mirroring( int mirroring ); void cham24(machine_config &config); void cham24_map(address_map &map); + void cham24_ppu_map(address_map &map); }; @@ -229,6 +230,12 @@ void cham24_state::cham24_map(address_map &map) map(0x8000, 0xffff).rom().w(FUNC(cham24_state::cham24_mapper_w)); } +void cham24_state::cham24_ppu_map(address_map &map) +{ + map(0x0000, 0x1fff).bankr("bank1"); + map(0x2000, 0x3eff).rw(FUNC(cham24_state::nt_r), FUNC(cham24_state::nt_w)); +} + static INPUT_PORTS_START( cham24 ) PORT_START("P1") /* IN0 */ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) @@ -272,7 +279,6 @@ void cham24_state::machine_reset() memcpy(&dst[0xc000], &src[0x0f8000], 0x4000); /* uses 8K swapping, all ROM!*/ - m_ppu->space(AS_PROGRAM).install_read_bank(0x0000, 0x1fff, "bank1"); membank("bank1")->set_base(memregion("gfx1")->base()); m_nt_page[0] = m_nt_ram.get(); @@ -302,6 +308,7 @@ void cham24_state::cham24(machine_config &config) screen.set_screen_update("ppu", FUNC(ppu2c0x_device::screen_update)); PPU_2C02(config, m_ppu); + m_ppu->set_addrmap(0, &cham24_state::cham24_ppu_map); m_ppu->set_cpu_tag(m_maincpu); m_ppu->int_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); diff --git a/src/mame/drivers/chinagat.cpp b/src/mame/drivers/chinagat.cpp index 377d928252b..e5726b28b30 100644 --- a/src/mame/drivers/chinagat.cpp +++ b/src/mame/drivers/chinagat.cpp @@ -525,7 +525,7 @@ void chinagat_state::main_map(address_map &map) map(0x2800, 0x2fff).ram().w(FUNC(chinagat_state::ddragon_bgvideoram_w)).share("bgvideoram"); map(0x3000, 0x317f).w(m_palette, FUNC(palette_device::write8)).share("palette"); map(0x3400, 0x357f).w(m_palette, FUNC(palette_device::write8_ext)).share("palette_ext"); - map(0x3800, 0x397f).bankw("bank3").share("spriteram"); + map(0x3800, 0x397f).ram().share("spriteram"); map(0x3e00, 0x3e04).w(FUNC(chinagat_state::interrupt_w)); map(0x3e06, 0x3e06).writeonly().share("scrolly_lo"); map(0x3e07, 0x3e07).writeonly().share("scrollx_lo"); diff --git a/src/mame/drivers/chsuper.cpp b/src/mame/drivers/chsuper.cpp index 6593e92101f..b7711633c8a 100644 --- a/src/mame/drivers/chsuper.cpp +++ b/src/mame/drivers/chsuper.cpp @@ -215,7 +215,7 @@ void chsuper_state::chsuper_prg_map(address_map &map) { map(0x00000, 0x0efff).rom(); map(0x00000, 0x01fff).w(FUNC(chsuper_state::chsuper_vram_w)); - map(0x0f000, 0x0ffff).ram().region("maincpu", 0xf000); + map(0x0f000, 0x0ffff).ram(); map(0xfb000, 0xfbfff).ram().share("nvram"); } diff --git a/src/mame/drivers/cninja.cpp b/src/mame/drivers/cninja.cpp index b066e74301d..c203b6da185 100644 --- a/src/mame/drivers/cninja.cpp +++ b/src/mame/drivers/cninja.cpp @@ -145,6 +145,14 @@ void cninja_state::cninjabl_map(address_map &map) map(0x1b4000, 0x1b4001).w(m_spriteram[0], FUNC(buffered_spriteram16_device::write)); /* DMA flag */ } +void cninja_state::cninjabl2_map(address_map &map) +{ + cninja_map(map); + + map(0x180000, 0x18ffff).ram(); + map(0x1b4000, 0x1b4001).r(FUNC(cninja_state::cninjabl2_sprite_dma_r)); +} + uint16_t cninja_state::edrandy_protection_region_8_146_r(offs_t offset) { int real_address = 0x1a0000 + (offset *2); @@ -909,6 +917,7 @@ void cninja_state::stoneage(machine_config &config) void cninja_state::cninjabl2(machine_config &config) { stoneage(config); + m_maincpu->set_addrmap(AS_PROGRAM, &cninja_state::cninjabl2_map); m_audiocpu->set_addrmap(AS_PROGRAM, &cninja_state::cninjabl2_s_map); m_screen->set_screen_update(FUNC(cninja_state::screen_update_cninjabl2)); @@ -2169,9 +2178,6 @@ ROM_END void cninja_state::init_cninjabl2() { - m_maincpu->space(AS_PROGRAM).install_ram(0x180000, 0x18ffff); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b4000, 0x1b4001, read16smo_delegate(*this, FUNC(cninja_state::cninjabl2_sprite_dma_r))); - m_okibank->configure_entries(0, 8, memregion("oki2")->base(), 0x10000); } diff --git a/src/mame/drivers/combatsc.cpp b/src/mame/drivers/combatsc.cpp index b0c537a6bc7..f937640435e 100644 --- a/src/mame/drivers/combatsc.cpp +++ b/src/mame/drivers/combatsc.cpp @@ -240,7 +240,7 @@ void combatsc_state::combatscb_bankselect_w(address_space &space, uint8_t data) } else { - space.install_read_bank(0x4000, 0x7fff, "bank1"); /* banked ROM */ + space.install_read_bank(0x4000, 0x7fff, membank("bank1")); /* banked ROM */ space.unmap_write(0x4000, 0x7fff); /* banked ROM */ } } diff --git a/src/mame/drivers/compis.cpp b/src/mame/drivers/compis.cpp index e1402cf5e43..2a72bbf4bf1 100644 --- a/src/mame/drivers/compis.cpp +++ b/src/mame/drivers/compis.cpp @@ -694,15 +694,15 @@ void compis_state::machine_start() switch (m_ram->size()) { case 256*1024: - m_maincpu->space(AS_PROGRAM).install_ram(0x20000, 0x3ffff, nullptr); + m_maincpu->space(AS_PROGRAM).install_ram(0x20000, 0x3ffff, m_ram->pointer()); break; case 512*1024: - m_maincpu->space(AS_PROGRAM).install_ram(0x20000, 0x7ffff, nullptr); + m_maincpu->space(AS_PROGRAM).install_ram(0x20000, 0x7ffff, m_ram->pointer()); break; case 768*1024: - m_maincpu->space(AS_PROGRAM).install_ram(0x20000, 0xbffff, nullptr); + m_maincpu->space(AS_PROGRAM).install_ram(0x20000, 0xbffff, m_ram->pointer()); break; } diff --git a/src/mame/drivers/coolridr.cpp b/src/mame/drivers/coolridr.cpp index cbb54e200b3..d54b9c5d15a 100644 --- a/src/mame/drivers/coolridr.cpp +++ b/src/mame/drivers/coolridr.cpp @@ -320,7 +320,7 @@ public: m_workram_h(*this, "workrah"), m_sound_dma(*this, "sound_dma"), m_soundram(*this, "soundram%u", 1U), - m_rom(*this, "share1"), + m_rom(*this, "maincpu"), m_compressedgfx(*this, "compressedgfx"), m_io_config(*this, "CONFIG"), m_gfxdecode(*this, "gfxdecode"), @@ -358,7 +358,7 @@ public: required_shared_ptr<uint32_t> m_workram_h; required_shared_ptr<uint32_t> m_sound_dma; required_shared_ptr_array<uint16_t, 2> m_soundram; - required_shared_ptr<uint32_t> m_rom; + required_region_ptr<uint32_t> m_rom; required_region_ptr<uint8_t> m_compressedgfx; required_ioport m_io_config; required_device<gfxdecode_device> m_gfxdecode; @@ -2779,7 +2779,7 @@ void coolridr_state::dma_w(address_space &space, offs_t offset, uint32_t data, u void coolridr_state::system_h1_map(address_map &map) { - map(0x00000000, 0x001fffff).rom().share("share1").nopw(); + map(0x00000000, 0x001fffff).rom().nopw(); map(0x01000000, 0x01ffffff).rom().region("gfx_data", 0x0000000); map(0x03f40000, 0x03f4ffff).ram().share("txt_vram");//text tilemap + "lineram" @@ -2790,7 +2790,7 @@ void coolridr_state::system_h1_map(address_map &map) map(0x0400001c, 0x0400001f).w(FUNC(coolridr_state::fb_data_w)); map(0x06000000, 0x060fffff).ram().share("workrah"); - map(0x20000000, 0x201fffff).rom().share("share1"); + map(0x20000000, 0x201fffff).rom().region("maincpu", 0); map(0x60000000, 0x600003ff).nopw(); } diff --git a/src/mame/drivers/crshrace.cpp b/src/mame/drivers/crshrace.cpp index 250efe14715..387ad13de5e 100644 --- a/src/mame/drivers/crshrace.cpp +++ b/src/mame/drivers/crshrace.cpp @@ -167,7 +167,7 @@ void crshrace_state::main_map(address_map &map) map(0xfff00a, 0xfff00b).portr("DSW1"); map(0xfff00e, 0xfff00f).portr("P3"); map(0xfff020, 0xfff03f).w(m_k053936, FUNC(k053936_device::ctrl_w)); - map(0xfff044, 0xfff047).writeonly(); // ??? moves during race + map(0xfff044, 0xfff047).nopw(); // ??? moves during race } void crshrace_state::sound_map(address_map &map) diff --git a/src/mame/drivers/cv1k.cpp b/src/mame/drivers/cv1k.cpp index 552016f3d9b..adbb12d4135 100644 --- a/src/mame/drivers/cv1k.cpp +++ b/src/mame/drivers/cv1k.cpp @@ -194,7 +194,7 @@ public: m_serflash(*this, "game"), m_eeprom(*this, "eeprom"), m_ram(*this, "mainram"), - m_rombase(*this, "rombase"), + m_rombase(*this, "maincpu"), m_blitrate(*this, "BLITRATE"), m_eepromout(*this, "EEPROMOUT"), m_idleramoffs(0), @@ -207,7 +207,7 @@ public: required_device<rtc9701_device> m_eeprom; required_shared_ptr<uint64_t> m_ram; - required_shared_ptr<uint64_t> m_rombase; + required_region_ptr<uint64_t> m_rombase; uint8_t flash_io_r(offs_t offset); void flash_io_w(offs_t offset, uint8_t data); @@ -342,7 +342,7 @@ void cv1k_state::serial_rtc_eeprom_w(offs_t offset, uint8_t data) void cv1k_state::cv1k_map(address_map &map) { - map(0x00000000, 0x003fffff).rom().region("maincpu", 0).nopw().share("rombase"); // mmmbanc writes here on startup for some reason.. + map(0x00000000, 0x003fffff).rom().region("maincpu", 0).nopw(); // mmmbanc writes here on startup for some reason.. map(0x0c000000, 0x0c7fffff).ram().share("mainram");// work RAM map(0x10000000, 0x10000007).rw(FUNC(cv1k_state::flash_io_r), FUNC(cv1k_state::flash_io_w)); map(0x10400000, 0x10400007).w("ymz770", FUNC(ymz770_device::write)); @@ -353,7 +353,7 @@ void cv1k_state::cv1k_map(address_map &map) void cv1k_state::cv1k_d_map(address_map &map) { - map(0x00000000, 0x003fffff).rom().region("maincpu", 0).nopw().share("rombase"); // mmmbanc writes here on startup for some reason.. + map(0x00000000, 0x003fffff).rom().region("maincpu", 0).nopw(); // mmmbanc writes here on startup for some reason.. map(0x0c000000, 0x0cffffff).ram().share("mainram"); // work RAM map(0x10000000, 0x10000007).rw(FUNC(cv1k_state::flash_io_r), FUNC(cv1k_state::flash_io_w)); map(0x10400000, 0x10400007).w("ymz770", FUNC(ymz770_device::write)); diff --git a/src/mame/drivers/dccons.cpp b/src/mame/drivers/dccons.cpp index d89964525ae..eef412c89a1 100644 --- a/src/mame/drivers/dccons.cpp +++ b/src/mame/drivers/dccons.cpp @@ -379,7 +379,7 @@ void dc_cons_state::dc_flash_w(offs_t offset, uint8_t data) void dc_cons_state::dc_map(address_map &map) { map(0x00000000, 0x001fffff).rom().nopw(); // BIOS - map(0x00200000, 0x0021ffff).rw(FUNC(dc_cons_state::dc_flash_r), FUNC(dc_cons_state::dc_flash_w)).region("dcflash", 0x20000); + map(0x00200000, 0x0021ffff).rw(FUNC(dc_cons_state::dc_flash_r), FUNC(dc_cons_state::dc_flash_w)); map(0x005f6800, 0x005f69ff).rw(FUNC(dc_cons_state::dc_sysctrl_r), FUNC(dc_cons_state::dc_sysctrl_w)); map(0x005f6c00, 0x005f6cff).m(m_maple, FUNC(maple_dc_device::amap)); map(0x005f7000, 0x005f701f).rw(m_ata, FUNC(ata_interface_device::cs1_r), FUNC(ata_interface_device::cs1_w)).umask64(0x0000ffff0000ffff); diff --git a/src/mame/drivers/ddenlovr.cpp b/src/mame/drivers/ddenlovr.cpp index 8e59a701fa2..7f3d3e7b2a7 100644 --- a/src/mame/drivers/ddenlovr.cpp +++ b/src/mame/drivers/ddenlovr.cpp @@ -2031,7 +2031,7 @@ void ddenlovr_state::quiz365_map(address_map &map) map(0x200c02, 0x200c03).r(FUNC(ddenlovr_state::quiz365_protection_r)); // Protection map(0x200e0a, 0x200e0d).w(FUNC(ddenlovr_state::quiz365_protection_w)); // Protection -// map(0x201000, 0x2017ff).writeonly(); // ? +// map(0x201000, 0x2017ff).nopw(); // ? map(0x300201, 0x300201).w(FUNC(ddenlovr_state::ddenlovr_select2_w)); map(0x300203, 0x300203).w(FUNC(ddenlovr_state::quiz365_coincounter_w)); // Coin Counters + more stuff written on startup @@ -2085,7 +2085,7 @@ void ddenlovr_state::ddenlovj_map(address_map &map) map(0x000000, 0x07ffff).rom(); // ROM map(0x200000, 0x2003ff).w(FUNC(ddenlovr_state::ddenlovr_palette_w)).umask16(0x00ff); -// map(0x201000, 0x2017ff).writeonly(); // ? B0 on startup, then 00 +// map(0x201000, 0x2017ff).nopq(); // ? B0 on startup, then 00 map(0x300040, 0x300047).w(FUNC(ddenlovr_state::ddenlovr_palette_base_w)).umask16(0x00ff); map(0x300048, 0x30004f).w(FUNC(ddenlovr_state::ddenlovr_palette_mask_w)).umask16(0x00ff); @@ -2255,7 +2255,7 @@ void ddenlovr_state::nettoqc_map(address_map &map) map(0x200000, 0x2003ff).w(FUNC(ddenlovr_state::ddenlovr_palette_w)).umask16(0x00ff); map(0x200c02, 0x200c03).r(FUNC(ddenlovr_state::nettoqc_protection1_r)); // Protection 1 map(0x200e0a, 0x200e0d).writeonly().share("protection1"); // "" - map(0x201000, 0x2017ff).writeonly(); // ? + map(0x201000, 0x2017ff).nopw(); // ? map(0x300040, 0x300047).w(FUNC(ddenlovr_state::ddenlovr_palette_base_w)).umask16(0x00ff); map(0x300048, 0x30004f).w(FUNC(ddenlovr_state::ddenlovr_palette_mask_w)).umask16(0x00ff); @@ -2310,7 +2310,7 @@ void ddenlovr_state::ultrchmp_map(address_map &map) map(0xd00c02, 0xd00c03).r(FUNC(ddenlovr_state::nettoqc_protection1_r)); // Protection 1 map(0xd00e0a, 0xd00e0d).writeonly().share("protection1"); // "" - map(0xd01000, 0xd017ff).writeonly(); // ? + map(0xd01000, 0xd017ff).nopw(); // ? map(0xe00040, 0xe00047).w(FUNC(ddenlovr_state::ddenlovr_palette_base_w)).umask16(0x00ff); map(0xe00048, 0xe0004f).w(FUNC(ddenlovr_state::ddenlovr_palette_mask_w)).umask16(0x00ff); @@ -2520,7 +2520,7 @@ void mmpanic_state::mmpanic_map(address_map &map) map(0x0000, 0x5fff).rom(); // ROM map(0x0051, 0x0051).r(FUNC(mmpanic_state::magic_r)); // ? map(0x6000, 0x6fff).ram(); // RAM - map(0x7000, 0x7fff).bankrw("bank2"); // RAM (Banked) + map(0x7000, 0x7fff).ram(); // RAM (Banked) map(0x8000, 0xffff).bankr("bank1"); // ROM (Banked) map(0x8000, 0x81ff).w(FUNC(mmpanic_state::ddenlovr_palette_w)); } diff --git a/src/mame/drivers/ddragon.cpp b/src/mame/drivers/ddragon.cpp index 3de10c7f244..155b040507d 100644 --- a/src/mame/drivers/ddragon.cpp +++ b/src/mame/drivers/ddragon.cpp @@ -471,7 +471,7 @@ void ddragon_state::ddragon_base_map(address_map &map) map(0x1000, 0x11ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); map(0x1200, 0x13ff).ram().w(m_palette, FUNC(palette_device::write8_ext)).share("palette_ext"); map(0x1800, 0x1fff).ram().w(FUNC(ddragon_state::ddragon_fgvideoram_w)).share("fgvideoram"); - map(0x2000, 0x21ff).rw(FUNC(ddragon_state::ddragon_comram_r), FUNC(ddragon_state::ddragon_comram_w)).share("comram").mirror(0x0600); + map(0x2000, 0x21ff).rw(FUNC(ddragon_state::ddragon_comram_r), FUNC(ddragon_state::ddragon_comram_w)).mirror(0x0600); map(0x2800, 0x2fff).ram().share("spriteram"); map(0x3000, 0x37ff).ram().w(FUNC(ddragon_state::ddragon_bgvideoram_w)).share("bgvideoram"); map(0x3800, 0x3800).portr("P1"); @@ -517,7 +517,7 @@ void ddragon_state::dd2_map(address_map &map) { map(0x0000, 0x17ff).ram(); map(0x1800, 0x1fff).ram().w(FUNC(ddragon_state::ddragon_fgvideoram_w)).share("fgvideoram"); - map(0x2000, 0x21ff).rw(FUNC(ddragon_state::ddragon_comram_r), FUNC(ddragon_state::ddragon_comram_w)).share("comram").mirror(0x0600); + map(0x2000, 0x21ff).rw(FUNC(ddragon_state::ddragon_comram_r), FUNC(ddragon_state::ddragon_comram_w)).mirror(0x0600); map(0x2800, 0x2fff).ram().share("spriteram"); map(0x3000, 0x37ff).ram().w(FUNC(ddragon_state::ddragon_bgvideoram_w)).share("bgvideoram"); map(0x3800, 0x3800).portr("P1"); diff --git a/src/mame/drivers/deadang.cpp b/src/mame/drivers/deadang.cpp index edef6c2e8a2..9b4d3d55eea 100644 --- a/src/mame/drivers/deadang.cpp +++ b/src/mame/drivers/deadang.cpp @@ -72,17 +72,17 @@ void deadang_state::main_map(address_map &map) map(0x00000, 0x037ff).ram(); map(0x03800, 0x03fff).ram().share("spriteram"); map(0x04000, 0x04fff).ram().share("share1"); - map(0x05000, 0x05fff).writeonly(); + map(0x05000, 0x05fff).nopw(); map(0x06000, 0x0600f).rw(m_seibu_sound, FUNC(seibu_sound_device::main_r), FUNC(seibu_sound_device::main_w)).umask16(0x00ff); - map(0x06010, 0x07fff).writeonly(); + map(0x06010, 0x07fff).nopw(); map(0x08000, 0x087ff).w(FUNC(deadang_state::text_w)).share("videoram"); - map(0x08800, 0x0bfff).writeonly(); + map(0x08800, 0x0bfff).nopw(); map(0x0a000, 0x0a001).portr("P1_P2"); map(0x0a002, 0x0a003).portr("DSW"); map(0x0c000, 0x0cfff).w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x0d000, 0x0dfff).writeonly(); + map(0x0d000, 0x0dfff).nopw(); map(0x0e000, 0x0e0ff).ram().share("scroll_ram"); - map(0x0e100, 0x0ffff).writeonly(); + map(0x0e100, 0x0ffff).nopw(); map(0xc0000, 0xfffff).rom(); } @@ -92,16 +92,16 @@ void popnrun_state::popnrun_main_map(address_map &map) map(0x03c00, 0x03dff).ram().share("spriteram"); map(0x03e00, 0x03fff).ram(); map(0x04000, 0x04fff).ram().share("share1"); - map(0x05000, 0x05fff).writeonly(); + map(0x05000, 0x05fff).nopw(); map(0x06000, 0x0600f).rw(m_seibu_sound, FUNC(seibu_sound_device::main_r), FUNC(seibu_sound_device::main_w)).umask16(0x00ff); - map(0x06010, 0x07fff).writeonly(); + map(0x06010, 0x07fff).nopw(); map(0x08000, 0x08fff).ram().w(FUNC(popnrun_state::popnrun_text_w)).share("videoram"); map(0x0a000, 0x0a001).portr("P1_P2"); map(0x0a002, 0x0a003).portr("DSW"); map(0x0c000, 0x0cfff).w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x0d000, 0x0dfff).writeonly(); + map(0x0d000, 0x0dfff).nopw(); map(0x0e000, 0x0e0ff).ram().share("scroll_ram"); - map(0x0e100, 0x0ffff).writeonly(); + map(0x0e100, 0x0ffff).nopw(); map(0xc0000, 0xfffff).rom(); } diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp index b320fac8a5e..9750b38a139 100644 --- a/src/mame/drivers/dec0.cpp +++ b/src/mame/drivers/dec0.cpp @@ -456,6 +456,15 @@ void dec0_state::dec0_map(address_map &map) map(0xffc000, 0xffc7ff).ram().share("spriteram"); } +void dec0_state::ffantasybl_map(address_map &map) +{ + dec0_map(map); + + map(0x0024c880, 0x0024cbff).ram(); // what is this? layer 3-related?? + map(0x00242024, 0x00242025).r(FUNC(dec0_state::ffantasybl_242024_r)); + map(0x00ff87ee, 0x00ff87ef).portr("VBLANK"); +} + void dec0_state::dec0_tb_map(address_map &map) { dec0_map(map); @@ -2134,10 +2143,11 @@ void dec0_state::hippodrm(machine_config &config) } void dec0_state::ffantasybl(machine_config &config) - { dec0(config); + m_maincpu->set_addrmap(AS_PROGRAM, &dec0_state::ffantasybl_map); + // H6280(config, m_subcpu, XTAL(21'477'272) / 16); // m_subcpu->set_addrmap(AS_PROGRAM, &dec0_state::hippodrm_sub_map); // m_subcpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused @@ -4122,14 +4132,6 @@ uint16_t dec0_state::ffantasybl_242024_r() return 0xffff; } -void dec0_state::init_ffantasybl() -{ - m_maincpu->space(AS_PROGRAM).install_ram(0x24c880, 0x24cbff); // what is this? layer 3-related?? - - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00242024, 0x00242025, read16smo_delegate(*this, FUNC(dec0_state::ffantasybl_242024_r))); - m_maincpu->space(AS_PROGRAM).install_read_port(0x00ff87ee, 0x00ff87ef, "VBLANK"); -} - /******************************************************************************/ // YEAR, NAME, PARENT, MACHINE, INPUT, STATE/DEVICE, INIT, MONITOR,COMPANY, FULLNAME, FLAGS @@ -4171,7 +4173,7 @@ GAME( 1988, drgninjab, baddudes, drgninjab, drgninja, dec0_state, init_drgni // this is a common bootleg board GAME( 1989, midresb, midres, midresb, midresb, dec0_state, init_midresb, ROT0, "bootleg", "Midnight Resistance (bootleg with 68705)", MACHINE_SUPPORTS_SAVE ) // need to hook up 68705? (probably unused) GAME( 1989, midresbj, midres, midresbj, midresb, dec0_state, init_midresb, ROT0, "bootleg", "Midnight Resistance (Joystick bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, ffantasybl, hippodrm, ffantasybl, ffantasybl, dec0_state, init_ffantasybl, ROT0, "bootleg", "Fighting Fantasy (bootleg with 68705)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // 68705 not dumped, might be the same as midresb +GAME( 1989, ffantasybl, hippodrm, ffantasybl, ffantasybl, dec0_state, empty_init, ROT0, "bootleg", "Fighting Fantasy (bootleg with 68705)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // 68705 not dumped, might be the same as midresb GAME( 1988, drgninjab2, baddudes, drgninjab, drgninja, dec0_state, init_drgninja, ROT0, "bootleg", "Dragonninja (bootleg with 68705)", MACHINE_SUPPORTS_SAVE ) // is this the same board as above? (region warning hacked to World, but still shows Japanese text), 68705 dumped but not hooked up // these are different to the above but quite similar to each other diff --git a/src/mame/drivers/dec8.cpp b/src/mame/drivers/dec8.cpp index e443f17e22a..902278757d0 100644 --- a/src/mame/drivers/dec8.cpp +++ b/src/mame/drivers/dec8.cpp @@ -573,7 +573,7 @@ void dec8_state::cobra_map(address_map &map) map(0x2000, 0x27ff).ram().w(FUNC(dec8_state::dec8_videoram_w)).share("videoram"); map(0x2800, 0x2fff).ram().share("spriteram"); map(0x3000, 0x31ff).ram().w(m_palette, FUNC(deco_rmc3_device::write8)).share("palette"); - map(0x3200, 0x37ff).writeonly(); /* Unused */ + map(0x3200, 0x37ff).nopw(); /* Unused */ map(0x3800, 0x3800).portr("IN0"); /* Player 1 */ map(0x3801, 0x3801).portr("IN1"); /* Player 2 */ map(0x3802, 0x3802).portr("DSW0"); /* Dip 1 */ diff --git a/src/mame/drivers/decocass.cpp b/src/mame/drivers/decocass.cpp index 43327afaf76..cfce798e848 100644 --- a/src/mame/drivers/decocass.cpp +++ b/src/mame/drivers/decocass.cpp @@ -122,6 +122,13 @@ void decocass_state::decocass_map(address_map &map) map(0xf000, 0xffff).rom(); } +void decocass_state::decocrom_map(address_map &map) +{ + decocass_map(map); + map(0x6000, 0xafff).bankr("bank1").w(FUNC(decocass_state::decocass_de0091_w)); + map(0xe900, 0xe900).w(FUNC(decocass_state::decocass_e900_w)); +} + void decocass_state::decocass_sound_map(address_map &map) { map(0x0000, 0x0fff).ram(); @@ -2073,15 +2080,10 @@ void decocass_state::init_decocrom() init_decocass(); /* convert charram to a banked ROM */ - m_maincpu->space(AS_PROGRAM).install_read_bank(0x6000, 0xafff, "bank1"); - m_maincpu->space(AS_PROGRAM).install_write_handler(0x6000, 0xafff, write8sm_delegate(*this, FUNC(decocass_state::decocass_de0091_w))); membank("bank1")->configure_entry(0, m_charram); membank("bank1")->configure_entry(1, memregion("user3")->base()); membank("bank1")->configure_entry(2, memregion("user3")->base()+0x5000); membank("bank1")->set_entry(0); - - /* install the bank selector */ - m_maincpu->space(AS_PROGRAM).install_write_handler(0xe900, 0xe900, write8smo_delegate(*this, FUNC(decocass_state::decocass_e900_w))); } uint8_t decocass_state::cdsteljn_input_r(offs_t offset) diff --git a/src/mame/drivers/dgn_beta.cpp b/src/mame/drivers/dgn_beta.cpp index 161ed880f78..ca131c75f3e 100644 --- a/src/mame/drivers/dgn_beta.cpp +++ b/src/mame/drivers/dgn_beta.cpp @@ -173,7 +173,6 @@ void dgn_beta_state::dgnbeta_map(address_map &map) map(0xFE00, 0xFE0F).rw(FUNC(dgn_beta_state::dgn_beta_page_r), FUNC(dgn_beta_state::dgn_beta_page_w)); map(0xfe10, 0xfEff).noprw(); map(0xFF00, 0xFFFF).bankrw("bank17"); - } diff --git a/src/mame/drivers/dgpix.cpp b/src/mame/drivers/dgpix.cpp index e06bdcb99b2..e571ec9a838 100644 --- a/src/mame/drivers/dgpix.cpp +++ b/src/mame/drivers/dgpix.cpp @@ -359,7 +359,7 @@ void dgpix_state::mem_map(address_map &map) map(0x40000000, 0x4003ffff).rw(FUNC(dgpix_state::vram_r), FUNC(dgpix_state::vram_w)); map(0xe0000000, 0xe1ffffff).rw(FUNC(dgpix_state::flash_r), FUNC(dgpix_state::flash_w)); map(0xe2000000, 0xe3ffffff).rw(FUNC(dgpix_state::flash_r), FUNC(dgpix_state::flash_w)); - map(0xffc00000, 0xffffffff).rom().region("flash", 0x1c00000).share("nvram"); + map(0xffc00000, 0xffffffff).rom().region("flash", 0x1c00000); } void dgpix_state::io_map(address_map &map) diff --git a/src/mame/drivers/diverboy.cpp b/src/mame/drivers/diverboy.cpp index 4f456743112..1cc743beea6 100644 --- a/src/mame/drivers/diverboy.cpp +++ b/src/mame/drivers/diverboy.cpp @@ -177,8 +177,8 @@ void diverboy_state::diverboy_map(address_map &map) map(0x180008, 0x180009).portr("COINS"); // map(0x18000a, 0x18000b).nopr(); // map(0x18000c, 0x18000d).nopw(); - map(0x320000, 0x3207ff).writeonly(); /* ?? */ - map(0x322000, 0x3227ff).writeonly(); /* ?? */ + map(0x320000, 0x3207ff).nopw(); /* ?? */ + map(0x322000, 0x3227ff).nopw(); /* ?? */ // map(0x340000, 0x340001).nopw(); // map(0x340002, 0x340003).nopw(); } diff --git a/src/mame/drivers/djboy.cpp b/src/mame/drivers/djboy.cpp index acdefe1c530..01eff54e7cb 100644 --- a/src/mame/drivers/djboy.cpp +++ b/src/mame/drivers/djboy.cpp @@ -206,9 +206,7 @@ void djboy_state::mastercpu_am(address_map &map) map(0x8000, 0xafff).bankr("master_bank_l"); map(0xb000, 0xbfff).rw(m_pandora, FUNC(kaneko_pandora_device::spriteram_r), FUNC(kaneko_pandora_device::spriteram_w)); map(0xc000, 0xdfff).bankr("master_bank"); - map(0xe000, 0xefff).ram().share("share1"); - map(0xf000, 0xf7ff).ram(); - map(0xf800, 0xffff).ram(); + map(0xe000, 0xffff).ram().share("share1"); } void djboy_state::mastercpu_port_am(address_map &map) diff --git a/src/mame/drivers/dkong.cpp b/src/mame/drivers/dkong.cpp index 3d8c7c68ec3..7d65ba631be 100644 --- a/src/mame/drivers/dkong.cpp +++ b/src/mame/drivers/dkong.cpp @@ -530,7 +530,7 @@ MACHINE_RESET_MEMBER(dkong_state,dkong) MACHINE_RESET_MEMBER(dkong_state,ddk) { - dk_braze_a15(!membank("bank1")->entry()); + dk_braze_a15(!m_bank1->entry()); } MACHINE_RESET_MEMBER(dkong_state,strtheat) @@ -540,9 +540,9 @@ MACHINE_RESET_MEMBER(dkong_state,strtheat) MACHINE_RESET_CALL_MEMBER(dkong); /* The initial state of the counter is 0x08 */ - membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); + m_bank1->configure_entries(0, 4, &ROM[0x10000], 0x4000); m_decrypt_counter = 0x08; - membank("bank1")->set_entry(0); + m_bank1->set_entry(0); } MACHINE_RESET_MEMBER(dkong_state,drakton) @@ -552,9 +552,9 @@ MACHINE_RESET_MEMBER(dkong_state,drakton) MACHINE_RESET_CALL_MEMBER(dkong); /* The initial state of the counter is 0x09 */ - membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); + m_bank1->configure_entries(0, 4, &ROM[0x10000], 0x4000); m_decrypt_counter = 0x09; - membank("bank1")->set_entry(1); + m_bank1->set_entry(1); } @@ -649,10 +649,10 @@ uint8_t dkong_state::epos_decrypt_rom(offs_t offset) switch(m_decrypt_counter) { - case 0x08: membank("bank1")->set_entry(0); break; - case 0x09: membank("bank1")->set_entry(1); break; - case 0x0A: membank("bank1")->set_entry(2); break; - case 0x0B: membank("bank1")->set_entry(3); break; + case 0x08: m_bank1->set_entry(0); break; + case 0x09: m_bank1->set_entry(1); break; + case 0x0A: m_bank1->set_entry(2); break; + case 0x0B: m_bank1->set_entry(3); break; default: logerror("Invalid counter = %02X\n",m_decrypt_counter); break; @@ -1619,8 +1619,8 @@ uint8_t dkong_state::braze_eeprom_r() WRITE_LINE_MEMBER(dkong_state::dk_braze_a15) { - membank("bank1")->set_entry(state & 0x01); - membank("bank2")->set_entry(state & 0x01); + m_bank1->set_entry(state & 0x01); + m_bank2->set_entry(state & 0x01); } void dkong_state::dk_braze_a15_w(uint8_t data) @@ -3576,7 +3576,7 @@ void dkong_state::init_drakton() {7,1,4,0,3,6,2,5}, }; - m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x3fff, "bank1" ); + m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x3fff, m_bank1 ); /* While the PAL supports up to 16 decryption methods, only four are actually used in the PAL. Therefore, we'll take a little @@ -3598,7 +3598,7 @@ void dkong_state::init_strtheat() {6,3,4,1,0,7,2,5}, }; - m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x3fff, "bank1" ); + m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x3fff, m_bank1 ); /* While the PAL supports up to 16 decryption methods, only four are actually used in the PAL. Therefore, we'll take a little @@ -3617,15 +3617,15 @@ void dkong_state::dk_braze_decrypt() { m_decrypted = std::make_unique<uint8_t[]>(0x10000); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x5fff, "bank1"); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0xffff, "bank2"); + m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x5fff, m_bank1); + m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0xffff, m_bank2); braze_decrypt_rom(m_decrypted.get()); - membank("bank1")->configure_entries(0, 2, m_decrypted.get(), 0x8000); - membank("bank1")->set_entry(0); - membank("bank2")->configure_entries(0, 2, m_decrypted.get(), 0x8000); - membank("bank2")->set_entry(0); + m_bank1->configure_entries(0, 2, m_decrypted.get(), 0x8000); + m_bank1->set_entry(0); + m_bank2->configure_entries(0, 2, m_decrypted.get(), 0x8000); + m_bank2->set_entry(0); } void dkong_state::init_dkonghs() diff --git a/src/mame/drivers/dreamwld.cpp b/src/mame/drivers/dreamwld.cpp index 896deba394c..0f386dfe0a2 100644 --- a/src/mame/drivers/dreamwld.cpp +++ b/src/mame/drivers/dreamwld.cpp @@ -120,10 +120,10 @@ public: dreamwld_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_spriteram(*this, "spriteram") - , m_vram(*this, "vram_%u", 0U, u8(32)) + , m_vram(*this, "vram_%u", 0U) , m_vregs(*this, "vregs") , m_workram(*this, "workram") - , m_lineram(*this, "lineram", 32) + , m_lineram(*this, "lineram") , m_spritelut(*this, "spritelut") , m_okibank(*this, "oki%ubank", 1) , m_dsw(*this, "DSW") diff --git a/src/mame/drivers/ec184x.cpp b/src/mame/drivers/ec184x.cpp index 03949a4a4d1..b79b2b61923 100644 --- a/src/mame/drivers/ec184x.cpp +++ b/src/mame/drivers/ec184x.cpp @@ -136,8 +136,7 @@ void ec184x_state::memboard_w(offs_t offset, uint8_t data) for (int i = 0; i < 4; i++) m_memory.enable[i] &= 0xfb; // enable read access - membank("bank10")->set_base(m_ram->pointer() + offset * EC1841_MEMBOARD_SIZE); - program.install_read_bank(0, EC1841_MEMBOARD_SIZE - 1, "bank10"); + program.install_rom(0, EC1841_MEMBOARD_SIZE - 1, m_ram->pointer() + offset * EC1841_MEMBOARD_SIZE); LOG("ec1841_memboard_w map_read(%d)\n", offset); } @@ -146,8 +145,7 @@ void ec184x_state::memboard_w(offs_t offset, uint8_t data) for (int i = 0; i < 4; i++) m_memory.enable[i] &= 0xf7; // enable write access - membank("bank20")->set_base(m_ram->pointer() + offset * EC1841_MEMBOARD_SIZE); - program.install_write_bank(0, EC1841_MEMBOARD_SIZE - 1, "bank20"); + program.install_writeonly(0, EC1841_MEMBOARD_SIZE - 1, m_ram->pointer() + offset * EC1841_MEMBOARD_SIZE); LOG("ec1841_memboard_w map_write(%d)\n", offset); } @@ -158,8 +156,7 @@ void ec184x_state::init_ec1840() { address_space &program = m_maincpu->space(AS_PROGRAM); - program.install_readwrite_bank(0, m_ram->size()-1, "bank10"); - membank("bank10")->set_base(m_ram->pointer()); + program.install_ram(0, m_ram->size()-1, m_ram->pointer()); } void ec184x_state::init_ec1841() @@ -169,20 +166,13 @@ void ec184x_state::init_ec1841() m_memory.boards = m_ram->size() / EC1841_MEMBOARD_SIZE; if (m_memory.boards > 4) m_memory.boards = 4; - program.install_read_bank(0, EC1841_MEMBOARD_SIZE-1, "bank10"); - program.install_write_bank(0, EC1841_MEMBOARD_SIZE-1, "bank20"); - - membank("bank10")->set_base(m_ram->pointer()); - membank("bank20")->set_base(m_ram->pointer()); + program.install_ram(0, EC1841_MEMBOARD_SIZE-1, m_ram->pointer()); // 640K configuration is special -- 512K board mapped at 0 + 128K board mapped at 512K // XXX verify this was actually the case if (m_ram->size() == 640 * 1024) { - program.install_read_bank(EC1841_MEMBOARD_SIZE, m_ram->size() - 1, "bank11"); - program.install_write_bank(EC1841_MEMBOARD_SIZE, m_ram->size() - 1, "bank21"); - membank("bank11")->set_base(m_ram->pointer() + EC1841_MEMBOARD_SIZE); - membank("bank21")->set_base(m_ram->pointer() + EC1841_MEMBOARD_SIZE); + program.install_ram(EC1841_MEMBOARD_SIZE, m_ram->size() - 1, m_ram->pointer() + EC1841_MEMBOARD_SIZE); } } diff --git a/src/mame/drivers/elf.cpp b/src/mame/drivers/elf.cpp index 217a754324c..8f1ac6d11fc 100644 --- a/src/mame/drivers/elf.cpp +++ b/src/mame/drivers/elf.cpp @@ -80,7 +80,7 @@ void elf2_state::elf2_mem(address_map &map) { map.unmap_value_high(); map.global_mask(0xff); - map(0x0000, 0x00ff).bankrw("bank1"); + // Ram is added dynamically } void elf2_state::elf2_io(address_map &map) @@ -212,10 +212,8 @@ void elf2_state::machine_start() m_led_h->rbi_w(1); /* setup memory banking */ - program.install_read_bank(0x0000, 0x00ff, "bank1"); + program.install_rom(0x0000, 0x00ff, m_ram->pointer()); program.install_write_handler(0x0000, 0x00ff, write8sm_delegate(*this, FUNC(elf2_state::memory_w))); - membank("bank1")->configure_entry(0, m_ram->pointer()); - membank("bank1")->set_entry(0); /* register for state saving */ save_item(NAME(m_data)); diff --git a/src/mame/drivers/emu68k.cpp b/src/mame/drivers/emu68k.cpp index f4deb4ebf30..8a4eb6367f0 100644 --- a/src/mame/drivers/emu68k.cpp +++ b/src/mame/drivers/emu68k.cpp @@ -63,7 +63,7 @@ void emu68k_state::proteus1_map(address_map &map) map(0x000000, 0x01ffff).rom().region("program", 0); map(0x600080, 0x600083).rw("lcdc", FUNC(hd44780_device::read), FUNC(hd44780_device::write)).umask16(0x00ff); map(0x600100, 0x60012f).rw(m_mfp, FUNC(mc68901_device::read), FUNC(mc68901_device::write)).umask16(0x00ff); - map(0x800000, 0x8003ff).writeonly(); // ??? + map(0x800000, 0x8003ff).nopw(); // ??? map(0xffc000, 0xffffff).ram(); } @@ -72,7 +72,7 @@ void emu68k_state::proteusxr_map(address_map &map) map(0x000000, 0x01ffff).rom().region("program", 0); map(0x400000, 0x400001).nopw(); // ??? map(0x700000, 0x700003).rw("lcdc", FUNC(hd44780_device::read), FUNC(hd44780_device::write)).umask16(0x00ff); - map(0x800000, 0x8003ff).writeonly(); // ??? + map(0x800000, 0x8003ff).nopw(); // ??? map(0x900000, 0x90002f).rw(m_mfp, FUNC(mc68901_device::read), FUNC(mc68901_device::write)).umask16(0x00ff); map(0xa00000, 0xa00001).nopr(); // watchdog? map(0xb00000, 0xb00001).nopw(); // ??? @@ -84,7 +84,7 @@ void emu68k_state::vintkeys_map(address_map &map) map(0x000000, 0x03ffff).rom().region("program", 0); map(0x600080, 0x600083).rw("lcdc", FUNC(hd44780_device::read), FUNC(hd44780_device::write)).umask16(0x00ff); map(0x600100, 0x60012f).rw(m_mfp, FUNC(mc68901_device::read), FUNC(mc68901_device::write)).umask16(0x00ff); - map(0x800000, 0x8003ff).writeonly(); // ??? + map(0x800000, 0x8003ff).nopw(); // ??? map(0xffc000, 0xffffff).ram(); } @@ -93,7 +93,7 @@ void emu68k_state::phatt_map(address_map &map) map(0x000000, 0x07ffff).rom().region("program", 0); map(0x600080, 0x600083).rw("lcdc", FUNC(hd44780_device::read), FUNC(hd44780_device::write)).umask16(0x00ff); map(0x600100, 0x60012f).rw(m_mfp, FUNC(mc68901_device::read), FUNC(mc68901_device::write)).umask16(0x00ff); - map(0x800000, 0x8003ff).writeonly(); // ??? + map(0x800000, 0x8003ff).nopw(); // ??? map(0xffc000, 0xffffff).ram(); } diff --git a/src/mame/drivers/eolith16.cpp b/src/mame/drivers/eolith16.cpp index d3ad8c11532..a857294be28 100644 --- a/src/mame/drivers/eolith16.cpp +++ b/src/mame/drivers/eolith16.cpp @@ -28,7 +28,7 @@ public: eolith16_state(const machine_config &mconfig, device_type type, const char *tag) : eolith_state(mconfig, type, tag) , m_special_io(*this, "SPECIAL") - , m_vram(*this, "vram", 16) + , m_vram(*this, "vram") , m_vrambank(*this, "vrambank") { } diff --git a/src/mame/drivers/exidy.cpp b/src/mame/drivers/exidy.cpp index 0ffecf4aa16..4f69a08d194 100644 --- a/src/mame/drivers/exidy.cpp +++ b/src/mame/drivers/exidy.cpp @@ -1730,8 +1730,7 @@ void exidy_state::init_phantoma() m_color_latch[0] = 0x09; /* the ROM is actually mapped high */ - m_maincpu->space(AS_PROGRAM).install_read_bank(0xf800, 0xffff, "bank1"); - membank("bank1")->set_base(memregion("maincpu")->base() + 0xf800); + m_maincpu->space(AS_PROGRAM).install_rom(0xf800, 0xffff, memregion("maincpu")->base() + 0xf800); } diff --git a/src/mame/drivers/exidy440.cpp b/src/mame/drivers/exidy440.cpp index d7ae59f1a2f..ca2185b56f1 100644 --- a/src/mame/drivers/exidy440.cpp +++ b/src/mame/drivers/exidy440.cpp @@ -306,7 +306,7 @@ void exidy440_state::exidy440_bank_select(uint8_t bank) if (bank == 0 && m_bank != 0) m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x7fff, read8sm_delegate(*this, FUNC(exidy440_state::showdown_bank0_r))); else if (bank != 0 && m_bank == 0) - m_maincpu->space(AS_PROGRAM).install_read_bank(0x4000, 0x7fff, "bank1"); + m_maincpu->space(AS_PROGRAM).install_read_bank(0x4000, 0x7fff, membank("bank1")); } /* select the bank and update the bank pointer */ diff --git a/src/mame/drivers/exp85.cpp b/src/mame/drivers/exp85.cpp index 465e6b6e022..a2dadcd4bb0 100644 --- a/src/mame/drivers/exp85.cpp +++ b/src/mame/drivers/exp85.cpp @@ -167,11 +167,7 @@ DEVICE_INPUT_DEFAULTS_END void exp85_state::machine_start() { - address_space &program = m_maincpu->space(AS_PROGRAM); - /* setup memory banking */ - program.install_read_bank(0x0000, 0x07ff, "bank1"); - program.unmap_write(0x0000, 0x07ff); membank("bank1")->configure_entry(0, m_rom->base() + 0xf000); membank("bank1")->configure_entry(1, m_rom->base()); membank("bank1")->set_entry(0); diff --git a/src/mame/drivers/famibox.cpp b/src/mame/drivers/famibox.cpp index 5dbb7e399ba..636fe3fe8d0 100644 --- a/src/mame/drivers/famibox.cpp +++ b/src/mame/drivers/famibox.cpp @@ -120,6 +120,7 @@ private: void famicombox_bankswitch(uint8_t bank); void famicombox_reset(); void famibox_map(address_map &map); + void famibox_ppu_map(address_map &map); }; /****************************************************** @@ -388,6 +389,12 @@ void famibox_state::famibox_map(address_map &map) map(0xc000, 0xffff).bankr("cpubank2"); } +void famibox_state::famibox_ppu_map(address_map &map) +{ + map(0x0000, 0x1fff).bankr("ppubank1"); + map(0x2000, 0x3eff).rw(FUNC(famibox_state::famibox_nt_r), FUNC(famibox_state::famibox_nt_w)); +} + /****************************************************** Inputs @@ -510,12 +517,8 @@ void famibox_state::machine_start() m_nt_page[2] = m_nt_ram.get() + 0x800; m_nt_page[3] = m_nt_ram.get() + 0xc00; - m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(*this, FUNC(famibox_state::famibox_nt_r)), write8sm_delegate(*this, FUNC(famibox_state::famibox_nt_w))); - m_ppu->space(AS_PROGRAM).install_read_bank(0x0000, 0x1fff, "ppubank1"); - famicombox_bankswitch(0); - m_attract_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(famibox_state::famicombox_attract_timer_callback),this)); m_gameplay_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(famibox_state::famicombox_gameplay_timer_callback),this)); m_exception_cause = 0xff; @@ -539,6 +542,7 @@ void famibox_state::famibox(machine_config &config) screen.set_screen_update("ppu", FUNC(ppu2c0x_device::screen_update)); PPU_2C02(config, m_ppu); + m_ppu->set_addrmap(0, &famibox_state::famibox_ppu_map); m_ppu->set_cpu_tag(m_maincpu); m_ppu->int_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); diff --git a/src/mame/drivers/fastfred.cpp b/src/mame/drivers/fastfred.cpp index 37e89aa31c9..b4d1014d79c 100644 --- a/src/mame/drivers/fastfred.cpp +++ b/src/mame/drivers/fastfred.cpp @@ -251,7 +251,7 @@ void fastfred_state::sound_map(address_map &map) map(0x0000, 0x1fff).rom(); map(0x2000, 0x23ff).ram(); map(0x3000, 0x3000).r("soundlatch", FUNC(generic_latch_8_device::read)).w(FUNC(fastfred_state::sound_nmi_mask_w)); - map(0x4000, 0x4000).writeonly(); // Reset PSG's + map(0x4000, 0x4000).nopw(); // Reset PSG's map(0x5000, 0x5001).w("ay8910.1", FUNC(ay8910_device::address_data_w)); map(0x6000, 0x6001).w("ay8910.2", FUNC(ay8910_device::address_data_w)); map(0x7000, 0x7000).nopr(); // only for Imago, read but not used diff --git a/src/mame/drivers/fm7.cpp b/src/mame/drivers/fm7.cpp index 2a860c0c4bd..60aaa9e7b2a 100644 --- a/src/mame/drivers/fm7.cpp +++ b/src/mame/drivers/fm7.cpp @@ -981,8 +981,7 @@ void fm77_state::fm7_mmr_refresh(address_space &space) uint16_t window_addr = ((m_mmr.window_offset << 8) + 0x7c00) & 0xffff; // if(window_addr < 0xfc00) { - space.install_readwrite_bank(0x7c00,0x7fff,"bank24"); - membank("bank24")->set_base(&m_extended_ram[window_addr]); + space.install_ram(0x7c00,0x7fff, &m_extended_ram[window_addr]); } } else diff --git a/src/mame/drivers/fmtowns.cpp b/src/mame/drivers/fmtowns.cpp index 07044988df3..c14b2494112 100644 --- a/src/mame/drivers/fmtowns.cpp +++ b/src/mame/drivers/fmtowns.cpp @@ -2729,7 +2729,7 @@ void towns_state::driver_start() save_pointer(m_video.towns_video_reg,"Video registers",2); if (m_ram->size() > 0x100000) - m_maincpu->space(AS_PROGRAM).install_ram(0x100000,m_ram->size()-1,nullptr); + m_maincpu->space(AS_PROGRAM).install_ram(0x100000,m_ram->size()-1,m_ram->pointer() + 0x100000); } void marty_state::driver_start() diff --git a/src/mame/drivers/fruitpc.cpp b/src/mame/drivers/fruitpc.cpp index 1987638c7d8..4bf57308c0f 100644 --- a/src/mame/drivers/fruitpc.cpp +++ b/src/mame/drivers/fruitpc.cpp @@ -55,7 +55,7 @@ void fruitpc_state::fruitpc_map(address_map &map) map(0x00000000, 0x0009ffff).ram(); map(0x000a0000, 0x000bffff).rw("vga", FUNC(vga_device::mem_r), FUNC(vga_device::mem_w)); // VGA VRAM map(0x000c0000, 0x000dffff).rom().region("bios", 0); - map(0x000e0000, 0x000fffff).ram().region("bios", 0); + map(0x000e0000, 0x000fffff).rom().region("bios", 0); map(0x00100000, 0x008fffff).ram(); // 8MB RAM map(0x02000000, 0x28ffffff).noprw(); map(0xfffe0000, 0xffffffff).rom().region("bios", 0); /* System BIOS */ diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp index 761d7ee2d51..4b94c1d206e 100644 --- a/src/mame/drivers/galaxian.cpp +++ b/src/mame/drivers/galaxian.cpp @@ -1239,7 +1239,7 @@ INPUT_CHANGED_MEMBER(gmgalax_state::game_changed) m_selected_game = newval; /* select the bank and graphics bank based on it */ - membank("bank1")->set_entry(m_selected_game); + m_bank1->set_entry(m_selected_game); galaxian_gfxbank_w(0, m_selected_game); /* reset the stars */ @@ -1267,7 +1267,7 @@ CUSTOM_INPUT_MEMBER(gmgalax_state::port_r) void galaxian_state::zigzag_bankswap_w(uint8_t data) { /* Zig Zag can swap ROMs 2 and 3 as a form of copy protection */ - membank("bank1")->set_entry(data & 1); + m_bank1->set_entry(data & 1); membank("bank2")->set_entry(~data & 1); } @@ -7203,8 +7203,8 @@ void gmgalax_state::init_gmgalax() common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &gmgalax_state::gmgalax_extend_tile_info, &gmgalax_state::gmgalax_extend_sprite_info); /* ROM is banked */ - space.install_read_bank(0x0000, 0x3fff, "bank1"); - membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x4000); + space.install_read_bank(0x0000, 0x3fff, m_bank1); + m_bank1->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x4000); /* callback when the game select is toggled */ game_changed(*machine().ioport().ports().begin()->second->fields().first(), 0, 0, 0); @@ -7252,8 +7252,8 @@ void galaxian_state::init_victoryc() void galaxian_state::init_fourplay() { - membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x4000); - membank("bank1")->set_entry(0); + m_bank1->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x4000); + m_bank1->set_entry(0); /* video extensions */ common_init(NULL, NULL, &galaxian_state::pisces_extend_tile_info, &galaxian_state::pisces_extend_sprite_info); @@ -7261,8 +7261,8 @@ void galaxian_state::init_fourplay() void galaxian_state::init_videight() { - membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000); - membank("bank1")->set_entry(0); + m_bank1->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000); + m_bank1->set_entry(0); /* video extensions */ common_init(NULL, NULL, &galaxian_state::videight_extend_tile_info, &galaxian_state::videight_extend_sprite_info); @@ -7425,7 +7425,7 @@ void galaxian_state::init_zigzag() m_numspritegens = 2; /* make ROMs 2 & 3 swappable */ - membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x2000, 0x1000); + m_bank1->configure_entries(0, 2, memregion("maincpu")->base() + 0x2000, 0x1000); membank("bank2")->configure_entries(0, 2, memregion("maincpu")->base() + 0x2000, 0x1000); /* handler for doing the swaps */ @@ -7720,8 +7720,8 @@ void galaxian_state::init_sfx() m_sfx_tilemap = true; /* sound board has space for extra ROM */ - m_audiocpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x3fff, "bank1"); - membank("bank1")->set_base(memregion("audiocpu")->base()); + m_audiocpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x3fff, m_bank1); + m_bank1->set_base(memregion("audiocpu")->base()); } diff --git a/src/mame/drivers/galaxold.cpp b/src/mame/drivers/galaxold.cpp index e55999a632f..b590d5aadc1 100644 --- a/src/mame/drivers/galaxold.cpp +++ b/src/mame/drivers/galaxold.cpp @@ -3788,9 +3788,7 @@ ROM_END void galaxold_state::init_guttangt() { address_space &space = m_maincpu->space(AS_PROGRAM); - space.install_read_bank( 0x2000, 0x27ff, "cpubank" ); - uint8_t *rom = memregion("maincpu")->base(); - membank("cpubank")->set_base(rom + 0x2000); + space.install_rom( 0x2000, 0x27ff, memregion("maincpu")->base() + 0x2000); } diff --git a/src/mame/drivers/galivan.cpp b/src/mame/drivers/galivan.cpp index e9134e3dc6f..b008eb54918 100644 --- a/src/mame/drivers/galivan.cpp +++ b/src/mame/drivers/galivan.cpp @@ -1117,9 +1117,9 @@ ROM_END void galivan_state::youmab_extra_bank_w(uint8_t data) { if (data == 0xff) - membank("bank2")->set_entry(1); + m_rombank->set_entry(1); else if (data == 0x00) - membank("bank2")->set_entry(0); + m_rombank->set_entry(0); else printf("data %03x\n", data); } @@ -1165,12 +1165,11 @@ void galivan_state::init_youmab() { // TODO: move all of this to an address map instead m_maincpu->space(AS_IO).install_write_handler(0x82, 0x82, write8smo_delegate(*this, FUNC(galivan_state::youmab_extra_bank_w))); // banks rom at 0x8000? writes 0xff and 0x00 before executing code there - m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x7fff, "bank3"); - membank("bank3")->set_base(memregion("maincpu")->base()); + m_maincpu->space(AS_PROGRAM).install_rom(0x0000, 0x7fff, memregion("maincpu")->base()); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0xbfff, "bank2"); - membank("bank2")->configure_entries(0, 2, memregion("user2")->base(), 0x4000); - membank("bank2")->set_entry(0); + m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0xbfff, m_rombank); + m_rombank->configure_entries(0, 2, memregion("user2")->base(), 0x4000); + m_rombank->set_entry(0); m_maincpu->space(AS_IO).install_write_handler(0x81, 0x81, write8smo_delegate(*this, FUNC(galivan_state::youmab_81_w))); // ?? often, alternating values m_maincpu->space(AS_IO).install_write_handler(0x84, 0x84, write8smo_delegate(*this, FUNC(galivan_state::youmab_84_w))); // ?? often, sequence.. diff --git a/src/mame/drivers/gamate.cpp b/src/mame/drivers/gamate.cpp index 99757a68833..607e3f6704b 100644 --- a/src/mame/drivers/gamate.cpp +++ b/src/mame/drivers/gamate.cpp @@ -29,7 +29,7 @@ public: , m_ay(*this, "ay8910") , m_cartslot(*this, "cartslot") , m_io_joy(*this, "JOY") - , m_bios(*this, "bios") + , m_bios(*this, "maincpu") , m_ram(*this, "ram") { } @@ -62,7 +62,7 @@ private: required_device<ay8910_device> m_ay; required_device<gamate_cart_slot_device> m_cartslot; required_ioport m_io_joy; - required_shared_ptr<uint8_t> m_bios; + required_region_ptr<uint8_t> m_bios; required_shared_ptr<uint8_t> m_ram; emu_timer *timer1; emu_timer *timer2; @@ -129,7 +129,7 @@ void gamate_state::gamate_mem(address_map &map) map(0x5a00, 0x5a00).r(FUNC(gamate_state::card_available_check)); map(0x6000, 0xdfff).rw(FUNC(gamate_state::read_cart), FUNC(gamate_state::write_cart)); - map(0xe000, 0xefff).mirror(0x1000).rom().share("bios").region("maincpu", 0); + map(0xe000, 0xefff).mirror(0x1000).rom().region("maincpu", 0); } diff --git a/src/mame/drivers/gamecom.cpp b/src/mame/drivers/gamecom.cpp index 5ea07b16cdd..789504fe16d 100644 --- a/src/mame/drivers/gamecom.cpp +++ b/src/mame/drivers/gamecom.cpp @@ -41,13 +41,11 @@ Game Status: void gamecom_state::gamecom_mem_map(address_map &map) { - map(0x0000, 0x0013).ram().region("maincpu", 0x00); + map(0x0000, 0x03ff).ram().share("maincpu"); map(0x0014, 0x0017).rw(FUNC(gamecom_state::gamecom_pio_r), FUNC(gamecom_state::gamecom_pio_w)); // buttons - map(0x0018, 0x001F).ram().region("maincpu", 0x18); map(0x0020, 0x007F).rw(FUNC(gamecom_state::gamecom_internal_r), FUNC(gamecom_state::gamecom_internal_w));/* CPU internal register file */ - map(0x0080, 0x03FF).ram().region("maincpu", 0x80); /* RAM */ - map(0x0400, 0x0FFF).noprw(); /* Nothing */ - map(0x1000, 0x1FFF).rom(); /* Internal ROM (initially), or External ROM/Flash. Controlled by MMU0 (never swapped out in game.com) */ + map(0x0400, 0x0FFF).noprw(); /* Nothing */ + map(0x1000, 0x1FFF).rom().region("maincpu", 0); /* Internal ROM (initially), or External ROM/Flash. Controlled by MMU0 (never swapped out in game.com) */ map(0x2000, 0x3FFF).bankr("bank1"); /* External ROM/Flash. Controlled by MMU1 */ map(0x4000, 0x5FFF).bankr("bank2"); /* External ROM/Flash. Controlled by MMU2 */ map(0x6000, 0x7FFF).bankr("bank3"); /* External ROM/Flash. Controlled by MMU3 */ @@ -293,8 +291,8 @@ void gamecom_state::gamecom(machine_config &config) } ROM_START( gamecom ) - ROM_REGION( 0x2000, "maincpu", 0 ) - ROM_LOAD( "internal.bin", 0x1000, 0x1000, CRC(a0cec361) SHA1(03368237e8fed4a8724f3b4a1596cf4b17c96d33) ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "internal.bin", 0x0000, 0x1000, CRC(a0cec361) SHA1(03368237e8fed4a8724f3b4a1596cf4b17c96d33) ) ROM_REGION( 0x40000, "kernel", 0 ) ROM_LOAD( "external.bin", 0x00000, 0x40000, CRC(e235a589) SHA1(97f782e72d738f4d7b861363266bf46b438d9b50) ) diff --git a/src/mame/drivers/gba.cpp b/src/mame/drivers/gba.cpp index 76e8e526333..98701148912 100644 --- a/src/mame/drivers/gba.cpp +++ b/src/mame/drivers/gba.cpp @@ -1331,17 +1331,14 @@ void gba_state::machine_start() // install the cart ROM & SRAM into the address map, if present if (m_cart->exists()) { - m_maincpu->space(AS_PROGRAM).install_read_bank(0x08000000, 0x09ffffff, "rom1"); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x0a000000, 0x0bffffff, "rom2"); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x0c000000, 0x0cffffff, "rom3"); std::string region_tag; memory_region *cart_rom = memregion(region_tag.assign(m_cart->tag()).append(GBASLOT_ROM_REGION_TAG)); // install ROM accesses - membank("rom1")->set_base(cart_rom->base()); - membank("rom2")->set_base(cart_rom->base()); - membank("rom3")->set_base(cart_rom->base()); + m_maincpu->space(AS_PROGRAM).install_rom(0x08000000, 0x09ffffff, cart_rom->base()); + m_maincpu->space(AS_PROGRAM).install_rom(0x0a000000, 0x0bffffff, cart_rom->base()); + m_maincpu->space(AS_PROGRAM).install_rom(0x0c000000, 0x0cffffff, cart_rom->base()); m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000c4, 0x80000cb, read32s_delegate(*m_cart, FUNC(gba_cart_slot_device::read_gpio))); m_maincpu->space(AS_PROGRAM).install_write_handler(0x80000c4, 0x80000cb, write32s_delegate(*m_cart, FUNC(gba_cart_slot_device::write_gpio))); @@ -1387,7 +1384,7 @@ void gba_state::machine_start() { m_maincpu->space(AS_PROGRAM).install_write_handler(0x08800000, 0x088001ff, write32sm_delegate(*m_cart, FUNC(gba_cart_slot_device::write_mapper))); memory_region *cart_romhlp = memregion(region_tag.assign(m_cart->tag()).append(GBAHELP_ROM_REGION_TAG)); - membank("rom1")->set_base(cart_romhlp->base()); + m_maincpu->space(AS_PROGRAM).install_rom(0x08000000, 0x09ffffff, cart_romhlp->base()); } } diff --git a/src/mame/drivers/ghosteo.cpp b/src/mame/drivers/ghosteo.cpp index e637fed8b80..b0898723d96 100644 --- a/src/mame/drivers/ghosteo.cpp +++ b/src/mame/drivers/ghosteo.cpp @@ -97,6 +97,7 @@ public: , m_soundlatch(*this, "soundlatch") , m_system_memory(*this, "systememory") , m_flash(*this, "flash") + , m_qs1000_bank(*this, "qs1000_bank") { } @@ -115,6 +116,7 @@ private: required_device<generic_latch_8_device> m_soundlatch; required_shared_ptr<uint32_t> m_system_memory; required_region_ptr<uint8_t> m_flash; + memory_bank_creator m_qs1000_bank; int m_security_count; uint32_t m_bballoon_port[20]; @@ -182,7 +184,7 @@ void ghosteo_state::qs1000_p3_w(uint8_t data) // ...x .... - ? // ..x. .... - /IRQ clear - membank("qs1000:bank")->set_entry(data & 0x07); + m_qs1000_bank->set_entry(data & 0x07); if (!BIT(data, 5)) m_soundlatch->acknowledge_w(); @@ -594,8 +596,8 @@ uint32_t ghosteo_state::bballoon_speedup_r(offs_t offset, uint32_t mem_mask) void ghosteo_state::machine_start() { // Set up the QS1000 program ROM banking, taking care not to overlap the internal RAM - m_qs1000->cpu().space(AS_IO).install_read_bank(0x0100, 0xffff, "bank"); - membank("qs1000:bank")->configure_entries(0, 8, memregion("qs1000:cpu")->base()+0x100, 0x10000); + m_qs1000->cpu().space(AS_IO).install_read_bank(0x0100, 0xffff, m_qs1000_bank); + m_qs1000_bank->configure_entries(0, 8, memregion("qs1000:cpu")->base()+0x100, 0x10000); } void ghosteo_state::machine_reset() diff --git a/src/mame/drivers/gimix.cpp b/src/mame/drivers/gimix.cpp index 36aa5033d23..5b4f0f72267 100644 --- a/src/mame/drivers/gimix.cpp +++ b/src/mame/drivers/gimix.cpp @@ -520,7 +520,7 @@ void gimix_state::machine_start() { for (int bank = 0; bank < 16; bank++) { - m_bank[bank]->space(AS_PROGRAM).install_readwrite_bank(0x10000,m_ram->size()-1,"upper_ram"); + m_bank[bank]->space(AS_PROGRAM).install_readwrite_bank(0x10000,m_ram->size()-1,membank("upper_ram")); } } m_floppy0->get_device()->set_rpm(300); diff --git a/src/mame/drivers/gottlieb.cpp b/src/mame/drivers/gottlieb.cpp index a55b738b653..2ca96ee42ac 100644 --- a/src/mame/drivers/gottlieb.cpp +++ b/src/mame/drivers/gottlieb.cpp @@ -776,9 +776,7 @@ void gottlieb_state::reactor_map(address_map &map) void gottlieb_state::gottlieb_map(address_map &map) { map.global_mask(0xffff); - map(0x0000, 0x0fff).ram().share("nvram"); - map(0x1000, 0x1fff).ram().region("maincpu", 0x1000); /* or ROM */ - map(0x2000, 0x2fff).ram().region("maincpu", 0x2000); /* or ROM */ + map(0x0000, 0x2fff).ram().share("nvram"); map(0x3000, 0x30ff).mirror(0x0700).writeonly().share("spriteram"); /* FRSEL */ map(0x3800, 0x3bff).mirror(0x0400).ram().w(FUNC(gottlieb_state::videoram_w)).share("videoram"); /* BRSEL */ map(0x4000, 0x4fff).ram().w(FUNC(gottlieb_state::charram_w)).share("charram"); /* BOJRSEL1 */ @@ -2161,9 +2159,11 @@ ROM_END ROM_START( krull ) - ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_REGION( 0x3000, "nvram", ROMREGION_ERASEFF) ROM_LOAD( "gv-105_ram_2.c7", 0x1000, 0x1000, CRC(302feadf) SHA1(9d70de35e4f0490dc4e601070993ad146f250dea) ) ROM_LOAD( "gv-105_ram_4.c9-10", 0x2000, 0x1000, CRC(79355a60) SHA1(57ad5c904b9ac4bf7c7d828bf755bbcbba6a4fd7) ) + + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "gv-105_rom_4.c16", 0x6000, 0x2000, CRC(2b696394) SHA1(b18270f4ad97743f6ff8c4cbc93e523c77a8e794) ) ROM_LOAD( "gv-105_rom_3.c14-15", 0x8000, 0x2000, CRC(14b0ee42) SHA1(276c4008a013806b3989c529f41cbc358ec49fd6) ) ROM_LOAD( "gv-105_rom_2.c13-14", 0xa000, 0x2000, CRC(b5fad94a) SHA1(1bae895fbdd658cfb56c53cc2139282cc1e778de) ) @@ -2471,8 +2471,10 @@ ROM_END ROM_START( 3stooges ) - ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_REGION( 0x3000, "nvram", ROMREGION_ERASEFF) ROM_LOAD( "gv113ram.4", 0x2000, 0x1000, CRC(533bff2a) SHA1(58d0be8add4b02dc3e27cf6b17a05baf4304f3ce) ) + + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "gv113rom.4", 0x6000, 0x2000, CRC(8b6e52b8) SHA1(6e17e11afce92a7fa1735a724f0c0faf9375ac89) ) ROM_LOAD( "gv113rom.3", 0x8000, 0x2000, CRC(b816d8c4) SHA1(86e16888492390034ac04e3f6a9f56422575c778) ) ROM_LOAD( "gv113rom.2", 0xa000, 0x2000, CRC(b45b2a79) SHA1(7d0b19bec462ab67f518361afdf4b6982829ed07) ) @@ -2498,8 +2500,10 @@ ROM_END ROM_START( 3stoogesa ) - ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_REGION( 0x3000, "nvram", ROMREGION_ERASEFF) ROM_LOAD( "gv113ram4.bin", 0x2000, 0x1000, CRC(a00365be) SHA1(a151e1dfd8a251e6558968ea1df5a8516286d2c1) ) /* Came from PCB with low serial # */ + + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "gv113rom4.bin", 0x6000, 0x2000, CRC(a8f9d51d) SHA1(c9b18e31fea6fd01171528dd583b4d4f9b9078ed) ) ROM_LOAD( "gv113rom3.bin", 0x8000, 0x2000, CRC(60bda7b6) SHA1(7dd7633397d3ccdbd7885a5436f422f575ecd0cc) ) ROM_LOAD( "gv113rom2.bin", 0xa000, 0x2000, CRC(9bb95798) SHA1(91cf203cf59c5a96ed5de8f4c5743bd91350c16f) ) @@ -2525,8 +2529,10 @@ ROM_END ROM_START( vidvince ) - ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_REGION( 0x3000, "nvram", ROMREGION_ERASEFF) ROM_LOAD( "gv132_ram4_2732.c9c10", 0x2000, 0x1000, CRC(67a4927b) SHA1(41dfd13ea24bb3b0f8f917f4af5f6b33af1bc2e7) ) + + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "gv132_rom4_2764.c16", 0x6000, 0x2000, CRC(3c5f39f5) SHA1(3722c30bcd60fc0c1c4ca4dd800a3654fba67599) ) ROM_LOAD( "gv132_rom3_2764.c14c15", 0x8000, 0x2000, CRC(3983cb79) SHA1(3c527ed2428b8cb86a6896a74c873317a9f7b411) ) ROM_LOAD( "gv132_rom2_2764.c13c14", 0xa000, 0x2000, CRC(0f5ebab9) SHA1(680874b9857565857375096d05203997669a7215) ) diff --git a/src/mame/drivers/gridcomp.cpp b/src/mame/drivers/gridcomp.cpp index 1deb3174053..b74fb04018c 100644 --- a/src/mame/drivers/gridcomp.cpp +++ b/src/mame/drivers/gridcomp.cpp @@ -285,8 +285,7 @@ MACHINE_START_MEMBER(gridcomp_state, gridcomp) { address_space &program = m_maincpu->space(AS_PROGRAM); - program.install_readwrite_bank(0, m_ram->size() - 1, "bank10"); - membank("bank10")->set_base(m_ram->pointer()); + program.install_ram(0, m_ram->size() - 1, m_ram->pointer()); m_videoram = (uint16_t *)m_maincpu->space(AS_PROGRAM).get_write_ptr(0x400); } diff --git a/src/mame/drivers/gticlub.cpp b/src/mame/drivers/gticlub.cpp index 74d251c5d58..8e2e45b4cb1 100644 --- a/src/mame/drivers/gticlub.cpp +++ b/src/mame/drivers/gticlub.cpp @@ -549,8 +549,8 @@ void gticlub_state::gticlub_map(address_map &map) map(0x7e00a000, 0x7e00bfff).rw(m_k056230, FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w)); map(0x7e00c000, 0x7e00c00f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w)); map(0x7f000000, 0x7f3fffff).rom().region("user2", 0); /* Data ROM */ - map(0x7f800000, 0x7f9fffff).rom().share("share2"); - map(0x7fe00000, 0x7fffffff).rom().region("user1", 0).share("share2"); /* Program ROM */ + map(0x7f800000, 0x7f9fffff).rom().region("user1", 0); + map(0x7fe00000, 0x7fffffff).rom().region("user1", 0); /* Program ROM */ } void gticlub_state::hangplt_map(address_map &map) @@ -567,8 +567,8 @@ void gticlub_state::hangplt_map(address_map &map) map(0x7e00a000, 0x7e00bfff).rw(m_k056230, FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w)); map(0x7e00c000, 0x7e00c00f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w)); map(0x7f000000, 0x7f3fffff).rom().region("user2", 0); /* Data ROM */ - map(0x7f800000, 0x7f9fffff).rom().share("share2"); - map(0x7fe00000, 0x7fffffff).rom().region("user1", 0).share("share2"); /* Program ROM */ + map(0x7f800000, 0x7f9fffff).rom().region("user1", 0); + map(0x7fe00000, 0x7fffffff).rom().region("user1", 0); /* Program ROM */ } /**********************************************************************/ @@ -1136,11 +1136,11 @@ void gticlub_state::hangplt(machine_config &config) /*************************************************************************/ ROM_START( gticlub ) /* Euro version EAA - Reports: GTI CLUB(TM) System ver 1.00(EUR) */ - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE("688eaa01.21u", 0x000003, 0x80000, CRC(824944ad) SHA1(a7bb86a2495e0579f5d82808aeed4895be2dbe3b) ) - ROM_LOAD32_BYTE("688eaa02.19u", 0x000002, 0x80000, CRC(88e7bfb9) SHA1(fc0e945291204ee0c82bbd2c81ff241e1565c6ae) ) - ROM_LOAD32_BYTE("688eaa03.21r", 0x000001, 0x80000, CRC(ea1c696b) SHA1(fd778afaa1de3a35b38a67b8e4c9a08fe9cf1b9e) ) - ROM_LOAD32_BYTE("688eaa04.19r", 0x000000, 0x80000, CRC(94fa2334) SHA1(04edf840f841b9713fa93e7ebb6aad2000b738c0) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE("688eaa01.21u", 0x000000, 0x80000, CRC(824944ad) SHA1(a7bb86a2495e0579f5d82808aeed4895be2dbe3b) ) + ROM_LOAD32_BYTE("688eaa02.19u", 0x000001, 0x80000, CRC(88e7bfb9) SHA1(fc0e945291204ee0c82bbd2c81ff241e1565c6ae) ) + ROM_LOAD32_BYTE("688eaa03.21r", 0x000002, 0x80000, CRC(ea1c696b) SHA1(fd778afaa1de3a35b38a67b8e4c9a08fe9cf1b9e) ) + ROM_LOAD32_BYTE("688eaa04.19r", 0x000003, 0x80000, CRC(94fa2334) SHA1(04edf840f841b9713fa93e7ebb6aad2000b738c0) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP("688a05.14u", 0x000000, 0x200000, CRC(7caa3f80) SHA1(28409dc17c4e010173396fdc069a409fbea0d58d) ) @@ -1166,11 +1166,11 @@ ROM_START( gticlub ) /* Euro version EAA - Reports: GTI CLUB(TM) System ver 1.00 ROM_END ROM_START( gticlubu ) /* USA version UAA - Reports: GTI CLUB(TM) System ver 1.02(USA) */ - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE("688uaa01.21u", 0x000003, 0x80000, CRC(4e2ea7ad) SHA1(cc517df7c4df098896a2a88843fef97c9beb46f3) ) - ROM_LOAD32_BYTE("688uaa02.19u", 0x000002, 0x80000, CRC(c0212ce1) SHA1(7716acfa1b1391e9d7a321ed46785c144d27fdd8) ) - ROM_LOAD32_BYTE("688uaa03.21r", 0x000001, 0x80000, CRC(030246fe) SHA1(70d3591159b07aaeca60141db44f7c28d1b2dac9) ) - ROM_LOAD32_BYTE("688uaa04.19r", 0x000000, 0x80000, CRC(9394e0b2) SHA1(9ff4ff22a307352bf127fc2b5ef9c56ecacf0aab) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE("688uaa01.21u", 0x000000, 0x80000, CRC(4e2ea7ad) SHA1(cc517df7c4df098896a2a88843fef97c9beb46f3) ) + ROM_LOAD32_BYTE("688uaa02.19u", 0x000001, 0x80000, CRC(c0212ce1) SHA1(7716acfa1b1391e9d7a321ed46785c144d27fdd8) ) + ROM_LOAD32_BYTE("688uaa03.21r", 0x000002, 0x80000, CRC(030246fe) SHA1(70d3591159b07aaeca60141db44f7c28d1b2dac9) ) + ROM_LOAD32_BYTE("688uaa04.19r", 0x000003, 0x80000, CRC(9394e0b2) SHA1(9ff4ff22a307352bf127fc2b5ef9c56ecacf0aab) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP("688a05.14u", 0x000000, 0x200000, CRC(7caa3f80) SHA1(28409dc17c4e010173396fdc069a409fbea0d58d) ) @@ -1196,11 +1196,11 @@ ROM_START( gticlubu ) /* USA version UAA - Reports: GTI CLUB(TM) System ver 1.02 ROM_END ROM_START( gticluba ) /* Asia version AAA - Reports: GTI CLUB(TM) System ver 1.00(ASI) */ - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE("688aaa01.21u", 0x000003, 0x80000, CRC(06a56474) SHA1(3a457b885a35e3ee030fd51d847bcf75fce46208) ) - ROM_LOAD32_BYTE("688aaa02.19u", 0x000002, 0x80000, CRC(3c1e714a) SHA1(557f8542b855b2b35f242c8db7396017aca6dbd8) ) - ROM_LOAD32_BYTE("688aaa03.21r", 0x000001, 0x80000, CRC(e060580b) SHA1(50242f3f3b949cc03082e4e75d9dcc89e17f0a75) ) - ROM_LOAD32_BYTE("688aaa04.19r", 0x000000, 0x80000, CRC(928c23cd) SHA1(cce54398e1e5b98bfb717839cc422f1f60502788) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE("688aaa01.21u", 0x000000, 0x80000, CRC(06a56474) SHA1(3a457b885a35e3ee030fd51d847bcf75fce46208) ) + ROM_LOAD32_BYTE("688aaa02.19u", 0x000001, 0x80000, CRC(3c1e714a) SHA1(557f8542b855b2b35f242c8db7396017aca6dbd8) ) + ROM_LOAD32_BYTE("688aaa03.21r", 0x000002, 0x80000, CRC(e060580b) SHA1(50242f3f3b949cc03082e4e75d9dcc89e17f0a75) ) + ROM_LOAD32_BYTE("688aaa04.19r", 0x000003, 0x80000, CRC(928c23cd) SHA1(cce54398e1e5b98bfb717839cc422f1f60502788) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP("688a05.14u", 0x000000, 0x200000, CRC(7caa3f80) SHA1(28409dc17c4e010173396fdc069a409fbea0d58d) ) @@ -1226,11 +1226,11 @@ ROM_START( gticluba ) /* Asia version AAA - Reports: GTI CLUB(TM) System ver 1.0 ROM_END ROM_START( gticlubj ) /* Japan version JAA - Reports: GTI CLUB(TM) System ver 1.00(JPN) */ - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE("688jaa01.21u", 0x000003, 0x80000, CRC(1492059c) SHA1(176dbd87f23f4cd8e1397e67da501738e20e5a57) ) - ROM_LOAD32_BYTE("688jaa02.19u", 0x000002, 0x80000, CRC(7896dd69) SHA1(a3ab7b872132a5e66238e414f4b497cf7beb8b1c) ) - ROM_LOAD32_BYTE("688jaa03.21r", 0x000001, 0x80000, CRC(94e2be50) SHA1(f206ac201903f3aae29196ab6fccdef104859346) ) - ROM_LOAD32_BYTE("688jaa04.19r", 0x000000, 0x80000, CRC(ff539bb6) SHA1(1a225eca4377d82a2b6cb99c1d16580b9ccf2f08) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE("688jaa01.21u", 0x000000, 0x80000, CRC(1492059c) SHA1(176dbd87f23f4cd8e1397e67da501738e20e5a57) ) + ROM_LOAD32_BYTE("688jaa02.19u", 0x000001, 0x80000, CRC(7896dd69) SHA1(a3ab7b872132a5e66238e414f4b497cf7beb8b1c) ) + ROM_LOAD32_BYTE("688jaa03.21r", 0x000002, 0x80000, CRC(94e2be50) SHA1(f206ac201903f3aae29196ab6fccdef104859346) ) + ROM_LOAD32_BYTE("688jaa04.19r", 0x000003, 0x80000, CRC(ff539bb6) SHA1(1a225eca4377d82a2b6cb99c1d16580b9ccf2f08) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP("688a05.14u", 0x000000, 0x200000, CRC(7caa3f80) SHA1(28409dc17c4e010173396fdc069a409fbea0d58d) ) @@ -1256,11 +1256,11 @@ ROM_START( gticlubj ) /* Japan version JAA - Reports: GTI CLUB(TM) System ver 1. ROM_END ROM_START( thunderh ) /* Euro version EAA */ - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "680eaa01.21u", 0x000003, 0x080000, CRC(796e2678) SHA1(8051a228aa6d1a3f1fef26de15f4fdb785c2c8ee) ) - ROM_LOAD32_BYTE( "680eaa02.19u", 0x000002, 0x080000, CRC(767e6db0) SHA1(0f29f56fe485f30100ce54e64bda5d5a124c1d09) ) - ROM_LOAD32_BYTE( "680eaa03.21r", 0x000001, 0x080000, CRC(5a5b59b5) SHA1(542c0722437f40829559b09120fde995246d52ae) ) - ROM_LOAD32_BYTE( "680eaa04.19r", 0x000000, 0x080000, CRC(4a973a5c) SHA1(1d84f6416c3b5a85d7ebfbc15fc08e0dd8dc2414) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "680eaa01.21u", 0x000000, 0x080000, CRC(796e2678) SHA1(8051a228aa6d1a3f1fef26de15f4fdb785c2c8ee) ) + ROM_LOAD32_BYTE( "680eaa02.19u", 0x000001, 0x080000, CRC(767e6db0) SHA1(0f29f56fe485f30100ce54e64bda5d5a124c1d09) ) + ROM_LOAD32_BYTE( "680eaa03.21r", 0x000002, 0x080000, CRC(5a5b59b5) SHA1(542c0722437f40829559b09120fde995246d52ae) ) + ROM_LOAD32_BYTE( "680eaa04.19r", 0x000003, 0x080000, CRC(4a973a5c) SHA1(1d84f6416c3b5a85d7ebfbc15fc08e0dd8dc2414) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP( "680a05.14u", 0x000000, 0x200000, CRC(0c9f334d) SHA1(99ac622a04a7140244d81031df69a796b6fd2657) ) @@ -1286,11 +1286,11 @@ ROM_START( thunderh ) /* Euro version EAA */ ROM_END ROM_START( thunderhu ) /* USA version UAA */ - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "680uaa01.21u", 0x000003, 0x080000, CRC(f2bb2ba1) SHA1(311e88d63179486014376c4af4ff0ef28673ee5a) ) - ROM_LOAD32_BYTE( "680uaa02.19u", 0x000002, 0x080000, CRC(52f617b5) SHA1(fda3133d3a7e04eb4432c69becdcf1872b3660d9) ) - ROM_LOAD32_BYTE( "680uaa03.21r", 0x000001, 0x080000, CRC(086a0574) SHA1(32fb93dbb93d2fe6af743ea4310b50a6cd03647d) ) - ROM_LOAD32_BYTE( "680uaa04.19r", 0x000000, 0x080000, CRC(85e1f8e3) SHA1(9172c54b6663f1bf390795068271198083a6860d) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "680uaa01.21u", 0x000000, 0x080000, CRC(f2bb2ba1) SHA1(311e88d63179486014376c4af4ff0ef28673ee5a) ) + ROM_LOAD32_BYTE( "680uaa02.19u", 0x000001, 0x080000, CRC(52f617b5) SHA1(fda3133d3a7e04eb4432c69becdcf1872b3660d9) ) + ROM_LOAD32_BYTE( "680uaa03.21r", 0x000002, 0x080000, CRC(086a0574) SHA1(32fb93dbb93d2fe6af743ea4310b50a6cd03647d) ) + ROM_LOAD32_BYTE( "680uaa04.19r", 0x000003, 0x080000, CRC(85e1f8e3) SHA1(9172c54b6663f1bf390795068271198083a6860d) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP( "680a05.14u", 0x000000, 0x200000, CRC(0c9f334d) SHA1(99ac622a04a7140244d81031df69a796b6fd2657) ) @@ -1316,11 +1316,11 @@ ROM_START( thunderhu ) /* USA version UAA */ ROM_END ROM_START( slrasslt ) /* USA version UAA */ - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "792uaa01.21u", 0x000003, 0x080000, CRC(c73bf7fb) SHA1(ffe0fea155473827929339a9261a158287ce30a8) ) // ROM check screen shows version as: SOLAR ASSAULT DR2 VER UA-A - ROM_LOAD32_BYTE( "792uaa02.19u", 0x000002, 0x080000, CRC(a940bb9b) SHA1(65a60157697a21cc2485c02c689c9addb3ac91f1) ) // Based on "Revised" code but title screen only shows Solar Assault - ROM_LOAD32_BYTE( "792uaa03.21r", 0x000001, 0x080000, CRC(363e8411) SHA1(b9c70033d8e3de4b339b61a66172bfecb7c2b3ab) ) - ROM_LOAD32_BYTE( "792uaa04.19r", 0x000000, 0x080000, CRC(7910d99c) SHA1(e2114d369060528998b58331d590c086d306f541) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "792uaa01.21u", 0x000000, 0x080000, CRC(c73bf7fb) SHA1(ffe0fea155473827929339a9261a158287ce30a8) ) // ROM check screen shows version as: SOLAR ASSAULT DR2 VER UA-A + ROM_LOAD32_BYTE( "792uaa02.19u", 0x000001, 0x080000, CRC(a940bb9b) SHA1(65a60157697a21cc2485c02c689c9addb3ac91f1) ) // Based on "Revised" code but title screen only shows Solar Assault + ROM_LOAD32_BYTE( "792uaa03.21r", 0x000002, 0x080000, CRC(363e8411) SHA1(b9c70033d8e3de4b339b61a66172bfecb7c2b3ab) ) + ROM_LOAD32_BYTE( "792uaa04.19r", 0x000003, 0x080000, CRC(7910d99c) SHA1(e2114d369060528998b58331d590c086d306f541) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP( "792a05.14u", 0x000000, 0x200000, CRC(9a27edfc) SHA1(c028b6440eb1b0c814c4db45918e580662ac2d9a) ) @@ -1346,11 +1346,11 @@ ROM_START( slrasslt ) /* USA version UAA */ ROM_END ROM_START( slrassltj ) /* Japan version JAA */ - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "792jaa01.21u", 0x000003, 0x080000, CRC(112717c6) SHA1(be5066e1aefef20b6eab2340abc1bdc3d7a5a6e3) ) // ROM check screen shows version as: SOLAR ASSAULT DR2 VER JA-A - ROM_LOAD32_BYTE( "792jaa02.19u", 0x000002, 0x080000, CRC(c48582bd) SHA1(194dfd51704ed5eeecb2b56b6bbf651c7cf7701e) ) // Title screen shows Solar Assault Revised - ROM_LOAD32_BYTE( "792jaa03.21r", 0x000001, 0x080000, CRC(e691009d) SHA1(c8ae58fd280a18151b0e33511269c3685e30fe63) ) - ROM_LOAD32_BYTE( "792jaa04.19r", 0x000000, 0x080000, CRC(1e73a145) SHA1(e519d17d22b5a61570a9bf72ea840f6398928952) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "792jaa01.21u", 0x000000, 0x080000, CRC(112717c6) SHA1(be5066e1aefef20b6eab2340abc1bdc3d7a5a6e3) ) // ROM check screen shows version as: SOLAR ASSAULT DR2 VER JA-A + ROM_LOAD32_BYTE( "792jaa02.19u", 0x000001, 0x080000, CRC(c48582bd) SHA1(194dfd51704ed5eeecb2b56b6bbf651c7cf7701e) ) // Title screen shows Solar Assault Revised + ROM_LOAD32_BYTE( "792jaa03.21r", 0x000002, 0x080000, CRC(e691009d) SHA1(c8ae58fd280a18151b0e33511269c3685e30fe63) ) + ROM_LOAD32_BYTE( "792jaa04.19r", 0x000003, 0x080000, CRC(1e73a145) SHA1(e519d17d22b5a61570a9bf72ea840f6398928952) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP( "792a05.14u", 0x000000, 0x200000, CRC(9a27edfc) SHA1(c028b6440eb1b0c814c4db45918e580662ac2d9a) ) @@ -1376,11 +1376,11 @@ ROM_START( slrassltj ) /* Japan version JAA */ ROM_END ROM_START( slrassltj1 ) /* Japan version JAA */ - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "672jaa_a01.21u", 0x000003, 0x080000, CRC(e2821f51) SHA1(20c6c2402ba2b564b8f77bcf452abe2d7e023417) ) // ROM check screen shows version as: SOLAR ASSAULT VER JA-A - ROM_LOAD32_BYTE( "672jaa_a02.19u", 0x000002, 0x080000, CRC(e3ac7031) SHA1(268588ac6e80463e51a399f53b2396b23faaddba) ) // Title screen shows subtitle "GRADIUS" - ROM_LOAD32_BYTE( "672jaa_a03.21r", 0x000001, 0x080000, CRC(52711d79) SHA1(8c89fbff9de21cc1e5f17c4ea08870faea648465) ) - ROM_LOAD32_BYTE( "672jaa_a04.19r", 0x000000, 0x080000, CRC(f7419454) SHA1(44cef7f1181cb9c11b013ab0b7e26aa1e95d3746) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "672jaa_a01.21u", 0x000000, 0x080000, CRC(e2821f51) SHA1(20c6c2402ba2b564b8f77bcf452abe2d7e023417) ) // ROM check screen shows version as: SOLAR ASSAULT VER JA-A + ROM_LOAD32_BYTE( "672jaa_a02.19u", 0x000001, 0x080000, CRC(e3ac7031) SHA1(268588ac6e80463e51a399f53b2396b23faaddba) ) // Title screen shows subtitle "GRADIUS" + ROM_LOAD32_BYTE( "672jaa_a03.21r", 0x000002, 0x080000, CRC(52711d79) SHA1(8c89fbff9de21cc1e5f17c4ea08870faea648465) ) + ROM_LOAD32_BYTE( "672jaa_a04.19r", 0x000003, 0x080000, CRC(f7419454) SHA1(44cef7f1181cb9c11b013ab0b7e26aa1e95d3746) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP( "672a05.14u", 0x000000, 0x200000, CRC(f6f296e4) SHA1(2ba4ede36f3392aa53a730614272fa80df65281c) ) @@ -1406,11 +1406,11 @@ ROM_START( slrassltj1 ) /* Japan version JAA */ ROM_END ROM_START( hangplt ) /* Japan version JAB */ - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "685jab01.21u", 0x000003, 0x080000, CRC(f98a3e82) SHA1(94ebaa172b0e98c5cd08efaea5f56e707e5032b4) ) - ROM_LOAD32_BYTE( "685jab02.19u", 0x000002, 0x080000, CRC(20730cdc) SHA1(71b2cf7077ab7db875f9030e21afd05905f57ce5) ) - ROM_LOAD32_BYTE( "685jab03.21r", 0x000001, 0x080000, CRC(77fa2248) SHA1(a662b84945b3d268fed15952cc793d821233735e) ) - ROM_LOAD32_BYTE( "685jab04.19r", 0x000000, 0x080000, CRC(ab6773df) SHA1(91d3f849a1cc5fa4b2fbd876d53402a548198c41) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "685jab01.21u", 0x000000, 0x080000, CRC(f98a3e82) SHA1(94ebaa172b0e98c5cd08efaea5f56e707e5032b4) ) + ROM_LOAD32_BYTE( "685jab02.19u", 0x000001, 0x080000, CRC(20730cdc) SHA1(71b2cf7077ab7db875f9030e21afd05905f57ce5) ) + ROM_LOAD32_BYTE( "685jab03.21r", 0x000002, 0x080000, CRC(77fa2248) SHA1(a662b84945b3d268fed15952cc793d821233735e) ) + ROM_LOAD32_BYTE( "685jab04.19r", 0x000003, 0x080000, CRC(ab6773df) SHA1(91d3f849a1cc5fa4b2fbd876d53402a548198c41) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP( "685a05.14u", 0x000000, 0x200000, CRC(ba1c8f40) SHA1(ce4ed641c1d6d44447eaaada16f305f1d7fb9ee2) ) @@ -1432,11 +1432,11 @@ ROM_START( hangplt ) /* Japan version JAB */ ROM_END ROM_START( hangpltu ) /* USA version UAA */ - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "685uaa01.21u", 0x000003, 0x080000, CRC(83a5b866) SHA1(6859590f212c7debb19924f0174e4cd1bfc011bc) ) - ROM_LOAD32_BYTE( "685uaa02.19u", 0x000002, 0x080000, CRC(765906d6) SHA1(9085a2346756b3b628fef91b7afc131aba434654) ) - ROM_LOAD32_BYTE( "685uaa03.21r", 0x000001, 0x080000, CRC(cb0147a3) SHA1(7bcab760c01ea7e24f4ca5793e081aafa97f68a3) ) - ROM_LOAD32_BYTE( "685uaa04.19r", 0x000000, 0x080000, CRC(a5fda56b) SHA1(4d86f488f411ec16fa3be830206a44214941d1fe) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "685uaa01.21u", 0x000000, 0x080000, CRC(83a5b866) SHA1(6859590f212c7debb19924f0174e4cd1bfc011bc) ) + ROM_LOAD32_BYTE( "685uaa02.19u", 0x000001, 0x080000, CRC(765906d6) SHA1(9085a2346756b3b628fef91b7afc131aba434654) ) + ROM_LOAD32_BYTE( "685uaa03.21r", 0x000002, 0x080000, CRC(cb0147a3) SHA1(7bcab760c01ea7e24f4ca5793e081aafa97f68a3) ) + ROM_LOAD32_BYTE( "685uaa04.19r", 0x000003, 0x080000, CRC(a5fda56b) SHA1(4d86f488f411ec16fa3be830206a44214941d1fe) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP( "685a05.14u", 0x000000, 0x200000, CRC(ba1c8f40) SHA1(ce4ed641c1d6d44447eaaada16f305f1d7fb9ee2) ) diff --git a/src/mame/drivers/harddriv.cpp b/src/mame/drivers/harddriv.cpp index f037aa5e001..ae8b72d5597 100644 --- a/src/mame/drivers/harddriv.cpp +++ b/src/mame/drivers/harddriv.cpp @@ -385,7 +385,7 @@ harddriv_state::harddriv_state(const machine_config &mconfig, device_type type, m_ds3_speedup_pc(0), m_ds3_transfer_pc(0), m_gsp_multisync(0), - m_gsp_vram(*this, "gsp_vram", 16), + m_gsp_vram(*this, "gsp_vram"), m_gsp_control_lo(*this, "gsp_control_lo"), m_gsp_control_hi(*this, "gsp_control_hi"), m_gsp_paletteram_lo(*this, "gsp_palram_lo"), diff --git a/src/mame/drivers/hec2hrp.cpp b/src/mame/drivers/hec2hrp.cpp index 8dfb44e1682..8175a1c1001 100644 --- a/src/mame/drivers/hec2hrp.cpp +++ b/src/mame/drivers/hec2hrp.cpp @@ -320,7 +320,7 @@ MACHINE_START_MEMBER(hec2hrp_state,hec2hrx) // Memory install for bank switching m_bank[1]->configure_entry(HECTOR_BANK_PROG, r+0x10000); - m_bank[1]->configure_entry(HECTOR_BANK_VIDEO, m_hector_videoram_hrx); // Video RAM + m_bank[1]->configure_entry(HECTOR_BANK_VIDEO, m_hector_vram); // Video RAM // Set bank HECTOR_BANK_PROG as basic bank m_bank[1]->set_entry(HECTOR_BANK_PROG); @@ -336,9 +336,6 @@ MACHINE_START_MEMBER(hec2hrp_state,hec2hrx) m_bank[3]->configure_entry(DISCII_BANK_RAM, r); // RAM m_bank[3]->set_entry(DISCII_BANK_ROM); - // As video HR ram is in bank, use external memory - m_hector_vram.set_target(m_hector_videoram_hrx,m_hector_vram.bytes()); - hector_init(); } /*****************************************************************************/ @@ -350,7 +347,7 @@ MACHINE_START_MEMBER(hec2hrp_state,hec2mdhrx) // Memory install for bank switching m_bank[1]->configure_entry(HECTOR_BANK_PROG, r+0x10000); - m_bank[1]->configure_entry(HECTOR_BANK_VIDEO, m_hector_videoram_hrx); // Video RAM + m_bank[1]->configure_entry(HECTOR_BANK_VIDEO, m_hector_vram); // Video RAM // Set HECTOR_BANK_PROG as basic bank m_bank[1]->set_entry(HECTOR_BANK_PROG); @@ -361,9 +358,6 @@ MACHINE_START_MEMBER(hec2hrp_state,hec2mdhrx) m_bank[2]->configure_entry(HECTOR_BANK_DISC, memregion("page2")->base() ); // ROM mini disc page m_bank[2]->set_entry(HECTOR_BANK_BASE); - // As video HR ram is in bank, use external memory - m_hector_vram.set_target(m_hector_videoram_hrx,m_hector_vram.bytes()); - hector_init(); } @@ -596,7 +590,6 @@ ROM_START( hec2mdhrx ) ROM_LOAD( "mdic1.bin" , 0x0000,0x2000, CRC(ddda1065) SHA1(e7bba14a72605238d2f8299da029b8320a563254)) ROM_LOAD( "mdicmb.bin" , 0x2000,0x2000, CRC(d8090747) SHA1(f2925b68002307562e2ea5e36b740e5458f0f0eb)) - ROM_REGION( 0x4000, "page1", ROMREGION_ERASEFF ) // Page 1 = unused page ROM_REGION( 0x4000, "page2", ROMREGION_ERASEFF ) // Page 2 = minidisc page ROM_LOAD( "mdic3.bin" , 0x0000,0x2000, CRC(87801816) SHA1(ddf441f40df014b237cdf17430d1989f3a452d04)) ROM_LOAD( "mdicmb.bin" , 0x2000,0x2000, CRC(d8090747) SHA1(f2925b68002307562e2ea5e36b740e5458f0f0eb)) @@ -608,6 +601,7 @@ ROM_START( hec2mx80 ) // option roms ROM_REGION( 0x4000, "page1", ROMREGION_ERASEFF ) ROM_LOAD( "mx80c_page1.rom", 0x0000, 0x4000, CRC(4615f57c) SHA1(5de291bf3ae0320915133b99f1a088cb56c41658)) + ROM_REGION( 0x4000, "page2", ROMREGION_ERASEFF ) ROM_LOAD( "mx80c_page2.rom" , 0x0000,0x4000, CRC(2d5d975e) SHA1(48307132e0f3fad0262859bb8142d108f694a436)) // 2nd cpu @@ -621,6 +615,7 @@ ROM_START( hec2mx40 ) // option roms ROM_REGION( 0x4000, "page1", ROMREGION_ERASEFF ) ROM_LOAD( "mx40c_page1.rom", 0x0000, 0x4000, CRC(192a76fa) SHA1(062aa6df0b554b85774d4b5edeea8496a4baca35)) + ROM_REGION( 0x4000, "page2", ROMREGION_ERASEFF ) ROM_LOAD( "mx40c_page2.rom" , 0x0000,0x4000, CRC(ef1b2654) SHA1(66624ea040cb7ede4720ad2eca0738d0d3bad89a)) // 2nd cpu diff --git a/src/mame/drivers/hng64.cpp b/src/mame/drivers/hng64.cpp index 38cf63ed9b8..40145c4456e 100644 --- a/src/mame/drivers/hng64.cpp +++ b/src/mame/drivers/hng64.cpp @@ -831,7 +831,7 @@ void hng64_state::hng_map(address_map &map) { // main RAM / ROM map(0x00000000, 0x00ffffff).ram().share("mainram"); - map(0x04000000, 0x05ffffff).nopw().rom().region("gameprg", 0).share("cart"); + map(0x04000000, 0x05ffffff).nopw().rom().region("gameprg", 0); // Misc Peripherals map(0x1f700000, 0x1f7010ff).rw(FUNC(hng64_state::hng64_sysregs_r), FUNC(hng64_state::hng64_sysregs_w)).share("sysregs"); // various things @@ -849,7 +849,7 @@ void hng64_state::hng_map(address_map &map) map(0x1f808000, 0x1f8087ff).rw(FUNC(hng64_state::hng64_dualport_r), FUNC(hng64_state::hng64_dualport_w)).umask32(0xffffffff); // BIOS ROM - map(0x1fc00000, 0x1fc7ffff).nopw().rom().region("user1", 0).share("rombase"); + map(0x1fc00000, 0x1fc7ffff).nopw().rom().region("user1", 0); // Sprites map(0x20000000, 0x2000bfff).ram().share("spriteram"); @@ -2244,7 +2244,7 @@ ROM_START( hng64 ) HNG64_BIOS /* To placate MAME */ - ROM_REGION32_LE( 0x2000000, "gameprg", ROMREGION_ERASEFF ) + ROM_REGION32_BE( 0x2000000, "gameprg", ROMREGION_ERASEFF ) ROM_REGION( 0x4000, "scrtile", ROMREGION_ERASEFF ) ROM_REGION( 0x4000, "sprtile", ROMREGION_ERASEFF ) ROM_REGION( 0x1000000, "textures", ROMREGION_ERASEFF ) @@ -2256,9 +2256,9 @@ ROM_END ROM_START( roadedge ) HNG64_BIOS - ROM_REGION32_LE( 0x2000000, "gameprg", 0 ) - ROM_LOAD32_WORD( "001pr01b.81", 0x0000000, 0x400000, CRC(effbac30) SHA1(c1bddf3e511a8950f65ac7e452f81dbc4b7fd977) ) - ROM_LOAD32_WORD( "001pr02b.82", 0x0000002, 0x400000, CRC(b9aa4ad3) SHA1(9ab3c896dbdc45560b7127486e2db6ca3b15a057) ) + ROM_REGION32_BE( 0x2000000, "gameprg", 0 ) + ROM_LOAD32_WORD_SWAP( "001pr01b.81", 0x0000002, 0x400000, CRC(effbac30) SHA1(c1bddf3e511a8950f65ac7e452f81dbc4b7fd977) ) + ROM_LOAD32_WORD_SWAP( "001pr02b.82", 0x0000000, 0x400000, CRC(b9aa4ad3) SHA1(9ab3c896dbdc45560b7127486e2db6ca3b15a057) ) /* Scroll Characters 8x8x8 / 16x16x8 */ ROM_REGION( 0x1000000, "scrtile", 0 ) @@ -2309,11 +2309,11 @@ ROM_END ROM_START( sams64 ) HNG64_BIOS - ROM_REGION32_LE( 0x2000000, "gameprg", 0 ) - ROM_LOAD32_WORD( "002-pro1a.81", 0x0000000, 0x400000, CRC(e5b907c5) SHA1(83637ffaa9031d41a5bed3397a519d1dfa8052cb) ) - ROM_LOAD32_WORD( "002-pro2a.82", 0x0000002, 0x400000, CRC(803ed2eb) SHA1(666db47886a316e68b911311e5db3bc0f5b8a34d) ) - ROM_LOAD32_WORD( "002-pro3a.83", 0x0800000, 0x400000, CRC(582156a7) SHA1(a7bbbd472a53072cbfaed5d41d4265123c9e3f3d) ) - ROM_LOAD32_WORD( "002-pro4a.84", 0x0800002, 0x400000, CRC(5a8291e9) SHA1(ec1e5a5a0ba37393e8b93d78b4ac855109d45ec9) ) + ROM_REGION32_BE( 0x2000000, "gameprg", 0 ) + ROM_LOAD32_WORD_SWAP( "002-pro1a.81", 0x0000002, 0x400000, CRC(e5b907c5) SHA1(83637ffaa9031d41a5bed3397a519d1dfa8052cb) ) + ROM_LOAD32_WORD_SWAP( "002-pro2a.82", 0x0000000, 0x400000, CRC(803ed2eb) SHA1(666db47886a316e68b911311e5db3bc0f5b8a34d) ) + ROM_LOAD32_WORD_SWAP( "002-pro3a.83", 0x0800002, 0x400000, CRC(582156a7) SHA1(a7bbbd472a53072cbfaed5d41d4265123c9e3f3d) ) + ROM_LOAD32_WORD_SWAP( "002-pro4a.84", 0x0800000, 0x400000, CRC(5a8291e9) SHA1(ec1e5a5a0ba37393e8b93d78b4ac855109d45ec9) ) /* Scroll Characters 8x8x8 / 16x16x8 */ ROM_REGION( 0x2000000, "scrtile", 0 ) @@ -2364,9 +2364,9 @@ ROM_END ROM_START( xrally ) HNG64_BIOS - ROM_REGION32_LE( 0x2000000, "gameprg", 0 ) - ROM_LOAD32_WORD( "003-pr01a.81", 0x0000000, 0x400000, CRC(4e160388) SHA1(08fba66d0f0dab47f7db5bc7d411f4fc0e8219c8) ) - ROM_LOAD32_WORD( "003-pr02a.82", 0x0000002, 0x400000, CRC(c4dd4f18) SHA1(4db0e6d5cabd9e4f82d5905556174b9eff8ad4d9) ) + ROM_REGION32_BE( 0x2000000, "gameprg", 0 ) + ROM_LOAD32_WORD_SWAP( "003-pr01a.81", 0x0000002, 0x400000, CRC(4e160388) SHA1(08fba66d0f0dab47f7db5bc7d411f4fc0e8219c8) ) + ROM_LOAD32_WORD_SWAP( "003-pr02a.82", 0x0000000, 0x400000, CRC(c4dd4f18) SHA1(4db0e6d5cabd9e4f82d5905556174b9eff8ad4d9) ) /* Scroll Characters 8x8x8 / 16x16x8 */ ROM_REGION( 0x1000000, "scrtile", 0 ) @@ -2406,11 +2406,11 @@ ROM_END ROM_START( bbust2 ) HNG64_BIOS - ROM_REGION32_LE( 0x2000000, "gameprg", 0 ) - ROM_LOAD32_WORD( "004-pr01a.81", 0x0000000, 0x400000, CRC(7b836ece) SHA1(7a4a08251f1dd66c368ac203f5a006266e77f73d) ) - ROM_LOAD32_WORD( "004-pr02a.82", 0x0000002, 0x400000, CRC(8c55a988) SHA1(d9a61ac3d8550ce0ee6aab374c9f024912163180) ) - ROM_LOAD32_WORD( "004-pr03a.83", 0x0800000, 0x400000, CRC(f25a82dd) SHA1(74c0a03021ef424e0b9c3c818be297d2967b3012) ) - ROM_LOAD32_WORD( "004-pr04a.84", 0x0800002, 0x400000, CRC(9258312b) SHA1(fabac42c8a033e85d503be56f266f9386adff10b) ) + ROM_REGION32_BE( 0x2000000, "gameprg", 0 ) + ROM_LOAD32_WORD_SWAP( "004-pr01a.81", 0x0000002, 0x400000, CRC(7b836ece) SHA1(7a4a08251f1dd66c368ac203f5a006266e77f73d) ) + ROM_LOAD32_WORD_SWAP( "004-pr02a.82", 0x0000000, 0x400000, CRC(8c55a988) SHA1(d9a61ac3d8550ce0ee6aab374c9f024912163180) ) + ROM_LOAD32_WORD_SWAP( "004-pr03a.83", 0x0800002, 0x400000, CRC(f25a82dd) SHA1(74c0a03021ef424e0b9c3c818be297d2967b3012) ) + ROM_LOAD32_WORD_SWAP( "004-pr04a.84", 0x0800000, 0x400000, CRC(9258312b) SHA1(fabac42c8a033e85d503be56f266f9386adff10b) ) /* Scroll Characters 8x8x8 / 16x16x8 */ ROM_REGION( 0x1000000, "scrtile", 0 ) @@ -2454,15 +2454,15 @@ ROM_END ROM_START( sams64_2 ) HNG64_BIOS - ROM_REGION32_LE( 0x2000000, "gameprg", 0 ) - ROM_LOAD32_WORD( "005pr01a.81", 0x0000000, 0x400000, CRC(a69d7700) SHA1(a580783a109bc3e24248d70bcd67f62dd7d8a5dd) ) - ROM_LOAD32_WORD( "005pr02a.82", 0x0000002, 0x400000, CRC(38b9e6b3) SHA1(d1dad8247d920cc66854a0096e1c7845842d2e1c) ) - ROM_LOAD32_WORD( "005pr03a.83", 0x0800000, 0x400000, CRC(0bc738a8) SHA1(79893b0e1c4a31e02ab385c4382684245975ae8f) ) - ROM_LOAD32_WORD( "005pr04a.84", 0x0800002, 0x400000, CRC(6b504852) SHA1(fcdcab432162542d249818a6cd15b8f2e8230f97) ) - ROM_LOAD32_WORD( "005pr05a.85", 0x1000000, 0x400000, CRC(32a743d3) SHA1(4088b930a1a4d6224a0939ef3942af1bf605cdb5) ) - ROM_LOAD32_WORD( "005pr06a.86", 0x1000002, 0x400000, CRC(c09fa615) SHA1(697d6769c16b3c8f73a6df4a1e268ec40cb30d51) ) - ROM_LOAD32_WORD( "005pr07a.87", 0x1800000, 0x400000, CRC(44286ad3) SHA1(1f890c74c0da0d34940a880468e68f7fb1417813) ) - ROM_LOAD32_WORD( "005pr08a.88", 0x1800002, 0x400000, CRC(d094eb67) SHA1(3edc8d608c631a05223e1d05157cd3daf2d6597a) ) + ROM_REGION32_BE( 0x2000000, "gameprg", 0 ) + ROM_LOAD32_WORD_SWAP( "005pr01a.81", 0x0000002, 0x400000, CRC(a69d7700) SHA1(a580783a109bc3e24248d70bcd67f62dd7d8a5dd) ) + ROM_LOAD32_WORD_SWAP( "005pr02a.82", 0x0000000, 0x400000, CRC(38b9e6b3) SHA1(d1dad8247d920cc66854a0096e1c7845842d2e1c) ) + ROM_LOAD32_WORD_SWAP( "005pr03a.83", 0x0800002, 0x400000, CRC(0bc738a8) SHA1(79893b0e1c4a31e02ab385c4382684245975ae8f) ) + ROM_LOAD32_WORD_SWAP( "005pr04a.84", 0x0800000, 0x400000, CRC(6b504852) SHA1(fcdcab432162542d249818a6cd15b8f2e8230f97) ) + ROM_LOAD32_WORD_SWAP( "005pr05a.85", 0x1000002, 0x400000, CRC(32a743d3) SHA1(4088b930a1a4d6224a0939ef3942af1bf605cdb5) ) + ROM_LOAD32_WORD_SWAP( "005pr06a.86", 0x1000000, 0x400000, CRC(c09fa615) SHA1(697d6769c16b3c8f73a6df4a1e268ec40cb30d51) ) + ROM_LOAD32_WORD_SWAP( "005pr07a.87", 0x1800002, 0x400000, CRC(44286ad3) SHA1(1f890c74c0da0d34940a880468e68f7fb1417813) ) + ROM_LOAD32_WORD_SWAP( "005pr08a.88", 0x1800000, 0x400000, CRC(d094eb67) SHA1(3edc8d608c631a05223e1d05157cd3daf2d6597a) ) /* Scroll Characters 8x8x8 / 16x16x8 */ ROM_REGION( 0x4000000, "scrtile", 0 ) @@ -2526,11 +2526,11 @@ ROM_END ROM_START( fatfurwa ) HNG64_BIOS - ROM_REGION32_LE( 0x2000000, "gameprg", 0 ) - ROM_LOAD32_WORD( "006pr01a.81", 0x0000000, 0x400000, CRC(3830efa1) SHA1(9d8c941ccb6cbe8d138499cf9d335db4ac7a9ec0) ) - ROM_LOAD32_WORD( "006pr02a.82", 0x0000002, 0x400000, CRC(8d5de84e) SHA1(e3ae014263f370c2836f62ab323f1560cb3a9cf0) ) - ROM_LOAD32_WORD( "006pr03a.83", 0x0800000, 0x400000, CRC(c811b458) SHA1(7d94e0df501fb086b2e5cf08905d7a3adc2c6472) ) - ROM_LOAD32_WORD( "006pr04a.84", 0x0800002, 0x400000, CRC(de708d6c) SHA1(2c9848e7bbf61c574370f9ecab5f5a6ba63339fd) ) + ROM_REGION32_BE( 0x2000000, "gameprg", 0 ) + ROM_LOAD32_WORD_SWAP( "006pr01a.81", 0x0000002, 0x400000, CRC(3830efa1) SHA1(9d8c941ccb6cbe8d138499cf9d335db4ac7a9ec0) ) + ROM_LOAD32_WORD_SWAP( "006pr02a.82", 0x0000000, 0x400000, CRC(8d5de84e) SHA1(e3ae014263f370c2836f62ab323f1560cb3a9cf0) ) + ROM_LOAD32_WORD_SWAP( "006pr03a.83", 0x0800002, 0x400000, CRC(c811b458) SHA1(7d94e0df501fb086b2e5cf08905d7a3adc2c6472) ) + ROM_LOAD32_WORD_SWAP( "006pr04a.84", 0x0800000, 0x400000, CRC(de708d6c) SHA1(2c9848e7bbf61c574370f9ecab5f5a6ba63339fd) ) /* Scroll Characters 8x8x8 / 16x16x8 */ ROM_REGION( 0x4000000, "scrtile", 0 ) @@ -2591,13 +2591,13 @@ ROM_END ROM_START( buriki ) HNG64_BIOS - ROM_REGION32_LE( 0x2000000, "gameprg", 0 ) - ROM_LOAD32_WORD( "007pr01b.81", 0x0000000, 0x400000, CRC(a31202f5) SHA1(c657729b292d394ced021a0201a1c5608a7118ba) ) - ROM_LOAD32_WORD( "007pr02b.82", 0x0000002, 0x400000, CRC(a563fed6) SHA1(9af9a021beb814e35df968abe5a99225a124b5eb) ) - ROM_LOAD32_WORD( "007pr03a.83", 0x0800000, 0x400000, CRC(da5f6105) SHA1(5424cf5289cef66e301e968b4394e551918fe99b) ) - ROM_LOAD32_WORD( "007pr04a.84", 0x0800002, 0x400000, CRC(befc7bce) SHA1(83d9ecf944e03a40cf25ee288077c2265d6a588a) ) - ROM_LOAD32_WORD( "007pr05a.85", 0x1000000, 0x400000, CRC(013e28bc) SHA1(45e5ac45b42b26957c2877ac1042472c4b5ec914) ) - ROM_LOAD32_WORD( "007pr06a.86", 0x1000002, 0x400000, CRC(0620fccc) SHA1(e0bffc56b019c79276a4ef5ec7354edda15b0889) ) + ROM_REGION32_BE( 0x2000000, "gameprg", 0 ) + ROM_LOAD32_WORD_SWAP( "007pr01b.81", 0x0000002, 0x400000, CRC(a31202f5) SHA1(c657729b292d394ced021a0201a1c5608a7118ba) ) + ROM_LOAD32_WORD_SWAP( "007pr02b.82", 0x0000000, 0x400000, CRC(a563fed6) SHA1(9af9a021beb814e35df968abe5a99225a124b5eb) ) + ROM_LOAD32_WORD_SWAP( "007pr03a.83", 0x0800002, 0x400000, CRC(da5f6105) SHA1(5424cf5289cef66e301e968b4394e551918fe99b) ) + ROM_LOAD32_WORD_SWAP( "007pr04a.84", 0x0800000, 0x400000, CRC(befc7bce) SHA1(83d9ecf944e03a40cf25ee288077c2265d6a588a) ) + ROM_LOAD32_WORD_SWAP( "007pr05a.85", 0x1000002, 0x400000, CRC(013e28bc) SHA1(45e5ac45b42b26957c2877ac1042472c4b5ec914) ) + ROM_LOAD32_WORD_SWAP( "007pr06a.86", 0x1000000, 0x400000, CRC(0620fccc) SHA1(e0bffc56b019c79276a4ef5ec7354edda15b0889) ) /* Scroll Characters 8x8x8 / 16x16x8 */ ROM_REGION( 0x4000000, "scrtile", 0 ) @@ -2660,7 +2660,7 @@ GAME( 1997, hng64, 0, hng64_default, hng64, hng64_state, init_hng64, /* Games */ GAME( 1997, roadedge, hng64, hng64_drive, hng64_drive, hng64_state, init_roadedge, ROT0, "SNK", "Roads Edge / Round Trip (rev.B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 001 */ GAME( 1998, sams64, hng64, hng64_fight, hng64_fight, hng64_state, init_ss64, ROT0, "SNK", "Samurai Shodown 64 / Samurai Spirits 64", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 002 */ -GAME( 1998, xrally, hng64, hng64_drive, hng64_drive, hng64_state, init_hng64_drive, ROT0, "SNK", "Xtreme Rally / Off Beat Racer!", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 003 */ +GAME( 1998, xrally, hng64, hng64_drive, hng64_drive, hng64_state, init_hng64_drive, ROT0, "SNK", "Xtreme Rally / Off Beat Racer!", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 003 */ GAME( 1998, bbust2, hng64, hng64_shoot, hng64_shoot, hng64_state, init_hng64_shoot, ROT0, "SNK", "Beast Busters 2nd Nightmare", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 004 */ GAME( 1998, sams64_2, hng64, hng64_fight, hng64_fight, hng64_state, init_ss64, ROT0, "SNK", "Samurai Shodown: Warrior's Rage / Samurai Spirits 2: Asura Zanmaden", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 005 */ GAME( 1998, fatfurwa, hng64, hng64_fight, hng64_fight, hng64_state, init_hng64_fght, ROT0, "SNK", "Fatal Fury: Wild Ambition (rev.A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 006 */ diff --git a/src/mame/drivers/hornet.cpp b/src/mame/drivers/hornet.cpp index 5ad07a0e6ca..7ebd29f7cca 100644 --- a/src/mame/drivers/hornet.cpp +++ b/src/mame/drivers/hornet.cpp @@ -784,8 +784,8 @@ void hornet_state::hornet_map(address_map &map) map(0x7d020000, 0x7d021fff).rw("m48t58", FUNC(timekeeper_device::read), FUNC(timekeeper_device::write)); /* M48T58Y RTC/NVRAM */ map(0x7d030000, 0x7d03000f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w)); map(0x7e000000, 0x7e7fffff).rom().region("user2", 0); /* Data ROM */ - map(0x7f000000, 0x7f3fffff).rom().share("share2"); - map(0x7fc00000, 0x7fffffff).rom().region("user1", 0).share("share2"); /* Program ROM */ + map(0x7f000000, 0x7f3fffff).rom().region("user1", 0); + map(0x7fc00000, 0x7fffffff).rom().region("user1", 0); /* Program ROM */ } void hornet_state::terabrst_map(address_map &map) diff --git a/src/mame/drivers/hp3478a.cpp b/src/mame/drivers/hp3478a.cpp index 36e48e5e7d0..c92411bdf94 100644 --- a/src/mame/drivers/hp3478a.cpp +++ b/src/mame/drivers/hp3478a.cpp @@ -594,7 +594,7 @@ void hp3478a_state::i8039_io(address_map &map) void hp3478a_state::io_bank(address_map &map) { map.unmap_value_high(); - map(0x000, 0x0ff).ram().region("nvram", 0).share("nvram").w(FUNC(hp3478a_state::nvwrite)); + map(0x000, 0x0ff).ram().share("nvram").w(FUNC(hp3478a_state::nvwrite)); map(0x100, 0x107).ram().share("gpibregs"); //XXX TODO : connect to i8291.cpp map(0x200, 0x2ff).portr("DIP"); } @@ -714,9 +714,6 @@ void hp3478a_state::hp3478a(machine_config &config) ROM_START( hp3478a ) ROM_REGION( 0x2000, "maincpu", 0 ) ROM_LOAD("rom_dc118.bin", 0, 0x2000, CRC(10097ced) SHA1(bd665cf7e07e63f825b2353c8322ed8a4376b3bd)) //main CPU ROM, can match other datecodes too - - ROM_REGION( 0x100, "nvram", 0 ) /* Calibration RAM, battery-backed */ - ROM_LOAD( "calram.bin", 0, 0x100, NO_DUMP) ROM_END /****************************************************************************** diff --git a/src/mame/drivers/ibm6580.cpp b/src/mame/drivers/ibm6580.cpp index b8912a37383..02582a7f7fe 100644 --- a/src/mame/drivers/ibm6580.cpp +++ b/src/mame/drivers/ibm6580.cpp @@ -827,10 +827,7 @@ uint32_t ibm6580_state::screen_update(screen_device &screen, bitmap_ind16 &bitma void ibm6580_state::machine_start() { - address_space &program = m_maincpu->space(AS_PROGRAM); - - program.install_readwrite_bank(0, m_ram->size() - 1, "bank10"); - membank("bank10")->set_base(m_ram->pointer()); + m_maincpu->space(AS_PROGRAM).install_ram(0, m_ram->size() - 1, m_ram->pointer()); m_fdc->set_rate(500000); // XXX workaround diff --git a/src/mame/drivers/igspoker.cpp b/src/mame/drivers/igspoker.cpp index b4b5cc36602..51ff5c64e3e 100644 --- a/src/mame/drivers/igspoker.cpp +++ b/src/mame/drivers/igspoker.cpp @@ -409,7 +409,7 @@ uint8_t igspoker_state::exp_rom_r(offs_t offset) void igspoker_state::igspoker_prg_map(address_map &map) { map(0x0000, 0xefff).rom(); - map(0xf000, 0xffff).ram().region("maincpu", 0xf000); + map(0xf000, 0xffff).ram(); } void igspoker_state::igspoker_io_map(address_map &map) diff --git a/src/mame/drivers/indigo.cpp b/src/mame/drivers/indigo.cpp index 102d06cae26..dae3a45f077 100644 --- a/src/mame/drivers/indigo.cpp +++ b/src/mame/drivers/indigo.cpp @@ -158,7 +158,7 @@ void indigo_state::indigo_map(address_map &map) void indigo3k_state::mem_map(address_map &map) { indigo_map(map); - map(0x1fc00000, 0x1fc3ffff).rom().share("share10").region("user1", 0); + map(0x1fc00000, 0x1fc3ffff).rom().region("user1", 0); } void indigo4k_state::write_ram(offs_t offset, uint64_t data, uint64_t mem_mask) @@ -185,7 +185,7 @@ void indigo4k_state::mem_map(address_map &map) map(0x00000000, 0x0007ffff).bankrw("bank1"); map(0x08000000, 0x17ffffff).ram().share("share1").w(FUNC(indigo4k_state::write_ram)); /* 128 MB of main RAM */ map(0x1fa00000, 0x1fa1ffff).rw(m_mem_ctrl, FUNC(sgi_mc_device::read), FUNC(sgi_mc_device::write)); - map(0x1fc00000, 0x1fc7ffff).rom().share("share5").region("user1", 0); + map(0x1fc00000, 0x1fc7ffff).rom().region("user1", 0); map(0x20000000, 0x27ffffff).ram().share("share1").w(FUNC(indigo4k_state::write_ram)); /* 128 MB of main RAM */ } diff --git a/src/mame/drivers/irobot.cpp b/src/mame/drivers/irobot.cpp index be7988dd7fc..b627d539d86 100644 --- a/src/mame/drivers/irobot.cpp +++ b/src/mame/drivers/irobot.cpp @@ -148,7 +148,7 @@ void irobot_state::irobot_map(address_map &map) map(0x1300, 0x1300).mirror(0xff).r("adc", FUNC(adc0809_device::data_r)); map(0x1400, 0x143f).rw(FUNC(irobot_state::quad_pokeyn_r), FUNC(irobot_state::quad_pokeyn_w)); map(0x1800, 0x18ff).w(FUNC(irobot_state::irobot_paletteram_w)); - map(0x1900, 0x19ff).writeonly(); /* Watchdog reset */ + map(0x1900, 0x19ff).nopw(); /* Watchdog reset */ map(0x1a00, 0x1a00).w(FUNC(irobot_state::irobot_clearfirq_w)); map(0x1b00, 0x1b03).mirror(0xfc).w("adc", FUNC(adc0809_device::address_offset_start_w)); map(0x1c00, 0x1fff).ram().share("videoram"); diff --git a/src/mame/drivers/itech32.cpp b/src/mame/drivers/itech32.cpp index 8882fcc0ac9..52d7f8a0236 100644 --- a/src/mame/drivers/itech32.cpp +++ b/src/mame/drivers/itech32.cpp @@ -632,13 +632,13 @@ u16 drivedge_state::gas_r() u16 itech32_state::wcbowl_prot_result_r() { - return m_main_ram[0x111d/2]; + return m_nvram[0x111d/2]; } u8 itech32_state::itech020_prot_result_r() { - u32 result = ((u32 *)m_main_ram.target())[m_itech020_prot_address >> 2]; + u32 result = ((u32 *)m_nvram.target())[m_itech020_prot_address >> 2]; result >>= (~m_itech020_prot_address & 3) * 8; return result & 0xff; } @@ -850,7 +850,7 @@ u32 drivedge_state::tms2_speedup_r(address_space &space) void itech32_state::nvram_init(nvram_device &nvram, void *base, size_t length) { // if nvram is the main RAM, don't overwrite exception vectors - int start = (base == m_main_ram) ? 0x80 : 0x00; + int start = (base == m_nvram) ? 0x80 : 0x00; for (int i = start; i < length; i++) ((u8 *)base)[i] = machine().rand(); } @@ -860,7 +860,7 @@ void drivedge_state::nvram_init(nvram_device &nvram, void *base, size_t length) itech32_state::nvram_init(nvram, base, length); // due to accessing uninitialized RAM, we need this hack - ((u32 *)m_main_ram.target())[0x2ce4/4] = 0x0000001e; + ((u32 *)m_nvram.target())[0x2ce4/4] = 0x0000001e; } /************************************* @@ -885,7 +885,7 @@ void itech32_state::timekill_map(address_map &map) map(0x080000, 0x08007f).rw(FUNC(itech32_state::video_r), FUNC(itech32_state::video_w)).share("video"); map(0x0a0000, 0x0a0001).w(FUNC(itech32_state::int1_ack_w)); map(0x0c0000, 0x0c7fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x100000, 0x17ffff).rom().region("user1", 0).share("main_rom"); + map(0x100000, 0x17ffff).rom().region("user1", 0); } @@ -906,7 +906,7 @@ void itech32_state::bloodstm_map(address_map &map) map(0x580000, 0x59ffff).ram().w(FUNC(itech32_state::bloodstm_paletteram_w)).share("palette"); map(0x700001, 0x700001).w(FUNC(itech32_state::bloodstm_plane_w)); map(0x780000, 0x780001).portr("EXTRA"); - map(0x800000, 0x87ffff).mirror(0x780000).rom().region("user1", 0).share("main_rom"); + map(0x800000, 0x87ffff).mirror(0x780000).rom().region("user1", 0); } @@ -920,7 +920,7 @@ u32 itech32_state::test1_r(offs_t offset, u32 mem_mask) if (ACCESSING_BITS_16_23 && !m_written[0x100 + offset*4+1]) logerror("%06X:read from uninitialized memory %04X\n", m_maincpu->pc(), 0x100 + offset*4+1); if (ACCESSING_BITS_8_15 && !m_written[0x100 + offset*4+2]) logerror("%06X:read from uninitialized memory %04X\n", m_maincpu->pc(), 0x100 + offset*4+2); if (ACCESSING_BITS_0_7 && !m_written[0x100 + offset*4+3]) logerror("%06X:read from uninitialized memory %04X\n", m_maincpu->pc(), 0x100 + offset*4+3); - return ((u32 *)m_main_ram)[0x100/4 + offset]; + return ((u32 *)m_nvram)[0x100/4 + offset]; } void itech32_state::test1_w(offs_t offset, u32 data, u32 mem_mask) @@ -929,7 +929,7 @@ void itech32_state::test1_w(offs_t offset, u32 data, u32 mem_mask) if (ACCESSING_BITS_16_23) m_written[0x100 + offset*4+1] = 1; if (ACCESSING_BITS_8_15) m_written[0x100 + offset*4+2] = 1; if (ACCESSING_BITS_0_7) m_written[0x100 + offset*4+3] = 1; - COMBINE_DATA(&((u32 *)m_main_ram)[0x100/4 + offset]); + COMBINE_DATA(&((u32 *)m_nvram)[0x100/4 + offset]); } u32 itech32_state::test2_r(offs_t offset, u32 mem_mask) @@ -938,7 +938,7 @@ u32 itech32_state::test2_r(offs_t offset, u32 mem_mask) if (ACCESSING_BITS_16_23 && !m_written[0xc00 + offset*4+1]) logerror("%06X:read from uninitialized memory %04X\n", m_maincpu->pc(), 0xc00 + offset*4+1); if (ACCESSING_BITS_8_15 && !m_written[0xc00 + offset*4+2]) logerror("%06X:read from uninitialized memory %04X\n", m_maincpu->pc(), 0xc00 + offset*4+2); if (ACCESSING_BITS_0_7 && !m_written[0xc00 + offset*4+3]) logerror("%06X:read from uninitialized memory %04X\n", m_maincpu->pc(), 0xc00 + offset*4+3); - return ((u32 *)m_main_ram)[0xc00/4 + offset]; + return ((u32 *)m_nvram)[0xc00/4 + offset]; } void itech32_state::test2_w(offs_t offset, u32 data, u32 mem_mask) @@ -947,7 +947,7 @@ void itech32_state::test2_w(offs_t offset, u32 data, u32 mem_mask) if (ACCESSING_BITS_16_23) m_written[0xc00 + offset*4+1] = 1; if (ACCESSING_BITS_8_15) m_written[0xc00 + offset*4+2] = 1; if (ACCESSING_BITS_0_7) m_written[0xc00 + offset*4+3] = 1; - COMBINE_DATA(&((u32 *)m_main_ram)[0xc00/4 + offset]); + COMBINE_DATA(&((u32 *)m_nvram)[0xc00/4 + offset]); } #endif @@ -978,7 +978,7 @@ map(0x000c00, 0x007fff).mirror(0x40000).rw(FUNC(itech32_state::test2_r), FUNC(it map(0x280000, 0x280fff).ram().w(FUNC(drivedge_state::tms1_68k_ram_w)).share("tms1_ram"); map(0x300000, 0x300fff).ram().w(FUNC(drivedge_state::tms2_68k_ram_w)).share("tms2_ram"); map(0x380000, 0x380003).nopw(); // .w("watchdog", FUNC(watchdog_timer_device::reset16_w)); - map(0x600000, 0x607fff).rom().region("user1", 0).share("main_rom"); + map(0x600000, 0x607fff).rom().region("user1", 0); } void drivedge_state::tms1_map(address_map &map) @@ -1017,7 +1017,7 @@ void itech32_state::itech020_map(address_map &map) map(0x680000, 0x680003).nopw(); /* ! */ map(0x680800, 0x68083f).readonly().nopw(); /* Serial DUART Channel A/B & Top LED sign - To Do! */ map(0x700002, 0x700002).w(FUNC(itech32_state::itech020_plane_w)); - map(0x800000, 0xbfffff).rom().region("user1", 0).share("main_rom"); + map(0x800000, 0xbfffff).rom().region("user1", 0); } void shoottv_state::shoottv_map(address_map &map) @@ -4629,9 +4629,7 @@ ROM_END void itech32_state::init_program_rom() { - if (m_main_ram == nullptr) - m_main_ram.set_target(m_nvram, m_nvram.bytes()); - memcpy(m_main_ram, m_main_rom, 0x80); + memcpy(m_nvram, m_main_rom, 0x80); } diff --git a/src/mame/drivers/itech8.cpp b/src/mame/drivers/itech8.cpp index d443900b88d..51eb1960679 100644 --- a/src/mame/drivers/itech8.cpp +++ b/src/mame/drivers/itech8.cpp @@ -505,7 +505,6 @@ #include "cpu/z80/z80.h" #include "machine/6522via.h" #include "machine/6821pia.h" -#include "machine/nvram.h" #include "sound/2203intf.h" #include "sound/2608intf.h" #include "sound/3812intf.h" @@ -955,8 +954,8 @@ void itech8_state::gtg2_map(address_map &map) /*------ Ninja Clowns layout ------*/ void itech8_state::ninclown_map(address_map &map) { - map(0x000000, 0x00007f).ram().region("maincpu", 0); - map(0x000080, 0x003fff).ram().share("nvram"); + map(0x000000, 0x003fff).ram().share("nvram"); + map(0x000000, 0x000007).rom(); map(0x004000, 0x03ffff).rom(); map(0x040000, 0x07ffff).r(FUNC(itech8_state::rom_constant_r)); map(0x100080, 0x100080).w(m_soundlatch, FUNC(generic_latch_8_device::write)); @@ -1723,7 +1722,7 @@ WRITE_LINE_MEMBER(itech8_state::generate_tms34061_interrupt) void itech8_state::itech8_core_devices(machine_config &config) { - NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM); + NVRAM(config, m_nvram, nvram_device::DEFAULT_RANDOM); TICKET_DISPENSER(config, m_ticket, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); @@ -1954,6 +1953,8 @@ void itech8_state::ninclown(machine_config &config) itech8_core_devices(config); itech8_sound_ym3812_external(config); + // m_nvram->set_custom_handler([this](nvram_device &, void *p, size_t s) { memcpy(p, memregion("maincpu")->base(), s); }, "vectors"); + M68000(config, m_maincpu, CLOCK_12MHz); m_maincpu->set_addrmap(AS_PROGRAM, &itech8_state::ninclown_map); diff --git a/src/mame/drivers/jackie.cpp b/src/mame/drivers/jackie.cpp index 7cf3d699def..7225da72082 100644 --- a/src/mame/drivers/jackie.cpp +++ b/src/mame/drivers/jackie.cpp @@ -342,7 +342,7 @@ uint8_t jackie_state::expram_r(offs_t offset) void jackie_state::prg_map(address_map &map) { map(0x0000, 0xefff).rom(); - map(0xf000, 0xffff).ram().region("maincpu", 0xf000); + map(0xf000, 0xffff).ram(); } void jackie_state::io_map(address_map &map) diff --git a/src/mame/drivers/jaguar.cpp b/src/mame/drivers/jaguar.cpp index 360d3553c0c..17062b14e08 100644 --- a/src/mame/drivers/jaguar.cpp +++ b/src/mame/drivers/jaguar.cpp @@ -1960,7 +1960,7 @@ image_init_result jaguar_state::quickload_cb(device_image_interface &image, cons { memset(m_shared_ram, 0, 0x200000); image.fseek(0, SEEK_SET); - image.fread( &memregion("maincpu")->base()[start-skip], quickload_size); + image.fread( &m_shared_ram[(start-skip)/4], quickload_size); quickload_begin = start; fix_endian(&memregion("maincpu")->base()[(start-skip)&0xfffffc], quickload_size); } diff --git a/src/mame/drivers/jalmah.cpp b/src/mame/drivers/jalmah.cpp index 8a9fb5a4f71..96e26a2abd4 100644 --- a/src/mame/drivers/jalmah.cpp +++ b/src/mame/drivers/jalmah.cpp @@ -129,6 +129,8 @@ public: m_maincpu(*this, "maincpu"), m_palette(*this, "palette"), m_tmap(*this, "scroll%u", 0), + m_jmcu_rom_region(*this, "jmcu_rom"), + m_jmcu_rom_share(*this, "jmcu_rom"), m_sharedram(*this, "sharedram"), m_prirom(*this, "prirom"), m_p1_key_io(*this, "P1_KEY%u", 0U), @@ -176,6 +178,8 @@ protected: required_device<cpu_device> m_maincpu; required_device<palette_device> m_palette; optional_device_array<megasys1_tilemap_device, 4> m_tmap; + optional_region_ptr<uint16_t> m_jmcu_rom_region; + optional_shared_ptr<uint16_t> m_jmcu_rom_share; uint16_t m_tile_bank; uint16_t m_pri; @@ -694,7 +698,7 @@ void jalmah_state::jalmah_map(address_map &map) void jalmah_state::jalmahv1_map(address_map &map) { jalmah_map(map); - map(0x100000, 0x10ffff).ram().region("jmcu_rom", 0); // extended ROM functions (not on real HW) + map(0x100000, 0x10ffff).ram().share("jmcu_rom"); // extended ROM functions (not on real HW) } void urashima_state::urashima_map(address_map &map) @@ -724,7 +728,7 @@ void urashima_state::urashima_map(address_map &map) map(0x0a0000, 0x0a1fff).noprw(); map(0x0f0000, 0x0f0fff).ram().share("sharedram");/*shared with MCU*/ map(0x0f1000, 0x0fffff).ram(); /*Work Ram*/ - map(0x100000, 0x10ffff).ram().region("jmcu_rom", 0);/*extra RAM for MCU code prg (NOT ON REAL HW!!!)*/ + map(0x100000, 0x10ffff).ram().share("jmcu_rom");/*extra RAM for MCU code prg (NOT ON REAL HW!!!)*/ } void jalmah_state::oki_map(address_map &map) @@ -1075,6 +1079,9 @@ void jalmah_state::machine_start() void jalmah_state::machine_reset() { + if(m_jmcu_rom_share) + memcpy(m_jmcu_rom_share, m_jmcu_rom_region, 0x10000); + m_pri = 0; refresh_priority_system(); @@ -1083,6 +1090,9 @@ void jalmah_state::machine_reset() void urashima_state::machine_reset() { + if(m_jmcu_rom_share) + memcpy(m_jmcu_rom_share, m_jmcu_rom_region, 0x10000); + // m_pri = 0; // initialize tilemap vram to sane defaults (test mode cares) diff --git a/src/mame/drivers/jr100.cpp b/src/mame/drivers/jr100.cpp index 748771028d0..f7758b8786f 100644 --- a/src/mame/drivers/jr100.cpp +++ b/src/mame/drivers/jr100.cpp @@ -73,7 +73,7 @@ public: , m_ram(*this, "ram") , m_pcg(*this, "pcg") , m_vram(*this, "vram") - , m_rom(*this, "rom") + , m_rom(*this, "maincpu") , m_via(*this, "via") , m_cassette(*this, "cassette") , m_speaker(*this, "speaker") @@ -104,7 +104,7 @@ private: required_shared_ptr<uint8_t> m_ram; required_shared_ptr<uint8_t> m_pcg; required_shared_ptr<uint8_t> m_vram; - required_shared_ptr<uint8_t> m_rom; + required_region_ptr<uint8_t> m_rom; required_device<via6522_device> m_via; required_device<cassette_image_device> m_cassette; required_device<speaker_sound_device> m_speaker; @@ -128,7 +128,7 @@ void jr100_state::mem_map(address_map &map) //map(0xcc00, 0xcfff).; expansion i/o //map(0xd000, 0xd7ff).rom(); expansion rom for printer control //map(0xd800, 0xdfff).rom(); expansion rom - map(0xe000, 0xffff).rom().share("rom").region("maincpu",0); + map(0xe000, 0xffff).rom().region("maincpu", 0); } // Input ports - names in [ ] are screen actions; otherwise the text is literally printed onscreen diff --git a/src/mame/drivers/jtc.cpp b/src/mame/drivers/jtc.cpp index 7c425e7eb46..9da8a967a49 100644 --- a/src/mame/drivers/jtc.cpp +++ b/src/mame/drivers/jtc.cpp @@ -93,6 +93,13 @@ class jtces40_state : public jtc_state { public: using jtc_state::jtc_state; + jtces40_state(const machine_config &mconfig, device_type type, const char *tag) + : jtc_state(mconfig, type, tag) + , m_video_ram_40(*this, "videoram40", JTC_ES40_VIDEORAM_SIZE, ENDIANNESS_BIG) + , m_color_ram_r(*this, "color_ram_r", JTC_ES40_VIDEORAM_SIZE, ENDIANNESS_BIG) + , m_color_ram_g(*this, "color_ram_g", JTC_ES40_VIDEORAM_SIZE, ENDIANNESS_BIG) + , m_color_ram_b(*this, "color_ram_b", JTC_ES40_VIDEORAM_SIZE, ENDIANNESS_BIG) + { } void jtces40(machine_config &config); private: virtual void video_start() override; @@ -101,9 +108,11 @@ private: void videoram_w(offs_t offset, u8 data); void banksel_w(u8 data); u8 m_video_bank; - std::unique_ptr<u8[]> m_color_ram_r; - std::unique_ptr<u8[]> m_color_ram_g; - std::unique_ptr<u8[]> m_color_ram_b; + + memory_share_creator<uint8_t> m_video_ram_40; + memory_share_creator<uint8_t> m_color_ram_r; + memory_share_creator<uint8_t> m_color_ram_g; + memory_share_creator<uint8_t> m_color_ram_b; void jtc_es40_mem(address_map &map); void es40_palette(palette_device &palette) const; }; @@ -195,7 +204,7 @@ void jtces40_state::videoram_w(offs_t offset, u8 data) if (BIT(m_video_bank, 7)) m_color_ram_r[offset] = data; if (BIT(m_video_bank, 6)) m_color_ram_g[offset] = data; if (BIT(m_video_bank, 5)) m_color_ram_b[offset] = data; - if (BIT(m_video_bank, 4)) m_video_ram[offset] = data; + if (BIT(m_video_bank, 4)) m_video_ram_40[offset] = data; } void jtces40_state::banksel_w(u8 data) @@ -707,18 +716,8 @@ void jtces40_state::es40_palette(palette_device &palette) const void jtces40_state::video_start() { - /* allocate memory */ - m_video_ram.allocate(JTC_ES40_VIDEORAM_SIZE); - m_color_ram_r = std::make_unique<u8[]>(JTC_ES40_VIDEORAM_SIZE); - m_color_ram_g = std::make_unique<u8[]>(JTC_ES40_VIDEORAM_SIZE); - m_color_ram_b = std::make_unique<u8[]>(JTC_ES40_VIDEORAM_SIZE); - /* register for state saving */ save_item(NAME(m_video_bank)); - save_pointer(NAME(m_video_ram.target()), JTC_ES40_VIDEORAM_SIZE); - save_pointer(NAME(m_color_ram_r), JTC_ES40_VIDEORAM_SIZE); - save_pointer(NAME(m_color_ram_g), JTC_ES40_VIDEORAM_SIZE); - save_pointer(NAME(m_color_ram_b), JTC_ES40_VIDEORAM_SIZE); save_item(NAME(m_centronics_busy)); } @@ -732,7 +731,7 @@ u32 jtces40_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, co { for (int x = 0; x < 40; x++) { - u8 const data = m_video_ram[ma + x]; + u8 const data = m_video_ram_40[ma + x]; u8 const r = ~m_color_ram_r[ma + x]; u8 const g = ~m_color_ram_g[ma + x]; u8 const b = ~m_color_ram_b[ma + x]; diff --git a/src/mame/drivers/jupace.cpp b/src/mame/drivers/jupace.cpp index 455eef6f8c2..5bb5768521f 100644 --- a/src/mame/drivers/jupace.cpp +++ b/src/mame/drivers/jupace.cpp @@ -419,7 +419,7 @@ void ace_state::ace_mem(address_map &map) { map(0x0000, 0x1fff).rom(); map(0x2000, 0x23ff).mirror(0x0400).ram().share("video_ram"); - map(0x2800, 0x2bff).mirror(0x0400).ram().share("char_ram").region(Z80_TAG, 0xfc00); + map(0x2800, 0x2bff).mirror(0x0400).ram().share("char_ram"); map(0x3000, 0x33ff).mirror(0x0c00).ram(); map(0x4000, 0xffff).ram(); } @@ -827,14 +827,14 @@ void ace_state::ace(machine_config &config) //------------------------------------------------- ROM_START( jupace ) - ROM_REGION( 0x10000, Z80_TAG, 0 ) + ROM_REGION( 0x2000, Z80_TAG, 0 ) ROM_LOAD( "rom-a.z1", 0x0000, 0x1000, CRC(dc8438a5) SHA1(8fa97eb71e5dd17c7d190c6587ee3840f839347c) ) ROM_LOAD( "rom-b.z2", 0x1000, 0x1000, CRC(4009f636) SHA1(98c5d4bcd74bcf014268cf4c00b2007ea5cc21f3) ) ROM_REGION( 0x1000, "fdc", 0 ) // Deep Thought disc interface ROM_LOAD( "dos 4.bin", 0x0000, 0x1000, CRC(04c70448) SHA1(53ddcced6ae2feafd687a3b55864726656b71412) ) - ROM_REGION( 0x10000, SP0256AL2_TAG, 0 ) + ROM_REGION( 0x800, SP0256AL2_TAG, 0 ) ROM_LOAD( "sp0256-al2.ic1", 0x000, 0x800, CRC(b504ac15) SHA1(e60fcb5fa16ff3f3b69d36c7a6e955744d3feafc) ) ROM_END diff --git a/src/mame/drivers/kangaroo.cpp b/src/mame/drivers/kangaroo.cpp index 1e7d8e2870d..ecfc6c23099 100644 --- a/src/mame/drivers/kangaroo.cpp +++ b/src/mame/drivers/kangaroo.cpp @@ -274,7 +274,7 @@ void kangaroo_state::main_map(address_map &map) void kangaroo_state::sound_map(address_map &map) { - map(0x0000, 0x0fff).rom(); + map(0x0000, 0x0fff).rom().region("audiocpu", 0); map(0x4000, 0x43ff).mirror(0x0c00).ram(); map(0x6000, 0x6000).mirror(0x0fff).r("soundlatch", FUNC(generic_latch_8_device::read)); map(0x7000, 0x7000).mirror(0x0fff).w("aysnd", FUNC(ay8910_device::data_w)); diff --git a/src/mame/drivers/kinst.cpp b/src/mame/drivers/kinst.cpp index a27fafc0d88..233c2a0fa4c 100644 --- a/src/mame/drivers/kinst.cpp +++ b/src/mame/drivers/kinst.cpp @@ -196,7 +196,7 @@ public: m_rambase(*this, "rambase"), m_rambase2(*this, "rambase2"), m_control(*this, "control"), - m_rombase(*this, "rombase"), + m_rombase(*this, "user1"), m_maincpu(*this, "maincpu"), m_ata(*this, "ata"), m_dcs(*this, "dcs"), @@ -218,7 +218,7 @@ private: required_shared_ptr<uint32_t> m_rambase; required_shared_ptr<uint32_t> m_rambase2; required_shared_ptr<uint32_t> m_control; - required_shared_ptr<uint32_t> m_rombase; + required_region_ptr<uint32_t> m_rombase; required_device<mips3_device> m_maincpu; required_device<ata_interface_device> m_ata; required_device<dcs_audio_2k_device> m_dcs; @@ -484,7 +484,7 @@ void kinst_state::main_map(address_map &map) map(0x10000080, 0x100000ff).rw(FUNC(kinst_state::control_r), FUNC(kinst_state::control_w)).share("control"); map(0x10000100, 0x1000013f).rw(FUNC(kinst_state::ide_r), FUNC(kinst_state::ide_w)); map(0x10000170, 0x10000173).rw(FUNC(kinst_state::ide_extra_r), FUNC(kinst_state::ide_extra_w)); - map(0x1fc00000, 0x1fc7ffff).rom().region("user1", 0).share("rombase"); + map(0x1fc00000, 0x1fc7ffff).rom().region("user1", 0); } diff --git a/src/mame/drivers/konamigs.cpp b/src/mame/drivers/konamigs.cpp index a0afaef7075..f006d55d4e7 100644 --- a/src/mame/drivers/konamigs.cpp +++ b/src/mame/drivers/konamigs.cpp @@ -59,9 +59,9 @@ public: , m_rtc_r(*this, "RTCR") , m_rtc_w(*this, "RTCW") , m_dipsw_r(*this, "DSW") - , m_vram(*this, "vram", 0) - , m_gpuregs(*this, "gpu_regs", 0) - , m_ymzram(*this, "ymz_ram", 0) + , m_vram(*this, "vram") + , m_gpuregs(*this, "gpu_regs") + , m_ymzram(*this, "ymz_ram") , m_screen(*this, "screen") , m_hopper(*this, "hopper") { } diff --git a/src/mame/drivers/kyocera.cpp b/src/mame/drivers/kyocera.cpp index c6d35055670..d8597cf1f86 100644 --- a/src/mame/drivers/kyocera.cpp +++ b/src/mame/drivers/kyocera.cpp @@ -97,28 +97,28 @@ void pc8201_state::bankswitch(uint8_t data) if (rom_bank > 1) { /* RAM */ - program.install_readwrite_bank(0x0000, 0x7fff, "bank1"); + program.install_readwrite_bank(0x0000, 0x7fff, m_bank1); } else { /* ROM */ - program.install_read_bank(0x0000, 0x7fff, "bank1"); + program.install_read_bank(0x0000, 0x7fff, m_bank1); program.unmap_write(0x0000, 0x7fff); } - membank("bank1")->set_entry(rom_bank); + m_bank1->set_entry(rom_bank); switch (ram_bank) { case 0: if (m_ram->size() > 16 * 1024) { - program.install_readwrite_bank(0x8000, 0xffff, "bank2"); + program.install_readwrite_bank(0x8000, 0xffff, m_bank2); } else { program.unmap_readwrite(0x8000, 0xbfff); - program.install_readwrite_bank(0xc000, 0xffff, "bank2"); + program.install_readwrite_bank(0xc000, 0xffff, m_bank2); } break; @@ -128,20 +128,20 @@ void pc8201_state::bankswitch(uint8_t data) case 2: if (m_ram->size() > 32 * 1024) - program.install_readwrite_bank(0x8000, 0xffff, "bank2"); + program.install_readwrite_bank(0x8000, 0xffff, m_bank2); else program.unmap_readwrite(0x8000, 0xffff); break; case 3: if (m_ram->size() > 64 * 1024) - program.install_readwrite_bank(0x8000, 0xffff, "bank2"); + program.install_readwrite_bank(0x8000, 0xffff, m_bank2); else program.unmap_readwrite(0x8000, 0xffff); break; } - membank("bank2")->set_entry(ram_bank); + m_bank2->set_entry(ram_bank); } void pc8201_state::bank_w(uint8_t data) @@ -429,7 +429,7 @@ void kc85_state::ctrl_w(uint8_t data) */ /* ROM bank selection */ - membank("bank1")->set_entry(BIT(data, 0)); + m_bank1->set_entry(BIT(data, 0)); /* printer strobe */ m_centronics->write_strobe(BIT(data, 1)); @@ -467,9 +467,9 @@ void tandy200_state::bankswitch(uint8_t data) } else { - program.install_read_bank(0x0000, 0x7fff, "bank1"); + program.install_read_bank(0x0000, 0x7fff, m_bank1); program.unmap_write(0x0000, 0x7fff); - membank("bank1")->set_entry(rom_bank); + m_bank1->set_entry(rom_bank); } if (m_ram->size() < ((ram_bank + 1) * 24 * 1024)) @@ -479,8 +479,8 @@ void tandy200_state::bankswitch(uint8_t data) } else { - program.install_readwrite_bank(0xa000, 0xffff, "bank2"); - membank("bank2")->set_entry(ram_bank); + program.install_readwrite_bank(0xa000, 0xffff, m_bank2); + m_bank2->set_entry(ram_bank); } } @@ -1158,27 +1158,27 @@ void kc85_state::machine_start() m_rtc->oe_w(1); /* configure ROM banking */ - program.install_read_bank(0x0000, 0x7fff, "bank1"); + program.install_read_bank(0x0000, 0x7fff, m_bank1); program.unmap_write(0x0000, 0x7fff); - membank("bank1")->configure_entry(0, m_rom->base()); - membank("bank1")->configure_entry(1, m_opt_region ? m_opt_region->base() : m_rom->base()); - membank("bank1")->set_entry(0); + m_bank1->configure_entry(0, m_rom->base()); + m_bank1->configure_entry(1, m_opt_region ? m_opt_region->base() : m_rom->base()); + m_bank1->set_entry(0); /* configure RAM banking */ switch (m_ram->size()) { case 16 * 1024: program.unmap_readwrite(0x8000, 0xbfff); - program.install_readwrite_bank(0xc000, 0xffff, "bank2"); + program.install_readwrite_bank(0xc000, 0xffff, m_bank2); break; case 32 * 1024: - program.install_readwrite_bank(0x8000, 0xffff,"bank2"); + program.install_readwrite_bank(0x8000, 0xffff,m_bank2); break; } - membank("bank2")->configure_entry(0, m_ram->pointer()); - membank("bank2")->set_entry(0); + m_bank2->configure_entry(0, m_ram->pointer()); + m_bank2->set_entry(0); /* register for state saving */ save_item(NAME(m_bank)); @@ -1201,15 +1201,15 @@ void pc8201_state::machine_start() m_rtc->oe_w(1); /* configure ROM banking */ - membank("bank1")->configure_entry(0, m_rom->base()); - membank("bank1")->configure_entry(1, m_opt_region ? m_opt_region->base() : m_rom->base()); - membank("bank1")->configure_entries(2, 2, ram + 0x8000, 0x8000); - membank("bank1")->set_entry(0); + m_bank1->configure_entry(0, m_rom->base()); + m_bank1->configure_entry(1, m_opt_region ? m_opt_region->base() : m_rom->base()); + m_bank1->configure_entries(2, 2, ram + 0x8000, 0x8000); + m_bank1->set_entry(0); /* configure RAM banking */ - membank("bank2")->configure_entry(0, ram); - membank("bank2")->configure_entries(2, 2, ram + 0x8000, 0x8000); - membank("bank2")->set_entry(0); + m_bank2->configure_entry(0, ram); + m_bank2->configure_entries(2, 2, ram + 0x8000, 0x8000); + m_bank2->set_entry(0); bankswitch(0); @@ -1237,37 +1237,37 @@ void trsm100_state::machine_start() m_rtc->oe_w(1); /* configure ROM banking */ - program.install_read_bank(0x0000, 0x7fff, "bank1"); + program.install_read_bank(0x0000, 0x7fff, m_bank1); program.unmap_write(0x0000, 0x7fff); - membank("bank1")->configure_entry(0, m_rom->base()); - membank("bank1")->configure_entry(1, m_opt_region ? m_opt_region->base() : m_rom->base()); - membank("bank1")->set_entry(0); + m_bank1->configure_entry(0, m_rom->base()); + m_bank1->configure_entry(1, m_opt_region ? m_opt_region->base() : m_rom->base()); + m_bank1->set_entry(0); /* configure RAM banking */ switch (m_ram->size()) { case 8 * 1024: program.unmap_readwrite(0x8000, 0xcfff); - program.install_readwrite_bank(0xe000, 0xffff, "bank2"); + program.install_readwrite_bank(0xe000, 0xffff, m_bank2); break; case 16 * 1024: program.unmap_readwrite(0x8000, 0xbfff); - program.install_readwrite_bank(0xc000, 0xffff, "bank2"); + program.install_readwrite_bank(0xc000, 0xffff, m_bank2); break; case 24 * 1024: program.unmap_readwrite(0x8000, 0x9fff); - program.install_readwrite_bank(0xa000, 0xffff, "bank2"); + program.install_readwrite_bank(0xa000, 0xffff, m_bank2); break; case 32 * 1024: - program.install_readwrite_bank(0x8000, 0xffff, "bank2"); + program.install_readwrite_bank(0x8000, 0xffff, m_bank2); break; } - membank("bank2")->configure_entry(0, m_ram->pointer()); - membank("bank2")->set_entry(0); + m_bank2->configure_entry(0, m_ram->pointer()); + m_bank2->set_entry(0); /* register for state saving */ save_item(NAME(m_bank)); @@ -1286,14 +1286,14 @@ void tandy200_state::machine_start() m_tp = 0; /* configure ROM banking */ - membank("bank1")->configure_entry(0, m_rom->base()); - membank("bank1")->configure_entry(1, m_rom->base() + 0x10000); - membank("bank1")->configure_entry(2, m_opt_region ? m_opt_region->base() : m_rom->base()); - membank("bank1")->set_entry(0); + m_bank1->configure_entry(0, m_rom->base()); + m_bank1->configure_entry(1, m_rom->base() + 0x10000); + m_bank1->configure_entry(2, m_opt_region ? m_opt_region->base() : m_rom->base()); + m_bank1->set_entry(0); /* configure RAM banking */ - membank("bank2")->configure_entries(0, 3, m_ram->pointer(), 0x6000); - membank("bank2")->set_entry(0); + m_bank2->configure_entries(0, 3, m_ram->pointer(), 0x6000); + m_bank2->set_entry(0); /* register for state saving */ save_item(NAME(m_bank)); diff --git a/src/mame/drivers/kyugo.cpp b/src/mame/drivers/kyugo.cpp index 260ede1e56b..3cf137bcd6e 100644 --- a/src/mame/drivers/kyugo.cpp +++ b/src/mame/drivers/kyugo.cpp @@ -154,6 +154,13 @@ void kyugo_state::kyugo_main_map(address_map &map) map(0xf000, 0xf7ff).ram().share(m_shared_ram); } +void kyugo_state::srdmissn_main_map(address_map &map) +{ + kyugo_main_map(map); + map(0x8000, 0x8fff).ram(); + map(0xe000, 0xe7ff).ram().share(m_shared_ram); +} + void kyugo_state::gyrodine_main_map(address_map &map) { kyugo_main_map(map); @@ -684,6 +691,7 @@ void kyugo_state::srdmissn(machine_config &config) kyugo_base(config); // basic machine hardware + m_maincpu->set_addrmap(AS_PROGRAM, &kyugo_state::srdmissn_main_map); m_subcpu->set_addrmap(AS_PROGRAM, &kyugo_state::srdmissn_sub_map); m_subcpu->set_addrmap(AS_IO, &kyugo_state::srdmissn_sub_portmap); } @@ -1576,24 +1584,6 @@ ROM_END /************************************* * - * Game specific initialization - * - *************************************/ - - -void kyugo_state::init_srdmissn() -{ - // shared RAM is mapped at 0xe000 as well - m_maincpu->space(AS_PROGRAM).install_ram(0xe000, 0xe7ff, m_shared_ram); - - // extra RAM on sub CPU - m_subcpu->space(AS_PROGRAM).install_ram(0x8800, 0x8fff); -} - - - -/************************************* - * * Game drivers * *************************************/ @@ -1610,12 +1600,12 @@ GAME( 1985, sonofphx, repulse, repulse, repulse, kyugo_state, empty_init, GAME( 1985, flashgal, 0, repulse, flashgal, kyugo_state, empty_init, ROT0, "Kyugo / Sega", "Flashgal (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, flashgalk, flashgal, repulse, flashgal, kyugo_state, empty_init, ROT0, "Kyugo / Sega", "Flashgal (set 1, Kyugo logo)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, flashgala, flashgal, flashgala, flashgal, kyugo_state, empty_init, ROT0, "Kyugo / Sega", "Flashgal (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, srdmissn, 0, srdmissn, srdmissn, kyugo_state, init_srdmissn, ROT90, "Kyugo / Taito Corporation", "S.R.D. Mission", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, fx, srdmissn, srdmissn, srdmissn, kyugo_state, init_srdmissn, ROT90, "bootleg", "F-X (bootleg of S.R.D. Mission)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, legend, 0, legend, legend, kyugo_state, init_srdmissn, ROT0, "Kyugo / Sega", "Legend", MACHINE_SUPPORTS_SAVE ) // no copyright (maybe also a bootleg?) -GAME( 1986, legendb, legend, legend, legend, kyugo_state, init_srdmissn, ROT0, "bootleg", "Legion (bootleg of Legend)", MACHINE_SUPPORTS_SAVE ) // no copyright -GAME( 1987, airwolf, 0, srdmissn, airwolf, kyugo_state, init_srdmissn, ROT0, "Kyugo", "Airwolf", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, airwolfa, airwolf, srdmissn, airwolf, kyugo_state, init_srdmissn, ROT0, "Kyugo (United Amusements license)", "Airwolf (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, skywolf, airwolf, srdmissn, skywolf, kyugo_state, init_srdmissn, ROT0, "bootleg", "Sky Wolf (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, skywolf2, airwolf, srdmissn, airwolf, kyugo_state, init_srdmissn, ROT0, "bootleg", "Sky Wolf (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, skywolf3, airwolf, srdmissn, airwolf, kyugo_state, init_srdmissn, ROT0, "bootleg", "Sky Wolf (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, srdmissn, 0, srdmissn, srdmissn, kyugo_state, empty_init, ROT90, "Kyugo / Taito Corporation", "S.R.D. Mission", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, fx, srdmissn, srdmissn, srdmissn, kyugo_state, empty_init, ROT90, "bootleg", "F-X (bootleg of S.R.D. Mission)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, legend, 0, legend, legend, kyugo_state, empty_init, ROT0, "Kyugo / Sega", "Legend", MACHINE_SUPPORTS_SAVE ) // no copyright (maybe also a bootleg?) +GAME( 1986, legendb, legend, legend, legend, kyugo_state, empty_init, ROT0, "bootleg", "Legion (bootleg of Legend)", MACHINE_SUPPORTS_SAVE ) // no copyright +GAME( 1987, airwolf, 0, srdmissn, airwolf, kyugo_state, empty_init, ROT0, "Kyugo", "Airwolf", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, airwolfa, airwolf, srdmissn, airwolf, kyugo_state, empty_init, ROT0, "Kyugo (United Amusements license)", "Airwolf (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, skywolf, airwolf, srdmissn, skywolf, kyugo_state, empty_init, ROT0, "bootleg", "Sky Wolf (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, skywolf2, airwolf, srdmissn, airwolf, kyugo_state, empty_init, ROT0, "bootleg", "Sky Wolf (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, skywolf3, airwolf, srdmissn, airwolf, kyugo_state, empty_init, ROT0, "bootleg", "Sky Wolf (set 3)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/lc80.cpp b/src/mame/drivers/lc80.cpp index c1f487b7c77..69011e12b5d 100644 --- a/src/mame/drivers/lc80.cpp +++ b/src/mame/drivers/lc80.cpp @@ -294,29 +294,29 @@ void lc80_state::machine_start() membank("bank4")->configure_entry(0, &ROM[0x2000]); membank("bank4")->set_entry(0); - program.install_readwrite_bank(0x0000, 0x07ff, "bank1"); - program.install_readwrite_bank(0x0800, 0x0fff, "bank2"); - program.install_readwrite_bank(0x1000, 0x17ff, "bank3"); + program.install_readwrite_bank(0x0000, 0x07ff, membank("bank1")); + program.install_readwrite_bank(0x0800, 0x0fff, membank("bank2")); + program.install_readwrite_bank(0x1000, 0x17ff, membank("bank3")); switch (m_ram->size()) { case 1*1024: - program.install_readwrite_bank(0x2000, 0x23ff, "bank4"); + program.install_readwrite_bank(0x2000, 0x23ff, membank("bank4")); program.unmap_readwrite(0x2400, 0x2fff); break; case 2*1024: - program.install_readwrite_bank(0x2000, 0x27ff, "bank4"); + program.install_readwrite_bank(0x2000, 0x27ff, membank("bank4")); program.unmap_readwrite(0x2800, 0x2fff); break; case 3*1024: - program.install_readwrite_bank(0x2000, 0x2bff, "bank4"); + program.install_readwrite_bank(0x2000, 0x2bff, membank("bank4")); program.unmap_readwrite(0x2c00, 0x2fff); break; case 4*1024: - program.install_readwrite_bank(0x2000, 0x2fff, "bank4"); + program.install_readwrite_bank(0x2000, 0x2fff, membank("bank4")); break; } diff --git a/src/mame/drivers/leapster.cpp b/src/mame/drivers/leapster.cpp index 4cf61ca3e01..1393ff342a9 100644 --- a/src/mame/drivers/leapster.cpp +++ b/src/mame/drivers/leapster.cpp @@ -283,10 +283,7 @@ void leapster_state::machine_start() if (m_cart_rom) { - address_space &space = m_maincpu->space(AS_PROGRAM); - - space.install_readwrite_bank(0x80000000, 0x807fffff, "cartrom"); - membank("cartrom")->set_base(m_cart_rom->base()); + m_maincpu->space(AS_PROGRAM).install_rom(0x80000000, 0x807fffff, m_cart_rom->base()); } } diff --git a/src/mame/drivers/leland.cpp b/src/mame/drivers/leland.cpp index 3e763debcd5..a3ee92f1223 100644 --- a/src/mame/drivers/leland.cpp +++ b/src/mame/drivers/leland.cpp @@ -83,7 +83,7 @@ void leland_state::master_map_program(address_map &map) { map(0x0000, 0x1fff).rom(); map(0x2000, 0x9fff).bankr(m_master_bankslot[0]); - map(0xa000, 0xdfff).bankr(m_master_bankslot[1]).w(FUNC(leland_state::leland_battery_ram_w)).share("battery"); + map(0xa000, 0xdfff).bankr(m_master_bankslot[1]).w(FUNC(leland_state::leland_battery_ram_w)); map(0xe000, 0xefff).ram().share(m_mainram); map(0xf000, 0xf3ff).rw(FUNC(leland_state::gated_paletteram_r), FUNC(leland_state::gated_paletteram_w)).share("palette"); map(0xf800, 0xf801).w(FUNC(leland_state::master_video_addr_w)); @@ -110,7 +110,7 @@ void ataxx_state::master_map_program_2(address_map &map) { map(0x0000, 0x1fff).rom(); map(0x2000, 0x9fff).bankr(m_master_bankslot[0]); - map(0xa000, 0xdfff).bankr(m_master_bankslot[1]).w(FUNC(ataxx_state::ataxx_battery_ram_w)).share("battery"); + map(0xa000, 0xdfff).bankr(m_master_bankslot[1]).w(FUNC(ataxx_state::ataxx_battery_ram_w)); map(0xe000, 0xf7ff).ram().share(m_mainram); map(0xf800, 0xffff).rw(FUNC(ataxx_state::paletteram_and_misc_r), FUNC(ataxx_state::paletteram_and_misc_w)).share("palette"); } @@ -177,6 +177,11 @@ void leland_state::slave_map_program(address_map &map) map(0xffff, 0xffff).w(FUNC(leland_state::ataxx_slave_banksw_w)); } +void leland_state::asylum_slave_map_program(address_map &map) +{ + slave_map_program(map); + map(0xf000, 0xfffb).ram(); +} void ataxx_state::slave_map_io_2(address_map &map) { @@ -1077,6 +1082,11 @@ void ataxx_state::wsf(machine_config &config) WSF_80186(config.replace(), m_sound, 0).set_master_cpu_tag(m_master); } +void ataxx_state::asylum(machine_config &config) +{ + wsf(config); + m_slave->set_addrmap(AS_PROGRAM, &ataxx_state::asylum_slave_map_program); +} /************************************* @@ -3351,9 +3361,6 @@ void ataxx_state::init_asylum() rotate_memory("master"); rotate_memory("slave"); - /* asylum appears to have some extra RAM for the slave CPU */ - m_slave->space(AS_PROGRAM).install_ram(0xf000, 0xfffb); - /* set up additional input ports */ m_master->space(AS_IO).install_read_port(0x0d, 0x0d, "P2"); m_master->space(AS_IO).install_read_port(0x0e, 0x0e, "P1"); @@ -3417,4 +3424,4 @@ GAME( 1990, wsf, 0, wsf, wsf, ataxx_state, init_wsf, GAME( 1990, wsf3, wsf, wsf, wsf, ataxx_state, init_wsf, ROT0, "Leland Corporation", "World Soccer Finals (rev 3)", 0 ) GAME( 1991, indyheat, 0, wsf, indyheat, ataxx_state, init_indyheat, ROT0, "Leland Corporation", "Danny Sullivan's Indy Heat (rev 1)", 0 ) GAME( 1991, brutforc, 0, wsf, brutforc, ataxx_state, init_brutforc, ROT0, "Leland Corporation", "Brute Force", 0 ) -GAME( 1991, asylum, 0, wsf, brutforc, ataxx_state, init_asylum, ROT270, "Leland Corporation", "Asylum (prototype)", 0 ) +GAME( 1991, asylum, 0, asylum, brutforc, ataxx_state, init_asylum, ROT270, "Leland Corporation", "Asylum (prototype)", 0 ) diff --git a/src/mame/drivers/liberate.cpp b/src/mame/drivers/liberate.cpp index 7cd62ad4243..ac189b4eac9 100644 --- a/src/mame/drivers/liberate.cpp +++ b/src/mame/drivers/liberate.cpp @@ -79,7 +79,7 @@ void liberate_state::deco16_bank_w(uint8_t data) if (m_bank) m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x800f, read8sm_delegate(*this, FUNC(liberate_state::deco16_io_r))); else - m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0x800f, "bank1"); + m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0x800f, membank("bank1")); } uint8_t liberate_state::prosoccr_bank_r(offs_t offset) diff --git a/src/mame/drivers/limenko.cpp b/src/mame/drivers/limenko.cpp index 1455aaa25f3..8c554407f93 100644 --- a/src/mame/drivers/limenko.cpp +++ b/src/mame/drivers/limenko.cpp @@ -54,6 +54,7 @@ public: , m_spriteram(*this, "spriteram") , m_videoreg(*this, "videoreg") , m_gfx_region(*this, "gfx") + , m_qs1000_bank(*this, "qs1000_bank") { } @@ -87,6 +88,8 @@ private: required_shared_ptr<u32> m_videoreg; required_region_ptr<u8> m_gfx_region; + memory_bank_creator m_qs1000_bank; + tilemap_t *m_bg_tilemap; tilemap_t *m_md_tilemap; tilemap_t *m_fg_tilemap; @@ -200,7 +203,7 @@ void limenko_state::qs1000_p3_w(u8 data) // ...x .... - ? // ..x. .... - /IRQ clear - membank("qs1000:bank")->set_entry(data & 0x07); + m_qs1000_bank->set_entry(data & 0x07); if (!BIT(data, 5)) m_soundlatch->acknowledge_w(); @@ -1071,8 +1074,8 @@ u32 limenko_state::spotty_speedup_r() void limenko_state::init_common() { // Set up the QS1000 program ROM banking, taking care not to overlap the internal RAM - m_qs1000->cpu().space(AS_IO).install_read_bank(0x0100, 0xffff, "bank"); - membank("qs1000:bank")->configure_entries(0, 8, memregion("qs1000:cpu")->base()+0x100, 0x10000); + m_qs1000->cpu().space(AS_IO).install_read_bank(0x0100, 0xffff, m_qs1000_bank); + m_qs1000_bank->configure_entries(0, 8, memregion("qs1000:cpu")->base()+0x100, 0x10000); m_spriteram_bit = 1; } diff --git a/src/mame/drivers/lisa.cpp b/src/mame/drivers/lisa.cpp index ea3e118e38d..38ab487ab35 100644 --- a/src/mame/drivers/lisa.cpp +++ b/src/mame/drivers/lisa.cpp @@ -33,7 +33,7 @@ void lisa_state::lisa_fdc_map(address_map &map) map(0x0000, 0x03ff).ram().share("fdc_ram"); /* RAM (shared with 68000) */ map(0x0400, 0x07ff).rw(FUNC(lisa_state::lisa_fdc_io_r), FUNC(lisa_state::lisa_fdc_io_w)); /* disk controller (IWM and TTL logic) */ map(0x0800, 0x0fff).noprw(); - map(0x1000, 0x1fff).rom().region("fdccpu", 0x1000).share("fdc_rom"); /* ROM */ + map(0x1000, 0x1fff).rom().region("fdccpu", 0x1000); /* ROM */ } void lisa_state::lisa210_fdc_map(address_map &map) @@ -43,7 +43,7 @@ void lisa_state::lisa210_fdc_map(address_map &map) map(0x0400, 0x07ff).noprw(); /* nothing, or RAM wrap-around ??? */ map(0x0800, 0x0bff).rw(FUNC(lisa_state::lisa_fdc_io_r), FUNC(lisa_state::lisa_fdc_io_w)); /* disk controller (IWM and TTL logic) */ map(0x0c00, 0x0fff).noprw(); /* nothing, or IO port wrap-around ??? */ - map(0x1000, 0x1fff).rom().region("fdccpu", 0x1000).share("fdc_rom"); /* ROM */ + map(0x1000, 0x1fff).rom().region("fdccpu", 0x1000); /* ROM */ } diff --git a/src/mame/drivers/m20.cpp b/src/mame/drivers/m20.cpp index 557c4e684a1..e1e1f1b6bf5 100644 --- a/src/mame/drivers/m20.cpp +++ b/src/mame/drivers/m20.cpp @@ -347,84 +347,75 @@ void m20_state::install_memory() /* install mainboard memory (aka DRAM0) */ /* <0>0000 */ - pspace.install_readwrite_bank(0x0000, 0x3fff, 0, "dram0_4000"); - dspace.install_readwrite_bank(0x0000, 0x3fff, 0, "dram0_4000"); + pspace.install_ram(0x0000, 0x3fff, 0, memptr + 0x4000); + dspace.install_ram(0x0000, 0x3fff, 0, memptr + 0x4000); /* <0>4000 */ - pspace.install_readwrite_bank(0x4000, 0x7fff, 0, "dram0_8000"); + pspace.install_ram(0x4000, 0x7fff, 0, memptr + 0x8000); /* <0>8000 */ - pspace.install_readwrite_bank(0x8000, 0xbfff, 0, "dram0_c000"); + pspace.install_ram(0x8000, 0xbfff, 0, memptr + 0xc000); /* <0>C000 */ - pspace.install_readwrite_bank(0xc000, 0xcfff, 0, "dram0_10000"); + pspace.install_ram(0xc000, 0xcfff, 0, memptr + 0x10000); /* <1>0000 */ - pspace.install_readwrite_bank(0x10000, 0x13fff, 0, "dram0_8000"); - dspace.install_readwrite_bank(0x10000, 0x13fff, 0, "dram0_14000"); + pspace.install_ram(0x10000, 0x13fff, 0, memptr + 0x8000); + dspace.install_ram(0x10000, 0x13fff, 0, memptr + 0x14000); /* <1>4000 */ - pspace.install_readwrite_bank(0x14000, 0x17fff, 0, "dram0_c000"); - dspace.install_readwrite_bank(0x14000, 0x17fff, 0, "dram0_18000"); + pspace.install_ram(0x14000, 0x17fff, 0, memptr + 0xc000); + dspace.install_ram(0x14000, 0x17fff, 0, memptr + 0x18000); /* <1>8000 */ - pspace.install_readwrite_bank(0x18000, 0x1bfff, 0, "dram0_10000"); - dspace.install_readwrite_bank(0x18000, 0x1bfff, 0, "dram0_1c000"); + pspace.install_ram(0x18000, 0x1bfff, 0, memptr + 0x10000); + dspace.install_ram(0x18000, 0x1bfff, 0, memptr + 0x1c000); /* <1>c000 empty*/ /* <2>0000 */ - pspace.install_readwrite_bank(0x20000, 0x23fff, 0, "dram0_14000"); - dspace.install_readwrite_bank(0x20000, 0x23fff, 0, "dram0_14000"); + pspace.install_ram(0x20000, 0x23fff, 0, memptr + 0x14000); + dspace.install_ram(0x20000, 0x23fff, 0, memptr + 0x14000); /* <2>4000 */ - pspace.install_readwrite_bank(0x24000, 0x27fff, 0, "dram0_18000"); - dspace.install_readwrite_bank(0x24000, 0x27fff, 0, "dram0_18000"); + pspace.install_ram(0x24000, 0x27fff, 0, memptr + 0x18000); + dspace.install_ram(0x24000, 0x27fff, 0, memptr + 0x18000); /* <2>8000 */ - pspace.install_readwrite_bank(0x28000, 0x2bfff, 0, "dram0_1c000"); - dspace.install_readwrite_bank(0x28000, 0x2bfff, 0, "dram0_1c000"); + pspace.install_ram(0x28000, 0x2bfff, 0, memptr + 0x1c000); + dspace.install_ram(0x28000, 0x2bfff, 0, memptr + 0x1c000); /* <2>c000 empty*/ /* <3>0000 (video buffer) - pspace.install_readwrite_bank(0x30000, 0x33fff, 0, "dram0_0000"); - dspace.install_readwrite_bank(0x30000, 0x33fff, 0, "dram0_0000"); + pspace.install_ram(0x30000, 0x33fff, 0, memptr + 0x0000); + dspace.install_ram(0x30000, 0x33fff, 0, memptr + 0x0000); */ /* <5>0000 */ - dspace.install_readwrite_bank(0x50000, 0x53fff, 0, "dram0_8000"); + dspace.install_ram(0x50000, 0x53fff, 0, memptr + 0x8000); /* <5>4000 */ - dspace.install_readwrite_bank(0x54000, 0x57fff, 0, "dram0_c000"); + dspace.install_ram(0x54000, 0x57fff, 0, memptr + 0xc000); /* <5>8000 */ - dspace.install_readwrite_bank(0x58000, 0x5bfff, 0, "dram0_10000"); + dspace.install_ram(0x58000, 0x5bfff, 0, memptr + 0x10000); /* <5>c000 expansion bus */ /* <6>0000 */ - pspace.install_readwrite_bank(0x60000, 0x63fff, 0, "dram0_8000"); - dspace.install_readwrite_bank(0x60000, 0x63fff, 0, "dram0_8000"); + pspace.install_ram(0x60000, 0x63fff, 0, memptr + 0x8000); + dspace.install_ram(0x60000, 0x63fff, 0, memptr + 0x8000); /* <6>4000 */ - pspace.install_readwrite_bank(0x64000, 0x67fff, 0, "dram0_c000"); - dspace.install_readwrite_bank(0x64000, 0x67fff, 0, "dram0_c000"); + pspace.install_ram(0x64000, 0x67fff, 0, memptr + 0xc000); + dspace.install_ram(0x64000, 0x67fff, 0, memptr + 0xc000); /* <6>8000 */ - pspace.install_readwrite_bank(0x68000, 0x6bfff, 0, "dram0_10000"); - dspace.install_readwrite_bank(0x68000, 0x6bfff, 0, "dram0_10000"); + pspace.install_ram(0x68000, 0x6bfff, 0, memptr + 0x10000); + dspace.install_ram(0x68000, 0x6bfff, 0, memptr + 0x10000); /* <6>c000 empty*/ /* segment <7> expansion ROM? */ /* <8>0000 */ - pspace.install_readwrite_bank(0x80000, 0x83fff, 0, "dram0_8000"); - dspace.install_readwrite_bank(0x80000, 0x83fff, 0, "dram0_18000"); + pspace.install_ram(0x80000, 0x83fff, 0, memptr + 0x8000); + dspace.install_ram(0x80000, 0x83fff, 0, memptr + 0x18000); /* <8>4000 */ - pspace.install_readwrite_bank(0x84000, 0x87fff, 0, "dram0_c000"); - dspace.install_readwrite_bank(0x84000, 0x87fff, 0, "dram0_1c000"); + pspace.install_ram(0x84000, 0x87fff, 0, memptr + 0xc000); + dspace.install_ram(0x84000, 0x87fff, 0, memptr + 0x1c000); /* <9>0000 */ - pspace.install_readwrite_bank(0x90000, 0x93fff, 0, "dram0_18000"); - dspace.install_readwrite_bank(0x90000, 0x93fff, 0, "dram0_18000"); + pspace.install_ram(0x90000, 0x93fff, 0, memptr + 0x18000); + dspace.install_ram(0x90000, 0x93fff, 0, memptr + 0x18000); /* <9>4000 */ - pspace.install_readwrite_bank(0x94000, 0x97fff, 0, "dram0_1c000"); - dspace.install_readwrite_bank(0x94000, 0x97fff, 0, "dram0_1c000"); + pspace.install_ram(0x94000, 0x97fff, 0, memptr + 0x1c000); + dspace.install_ram(0x94000, 0x97fff, 0, memptr + 0x1c000); /* <A>0000 */ - pspace.install_readwrite_bank(0xa0000, 0xa3fff, 0, "dram0_8000"); - dspace.install_readwrite_bank(0xa0000, 0xa3fff, 0, "dram0_8000"); + pspace.install_ram(0xa0000, 0xa3fff, 0, memptr + 0x8000); + dspace.install_ram(0xa0000, 0xa3fff, 0, memptr + 0x8000); /* <A>4000 */ - pspace.install_readwrite_bank(0xa4000, 0xa7fff, 0, "dram0_c000"); - dspace.install_readwrite_bank(0xa4000, 0xa7fff, 0, "dram0_c000"); - - //membank("dram0_0000")->set_base(memptr); - membank("dram0_4000")->set_base(memptr + 0x4000); - membank("dram0_8000")->set_base(memptr + 0x8000); - membank("dram0_c000")->set_base(memptr + 0xc000); - membank("dram0_10000")->set_base(memptr + 0x10000); - membank("dram0_14000")->set_base(memptr + 0x14000); - membank("dram0_18000")->set_base(memptr + 0x18000); - membank("dram0_1c000")->set_base(memptr + 0x1c000); + pspace.install_ram(0xa4000, 0xa7fff, 0, memptr + 0xc000); + dspace.install_ram(0xa4000, 0xa7fff, 0, memptr + 0xc000); if (m_memsize > 128 * 1024) { /* install memory expansions (DRAM1..DRAM3) */ @@ -439,9 +430,9 @@ void m20_state::install_memory() map( 0x88000, 0x8bfff ).ram().share("dram1_4000"); map( 0xa8000, 0xabfff ).ram().share("dram1_4000"); */ - pspace.install_readwrite_bank(0x2c000, 0x2ffff, 0, "dram1_0000"); - pspace.install_readwrite_bank(0x88000, 0x8bfff, 0, "dram1_4000"); - pspace.install_readwrite_bank(0xa8000, 0xabfff, 0, "dram1_4000"); + pspace.install_ram(0x2c000, 0x2ffff, 0, memptr + 0x20000); + pspace.install_ram(0x88000, 0x8bfff, 0, memptr + 0x24000); + pspace.install_ram(0xa8000, 0xabfff, 0, memptr + 0x24000); /* data @@ -450,13 +441,10 @@ void m20_state::install_memory() map( 0x2c000, 0x2ffff ).ram().share("dram1_0000"); map( 0xa8000, 0xabfff ).ram().share("dram1_4000"); */ - dspace.install_readwrite_bank(0x4000, 0x7fff, 0, "dram1_4000"); - dspace.install_readwrite_bank(0x1c000, 0x1ffff, 0, "dram1_0000"); - dspace.install_readwrite_bank(0x2c000, 0x2ffff, 0, "dram1_0000"); - dspace.install_readwrite_bank(0xa8000, 0xabfff, 0, "dram1_4000"); - - membank("dram1_0000")->set_base(memptr + 0x20000); - membank("dram1_4000")->set_base(memptr + 0x24000); + dspace.install_ram(0x4000, 0x7fff, 0, memptr + 0x24000); + dspace.install_ram(0x1c000, 0x1ffff, 0, memptr + 0x20000); + dspace.install_ram(0x2c000, 0x2ffff, 0, memptr + 0x20000); + dspace.install_ram(0xa8000, 0xabfff, 0, memptr + 0x24000); if (m_memsize > 128 * 1024 + 32768) { /* DRAM2, 32K */ @@ -466,9 +454,9 @@ void m20_state::install_memory() map( 0x98000, 0x9bfff ).ram().share("dram2_4000"); map( 0xac000, 0xaffff ).ram().share("dram2_0000"); */ - pspace.install_readwrite_bank(0x8c000, 0x8ffff, 0, "dram2_0000"); - pspace.install_readwrite_bank(0x98000, 0x9bfff, 0, "dram2_4000"); - pspace.install_readwrite_bank(0xac000, 0xaffff, 0, "dram2_0000"); + pspace.install_ram(0x8c000, 0x8ffff, 0, memptr + 0x28000); + pspace.install_ram(0x98000, 0x9bfff, 0, memptr + 0x2c000); + pspace.install_ram(0xac000, 0xaffff, 0, memptr + 0x28000); /* data map( 0x08000, 0x0bfff ).ram().share("dram2_0000"); @@ -477,14 +465,11 @@ void m20_state::install_memory() map( 0x98000, 0x9bfff ).ram().share("dram2_4000"); map( 0xac000, 0xaffff ).ram().share("dram2_0000"); */ - dspace.install_readwrite_bank(0x8000, 0xbfff, 0, "dram2_0000"); - dspace.install_readwrite_bank(0xc000, 0xffff, 0, "dram2_4000"); - dspace.install_readwrite_bank(0x88000, 0x8bfff, 0, "dram2_4000"); - dspace.install_readwrite_bank(0x98000, 0x9bfff, 0, "dram2_4000"); - dspace.install_readwrite_bank(0xac000, 0xaffff, 0, "dram2_0000"); - - membank("dram2_0000")->set_base(memptr + 0x28000); - membank("dram2_4000")->set_base(memptr + 0x2c000); + dspace.install_ram(0x8000, 0xbfff, 0, memptr + 0x28000); + dspace.install_ram(0xc000, 0xffff, 0, memptr + 0x2c000); + dspace.install_ram(0x88000, 0x8bfff, 0, memptr + 0x2c000); + dspace.install_ram(0x98000, 0x9bfff, 0, memptr + 0x2c000); + dspace.install_ram(0xac000, 0xaffff, 0, memptr + 0x28000); } if (m_memsize > 128 * 1024 + 2 * 32768) { /* DRAM3, 32K */ @@ -493,8 +478,8 @@ void m20_state::install_memory() map( 0x9c000, 0x9ffff ).ram().share("dram3_0000"); map( 0xb0000, 0xb3fff ).ram().share("dram3_4000"); */ - pspace.install_readwrite_bank(0x9c000, 0x9ffff, 0, "dram3_0000"); - pspace.install_readwrite_bank(0xb0000, 0xb3fff, 0, "dram3_4000"); + pspace.install_ram(0x9c000, 0x9ffff, 0, memptr + 0x30000); + pspace.install_ram(0xb0000, 0xb3fff, 0, memptr + 0x34000); /* data map( 0x44000, 0x47fff ).ram().share("dram3_0000"); @@ -504,15 +489,12 @@ void m20_state::install_memory() map( 0xb0000, 0xb3fff ).ram().share("dram3_4000"); map( 0xc0000, 0xc3fff ).ram().share("dram3_4000"); */ - dspace.install_readwrite_bank(0x44000, 0x47fff, 0, "dram3_0000"); - dspace.install_readwrite_bank(0x48000, 0x4bfff, 0, "dram3_4000"); - dspace.install_readwrite_bank(0x8c000, 0x8ffff, 0, "dram3_0000"); - dspace.install_readwrite_bank(0x9c000, 0x9ffff, 0, "dram3_0000"); - dspace.install_readwrite_bank(0xb0000, 0xb3fff, 0, "dram3_4000"); - dspace.install_readwrite_bank(0xc0000, 0xc3fff, 0, "dram3_4000"); - - membank("dram3_0000")->set_base(memptr + 0x30000); - membank("dram3_4000")->set_base(memptr + 0x34000); + dspace.install_ram(0x44000, 0x47fff, 0, memptr + 0x30000); + dspace.install_ram(0x48000, 0x4bfff, 0, memptr + 0x34000); + dspace.install_ram(0x8c000, 0x8ffff, 0, memptr + 0x30000); + dspace.install_ram(0x9c000, 0x9ffff, 0, memptr + 0x30000); + dspace.install_ram(0xb0000, 0xb3fff, 0, memptr + 0x34000); + dspace.install_ram(0xc0000, 0xc3fff, 0, memptr + 0x34000); } } else { @@ -532,16 +514,16 @@ void m20_state::install_memory() map( 0xb4000, 0xb7fff ).ram().share("dram1_18000"); map( 0xb8000, 0xbbfff ).ram().share("dram1_1c000"); */ - pspace.install_readwrite_bank(0x2c000, 0x2ffff, 0, "dram1_0000"); - pspace.install_readwrite_bank(0x88000, 0x8bfff, 0, "dram1_4000"); - pspace.install_readwrite_bank(0x8c000, 0x8ffff, 0, "dram1_8000"); - pspace.install_readwrite_bank(0x98000, 0x9bfff, 0, "dram1_c000"); - pspace.install_readwrite_bank(0x9c000, 0x9ffff, 0, "dram1_10000"); - pspace.install_readwrite_bank(0xa8000, 0xabfff, 0, "dram1_4000"); - pspace.install_readwrite_bank(0xac000, 0xaffff, 0, "dram1_8000"); - pspace.install_readwrite_bank(0xb0000, 0xb3fff, 0, "dram1_14000"); - pspace.install_readwrite_bank(0xb4000, 0xb7fff, 0, "dram1_18000"); - pspace.install_readwrite_bank(0xb8000, 0xbbfff, 0, "dram1_1c000"); + pspace.install_ram(0x2c000, 0x2ffff, 0, memptr + 0x20000); + pspace.install_ram(0x88000, 0x8bfff, 0, memptr + 0x24000); + pspace.install_ram(0x8c000, 0x8ffff, 0, memptr + 0x28000); + pspace.install_ram(0x98000, 0x9bfff, 0, memptr + 0x2c000); + pspace.install_ram(0x9c000, 0x9ffff, 0, memptr + 0x30000); + pspace.install_ram(0xa8000, 0xabfff, 0, memptr + 0x24000); + pspace.install_ram(0xac000, 0xaffff, 0, memptr + 0x28000); + pspace.install_ram(0xb0000, 0xb3fff, 0, memptr + 0x34000); + pspace.install_ram(0xb4000, 0xb7fff, 0, memptr + 0x38000); + pspace.install_ram(0xb8000, 0xbbfff, 0, memptr + 0x3c000); /* data map( 0x04000, 0x07fff ).ram().share("dram1_4000"); @@ -557,27 +539,18 @@ void m20_state::install_memory() map( 0xb4000, 0xb7fff ).ram().share("dram1_18000"); map( 0xb8000, 0xbbfff ).ram().share("dram1_1c000"); */ - dspace.install_readwrite_bank(0x4000, 0x7fff, 0, "dram1_4000"); - dspace.install_readwrite_bank(0x1c000, 0x1ffff, 0, "dram1_0000"); - dspace.install_readwrite_bank(0x2c000, 0x2ffff, 0, "dram1_0000"); - dspace.install_readwrite_bank(0x88000, 0x8bfff, 0, "dram1_c000"); - dspace.install_readwrite_bank(0x8c000, 0x8ffff, 0, "dram1_10000"); - dspace.install_readwrite_bank(0x98000, 0x9bfff, 0, "dram1_c000"); - dspace.install_readwrite_bank(0x9c000, 0x9ffff, 0, "dram1_10000"); - dspace.install_readwrite_bank(0xa8000, 0xabfff, 0, "dram1_4000"); - dspace.install_readwrite_bank(0xac000, 0xaffff, 0, "dram1_8000"); - dspace.install_readwrite_bank(0xb0000, 0xb3fff, 0, "dram1_14000"); - dspace.install_readwrite_bank(0xb4000, 0xb7fff, 0, "dram1_18000"); - dspace.install_readwrite_bank(0xb8000, 0xbbfff, 0, "dram1_1c000"); - - membank("dram1_0000")->set_base(memptr + 0x20000); - membank("dram1_4000")->set_base(memptr + 0x24000); - membank("dram1_8000")->set_base(memptr + 0x28000); - membank("dram1_c000")->set_base(memptr + 0x2c000); - membank("dram1_10000")->set_base(memptr + 0x30000); - membank("dram1_14000")->set_base(memptr + 0x34000); - membank("dram1_18000")->set_base(memptr + 0x38000); - membank("dram1_1c000")->set_base(memptr + 0x3c000); + dspace.install_ram(0x4000, 0x7fff, 0, memptr + 0x24000); + dspace.install_ram(0x1c000, 0x1ffff, 0, memptr + 0x20000); + dspace.install_ram(0x2c000, 0x2ffff, 0, memptr + 0x20000); + dspace.install_ram(0x88000, 0x8bfff, 0, memptr + 0x2c000); + dspace.install_ram(0x8c000, 0x8ffff, 0, memptr + 0x30000); + dspace.install_ram(0x98000, 0x9bfff, 0, memptr + 0x2c000); + dspace.install_ram(0x9c000, 0x9ffff, 0, memptr + 0x30000); + dspace.install_ram(0xa8000, 0xabfff, 0, memptr + 0x24000); + dspace.install_ram(0xac000, 0xaffff, 0, memptr + 0x28000); + dspace.install_ram(0xb0000, 0xb3fff, 0, memptr + 0x34000); + dspace.install_ram(0xb4000, 0xb7fff, 0, memptr + 0x38000); + dspace.install_ram(0xb8000, 0xbbfff, 0, memptr + 0x3c000); if (m_memsize > 256 * 1024) { /* DRAM2, 128K */ @@ -594,14 +567,14 @@ void m20_state::install_memory() map( 0xd4000, 0xd7fff ).ram().share("dram2_18000"); map( 0xd8000, 0xdbfff ).ram().share("dram2_1c000"); */ - pspace.install_readwrite_bank(0xbc000, 0xbffff, 0, "dram2_0000"); - pspace.install_readwrite_bank(0xc0000, 0xc3fff, 0, "dram2_4000"); - pspace.install_readwrite_bank(0xc4000, 0xc7fff, 0, "dram2_8000"); - pspace.install_readwrite_bank(0xc8000, 0xcbfff, 0, "dram2_c000"); - pspace.install_readwrite_bank(0xcc000, 0xcffff, 0, "dram2_10000"); - pspace.install_readwrite_bank(0xd0000, 0xd3fff, 0, "dram2_14000"); - pspace.install_readwrite_bank(0xd4000, 0xd7fff, 0, "dram2_18000"); - pspace.install_readwrite_bank(0xd8000, 0xdbfff, 0, "dram2_1c000"); + pspace.install_ram(0xbc000, 0xbffff, 0, memptr + 0x40000); + pspace.install_ram(0xc0000, 0xc3fff, 0, memptr + 0x44000); + pspace.install_ram(0xc4000, 0xc7fff, 0, memptr + 0x48000); + pspace.install_ram(0xc8000, 0xcbfff, 0, memptr + 0x4c000); + pspace.install_ram(0xcc000, 0xcffff, 0, memptr + 0x50000); + pspace.install_ram(0xd0000, 0xd3fff, 0, memptr + 0x54000); + pspace.install_ram(0xd4000, 0xd7fff, 0, memptr + 0x58000); + pspace.install_ram(0xd8000, 0xdbfff, 0, memptr + 0x5c000); /* data map( 0x08000, 0x0bfff ).ram().share("dram2_0000"); @@ -618,25 +591,16 @@ void m20_state::install_memory() map( 0xd4000, 0xd7fff ).ram().share("dram2_18000"); map( 0xd8000, 0xdbfff ).ram().share("dram2_1c000"); */ - dspace.install_readwrite_bank(0x8000, 0xbfff, 0, "dram2_0000"); - dspace.install_readwrite_bank(0xc000, 0xffff, 0, "dram2_4000"); - dspace.install_readwrite_bank(0xbc000, 0xbffff, 0, "dram2_0000"); - dspace.install_readwrite_bank(0xc0000, 0xc3fff, 0, "dram2_4000"); - dspace.install_readwrite_bank(0xc4000, 0xc7fff, 0, "dram2_8000"); - dspace.install_readwrite_bank(0xc8000, 0xcbfff, 0, "dram2_c000"); - dspace.install_readwrite_bank(0xcc000, 0xcffff, 0, "dram2_10000"); - dspace.install_readwrite_bank(0xd0000, 0xd3fff, 0, "dram2_14000"); - dspace.install_readwrite_bank(0xd4000, 0xd7fff, 0, "dram2_18000"); - dspace.install_readwrite_bank(0xd8000, 0xdbfff, 0, "dram2_1c000"); - - membank("dram2_0000")->set_base(memptr + 0x40000); - membank("dram2_4000")->set_base(memptr + 0x44000); - membank("dram2_8000")->set_base(memptr + 0x48000); - membank("dram2_c000")->set_base(memptr + 0x4c000); - membank("dram2_10000")->set_base(memptr + 0x50000); - membank("dram2_14000")->set_base(memptr + 0x54000); - membank("dram2_18000")->set_base(memptr + 0x58000); - membank("dram2_1c000")->set_base(memptr + 0x5c000); + dspace.install_ram(0x8000, 0xbfff, 0, memptr + 0x40000); + dspace.install_ram(0xc000, 0xffff, 0, memptr + 0x44000); + dspace.install_ram(0xbc000, 0xbffff, 0, memptr + 0x40000); + dspace.install_ram(0xc0000, 0xc3fff, 0, memptr + 0x44000); + dspace.install_ram(0xc4000, 0xc7fff, 0, memptr + 0x48000); + dspace.install_ram(0xc8000, 0xcbfff, 0, memptr + 0x4c000); + dspace.install_ram(0xcc000, 0xcffff, 0, memptr + 0x50000); + dspace.install_ram(0xd0000, 0xd3fff, 0, memptr + 0x54000); + dspace.install_ram(0xd4000, 0xd7fff, 0, memptr + 0x58000); + dspace.install_ram(0xd8000, 0xdbfff, 0, memptr + 0x5c000); } if (m_memsize > 384 * 1024) { /* DRAM3, 128K */ @@ -654,15 +618,15 @@ void m20_state::install_memory() map( 0xf8000, 0xfbfff ).ram().share("dram3_1c000"); map( 0xfc000, 0xfffff ).ram().share("dram3_0000"); */ - pspace.install_readwrite_bank(0xdc000, 0xdffff, 0, "dram3_0000"); - pspace.install_readwrite_bank(0xe0000, 0xe3fff, 0, "dram3_4000"); - pspace.install_readwrite_bank(0xe4000, 0xe7fff, 0, "dram3_8000"); - pspace.install_readwrite_bank(0xe8000, 0xebfff, 0, "dram3_c000"); - pspace.install_readwrite_bank(0xec000, 0xeffff, 0, "dram3_10000"); - pspace.install_readwrite_bank(0xf0000, 0xf3fff, 0, "dram3_14000"); - pspace.install_readwrite_bank(0xf4000, 0xf7fff, 0, "dram3_18000"); - pspace.install_readwrite_bank(0xf8000, 0xfbfff, 0, "dram3_1c000"); - pspace.install_readwrite_bank(0xfc000, 0xfffff, 0, "dram3_0000"); + pspace.install_ram(0xdc000, 0xdffff, 0, memptr + 0x60000); + pspace.install_ram(0xe0000, 0xe3fff, 0, memptr + 0x64000); + pspace.install_ram(0xe4000, 0xe7fff, 0, memptr + 0x68000); + pspace.install_ram(0xe8000, 0xebfff, 0, memptr + 0x6c000); + pspace.install_ram(0xec000, 0xeffff, 0, memptr + 0x70000); + pspace.install_ram(0xf0000, 0xf3fff, 0, memptr + 0x74000); + pspace.install_ram(0xf4000, 0xf7fff, 0, memptr + 0x78000); + pspace.install_ram(0xf8000, 0xfbfff, 0, memptr + 0x7c000); + pspace.install_ram(0xfc000, 0xfffff, 0, memptr + 0x60000); /* data map( 0x44000, 0x47fff ).ram().share("dram3_0000"); @@ -679,26 +643,17 @@ void m20_state::install_memory() map( 0xf8000, 0xfbfff ).ram().share("dram3_1c000"); map( 0xfc000, 0xfffff ).ram().share("dram3_0000"); */ - dspace.install_readwrite_bank(0x44000, 0x47fff, 0, "dram3_0000"); - dspace.install_readwrite_bank(0x48000, 0x4bfff, 0, "dram3_4000"); - dspace.install_readwrite_bank(0xdc000, 0xdffff, 0, "dram3_0000"); - dspace.install_readwrite_bank(0xe0000, 0xe3fff, 0, "dram3_4000"); - dspace.install_readwrite_bank(0xe4000, 0xe7fff, 0, "dram3_8000"); - dspace.install_readwrite_bank(0xe8000, 0xebfff, 0, "dram3_c000"); - dspace.install_readwrite_bank(0xec000, 0xeffff, 0, "dram3_10000"); - dspace.install_readwrite_bank(0xf0000, 0xf3fff, 0, "dram3_14000"); - dspace.install_readwrite_bank(0xf4000, 0xf7fff, 0, "dram3_18000"); - dspace.install_readwrite_bank(0xf8000, 0xfbfff, 0, "dram3_1c000"); - dspace.install_readwrite_bank(0xfc000, 0xfffff, 0, "dram3_0000"); - - membank("dram3_0000")->set_base(memptr + 0x60000); - membank("dram3_4000")->set_base(memptr + 0x64000); - membank("dram3_8000")->set_base(memptr + 0x68000); - membank("dram3_c000")->set_base(memptr + 0x6c000); - membank("dram3_10000")->set_base(memptr + 0x70000); - membank("dram3_14000")->set_base(memptr + 0x74000); - membank("dram3_18000")->set_base(memptr + 0x78000); - membank("dram3_1c000")->set_base(memptr + 0x7c000); + dspace.install_ram(0x44000, 0x47fff, 0, memptr + 0x60000); + dspace.install_ram(0x48000, 0x4bfff, 0, memptr + 0x64000); + dspace.install_ram(0xdc000, 0xdffff, 0, memptr + 0x60000); + dspace.install_ram(0xe0000, 0xe3fff, 0, memptr + 0x64000); + dspace.install_ram(0xe4000, 0xe7fff, 0, memptr + 0x68000); + dspace.install_ram(0xe8000, 0xebfff, 0, memptr + 0x6c000); + dspace.install_ram(0xec000, 0xeffff, 0, memptr + 0x70000); + dspace.install_ram(0xf0000, 0xf3fff, 0, memptr + 0x74000); + dspace.install_ram(0xf4000, 0xf7fff, 0, memptr + 0x78000); + dspace.install_ram(0xf8000, 0xfbfff, 0, memptr + 0x7c000); + dspace.install_ram(0xfc000, 0xfffff, 0, memptr + 0x60000); } } } diff --git a/src/mame/drivers/m5.cpp b/src/mame/drivers/m5.cpp index 55f8679a087..d8511f08f7d 100644 --- a/src/mame/drivers/m5.cpp +++ b/src/mame/drivers/m5.cpp @@ -560,10 +560,10 @@ void m5_state::mem64KBF_w(uint8_t data) //out 0x30 membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); break; case 1: - program.install_write_bank(0x0000,0x1fff,"bank1w"); - program.install_write_bank(0x2000,0x3fff,"bank2w"); - program.install_write_bank(0x4000,0x5fff,"bank3w"); - program.install_write_bank(0x6000,0x6fff,"bank4w"); + program.install_write_bank(0x0000,0x1fff,membank("bank1w")); + program.install_write_bank(0x2000,0x3fff,membank("bank2w")); + program.install_write_bank(0x4000,0x5fff,membank("bank3w")); + program.install_write_bank(0x6000,0x6fff,membank("bank4w")); membank("bank1r")->set_base(ram_region->base()+0x0000); membank("bank1w")->set_base(ram_region->base()+0x0000); membank("bank2r")->set_base(ram_region->base()+0x2000); membank("bank2w")->set_base(ram_region->base()+0x2000); membank("bank3r")->set_base(ram_region->base()+0x4000); membank("bank3w")->set_base(ram_region->base()+0x4000); @@ -572,10 +572,10 @@ void m5_state::mem64KBF_w(uint8_t data) //out 0x30 membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); break; case 2: - program.install_write_bank(0x0000,0x1fff,"bank1w"); - program.install_write_bank(0x2000,0x3fff,"bank2w"); - program.install_write_bank(0x4000,0x5fff,"bank3w"); - program.install_write_bank(0x6000,0x6fff,"bank4w"); + program.install_write_bank(0x0000,0x1fff,membank("bank1w")); + program.install_write_bank(0x2000,0x3fff,membank("bank2w")); + program.install_write_bank(0x4000,0x5fff,membank("bank3w")); + program.install_write_bank(0x6000,0x6fff,membank("bank4w")); membank("bank1r")->set_base(memregion(Z80_TAG)->base()); membank("bank1w")->set_base(ram_region->base()+0x0000); membank("bank2r")->set_base(ram_region->base()+0x2000); membank("bank2w")->set_base(ram_region->base()+0x2000); membank("bank3r")->set_base(ram_region->base()+0x4000); membank("bank3w")->set_base(ram_region->base()+0x4000); @@ -594,8 +594,8 @@ void m5_state::mem64KBF_w(uint8_t data) //out 0x30 break; case 4: program.unmap_write(0x0000, 0x3fff); - program.install_write_bank(0x4000,0x5fff,"bank3w"); - program.install_write_bank(0x6000,0x6fff,"bank4w"); + program.install_write_bank(0x4000,0x5fff,membank("bank3w")); + program.install_write_bank(0x6000,0x6fff,membank("bank4w")); membank("bank1r")->set_base(ram_region->base()+0x0000); membank("bank2r")->set_base(ram_region->base()+0x2000); membank("bank3r")->set_base(ram_region->base()+0x4000); membank("bank3w")->set_base(ram_region->base()+0x4000); @@ -604,10 +604,10 @@ void m5_state::mem64KBF_w(uint8_t data) //out 0x30 membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); break; case 5: - program.install_write_bank(0x0000,0x1fff,"bank1w"); - program.install_write_bank(0x2000,0x3fff,"bank2w"); - program.install_write_bank(0x4000,0x5fff,"bank3w"); - program.install_write_bank(0x6000,0x6fff,"bank4w"); + program.install_write_bank(0x0000,0x1fff,membank("bank1w")); + program.install_write_bank(0x2000,0x3fff,membank("bank2w")); + program.install_write_bank(0x4000,0x5fff,membank("bank3w")); + program.install_write_bank(0x6000,0x6fff,membank("bank4w")); membank("bank1r")->set_base(memregion(Z80_TAG)->base()); membank("bank1w")->set_base(ram_region->base()+0x0000); membank("bank2r")->set_base(m_cart_rom->base()); membank("bank2w")->set_base(ram_region->base()+0x2000); membank("bank3r")->set_base(m_cart_rom->base()+0x2000); membank("bank3w")->set_base(ram_region->base()+0x4000); @@ -616,10 +616,10 @@ void m5_state::mem64KBF_w(uint8_t data) //out 0x30 membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); break; case 6: - program.install_write_bank(0x0000,0x1fff,"bank1w"); - program.install_write_bank(0x2000,0x3fff,"bank2w"); - program.install_write_bank(0x4000,0x5fff,"bank3w"); - program.install_write_bank(0x6000,0x6fff,"bank4w"); + program.install_write_bank(0x0000,0x1fff,membank("bank1w")); + program.install_write_bank(0x2000,0x3fff,membank("bank2w")); + program.install_write_bank(0x4000,0x5fff,membank("bank3w")); + program.install_write_bank(0x6000,0x6fff,membank("bank4w")); membank("bank1r")->set_base(memregion(Z80_TAG)->base()); membank("bank1w")->set_base(ram_region->base()+0x0000); membank("bank2r")->set_base(rom_region->base()+0x0000); membank("bank2w")->set_base(ram_region->base()+0x2000); membank("bank3r")->set_base(rom_region->base()+0x2000); membank("bank3w")->set_base(ram_region->base()+0x4000); @@ -628,11 +628,11 @@ void m5_state::mem64KBF_w(uint8_t data) //out 0x30 membank("bank6r")->set_base(ram_region->base()+0xc000); membank("bank6w")->set_base(ram_region->base()+0xc000); break; case 7: //probably this won't work - it should redirect rw to another ram module - program.install_write_bank(0x0000,0x1fff,"bank1w"); - program.install_write_bank(0x2000,0x3fff,"bank2w"); - program.install_write_bank(0x4000,0x5fff,"bank3w"); - program.install_write_bank(0x6000,0x6fff,"bank4w"); - program.install_readwrite_bank(0x7000,0x7fff,"sram"); + program.install_write_bank(0x0000,0x1fff,membank("bank1w")); + program.install_write_bank(0x2000,0x3fff,membank("bank2w")); + program.install_write_bank(0x4000,0x5fff,membank("bank3w")); + program.install_write_bank(0x6000,0x6fff,membank("bank4w")); + program.install_readwrite_bank(0x7000,0x7fff,membank("sram")); membank("bank1r")->set_base(rom_region->base()+0x0000); membank("bank1w")->set_base(rom_region->base()+0x0000); membank("bank2r")->set_base(rom_region->base()+0x2000); membank("bank2w")->set_base(rom_region->base()+0x2000); membank("bank3r")->set_base(rom_region->base()+0x4000); membank("bank3w")->set_base(rom_region->base()+0x4000); @@ -1135,13 +1135,13 @@ void brno_state::romsel_w(uint8_t data) //out 6c else { - program.install_readwrite_bank(0x0000, 0x0fff, "bank1"); - program.install_readwrite_bank(0x1000, 0x1fff, "bank2"); - program.install_readwrite_bank(0x2000, 0x2fff, "bank3"); - program.install_readwrite_bank(0x3000, 0x3fff, "bank4"); - program.install_readwrite_bank(0x4000, 0x4fff, "bank5"); - program.install_readwrite_bank(0x5000, 0x5fff, "bank6"); - program.install_readwrite_bank(0x6000, 0x6fff, "bank7"); + program.install_readwrite_bank(0x0000, 0x0fff, membank("bank1")); + program.install_readwrite_bank(0x1000, 0x1fff, membank("bank2")); + program.install_readwrite_bank(0x2000, 0x2fff, membank("bank3")); + program.install_readwrite_bank(0x3000, 0x3fff, membank("bank4")); + program.install_readwrite_bank(0x4000, 0x4fff, membank("bank5")); + program.install_readwrite_bank(0x5000, 0x5fff, membank("bank6")); + program.install_readwrite_bank(0x6000, 0x6fff, membank("bank7")); m_romen=false; } diff --git a/src/mame/drivers/m72.cpp b/src/mame/drivers/m72.cpp index cbadd1ba762..7e1098f0482 100644 --- a/src/mame/drivers/m72.cpp +++ b/src/mame/drivers/m72.cpp @@ -648,10 +648,9 @@ void m72_state::install_protection_handler(const u8 *code,const u8 *crc) m_protection_ram = std::make_unique<u16[]>(0x1000/2); m_protection_code = code; m_protection_crc = crc; - m_maincpu->space(AS_PROGRAM).install_read_bank(0xb0000, 0xb0fff, "bank1"); + m_maincpu->space(AS_PROGRAM).install_rom(0xb0000, 0xb0fff, m_protection_ram.get()); m_maincpu->space(AS_PROGRAM).install_read_handler(0xb0ffa, 0xb0ffb, read16s_delegate(*this, FUNC(m72_state::protection_r))); m_maincpu->space(AS_PROGRAM).install_write_handler(0xb0000, 0xb0fff, write16s_delegate(*this, FUNC(m72_state::protection_w))); - membank("bank1")->configure_entry(0, m_protection_ram.get()); save_pointer(NAME(m_protection_ram), 0x1000/2); } @@ -802,7 +801,7 @@ void m72_state::dbreedm72_map(address_map &map) void m72_state::m81_cpu1_common_map(address_map &map) { map(0x00000, 0x7ffff).rom(); - map(0xb0ffe, 0xb0fff).writeonly(); /* leftover from protection?? */ + map(0xb0ffe, 0xb0fff).nopw(); /* leftover from protection?? */ map(0xc0000, 0xc03ff).ram().share("spriteram"); map(0xc8000, 0xc8bff).rw(FUNC(m72_state::palette_r<0>), FUNC(m72_state::palette_w<0>)).share("paletteram1"); map(0xcc000, 0xccbff).rw(FUNC(m72_state::palette_r<1>), FUNC(m72_state::palette_w<1>)).share("paletteram2"); @@ -835,7 +834,7 @@ void m72_state::m84_cpu1_common_map(address_map &map) map(0xb0000, 0xb0001).w(FUNC(m72_state::irq_line_w)); map(0xb4000, 0xb4001).nopw(); /* ??? */ map(0xbc000, 0xbc000).w(FUNC(m72_state::dmaon_w)); - map(0xb0ffe, 0xb0fff).writeonly(); /* leftover from protection?? */ + map(0xb0ffe, 0xb0fff).nopw(); /* leftover from protection?? */ map(0xc0000, 0xc03ff).ram().share("spriteram"); map(0xe0000, 0xe3fff).ram(); /* work RAM */ map(0xffff0, 0xfffff).rom(); @@ -881,7 +880,7 @@ void m72_state::m82_map(address_map &map) map(0xcc000, 0xccbff).rw(FUNC(m72_state::palette_r<0>), FUNC(m72_state::palette_w<0>)).share("paletteram1"); map(0xd0000, 0xd3fff).ram(); /* work RAM */ map(0xe0000, 0xe0001).w(FUNC(m72_state::irq_line_w)); - map(0xe4000, 0xe4001).writeonly(); /* playfield enable? 1 during screen transitions, 0 otherwise */ + map(0xe4000, 0xe4001).nopw(); /* playfield enable? 1 during screen transitions, 0 otherwise */ map(0xec000, 0xec000).w(FUNC(m72_state::dmaon_w)); map(0xffff0, 0xfffff).rom(); } diff --git a/src/mame/drivers/macprtb.cpp b/src/mame/drivers/macprtb.cpp index 37b157418bc..db39bdc4c6c 100644 --- a/src/mame/drivers/macprtb.cpp +++ b/src/mame/drivers/macprtb.cpp @@ -364,8 +364,7 @@ uint16_t macportable_state::rom_switch_r(offs_t offset) void *memory_data = m_ram->pointer(); offs_t memory_mirror = memory_end & ~memory_end; - space.install_readwrite_bank(0x00000000, memory_end & ~memory_mirror, memory_mirror, "bank1"); - membank("bank1")->set_base(memory_data); + space.install_ram(0x00000000, memory_end & ~memory_mirror, memory_mirror, memory_data); m_overlay = false; } } diff --git a/src/mame/drivers/macpwrbk030.cpp b/src/mame/drivers/macpwrbk030.cpp index ab276e5e149..de727ba4c30 100644 --- a/src/mame/drivers/macpwrbk030.cpp +++ b/src/mame/drivers/macpwrbk030.cpp @@ -347,8 +347,7 @@ void macpb030_state::machine_reset() offs_t memory_mirror = memory_end & ~(memory_size - 1); space.unmap_write(0x00000000, memory_end); - space.install_read_bank(0x00000000, memory_end & ~memory_mirror, memory_mirror, "bank1"); - membank("bank1")->set_base(m_rom_ptr); + space.install_rom(0x00000000, memory_end & ~memory_mirror, memory_mirror, m_rom_ptr); // start 60.15 Hz timer m_6015_timer->adjust(attotime::from_hz(60.15), 0, attotime::from_hz(60.15)); @@ -505,8 +504,7 @@ u32 macpb030_state::rom_switch_r(offs_t offset) void *memory_data = m_ram->pointer(); offs_t memory_mirror = memory_end & ~memory_end; - space.install_readwrite_bank(0x00000000, memory_end & ~memory_mirror, memory_mirror, "bank1"); - membank("bank1")->set_base(memory_data); + space.install_ram(0x00000000, memory_end & ~memory_mirror, memory_mirror, memory_data); m_overlay = false; } diff --git a/src/mame/drivers/macquadra700.cpp b/src/mame/drivers/macquadra700.cpp index 716dbfebcc4..87ff29c9005 100644 --- a/src/mame/drivers/macquadra700.cpp +++ b/src/mame/drivers/macquadra700.cpp @@ -255,8 +255,7 @@ void macquadra_state::machine_reset() offs_t memory_mirror = memory_end & ~(memory_size - 1); space.unmap_write(0x00000000, memory_end); - space.install_read_bank(0x00000000, memory_end & ~memory_mirror, memory_mirror, "bank1"); - membank("bank1")->set_base(m_rom_ptr); + space.install_rom(0x00000000, memory_end & ~memory_mirror, memory_mirror, m_rom_ptr); // start 60.15 Hz timer m_6015_timer->adjust(attotime::from_hz(60.15), 0, attotime::from_hz(60.15)); @@ -704,8 +703,7 @@ uint32_t macquadra_state::rom_switch_r(offs_t offset) void *memory_data = m_ram->pointer(); offs_t memory_mirror = memory_end & ~memory_end; - space.install_readwrite_bank(0x00000000, memory_end & ~memory_mirror, memory_mirror, "bank1"); - membank("bank1")->set_base(memory_data); + space.install_ram(0x00000000, memory_end & ~memory_mirror, memory_mirror, memory_data); m_overlay = false; } diff --git a/src/mame/drivers/magtouch.cpp b/src/mame/drivers/magtouch.cpp index d207f6e01c7..169eff9b4ec 100644 --- a/src/mame/drivers/magtouch.cpp +++ b/src/mame/drivers/magtouch.cpp @@ -145,7 +145,7 @@ void magtouch_state::magtouch_map(address_map &map) map(0x000c0000, 0x000c7fff).rom().region("video_bios", 0); map(0x000d0000, 0x000d1fff).ram().share("nvram"); map(0x000d8000, 0x000dffff).bankr("rombank"); - map(0x000f0000, 0x000fffff).ram().region("bios", 0); + map(0x000f0000, 0x000fffff).rom().region("bios", 0); map(0xffff0000, 0xffffffff).rom().region("bios", 0); } diff --git a/src/mame/drivers/mbc200.cpp b/src/mame/drivers/mbc200.cpp index 64e89698e6b..bf5a117db4c 100644 --- a/src/mame/drivers/mbc200.cpp +++ b/src/mame/drivers/mbc200.cpp @@ -166,8 +166,8 @@ void mbc200_state::main_io(address_map &map) void mbc200_state::sub_mem(address_map &map) { map.unmap_value_high(); - map(0x0000, 0x2fff).rom(); - map(0x3000, 0x7fff).ram(); + map(0x0000, 0x1fff).rom(); + map(0x2000, 0x7fff).ram(); map(0x8000, 0xffff).ram().share("vram"); } diff --git a/src/mame/drivers/mbc55x.cpp b/src/mame/drivers/mbc55x.cpp index 8389e69c5a4..02015cfb30e 100644 --- a/src/mame/drivers/mbc55x.cpp +++ b/src/mame/drivers/mbc55x.cpp @@ -194,7 +194,7 @@ void mbc55x_state::set_ram_size() if(bankno<nobanks) { membank(bank)->set_base(map_base); - space.install_readwrite_bank(bank_base, bank_base+(RAM_BANK_SIZE-1), bank); + space.install_readwrite_bank(bank_base, bank_base+(RAM_BANK_SIZE-1), membank(bank)); logerror("Mapping bank %d at %05X to RAM\n",bankno,bank_base); } else @@ -206,9 +206,9 @@ void mbc55x_state::set_ram_size() // Graphics red and blue plane memory mapping, green is in main memory membank(RED_PLANE_TAG)->set_base(&m_video_mem[RED_PLANE_OFFSET]); - space.install_readwrite_bank(RED_PLANE_MEMBASE, RED_PLANE_MEMBASE+(COLOUR_PLANE_SIZE-1), RED_PLANE_TAG); + space.install_readwrite_bank(RED_PLANE_MEMBASE, RED_PLANE_MEMBASE+(COLOUR_PLANE_SIZE-1), membank(RED_PLANE_TAG)); membank(BLUE_PLANE_TAG)->set_base(&m_video_mem[BLUE_PLANE_OFFSET]); - space.install_readwrite_bank(BLUE_PLANE_MEMBASE, BLUE_PLANE_MEMBASE+(COLOUR_PLANE_SIZE-1), BLUE_PLANE_TAG); + space.install_readwrite_bank(BLUE_PLANE_MEMBASE, BLUE_PLANE_MEMBASE+(COLOUR_PLANE_SIZE-1), membank(BLUE_PLANE_TAG)); } void mbc55x_state::machine_reset() diff --git a/src/mame/drivers/mc1000.cpp b/src/mame/drivers/mc1000.cpp index 1e8f05d6f22..15d3208329f 100644 --- a/src/mame/drivers/mc1000.cpp +++ b/src/mame/drivers/mc1000.cpp @@ -68,7 +68,8 @@ public: m_y(*this, "Y%u", 0), m_joy(*this, "JOY%u", 0), m_modifiers(*this, "MODIFIERS"), - m_joykeymap(*this, "JOYKEYMAP%u", 0) + m_joykeymap(*this, "JOYKEYMAP%u", 0), + m_banks(*this, "bank%u", 1U) { } void mc1000(machine_config &config); @@ -87,6 +88,7 @@ private: required_ioport_array<2> m_joy; required_ioport m_modifiers; required_ioport_array<2> m_joykeymap; + required_memory_bank_array<5> m_banks; std::unique_ptr<uint8_t[]> m_banked_ram; @@ -139,12 +141,12 @@ void mc1000_state::bankswitch() address_space &program = m_maincpu->space(AS_PROGRAM); /* MC6845 video RAM */ - membank("bank2")->set_entry(m_mc6845_bank); + m_banks[1]->set_entry(m_mc6845_bank); /* extended RAM */ if (m_ram->size() > 16*1024) { - program.install_readwrite_bank(0x4000, 0x7fff, "bank3"); + program.install_readwrite_bank(0x4000, 0x7fff, m_banks[2]); } else { @@ -156,7 +158,7 @@ void mc1000_state::bankswitch() { if (m_ram->size() > 16*1024) { - program.install_readwrite_bank(0x8000, 0x97ff, "bank4"); + program.install_readwrite_bank(0x8000, 0x97ff, m_banks[3]); } else { @@ -165,15 +167,15 @@ void mc1000_state::bankswitch() } else { - program.install_readwrite_bank(0x8000, 0x97ff, "bank4"); + program.install_readwrite_bank(0x8000, 0x97ff, m_banks[3]); } - membank("bank4")->set_entry(m_mc6847_bank); + m_banks[3]->set_entry(m_mc6847_bank); /* extended RAM */ if (m_ram->size() > 16*1024) { - program.install_readwrite_bank(0x9800, 0xbfff, "bank5"); + program.install_readwrite_bank(0x9800, 0xbfff, m_banks[4]); } else { @@ -443,7 +445,7 @@ uint8_t mc1000_state::keydata_r() uint8_t mc1000_state::rom_banking_r(offs_t offset) { - membank("bank1")->set_entry(0); + m_banks[0]->set_entry(0); m_rom0000 = 0; return m_rom->base()[offset]; } @@ -455,27 +457,27 @@ void mc1000_state::machine_start() /* setup memory banking */ m_banked_ram = make_unique_clear<uint8_t[]>(0xc000); - membank("bank1")->configure_entry(0, m_banked_ram.get()); - membank("bank1")->configure_entry(1, m_rom->base()); - membank("bank1")->set_entry(1); + m_banks[0]->configure_entry(0, m_banked_ram.get()); + m_banks[0]->configure_entry(1, m_rom->base()); + m_banks[0]->set_entry(1); m_rom0000 = 1; m_mc6845_bank = 0; m_mc6847_bank = 0; - membank("bank2")->configure_entry(0, m_banked_ram.get() + 0x2000); - membank("bank2")->configure_entry(1, m_mc6845_video_ram); - membank("bank2")->set_entry(0); + m_banks[1]->configure_entry(0, m_banked_ram.get() + 0x2000); + m_banks[1]->configure_entry(1, m_mc6845_video_ram); + m_banks[1]->set_entry(0); - membank("bank3")->configure_entry(0, m_banked_ram.get() + 0x4000); - membank("bank3")->set_entry(0); + m_banks[2]->configure_entry(0, m_banked_ram.get() + 0x4000); + m_banks[2]->set_entry(0); - membank("bank4")->configure_entry(0, m_mc6847_video_ram); - membank("bank4")->configure_entry(1, m_banked_ram.get() + 0x8000); - membank("bank4")->set_entry(0); + m_banks[3]->configure_entry(0, m_mc6847_video_ram); + m_banks[3]->configure_entry(1, m_banked_ram.get() + 0x8000); + m_banks[3]->set_entry(0); - membank("bank5")->configure_entry(0, m_banked_ram.get() + 0x9800); - membank("bank5")->set_entry(0); + m_banks[4]->configure_entry(0, m_banked_ram.get() + 0x9800); + m_banks[4]->set_entry(0); bankswitch(); @@ -491,7 +493,7 @@ void mc1000_state::machine_start() void mc1000_state::machine_reset() { - membank("bank1")->set_entry(1); + m_banks[0]->set_entry(1); m_rom0000 = 1; } diff --git a/src/mame/drivers/mc1502.cpp b/src/mame/drivers/mc1502.cpp index 16fa9119e43..5d1864cc337 100644 --- a/src/mame/drivers/mc1502.cpp +++ b/src/mame/drivers/mc1502.cpp @@ -177,8 +177,7 @@ void mc1502_state::init_mc1502() { address_space &program = m_maincpu->space(AS_PROGRAM); - program.install_readwrite_bank(0, m_ram->size() - 1, "bank10"); - membank("bank10")->set_base(m_ram->pointer()); + program.install_ram(0, m_ram->size() - 1, m_ram->pointer()); } MACHINE_START_MEMBER(mc1502_state, mc1502) diff --git a/src/mame/drivers/mcr.cpp b/src/mame/drivers/mcr.cpp index 83343b2d718..05211988fb1 100644 --- a/src/mame/drivers/mcr.cpp +++ b/src/mame/drivers/mcr.cpp @@ -715,6 +715,24 @@ void mcr_state::cpu_90009_portmap(address_map &map) map(0xf0, 0xf3).rw(m_ctc, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write)); } +void mcr_state::cpu_90009_dp_map(address_map &map) +{ + cpu_90009_map(map); + map(0x8000, 0x81ff).ram(); // meter ram, is it battery backed? +} + +void mcr_state::cpu_90009_dp_portmap(address_map &map) +{ + cpu_90009_portmap(map); + map(0x24, 0x24).portr("P24"); + map(0x28, 0x28).portr("P28"); + map(0x2c, 0x2c).portr("P2C"); + + map(0x2c, 0x2c).w(FUNC(mcr_dpoker_state::lamps1_w)); + map(0x30, 0x30).w(FUNC(mcr_dpoker_state::lamps2_w)); + map(0x34, 0x34).w(FUNC(mcr_dpoker_state::output_w)); + map(0x3f, 0x3f).w(FUNC(mcr_dpoker_state::meters_w)); +} /************************************* @@ -1795,6 +1813,9 @@ void mcr_dpoker_state::mcr_90009_dp(machine_config &config) { mcr_90009(config); + m_maincpu->set_addrmap(AS_PROGRAM, &mcr_state::cpu_90009_dp_map); + m_maincpu->set_addrmap(AS_IO, &mcr_state::cpu_90009_dp_portmap); + /* basic machine hardware */ TIMER(config, "coinin").configure_generic(FUNC(mcr_dpoker_state::coin_in_callback)); TIMER(config, "hopper").configure_generic(FUNC(mcr_dpoker_state::hopper_callback)); @@ -2901,7 +2922,7 @@ void mcr_dpoker_state::init_dpoker() m_ssio->set_custom_input(0, 0x8e, *this, FUNC(mcr_dpoker_state::ip0_r)); // meter ram, is it battery backed? - m_maincpu->space(AS_PROGRAM).install_ram(0x8000, 0x81ff); + m_maincpu->space(AS_PROGRAM).install_ram(0x8000, 0x81ff, m_meter_ram); // extra I/O m_maincpu->space(AS_IO).install_read_port(0x24, 0x24, "P24"); diff --git a/src/mame/drivers/megadriv_acbl.cpp b/src/mame/drivers/megadriv_acbl.cpp index f4fb1909efb..f9e07c1f919 100644 --- a/src/mame/drivers/megadriv_acbl.cpp +++ b/src/mame/drivers/megadriv_acbl.cpp @@ -1042,11 +1042,8 @@ void md_boot_state::init_mk3mdb() void md_boot_state::init_ssf2mdb() { m_maincpu->space(AS_PROGRAM).nop_write(0xA130F0, 0xA130FF); // custom banking is disabled (!) - m_maincpu->space(AS_PROGRAM).install_read_bank(0x400000, 0x5fffff, "bank5"); + m_maincpu->space(AS_PROGRAM).install_rom(0x400000, 0x5fffff, memregion( "maincpu" )->base() + 0x400000); m_maincpu->space(AS_PROGRAM).unmap_write(0x400000, 0x5fffff); - - membank("bank5")->set_base(memregion( "maincpu" )->base() + 0x400000 ); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16sm_delegate(*this, FUNC(md_boot_state::dsw_r))); init_megadrij(); diff --git a/src/mame/drivers/megatech.cpp b/src/mame/drivers/megatech.cpp index 8d7d2e0ebbd..cd07e17998a 100644 --- a/src/mame/drivers/megatech.cpp +++ b/src/mame/drivers/megatech.cpp @@ -410,9 +410,6 @@ void mtech_state::set_genz80_as_md() { address_space &prg = m_z80snd->space(AS_PROGRAM); - prg.install_readwrite_bank(0x0000, 0x1fff, "bank1"); - machine().root_device().membank("bank1")->set_base(m_genz80.z80_prgram.get()); - prg.install_ram(0x0000, 0x1fff, m_genz80.z80_prgram.get()); prg.install_readwrite_handler(0x4000, 0x4003, read8sm_delegate(*m_ymsnd, FUNC(ym2612_device::read)), write8sm_delegate(*m_ymsnd, FUNC(ym2612_device::write))); diff --git a/src/mame/drivers/megazone.cpp b/src/mame/drivers/megazone.cpp index 10a5ce1fd5e..374e9960afa 100644 --- a/src/mame/drivers/megazone.cpp +++ b/src/mame/drivers/megazone.cpp @@ -148,7 +148,7 @@ void megazone_state::megazone_map(address_map &map) map(0x2800, 0x2bff).ram().share("colorram"); map(0x2c00, 0x2fff).ram().share("colorram2"); map(0x3000, 0x33ff).ram().share("spriteram"); - map(0x3800, 0x3fff).ram().share("share1"); + map(0x3800, 0x3fff).lrw8([this](offs_t off) { return m_share1[off]; }, "share_r", [this](offs_t off, u8 data) { m_share1[off] = data; }, "share_w"); map(0x4000, 0xffff).rom(); /* 4000->5FFF is a debug rom */ } diff --git a/src/mame/drivers/mhavoc.cpp b/src/mame/drivers/mhavoc.cpp index 0ec954af267..7fca46c96f7 100644 --- a/src/mame/drivers/mhavoc.cpp +++ b/src/mame/drivers/mhavoc.cpp @@ -288,7 +288,7 @@ void mhavoc_state::alpha_map(address_map &map) map(0x17c0, 0x17c0).w(FUNC(mhavoc_state::mhavoc_gamma_w)); /* Gamma Communication Write Port */ map(0x1800, 0x1fff).ram(); /* Shared Beta Ram */ map(0x2000, 0x3fff).bankr("bank2"); /* Paged Program ROM (32K) */ - map(0x4000, 0x4fff).ram().share("avg:vectorram").region("alpha", 0x4000); /* Vector Generator RAM */ + map(0x4000, 0x4fff).ram().share("avg:vectorram"); /* Vector Generator RAM */ map(0x5000, 0x7fff).rom(); /* Vector ROM */ map(0x8000, 0xffff).rom(); /* Program ROM (32K) */ } @@ -367,7 +367,7 @@ void mhavoc_state::alphaone_map(address_map &map) map(0x10e0, 0x10ff).nopr().writeonly().share("avg:colorram"); /* ColorRAM */ map(0x1800, 0x18ff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)); /* EEROM */ map(0x2000, 0x3fff).bankr("bank2"); /* Paged Program ROM (32K) */ - map(0x4000, 0x4fff).ram().share("avg:vectorram").region("alpha", 0x4000); /* Vector Generator RAM */ + map(0x4000, 0x4fff).ram().share("avg:vectorram"); /* Vector Generator RAM */ map(0x5000, 0x7fff).rom(); /* Vector ROM */ map(0x8000, 0xffff).rom(); /* Program ROM (32K) */ } diff --git a/src/mame/drivers/micronic.cpp b/src/mame/drivers/micronic.cpp index a27725ee614..3d5ed1bdcb6 100644 --- a/src/mame/drivers/micronic.cpp +++ b/src/mame/drivers/micronic.cpp @@ -184,7 +184,7 @@ void micronic_state::bank_select_w(uint8_t data) else { m_bank1->set_entry((data <= m_banks_num) ? data : m_banks_num); - m_maincpu->space(AS_PROGRAM).install_write_bank(0x0000, 0x7fff, "bank1"); + m_maincpu->space(AS_PROGRAM).install_write_bank(0x0000, 0x7fff, membank("bank1")); } } diff --git a/src/mame/drivers/midzeus.cpp b/src/mame/drivers/midzeus.cpp index 4f70df073d2..55dc42b86d7 100644 --- a/src/mame/drivers/midzeus.cpp +++ b/src/mame/drivers/midzeus.cpp @@ -764,7 +764,7 @@ void midzeus2_state::zeus2_map(address_map &map) map(0x9f0000, 0x9f7fff).rw(FUNC(midzeus2_state::zeus2_timekeeper_r), FUNC(midzeus2_state::zeus2_timekeeper_w)); map(0x9f8000, 0x9f8000).w(FUNC(midzeus2_state::cmos_protect_w)); map(0xa00000, 0xbfffff).rom().region("user1", 0); - map(0xc00000, 0xffffff).bankr("bank1").region("user2", 0); + map(0xc00000, 0xffffff).bankr("bank1"); } /* diff --git a/src/mame/drivers/model3.cpp b/src/mame/drivers/model3.cpp index 6c641709690..72c9612769d 100644 --- a/src/mame/drivers/model3.cpp +++ b/src/mame/drivers/model3.cpp @@ -1691,7 +1691,7 @@ void model3_state::daytona2_rombank_w(offs_t offset, uint64_t data, uint64_t mem data >>= 56; data = (~data) & 0xf; membank("bank1")->set_base(memregion( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ - membank("bank2")->set_base(memregion( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ + m_bank2->set_base(memregion( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ } } @@ -6156,7 +6156,7 @@ void model3_state::init_model3_10() m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc0000000, 0xc00000ff, read64s_delegate(*this, FUNC(model3_state::scsi_r)), write64s_delegate(*this, FUNC(model3_state::scsi_w))); - m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" ); + m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, membank("bank1") ); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64s_delegate(*this, FUNC(model3_state::mpc105_addr_r)), write64s_delegate(*this, FUNC(model3_state::mpc105_addr_w))); m_maincpu->space(AS_PROGRAM).install_read_handler(0xf0c00cf8, 0xf0c00cff, read64smo_delegate(*this, FUNC(model3_state::mpc105_data_r))); @@ -6167,7 +6167,7 @@ void model3_state::init_model3_10() void model3_state::init_model3_15() { interleave_vroms(); - m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1"); + m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, membank("bank1")); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64s_delegate(*this, FUNC(model3_state::mpc105_addr_r)), write64s_delegate(*this, FUNC(model3_state::mpc105_addr_w))); m_maincpu->space(AS_PROGRAM).install_read_handler(0xf0c00cf8, 0xf0c00cff, read64smo_delegate(*this, FUNC(model3_state::mpc105_data_r))); @@ -6178,7 +6178,7 @@ void model3_state::init_model3_15() void model3_state::init_model3_20() { interleave_vroms(); - m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" ); + m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, membank("bank1") ); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc2000000, 0xc20000ff, read64s_delegate(*this, FUNC(model3_state::real3d_dma_r)), write64s_delegate(*this, FUNC(model3_state::real3d_dma_w))); @@ -6247,7 +6247,7 @@ void model3_state::init_vs215() m_step15_with_mpc106 = true; interleave_vroms(); - m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" ); + m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, membank("bank1") ); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64s_delegate(*this, FUNC(model3_state::scsi_r)), write64s_delegate(*this, FUNC(model3_state::scsi_w))); @@ -6268,7 +6268,7 @@ void model3_state::init_vs29815() rom[(0x60290c^4)/4] = 0x60000000; interleave_vroms(); - m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" ); + m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, membank("bank1") ); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64s_delegate(*this, FUNC(model3_state::scsi_r)), write64s_delegate(*this, FUNC(model3_state::scsi_w))); @@ -6284,7 +6284,7 @@ void model3_state::init_bass() m_step15_with_mpc106 = true; interleave_vroms(); - m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" ); + m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, membank("bank1") ); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64s_delegate(*this, FUNC(model3_state::scsi_r)), write64s_delegate(*this, FUNC(model3_state::scsi_w))); @@ -6298,7 +6298,7 @@ void model3_state::init_bass() void model3_state::init_getbass() { interleave_vroms(); - m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" ); + m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, membank("bank1") ); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64s_delegate(*this, FUNC(model3_state::scsi_r)), write64s_delegate(*this, FUNC(model3_state::scsi_w))); @@ -6397,7 +6397,7 @@ void model3_state::init_daytona2() init_model3_20(); m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64s_delegate(*this, FUNC(model3_state::daytona2_rombank_w))); - m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2"); + m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, m_bank2); //rom[(0x68468c^4)/4] = 0x60000000; //rom[(0x6063c4^4)/4] = 0x60000000; @@ -6411,7 +6411,7 @@ void model3_state::init_dayto2pe() init_model3_20(); m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64s_delegate(*this, FUNC(model3_state::daytona2_rombank_w))); - m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2"); + m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, m_bank2); // rom[(0x606784^4)/4] = 0x60000000; // rom[(0x69a3fc^4)/4] = 0x60000000; // jump to encrypted code diff --git a/src/mame/drivers/monkey_king_3b.cpp b/src/mame/drivers/monkey_king_3b.cpp index e71f1545d46..3b959e84848 100644 --- a/src/mame/drivers/monkey_king_3b.cpp +++ b/src/mame/drivers/monkey_king_3b.cpp @@ -111,7 +111,7 @@ private: void mk3b_soc_state::map(address_map &map) { // 64MB external NOR flash - map(0x08000000, 0x0BFFFFFF).rom().share("norflash").region("norflash", 0x0);; + map(0x08000000, 0x0BFFFFFF).rom().share("norflash");; // unknown amount and configuration of internal RAM map(0x00000000, 0x0000FFFF).ram().share("iram0"); // This section of RAM seems to contain the stack diff --git a/src/mame/drivers/moo.cpp b/src/mame/drivers/moo.cpp index 1172ba131d3..b5e610326c2 100644 --- a/src/mame/drivers/moo.cpp +++ b/src/mame/drivers/moo.cpp @@ -343,7 +343,7 @@ void moo_state::moobl_map(address_map &map) map(0x0c4000, 0x0c4001).r(m_k053246, FUNC(k053247_device::k053246_r)); map(0x0ca000, 0x0ca01f).w(m_k054338, FUNC(k054338_device::word_w)); /* K054338 alpha blending engine */ map(0x0cc000, 0x0cc01f).w(m_k053251, FUNC(k053251_device::write)).umask16(0x00ff); - map(0x0d0000, 0x0d001f).writeonly(); /* CCU regs (ignored) */ + map(0x0d0000, 0x0d001f).nopw(); /* CCU regs (ignored) */ map(0x0d6ffc, 0x0d6ffd).w(FUNC(moo_state::moobl_oki_bank_w)); map(0x0d6fff, 0x0d6fff).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x0d8000, 0x0d8007).w(m_k056832, FUNC(k056832_device::b_word_w)); /* VSCCS regs */ diff --git a/src/mame/drivers/mpu4vid.cpp b/src/mame/drivers/mpu4vid.cpp index cea0f4ea8ad..0e3cfda6fcd 100644 --- a/src/mame/drivers/mpu4vid.cpp +++ b/src/mame/drivers/mpu4vid.cpp @@ -217,7 +217,7 @@ public: mpu4_state(mconfig, type, tag), m_videocpu(*this, "video"), m_scn2674(*this, "scn2674_vid"), - m_vid_vidram(*this, "vid_vidram"), + m_vid_vidram(*this, "vid_vidram", 0x20000, ENDIANNESS_BIG), m_vid_mainram(*this, "vid_mainram"), m_acia_0(*this, "acia6850_0"), m_acia_1(*this, "acia6850_1"), @@ -270,7 +270,7 @@ public: private: required_device<m68000_base_device> m_videocpu; optional_device<scn2674_device> m_scn2674; - optional_shared_ptr<uint16_t> m_vid_vidram; + memory_share_creator<uint16_t> m_vid_vidram; optional_shared_ptr<uint16_t> m_vid_mainram; required_device<acia6850_device> m_acia_0; required_device<acia6850_device> m_acia_1; @@ -500,8 +500,6 @@ void mpu4vid_state::mpu4_vid_vidram_w(offs_t offset, uint16_t data, uint16_t mem void mpu4vid_state::video_start() { - m_vid_vidram.allocate(0x20000/2); - memset(m_vid_vidram,0,0x20000); /* find first empty slot to decode gfx */ @@ -512,7 +510,7 @@ void mpu4vid_state::video_start() assert(m_gfx_index != MAX_GFX_ELEMENTS); /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(m_gfx_index+0, std::make_unique<gfx_element>(m_palette, mpu4_vid_char_8x8_layout, reinterpret_cast<uint8_t *>(m_vid_vidram.target()), NATIVE_ENDIAN_VALUE_LE_BE(8,0), m_palette->entries() / 16, 0)); + m_gfxdecode->set_gfx(m_gfx_index+0, std::make_unique<gfx_element>(m_palette, mpu4_vid_char_8x8_layout, reinterpret_cast<uint8_t *>(m_vid_vidram.ptr()), NATIVE_ENDIAN_VALUE_LE_BE(8,0), m_palette->entries() / 16, 0)); } EF9369_COLOR_UPDATE( mpu4vid_state::ef9369_color_update ) diff --git a/src/mame/drivers/mpz80.cpp b/src/mame/drivers/mpz80.cpp index c871167bd62..cc90d3b3a71 100644 --- a/src/mame/drivers/mpz80.cpp +++ b/src/mame/drivers/mpz80.cpp @@ -687,7 +687,6 @@ static void mpz80_s100_cards(device_slot_interface &device) void mpz80_state::machine_start() { - m_map_ram.allocate(0x200); } diff --git a/src/mame/drivers/mtouchxl.cpp b/src/mame/drivers/mtouchxl.cpp index d30bb16aff5..dd1a2d205b4 100644 --- a/src/mame/drivers/mtouchxl.cpp +++ b/src/mame/drivers/mtouchxl.cpp @@ -182,9 +182,7 @@ void mtxl_state::machine_start() if (m_ram->size() > 0xa0000) { offs_t ram_limit = 0x100000 + m_ram->size() - 0xa0000; - space.install_read_bank(0x100000, ram_limit - 1, "bank1"); - space.install_write_bank(0x100000, ram_limit - 1, "bank1"); - membank("bank1")->set_base(m_ram->pointer() + 0xa0000); + space.install_ram(0x100000, ram_limit - 1, m_ram->pointer() + 0xa0000); } #endif } diff --git a/src/mame/drivers/multigam.cpp b/src/mame/drivers/multigam.cpp index 1c451b4033f..43ceeed8699 100644 --- a/src/mame/drivers/multigam.cpp +++ b/src/mame/drivers/multigam.cpp @@ -123,7 +123,10 @@ public: m_ppu(*this, "ppu"), m_p1(*this, "P1"), m_p2(*this, "P2"), - m_dsw(*this, "DSW") + m_dsw(*this, "DSW"), + m_bank_gfx(*this, "bank_gfx"), + m_bank_ppu(*this, "bank_ppu_%u", 1U), + m_bank_ram(*this, "bank_ram") { } void multigam(machine_config &config); @@ -148,6 +151,9 @@ private: required_ioport m_p1; required_ioport m_p2; optional_ioport m_dsw; + memory_bank_creator m_bank_gfx; + memory_bank_array_creator<8> m_bank_ppu; + optional_memory_bank m_bank_ram; std::unique_ptr<uint8_t[]> m_nt_ram; std::unique_ptr<uint8_t[]> m_vram; @@ -273,8 +279,6 @@ uint8_t multigam_state::multigam_nt_r(offs_t offset) return m_nt_page[page][offset & 0x3ff]; } -static const char * const banknames[] = { "bank2", "bank3", "bank4", "bank5", "bank6", "bank7", "bank8", "bank9" }; - void multigam_state::set_videorom_bank( int start, int count, int bank, int bank_size_in_kb) { int i; @@ -283,7 +287,7 @@ void multigam_state::set_videorom_bank( int start, int count, int bank, int bank /* count determines the size of the area mapped in KB */ for (i = 0; i < count; i++, offset += 0x400) { - membank(banknames[i + start])->set_base(memregion("gfx1")->base() + offset); + m_bank_ppu[i + start]->set_base(memregion("gfx1")->base() + offset); } } @@ -295,7 +299,7 @@ void multigam_state::set_videoram_bank( int start, int count, int bank, int bank /* count determines the size of the area mapped in KB */ for (i = 0; i < count; i++, offset += 0x400) { - membank(banknames[i + start])->set_base(m_vram.get() + offset); + m_bank_ppu[i + start]->set_base(m_vram.get() + offset); } } @@ -384,7 +388,7 @@ void multigam_state::multigam_switch_prg_rom(uint8_t data) void multigam_state::multigam_switch_gfx_rom(uint8_t data) { - membank("bank1")->set_base(memregion("gfx1")->base() + (0x2000 * (data & 0x3f))); + m_bank_gfx->set_base(memregion("gfx1")->base() + (0x2000 * (data & 0x3f))); set_mirroring(data & 0x40 ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); m_game_gfx_bank = data; } @@ -394,7 +398,7 @@ void multigam_state::multigam_mapper2_w(offs_t offset, uint8_t data) { if (m_game_gfx_bank & 0x80) { - membank("bank1")->set_base(memregion("gfx1")->base() + (0x2000 * ((data & 0x3) + (m_game_gfx_bank & 0x3c)))); + m_bank_gfx->set_base(memregion("gfx1")->base() + (0x2000 * ((data & 0x3) + (m_game_gfx_bank & 0x3c)))); } else { @@ -577,11 +581,11 @@ void multigam_state::multigam3_mmc3_rom_switch_w(offs_t offset, uint8_t data) case 0x2001: /* enable ram at $6000 */ if (data & 0x80) { - membank("bank10")->set_base(m_multigmc_mmc3_6000_ram.get()); + m_bank_ram->set_base(m_multigmc_mmc3_6000_ram.get()); } else { - membank("bank10")->set_base(memregion("maincpu")->base() + 0x6000); + m_bank_ram->set_base(memregion("maincpu")->base() + 0x6000); } if (data & 0x40) { @@ -665,7 +669,7 @@ void multigam_state::multigm3_switch_prg_rom(address_space &space, uint8_t data) else { space.install_write_handler(0x8000, 0xffff, write8sm_delegate(*this, FUNC(multigam_state::multigm3_mapper2_w)) ); - membank("bank10")->set_base(memregion("maincpu")->base() + 0x6000); + m_bank_ram->set_base(memregion("maincpu")->base() + 0x6000); } if (data & 0x80) @@ -702,7 +706,7 @@ void multigam_state::multigm3_map(address_map &map) map(0x5003, 0x5003).w(FUNC(multigam_state::multigm3_switch_gfx_rom)); map(0x5000, 0x5ffe).rom(); map(0x5fff, 0x5fff).portr("IN0"); - map(0x6000, 0x7fff).bankrw("bank10"); + map(0x6000, 0x7fff).bankrw("bank_ram"); map(0x6fff, 0x6fff).nopw(); /* 0x00 in attract mode, 0xff during play */ map(0x8000, 0xffff).rom().w(FUNC(multigam_state::multigm3_mapper2_w)); } @@ -921,23 +925,16 @@ void multigam_state::supergm3_set_bank() m_supergm3_chr_bank == 0x40 ) { // VRAM - m_ppu->space(AS_PROGRAM).install_read_bank(0x0000, 0x1fff, "bank1"); - m_ppu->space(AS_PROGRAM).install_write_bank(0x0000, 0x1fff, "bank1"); - membank("bank1")->set_base(m_vram.get()); + m_ppu->space(AS_PROGRAM).install_readwrite_bank(0x0000, 0x1fff, m_bank_gfx); + m_bank_gfx->set_base(m_vram.get()); if (m_supergm3_chr_bank == 0x40) set_mirroring(PPU_MIRROR_VERT); } else { - m_ppu->space(AS_PROGRAM).install_read_bank(0x0000, 0x03ff, "bank2"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x0400, 0x07ff, "bank3"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x0800, 0x0bff, "bank4"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x0c00, 0x0fff, "bank5"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x1000, 0x13ff, "bank6"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x1400, 0x17ff, "bank7"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x1800, 0x1bff, "bank8"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x1c00, 0x1fff, "bank9"); + for(int i=0; i<8; i++) + m_ppu->space(AS_PROGRAM).install_read_bank(0x0000 + 0x400*i, 0x03ff + 0x400*i, m_bank_ppu[i]); m_ppu->space(AS_PROGRAM).unmap_write(0x0000, 0x1fff); set_videorom_bank(0, 8, 0, 8); @@ -948,7 +945,7 @@ void multigam_state::supergm3_set_bank() { // title screen memcpy(mem + 0x8000, mem + 0x18000, 0x8000); - membank("bank10")->set_base(mem + 0x6000); + m_bank_ram->set_base(mem + 0x6000); m_ppu->set_scanline_callback(nullptr); } else if ((m_supergm3_prg_bank & 0x40) == 0) @@ -1004,7 +1001,7 @@ void multigam_state::supergm3_map(address_map &map) map(0x5001, 0x5001).w(FUNC(multigam_state::supergm3_prg_bank_w)); map(0x5002, 0x5002).w(FUNC(multigam_state::supergm3_chr_bank_w)); map(0x5fff, 0x5fff).nopw(); - map(0x6000, 0x7fff).bankrw("bank10"); + map(0x6000, 0x7fff).bankrw("bank_ram"); map(0x8000, 0xffff).rom(); } @@ -1169,8 +1166,8 @@ void multigam_state::machine_start() m_nt_page[3] = m_nt_ram.get() + 0xc00; m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(*this, FUNC(multigam_state::multigam_nt_r)), write8sm_delegate(*this, FUNC(multigam_state::multigam_nt_w))); - m_ppu->space(AS_PROGRAM).install_read_bank(0x0000, 0x1fff, "bank1"); - membank("bank1")->set_base(memregion("gfx1")->base()); + m_ppu->space(AS_PROGRAM).install_read_bank(0x0000, 0x1fff, m_bank_gfx); + m_bank_gfx->set_base(memregion("gfx1")->base()); } MACHINE_START_MEMBER(multigam_state,multigm3) @@ -1182,15 +1179,8 @@ MACHINE_START_MEMBER(multigam_state,multigm3) m_nt_page[3] = m_nt_ram.get() + 0xc00; m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(*this, FUNC(multigam_state::multigam_nt_r)), write8sm_delegate(*this, FUNC(multigam_state::multigam_nt_w))); - - m_ppu->space(AS_PROGRAM).install_read_bank(0x0000, 0x03ff, "bank2"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x0400, 0x07ff, "bank3"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x0800, 0x0bff, "bank4"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x0c00, 0x0fff, "bank5"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x1000, 0x13ff, "bank6"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x1400, 0x17ff, "bank7"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x1800, 0x1bff, "bank8"); - m_ppu->space(AS_PROGRAM).install_read_bank(0x1c00, 0x1fff, "bank9"); + for(int i=0; i<8; i++) + m_ppu->space(AS_PROGRAM).install_read_bank(0x0000 + 0x400*i, 0x03ff + 0x400*i, m_bank_ppu[i]); set_videorom_bank(0, 8, 0, 8); } diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp index 1565d0f6983..89f92a09367 100644 --- a/src/mame/drivers/naomi.cpp +++ b/src/mame/drivers/naomi.cpp @@ -1746,7 +1746,7 @@ void naomi_state::eeprom_93c46a_w(uint64_t data) void naomi_state::naomi_map(address_map &map) { /* Area 0 */ - map(0x00000000, 0x001fffff).rom().region("maincpu", 0).share("rombase"); // BIOS + map(0x00000000, 0x001fffff).rom().region("maincpu", 0); // BIOS map(0x00200000, 0x00207fff).ram().share("sram"); map(0x005f6800, 0x005f69ff).mirror(0x02000000).rw(FUNC(naomi_state::dc_sysctrl_r), FUNC(naomi_state::dc_sysctrl_w)); @@ -1806,7 +1806,7 @@ void naomi2_state::both_pvr2_ta_w(address_space &space, offs_t offset, uint32_t void naomi2_state::naomi2_map(address_map &map) { /* Area 0 */ - map(0x00000000, 0x001fffff).rom().region("maincpu", 0).share("rombase"); // BIOS + map(0x00000000, 0x001fffff).rom().region("maincpu", 0); // BIOS map(0x00200000, 0x00207fff).ram().share("sram"); map(0x005f6800, 0x005f69ff).mirror(0x02000000).rw(FUNC(naomi2_state::dc_sysctrl_r), FUNC(naomi2_state::dc_sysctrl_w)); @@ -1982,8 +1982,8 @@ void atomiswave_state::aw_modem_w(offs_t offset, uint64_t data, uint64_t mem_mas void atomiswave_state::aw_map(address_map &map) { /* Area 0 */ - map(0x00000000, 0x0001ffff).rw(FUNC(atomiswave_state::aw_flash_r), FUNC(atomiswave_state::aw_flash_w)).region("awflash", 0); - map(0xa0000000, 0xa001ffff).rw(FUNC(atomiswave_state::aw_flash_r), FUNC(atomiswave_state::aw_flash_w)).region("awflash", 0); + map(0x00000000, 0x0001ffff).rw(FUNC(atomiswave_state::aw_flash_r), FUNC(atomiswave_state::aw_flash_w)); + map(0xa0000000, 0xa001ffff).rw(FUNC(atomiswave_state::aw_flash_r), FUNC(atomiswave_state::aw_flash_w)); map(0x00200000, 0x0021ffff).ram().share("sram"); // battery backed up RAM map(0x005f6800, 0x005f69ff).rw(FUNC(atomiswave_state::dc_sysctrl_r), FUNC(atomiswave_state::dc_sysctrl_w)); diff --git a/src/mame/drivers/nc.cpp b/src/mame/drivers/nc.cpp index f1e0e822cb6..fcfa62aae28 100644 --- a/src/mame/drivers/nc.cpp +++ b/src/mame/drivers/nc.cpp @@ -289,13 +289,6 @@ TIMER_CALLBACK_MEMBER(nc_state::nc_keyboard_timer_callback) m_keyboard_timer->reset(); } - -static const char *const nc_bankhandler_r[]={ -"bank1", "bank2", "bank3", "bank4"}; - -static const char *const nc_bankhandler_w[]={ -"bank5", "bank6", "bank7", "bank8"}; - void nc_state::nc_refresh_memory_bank_config(int bank) { address_space &space = m_maincpu->space(AS_PROGRAM); @@ -310,7 +303,7 @@ void nc_state::nc_refresh_memory_bank_config(int bank) mem_type = (m_memory_config[bank]>>6) & 0x03; mem_bank = m_memory_config[bank] & 0x03f; - space.install_read_bank((bank * 0x4000), (bank * 0x4000) + 0x3fff, nc_bankhandler_r[bank]); + space.install_read_bank((bank * 0x4000), (bank * 0x4000) + 0x3fff, m_bankhandler_r[bank]); switch (mem_type) { @@ -337,7 +330,7 @@ void nc_state::nc_refresh_memory_bank_config(int bank) membank(bank1)->set_base(ptr); membank(bank5)->set_base(ptr); - space.install_write_bank((bank * 0x4000), (bank * 0x4000) + 0x3fff, nc_bankhandler_w[bank]); + space.install_write_bank((bank * 0x4000), (bank * 0x4000) + 0x3fff, m_bankhandler_w[bank]); LOG("BANK %d: RAM\n",bank); } break; @@ -358,7 +351,7 @@ void nc_state::nc_refresh_memory_bank_config(int bank) { /* yes */ membank(bank5)->set_base(ptr); - space.install_write_bank((bank * 0x4000), (bank * 0x4000) + 0x3fff, nc_bankhandler_w[bank]); + space.install_write_bank((bank * 0x4000), (bank * 0x4000) + 0x3fff, m_bankhandler_w[bank]); } else { diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp index 9828656c9e3..d31735ceebe 100644 --- a/src/mame/drivers/neogeo.cpp +++ b/src/mame/drivers/neogeo.cpp @@ -1405,9 +1405,8 @@ void neogeo_base_state::set_slot_idx(int slot) space.install_rom(0x000080, 0x0fffff, (uint16_t *)m_slots[m_curr_slot]->get_rom_base() + 0x80/2); - space.install_read_bank(0x200000, 0x2fffff, "cartridge"); + space.install_read_bank(0x200000, 0x2fffff, m_bank_cartridge); space.install_write_handler(0x2ffff0, 0x2fffff, write16smo_delegate(*this, FUNC(neogeo_base_state::write_banksel))); - m_bank_cartridge = membank("cartridge"); init_cpu(); @@ -1694,7 +1693,7 @@ uint16_t neogeo_base_state::banked_vectors_r(offs_t offset) } else { - uint16_t* rom = (m_slots[m_curr_slot] && m_slots[m_curr_slot]->get_rom_size() > 0) ? m_slots[m_curr_slot]->get_rom_base() : (uint16_t*)m_region_maincpu->base(); + uint16_t* rom = (m_slots[m_curr_slot] && m_slots[m_curr_slot]->get_rom_size() > 0) ? m_slots[m_curr_slot]->get_rom_base() : m_region_maincpu ? (uint16_t*)m_region_maincpu->base() : m_share_maincpu; return rom[offset]; } } diff --git a/src/mame/drivers/neogeocd.cpp b/src/mame/drivers/neogeocd.cpp index 9cc22fe75be..0421088043b 100644 --- a/src/mame/drivers/neogeocd.cpp +++ b/src/mame/drivers/neogeocd.cpp @@ -887,7 +887,7 @@ void ngcd_state::neocd_main_map(address_map &map) { aes_base_main_map(map); - map(0x000000, 0x1fffff).ram().region("maincpu", 0x00000); + map(0x000000, 0x1fffff).ram().share("maincpu"); map(0x000000, 0x00007f).r(FUNC(ngcd_state::banked_vectors_r)); // writes will fall through to area above map(0x800000, 0x803fff).rw(FUNC(ngcd_state::memcard_r), FUNC(ngcd_state::memcard_w)); @@ -1089,9 +1089,6 @@ ROM_START( neocd ) ROM_SYSTEM_BIOS( 3, "unibios33", "Universe Bios (Hack, Ver. 3.3)" ) ROMX_LOAD("uni-bioscd33.rom", 0x00000, 0x80000, CRC(ff3abc59) SHA1(5142f205912869b673a71480c5828b1eaed782a8), ROM_GROUPWORD | ROM_REVERSE | ROM_BIOS(3)) - ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASE00 ) - /* 2MB of 68K RAM */ - ROM_REGION( 0x20000, "spritegen:zoomy", 0 ) ROM_LOAD( "000-lo.lo", 0x00000, 0x20000, CRC(5a86cff2) SHA1(5992277debadeb64d1c1c64b0a92d9293eaf7e4a) ) ROM_END @@ -1105,9 +1102,6 @@ ROM_START( neocdz ) ROM_SYSTEM_BIOS( 2, "unibios33", "Universe Bios (Hack, Ver. 3.3)" ) ROMX_LOAD("uni-bioscd33.rom", 0x00000, 0x80000, CRC(ff3abc59) SHA1(5142f205912869b673a71480c5828b1eaed782a8), ROM_GROUPWORD | ROM_REVERSE | ROM_BIOS(2)) - ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASE00 ) - /* 2MB of 68K RAM */ - ROM_REGION( 0x20000, "spritegen:zoomy", 0 ) ROM_LOAD( "000-lo.lo", 0x00000, 0x20000, CRC(5a86cff2) SHA1(5992277debadeb64d1c1c64b0a92d9293eaf7e4a) ) ROM_END diff --git a/src/mame/drivers/neopcb.cpp b/src/mame/drivers/neopcb.cpp index 6ee9087b3a0..a58594d8b55 100644 --- a/src/mame/drivers/neopcb.cpp +++ b/src/mame/drivers/neopcb.cpp @@ -19,6 +19,8 @@ public: , m_cmc_prot(*this, "cmc50") , m_pcm2_prot(*this, "pcm2") , m_pvc_prot(*this, "pvc") + , m_cpu_bank(*this, "cpu_bank") + , m_bios_bank(*this, "bios_bank") { } @@ -52,6 +54,8 @@ private: required_device<cmc_prot_device> m_cmc_prot; required_device<pcm2_prot_device> m_pcm2_prot; required_device<pvc_prot_device> m_pvc_prot; + memory_bank_creator m_cpu_bank; + memory_bank_creator m_bios_bank; }; @@ -66,7 +70,7 @@ void neopcb_state::device_post_load() { ngarcade_base_state::device_post_load(); - membank("cpu_bank")->set_base(m_region_maincpu->base() + m_bank_base); + m_cpu_bank->set_base(m_region_maincpu->base() + m_bank_base); } void neopcb_state::neopcb(machine_config &config) @@ -86,7 +90,7 @@ void neopcb_state::neopcb(machine_config &config) INPUT_CHANGED_MEMBER(neopcb_state::select_bios) { - membank("bios_bank")->set_entry(newval ? 0 : 1); + m_bios_bank->set_entry(newval ? 0 : 1); } static INPUT_PORTS_START( dualbios ) @@ -457,7 +461,7 @@ void neopcb_state::write_bankpvc(offs_t offset, uint16_t data, uint16_t mem_mask if (offset >= 0xff8) { m_bank_base = m_pvc_prot->get_bank_base(); - membank("cpu_bank")->set_base(m_region_maincpu->base() + m_bank_base); + m_cpu_bank->set_base(m_region_maincpu->base() + m_bank_base); } } @@ -465,8 +469,8 @@ void neopcb_state::install_common() { // install memory bank m_maincpu->space(AS_PROGRAM).install_rom(0x000080, 0x0fffff, (uint16_t *)m_region_maincpu->base() + 0x80/2); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x200000, 0x2fffff, "cpu_bank"); - membank("cpu_bank")->set_base(m_region_maincpu->base() + 0x100000); + m_maincpu->space(AS_PROGRAM).install_read_bank(0x200000, 0x2fffff, m_cpu_bank); + m_cpu_bank->set_base(m_region_maincpu->base() + 0x100000); // install protection handlers + bankswitch handler m_maincpu->space(AS_PROGRAM).install_read_handler(0x2fe000, 0x2fffff, read16sm_delegate(*m_pvc_prot, FUNC(pvc_prot_device::protection_r))); @@ -483,9 +487,9 @@ void neopcb_state::install_common() void neopcb_state::install_banked_bios() { - m_maincpu->space(AS_PROGRAM).install_read_bank(0xc00000, 0xc1ffff, 0x0e0000, "bios_bank"); - membank("bios_bank")->configure_entries(0, 2, memregion("mainbios")->base(), 0x20000); - membank("bios_bank")->set_entry(1); + m_maincpu->space(AS_PROGRAM).install_read_bank(0xc00000, 0xc1ffff, 0x0e0000, m_bios_bank); + m_bios_bank->configure_entries(0, 2, memregion("mainbios")->base(), 0x20000); + m_bios_bank->set_entry(1); } diff --git a/src/mame/drivers/nes.cpp b/src/mame/drivers/nes.cpp index 0976aac72ca..a652492622a 100644 --- a/src/mame/drivers/nes.cpp +++ b/src/mame/drivers/nes.cpp @@ -244,8 +244,7 @@ MACHINE_START_MEMBER( nes_state, famitwin ) setup_disk(m_disk); // replace the famicom disk ROM with the famicom twin one (until we modernize the floppy drive) - m_maincpu->space(AS_PROGRAM).install_read_bank(0xe000, 0xffff, "ftbios"); - membank("ftbios")->set_base(machine().root_device().memregion("maincpu")->base() + 0xe000); + m_maincpu->space(AS_PROGRAM).install_rom(0xe000, 0xffff, machine().root_device().memregion("maincpu")->base() + 0xe000); } } diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp index e0a18155ead..13318a7717f 100644 --- a/src/mame/drivers/ngen.cpp +++ b/src/mame/drivers/ngen.cpp @@ -100,7 +100,7 @@ public: m_hdc_timer(*this,"hdc_timer"), m_disk_rom(*this,"disk"), m_fd0(*this,"fdc:0"), - m_hd_buffer(*this,"hd_buffer_ram") + m_hd_buffer(*this,"hd_buffer_ram", 1024*8, ENDIANNESS_LITTLE) { } @@ -186,7 +186,7 @@ private: memory_array m_vram; memory_array m_fontram; optional_device<floppy_connector> m_fd0; - optional_shared_ptr<uint8_t> m_hd_buffer; + memory_share_creator<uint8_t> m_hd_buffer; void set_dma_channel(int channel, int state); @@ -843,7 +843,6 @@ void ngen_state::machine_start() { memory_share* vidshare = memshare("vram"); memory_share* fontshare = memshare("fontram"); - m_hd_buffer.allocate(1024*8); // 8kB buffer RAM for HD controller if(vidshare == nullptr || fontshare == nullptr) fatalerror("VRAM not found\n"); m_vram.set(*vidshare,2); diff --git a/src/mame/drivers/ngp.cpp b/src/mame/drivers/ngp.cpp index 9b991fe644f..c0e8e51e98d 100644 --- a/src/mame/drivers/ngp.cpp +++ b/src/mame/drivers/ngp.cpp @@ -661,10 +661,8 @@ void ngp_state::machine_start() std::string region_tag; uint8_t *cart = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str())->base(); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x200000, 0x3fffff, "flash0"); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x800000, 0x9fffff, "flash1"); - membank("flash0")->set_base(cart); - membank("flash1")->set_base(cart + 0x200000); + m_maincpu->space(AS_PROGRAM).install_rom(0x200000, 0x3fffff, cart); + m_maincpu->space(AS_PROGRAM).install_rom(0x800000, 0x9fffff, cart + 0x200000); m_flash_chip[0].data = cart; m_flash_chip[0].org_data[0] = m_flash_chip[0].data[0]; diff --git a/src/mame/drivers/nightgal.cpp b/src/mame/drivers/nightgal.cpp index 8ba32648947..99ad00d2a4a 100644 --- a/src/mame/drivers/nightgal.cpp +++ b/src/mame/drivers/nightgal.cpp @@ -417,8 +417,8 @@ void nightgal_state::sexygal_audionmi_w(uint8_t data) void nightgal_state::sweetgal_map(address_map &map) { map(0x0000, 0x7fff).rom(); - map(0x8000, 0x807f).ram().share("sound_ram"); - map(0xe000, 0xefff).rw(FUNC(nightgal_state::royalqn_comm_r), FUNC(nightgal_state::royalqn_comm_w)).share("comms_ram"); + map(0x8000, 0x807f).lrw8([this](offs_t off) { return m_sound_ram[off]; }, "snd_r", [this](offs_t off, u8 data) { m_sound_ram[off] = data; }, "snd_w"); + map(0xe000, 0xefff).rw(FUNC(nightgal_state::royalqn_comm_r), FUNC(nightgal_state::royalqn_comm_w)); map(0xf000, 0xffff).ram(); } diff --git a/src/mame/drivers/nmk16.cpp b/src/mame/drivers/nmk16.cpp index 3f2249e7aa8..8f7d653efcd 100644 --- a/src/mame/drivers/nmk16.cpp +++ b/src/mame/drivers/nmk16.cpp @@ -1162,7 +1162,7 @@ void nmk16_state::gunnail_map(address_map &map) map(0x088000, 0x0887ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x08c000, 0x08c1ff).writeonly().share("scrollram"); map(0x08c200, 0x08c3ff).writeonly().share("scrollramy"); - map(0x08c400, 0x08c7ff).writeonly(); // unknown + map(0x08c400, 0x08c7ff).nopw(); // unknown map(0x090000, 0x093fff).ram().w(FUNC(nmk16_state::bgvideoram_w<0>)).share("bgvideoram0"); map(0x09c000, 0x09cfff).mirror(0x001000).ram().w(FUNC(nmk16_state::txvideoram_w)).share("txvideoram"); map(0x0f0000, 0x0fffff).ram().share("mainram"); @@ -1183,7 +1183,7 @@ void nmk16_state::gunnailb_map(address_map &map) map(0x088000, 0x0887ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x08c000, 0x08c1ff).writeonly().share("scrollram"); map(0x08c200, 0x08c3ff).writeonly().share("scrollramy"); - map(0x08c400, 0x08c7ff).writeonly(); // unknown + map(0x08c400, 0x08c7ff).nopw(); // unknown map(0x090000, 0x093fff).ram().w(FUNC(nmk16_state::bgvideoram_w<0>)).share("bgvideoram0"); map(0x09c000, 0x09cfff).mirror(0x001000).ram().w(FUNC(nmk16_state::txvideoram_w)).share("txvideoram"); map(0x0f0000, 0x0fffff).ram().share("mainram"); diff --git a/src/mame/drivers/nwk-tr.cpp b/src/mame/drivers/nwk-tr.cpp index 345e395525f..d0d55947ef1 100644 --- a/src/mame/drivers/nwk-tr.cpp +++ b/src/mame/drivers/nwk-tr.cpp @@ -729,9 +729,9 @@ void nwktr_state::nwktr_map(address_map &map) map(0x7d030000, 0x7d03000f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w)); map(0x7d040000, 0x7d04ffff).rw(FUNC(nwktr_state::lanc1_r), FUNC(nwktr_state::lanc1_w)); map(0x7d050000, 0x7d05ffff).rw(FUNC(nwktr_state::lanc2_r), FUNC(nwktr_state::lanc2_w)); - map(0x7e000000, 0x7e7fffff).rom().region("user2", 0); // Data ROM - map(0x7f000000, 0x7f1fffff).rom().share("share2"); - map(0x7fe00000, 0x7fffffff).rom().region("user1", 0).share("share2"); // Program ROM + map(0x7e000000, 0x7e7fffff).rom().region("user2", 0); /* Data ROM */ + map(0x7f000000, 0x7f1fffff).rom().region("user1", 0); + map(0x7fe00000, 0x7fffffff).rom().region("user1", 0); /* Program ROM */ } /*****************************************************************************/ diff --git a/src/mame/drivers/octopus.cpp b/src/mame/drivers/octopus.cpp index b33a13202de..6b4e4ef02b9 100644 --- a/src/mame/drivers/octopus.cpp +++ b/src/mame/drivers/octopus.cpp @@ -145,7 +145,7 @@ public: m_maincpu(*this, "maincpu"), m_subcpu(*this, "subcpu"), m_crtc(*this, "crtc"), - m_vram(*this, "vram"), + m_vram(*this, "vram", 0x10000, ENDIANNESS_LITTLE), m_fontram(*this, "fram"), m_dma1(*this, "dma1"), m_dma2(*this, "dma2"), @@ -238,7 +238,7 @@ private: required_device<cpu_device> m_maincpu; required_device<cpu_device> m_subcpu; required_device<scn2674_device> m_crtc; - required_shared_ptr<uint8_t> m_vram; + memory_share_creator<uint8_t> m_vram; required_shared_ptr<uint8_t> m_fontram; required_device<am9517a_device> m_dma1; required_device<am9517a_device> m_dma2; @@ -760,7 +760,7 @@ void octopus_state::machine_start() m_vidctrl = 0xff; // install RAM - m_maincpu->space(AS_PROGRAM).install_readwrite_bank(0x0000,m_ram->size()-1,"main_ram_bank"); + m_maincpu->space(AS_PROGRAM).install_ram(0x0000,m_ram->size()-1,m_ram->pointer()); m_maincpu->space(AS_PROGRAM).nop_readwrite(m_ram->size(),0xcffff); } @@ -773,13 +773,11 @@ void octopus_state::machine_reset() m_current_drive = 0; m_rtc_address = true; m_rtc_data = false; - membank("main_ram_bank")->set_base(m_ram->pointer()); m_kb_uart->write_dsr(1); // DSR is used to determine if a keyboard is connected? If DSR is high, then the CHAR_OUT BIOS function will not output to the screen. } void octopus_state::video_start() { - m_vram.allocate(0x10000); } uint8_t octopus_state::video_latch_r(offs_t offset) diff --git a/src/mame/drivers/offtwall.cpp b/src/mame/drivers/offtwall.cpp index 094adb79fd5..53405aced24 100644 --- a/src/mame/drivers/offtwall.cpp +++ b/src/mame/drivers/offtwall.cpp @@ -115,7 +115,7 @@ uint16_t offtwall_state::bankrom_r(address_space &space, offs_t offset) return us >> 16; } - return m_bankrom_base[(m_bank_offset + offset) & 0x3fff]; + return m_bankrom_base[0x38000 | ((m_bank_offset + offset) & 0x3fff)]; } @@ -212,7 +212,7 @@ uint16_t offtwall_state::unknown_verify_r(offs_t offset) void offtwall_state::main_map(address_map &map) { map(0x000000, 0x037fff).rom(); - map(0x038000, 0x03ffff).r(FUNC(offtwall_state::bankrom_r)).region("maincpu", 0x38000).share("bankrom_base"); + map(0x038000, 0x03ffff).r(FUNC(offtwall_state::bankrom_r)); map(0x120000, 0x120fff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask16(0x00ff); map(0x260000, 0x260001).portr("260000"); map(0x260002, 0x260003).portr("260002"); diff --git a/src/mame/drivers/ojankohs.cpp b/src/mame/drivers/ojankohs.cpp index 938ed75e7ac..031a4ab301e 100644 --- a/src/mame/drivers/ojankohs.cpp +++ b/src/mame/drivers/ojankohs.cpp @@ -985,9 +985,9 @@ ROM_START( ojankoca ) ROM_END -GAME( 1986, ojankoc, 0, ojankoc, ojankoc, ojankohs_state, empty_init, ROT0, "V-System Co.", "Ojanko Club (Japan, Program Ver. 1.3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ojankoca, ojankoc, ojankoc, ojankoc, ojankohs_state, empty_init, ROT0, "V-System Co.", "Ojanko Club (Japan, Program Ver. 1.2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ojankoy, 0, ojankoy, ojankoy, ojankohs_state, empty_init, ROT0, "V-System Co.", "Ojanko Yakata (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ojanko2, 0, ojankoy, ojankoy, ojankohs_state, empty_init, ROT0, "V-System Co.", "Ojanko Yakata 2bankan (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ccasino, 0, ccasino, ccasino, ojankohs_state, empty_init, ROT0, "V-System Co.", "Chinese Casino [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ojankoc, 0, ojankoc, ojankoc, ojankoc_state, empty_init, ROT0, "V-System Co.", "Ojanko Club (Japan, Program Ver. 1.3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ojankoca, ojankoc, ojankoc, ojankoc, ojankoc_state, empty_init, ROT0, "V-System Co.", "Ojanko Club (Japan, Program Ver. 1.2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ojankoy, 0, ojankoy, ojankoy, ojankoy_state, empty_init, ROT0, "V-System Co.", "Ojanko Yakata (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ojanko2, 0, ojankoy, ojankoy, ojankoy_state, empty_init, ROT0, "V-System Co.", "Ojanko Yakata 2bankan (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ccasino, 0, ccasino, ccasino, ccasino_state, empty_init, ROT0, "V-System Co.", "Chinese Casino [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, ojankohs, 0, ojankohs, ojankohs, ojankohs_state, empty_init, ROT0, "V-System Co.", "Ojanko High School (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/omegrace.cpp b/src/mame/drivers/omegrace.cpp index f321f74781e..c7e5beaef85 100644 --- a/src/mame/drivers/omegrace.cpp +++ b/src/mame/drivers/omegrace.cpp @@ -383,7 +383,7 @@ void omegrace_state::main_map(address_map &map) map(0x0000, 0x3fff).rom(); map(0x4000, 0x4bff).ram(); map(0x5c00, 0x5cff).ram().share("nvram"); /* NVRAM */ - map(0x8000, 0x8fff).ram().share("dvg:vectorram").region("maincpu", 0x8000); /* vector ram */ + map(0x8000, 0x8fff).ram().share("dvg:vectorram"); /* vector ram */ map(0x9000, 0x9fff).rom(); /* vector rom */ } diff --git a/src/mame/drivers/opwolf.cpp b/src/mame/drivers/opwolf.cpp index 100e876394e..36337783bbf 100644 --- a/src/mame/drivers/opwolf.cpp +++ b/src/mame/drivers/opwolf.cpp @@ -404,7 +404,7 @@ void opwolf_state::opwolf_map(address_map &map) map(0x3e0000, 0x3e0000).w("ciu", FUNC(pc060ha_device::master_port_w)); map(0x3e0002, 0x3e0002).rw("ciu", FUNC(pc060ha_device::master_comm_r), FUNC(pc060ha_device::master_comm_w)); map(0xc00000, 0xc0ffff).rw(m_pc080sn, FUNC(pc080sn_device::word_r), FUNC(pc080sn_device::word_w)); - map(0xc10000, 0xc1ffff).writeonly(); /* error in init code (?) */ + map(0xc10000, 0xc1ffff).nopw(); /* error in init code (?) */ map(0xc20000, 0xc20003).w(m_pc080sn, FUNC(pc080sn_device::yscroll_word_w)); map(0xc40000, 0xc40003).w(m_pc080sn, FUNC(pc080sn_device::xscroll_word_w)); map(0xc50000, 0xc50003).w(m_pc080sn, FUNC(pc080sn_device::ctrl_word_w)); @@ -427,7 +427,7 @@ void opwolf_state::opwolfb_map(address_map &map) map(0x3e0000, 0x3e0000).w("ciu", FUNC(pc060ha_device::master_port_w)); map(0x3e0002, 0x3e0002).rw("ciu", FUNC(pc060ha_device::master_comm_r), FUNC(pc060ha_device::master_comm_w)); map(0xc00000, 0xc0ffff).rw(m_pc080sn, FUNC(pc080sn_device::word_r), FUNC(pc080sn_device::word_w)); - map(0xc10000, 0xc1ffff).writeonly(); /* error in init code (?) */ + map(0xc10000, 0xc1ffff).nopw(); /* error in init code (?) */ map(0xc20000, 0xc20003).w(m_pc080sn, FUNC(pc080sn_device::yscroll_word_w)); map(0xc40000, 0xc40003).w(m_pc080sn, FUNC(pc080sn_device::xscroll_word_w)); map(0xc50000, 0xc50003).w(m_pc080sn, FUNC(pc080sn_device::ctrl_word_w)); @@ -449,7 +449,7 @@ void opwolf_state::opwolfp_map(address_map &map) map(0x3e0000, 0x3e0000).w("ciu", FUNC(pc060ha_device::master_port_w)); map(0x3e0002, 0x3e0002).rw("ciu", FUNC(pc060ha_device::master_comm_r), FUNC(pc060ha_device::master_comm_w)); map(0xc00000, 0xc0ffff).rw(m_pc080sn, FUNC(pc080sn_device::word_r), FUNC(pc080sn_device::word_w)); - map(0xc10000, 0xc1ffff).writeonly(); /* error in init code (?) */ + map(0xc10000, 0xc1ffff).nopw(); /* error in init code (?) */ map(0xc20000, 0xc20003).w(m_pc080sn, FUNC(pc080sn_device::yscroll_word_w)); map(0xc40000, 0xc40003).w(m_pc080sn, FUNC(pc080sn_device::xscroll_word_w)); map(0xc50000, 0xc50003).w(m_pc080sn, FUNC(pc080sn_device::ctrl_word_w)); diff --git a/src/mame/drivers/osi.cpp b/src/mame/drivers/osi.cpp index 9334a256333..cc6bb15eccc 100644 --- a/src/mame/drivers/osi.cpp +++ b/src/mame/drivers/osi.cpp @@ -654,12 +654,12 @@ void sb2m600_state::machine_start() switch (m_ram->size()) { case 4*1024: - program.install_readwrite_bank(0x0000, 0x0fff, "bank1"); + program.install_readwrite_bank(0x0000, 0x0fff, membank("bank1")); program.unmap_readwrite(0x1000, 0x1fff); break; case 8*1024: - program.install_readwrite_bank(0x0000, 0x1fff, "bank1"); + program.install_readwrite_bank(0x0000, 0x1fff, membank("bank1")); break; } @@ -685,12 +685,12 @@ void c1p_state::machine_start() switch (m_ram->size()) { case 8*1024: - program.install_readwrite_bank(0x0000, 0x1fff, "bank1"); + program.install_readwrite_bank(0x0000, 0x1fff, membank("bank1")); program.unmap_readwrite(0x2000, 0x4fff); break; case 20*1024: - program.install_readwrite_bank(0x0000, 0x4fff, "bank1"); + program.install_readwrite_bank(0x0000, 0x4fff, membank("bank1")); break; } diff --git a/src/mame/drivers/pacman.cpp b/src/mame/drivers/pacman.cpp index 48d93304595..c0454493cbb 100644 --- a/src/mame/drivers/pacman.cpp +++ b/src/mame/drivers/pacman.cpp @@ -1014,6 +1014,12 @@ void pacman_state::pacman_map(address_map &map) map(0x50c0, 0x50c0).mirror(0xaf3f).portr("DSW2"); } +void pacman_state::cannonbp_map(address_map &map) +{ + pacman_map(map); + map(0x4800, 0x4bff).ram(); + map(0x3000, 0x3fff).r(FUNC(pacman_state::cannonbp_protection_r)); +} void pacman_state::birdiy_map(address_map &map) { @@ -1220,14 +1226,14 @@ void pacman_state::s2650games_map(address_map &map) map(0x0000, 0x0fff).bankr("bank1"); map(0x1000, 0x13ff).mirror(0x6000).w(FUNC(pacman_state::s2650games_colorram_w)).share("colorram"); map(0x1400, 0x141f).mirror(0x6000).w(FUNC(pacman_state::s2650games_scroll_w)); - map(0x1420, 0x148f).mirror(0x6000).writeonly(); + map(0x1420, 0x148f).mirror(0x6000).writeonly().share("unk_1420"); map(0x1490, 0x149f).mirror(0x6000).writeonly().share("s2650_spriteram"); map(0x14a0, 0x14bf).mirror(0x6000).w(FUNC(pacman_state::s2650games_tilesbank_w)).share("s2650_tileram"); - map(0x14c0, 0x14ff).mirror(0x6000).writeonly(); + map(0x14c0, 0x14ff).mirror(0x6000).writeonly().share("unk_14c0"); map(0x1500, 0x1507).mirror(0x6000).w(m_mainlatch, FUNC(ls259_device::write_d0)); - map(0x1508, 0x155f).mirror(0x6000).writeonly(); + map(0x1508, 0x155f).mirror(0x6000).writeonly().share("unk_1508"); map(0x1560, 0x156f).mirror(0x6000).writeonly().share("spriteram2"); - map(0x1570, 0x157f).mirror(0x6000).writeonly(); + map(0x1570, 0x157f).mirror(0x6000).writeonly().share("unk_1570"); map(0x1586, 0x1587).mirror(0x6000).nopw(); map(0x15c0, 0x15c0).mirror(0x6000).w(m_watchdog, FUNC(watchdog_timer_device::reset_w)); map(0x15c7, 0x15c7).mirror(0x6000).w(FUNC(pacman_state::porky_banking_w)); @@ -4008,6 +4014,11 @@ void pacman_state::crushs(machine_config &config) AY8912(config, "ay8912", 1789750).add_route(ALL_OUTPUTS, "mono", 0.75); } +void pacman_state::cannonbp(machine_config &config) +{ + pacman(config); + m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::cannonbp_map); +} /************************************* @@ -7763,16 +7774,6 @@ uint8_t pacman_state::cannonbp_protection_r(offs_t offset) } } - -void pacman_state::init_cannonbp() -{ - /* extra memory */ - m_maincpu->space(AS_PROGRAM).install_ram(0x4800, 0x4bff); - - /* protection? */ - m_maincpu->space(AS_PROGRAM).install_read_handler(0x3000, 0x3fff, read8sm_delegate(*this, FUNC(pacman_state::cannonbp_protection_r))); -} - void pacman_state::init_pengomc1() { uint8_t *romdata = memregion("maincpu")->base(); @@ -7962,7 +7963,7 @@ GAME( 1986, bigbucks, 0, bigbucks, bigbucks, pacman_state, empty_init, GAME( 1983, numcrash, 0, numcrash, numcrash, pacman_state, empty_init, ROT90, "Hanshin Goraku / Peni", "Number Crash", MACHINE_SUPPORTS_SAVE ) // "Peni soft" related? -GAME( 1985, cannonbp, 0, pacman, cannonbp, pacman_state, init_cannonbp, ROT90, "Novomatic", "Cannon Ball (Pac-Man Hardware)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, cannonbp, 0, cannonbp, cannonbp, pacman_state, empty_init, ROT90, "Novomatic", "Cannon Ball (Pac-Man Hardware)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) GAME( 1999, superabc, 0, superabc, superabc, pacman_state, init_superabc, ROT90, "hack (Two-Bit Score)", "Super ABC (Pac-Man multigame kit, Sep. 03 1999)", MACHINE_SUPPORTS_SAVE ) GAME( 1999, superabco,superabc, superabc, superabc, pacman_state, init_superabc, ROT90, "hack (Two-Bit Score)", "Super ABC (Pac-Man multigame kit, Mar. 08 1999)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/palm.cpp b/src/mame/drivers/palm.cpp index 760f9db54e8..b0101106966 100644 --- a/src/mame/drivers/palm.cpp +++ b/src/mame/drivers/palm.cpp @@ -136,9 +136,7 @@ WRITE_LINE_MEMBER(palm_state::palm_spim_exchange) void palm_state::machine_start() { address_space &space = m_maincpu->space(AS_PROGRAM); - space.install_read_bank (0x000000, m_ram->size() - 1, "bank1"); - space.install_write_bank(0x000000, m_ram->size() - 1, "bank1"); - membank("bank1")->set_base(m_ram->pointer()); + space.install_rom(0x000000, m_ram->size() - 1, m_ram->pointer()); save_item(NAME(m_port_f_latch)); save_item(NAME(m_spim_data)); diff --git a/src/mame/drivers/pc1500.cpp b/src/mame/drivers/pc1500.cpp index b30ddd2b5ed..75fb6e01fdf 100644 --- a/src/mame/drivers/pc1500.cpp +++ b/src/mame/drivers/pc1500.cpp @@ -96,13 +96,13 @@ private: void pc1500_state::pc1500_mem(address_map &map) { map.unmap_value_high(); - map(0x0000, 0x3fff).rom(); //module ROM/RAM + // map(0x0000, 0x3fff).rom(); //module ROM/RAM map(0x4000, 0x47ff).ram(); //user RAM map(0x4800, 0x6fff).ram(); //expansion RAM map(0x7000, 0x71ff).ram().mirror(0x0600).share("lcd_data"); - map(0x7800, 0x7bff).ram().region("maincpu", 0x7800).mirror(0x0400); - map(0xa000, 0xbfff).rom(); //expansion ROM - map(0xc000, 0xffff).rom(); //system ROM + map(0x7800, 0x7bff).ram().mirror(0x0400); + // map(0xa000, 0xbfff).rom(); //expansion ROM + map(0xc000, 0xffff).rom().region("maincpu", 0); //system ROM } void pc1500_state::pc1500_mem_io(address_map &map) @@ -350,9 +350,9 @@ void pc1500_state::pc1500(machine_config &config) ROM_START( pc1500 ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "sys1500.rom", 0xc000, 0x4000, CRC(d480b50d) SHA1(4bf748ba4d7c2b7cd7da7f3fdefcdd2e4cd41c4e)) - ROM_REGION( 0x10000, "ce150", ROMREGION_ERASEFF ) + ROM_REGION( 0x4000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "sys1500.rom", 0x0000, 0x4000, CRC(d480b50d) SHA1(4bf748ba4d7c2b7cd7da7f3fdefcdd2e4cd41c4e)) + ROM_REGION( 0x2000, "ce150", ROMREGION_ERASEFF ) ROM_LOAD( "ce-150.rom", 0x0000, 0x2000, CRC(8fa1df6d) SHA1(a3aa02a641a46c27c0d4c0dc025b0dbe9b5b79c8)) ROM_END diff --git a/src/mame/drivers/pc8001.cpp b/src/mame/drivers/pc8001.cpp index a7478090cb7..f34f2cd00ad 100644 --- a/src/mame/drivers/pc8001.cpp +++ b/src/mame/drivers/pc8001.cpp @@ -439,7 +439,7 @@ void pc8001_state::machine_start() uint8_t *ram = m_ram->pointer(); membank("bank1")->configure_entry(1, m_rom->base()); - program.install_read_bank(0x0000, 0x5fff, "bank1"); + program.install_read_bank(0x0000, 0x5fff, membank("bank1")); program.unmap_write(0x0000, 0x5fff); switch (m_ram->size()) @@ -448,22 +448,22 @@ void pc8001_state::machine_start() membank("bank3")->configure_entry(0, ram); program.unmap_readwrite(0x6000, 0xbfff); program.unmap_readwrite(0x8000, 0xbfff); - program.install_readwrite_bank(0xc000, 0xffff, "bank3"); + program.install_readwrite_bank(0xc000, 0xffff, membank("bank3")); break; case 32*1024: membank("bank3")->configure_entry(0, ram); program.unmap_readwrite(0x6000, 0xbfff); - program.install_readwrite_bank(0x8000, 0xffff, "bank3"); + program.install_readwrite_bank(0x8000, 0xffff, membank("bank3")); break; case 64*1024: membank("bank1")->configure_entry(0, ram); membank("bank2")->configure_entry(0, ram + 0x6000); membank("bank3")->configure_entry(0, ram + 0x8000); - program.install_readwrite_bank(0x0000, 0x5fff, "bank1"); - program.install_readwrite_bank(0x6000, 0xbfff, "bank2"); - program.install_readwrite_bank(0x8000, 0xffff, "bank3"); + program.install_readwrite_bank(0x0000, 0x5fff, membank("bank1")); + program.install_readwrite_bank(0x6000, 0xbfff, membank("bank2")); + program.install_readwrite_bank(0x8000, 0xffff, membank("bank3")); membank("bank2")->set_entry(0); break; } diff --git a/src/mame/drivers/pc8401a.cpp b/src/mame/drivers/pc8401a.cpp index ad6e29ccbe4..435050124f8 100644 --- a/src/mame/drivers/pc8401a.cpp +++ b/src/mame/drivers/pc8401a.cpp @@ -85,14 +85,14 @@ void pc8401a_state::bankswitch(uint8_t data) if (rombank < 3) { /* internal ROM */ - program.install_read_bank(0x0000, 0x7fff, "bank1"); + program.install_read_bank(0x0000, 0x7fff, membank("bank1")); program.unmap_write(0x0000, 0x7fff); membank("bank1")->set_entry(rombank); } else if (m_cart_rom) { /* ROM cartridge */ - program.install_read_bank(0x0000, 0x7fff, "bank1"); + program.install_read_bank(0x0000, 0x7fff, membank("bank1")); program.unmap_write(0x0000, 0x7fff); membank("bank1")->set_entry(6); } @@ -102,13 +102,13 @@ void pc8401a_state::bankswitch(uint8_t data) break; case 1: /* RAM 0000H to 7FFFH */ - program.install_readwrite_bank(0x0000, 0x7fff, "bank1"); + program.install_readwrite_bank(0x0000, 0x7fff, membank("bank1")); membank("bank1")->set_entry(4); //logerror("0x0000-0x7fff = RAM 0-7fff\n"); break; case 2: /* RAM 8000H to FFFFH */ - program.install_readwrite_bank(0x0000, 0x7fff, "bank1"); + program.install_readwrite_bank(0x0000, 0x7fff, membank("bank1")); membank("bank1")->set_entry(5); //logerror("0x0000-0x7fff = RAM 8000-ffff\n"); break; @@ -121,19 +121,19 @@ void pc8401a_state::bankswitch(uint8_t data) switch (ram8000) { case 0: /* cell addresses 0000H to 3FFFH */ - program.install_readwrite_bank(0x8000, 0xbfff, "bank3"); + program.install_readwrite_bank(0x8000, 0xbfff, membank("bank3")); membank("bank3")->set_entry(0); //logerror("0x8000-0xbfff = RAM 0-3fff\n"); break; case 1: /* cell addresses 4000H to 7FFFH */ - program.install_readwrite_bank(0x8000, 0xbfff, "bank3"); + program.install_readwrite_bank(0x8000, 0xbfff, membank("bank3")); membank("bank3")->set_entry(1); //logerror("0x8000-0xbfff = RAM 4000-7fff\n"); break; case 2: /* cell addresses 8000H to BFFFH */ - program.install_readwrite_bank(0x8000, 0xbfff, "bank3"); + program.install_readwrite_bank(0x8000, 0xbfff, membank("bank3")); membank("bank3")->set_entry(2); //logerror("0x8000-0xbfff = RAM 8000-bfff\n"); break; @@ -141,7 +141,7 @@ void pc8401a_state::bankswitch(uint8_t data) case 3: /* RAM cartridge */ if (m_ram->size() > 64) { - program.install_readwrite_bank(0x8000, 0xbfff, "bank3"); + program.install_readwrite_bank(0x8000, 0xbfff, membank("bank3")); membank("bank3")->set_entry(3); // TODO or 4 } else @@ -155,7 +155,7 @@ void pc8401a_state::bankswitch(uint8_t data) if (BIT(data, 6)) { /* CRT video RAM */ - program.install_readwrite_bank(0xc000, 0xdfff, "bank4"); + program.install_readwrite_bank(0xc000, 0xdfff, membank("bank4")); program.unmap_readwrite(0xe000, 0xe7ff); membank("bank4")->set_entry(1); //logerror("0xc000-0xdfff = video RAM\n"); @@ -163,7 +163,7 @@ void pc8401a_state::bankswitch(uint8_t data) else { /* RAM */ - program.install_readwrite_bank(0xc000, 0xe7ff, "bank4"); + program.install_readwrite_bank(0xc000, 0xe7ff, membank("bank4")); membank("bank4")->set_entry(0); //logerror("0xc000-0e7fff = RAM c000-e7fff\n"); } @@ -497,9 +497,6 @@ void pc8401a_state::machine_start() /* initialize RTC */ m_rtc->cs_w(1); - /* allocate CRT video RAM */ - m_crt_ram.allocate(PC8401A_CRT_VIDEORAM_SIZE); - uint8_t *ram = m_ram->pointer(); /* set up A0/A1 memory banking */ diff --git a/src/mame/drivers/pcat_nit.cpp b/src/mame/drivers/pcat_nit.cpp index 22f0a6a6ddf..beece42b34e 100644 --- a/src/mame/drivers/pcat_nit.cpp +++ b/src/mame/drivers/pcat_nit.cpp @@ -97,7 +97,12 @@ public: pcat_nit_state(const machine_config &mconfig, device_type type, const char *tag) : pcat_base_state(mconfig, type, tag), m_uart(*this, "ns16450_0"), - m_microtouch(*this, "microtouch") { } + m_microtouch(*this, "microtouch"), + m_bios_region(*this, "bios"), + m_disk_bios_region(*this, "disk_bios"), + m_bios_share(*this, "bios"), + m_disk_bios_share(*this, "disk_bios") + { } void bonanza(machine_config &config); void pcat_nit(machine_config &config); @@ -108,6 +113,10 @@ private: std::unique_ptr<uint8_t[]> m_banked_nvram; required_device<ns16450_device> m_uart; required_device<microtouch_device> m_microtouch; + required_region_ptr<uint32_t> m_bios_region; + required_region_ptr<uint32_t> m_disk_bios_region; + required_shared_ptr<uint32_t> m_bios_share; + required_shared_ptr<uint32_t> m_disk_bios_share; void pcat_nit_rombank_w(uint8_t data); uint8_t pcat_nit_io_r(offs_t offset); @@ -131,7 +140,7 @@ void pcat_nit_state::pcat_nit_rombank_w(uint8_t data) if ( data & 0x40 ) { // rom bank - mspace.install_read_bank(0x000d8000, 0x000dffff, "rombank" ); + mspace.install_read_bank(0x000d8000, 0x000dffff, membank("rombank") ); mspace.unmap_write(0x000d8000, 0x000dffff); if ( data & 0x80 ) @@ -148,9 +157,7 @@ void pcat_nit_state::pcat_nit_rombank_w(uint8_t data) // nvram bank mspace.unmap_readwrite(0x000d8000, 0x000dffff); - mspace.install_readwrite_bank(0x000d8000, 0x000d9fff, "nvrambank" ); - - membank("nvrambank")->set_base(m_banked_nvram.get()); + mspace.install_ram(0x000d8000, 0x000d9fff, m_banked_nvram.get()); } } @@ -160,10 +167,10 @@ void pcat_nit_state::pcat_map(address_map &map) map(0x00000000, 0x0009ffff).ram(); map(0x000a0000, 0x000bffff).rw("vga", FUNC(vga_device::mem_r), FUNC(vga_device::mem_w)); map(0x000c0000, 0x000c7fff).rom().region("video_bios", 0).nopw(); - map(0x000d0000, 0x000d3fff).ram().region("disk_bios", 0); + map(0x000d0000, 0x000d3fff).ram().share("disk_bios"); map(0x000d7000, 0x000d7000).w(FUNC(pcat_nit_state::pcat_nit_rombank_w)); map(0x000d8000, 0x000dffff).bankr("rombank"); - map(0x000f0000, 0x000fffff).ram().region("bios", 0); + map(0x000f0000, 0x000fffff).ram().share("bios"); map(0xffff0000, 0xffffffff).rom().region("bios", 0); } @@ -172,10 +179,10 @@ void pcat_nit_state::bonanza_map(address_map &map) map(0x00000000, 0x0009ffff).ram(); map(0x000a0000, 0x000bffff).rw("vga", FUNC(cirrus_gd5428_device::mem_r), FUNC(cirrus_gd5428_device::mem_w)); map(0x000c0000, 0x000c7fff).rom().region("video_bios", 0).nopw(); - map(0x000d0000, 0x000d3fff).ram().region("disk_bios", 0); + map(0x000d0000, 0x000d3fff).ram().share("disk_bios"); map(0x000d7000, 0x000d7000).w(FUNC(pcat_nit_state::pcat_nit_rombank_w)); map(0x000d8000, 0x000dffff).bankr("rombank"); - map(0x000f0000, 0x000fffff).ram().region("bios", 0); + map(0x000f0000, 0x000fffff).ram().share("bios"); map(0xffff0000, 0xffffffff).rom().region("bios", 0); } @@ -229,6 +236,10 @@ void pcat_nit_state::machine_start() { membank("rombank")->configure_entries(0, 0x80, memregion("game_prg")->base(), 0x8000 ); membank("rombank")->set_entry(0); + + // There's some shadow ram control registers missing somehwere + memcpy(m_bios_share, m_bios_region, 0x10000); + memcpy(m_disk_bios_share, m_disk_bios_region, 0x4000); } void pcat_nit_state::pcat_nit(machine_config &config) diff --git a/src/mame/drivers/pce220.cpp b/src/mame/drivers/pce220.cpp index a8fb9f74c87..24e4ca7f644 100644 --- a/src/mame/drivers/pce220.cpp +++ b/src/mame/drivers/pce220.cpp @@ -380,8 +380,7 @@ void pce220_state::boot_bank_w(uint8_t data) if (data & 0x01) { address_space &space_prg = m_maincpu->space(AS_PROGRAM); - space_prg.install_read_bank(0x0000, 0x3fff, m_banks[0]); - space_prg.install_write_bank(0x0000, 0x3fff, m_banks[0]); + space_prg.install_readwrite_bank(0x0000, 0x3fff, m_banks[0]); m_banks[0]->set_entry(0); } } diff --git a/src/mame/drivers/pcm.cpp b/src/mame/drivers/pcm.cpp index a68ab28fcba..5fd5eca10b5 100644 --- a/src/mame/drivers/pcm.cpp +++ b/src/mame/drivers/pcm.cpp @@ -81,7 +81,6 @@ public: , m_ctc_u(*this, "ctc_u") , m_speaker(*this, "speaker") , m_cass(*this, "cassette") - , m_vram(*this, "videoram") , m_p_chargen(*this, "chargen") , m_bank(*this, {"bankr", "bankw", "bank2", "bank3"}) { } @@ -110,7 +109,6 @@ private: required_device<z80ctc_device> m_ctc_u; required_device<speaker_sound_device> m_speaker; required_device<cassette_image_device> m_cass; - optional_shared_ptr<u8> m_vram; required_region_ptr<u8> m_p_chargen; required_memory_bank_array<4> m_bank; }; @@ -222,8 +220,6 @@ void pcm_state::machine_start() u8* r = m_ram->pointer(); u8 *m = memregion("maincpu")->base(); - m_vram.set_target(r+0xf800, 0x800); // Fix position of vram - save_item(NAME(m_cone)); save_item(NAME(m_port85)); @@ -251,7 +247,7 @@ u32 pcm_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const for (u16 x = ma; x < ma + 64; x++) { - u8 const chr = m_vram[x]; + u8 const chr = m_ram->pointer()[x + 0xf800]; u8 const gfx = m_p_chargen[(chr<<3) | ra]; diff --git a/src/mame/drivers/pda600.cpp b/src/mame/drivers/pda600.cpp index 3435da028de..bd3c17f938f 100644 --- a/src/mame/drivers/pda600.cpp +++ b/src/mame/drivers/pda600.cpp @@ -69,6 +69,7 @@ public: pda600_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") + , m_video_ram(*this, "videoram") { } @@ -76,12 +77,12 @@ public: private: required_device<cpu_device> m_maincpu; + required_shared_ptr<uint8_t> m_video_ram; virtual void video_start() override; virtual void machine_reset() override; uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint8_t * m_video_ram; void pda600_io(address_map &map); void pda600_mem(address_map &map); }; @@ -92,8 +93,8 @@ void pda600_state::pda600_mem(address_map &map) map.unmap_value_high(); map(0x00000, 0x1ffff).rom(); //map(0x20000, 0x9ffff).ram(); // PCMCIA Card - map(0xa0000, 0xa7fff).ram().region("videoram", 0); - map(0xe0000, 0xfffff).ram().region("mainram", 0).share("nvram"); + map(0xa0000, 0xa7fff).ram().share("videoram"); + map(0xe0000, 0xfffff).ram().share("nvram"); } void pda600_state::pda600_io(address_map &map) @@ -120,7 +121,6 @@ void pda600_state::machine_reset() void pda600_state::video_start() { - m_video_ram = memregion("videoram")->base(); } uint32_t pda600_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -233,12 +233,6 @@ void pda600_state::pda600(machine_config &config) ROM_START( pda600 ) ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "pdarom.bin", 0x00000, 0x20000, CRC(f793a6c5) SHA1(ab14b0fdcedb927c66357368a2bfff605ba758fb)) - - // 128KB RAM - ROM_REGION( 0x20000, "mainram", ROMREGION_ERASE ) - - // 32KB Video RAM - ROM_REGION( 0x8000, "videoram", ROMREGION_ERASE ) ROM_END /* Driver */ diff --git a/src/mame/drivers/pet.cpp b/src/mame/drivers/pet.cpp index 77a2b3bc43e..02b868c0cbf 100644 --- a/src/mame/drivers/pet.cpp +++ b/src/mame/drivers/pet.cpp @@ -211,7 +211,7 @@ public: m_ram(*this, RAM_TAG), m_rom(*this, M6502_TAG), m_char_rom(*this, "charom"), - m_video_ram(*this, "video_ram"), + m_video_ram(*this, "video_ram", 0x800, ENDIANNESS_LITTLE), m_row(*this, "ROW%u", 0), m_lock(*this, "LOCK"), m_sync_timer(nullptr), @@ -294,7 +294,7 @@ protected: required_device<ram_device> m_ram; required_memory_region m_rom; required_memory_region m_char_rom; - optional_shared_ptr<uint8_t> m_video_ram; + memory_share_creator<uint8_t> m_video_ram; required_ioport_array<10> m_row; required_ioport m_lock; @@ -1518,9 +1518,6 @@ void cbm8296d_ieee488_devices(device_slot_interface &device) MACHINE_START_MEMBER( pet_state, pet ) { - // allocate memory - m_video_ram.allocate(m_video_ram_size); - // initialize memory uint8_t data = 0xff; diff --git a/src/mame/drivers/pingpong.cpp b/src/mame/drivers/pingpong.cpp index 9aab2be8226..79595d9cc74 100644 --- a/src/mame/drivers/pingpong.cpp +++ b/src/mame/drivers/pingpong.cpp @@ -39,11 +39,9 @@ void pingpong_state::cashquiz_question_bank_low_w(uint8_t data) { if(data >= 0x60 && data <= 0xdf) { - static const char * const bankname[] = { "bank1", "bank2", "bank3", "bank4", "bank5", "bank6", "bank7", "bank8" }; - const char *bank = bankname[data & 7]; int bankaddr = m_question_addr_high | ((data - 0x60) * 0x100); uint8_t *questions = memregion("user1")->base() + bankaddr; - membank(bank)->set_base(questions); + m_banks[data & 7]->set_base(questions); } } @@ -129,6 +127,23 @@ void pingpong_state::merlinmm_map(address_map &map) map(0xa600, 0xa600).w("watchdog", FUNC(watchdog_timer_device::reset_w)); } +void pingpong_state::cashquiz_map(address_map &map) +{ + merlinmm_map(map); + map(0x5000, 0x57ff).unmaprw(); + + map(0x4000, 0x4000).w(FUNC(pingpong_state::cashquiz_question_bank_high_w)); + map(0x4001, 0x4001).w(FUNC(pingpong_state::cashquiz_question_bank_low_w)); + + map(0x5000, 0x50ff).bankr("bank1"); + map(0x5100, 0x51ff).bankr("bank2"); + map(0x5200, 0x52ff).bankr("bank3"); + map(0x5300, 0x53ff).bankr("bank4"); + map(0x5400, 0x54ff).bankr("bank5"); + map(0x5500, 0x55ff).bankr("bank6"); + map(0x5600, 0x56ff).bankr("bank7"); + map(0x5700, 0x57ff).bankr("bank8"); +} static INPUT_PORTS_START( pingpong ) @@ -484,6 +499,12 @@ void pingpong_state::merlinmm(machine_config &config) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); } +void pingpong_state::cashquiz(machine_config &config) +{ + merlinmm(config); + m_maincpu->set_addrmap(AS_PROGRAM, &pingpong_state::cashquiz_map); +} + /*************************************************************************** @@ -581,32 +602,12 @@ void pingpong_state::init_cashquiz() for (int i = 0; i < 0x40000; i++) ROM[i] = bitswap<8>(ROM[i],0,1,2,3,4,5,6,7); - /* questions banking handlers */ - m_maincpu->space(AS_PROGRAM).install_write_handler(0x4000, 0x4000, write8smo_delegate(*this, FUNC(pingpong_state::cashquiz_question_bank_high_w))); - m_maincpu->space(AS_PROGRAM).install_write_handler(0x4001, 0x4001, write8smo_delegate(*this, FUNC(pingpong_state::cashquiz_question_bank_low_w))); - - // 8 independents banks for questions - m_maincpu->space(AS_PROGRAM).install_read_bank(0x5000, 0x50ff, "bank1"); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x5100, 0x51ff, "bank2"); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x5200, 0x52ff, "bank3"); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x5300, 0x53ff, "bank4"); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x5400, 0x54ff, "bank5"); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x5500, 0x55ff, "bank6"); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x5600, 0x56ff, "bank7"); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x5700, 0x57ff, "bank8"); - // setup default banks - membank("bank1")->set_base(memregion("user1")->base() + 0x100*0 ); - membank("bank2")->set_base(memregion("user1")->base() + 0x100*1 ); - membank("bank3")->set_base(memregion("user1")->base() + 0x100*2 ); - membank("bank4")->set_base(memregion("user1")->base() + 0x100*3 ); - membank("bank5")->set_base(memregion("user1")->base() + 0x100*4 ); - membank("bank6")->set_base(memregion("user1")->base() + 0x100*5 ); - membank("bank7")->set_base(memregion("user1")->base() + 0x100*6 ); - membank("bank8")->set_base(memregion("user1")->base() + 0x100*7 ); + for(int i=0; i<8; i++) + m_banks[i]->set_base(memregion("user1")->base() + 0x100*i); } GAME( 1985, pingpong, 0, pingpong, pingpong, pingpong_state, empty_init, ROT0, "Konami", "Konami's Ping-Pong", 0 ) GAME( 1986, merlinmm, 0, merlinmm, merlinmm, pingpong_state, init_merlinmm, ROT90, "Zilec-Zenitone", "Merlins Money Maze", 0 ) -GAME( 1986, cashquiz, 0, merlinmm, cashquiz, pingpong_state, init_cashquiz, ROT0, "Zilec-Zenitone", "Cash Quiz (Type B, Version 5)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1986, cashquiz, 0, cashquiz, cashquiz, pingpong_state, init_cashquiz, ROT0, "Zilec-Zenitone", "Cash Quiz (Type B, Version 5)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/pipedrm.cpp b/src/mame/drivers/pipedrm.cpp index 03d4b8658ce..da4d940bda0 100644 --- a/src/mame/drivers/pipedrm.cpp +++ b/src/mame/drivers/pipedrm.cpp @@ -881,7 +881,8 @@ void pipedrm_state::init_pipedrm() { const memory_share *share = memshare("palette"); /* sprite RAM lives at the end of palette RAM */ - m_spriteram.set_target((uint8_t*)share->ptr() + 0xc00, 0x400); + m_spriteram = (uint8_t*)share->ptr() + 0xc00; + m_spriteram_size = 0x400; m_maincpu->space(AS_PROGRAM).install_ram(0xcc00, 0xcfff, m_spriteram); } diff --git a/src/mame/drivers/playch10.cpp b/src/mame/drivers/playch10.cpp index f11ea81963c..97dde797de2 100644 --- a/src/mame/drivers/playch10.cpp +++ b/src/mame/drivers/playch10.cpp @@ -381,6 +381,114 @@ void playch10_state::cart_map(address_map &map) map(0x8000, 0xffff).rom(); } +void playch10_state::cart_a_map(address_map &map) +{ + cart_map(map); + + /* switches vrom with writes to the $803e-$8041 area */ + map(0x8000, 0x8fff).w(FUNC(playch10_state::aboard_vrom_switch_w)); +} + +void playch10_state::cart_b_map(address_map &map) +{ + cart_map(map); + + /* Roms are banked at $8000 to $bfff */ + map(0x8000, 0xffff).w(FUNC(playch10_state::bboard_rom_switch_w)); +} + +void playch10_state::cart_c_map(address_map &map) +{ + cart_map(map); + + /* switches vrom with writes to $6000 */ + map(0x6000, 0x6000).w(FUNC(playch10_state::cboard_vrom_switch_w)); +} + +void playch10_state::cart_d_map(address_map &map) +{ + cart_map(map); + + /* MMC mapper at writes to $8000-$ffff */ + map(0x8000, 0xffff).w(FUNC(playch10_state::mmc1_rom_switch_w)); +} + +void playch10_state::cart_d2_map(address_map &map) +{ + cart_d_map(map); + + /* extra ram at $6000-$7fff */ + map(0x6000, 0x7fff).ram(); +} + +void playch10_state::cart_e_map(address_map &map) +{ + cart_map(map); + + /* nvram at $6000-$6fff */ + map(0x6000, 0x6fff).ram(); + + /* basically a mapper 9 on a nes */ + map(0x8000, 0xffff).w(FUNC(playch10_state::eboard_rom_switch_w)); +} + +void playch10_state::cart_f_map(address_map &map) +{ + cart_map(map); + + /* MMC mapper at writes to $8000-$ffff */ + map(0x8000, 0xffff).w(FUNC(playch10_state::mmc1_rom_switch_w)); +} + +void playch10_state::cart_f2_map(address_map &map) +{ + cart_f_map(map); + + /* extra ram at $6000-$6fff */ + map(0x6000, 0x6fff).ram(); +} + +void playch10_state::cart_g_map(address_map &map) +{ + cart_map(map); + + /* extra ram at $6000-$7fff */ + map(0x6000, 0x7fff).ram(); + + /* MMC mapper at writes to $8000-$ffff */ + map(0x8000, 0xffff).w(FUNC(playch10_state::gboard_rom_switch_w)); +} + +void playch10_state::cart_h_map(address_map &map) +{ + cart_map(map); + + /* extra ram at $6000-$7fff */ + map(0x6000, 0x7fff).ram(); + + /* Roms are banked at $8000 to $ffff */ + map(0x8000, 0xffff).w(FUNC(playch10_state::hboard_rom_switch_w)); +} + +void playch10_state::cart_i_map(address_map &map) +{ + cart_map(map); + + /* Roms are banked at $8000 to $ffff */ + map(0x8000, 0xffff).w(FUNC(playch10_state::iboard_rom_switch_w)); +} + +void playch10_state::cart_k_map(address_map &map) +{ + cart_map(map); + + /* extra ram at $6000-$7fff */ + map(0x6000, 0x7fff).ram(); + + /* Roms are banked at $8000 to $bfff */ + map(0x8000, 0xffff).w(FUNC(playch10_state::mmc1_rom_switch_w)); +} + /******************************************************************************/ static INPUT_PORTS_START( playch10 ) @@ -698,19 +806,81 @@ void playch10_state::playch10(machine_config &config) RP5H01(config, m_rp5h01, 0); } -void playch10_state::playchnv(machine_config &config) +void playch10_state::playch10_a(machine_config &config) +{ + playch10(config); + m_cartcpu->set_addrmap(AS_PROGRAM, &playch10_state::cart_a_map); +} + +void playch10_state::playch10_b(machine_config &config) +{ + playch10(config); + m_cartcpu->set_addrmap(AS_PROGRAM, &playch10_state::cart_b_map); +} + +void playch10_state::playch10_c(machine_config &config) +{ + playch10(config); + m_cartcpu->set_addrmap(AS_PROGRAM, &playch10_state::cart_c_map); +} + +void playch10_state::playch10_d(machine_config &config) +{ + playch10(config); + m_cartcpu->set_addrmap(AS_PROGRAM, &playch10_state::cart_d_map); +} + +void playch10_state::playch10_d2(machine_config &config) +{ + playch10(config); + m_cartcpu->set_addrmap(AS_PROGRAM, &playch10_state::cart_d2_map); +} + +void playch10_state::playch10_e(machine_config &config) { playch10(config); + m_cartcpu->set_addrmap(AS_PROGRAM, &playch10_state::cart_e_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); } -void playch10_state::playch10_hboard(machine_config &config) +void playch10_state::playch10_f(machine_config &config) +{ + playch10(config); + m_cartcpu->set_addrmap(AS_PROGRAM, &playch10_state::cart_f_map); +} + +void playch10_state::playch10_f2(machine_config &config) +{ + playch10(config); + m_cartcpu->set_addrmap(AS_PROGRAM, &playch10_state::cart_f2_map); +} + +void playch10_state::playch10_g(machine_config &config) { playch10(config); + m_cartcpu->set_addrmap(AS_PROGRAM, &playch10_state::cart_g_map); +} + +void playch10_state::playch10_h(machine_config &config) +{ + playch10(config); + m_cartcpu->set_addrmap(AS_PROGRAM, &playch10_state::cart_h_map); MCFG_VIDEO_START_OVERRIDE(playch10_state,playch10_hboard) MCFG_MACHINE_START_OVERRIDE(playch10_state,playch10_hboard) } +void playch10_state::playch10_i(machine_config &config) +{ + playch10(config); + m_cartcpu->set_addrmap(AS_PROGRAM, &playch10_state::cart_i_map); +} + +void playch10_state::playch10_k(machine_config &config) +{ + playch10(config); + m_cartcpu->set_addrmap(AS_PROGRAM, &playch10_state::cart_k_map); +} + /*************************************************************************** Game driver(s) @@ -1709,83 +1879,83 @@ void playch10_state::init_ttoon() /* YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR */ /* Standard Games */ -GAME( 1983, pc_tenis, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Tennis (PlayChoice-10)", 0 ) -GAME( 1983, pc_mario, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Mario Bros. (PlayChoice-10)", 0 ) -GAME( 1984, pc_bball, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo of America", "Baseball (PlayChoice-10)", 0 ) -GAME( 1984, pc_bfght, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Balloon Fight (PlayChoice-10)", 0 ) -GAME( 1984, pc_ebike, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Excite Bike (PlayChoice-10)", 0 ) -GAME( 1984, pc_golf, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Golf (PlayChoice-10)", 0 ) -GAME( 1985, pc_kngfu, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Irem (Nintendo license)", "Kung Fu (PlayChoice-10)", 0 ) -GAME( 1985, pc_smb, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Super Mario Bros. (PlayChoice-10)", 0 ) -GAME( 1986, pc_vball, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Volley Ball (PlayChoice-10)", 0 ) -GAME( 1987, pc_1942, playch10, playch10, playch10, playch10_state, init_pc_hrz, ROT0, "Capcom", "1942 (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1983, pc_tenis, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Tennis (PlayChoice-10)", 0 ) +GAME( 1983, pc_mario, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Mario Bros. (PlayChoice-10)", 0 ) +GAME( 1984, pc_bball, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo of America", "Baseball (PlayChoice-10)", 0 ) +GAME( 1984, pc_bfght, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Balloon Fight (PlayChoice-10)", 0 ) +GAME( 1984, pc_ebike, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Excite Bike (PlayChoice-10)", 0 ) +GAME( 1984, pc_golf, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Golf (PlayChoice-10)", 0 ) +GAME( 1985, pc_kngfu, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Irem (Nintendo license)", "Kung Fu (PlayChoice-10)", 0 ) +GAME( 1985, pc_smb, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Super Mario Bros. (PlayChoice-10)", 0 ) +GAME( 1986, pc_vball, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Volley Ball (PlayChoice-10)", 0 ) +GAME( 1987, pc_1942, playch10, playch10, playch10, playch10_state, init_pc_hrz, ROT0, "Capcom", "1942 (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) /* Gun Games */ -GAME( 1984, pc_duckh, playch10, playch10, playc10g, playch10_state, init_pc_gun, ROT0, "Nintendo", "Duck Hunt (PlayChoice-10)", 0 ) -GAME( 1984, pc_hgaly, playch10, playch10, playc10g, playch10_state, init_pc_gun, ROT0, "Nintendo", "Hogan's Alley (PlayChoice-10)", 0 ) -GAME( 1984, pc_wgnmn, playch10, playch10, playc10g, playch10_state, init_pc_gun, ROT0, "Nintendo", "Wild Gunman (PlayChoice-10)", 0 ) +GAME( 1984, pc_duckh, playch10, playch10, playc10g, playch10_state, init_pc_gun, ROT0, "Nintendo", "Duck Hunt (PlayChoice-10)", 0 ) +GAME( 1984, pc_hgaly, playch10, playch10, playc10g, playch10_state, init_pc_gun, ROT0, "Nintendo", "Hogan's Alley (PlayChoice-10)", 0 ) +GAME( 1984, pc_wgnmn, playch10, playch10, playc10g, playch10_state, init_pc_gun, ROT0, "Nintendo", "Wild Gunman (PlayChoice-10)", 0 ) /* A-Board Games */ -GAME( 1986, pc_grdus, playch10, playch10, playch10, playch10_state, init_pcaboard, ROT0, "Konami", "Gradius (PlayChoice-10)" , 0) // date: 860917 -GAME( 1986, pc_grdue, pc_grdus, playch10, playch10, playch10_state, init_pcaboard, ROT0, "Konami", "Gradius (PlayChoice-10, older)" , 0) // date: 860219 -GAME( 1987, pc_tkfld, playch10, playch10, playch10, playch10_state, init_pcaboard, ROT0, "Konami (Nintendo of America license)", "Track & Field (PlayChoice-10)", 0 ) +GAME( 1986, pc_grdus, playch10, playch10_a, playch10, playch10_state, init_pcaboard, ROT0, "Konami", "Gradius (PlayChoice-10)" , 0) // date: 860917 +GAME( 1986, pc_grdue, pc_grdus, playch10_a, playch10, playch10_state, init_pcaboard, ROT0, "Konami", "Gradius (PlayChoice-10, older)" , 0) // date: 860219 +GAME( 1987, pc_tkfld, playch10, playch10_a, playch10, playch10_state, init_pcaboard, ROT0, "Konami (Nintendo of America license)", "Track & Field (PlayChoice-10)", 0 ) /* B-Board Games */ -GAME( 1986, pc_pwrst, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Nintendo", "Pro Wrestling (PlayChoice-10)", 0 ) -GAME( 1986, pc_trjan, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Capcom USA (Nintendo of America license)", "Trojan (PlayChoice-10)", 0 ) -GAME( 1987, pc_cvnia, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Konami (Nintendo of America license)", "Castlevania (PlayChoice-10)", 0 ) -GAME( 1987, pc_dbldr, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Konami (Nintendo of America license)", "Double Dribble (PlayChoice-10)", 0 ) -GAME( 1987, pc_rnatk, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Konami (Nintendo of America license)", "Rush'n Attack (PlayChoice-10)", 0 ) -GAME( 1987, pc_rygar, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Tecmo (Nintendo of America license)", "Rygar (PlayChoice-10)", 0 ) -GAME( 1988, pc_cntra, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Konami (Nintendo of America license)", "Contra (PlayChoice-10)", 0 ) +GAME( 1986, pc_pwrst, playch10, playch10_b, playch10, playch10_state, init_pcbboard, ROT0, "Nintendo", "Pro Wrestling (PlayChoice-10)", 0 ) +GAME( 1986, pc_trjan, playch10, playch10_b, playch10, playch10_state, init_pcbboard, ROT0, "Capcom USA (Nintendo of America license)", "Trojan (PlayChoice-10)", 0 ) +GAME( 1987, pc_cvnia, playch10, playch10_b, playch10, playch10_state, init_pcbboard, ROT0, "Konami (Nintendo of America license)", "Castlevania (PlayChoice-10)", 0 ) +GAME( 1987, pc_dbldr, playch10, playch10_b, playch10, playch10_state, init_pcbboard, ROT0, "Konami (Nintendo of America license)", "Double Dribble (PlayChoice-10)", 0 ) +GAME( 1987, pc_rnatk, playch10, playch10_b, playch10, playch10_state, init_pcbboard, ROT0, "Konami (Nintendo of America license)", "Rush'n Attack (PlayChoice-10)", 0 ) +GAME( 1987, pc_rygar, playch10, playch10_b, playch10, playch10_state, init_pcbboard, ROT0, "Tecmo (Nintendo of America license)", "Rygar (PlayChoice-10)", 0 ) +GAME( 1988, pc_cntra, playch10, playch10_b, playch10, playch10_state, init_pcbboard, ROT0, "Konami (Nintendo of America license)", "Contra (PlayChoice-10)", 0 ) /* C-Board Games */ -GAME( 1986, pc_goons, playch10, playch10, playch10, playch10_state, init_pccboard, ROT0, "Konami", "The Goonies (PlayChoice-10)", 0 ) +GAME( 1986, pc_goons, playch10, playch10_c, playch10, playch10_state, init_pccboard, ROT0, "Konami", "The Goonies (PlayChoice-10)", 0 ) /* D-Board Games */ -GAME( 1986, pc_mtoid, playch10, playch10, playch10, playch10_state, init_pcdboard_2, ROT0, "Nintendo", "Metroid (PlayChoice-10)", 0 ) -GAME( 1987, pc_radrc, playch10, playch10, playch10, playch10_state, init_pcdboard, ROT0, "Square", "Rad Racer (PlayChoice-10)", 0 ) +GAME( 1986, pc_mtoid, playch10, playch10_d2,playch10, playch10_state, init_pcdboard_2, ROT0, "Nintendo", "Metroid (PlayChoice-10)", 0 ) +GAME( 1987, pc_radrc, playch10, playch10_d, playch10, playch10_state, init_pcdboard, ROT0, "Square", "Rad Racer (PlayChoice-10)", 0 ) /* E-Board Games */ -GAME( 1987, pc_miket, playch10, playchnv, playch10, playch10_state, init_pceboard, ROT0, "Nintendo", "Mike Tyson's Punch-Out!! (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1987, pc_miket, playch10, playch10_e, playch10, playch10_state, init_pceboard, ROT0, "Nintendo", "Mike Tyson's Punch-Out!! (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) /* F-Board Games */ -GAME( 1987, pc_rcpam, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Rare", "R.C. Pro-Am (PlayChoice-10)", 0 ) -GAME( 1988, pc_ddrgn, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Technos Japan", "Double Dragon (PlayChoice-10)", 0 ) -GAME( 1989, pc_ngaid, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden (PlayChoice-10)", 0 ) -GAME( 1989, pc_tmnt, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Konami (Nintendo of America license)", "Teenage Mutant Ninja Turtles (PlayChoice-10)", 0 ) -GAME( 1989, pc_ftqst, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Sunsoft (Nintendo of America license)", "Uncle Fester's Quest: The Addams Family (PlayChoice-10)", 0 ) -GAME( 1989, pc_bstar, playch10, playch10, playch10, playch10_state, init_pcfboard_2, ROT0, "SNK (Nintendo of America license)", "Baseball Stars: Be a Champ! (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1989, pc_tbowl, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Tecmo (Nintendo of America license)", "Tecmo Bowl (PlayChoice-10)", 0 ) -GAME( 1990, pc_virus, pc_drmro, playch10, playch10, playch10_state, init_virus, ROT0, "Nintendo", "Virus (Dr. Mario prototype, PlayChoice-10)", 0 ) -GAME( 1990, pc_rrngr, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Capcom USA (Nintendo of America license)", "Chip'n Dale: Rescue Rangers (PlayChoice-10)", 0 ) -GAME( 1990, pc_drmro, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Nintendo", "Dr. Mario (PlayChoice-10)", 0 ) -GAME( 1990, pc_bload, playch10, playch10, playch10, playch10_state, init_virus, ROT0, "Jaleco (Nintendo of America license)", "Bases Loaded (Prototype, PlayChoice-10)", 0 ) -GAME( 1990, pc_ynoid, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Capcom USA (Nintendo of America license)", "Yo! Noid (PlayChoice-10)", 0 ) +GAME( 1987, pc_rcpam, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Rare", "R.C. Pro-Am (PlayChoice-10)", 0 ) +GAME( 1988, pc_ddrgn, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Technos Japan", "Double Dragon (PlayChoice-10)", 0 ) +GAME( 1989, pc_ngaid, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden (PlayChoice-10)", 0 ) +GAME( 1989, pc_tmnt, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Konami (Nintendo of America license)", "Teenage Mutant Ninja Turtles (PlayChoice-10)", 0 ) +GAME( 1989, pc_ftqst, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Sunsoft (Nintendo of America license)", "Uncle Fester's Quest: The Addams Family (PlayChoice-10)", 0 ) +GAME( 1989, pc_bstar, playch10, playch10_f2,playch10, playch10_state, init_pcfboard_2, ROT0, "SNK (Nintendo of America license)", "Baseball Stars: Be a Champ! (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1989, pc_tbowl, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Tecmo (Nintendo of America license)", "Tecmo Bowl (PlayChoice-10)", 0 ) +GAME( 1990, pc_virus, pc_drmro, playch10_f, playch10, playch10_state, init_virus, ROT0, "Nintendo", "Virus (Dr. Mario prototype, PlayChoice-10)", 0 ) +GAME( 1990, pc_rrngr, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Capcom USA (Nintendo of America license)", "Chip'n Dale: Rescue Rangers (PlayChoice-10)", 0 ) +GAME( 1990, pc_drmro, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Nintendo", "Dr. Mario (PlayChoice-10)", 0 ) +GAME( 1990, pc_bload, playch10, playch10_f, playch10, playch10_state, init_virus, ROT0, "Jaleco (Nintendo of America license)", "Bases Loaded (Prototype, PlayChoice-10)", 0 ) +GAME( 1990, pc_ynoid, playch10, playch10_f, playch10, playch10_state, init_pcfboard, ROT0, "Capcom USA (Nintendo of America license)", "Yo! Noid (PlayChoice-10)", 0 ) /* G-Board Games */ -GAME( 1988, pc_smb2, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Nintendo", "Super Mario Bros. 2 (PlayChoice-10)", 0 ) -GAME( 1988, pc_smb3, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Nintendo", "Super Mario Bros. 3 (PlayChoice-10)", 0 ) -GAME( 1990, pc_mman3, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Capcom USA (Nintendo of America license)", "Mega Man III (PlayChoice-10)", 0 ) -GAME( 1990, pc_suprc, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Konami (Nintendo of America license)", "Super C (PlayChoice-10)", 0 ) -GAME( 1990, pc_tmnt2, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Konami (Nintendo of America license)", "Teenage Mutant Ninja Turtles II: The Arcade Game (PlayChoice-10)", 0 ) -GAME( 1990, pc_wcup, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Technos Japan (Nintendo license)", "Nintendo World Cup (PlayChoice-10)", 0 ) -GAME( 1990, pc_ngai2, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden Episode II: The Dark Sword of Chaos (PlayChoice-10)", 0 ) -GAME( 1991, pc_ngai3, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden Episode III: The Ancient Ship of Doom (PlayChoice-10)", 0 ) -GAME( 1991, pc_pwbld, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Taito (Nintendo of America license)", "Power Blade (PlayChoice-10)", 0 ) -GAME( 1991, pc_rkats, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Atlus (Nintendo of America license)", "Rockin' Kats (PlayChoice-10)", 0 ) -GAME( 1991, pc_ttoon, playch10, playch10, playch10, playch10_state, init_ttoon, ROT0, "Konami (Nintendo of America license)", "Tiny Toon Adventures (prototype) (PlayChoice-10)", 0 ) // Code is final USA NES version of the game, (which is MMC3C according to nes.xml, but this cart has MMC3B) +GAME( 1988, pc_smb2, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Nintendo", "Super Mario Bros. 2 (PlayChoice-10)", 0 ) +GAME( 1988, pc_smb3, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Nintendo", "Super Mario Bros. 3 (PlayChoice-10)", 0 ) +GAME( 1990, pc_mman3, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Capcom USA (Nintendo of America license)", "Mega Man III (PlayChoice-10)", 0 ) +GAME( 1990, pc_suprc, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Konami (Nintendo of America license)", "Super C (PlayChoice-10)", 0 ) +GAME( 1990, pc_tmnt2, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Konami (Nintendo of America license)", "Teenage Mutant Ninja Turtles II: The Arcade Game (PlayChoice-10)", 0 ) +GAME( 1990, pc_wcup, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Technos Japan (Nintendo license)", "Nintendo World Cup (PlayChoice-10)", 0 ) +GAME( 1990, pc_ngai2, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden Episode II: The Dark Sword of Chaos (PlayChoice-10)", 0 ) +GAME( 1991, pc_ngai3, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden Episode III: The Ancient Ship of Doom (PlayChoice-10)", 0 ) +GAME( 1991, pc_pwbld, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Taito (Nintendo of America license)", "Power Blade (PlayChoice-10)", 0 ) +GAME( 1991, pc_rkats, playch10, playch10_g, playch10, playch10_state, init_pcgboard, ROT0, "Atlus (Nintendo of America license)", "Rockin' Kats (PlayChoice-10)", 0 ) +GAME( 1991, pc_ttoon, playch10, playch10_g, playch10, playch10_state, init_ttoon, ROT0, "Konami (Nintendo of America license)", "Tiny Toon Adventures (prototype) (PlayChoice-10)", 0 ) // Code is final USA NES version of the game, (which is MMC3C according to nes.xml, but this cart has MMC3B) /* variant with 4 screen mirror */ -GAME( 1990, pc_radr2, playch10, playch10, playch10, playch10_state, init_pcgboard_type2, ROT0, "Square (Nintendo of America license)", "Rad Racer II (PlayChoice-10)", 0 ) -GAME( 1985, pc_gntlt, playch10, playch10, playch10, playch10_state, init_pcgboard_type2, ROT0, "Atari / Tengen (Nintendo of America license)", "Gauntlet (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1990, pc_radr2, playch10, playch10_g, playch10, playch10_state, init_pcgboard_type2, ROT0, "Square (Nintendo of America license)", "Rad Racer II (PlayChoice-10)", 0 ) +GAME( 1985, pc_gntlt, playch10, playch10_g, playch10, playch10_state, init_pcgboard_type2, ROT0, "Atari / Tengen (Nintendo of America license)", "Gauntlet (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) /* H-Board Games */ -GAME( 1988, pc_pinbt, playch10, playch10_hboard, playch10, playch10_state, init_pchboard, ROT0, "Rare (Nintendo of America license)", "PinBot (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1988, pc_pinbt, playch10, playch10_h, playch10, playch10_state, init_pchboard, ROT0, "Rare (Nintendo of America license)", "PinBot (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) /* i-Board Games */ -GAME( 1989, pc_cshwk, playch10, playch10, playch10, playch10_state, init_pciboard, ROT0, "Rare (Nintendo of America license)", "Captain Sky Hawk (PlayChoice-10)", 0 ) -GAME( 1990, pc_sjetm, playch10, playch10, playch10, playch10_state, init_pciboard, ROT0, "Rare", "Solar Jetman (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1989, pc_cshwk, playch10, playch10_i, playch10, playch10_state, init_pciboard, ROT0, "Rare (Nintendo of America license)", "Captain Sky Hawk (PlayChoice-10)", 0 ) +GAME( 1990, pc_sjetm, playch10, playch10_i, playch10, playch10_state, init_pciboard, ROT0, "Rare", "Solar Jetman (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS ) /* K-Board Games */ -GAME( 1991, pc_moglf, playch10, playch10, playch10, playch10_state, init_pckboard, ROT0, "Nintendo", "Mario's Open Golf (PlayChoice-10)", 0 ) +GAME( 1991, pc_moglf, playch10, playch10_k, playch10, playch10_state, init_pckboard, ROT0, "Nintendo", "Mario's Open Golf (PlayChoice-10)", 0 ) diff --git a/src/mame/drivers/poisk1.cpp b/src/mame/drivers/poisk1.cpp index 6e988f870e9..113486018d2 100644 --- a/src/mame/drivers/poisk1.cpp +++ b/src/mame/drivers/poisk1.cpp @@ -235,11 +235,11 @@ void p1_state::p1_ppi2_porta_w(uint8_t data) program.unmap_readwrite(0xb8000, 0xbbfff, 0); if (BIT(data, 3)) { - program.install_readwrite_bank(0xb8000, 0xbbfff, "bank11"); + program.install_ram(0xb8000, 0xbbfff, m_video.videoram); } else { - program.install_read_bank(0xb8000, 0xbbfff, "bank11"); + program.install_rom(0xb8000, 0xbbfff, m_video.videoram); program.install_write_handler(0xb8000, 0xbbfff, write8sm_delegate(*this, FUNC(p1_state::p1_vram_w))); } } @@ -417,10 +417,8 @@ void p1_state::video_start() m_video.videoram = m_video.videoram_base.get(); m_video.stride = 80; - space.install_readwrite_bank(0xb8000, 0xbbfff, "bank11"); - machine().root_device().membank("bank11")->set_base(m_video.videoram); - space.install_readwrite_bank(0xbc000, 0xbffff, "bank12"); - machine().root_device().membank("bank12")->set_base(m_video.videoram + 0x4000); + space.install_ram(0xb8000, 0xbbfff, m_video.videoram); + space.install_ram(0xbc000, 0xbffff, m_video.videoram + 0x4000); } uint32_t p1_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) @@ -593,8 +591,7 @@ void p1_state::init_poisk1() { address_space &program = m_maincpu->space(AS_PROGRAM); - program.install_readwrite_bank(0, m_ram->size() - 1, "bank10"); - membank("bank10")->set_base(m_ram->pointer()); + program.install_ram(0, m_ram->size() - 1, m_ram->pointer()); } void p1_state::machine_start() diff --git a/src/mame/drivers/popeye.cpp b/src/mame/drivers/popeye.cpp index 3d240a079c7..03e395de846 100644 --- a/src/mame/drivers/popeye.cpp +++ b/src/mame/drivers/popeye.cpp @@ -171,11 +171,9 @@ void tnx1_state::protection_w(offs_t offset, uint8_t data) } -void tnx1_state::maincpu_program_map(address_map &map) +void tnx1_state::maincpu_common_map(address_map &map) { map(0x0000, 0x7fff).rom().region("maincpu",0); - map(0x8000, 0x87ff).ram().share("ramlow"); - map(0x8800, 0x8bff).nopw(); // Attempts to initialize this area with 00 on boot map(0x8c00, 0x8e7f).ram().share("dmasource"); map(0x8e80, 0x8fff).ram().share("ramhigh"); map(0xa000, 0xa3ff).w(FUNC(tnx1_state::popeye_videoram_w)).share("videoram"); @@ -184,10 +182,17 @@ void tnx1_state::maincpu_program_map(address_map &map) map(0xe000, 0xe001).rw(FUNC(tnx1_state::protection_r), FUNC(tnx1_state::protection_w)); } +void tnx1_state::maincpu_program_map(address_map &map) +{ + maincpu_common_map(map); + map(0x8000, 0x87ff).ram().share("ramlow"); + map(0x8800, 0x8bff).nopw(); // Attempts to initialize this area with 00 on boot +} + void tpp2_state::maincpu_program_map(address_map &map) { - tpp1_state::maincpu_program_map(map); - map(0x8000, 0x87ff).unmaprw(); // 7f (unpopulated) + maincpu_common_map(map); + // 8000-87ff is unpopulated (7f) map(0x8800, 0x8bff).ram().share("ramlow"); // 7h map(0xc000, 0xdfff).w(FUNC(tpp2_state::background_w)); } diff --git a/src/mame/drivers/prestige.cpp b/src/mame/drivers/prestige.cpp index 4cd781a74fd..e18fcaec74a 100644 --- a/src/mame/drivers/prestige.cpp +++ b/src/mame/drivers/prestige.cpp @@ -238,12 +238,12 @@ void prestige_state::bankswitch_w(offs_t offset, uint8_t data) { //cartridge memory is writable if (data & 0x02) - program.install_readwrite_bank(0x4000, 0x7fff, "bank2"); + program.install_readwrite_bank(0x4000, 0x7fff, m_bank2); else program.unmap_write(0x4000, 0x7fff); if (data & 0x04) - program.install_readwrite_bank(0x8000, 0xbfff, "bank3"); + program.install_readwrite_bank(0x8000, 0xbfff, m_bank3); else program.unmap_write(0x8000, 0xbfff); } @@ -251,7 +251,7 @@ void prestige_state::bankswitch_w(offs_t offset, uint8_t data) { //cartridge memory is read-only program.unmap_write(0x4000, 0xbfff); - program.install_read_bank(0x8000, 0xbfff, "bank3"); + program.install_read_bank(0x8000, 0xbfff, m_bank3); } break; case 6: diff --git a/src/mame/drivers/ps2.cpp b/src/mame/drivers/ps2.cpp index 7f5139e4c2a..3d2768e0152 100644 --- a/src/mame/drivers/ps2.cpp +++ b/src/mame/drivers/ps2.cpp @@ -86,9 +86,7 @@ void ps2_state::machine_start() if (m_ram->size() > 0xa0000) { offs_t ram_limit = 0x100000 + m_ram->size() - 0xa0000; - space.install_read_bank(0x100000, ram_limit - 1, "bank1"); - space.install_write_bank(0x100000, ram_limit - 1, "bank1"); - membank("bank1")->set_base(m_ram->pointer() + 0xa0000); + space.install_ram(0x100000, ram_limit - 1, m_ram->pointer() + 0xa0000); } } diff --git a/src/mame/drivers/psychic5.cpp b/src/mame/drivers/psychic5.cpp index 60c0562ae52..64ef71a83f3 100644 --- a/src/mame/drivers/psychic5.cpp +++ b/src/mame/drivers/psychic5.cpp @@ -515,7 +515,7 @@ void psychic5_state::bombsa_sound_map(address_map &map) map(0x0000, 0xbfff).rom(); map(0xc000, 0xc7ff).ram(); map(0xe000, 0xe000).r("soundlatch", FUNC(generic_latch_8_device::read)); - map(0xf000, 0xf000).writeonly(); // Is this a confirm of some sort? + map(0xf000, 0xf000).nopw(); // Is this a confirm of some sort? } void psychic5_state::bombsa_soundport_map(address_map &map) diff --git a/src/mame/drivers/rohga.cpp b/src/mame/drivers/rohga.cpp index 90343e117a5..1af9b32eb22 100644 --- a/src/mame/drivers/rohga.cpp +++ b/src/mame/drivers/rohga.cpp @@ -202,7 +202,7 @@ void rohga_state::wizdfire_map(address_map &map) map(0x208000, 0x208fff).rw("tilegen2", FUNC(deco16ic_device::pf1_data_r), FUNC(deco16ic_device::pf1_data_w)); map(0x20a000, 0x20afff).rw("tilegen2", FUNC(deco16ic_device::pf2_data_r), FUNC(deco16ic_device::pf2_data_w)); - map(0x20b000, 0x20b3ff).writeonly(); /* ? Always 0 written */ + map(0x20b000, 0x20b3ff).nopw(); /* ? Always 0 written */ map(0x20c000, 0x20c7ff).ram().share("pf3_rowscroll"); map(0x20e000, 0x20e7ff).ram().share("pf4_rowscroll"); diff --git a/src/mame/drivers/rollext.cpp b/src/mame/drivers/rollext.cpp index d7ce3409478..5aff055ec05 100644 --- a/src/mame/drivers/rollext.cpp +++ b/src/mame/drivers/rollext.cpp @@ -521,7 +521,7 @@ void rollext_state::memmap(address_map &map) map(0xa0000000, 0xa00000ff).rw(FUNC(rollext_state::a0000000_r), FUNC(rollext_state::a0000000_w)); map(0xb0000000, 0xb0000007).r(FUNC(rollext_state::b0000000_r)); map(0xc0000000, 0xc03fffff).rom().region("rom1", 0); - map(0xff000000, 0xffffffff).ram().region("rom0", 0); + map(0xff000000, 0xffffffff).rom().region("rom0", 0); } diff --git a/src/mame/drivers/scorpion.cpp b/src/mame/drivers/scorpion.cpp index 0f2925a1d96..ea204948b1f 100644 --- a/src/mame/drivers/scorpion.cpp +++ b/src/mame/drivers/scorpion.cpp @@ -216,7 +216,7 @@ MACHINE_RESET_MEMBER(scorpion_state,scorpion) m_p_ram = memregion("maincpu")->base(); m_ram_0000 = nullptr; - m_program->install_read_bank(0x0000, 0x3fff, "bank1"); + m_program->install_read_bank(0x0000, 0x3fff, m_bank1); m_program->install_write_handler(0x0000, 0x3fff, write8sm_delegate(*this, FUNC(scorpion_state::scorpion_0000_w))); m_beta->disable(); diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp index 00a43d1abe3..7e47e8b3517 100644 --- a/src/mame/drivers/segas16b.cpp +++ b/src/mame/drivers/segas16b.cpp @@ -10293,7 +10293,7 @@ void isgsm_state::main_bank_change_w(uint16_t data) void isgsm_state::isgsm_map(address_map &map) { - map(0x000000, 0x0fffff).bankr(ISGSM_MAIN_BANK).region("bios", 0); // this area is ALWAYS read-only, even when the game is banked in + map(0x000000, 0x0fffff).bankr(ISGSM_MAIN_BANK); // this area is ALWAYS read-only, even when the game is banked in map(0x200000, 0x23ffff).ram(); // used during startup for decompression map(0x3f0000, 0x3fffff).w(FUNC(isgsm_state::rom_5704_bank_w)); map(0x400000, 0x40ffff).rw(m_segaic16vid, FUNC(segaic16_video_device::tileram_r), FUNC(segaic16_video_device::tileram_w)).share("tileram"); diff --git a/src/mame/drivers/segas32.cpp b/src/mame/drivers/segas32.cpp index d07f28549dc..76010b63c12 100644 --- a/src/mame/drivers/segas32.cpp +++ b/src/mame/drivers/segas32.cpp @@ -566,10 +566,10 @@ segas32_state::segas32_state(const machine_config &mconfig, device_type type, co : device_t(mconfig, type, tag, owner, clock) , m_z80_shared_ram(*this,"z80_shared_ram") , m_system32_workram(*this,"workram") - , m_videoram(*this,"videoram", 0) - , m_spriteram(*this,"spriteram", 0) + , m_videoram(*this,"videoram") + , m_spriteram(*this,"spriteram") , m_soundram(*this, "soundram") - , m_paletteram(*this,"paletteram.%u", 0, uint8_t(0)) + , m_paletteram(*this,"paletteram.%u", 0) , m_maincpu(*this, "maincpu") , m_soundcpu(*this, "soundcpu") , m_multipcm(*this, "sega") diff --git a/src/mame/drivers/seibuspi.cpp b/src/mame/drivers/seibuspi.cpp index c970d99cd1d..55955c765e3 100644 --- a/src/mame/drivers/seibuspi.cpp +++ b/src/mame/drivers/seibuspi.cpp @@ -1008,8 +1008,8 @@ void seibuspi_state::base_map(address_map &map) map(0x00000604, 0x00000607).portr("INPUTS"); map(0x00000608, 0x0000060b).portr("EXCH"); map(0x0000060c, 0x0000060f).portr("SYSTEM"); - map(0x00200000, 0x003fffff).rom().share("share1"); - map(0xffe00000, 0xffffffff).rom().region("maincpu", 0).share("share1"); // ROM location in real-mode + map(0x00200000, 0x003fffff).rom().region("maincpu", 0); + map(0xffe00000, 0xffffffff).rom().region("maincpu", 0); // ROM location in real-mode } void seibuspi_state::sei252_map(address_map &map) @@ -1119,8 +1119,8 @@ void seibuspi_state::sys386f_map(address_map &map) map(0x00000494, 0x00000497).w(FUNC(seibuspi_state::video_dma_address_w)); map(0x00000600, 0x00000607).r("ymz", FUNC(ymz280b_device::read)).umask32(0x000000ff); map(0x0000060c, 0x0000060f).r(FUNC(seibuspi_state::ejsakura_keyboard_r)); - map(0x00200000, 0x003fffff).rom().share("share1"); - map(0xffe00000, 0xffffffff).rom().region("maincpu", 0).share("share1"); // ROM location in real-mode + map(0x00200000, 0x003fffff).rom().region("maincpu", 0); + map(0xffe00000, 0xffffffff).rom().region("maincpu", 0); // ROM location in real-mode } diff --git a/src/mame/drivers/socrates.cpp b/src/mame/drivers/socrates.cpp index 4c2da8d187e..522f7439e8d 100644 --- a/src/mame/drivers/socrates.cpp +++ b/src/mame/drivers/socrates.cpp @@ -139,7 +139,7 @@ protected: optional_device<generic_slot_device> m_cart; memory_region *m_cart_reg; required_memory_region m_bios_reg; - required_memory_region m_vram_reg; + required_shared_ptr<u8> m_vram_reg; required_device<address_map_bank_device> m_rombank1; optional_device<address_map_bank_device> m_rombank2; // iqunlimz only required_device<address_map_bank_device> m_rambank1; @@ -406,33 +406,27 @@ void socrates_state::device_timer(emu_timer &timer, device_timer_id id, int para void socrates_state::init_socrates() { - uint8_t *gfx = memregion("vram")->base(); - /* fill vram with its init powerup bit pattern, so startup has the checkerboard screen */ for (int i = 0; i < 0x10000; i++) - gfx[i] = (((i&0x1)?0x00:0xFF)^((i&0x100)?0x00:0xff)); + m_vram_reg[i] = (((i&0x1)?0x00:0xFF)^((i&0x100)?0x00:0xff)); m_maincpu->set_clock_scale(0.45f); /// TODO: RAM access waitstates etc. aren't emulated - slow the CPU to compensate m_kbmcu_type = 0; } void socrates_state::init_iqunlimz() { - uint8_t *gfx = memregion("vram")->base(); - /* fill vram with its init powerup bit pattern, so startup has the checkerboard screen... is this even right for the iqunlimz? */ for (int i = 0; i < 0x20000; i++) - gfx[i] = (((i&0x1)?0x00:0xFF)^((i&0x100)?0x00:0xff)); + m_vram_reg[i] = (((i&0x1)?0x00:0xFF)^((i&0x100)?0x00:0xff)); //m_maincpu->set_clock_scale(0.45f); /// TODO: RAM access waitstates etc. aren't emulated - slow the CPU to compensate m_kbmcu_type = 1; } void socrates_state::init_vpainter() { - uint8_t *gfx = memregion("vram")->base(); - /* fill vram with its init powerup bit pattern, so startup has the checkerboard screen */ for (int i = 0; i < 0x10000; i++) - gfx[i] = (((i&0x1)?0x00:0xFF)^((i&0x100)?0x00:0xff)); + m_vram_reg[i] = (((i&0x1)?0x00:0xFF)^((i&0x100)?0x00:0xff)); m_maincpu->set_clock_scale(0.45f); /// TODO: RAM access waitstates etc. aren't emulated - slow the CPU to compensate m_kbmcu_type = 2; } @@ -811,7 +805,7 @@ uint32_t socrates_state::screen_update_socrates(screen_device &screen, bitmap_in { static const uint8_t fixedcolors[8] = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0xF7 }; - uint8_t const *const videoram = m_vram_reg->base(); + uint8_t const *const videoram = m_vram_reg; int lineoffset = 0; // if display ever tries to display data at 0xfxxx, offset line displayed by 0x1000 for (int y = 0; y < 228; y++) { @@ -878,12 +872,12 @@ int iqunlimz_state::get_color(int index, int y) if (index < 8) return m_colors[index]; else - return m_vram_reg->as_u8(0xf000 + ((index & 0x0f) << 8) + ((m_scroll_offset + y + 1) & 0xff)); + return m_vram_reg[0xf000 + ((index & 0x0f) << 8) + ((m_scroll_offset + y + 1) & 0xff)]; } uint32_t iqunlimz_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - uint8_t *videoram = m_vram_reg->base(); + uint8_t *videoram = m_vram_reg; // bitmap layer for (int y=0; y<224; y++) @@ -1016,7 +1010,7 @@ void socrates_state::socrates_rombank_map(address_map &map) void socrates_state::socrates_rambank_map(address_map &map) { map.unmap_value_high(); - map(0x0000, 0xffff).ram().region("vram", 0).mirror(0x30000); + map(0x0000, 0xffff).ram().share("vram").mirror(0x30000); } void socrates_state::socrates_io(address_map &map) @@ -1065,7 +1059,7 @@ void iqunlimz_state::iqunlimz_rombank_map(address_map &map) void iqunlimz_state::iqunlimz_rambank_map(address_map &map) { map.unmap_value_high(); - map(0x0000, 0x3ffff).ram().region("vram", 0); + map(0x0000, 0x3ffff).ram().share("vram"); } void iqunlimz_state::iqunlimz_io(address_map &map) @@ -1613,8 +1607,6 @@ ROM_START(socrates) */ ROM_LOAD("27-00817-000-000.u1", 0x00000, 0x40000, CRC(80f5aa20) SHA1(4fd1ff7f78b5dd2582d5de6f30633e4e4f34ca8f)) // Label: "(Vtech) 27-00817-000-000 // (C)1987 VIDEO TECHNOLOGY // 8811 D" - ROM_REGION(0x10000, "vram", ROMREGION_ERASEFF) /* fill with ff, driver_init changes this to the 'correct' startup pattern */ - ROM_REGION(0x800, "kbmcu", ROMREGION_ERASEFF) ROM_LOAD("tmp42c40p1844.u6", 0x000, 0x200, NO_DUMP) /* keyboard IR decoder MCU */ @@ -1634,8 +1626,6 @@ ROM_START(socratfc) /* Socrates SAITOUT (French Canadian) NTSC */ ROM_LOAD("27-00884-001-000.u1", 0x00000, 0x40000, CRC(042d9d21) SHA1(9ffc67b2721683b2536727d0592798fbc4d061cb)) // Label: "(Vtech) 27-00884-001-000 // (C)1988 VIDEO TECHNOLOGY // 8911 D" - ROM_REGION(0x10000, "vram", ROMREGION_ERASEFF) /* fill with ff, driver_init changes this to the 'correct' startup pattern */ - ROM_REGION(0x800, "kbmcu", ROMREGION_ERASEFF) ROM_LOAD("tmp42c40p1844.u6", 0x000, 0x200, NO_DUMP) /* keyboard IR decoder MCU */ @@ -1657,8 +1647,6 @@ ROM_START(profweis) ROM_SYSTEM_BIOS(1, "88", "1988") ROMX_LOAD("27-00885-000-000.u1", 0x00000, 0x40000, CRC(fcaf8850) SHA1(a99011ee6a1ef63461c00d062278951252f117db), ROM_BIOS(1)) // Label: "(Vtech) 27-00885-000-000 // (C)1988 VIDEO TECHNOLOGY // 8844 D" - ROM_REGION(0x10000, "vram", ROMREGION_ERASEFF) /* fill with ff, driver_init changes this to the 'correct' startup pattern */ - ROM_REGION(0x800, "kbmcu", ROMREGION_ERASEFF) ROM_LOAD("tmp42c40p1844.u6", 0x000, 0x200, NO_DUMP) /* keyboard IR decoder MCU */ @@ -1676,8 +1664,6 @@ ROM_START( iqunlimz ) ROM_REGION(0x1000, "kbmcu", ROMREGION_ERASEFF) ROM_LOAD("kbmcu.bin", 0x0000, 0x1000, NO_DUMP) /* keyboard reader MCU */ - - ROM_REGION( 0x40000, "vram", ROMREGION_ERASE ) ROM_END ROM_START( vpainter ) @@ -1690,8 +1676,6 @@ ROM_START( vpainter ) ///TODO: get rid of these regions in the status_read function or make it socrates-specific ROM_REGION(0x2000, "speechint", ROMREGION_ERASE00) // doesn't exist? on vpainter, presumably reads as all zeroes ROM_REGION(0x10000, "speechext", ROMREGION_ERASE00) // doesn't exist? on vpainter, presumably reads as all zeroes - - ROM_REGION( 0x10000, "vram", ROMREGION_ERASE ) ROM_END /****************************************************************************** diff --git a/src/mame/drivers/srmp5.cpp b/src/mame/drivers/srmp5.cpp index 414d65e9829..f8ea8353e7b 100644 --- a/src/mame/drivers/srmp5.cpp +++ b/src/mame/drivers/srmp5.cpp @@ -369,7 +369,7 @@ void srmp5_state::srmp5_mem(address_map &map) { map(0x00000000, 0x000fffff).ram(); //maybe 0 - 2fffff ? map(0x002f0000, 0x002f7fff).ram(); - map(0x01000000, 0x01000003).writeonly(); // 0xaa .. watchdog ? + map(0x01000000, 0x01000003).nopw(); // 0xaa .. watchdog ? map(0x01800000, 0x01800003).ram(); //?1 map(0x01800004, 0x01800007).portr("DSW1"); map(0x01800008, 0x0180000b).portr("DSW2"); @@ -392,7 +392,7 @@ void srmp5_state::srmp5_mem(address_map &map) map(0x0a200000, 0x0a3fffff).rw(FUNC(srmp5_state::tileram_r), FUNC(srmp5_state::tileram_w)); map(0x0fc00000, 0x0fdfffff).mirror(0x10000000).rom().region("maincpu", 0); - map(0x1eff0000, 0x1eff001f).writeonly(); + map(0x1eff0000, 0x1eff001f).nopw(); map(0x1eff003c, 0x1eff003f).r(FUNC(srmp5_state::irq_ack_clear)); } diff --git a/src/mame/drivers/srmp6.cpp b/src/mame/drivers/srmp6.cpp index 351c3d67bb5..6fc96e6f31e 100644 --- a/src/mame/drivers/srmp6.cpp +++ b/src/mame/drivers/srmp6.cpp @@ -85,7 +85,7 @@ public: srmp6_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_chrram(*this, "chrram"), - m_dmaram(*this, "dmaram"), + m_dmaram(*this, "dmaram", 0x100, ENDIANNESS_BIG), m_video_regs(*this, "video_regs"), m_nile_region(*this, "nile"), m_nile_bank(*this, "nile_bank"), @@ -106,7 +106,7 @@ protected: private: std::unique_ptr<u16[]> m_tileram; required_shared_ptr<u16> m_chrram; - optional_shared_ptr<u16> m_dmaram; + memory_share_creator<u16> m_dmaram; required_shared_ptr<u16> m_video_regs; required_region_ptr<u8> m_nile_region; @@ -192,7 +192,6 @@ void srmp6_state::update_palette() void srmp6_state::video_start() { m_tileram = make_unique_clear<u16[]>(0x100000*16/2); - m_dmaram.allocate(0x100/2); // create the char set (gfx will then be updated dynamically from RAM) m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(m_palette, tiles8x8_layout, (u8*)m_tileram.get(), 0, m_palette->entries() / 256, 0)); diff --git a/src/mame/drivers/ssv.cpp b/src/mame/drivers/ssv.cpp index 9df235de85a..9c7180111f7 100644 --- a/src/mame/drivers/ssv.cpp +++ b/src/mame/drivers/ssv.cpp @@ -437,7 +437,7 @@ void ssv_state::drifto94_map(address_map &map) { ssv_map(map, 0xc00000); // map(0x210002, 0x210003).nopw(); // ? 1 at the start - map(0x400000, 0x47ffff).writeonly(); // ? + map(0x400000, 0x47ffff).nopw(); // ? map(0x480000, 0x480001).rw(FUNC(ssv_state::dsp_dr_r), FUNC(ssv_state::dsp_dr_w)); map(0x482000, 0x482fff).rw(FUNC(ssv_state::dsp_r), FUNC(ssv_state::dsp_w)); map(0x483000, 0x485fff).nopw(); // ? @@ -579,7 +579,7 @@ void ssv_state::keithlcy_map(address_map &map) // map(0x210002, 0x210003).nopw(); // ? 1 at the start map(0x210010, 0x210011).nopw(); // map(0x21000e, 0x21000f).nopr(); // - map(0x400000, 0x47ffff).writeonly(); // ? + map(0x400000, 0x47ffff).nopw(); // ? } @@ -618,7 +618,7 @@ void ssv_state::mslider_map(address_map &map) ssv_map(map, 0xf00000); map(0x010000, 0x01ffff).rw(FUNC(ssv_state::mainram_r), FUNC(ssv_state::mainram_w)); // RAM Mirror // map(0x210002, 0x210003).nopw(); // ? 1 at the start - map(0x400000, 0x47ffff).writeonly(); // ? + map(0x400000, 0x47ffff).nopw(); // ? // map(0x500000, 0x500001).nopw(); // ? ff at the start } diff --git a/src/mame/drivers/starwars.cpp b/src/mame/drivers/starwars.cpp index a74fed670c0..cefa10998ee 100644 --- a/src/mame/drivers/starwars.cpp +++ b/src/mame/drivers/starwars.cpp @@ -127,7 +127,7 @@ void starwars_state::esb_slapstic_w(address_space &space, offs_t offset, uint8_t void starwars_state::main_map(address_map &map) { - map(0x0000, 0x2fff).ram().share("avg:vectorram").region("maincpu", 0); + map(0x0000, 0x2fff).ram().share("avg:vectorram"); map(0x3000, 0x3fff).rom(); /* vector_rom */ map(0x4300, 0x431f).portr("IN0"); map(0x4320, 0x433f).portr("IN1"); diff --git a/src/mame/drivers/subsino.cpp b/src/mame/drivers/subsino.cpp index c8360b02604..ba1af3e54df 100644 --- a/src/mame/drivers/subsino.cpp +++ b/src/mame/drivers/subsino.cpp @@ -3813,8 +3813,6 @@ void subsino_state::init_stbsub() for (uint8_t reel = 0; reel < 3; reel++) { - m_reel_scroll[reel].allocate(0x40); - m_reel_attr[reel] = std::make_unique<uint8_t[]>(0x200); save_pointer(NAME(m_reel_attr[reel]), 0x200, reel); @@ -3829,8 +3827,6 @@ void subsino_state::init_stisub() for (uint8_t reel = 0; reel < 3; reel++) { - m_reel_scroll[reel].allocate(0x40); - m_reel_attr[reel] = std::make_unique<uint8_t[]>(0x200); save_pointer(NAME(m_reel_attr[reel]), 0x200, reel); @@ -3849,8 +3845,6 @@ void subsino_state::init_tesorone() for (uint8_t reel = 0; reel < 3; reel++) { - m_reel_scroll[reel].allocate(0x40); - m_reel_attr[reel] = std::make_unique<uint8_t[]>(0x200); save_pointer(NAME(m_reel_attr[reel]), 0x200, reel); @@ -3869,8 +3863,6 @@ void subsino_state::init_tesorone230() for (uint8_t reel = 0; reel < 3; reel++) { - m_reel_scroll[reel].allocate(0x40); - m_reel_attr[reel] = std::make_unique<uint8_t[]>(0x200); save_pointer(NAME(m_reel_attr[reel]), 0x200, reel); @@ -3882,8 +3874,6 @@ void subsino_state::init_mtrainnv() { for (uint8_t reel = 0; reel < 3; reel++) { - m_reel_scroll[reel].allocate(0x40); - m_reel_attr[reel] = std::make_unique<uint8_t[]>(0x200); save_pointer(NAME(m_reel_attr[reel]), 0x200, reel); diff --git a/src/mame/drivers/suna8.cpp b/src/mame/drivers/suna8.cpp index 8b07f07e697..c5399d734f2 100644 --- a/src/mame/drivers/suna8.cpp +++ b/src/mame/drivers/suna8.cpp @@ -748,7 +748,7 @@ void suna8_state::brickzn11_map(address_map &map) map(0xc140, 0xc140).r(FUNC(suna8_state::brickzn_cheats_r)); // Cheats / Debugging Inputs - map(0xc600, 0xc7ff).rw(FUNC(suna8_state::banked_paletteram_r), FUNC(suna8_state::brickzn_banked_paletteram_w)).share("paletteram"); // Palette (Banked) + map(0xc600, 0xc7ff).rw(FUNC(suna8_state::banked_paletteram_r), FUNC(suna8_state::brickzn_banked_paletteram_w)); // Palette (Banked) map(0xc800, 0xdfff).ram().share("wram"); // Work RAM map(0xe000, 0xffff).rw(FUNC(suna8_state::suna8_banked_spriteram_r), FUNC(suna8_state::suna8_banked_spriteram_w)); // Sprites (Banked) } @@ -881,7 +881,7 @@ void suna8_state::brickzn_map(address_map &map) // c144 reads? // c14a reads? - map(0xc600, 0xc7ff).rw(FUNC(suna8_state::banked_paletteram_r), FUNC(suna8_state::brickzn_banked_paletteram_w)).share("paletteram"); // Palette (Banked) + map(0xc600, 0xc7ff).rw(FUNC(suna8_state::banked_paletteram_r), FUNC(suna8_state::brickzn_banked_paletteram_w)); // Palette (Banked) map(0xc800, 0xdfff).ram().share("wram"); // Work RAM map(0xe000, 0xffff).rw(FUNC(suna8_state::suna8_banked_spriteram_r), FUNC(suna8_state::suna8_banked_spriteram_w)); // Sprites (Banked) } diff --git a/src/mame/drivers/supdrapo.cpp b/src/mame/drivers/supdrapo.cpp index 3bb1be1cef6..f1a1564c81e 100644 --- a/src/mame/drivers/supdrapo.cpp +++ b/src/mame/drivers/supdrapo.cpp @@ -280,7 +280,7 @@ void supdrapo_state::sdpoker_mem(address_map &map) { map(0x0000, 0x4fff).rom(); map(0x5000, 0x50ff).ram().share("col_line"); - map(0x57ff, 0x57ff).ram().share("col_line"); + map(0x5700, 0x57ff).ram().share("col_line"); map(0x5800, 0x58ff).ram().share("col_line"); map(0x6000, 0x67ff).ram(); //work ram map(0x6800, 0x6bff).ram().share("videoram"); diff --git a/src/mame/drivers/sym1.cpp b/src/mame/drivers/sym1.cpp index 00894483427..b64d6c20a94 100644 --- a/src/mame/drivers/sym1.cpp +++ b/src/mame/drivers/sym1.cpp @@ -261,22 +261,22 @@ void sym1_state::via3_a_w(uint8_t data) if ((m_wp->read() & 0x01) && !(data & 0x01)) { cpu0space.nop_write(0xa600, 0xa67f); } else { - cpu0space.install_write_bank(0xa600, 0xa67f, "bank5"); + cpu0space.install_write_bank(0xa600, 0xa67f, membank("bank5")); } if ((m_wp->read() & 0x02) && !(data & 0x02)) { cpu0space.nop_write(0x0400, 0x07ff); } else { - cpu0space.install_write_bank(0x0400, 0x07ff, "bank2"); + cpu0space.install_write_bank(0x0400, 0x07ff, membank("bank2")); } if ((m_wp->read() & 0x04) && !(data & 0x04)) { cpu0space.nop_write(0x0800, 0x0bff); } else { - cpu0space.install_write_bank(0x0800, 0x0bff, "bank3"); + cpu0space.install_write_bank(0x0800, 0x0bff, membank("bank3")); } if ((m_wp->read() & 0x08) && !(data & 0x08)) { cpu0space.nop_write(0x0c00, 0x0fff); } else { - cpu0space.install_write_bank(0x0c00, 0x0fff, "bank4"); + cpu0space.install_write_bank(0x0c00, 0x0fff, membank("bank4")); } } @@ -296,9 +296,8 @@ void sym1_state::machine_reset() { // make 0xf800 to 0xffff point to the last half of the monitor ROM // so that the CPU can find its reset vectors - m_maincpu->space(AS_PROGRAM).install_read_bank(0xf800, 0xffff, "bank1"); + m_maincpu->space(AS_PROGRAM).install_rom(0xf800, 0xffff, m_monitor + 0x800); m_maincpu->space(AS_PROGRAM).nop_write(0xf800, 0xffff); - membank("bank1")->set_base(m_monitor + 0x800); m_maincpu->reset(); } diff --git a/src/mame/drivers/symbolics.cpp b/src/mame/drivers/symbolics.cpp index d8a39c6df7c..42471abfb01 100644 --- a/src/mame/drivers/symbolics.cpp +++ b/src/mame/drivers/symbolics.cpp @@ -256,7 +256,7 @@ void symbolics_state::m68k_mem(address_map &map) // 0x00c000-0x00ffff is open bus but decoded/auto-DTACKed, does not cause bus error map(0x010000, 0x01bfff).rom(); // 0x01c000-0x01ffff is open bus but decoded/auto-DTACKed, does not cause bus error - map(0x020000, 0x03ffff).ram().region("fepdram", 0); /* Local FEP ram seems to be here? there are 18 mcm4164s on the pcb which probably map here, plus 2 parity bits? */ + map(0x020000, 0x03ffff).ram().share("fepdram"); /* Local FEP ram seems to be here? there are 18 mcm4164s on the pcb which probably map here, plus 2 parity bits? */ //map(0x020000, 0x03ffff).rw(FUNC(symbolics_state::ram_parity_hack_r), FUNC(symbolics_state::ram_parity_hack_w)); //map(0x020002, 0x03ffff).ram().region("fepdram", 0); /* Local FEP ram seems to be here? there are 18 mcm4164s on the pcb which probably map here, plus 2 parity bits? */ // 2x AM9128-10PC 2048x8 SRAMs @F7 and @G7 map somewhere @@ -392,7 +392,6 @@ ROM_START( s3670 ) LBARB.4 @I18 <- 4887235 page 625 has LBARB rev1, pal16l8 SERCTL.4 @K6 <- 4887235 page 620 has SERCTL rev4, pal16l8 */ - ROM_REGION16_BE( 0x20000, "fepdram", ROMREGION_ERASE00 ) ROM_END diff --git a/src/mame/drivers/tandy2k.cpp b/src/mame/drivers/tandy2k.cpp index 85a1e3f3d01..0c614cee7e0 100644 --- a/src/mame/drivers/tandy2k.cpp +++ b/src/mame/drivers/tandy2k.cpp @@ -919,7 +919,6 @@ void tandy2k_state::machine_start() program.install_ram(0x00000, ram_size - 1, ram); - m_char_ram.allocate(0x1000); m_mouse_timer = timer_alloc(MOUS_TIMER); m_mcu_delay = timer_alloc(MCU_DELAY); diff --git a/src/mame/drivers/tceptor.cpp b/src/mame/drivers/tceptor.cpp index dd8941b0263..17dc43f0ae6 100644 --- a/src/mame/drivers/tceptor.cpp +++ b/src/mame/drivers/tceptor.cpp @@ -147,7 +147,7 @@ void tceptor_state::m6502_a_map(address_map &map) map(0x0300, 0x030f).ram(); map(0x2000, 0x2001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); map(0x3000, 0x30ff).ram().share("share3"); - map(0x3c01, 0x3c01).writeonly(); + map(0x3c01, 0x3c01).nopw(); map(0x8000, 0xffff).rom(); } @@ -157,7 +157,7 @@ void tceptor_state::m6502_b_map(address_map &map) map(0x0000, 0x00ff).ram().share("share2"); map(0x0100, 0x01ff).ram(); map(0x4000, 0x4000).w("dac", FUNC(dac_byte_interface::data_w)); - map(0x5000, 0x5000).writeonly(); // voice ctrl?? + map(0x5000, 0x5000).nopw(); // voice ctrl?? map(0x8000, 0xffff).rom(); } @@ -167,7 +167,7 @@ void tceptor_state::m68k_map(address_map &map) map(0x000000, 0x00ffff).rom(); // M68K ERROR 1 map(0x100000, 0x10ffff).rom(); // not sure map(0x200000, 0x203fff).ram(); // M68K ERROR 0 - map(0x300000, 0x300001).writeonly(); + map(0x300000, 0x300001).nopw(); map(0x400000, 0x4001ff).writeonly().share("sprite_ram"); map(0x500000, 0x51ffff).w(m_c45_road, FUNC(namco_c45_road_device::write)); map(0x600000, 0x600001).w(FUNC(tceptor_state::m68k_irq_enable_w)); // not sure diff --git a/src/mame/drivers/tempest.cpp b/src/mame/drivers/tempest.cpp index 76b0615edf6..a0717778fe6 100644 --- a/src/mame/drivers/tempest.cpp +++ b/src/mame/drivers/tempest.cpp @@ -488,7 +488,7 @@ void tempest_state::main_map(address_map &map) map(0x0c00, 0x0c00).portr("IN0"); map(0x0d00, 0x0d00).portr("DSW1"); map(0x0e00, 0x0e00).portr("DSW2"); - map(0x2000, 0x2fff).ram().share("avg:vectorram").region("maincpu", 0x2000); + map(0x2000, 0x2fff).ram().share("avg:vectorram"); map(0x3000, 0x3fff).rom(); map(0x4000, 0x4000).w(FUNC(tempest_state::tempest_coin_w)); map(0x4800, 0x4800).w(m_avg, FUNC(avg_tempest_device::go_w)); diff --git a/src/mame/drivers/tigeroad.cpp b/src/mame/drivers/tigeroad.cpp index 1c8292e94fc..aeae6eacef4 100644 --- a/src/mame/drivers/tigeroad.cpp +++ b/src/mame/drivers/tigeroad.cpp @@ -110,9 +110,8 @@ void tigeroad_state::main_map(address_map &map) map(0xfe4002, 0xfe4002).w("soundlatch", FUNC(generic_latch_8_device::write)); map(0xfe4004, 0xfe4005).portr("DSW"); map(0xfe8000, 0xfe8003).w(FUNC(tigeroad_state::scroll_w)); - map(0xfe800e, 0xfe800f).writeonly(); // fe800e = watchdog or IRQ acknowledge + map(0xfe800e, 0xfe800f).nopw(); // fe800e = watchdog or IRQ acknowledge map(0xfec000, 0xfec7ff).ram().w(FUNC(tigeroad_state::videoram_w)).share("videoram"); - map(0xff8000, 0xff87ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0xffc000, 0xffffff).ram().share("ram16"); } diff --git a/src/mame/drivers/tiki100.cpp b/src/mame/drivers/tiki100.cpp index 3c1b19f2f1a..cdd6b00546e 100644 --- a/src/mame/drivers/tiki100.cpp +++ b/src/mame/drivers/tiki100.cpp @@ -681,9 +681,6 @@ void tiki100_state::machine_start() { m_leds.resolve(); - /* allocate video RAM */ - m_video_ram.allocate(TIKI100_VIDEORAM_SIZE); - /* register for state saving */ save_item(NAME(m_rome)); save_item(NAME(m_vire)); diff --git a/src/mame/drivers/timex.cpp b/src/mame/drivers/timex.cpp index 5c6c94d7344..cec0c0bc2b8 100644 --- a/src/mame/drivers/timex.cpp +++ b/src/mame/drivers/timex.cpp @@ -228,7 +228,7 @@ void timex_state::ts2068_update_memory() { if (m_port_ff_data & 0x80) { - space.install_read_bank(0x0000, 0x1fff, "bank1"); + space.install_read_bank(0x0000, 0x1fff, membank("bank1")); space.unmap_write(0x0000, 0x1fff); membank("bank1")->set_base(ExROM); logerror("0000-1fff EXROM\n"); @@ -238,9 +238,9 @@ void timex_state::ts2068_update_memory() if (m_dock_cart_type == TIMEX_CART_DOCK) { membank("bank1")->set_base(DOCK); - space.install_read_bank(0x0000, 0x1fff, "bank1"); + space.install_read_bank(0x0000, 0x1fff, membank("bank1")); if (m_ram_chunks & 0x01) - space.install_write_bank(0x0000, 0x1fff, "bank9"); + space.install_write_bank(0x0000, 0x1fff, membank("bank9")); else space.unmap_write(0x0000, 0x1fff); @@ -258,7 +258,7 @@ void timex_state::ts2068_update_memory() { ChosenROM = memregion("maincpu")->base() + 0x010000; membank("bank1")->set_base(ChosenROM); - space.install_read_bank(0x0000, 0x1fff, "bank1"); + space.install_read_bank(0x0000, 0x1fff, membank("bank1")); space.unmap_write(0x0000, 0x1fff); logerror("0000-1fff HOME\n"); } @@ -268,7 +268,7 @@ void timex_state::ts2068_update_memory() if (m_port_ff_data & 0x80) { membank("bank2")->set_base(ExROM); - space.install_read_bank(0x2000, 0x3fff, "bank2"); + space.install_read_bank(0x2000, 0x3fff, membank("bank2")); space.unmap_write(0x2000, 0x3fff); logerror("2000-3fff EXROM\n"); } @@ -277,9 +277,9 @@ void timex_state::ts2068_update_memory() if (m_dock_cart_type == TIMEX_CART_DOCK) { membank("bank2")->set_base(DOCK+0x2000); - space.install_read_bank(0x2000, 0x3fff, "bank2"); + space.install_read_bank(0x2000, 0x3fff, membank("bank2")); if (m_ram_chunks & 0x02) - space.install_write_bank(0x2000, 0x3fff, "bank10"); + space.install_write_bank(0x2000, 0x3fff, membank("bank10")); else space.unmap_write(0x2000, 0x3fff); @@ -296,7 +296,7 @@ void timex_state::ts2068_update_memory() { ChosenROM = memregion("maincpu")->base() + 0x012000; membank("bank2")->set_base(ChosenROM); - space.install_read_bank(0x2000, 0x3fff, "bank2"); + space.install_read_bank(0x2000, 0x3fff, membank("bank2")); space.unmap_write(0x2000, 0x3fff); logerror("2000-3fff HOME\n"); } @@ -306,7 +306,7 @@ void timex_state::ts2068_update_memory() if (m_port_ff_data & 0x80) { membank("bank3")->set_base(ExROM); - space.install_read_bank(0x4000, 0x5fff, "bank3"); + space.install_read_bank(0x4000, 0x5fff, membank("bank3")); space.unmap_write(0x4000, 0x5fff); logerror("4000-5fff EXROM\n"); } @@ -315,9 +315,9 @@ void timex_state::ts2068_update_memory() if (m_dock_cart_type == TIMEX_CART_DOCK) { membank("bank3")->set_base(DOCK+0x4000); - space.install_read_bank(0x4000, 0x5fff, "bank3"); + space.install_read_bank(0x4000, 0x5fff, membank("bank3")); if (m_ram_chunks & 0x04) - space.install_write_bank(0x4000, 0x5fff, "bank11"); + space.install_write_bank(0x4000, 0x5fff, membank("bank11")); else space.unmap_write(0x4000, 0x5fff); } @@ -333,8 +333,8 @@ void timex_state::ts2068_update_memory() { membank("bank3")->set_base(messram); membank("bank11")->set_base(messram); - space.install_read_bank(0x4000, 0x5fff, "bank3"); - space.install_write_bank(0x4000, 0x5fff, "bank11"); + space.install_read_bank(0x4000, 0x5fff, membank("bank3")); + space.install_write_bank(0x4000, 0x5fff, membank("bank11")); logerror("4000-5fff RAM\n"); } @@ -343,7 +343,7 @@ void timex_state::ts2068_update_memory() if (m_port_ff_data & 0x80) { membank("bank4")->set_base(ExROM); - space.install_read_bank(0x6000, 0x7fff, "bank4"); + space.install_read_bank(0x6000, 0x7fff, membank("bank4")); space.unmap_write(0x6000, 0x7fff); logerror("6000-7fff EXROM\n"); } @@ -352,9 +352,9 @@ void timex_state::ts2068_update_memory() if (m_dock_cart_type == TIMEX_CART_DOCK) { membank("bank4")->set_base(DOCK+0x6000); - space.install_read_bank(0x6000, 0x7fff, "bank4"); + space.install_read_bank(0x6000, 0x7fff, membank("bank4")); if (m_ram_chunks & 0x08) - space.install_write_bank(0x6000, 0x7fff, "bank12"); + space.install_write_bank(0x6000, 0x7fff, membank("bank12")); else space.unmap_write(0x6000, 0x7fff); } @@ -370,8 +370,8 @@ void timex_state::ts2068_update_memory() { membank("bank4")->set_base(messram + 0x2000); membank("bank12")->set_base(messram + 0x2000); - space.install_read_bank(0x6000, 0x7fff, "bank4"); - space.install_write_bank(0x6000, 0x7fff, "bank12"); + space.install_read_bank(0x6000, 0x7fff, membank("bank4")); + space.install_write_bank(0x6000, 0x7fff, membank("bank12")); logerror("6000-7fff RAM\n"); } @@ -380,7 +380,7 @@ void timex_state::ts2068_update_memory() if (m_port_ff_data & 0x80) { membank("bank5")->set_base(ExROM); - space.install_read_bank(0x8000, 0x9fff, "bank5"); + space.install_read_bank(0x8000, 0x9fff, membank("bank5")); space.unmap_write(0x8000, 0x9fff); logerror("8000-9fff EXROM\n"); } @@ -389,9 +389,9 @@ void timex_state::ts2068_update_memory() if (m_dock_cart_type == TIMEX_CART_DOCK) { membank("bank5")->set_base(DOCK+0x8000); - space.install_read_bank(0x8000, 0x9fff,"bank5"); + space.install_read_bank(0x8000, 0x9fff,membank("bank5")); if (m_ram_chunks & 0x10) - space.install_write_bank(0x8000, 0x9fff,"bank13"); + space.install_write_bank(0x8000, 0x9fff,membank("bank13")); else space.unmap_write(0x8000, 0x9fff); } @@ -407,8 +407,8 @@ void timex_state::ts2068_update_memory() { membank("bank5")->set_base(messram + 0x4000); membank("bank13")->set_base(messram + 0x4000); - space.install_read_bank(0x8000, 0x9fff,"bank5"); - space.install_write_bank(0x8000, 0x9fff,"bank13"); + space.install_read_bank(0x8000, 0x9fff,membank("bank5")); + space.install_write_bank(0x8000, 0x9fff,membank("bank13")); logerror("8000-9fff RAM\n"); } @@ -417,7 +417,7 @@ void timex_state::ts2068_update_memory() if (m_port_ff_data & 0x80) { membank("bank6")->set_base(ExROM); - space.install_read_bank(0xa000, 0xbfff, "bank6"); + space.install_read_bank(0xa000, 0xbfff, membank("bank6")); space.unmap_write(0xa000, 0xbfff); logerror("a000-bfff EXROM\n"); } @@ -426,9 +426,9 @@ void timex_state::ts2068_update_memory() if (m_dock_cart_type == TIMEX_CART_DOCK) { membank("bank6")->set_base(DOCK+0xa000); - space.install_read_bank(0xa000, 0xbfff, "bank6"); + space.install_read_bank(0xa000, 0xbfff, membank("bank6")); if (m_ram_chunks & 0x20) - space.install_write_bank(0xa000, 0xbfff, "bank14"); + space.install_write_bank(0xa000, 0xbfff, membank("bank14")); else space.unmap_write(0xa000, 0xbfff); @@ -445,8 +445,8 @@ void timex_state::ts2068_update_memory() { membank("bank6")->set_base(messram + 0x6000); membank("bank14")->set_base(messram + 0x6000); - space.install_read_bank(0xa000, 0xbfff, "bank6"); - space.install_write_bank(0xa000, 0xbfff, "bank14"); + space.install_read_bank(0xa000, 0xbfff, membank("bank6")); + space.install_write_bank(0xa000, 0xbfff, membank("bank14")); logerror("a000-bfff RAM\n"); } @@ -455,7 +455,7 @@ void timex_state::ts2068_update_memory() if (m_port_ff_data & 0x80) { membank("bank7")->set_base(ExROM); - space.install_read_bank(0xc000, 0xdfff, "bank7"); + space.install_read_bank(0xc000, 0xdfff, membank("bank7")); space.unmap_write(0xc000, 0xdfff); logerror("c000-dfff EXROM\n"); } @@ -464,9 +464,9 @@ void timex_state::ts2068_update_memory() if (m_dock_cart_type == TIMEX_CART_DOCK) { membank("bank7")->set_base(DOCK+0xc000); - space.install_read_bank(0xc000, 0xdfff, "bank7"); + space.install_read_bank(0xc000, 0xdfff, membank("bank7")); if (m_ram_chunks & 0x40) - space.install_write_bank(0xc000, 0xdfff, "bank15"); + space.install_write_bank(0xc000, 0xdfff, membank("bank15")); else space.unmap_write(0xc000, 0xdfff); } @@ -482,8 +482,8 @@ void timex_state::ts2068_update_memory() { membank("bank7")->set_base(messram + 0x8000); membank("bank15")->set_base(messram + 0x8000); - space.install_read_bank(0xc000, 0xdfff, "bank7"); - space.install_write_bank(0xc000, 0xdfff, "bank15"); + space.install_read_bank(0xc000, 0xdfff, membank("bank7")); + space.install_write_bank(0xc000, 0xdfff, membank("bank15")); logerror("c000-dfff RAM\n"); } @@ -492,7 +492,7 @@ void timex_state::ts2068_update_memory() if (m_port_ff_data & 0x80) { membank("bank8")->set_base(ExROM); - space.install_read_bank(0xe000, 0xffff, "bank8"); + space.install_read_bank(0xe000, 0xffff, membank("bank8")); space.unmap_write(0xe000, 0xffff); logerror("e000-ffff EXROM\n"); } @@ -501,9 +501,9 @@ void timex_state::ts2068_update_memory() if (m_dock_cart_type == TIMEX_CART_DOCK) { membank("bank8")->set_base(DOCK+0xe000); - space.install_read_bank(0xe000, 0xffff, "bank8"); + space.install_read_bank(0xe000, 0xffff, membank("bank8")); if (m_ram_chunks & 0x80) - space.install_write_bank(0xe000, 0xffff, "bank16"); + space.install_write_bank(0xe000, 0xffff, membank("bank16")); else space.unmap_write(0xe000, 0xffff); } @@ -519,8 +519,8 @@ void timex_state::ts2068_update_memory() { membank("bank8")->set_base(messram + 0xa000); membank("bank16")->set_base(messram + 0xa000); - space.install_read_bank(0xe000, 0xffff, "bank8"); - space.install_write_bank(0xe000, 0xffff, "bank16"); + space.install_read_bank(0xe000, 0xffff, membank("bank8")); + space.install_write_bank(0xe000, 0xffff, membank("bank16")); logerror("e000-ffff RAM\n"); } } diff --git a/src/mame/drivers/tmc1800.cpp b/src/mame/drivers/tmc1800.cpp index ed0209da6e6..bb4265cccb9 100644 --- a/src/mame/drivers/tmc1800.cpp +++ b/src/mame/drivers/tmc1800.cpp @@ -703,8 +703,6 @@ void tmc2000_state::machine_start() { m_led.resolve(); - m_colorram.allocate(TMC2000_COLORRAM_SIZE); - // randomize color RAM contents for (uint16_t addr = 0; addr < TMC2000_COLORRAM_SIZE; addr++) { diff --git a/src/mame/drivers/trackfld.cpp b/src/mame/drivers/trackfld.cpp index f2907d5e106..fd86ce3024f 100644 --- a/src/mame/drivers/trackfld.cpp +++ b/src/mame/drivers/trackfld.cpp @@ -1654,14 +1654,10 @@ void trackfld_state::init_atlantol() space.nop_write(0x1000, 0x1000); /* unmapped areas read as ROM */ - space.install_read_bank(0x0000, 0x11ff, "bank10"); - space.install_read_bank(0x1380, 0x17ff, "bank11"); - space.install_read_bank(0x2000, 0x27ff, "bank12"); - space.install_read_bank(0x4000, 0x5fff, "bank13"); - membank("bank10")->set_base(&rom[0x0000]); - membank("bank11")->set_base(&rom[0x1380]); - membank("bank12")->set_base(&rom[0x2000]); - membank("bank13")->set_base(&rom[0x4000]); + space.install_rom(0x0000, 0x11ff, &rom[0x0000]); + space.install_rom(0x1380, 0x17ff, &rom[0x1380]); + space.install_rom(0x2000, 0x27ff, &rom[0x2000]); + space.install_rom(0x4000, 0x5fff, &rom[0x4000]); } void trackfld_state::init_mastkin() diff --git a/src/mame/drivers/triforce.cpp b/src/mame/drivers/triforce.cpp index cfc1f76b91b..78619cab99b 100644 --- a/src/mame/drivers/triforce.cpp +++ b/src/mame/drivers/triforce.cpp @@ -507,7 +507,7 @@ void triforce_state::gc_map(address_map &map) map(0x00000000, 0x017fffff).ram(); map(0x0c003000, 0x0c003fff).rw(FUNC(triforce_state::gc_pi_r), FUNC(triforce_state::gc_pi_w)); map(0x0c006800, 0x0c0068ff).rw(FUNC(triforce_state::gc_exi_r), FUNC(triforce_state::gc_exi_w)); - map(0xfff00000, 0xffffffff).rom().region("maincpu", 0).share("share2"); /* Program ROM */ + map(0xfff00000, 0xffffffff).rom().region("maincpu", 0); /* Program ROM */ } diff --git a/src/mame/drivers/trs80m2.cpp b/src/mame/drivers/trs80m2.cpp index 6b971840d1f..c701e22317c 100644 --- a/src/mame/drivers/trs80m2.cpp +++ b/src/mame/drivers/trs80m2.cpp @@ -437,8 +437,6 @@ WRITE_LINE_MEMBER( trs80m2_state::vsync_w ) void trs80m2_state::video_start() { - // allocate memory - m_video_ram.allocate(0x800); } uint32_t trs80m2_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) diff --git a/src/mame/drivers/tsamurai.cpp b/src/mame/drivers/tsamurai.cpp index f8f4ca3c4fe..0d2e034f607 100644 --- a/src/mame/drivers/tsamurai.cpp +++ b/src/mame/drivers/tsamurai.cpp @@ -355,9 +355,9 @@ void tsamurai_state::vsgongf_map(address_map &map) map(0xe400, 0xe43f).ram().share("spriteram"); map(0xe440, 0xe47b).ram(); map(0xe800, 0xe800).w(FUNC(tsamurai_state::vsgongf_sound_command_w)); - map(0xec00, 0xec06).writeonly(); + map(0xec00, 0xec06).nopw(); map(0xf000, 0xf000).w(FUNC(tsamurai_state::vsgongf_color_w)); - map(0xf400, 0xf400).writeonly(); /* vreg? always 0 */ + map(0xf400, 0xf400).nopw(); /* vreg? always 0 */ map(0xf800, 0xf800).portr("P1"); map(0xf801, 0xf801).portr("P2"); map(0xf802, 0xf802).portr("SYSTEM"); diff --git a/src/mame/drivers/tubep.cpp b/src/mame/drivers/tubep.cpp index 70e3886bced..ff34c23d8ed 100644 --- a/src/mame/drivers/tubep.cpp +++ b/src/mame/drivers/tubep.cpp @@ -193,7 +193,7 @@ void tubep_state::tubep_second_map(address_map &map) map(0xc000, 0xc000).w(FUNC(tubep_state::tubep_background_c000_w)); map(0xe000, 0xe7ff).ram().share("share1"); /* 6116 #1 */ map(0xe800, 0xebff).writeonly().share("backgroundram"); /* row of 8 x 2147 RAMs on main PCB */ - map(0xf000, 0xf3ff).writeonly().share("sprite_color"); /* sprites color lookup table */ + map(0xf000, 0xf3ff).lw8([this](offs_t off, u8 data) { m_sprite_colorsharedram[off] = data; }, "sc_w"); /* sprites color lookup table */ map(0xf800, 0xffff).ram().share("share2"); /* program copies here part of shared ram ?? */ } diff --git a/src/mame/drivers/tumbleb.cpp b/src/mame/drivers/tumbleb.cpp index e1046c28b64..c66dcf9aa1f 100644 --- a/src/mame/drivers/tumbleb.cpp +++ b/src/mame/drivers/tumbleb.cpp @@ -638,7 +638,7 @@ void tumbleb_state::tumblepopb_main_map(address_map &map) map(0x120000, 0x123fff).ram().share("mainram"); map(0x140000, 0x1407ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x160000, 0x1607ff).ram().share("spriteram"); /* Bootleg sprite buffer */ - map(0x160800, 0x160807).writeonly(); /* writes past the end of spriteram */ + map(0x160800, 0x160807).nopw(); /* writes past the end of spriteram */ map(0x180000, 0x18000f).r(FUNC(tumbleb_state::tumblepopb_controls_r)); map(0x18000c, 0x18000d).nopw(); map(0x1a0000, 0x1a07ff).ram(); @@ -697,7 +697,7 @@ void tumbleb_state::unico_base_map(address_map &map) map(0x100005, 0x100005).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x140000, 0x140fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x160000, 0x1607ff).ram().share("spriteram"); /* sprites */ - map(0x160800, 0x16080f).writeonly(); /* goes slightly past the end of spriteram? */ + map(0x160800, 0x16080f).nopw(); /* goes slightly past the end of spriteram? */ map(0x180000, 0x18000f).r(FUNC(tumbleb_state::tumblepopb_controls_r)); map(0x18000c, 0x18000d).nopw(); map(0x1a0000, 0x1a07ff).ram(); @@ -783,7 +783,7 @@ void tumbleb_state::pangpang_main_map(address_map &map) map(0x120000, 0x123fff).ram().share("mainram"); map(0x140000, 0x1407ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x160000, 0x1607ff).ram().share("spriteram"); /* Bootleg sprite buffer */ - map(0x160800, 0x160807).writeonly(); // writes past the end of spriteram + map(0x160800, 0x160807).nopw(); // writes past the end of spriteram map(0x180000, 0x18000f).r(FUNC(tumbleb_state::tumblepopb_controls_r)); map(0x1a0000, 0x1a07ff).ram(); map(0x300000, 0x30000f).w(FUNC(tumbleb_state::tumblepb_control_0_w)); @@ -886,7 +886,7 @@ void tumbleb_state::jumpkids_main_map(address_map &map) map(0x120000, 0x123fff).ram().share("mainram"); map(0x140000, 0x1407ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x160000, 0x1607ff).ram().share("spriteram"); /* Bootleg sprite buffer */ - map(0x160800, 0x160807).writeonly(); /* writes past the end of spriteram */ + map(0x160800, 0x160807).nopw(); /* writes past the end of spriteram */ map(0x180000, 0x18000f).r(FUNC(tumbleb_state::tumblepopb_controls_r)); map(0x18000c, 0x18000d).nopw(); map(0x1a0000, 0x1a07ff).ram(); diff --git a/src/mame/drivers/tunhunt.cpp b/src/mame/drivers/tunhunt.cpp index 5ed459098b3..3e47d54545f 100644 --- a/src/mame/drivers/tunhunt.cpp +++ b/src/mame/drivers/tunhunt.cpp @@ -134,13 +134,13 @@ void tunhunt_state::main_map(address_map &map) { map.global_mask(0x7fff); map(0x0000, 0x03ff).ram().share("workram"); /* Work RAM */ - map(0x1080, 0x10ff).writeonly(); - map(0x1200, 0x12ff).writeonly(); - map(0x1400, 0x14ff).writeonly(); + map(0x1080, 0x10ff).nopw(); + map(0x1200, 0x12ff).nopw(); + map(0x1400, 0x14ff).nopw(); map(0x1600, 0x160f).writeonly().share("paletteram"); /* COLRAM (D7-D4 SHADE; D3-D0 COLOR) */ - map(0x1800, 0x1800).writeonly(); /* SHEL0H */ - map(0x1a00, 0x1a00).writeonly(); /* SHEL1H */ - map(0x1c00, 0x1c00).writeonly(); /* MOBJV */ + map(0x1800, 0x1800).nopw(); /* SHEL0H */ + map(0x1a00, 0x1a00).nopw(); /* SHEL1H */ + map(0x1c00, 0x1c00).nopw(); /* MOBJV */ map(0x1e00, 0x1eff).w(FUNC(tunhunt_state::videoram_w)).share("videoram"); /* ALPHA */ map(0x2000, 0x2000).nopw(); /* watchdog */ map(0x2000, 0x2007).r(FUNC(tunhunt_state::button_r)); diff --git a/src/mame/drivers/twin16.cpp b/src/mame/drivers/twin16.cpp index 5644a0883b9..1916b5d66c5 100644 --- a/src/mame/drivers/twin16.cpp +++ b/src/mame/drivers/twin16.cpp @@ -198,6 +198,13 @@ void twin16_state::main_map(address_map &map) map(0x140000, 0x143fff).ram().share("spriteram"); } +void cuebrickj_state::cuebrickj_main_map(address_map &map) +{ + main_map(map); + map(0x0b0000, 0x0b03ff).bankrw("nvrambank"); + map(0x0b0400, 0x0b0400).w(FUNC(cuebrickj_state::nvram_bank_w)); +} + void twin16_state::sub_map(address_map &map) { map(0x000000, 0x03ffff).rom(); @@ -763,6 +770,7 @@ void twin16_state::miaj(machine_config &config) void cuebrickj_state::cuebrickj(machine_config &config) { twin16(config); + m_maincpu->set_addrmap(AS_PROGRAM, &cuebrickj_state::cuebrickj_main_map); m_screen->set_raw(XTAL(18'432'000)/2, 576, 1*8, 39*8, 264, 2*8, 30*8); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); } @@ -1252,11 +1260,6 @@ void cuebrickj_state::init_cuebrickj() { init_twin16(); - address_space &space = m_maincpu->space(AS_PROGRAM); - - space.install_readwrite_bank(0x0b0000, 0x0b03ff, "nvrambank"); - space.install_write_handler( 0x0b0400, 0x0b0401, write8smo_delegate(*this, FUNC(cuebrickj_state::nvram_bank_w)), 0xff00); - membank("nvrambank")->configure_entries(0, 0x20, m_nvram, 0x400); subdevice<nvram_device>("nvram")->set_base(m_nvram, sizeof(m_nvram)); diff --git a/src/mame/drivers/unico.cpp b/src/mame/drivers/unico.cpp index 12625029b70..400203ca522 100644 --- a/src/mame/drivers/unico.cpp +++ b/src/mame/drivers/unico.cpp @@ -149,7 +149,7 @@ void zeropnt_state::zeropnt_map(address_map &map) map(0x80018a, 0x80018a).w("ymsnd", FUNC(ym3812_device::write_port_w)); map(0x80018c, 0x80018c).rw("ymsnd", FUNC(ym3812_device::status_port_r), FUNC(ym3812_device::control_port_w)); map(0x80018e, 0x80018e).w(FUNC(zeropnt_state::zeropnt_okibank_leds_w)); // - map(0x8001e0, 0x8001e1).writeonly(); // ? IRQ Ack + map(0x8001e0, 0x8001e1).nopw(); // ? IRQ Ack map(0x904000, 0x90ffff).rw(FUNC(zeropnt_state::vram_r), FUNC(zeropnt_state::vram_w)).share("vram"); // Layers 1, 2, 0 map(0x920000, 0x923fff).ram(); // ? 0 map(0x930000, 0x9307ff).rw(FUNC(zeropnt_state::spriteram_r), FUNC(zeropnt_state::spriteram_w)).share("spriteram"); // Sprites diff --git a/src/mame/drivers/v1050.cpp b/src/mame/drivers/v1050.cpp index 7467a589257..a9015497ac3 100644 --- a/src/mame/drivers/v1050.cpp +++ b/src/mame/drivers/v1050.cpp @@ -181,12 +181,12 @@ void v1050_state::bankswitch() if (BIT(m_bank, 0)) { - program.install_readwrite_bank(0x0000, 0x1fff, "bank1"); + program.install_readwrite_bank(0x0000, 0x1fff, membank("bank1")); membank("bank1")->set_entry(bank); } else { - program.install_read_bank(0x0000, 0x1fff, "bank1"); + program.install_read_bank(0x0000, 0x1fff, membank("bank1")); program.unmap_write(0x0000, 0x1fff); membank("bank1")->set_entry(3); } @@ -199,8 +199,8 @@ void v1050_state::bankswitch() } else { - program.install_readwrite_bank(0x4000, 0x7fff, "bank3"); - program.install_readwrite_bank(0x8000, 0xbfff, "bank4"); + program.install_readwrite_bank(0x4000, 0x7fff, membank("bank3")); + program.install_readwrite_bank(0x8000, 0xbfff, membank("bank4")); membank("bank3")->set_entry(bank); membank("bank4")->set_entry(bank); } @@ -980,17 +980,17 @@ void v1050_state::machine_start() membank("bank1")->configure_entry(2, ram + 0x1c000); membank("bank1")->configure_entry(3, m_rom->base()); - program.install_readwrite_bank(0x2000, 0x3fff, "bank2"); + program.install_readwrite_bank(0x2000, 0x3fff, membank("bank2")); membank("bank2")->configure_entries(0, 2, ram + 0x2000, 0x10000); membank("bank2")->configure_entry(2, ram + 0x1e000); - - program.install_readwrite_bank(0x4000, 0x7fff, "bank3"); + + program.install_readwrite_bank(0x4000, 0x7fff, membank("bank3")); membank("bank3")->configure_entries(0, 2, ram + 0x4000, 0x10000); - program.install_readwrite_bank(0x8000, 0xbfff, "bank4"); + program.install_readwrite_bank(0x8000, 0xbfff, membank("bank4")); membank("bank4")->configure_entries(0, 2, ram + 0x8000, 0x10000); - program.install_readwrite_bank(0xc000, 0xffff, "bank5"); + program.install_readwrite_bank(0xc000, 0xffff, membank("bank5")); membank("bank5")->configure_entries(0, 3, ram + 0xc000, 0); bankswitch(); diff --git a/src/mame/drivers/vamphalf.cpp b/src/mame/drivers/vamphalf.cpp index 4789484e789..b643aa8bbb2 100644 --- a/src/mame/drivers/vamphalf.cpp +++ b/src/mame/drivers/vamphalf.cpp @@ -78,14 +78,15 @@ public: vamphalf_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") - , m_wram(*this, "wram") - , m_wram32(*this, "wram32") - , m_okibank(*this, "okibank") + , m_wram(*this,"wram") + , m_wram32(*this,"wram32") + , m_qs1000_bank(*this, "qs1000_bank") + , m_okibank(*this,"okibank") , m_palette(*this, "palette") , m_soundlatch(*this, "soundlatch") , m_eeprom(*this, "eeprom") , m_gfxdecode(*this, "gfxdecode") - , m_tiles(*this, "tiles", 0U) + , m_tiles(*this,"tiles") , m_okiregion(*this, "oki%u", 1) , m_photosensors(*this, "PHOTO_SENSORS") , m_has_extra_gfx(false) @@ -157,6 +158,8 @@ protected: optional_shared_ptr<u16> m_wram; optional_shared_ptr<u32> m_wram32; + memory_bank_creator m_qs1000_bank; + u16 m_semicom_prot_data[2]; int m_semicom_prot_idx; int m_semicom_prot_which; @@ -500,7 +503,7 @@ void vamphalf_state::qs1000_p3_w(u8 data) if (!BIT(data, 5)) m_soundlatch->acknowledge_w(); - membank("qs1000:data")->set_entry(data & 7); + m_qs1000_bank->set_entry(data & 7); } @@ -3325,8 +3328,8 @@ void vamphalf_qdsp_state::init_misncrft() m_flip_bit = 1; // Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM - m_qdsp_cpu->space(AS_IO).install_read_bank(0x0100, 0xffff, "data"); - membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base() + 0x100, 0x8000-0x100); + m_qdsp_cpu->space(AS_IO).install_read_bank(0x0100, 0xffff, m_qs1000_bank); + m_qs1000_bank->configure_entries(0, 16, memregion("qs1000:cpu")->base() + 0x100, 0x8000-0x100); } void vamphalf_state::init_coolmini() @@ -3408,8 +3411,8 @@ void vamphalf_qdsp_state::init_wyvernwg() m_semicom_prot_data[1] = 1; // Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM - m_qdsp_cpu->space(AS_IO).install_read_bank(0x0100, 0xffff, "data"); - membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base() + 0x100, 0x8000-0x100); + m_qdsp_cpu->space(AS_IO).install_read_bank(0x0100, 0xffff, m_qs1000_bank); + m_qs1000_bank->configure_entries(0, 16, memregion("qs1000:cpu")->base() + 0x100, 0x8000-0x100); save_item(NAME(m_semicom_prot_idx)); save_item(NAME(m_semicom_prot_which)); @@ -3432,8 +3435,8 @@ void vamphalf_qdsp_state::init_yorijori() // romx[BYTE4_XOR_BE(0x8ff1)] = 0; // Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM - m_qdsp_cpu->space(AS_IO).install_read_bank(0x0100, 0xffff, "data"); - membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base() + 0x100, 0x8000-0x100); + m_qdsp_cpu->space(AS_IO).install_read_bank(0x0100, 0xffff, m_qs1000_bank); + m_qs1000_bank->configure_entries(0, 16, memregion("qs1000:cpu")->base() + 0x100, 0x8000-0x100); } void vamphalf_nvram_state::init_finalgdr() diff --git a/src/mame/drivers/vegaeo.cpp b/src/mame/drivers/vegaeo.cpp index 62fb7c9f077..e26c58ea0ef 100644 --- a/src/mame/drivers/vegaeo.cpp +++ b/src/mame/drivers/vegaeo.cpp @@ -30,6 +30,7 @@ public: : eolith_state(mconfig, type, tag) , m_soundlatch(*this, "soundlatch") , m_system_io(*this, "SYSTEM") + , m_qs1000_bank(*this, "qs1000_bank") { } @@ -43,6 +44,7 @@ protected: private: required_device<generic_latch_8_device> m_soundlatch; required_ioport m_system_io; + memory_bank_creator m_qs1000_bank; std::unique_ptr<uint8_t[]> m_vram; int m_vbuffer; @@ -73,7 +75,7 @@ void vegaeo_state::qs1000_p3_w(uint8_t data) // ...x .... - ? // ..x. .... - /IRQ clear - membank("qs1000:bank")->set_entry(data & 0x07); + m_qs1000_bank->set_entry(data & 0x07); if (!BIT(data, 5)) m_soundlatch->acknowledge_w(); @@ -290,8 +292,8 @@ ROM_END void vegaeo_state::init_vegaeo() { // Set up the QS1000 program ROM banking, taking care not to overlap the internal RAM - m_qs1000->cpu().space(AS_IO).install_read_bank(0x0100, 0xffff, "bank"); - membank("qs1000:bank")->configure_entries(0, 8, memregion("qs1000:cpu")->base()+0x100, 0x10000); + m_qs1000->cpu().space(AS_IO).install_read_bank(0x0100, 0xffff, m_qs1000_bank); + m_qs1000_bank->configure_entries(0, 8, memregion("qs1000:cpu")->base()+0x100, 0x10000); init_speedup(); } diff --git a/src/mame/drivers/vic10.cpp b/src/mame/drivers/vic10.cpp index ed897c0c009..b41700fbbcb 100644 --- a/src/mame/drivers/vic10.cpp +++ b/src/mame/drivers/vic10.cpp @@ -45,7 +45,7 @@ public: m_exp(*this, VIC10_EXPANSION_SLOT_TAG), m_ram(*this, RAM_TAG), m_cassette(*this, PET_DATASSETTE_PORT_TAG), - m_color_ram(*this, "color_ram"), + m_color_ram(*this, "color_ram", 0x400, ENDIANNESS_LITTLE), m_row(*this, "ROW%u", 0), m_restore(*this, "RESTORE"), m_lock(*this, "LOCK") @@ -63,7 +63,7 @@ private: required_device<vic10_expansion_slot_device> m_exp; required_device<ram_device> m_ram; optional_device<pet_datassette_port_device> m_cassette; - optional_shared_ptr<uint8_t> m_color_ram; + memory_share_creator<uint8_t> m_color_ram; required_ioport_array<8> m_row; required_ioport m_restore; required_ioport m_lock; @@ -604,9 +604,6 @@ WRITE_LINE_MEMBER( vic10_state::exp_reset_w ) void vic10_state::machine_start() { - // allocate memory - m_color_ram.allocate(0x400); - // initialize memory uint8_t data = 0xff; diff --git a/src/mame/drivers/videopkr.cpp b/src/mame/drivers/videopkr.cpp index 3d5a7af9568..79a6d83e7b7 100644 --- a/src/mame/drivers/videopkr.cpp +++ b/src/mame/drivers/videopkr.cpp @@ -956,10 +956,10 @@ void videopkr_state::i8751_io_port(address_map &map) { map(0x0000, 0x0fff).ram(); // NVRAM? map(0x8000, 0x8000).noprw(); // ??? - map(0x9000, 0x9000).writeonly(); // ??? + map(0x9000, 0x9000).nopw(); // ??? map(0xa000, 0xbfff).ram(); // video RAM? map(0xc000, 0xc003).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write)); - map(0xf000, 0xf000).writeonly(); // ??? + map(0xf000, 0xf000).nopw(); // ??? } void videopkr_state::i8039_sound_mem(address_map &map) diff --git a/src/mame/drivers/voyager.cpp b/src/mame/drivers/voyager.cpp index 811026b9d93..fd426832056 100644 --- a/src/mame/drivers/voyager.cpp +++ b/src/mame/drivers/voyager.cpp @@ -261,9 +261,9 @@ void voyager_state::voyager_map(address_map &map) { map(0x00000000, 0x0009ffff).ram(); map(0x000a0000, 0x000bffff).rw("vga", FUNC(trident_vga_device::mem_r), FUNC(trident_vga_device::mem_w)); // VGA VRAM - map(0x000c0000, 0x000c7fff).ram().region("video_bios", 0); + map(0x000c0000, 0x000c7fff).rom().region("video_bios", 0); map(0x000c8000, 0x000cffff).noprw(); - //map(0x000d0000, 0x000d0003).ram(); // XYLINX - Sincronus serial communication + //map(0x000d0000, 0x000d0003).ram(); // XYLINX - Synchronus serial communication map(0x000d0008, 0x000d000b).nopw(); // ??? map(0x000d0800, 0x000d0fff).rw(FUNC(voyager_state::nvram_r), FUNC(voyager_state::nvram_w)); // GAME_CMOS diff --git a/src/mame/drivers/vtech1.cpp b/src/mame/drivers/vtech1.cpp index 934c86000ce..61928a92c4d 100644 --- a/src/mame/drivers/vtech1.cpp +++ b/src/mame/drivers/vtech1.cpp @@ -65,7 +65,8 @@ class vtech1_state : public driver_device public: vtech1_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) - , m_vram(*this, "videoram") + , m_vram(*this, "videoram", 0x2000, ENDIANNESS_LITTLE) + , m_bank(*this, "bank") , m_maincpu(*this, "maincpu") , m_crtc(*this, "crtc") , m_speaker(*this, "speaker") @@ -102,7 +103,8 @@ private: static const uint8_t VZ_BASIC = 0xf0; static const uint8_t VZ_MCODE = 0xf1; - required_shared_ptr<uint8_t> m_vram; + memory_share_creator<uint8_t> m_vram; + memory_bank_creator m_bank; required_device<cpu_device> m_maincpu; required_device<mc6847_base_device> m_crtc; required_device<speaker_sound_device> m_speaker; @@ -248,7 +250,7 @@ void vtech1_state::latch_w(uint8_t data) void vtech1_state::video_bank_w(uint8_t data) { - membank("bank4")->set_entry(data & 0x03); + m_bank->set_entry(data & 0x03); } @@ -274,11 +276,10 @@ uint8_t vtech1_state::mc6847_videoram_r(offs_t offset) void vtech1_state::init_vtech1h() { // the SHRG mod replaces the standard videoram chip with an 8k chip - m_vram.allocate(0x2000); - m_maincpu->space(AS_PROGRAM).install_readwrite_bank(0x7000, 0x77ff, "bank4"); - membank("bank4")->configure_entries(0, 4, m_vram, 0x800); - membank("bank4")->set_entry(0); + m_maincpu->space(AS_PROGRAM).install_readwrite_bank(0x7000, 0x77ff, m_bank); + m_bank->configure_entries(0, 4, m_vram, 0x800); + m_bank->set_entry(0); } diff --git a/src/mame/drivers/williams.cpp b/src/mame/drivers/williams.cpp index 5bcfc57b892..e552623adea 100644 --- a/src/mame/drivers/williams.cpp +++ b/src/mame/drivers/williams.cpp @@ -625,7 +625,7 @@ void spdball_state::main_map(address_map &map) void blaster_state::main_map(address_map &map) { map(0x0000, 0x3fff).bankr("mainbank").writeonly().share("videoram"); - map(0x4000, 0x8fff).bankr("blaster_bankb").writeonly(); + map(0x4000, 0x8fff).bankr("blaster_bankb").writeonly().share("bankb"); map(0x9000, 0xbaff).ram(); map(0xbb00, 0xbbff).ram().share("blaster_pal0"); map(0xbc00, 0xbcff).ram().share("blaster_scan"); diff --git a/src/mame/drivers/x68k.cpp b/src/mame/drivers/x68k.cpp index 7a93ea3db98..972cf24fa5f 100644 --- a/src/mame/drivers/x68k.cpp +++ b/src/mame/drivers/x68k.cpp @@ -1520,8 +1520,7 @@ void x68k_state::machine_start() address_space &space = m_maincpu->space(AS_PROGRAM); // install RAM handlers m_spriteram = (uint16_t*)(memregion("user1")->base()); - space.install_readwrite_bank(0x000000,m_ram->size()-1,"bank1"); - membank("bank1")->set_base(m_ram->pointer()); + space.install_ram(0x000000,m_ram->size()-1,m_ram->pointer()); // start mouse timer m_mouse_timer->adjust(attotime::zero, 0, attotime::from_msec(1)); // a guess for now diff --git a/src/mame/drivers/xor100.cpp b/src/mame/drivers/xor100.cpp index 9ed7896224f..89d96907e03 100644 --- a/src/mame/drivers/xor100.cpp +++ b/src/mame/drivers/xor100.cpp @@ -65,27 +65,27 @@ void xor100_state::bankswitch() case EPROM_0000: if (m_bank < banks) { - program.install_write_bank(0x0000, 0xffff, "bank1"); - membank("bank1")->set_entry(1 + m_bank); + program.install_write_bank(0x0000, 0xffff, m_bank1); + m_bank1->set_entry(1 + m_bank); } else { program.unmap_write(0x0000, 0xffff); } - program.install_read_bank(0x0000, 0x07ff, 0xf000, "bank2"); - program.install_read_bank(0xf800, 0xffff, "bank3"); - membank("bank2")->set_entry(0); - membank("bank3")->set_entry(0); + program.install_read_bank(0x0000, 0x07ff, 0xf000, m_bank2); + program.install_read_bank(0xf800, 0xffff, m_bank3); + m_bank2->set_entry(0); + m_bank3->set_entry(0); break; case EPROM_F800: if (m_bank < banks) { - program.install_write_bank(0x0000, 0xffff, "bank1"); - program.install_read_bank(0x0000, 0xf7ff, "bank2"); - membank("bank1")->set_entry(1 + m_bank); - membank("bank2")->set_entry(1 + m_bank); + program.install_write_bank(0x0000, 0xffff, m_bank1); + program.install_read_bank(0x0000, 0xf7ff, m_bank2); + m_bank1->set_entry(1 + m_bank); + m_bank2->set_entry(1 + m_bank); } else { @@ -93,19 +93,19 @@ void xor100_state::bankswitch() program.unmap_read(0x0000, 0xf7ff); } - program.install_read_bank(0xf800, 0xffff, "bank3"); - membank("bank3")->set_entry(0); + program.install_read_bank(0xf800, 0xffff, m_bank3); + m_bank3->set_entry(0); break; case EPROM_OFF: if (m_bank < banks) { - program.install_write_bank(0x0000, 0xffff, "bank1"); - program.install_read_bank(0x0000, 0xf7ff, "bank2"); - program.install_read_bank(0xf800, 0xffff, "bank3"); - membank("bank1")->set_entry(1 + m_bank); - membank("bank2")->set_entry(1 + m_bank); - membank("bank3")->set_entry(1 + m_bank); + program.install_write_bank(0x0000, 0xffff, m_bank1); + program.install_read_bank(0x0000, 0xf7ff, m_bank2); + program.install_read_bank(0xf800, 0xffff, m_bank3); + m_bank1->set_entry(1 + m_bank); + m_bank2->set_entry(1 + m_bank); + m_bank3->set_entry(1 + m_bank); } else { diff --git a/src/mame/drivers/zaurus.cpp b/src/mame/drivers/zaurus.cpp index 451697a0b3b..80ea72420c6 100644 --- a/src/mame/drivers/zaurus.cpp +++ b/src/mame/drivers/zaurus.cpp @@ -1476,7 +1476,7 @@ private: void zaurus_sa_state::main_map(address_map &map) { - map(0x00000000, 0x00ffffff).ram().region("firmware", 0); + map(0x00000000, 0x00ffffff).rom().region("firmware", 0); map(0x90020000, 0x9002001f).rw(m_sa_periphs, FUNC(sa1110_periphs_device::power_r), FUNC(sa1110_periphs_device::power_w)); map(0x90050000, 0x90050023).rw(m_sa_periphs, FUNC(sa1110_periphs_device::intc_r), FUNC(sa1110_periphs_device::intc_w)); map(0xc0000000, 0xc07fffff).ram().share("ram"); @@ -1484,7 +1484,7 @@ void zaurus_sa_state::main_map(address_map &map) void zaurus_pxa_state::main_map(address_map &map) { - map(0x00000000, 0x001fffff).ram().region("firmware", 0); + map(0x00000000, 0x001fffff).rom().region("firmware", 0); map(0x40000000, 0x400002ff).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::dma_r), FUNC(pxa255_periphs_device::dma_w)); map(0x40400000, 0x40400083).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::i2s_r), FUNC(pxa255_periphs_device::i2s_w)); map(0x40900000, 0x4090000f).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::rtc_r), FUNC(pxa255_periphs_device::rtc_w)); diff --git a/src/mame/drivers/zr107.cpp b/src/mame/drivers/zr107.cpp index 7295cb92ec5..f3b91f8b305 100644 --- a/src/mame/drivers/zr107.cpp +++ b/src/mame/drivers/zr107.cpp @@ -506,8 +506,8 @@ void midnrun_state::main_memmap(address_map &map) map(0x7e008000, 0x7e009fff).rw("k056230", FUNC(k056230_device::read), FUNC(k056230_device::write)); /* LANC registers */ map(0x7e00a000, 0x7e00bfff).rw("k056230", FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w)); /* LANC Buffer RAM (27E) */ map(0x7e00c000, 0x7e00c00f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w)); - map(0x7f800000, 0x7f9fffff).rom().share("share2"); - map(0x7fe00000, 0x7fffffff).rom().region("user1", 0).share("share2"); /* Program ROM */ + map(0x7f800000, 0x7f9fffff).rom().region("user1", 0); + map(0x7fe00000, 0x7fffffff).rom().region("user1", 0); /* Program ROM */ } @@ -535,8 +535,8 @@ void jetwave_state::main_memmap(address_map &map) map(0x7e00a000, 0x7e00bfff).rw("k056230", FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w)); /* LANC Buffer RAM (27E) */ map(0x7e00c000, 0x7e00c00f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w)); map(0x7f000000, 0x7f3fffff).rom().region("user2", 0); - map(0x7f800000, 0x7f9fffff).rom().share("share2"); - map(0x7fe00000, 0x7fffffff).rom().region("user1", 0).share("share2"); /* Program ROM */ + map(0x7f800000, 0x7f9fffff).rom().region("user1", 0); + map(0x7fe00000, 0x7fffffff).rom().region("user1", 0); /* Program ROM */ } @@ -857,11 +857,11 @@ void zr107_state::driver_init() /*****************************************************************************/ ROM_START( midnrun ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "476ea1a01.20u", 0x000003, 0x80000, CRC(ea70edf2) SHA1(51c882383a150ba118ccd39eb869525fcf5eee3c) ) /* Program version EAA, v1.11 (EUR) */ - ROM_LOAD32_BYTE( "476ea1a02.17u", 0x000002, 0x80000, CRC(1462994f) SHA1(c8614c6c416f81737cc77c46eea6d8d440bc8cf3) ) - ROM_LOAD32_BYTE( "476ea1a03.15u", 0x000001, 0x80000, CRC(b770ae46) SHA1(c61daa8353802957eb1c2e2c6204c3a98569627e) ) - ROM_LOAD32_BYTE( "476ea1a04.13u", 0x000000, 0x80000, CRC(9644b277) SHA1(b9cb812b6035dfd93032d277c8aa0037cf6b3dbe) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "476ea1a01.20u", 0x000000, 0x80000, CRC(ea70edf2) SHA1(51c882383a150ba118ccd39eb869525fcf5eee3c) ) /* Program version EAA, v1.11 (EUR) */ + ROM_LOAD32_BYTE( "476ea1a02.17u", 0x000001, 0x80000, CRC(1462994f) SHA1(c8614c6c416f81737cc77c46eea6d8d440bc8cf3) ) + ROM_LOAD32_BYTE( "476ea1a03.15u", 0x000002, 0x80000, CRC(b770ae46) SHA1(c61daa8353802957eb1c2e2c6204c3a98569627e) ) + ROM_LOAD32_BYTE( "476ea1a04.13u", 0x000003, 0x80000, CRC(9644b277) SHA1(b9cb812b6035dfd93032d277c8aa0037cf6b3dbe) ) ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ ROM_LOAD16_WORD_SWAP( "477a07.19l", 0x000000, 0x20000, CRC(a82c0ba1) SHA1(dad69f2e5e75009d70cc2748477248ec47627c30) ) @@ -883,11 +883,11 @@ ROM_START( midnrun ) ROM_END ROM_START( midnrunj ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "476ja1d01.20u", 0x000003, 0x80000, CRC(68d05950) SHA1(d0ff9b9b628563e18a3eaa7b96b7e9e442c001a9) ) /* Program version JAD, v1.10 (JPN) */ - ROM_LOAD32_BYTE( "476ja1d02.17u", 0x000002, 0x80000, CRC(b12a14be) SHA1(d65281791874b90351442b94173d96582cfacd10) ) - ROM_LOAD32_BYTE( "476ja1d03.15u", 0x000001, 0x80000, CRC(f768c8f1) SHA1(b8242995bdb4f9ac078fd59ffc70c31014396c92) ) - ROM_LOAD32_BYTE( "476ja1d04.13u", 0x000000, 0x80000, CRC(6fd4fce7) SHA1(0ef25ec98a13f7beca1231db5a4db9004caadb0b) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "476ja1d01.20u", 0x000000, 0x80000, CRC(68d05950) SHA1(d0ff9b9b628563e18a3eaa7b96b7e9e442c001a9) ) /* Program version JAD, v1.10 (JPN) */ + ROM_LOAD32_BYTE( "476ja1d02.17u", 0x000001, 0x80000, CRC(b12a14be) SHA1(d65281791874b90351442b94173d96582cfacd10) ) + ROM_LOAD32_BYTE( "476ja1d03.15u", 0x000002, 0x80000, CRC(f768c8f1) SHA1(b8242995bdb4f9ac078fd59ffc70c31014396c92) ) + ROM_LOAD32_BYTE( "476ja1d04.13u", 0x000003, 0x80000, CRC(6fd4fce7) SHA1(0ef25ec98a13f7beca1231db5a4db9004caadb0b) ) ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ ROM_LOAD16_WORD_SWAP( "477a07.19l", 0x000000, 0x20000, CRC(a82c0ba1) SHA1(dad69f2e5e75009d70cc2748477248ec47627c30) ) @@ -909,11 +909,11 @@ ROM_START( midnrunj ) ROM_END ROM_START( midnruna ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "477aaa01.20u", 0x000003, 0x80000, CRC(3aa31517) SHA1(315d9c3c930493e39bc497ceafa0c4ef6fa64e4d) ) /* Program version AAA, v1.10 (ASA) */ - ROM_LOAD32_BYTE( "477aaa02.17u", 0x000002, 0x80000, CRC(c506bd3d) SHA1(d44ed2cb39f0da44f681190132c7603dfca813d9) ) - ROM_LOAD32_BYTE( "477aaa03.15u", 0x000001, 0x80000, CRC(53f8e898) SHA1(ba83a60a411bb307cb0e424099716ccf888a4f39) ) - ROM_LOAD32_BYTE( "477aaa04.13u", 0x000000, 0x80000, CRC(0eb264b7) SHA1(179a3d58c0f554fd1b283ee3640ce09d5142b288) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "477aaa01.20u", 0x000000, 0x80000, CRC(3aa31517) SHA1(315d9c3c930493e39bc497ceafa0c4ef6fa64e4d) ) /* Program version AAA, v1.10 (ASA) */ + ROM_LOAD32_BYTE( "477aaa02.17u", 0x000001, 0x80000, CRC(c506bd3d) SHA1(d44ed2cb39f0da44f681190132c7603dfca813d9) ) + ROM_LOAD32_BYTE( "477aaa03.15u", 0x000002, 0x80000, CRC(53f8e898) SHA1(ba83a60a411bb307cb0e424099716ccf888a4f39) ) + ROM_LOAD32_BYTE( "477aaa04.13u", 0x000003, 0x80000, CRC(0eb264b7) SHA1(179a3d58c0f554fd1b283ee3640ce09d5142b288) ) ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ ROM_LOAD16_WORD_SWAP( "477a07.19l", 0x000000, 0x20000, CRC(a82c0ba1) SHA1(dad69f2e5e75009d70cc2748477248ec47627c30) ) @@ -935,7 +935,7 @@ ROM_START( midnruna ) ROM_END ROM_START( midnruna2 ) - ROM_REGION(0x200000, "user1", 0) // PowerPC program roms + ROM_REGION32_BE(0x200000, "user1", 0) // PowerPC program roms ROM_LOAD32_BYTE( "477ab1d01.20u", 0x000003, 0x80000, CRC(3aa31517) SHA1(315d9c3c930493e39bc497ceafa0c4ef6fa64e4d) ) // labeled AB1, but still program version AAA, v1.10 (ASA) ROM_LOAD32_BYTE( "477ab1d02.17u", 0x000002, 0x80000, CRC(c506bd3d) SHA1(d44ed2cb39f0da44f681190132c7603dfca813d9) ) ROM_LOAD32_BYTE( "477ab1d03.15u", 0x000001, 0x80000, CRC(53f8e898) SHA1(ba83a60a411bb307cb0e424099716ccf888a4f39) ) @@ -961,11 +961,11 @@ ROM_START( midnruna2 ) ROM_END ROM_START( windheat ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "677eaa01.20u", 0x000003, 0x080000, CRC(500b61f4) SHA1(ec39165412978c0dbd3cbf1f7b6989b5d7ba20a0) ) /* Program version EAA, v2.11 (EUR) */ - ROM_LOAD32_BYTE( "677eaa02.17u", 0x000002, 0x080000, CRC(99f9fd3b) SHA1(aaec5d7f4e46648aab3738ab09e46b312caee58f) ) - ROM_LOAD32_BYTE( "677eaa03.15u", 0x000001, 0x080000, CRC(c46eba6b) SHA1(80fea082d09071875d30a6a838736cf3a3e4501d) ) - ROM_LOAD32_BYTE( "677eaa04.13u", 0x000000, 0x080000, CRC(20dfcf4e) SHA1(4de8e22507f4719441f14fe96e25f0e0712dfa95) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "677eaa01.20u", 0x000000, 0x080000, CRC(500b61f4) SHA1(ec39165412978c0dbd3cbf1f7b6989b5d7ba20a0) ) /* Program version EAA, v2.11 (EUR) */ + ROM_LOAD32_BYTE( "677eaa02.17u", 0x000001, 0x080000, CRC(99f9fd3b) SHA1(aaec5d7f4e46648aab3738ab09e46b312caee58f) ) + ROM_LOAD32_BYTE( "677eaa03.15u", 0x000002, 0x080000, CRC(c46eba6b) SHA1(80fea082d09071875d30a6a838736cf3a3e4501d) ) + ROM_LOAD32_BYTE( "677eaa04.13u", 0x000003, 0x080000, CRC(20dfcf4e) SHA1(4de8e22507f4719441f14fe96e25f0e0712dfa95) ) ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ ROM_LOAD16_WORD_SWAP( "677a07.19l", 0x000000, 0x020000, CRC(05b14f2d) SHA1(3753f71173594ee741980e08eed0f7c3fc3588c9) ) @@ -987,11 +987,11 @@ ROM_START( windheat ) ROM_END ROM_START( windheatu ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "677ubc01.20u", 0x000003, 0x080000, CRC(63198721) SHA1(7f34131bf51d573d0c683b28df2567a0b911c98c) ) /* Program version UBC, v2.22 (USA) */ - ROM_LOAD32_BYTE( "677ubc02.17u", 0x000002, 0x080000, CRC(bdb00e2d) SHA1(c54b2250047576e12e9936300989e40494b4659d) ) - ROM_LOAD32_BYTE( "677ubc03.15u", 0x000001, 0x080000, CRC(0f7d8c1f) SHA1(63de03c7be794b6dae8d0af69e894ac573dbbc11) ) - ROM_LOAD32_BYTE( "677ubc04.13u", 0x000000, 0x080000, CRC(4e42791c) SHA1(a53c6374c6b46db578be4ced2ee7c2af7062d961) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "677ubc01.20u", 0x000000, 0x080000, CRC(63198721) SHA1(7f34131bf51d573d0c683b28df2567a0b911c98c) ) /* Program version UBC, v2.22 (USA) */ + ROM_LOAD32_BYTE( "677ubc02.17u", 0x000001, 0x080000, CRC(bdb00e2d) SHA1(c54b2250047576e12e9936300989e40494b4659d) ) + ROM_LOAD32_BYTE( "677ubc03.15u", 0x000002, 0x080000, CRC(0f7d8c1f) SHA1(63de03c7be794b6dae8d0af69e894ac573dbbc11) ) + ROM_LOAD32_BYTE( "677ubc04.13u", 0x000003, 0x080000, CRC(4e42791c) SHA1(a53c6374c6b46db578be4ced2ee7c2af7062d961) ) ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ ROM_LOAD16_WORD_SWAP( "677a07.19l", 0x000000, 0x020000, CRC(05b14f2d) SHA1(3753f71173594ee741980e08eed0f7c3fc3588c9) ) @@ -1013,11 +1013,11 @@ ROM_START( windheatu ) ROM_END ROM_START( windheatj ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "677jaa01.20u", 0x000003, 0x080000, CRC(559b8def) SHA1(6f2e8f29b0d9a950e71015270560813adc20b689) ) /* Program version JAA, v2.11 (JPN) */ - ROM_LOAD32_BYTE( "677jaa02.17u", 0x000002, 0x080000, CRC(cc230575) SHA1(be2da67600ab5edad2e8b7711c4cf985befe28bf) ) - ROM_LOAD32_BYTE( "677jaa03.15u", 0x000001, 0x080000, CRC(20b04701) SHA1(463be36c7f65b4aa3c3f2b1f37d1e6c1f5106cbb) ) - ROM_LOAD32_BYTE( "677jaa04.13u", 0x000000, 0x080000, CRC(f563b2a5) SHA1(b55b486b6af926eff4729f402116d45b61c5d25a) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "677jaa01.20u", 0x000000, 0x080000, CRC(559b8def) SHA1(6f2e8f29b0d9a950e71015270560813adc20b689) ) /* Program version JAA, v2.11 (JPN) */ + ROM_LOAD32_BYTE( "677jaa02.17u", 0x000001, 0x080000, CRC(cc230575) SHA1(be2da67600ab5edad2e8b7711c4cf985befe28bf) ) + ROM_LOAD32_BYTE( "677jaa03.15u", 0x000002, 0x080000, CRC(20b04701) SHA1(463be36c7f65b4aa3c3f2b1f37d1e6c1f5106cbb) ) + ROM_LOAD32_BYTE( "677jaa04.13u", 0x000003, 0x080000, CRC(f563b2a5) SHA1(b55b486b6af926eff4729f402116d45b61c5d25a) ) ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ ROM_LOAD16_WORD_SWAP( "677a07.19l", 0x000000, 0x020000, CRC(05b14f2d) SHA1(3753f71173594ee741980e08eed0f7c3fc3588c9) ) @@ -1039,11 +1039,11 @@ ROM_START( windheatj ) ROM_END ROM_START( windheata ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "677aaa01.20u", 0x000003, 0x080000, CRC(0d88d0e2) SHA1(93da258bfdb2baa1796916ea8350fff521d43373) ) /* Program version AAA, 2.11 (ASA) */ - ROM_LOAD32_BYTE( "677aaa02.17u", 0x000002, 0x080000, CRC(f71044a3) SHA1(a88990d4a65b610f695f4a6ff42868d04f6ba1b3) ) - ROM_LOAD32_BYTE( "677aaa03.15u", 0x000001, 0x080000, CRC(3c897588) SHA1(718b0eb57f23a3117d2ad3c58e53196f72fc61bf) ) - ROM_LOAD32_BYTE( "677aaa04.13u", 0x000000, 0x080000, CRC(aee84b7d) SHA1(b69a44e51e21f28bcd5cd87297066fc7ba7b5043) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "677aaa01.20u", 0x000000, 0x080000, CRC(0d88d0e2) SHA1(93da258bfdb2baa1796916ea8350fff521d43373) ) /* Program version AAA, 2.11 (ASA) */ + ROM_LOAD32_BYTE( "677aaa02.17u", 0x000001, 0x080000, CRC(f71044a3) SHA1(a88990d4a65b610f695f4a6ff42868d04f6ba1b3) ) + ROM_LOAD32_BYTE( "677aaa03.15u", 0x000002, 0x080000, CRC(3c897588) SHA1(718b0eb57f23a3117d2ad3c58e53196f72fc61bf) ) + ROM_LOAD32_BYTE( "677aaa04.13u", 0x000003, 0x080000, CRC(aee84b7d) SHA1(b69a44e51e21f28bcd5cd87297066fc7ba7b5043) ) ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ ROM_LOAD16_WORD_SWAP( "677a07.19l", 0x000000, 0x020000, CRC(05b14f2d) SHA1(3753f71173594ee741980e08eed0f7c3fc3588c9) ) @@ -1065,11 +1065,11 @@ ROM_START( windheata ) ROM_END ROM_START( jetwave ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "678eab01.20u", 0x000003, 0x080000, CRC(bc657198) SHA1(e521bb2c1b1a3ae934c98ce1656d35821fc287c9) ) /* Program version EAB, EUR v1.04 */ - ROM_LOAD32_BYTE( "678eab02.17u", 0x000002, 0x080000, CRC(a9a57090) SHA1(ae0273b00c64687f8f835aba531580654edd1097) ) - ROM_LOAD32_BYTE( "678eab03.15u", 0x000001, 0x080000, CRC(483aaff0) SHA1(86e011337532f6ff0174393758784b276143ba10) ) - ROM_LOAD32_BYTE( "678eab04.13u", 0x000000, 0x080000, CRC(c7580d72) SHA1(6a5652365a85917ac48b0f1ced70b9c311e89a4f) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "678eab01.20u", 0x000000, 0x080000, CRC(bc657198) SHA1(e521bb2c1b1a3ae934c98ce1656d35821fc287c9) ) /* Program version EAB, EUR v1.04 */ + ROM_LOAD32_BYTE( "678eab02.17u", 0x000001, 0x080000, CRC(a9a57090) SHA1(ae0273b00c64687f8f835aba531580654edd1097) ) + ROM_LOAD32_BYTE( "678eab03.15u", 0x000002, 0x080000, CRC(483aaff0) SHA1(86e011337532f6ff0174393758784b276143ba10) ) + ROM_LOAD32_BYTE( "678eab04.13u", 0x000003, 0x080000, CRC(c7580d72) SHA1(6a5652365a85917ac48b0f1ced70b9c311e89a4f) ) ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ ROM_LOAD16_WORD_SWAP( "678a07.19l", 0x000000, 0x020000, CRC(bb3f5875) SHA1(97f80d9b55d4177217b7cd1ba14e8ed2d64376bb) ) @@ -1091,11 +1091,11 @@ ROM_START( jetwave ) ROM_END ROM_START( waveshrk ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "678uab01.20u", 0x000003, 0x080000, CRC(a9b9ceed) SHA1(36f0d18481d7c3e7358e02473e54bc6b52d5c26b) ) /* Program version UAB, USA v1.04 */ - ROM_LOAD32_BYTE( "678uab02.17u", 0x000002, 0x080000, CRC(5ed24ac8) SHA1(d659c751558d4f8d89314466a37c04ac2df46879) ) - ROM_LOAD32_BYTE( "678uab03.15u", 0x000001, 0x080000, CRC(f4a595e7) SHA1(e05e7ea6613ecf70d8470af5fe0c6a7274c6e45b) ) - ROM_LOAD32_BYTE( "678uab04.13u", 0x000000, 0x080000, CRC(fd3320a7) SHA1(03a50a7bba9eb7cdb9f84953d6fb5c09f2d4b2db) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "678uab01.20u", 0x000000, 0x080000, CRC(a9b9ceed) SHA1(36f0d18481d7c3e7358e02473e54bc6b52d5c26b) ) /* Program version UAB, USA v1.04 */ + ROM_LOAD32_BYTE( "678uab02.17u", 0x000001, 0x080000, CRC(5ed24ac8) SHA1(d659c751558d4f8d89314466a37c04ac2df46879) ) + ROM_LOAD32_BYTE( "678uab03.15u", 0x000002, 0x080000, CRC(f4a595e7) SHA1(e05e7ea6613ecf70d8470af5fe0c6a7274c6e45b) ) + ROM_LOAD32_BYTE( "678uab04.13u", 0x000003, 0x080000, CRC(fd3320a7) SHA1(03a50a7bba9eb7cdb9f84953d6fb5c09f2d4b2db) ) ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ ROM_LOAD16_WORD_SWAP( "678a07.19l", 0x000000, 0x020000, CRC(bb3f5875) SHA1(97f80d9b55d4177217b7cd1ba14e8ed2d64376bb) ) @@ -1117,11 +1117,11 @@ ROM_START( waveshrk ) ROM_END ROM_START( jetwavej ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "678jab01.20u", 0x000003, 0x080000, CRC(fa3da5cc) SHA1(33307e701e6eb28d44e0653ac3f1de47fc17779d) ) /* Program version JAB, JPN v1.04 */ - ROM_LOAD32_BYTE( "678jab02.17u", 0x000002, 0x080000, CRC(01c6713e) SHA1(68e27c018f974e820ba2e99d89a743e53faf1e65) ) - ROM_LOAD32_BYTE( "678jab03.15u", 0x000001, 0x080000, CRC(21c757cb) SHA1(1de6df8e4c52d40882cbf771ff7215ed7b53f251) ) - ROM_LOAD32_BYTE( "678jab04.13u", 0x000000, 0x080000, CRC(fdcc1ecc) SHA1(206cb98a6587cd8e5a9287037d85f392bd2f6e82) ) + ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ + ROM_LOAD32_BYTE( "678jab01.20u", 0x000000, 0x080000, CRC(fa3da5cc) SHA1(33307e701e6eb28d44e0653ac3f1de47fc17779d) ) /* Program version JAB, JPN v1.04 */ + ROM_LOAD32_BYTE( "678jab02.17u", 0x000001, 0x080000, CRC(01c6713e) SHA1(68e27c018f974e820ba2e99d89a743e53faf1e65) ) + ROM_LOAD32_BYTE( "678jab03.15u", 0x000002, 0x080000, CRC(21c757cb) SHA1(1de6df8e4c52d40882cbf771ff7215ed7b53f251) ) + ROM_LOAD32_BYTE( "678jab04.13u", 0x000003, 0x080000, CRC(fdcc1ecc) SHA1(206cb98a6587cd8e5a9287037d85f392bd2f6e82) ) ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ ROM_LOAD16_WORD_SWAP( "678a07.19l", 0x000000, 0x020000, CRC(bb3f5875) SHA1(97f80d9b55d4177217b7cd1ba14e8ed2d64376bb) ) |