summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers
diff options
context:
space:
mode:
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
commitb8c338858a101d14308c64c87b0f714db4f05326 (patch)
treea34dca21d603b98f5450d31868ce33a7e4c103b0 /src/mame/drivers
parentf4172ded3ec6f3b877ab813f6453d6d1907c1c00 (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')
-rw-r--r--src/mame/drivers/3do.cpp2
-rw-r--r--src/mame/drivers/4enlinea.cpp2
-rw-r--r--src/mame/drivers/8080bw.cpp2
-rw-r--r--src/mame/drivers/a5105.cpp16
-rw-r--r--src/mame/drivers/a7150.cpp16
-rw-r--r--src/mame/drivers/aeroboto.cpp2
-rw-r--r--src/mame/drivers/alphasma.cpp2
-rw-r--r--src/mame/drivers/amiga.cpp2
-rw-r--r--src/mame/drivers/apc.cpp9
-rw-r--r--src/mame/drivers/apple2gs.cpp3
-rw-r--r--src/mame/drivers/apricotp.cpp11
-rw-r--r--src/mame/drivers/aristmk4.cpp4
-rw-r--r--src/mame/drivers/arsystems.cpp20
-rw-r--r--src/mame/drivers/asteroid.cpp14
-rw-r--r--src/mame/drivers/at.cpp7
-rw-r--r--src/mame/drivers/atari400.cpp27
-rw-r--r--src/mame/drivers/aussiebyte.cpp64
-rw-r--r--src/mame/drivers/b2m.cpp12
-rw-r--r--src/mame/drivers/beathead.cpp2
-rw-r--r--src/mame/drivers/blitz68k.cpp6
-rw-r--r--src/mame/drivers/blmbycar.cpp6
-rw-r--r--src/mame/drivers/bmcbowl.cpp2
-rw-r--r--src/mame/drivers/bnstars.cpp14
-rw-r--r--src/mame/drivers/btime.cpp6
-rw-r--r--src/mame/drivers/buggychl.cpp2
-rw-r--r--src/mame/drivers/bw12.cpp24
-rw-r--r--src/mame/drivers/bwidow.cpp6
-rw-r--r--src/mame/drivers/bzone.cpp34
-rw-r--r--src/mame/drivers/c128.cpp7
-rw-r--r--src/mame/drivers/c64.cpp7
-rw-r--r--src/mame/drivers/cabaret.cpp2
-rw-r--r--src/mame/drivers/calchase.cpp2
-rw-r--r--src/mame/drivers/calorie.cpp3
-rw-r--r--src/mame/drivers/cbm2.cpp29
-rw-r--r--src/mame/drivers/cham24.cpp9
-rw-r--r--src/mame/drivers/chinagat.cpp2
-rw-r--r--src/mame/drivers/chsuper.cpp2
-rw-r--r--src/mame/drivers/cninja.cpp12
-rw-r--r--src/mame/drivers/combatsc.cpp2
-rw-r--r--src/mame/drivers/compis.cpp6
-rw-r--r--src/mame/drivers/coolridr.cpp8
-rw-r--r--src/mame/drivers/crshrace.cpp2
-rw-r--r--src/mame/drivers/cv1k.cpp8
-rw-r--r--src/mame/drivers/dccons.cpp2
-rw-r--r--src/mame/drivers/ddenlovr.cpp10
-rw-r--r--src/mame/drivers/ddragon.cpp4
-rw-r--r--src/mame/drivers/deadang.cpp18
-rw-r--r--src/mame/drivers/dec0.cpp22
-rw-r--r--src/mame/drivers/dec8.cpp2
-rw-r--r--src/mame/drivers/decocass.cpp12
-rw-r--r--src/mame/drivers/dgn_beta.cpp1
-rw-r--r--src/mame/drivers/dgpix.cpp2
-rw-r--r--src/mame/drivers/diverboy.cpp4
-rw-r--r--src/mame/drivers/djboy.cpp4
-rw-r--r--src/mame/drivers/dkong.cpp38
-rw-r--r--src/mame/drivers/dreamwld.cpp4
-rw-r--r--src/mame/drivers/ec184x.cpp20
-rw-r--r--src/mame/drivers/elf.cpp6
-rw-r--r--src/mame/drivers/emu68k.cpp8
-rw-r--r--src/mame/drivers/eolith16.cpp2
-rw-r--r--src/mame/drivers/exidy.cpp3
-rw-r--r--src/mame/drivers/exidy440.cpp2
-rw-r--r--src/mame/drivers/exp85.cpp4
-rw-r--r--src/mame/drivers/famibox.cpp12
-rw-r--r--src/mame/drivers/fastfred.cpp2
-rw-r--r--src/mame/drivers/fm7.cpp3
-rw-r--r--src/mame/drivers/fmtowns.cpp2
-rw-r--r--src/mame/drivers/fruitpc.cpp2
-rw-r--r--src/mame/drivers/galaxian.cpp22
-rw-r--r--src/mame/drivers/galaxold.cpp4
-rw-r--r--src/mame/drivers/galivan.cpp13
-rw-r--r--src/mame/drivers/gamate.cpp6
-rw-r--r--src/mame/drivers/gamecom.cpp12
-rw-r--r--src/mame/drivers/gba.cpp11
-rw-r--r--src/mame/drivers/ghosteo.cpp8
-rw-r--r--src/mame/drivers/gimix.cpp2
-rw-r--r--src/mame/drivers/gottlieb.cpp20
-rw-r--r--src/mame/drivers/gridcomp.cpp3
-rw-r--r--src/mame/drivers/gticlub.cpp118
-rw-r--r--src/mame/drivers/harddriv.cpp2
-rw-r--r--src/mame/drivers/hec2hrp.cpp13
-rw-r--r--src/mame/drivers/hng64.cpp82
-rw-r--r--src/mame/drivers/hornet.cpp4
-rw-r--r--src/mame/drivers/hp3478a.cpp5
-rw-r--r--src/mame/drivers/ibm6580.cpp5
-rw-r--r--src/mame/drivers/igspoker.cpp2
-rw-r--r--src/mame/drivers/indigo.cpp4
-rw-r--r--src/mame/drivers/irobot.cpp2
-rw-r--r--src/mame/drivers/itech32.cpp28
-rw-r--r--src/mame/drivers/itech8.cpp9
-rw-r--r--src/mame/drivers/jackie.cpp2
-rw-r--r--src/mame/drivers/jaguar.cpp2
-rw-r--r--src/mame/drivers/jalmah.cpp14
-rw-r--r--src/mame/drivers/jr100.cpp6
-rw-r--r--src/mame/drivers/jtc.cpp29
-rw-r--r--src/mame/drivers/jupace.cpp6
-rw-r--r--src/mame/drivers/kangaroo.cpp2
-rw-r--r--src/mame/drivers/kinst.cpp6
-rw-r--r--src/mame/drivers/konamigs.cpp6
-rw-r--r--src/mame/drivers/kyocera.cpp88
-rw-r--r--src/mame/drivers/kyugo.cpp44
-rw-r--r--src/mame/drivers/lc80.cpp14
-rw-r--r--src/mame/drivers/leapster.cpp5
-rw-r--r--src/mame/drivers/leland.cpp19
-rw-r--r--src/mame/drivers/liberate.cpp2
-rw-r--r--src/mame/drivers/limenko.cpp9
-rw-r--r--src/mame/drivers/lisa.cpp4
-rw-r--r--src/mame/drivers/m20.cpp291
-rw-r--r--src/mame/drivers/m5.cpp60
-rw-r--r--src/mame/drivers/m72.cpp9
-rw-r--r--src/mame/drivers/macprtb.cpp3
-rw-r--r--src/mame/drivers/macpwrbk030.cpp6
-rw-r--r--src/mame/drivers/macquadra700.cpp6
-rw-r--r--src/mame/drivers/magtouch.cpp2
-rw-r--r--src/mame/drivers/mbc200.cpp4
-rw-r--r--src/mame/drivers/mbc55x.cpp6
-rw-r--r--src/mame/drivers/mc1000.cpp46
-rw-r--r--src/mame/drivers/mc1502.cpp3
-rw-r--r--src/mame/drivers/mcr.cpp23
-rw-r--r--src/mame/drivers/megadriv_acbl.cpp5
-rw-r--r--src/mame/drivers/megatech.cpp3
-rw-r--r--src/mame/drivers/megazone.cpp2
-rw-r--r--src/mame/drivers/mhavoc.cpp4
-rw-r--r--src/mame/drivers/micronic.cpp2
-rw-r--r--src/mame/drivers/midzeus.cpp2
-rw-r--r--src/mame/drivers/model3.cpp20
-rw-r--r--src/mame/drivers/monkey_king_3b.cpp2
-rw-r--r--src/mame/drivers/moo.cpp2
-rw-r--r--src/mame/drivers/mpu4vid.cpp8
-rw-r--r--src/mame/drivers/mpz80.cpp1
-rw-r--r--src/mame/drivers/mtouchxl.cpp4
-rw-r--r--src/mame/drivers/multigam.cpp60
-rw-r--r--src/mame/drivers/naomi.cpp8
-rw-r--r--src/mame/drivers/nc.cpp13
-rw-r--r--src/mame/drivers/neogeo.cpp5
-rw-r--r--src/mame/drivers/neogeocd.cpp8
-rw-r--r--src/mame/drivers/neopcb.cpp20
-rw-r--r--src/mame/drivers/nes.cpp3
-rw-r--r--src/mame/drivers/ngen.cpp5
-rw-r--r--src/mame/drivers/ngp.cpp6
-rw-r--r--src/mame/drivers/nightgal.cpp4
-rw-r--r--src/mame/drivers/nmk16.cpp4
-rw-r--r--src/mame/drivers/nwk-tr.cpp6
-rw-r--r--src/mame/drivers/octopus.cpp8
-rw-r--r--src/mame/drivers/offtwall.cpp4
-rw-r--r--src/mame/drivers/ojankohs.cpp10
-rw-r--r--src/mame/drivers/omegrace.cpp2
-rw-r--r--src/mame/drivers/opwolf.cpp6
-rw-r--r--src/mame/drivers/osi.cpp8
-rw-r--r--src/mame/drivers/pacman.cpp31
-rw-r--r--src/mame/drivers/palm.cpp4
-rw-r--r--src/mame/drivers/pc1500.cpp14
-rw-r--r--src/mame/drivers/pc8001.cpp12
-rw-r--r--src/mame/drivers/pc8401a.cpp23
-rw-r--r--src/mame/drivers/pcat_nit.cpp29
-rw-r--r--src/mame/drivers/pce220.cpp3
-rw-r--r--src/mame/drivers/pcm.cpp6
-rw-r--r--src/mame/drivers/pda600.cpp14
-rw-r--r--src/mame/drivers/pet.cpp7
-rw-r--r--src/mame/drivers/pingpong.cpp53
-rw-r--r--src/mame/drivers/pipedrm.cpp3
-rw-r--r--src/mame/drivers/playch10.cpp286
-rw-r--r--src/mame/drivers/poisk1.cpp13
-rw-r--r--src/mame/drivers/popeye.cpp15
-rw-r--r--src/mame/drivers/prestige.cpp6
-rw-r--r--src/mame/drivers/ps2.cpp4
-rw-r--r--src/mame/drivers/psychic5.cpp2
-rw-r--r--src/mame/drivers/rohga.cpp2
-rw-r--r--src/mame/drivers/rollext.cpp2
-rw-r--r--src/mame/drivers/scorpion.cpp2
-rw-r--r--src/mame/drivers/segas16b.cpp2
-rw-r--r--src/mame/drivers/segas32.cpp6
-rw-r--r--src/mame/drivers/seibuspi.cpp8
-rw-r--r--src/mame/drivers/socrates.cpp34
-rw-r--r--src/mame/drivers/srmp5.cpp4
-rw-r--r--src/mame/drivers/srmp6.cpp5
-rw-r--r--src/mame/drivers/ssv.cpp6
-rw-r--r--src/mame/drivers/starwars.cpp2
-rw-r--r--src/mame/drivers/subsino.cpp10
-rw-r--r--src/mame/drivers/suna8.cpp4
-rw-r--r--src/mame/drivers/supdrapo.cpp2
-rw-r--r--src/mame/drivers/sym1.cpp11
-rw-r--r--src/mame/drivers/symbolics.cpp3
-rw-r--r--src/mame/drivers/tandy2k.cpp1
-rw-r--r--src/mame/drivers/tceptor.cpp6
-rw-r--r--src/mame/drivers/tempest.cpp2
-rw-r--r--src/mame/drivers/tigeroad.cpp3
-rw-r--r--src/mame/drivers/tiki100.cpp3
-rw-r--r--src/mame/drivers/timex.cpp76
-rw-r--r--src/mame/drivers/tmc1800.cpp2
-rw-r--r--src/mame/drivers/trackfld.cpp12
-rw-r--r--src/mame/drivers/triforce.cpp2
-rw-r--r--src/mame/drivers/trs80m2.cpp2
-rw-r--r--src/mame/drivers/tsamurai.cpp4
-rw-r--r--src/mame/drivers/tubep.cpp2
-rw-r--r--src/mame/drivers/tumbleb.cpp8
-rw-r--r--src/mame/drivers/tunhunt.cpp12
-rw-r--r--src/mame/drivers/twin16.cpp13
-rw-r--r--src/mame/drivers/unico.cpp2
-rw-r--r--src/mame/drivers/v1050.cpp18
-rw-r--r--src/mame/drivers/vamphalf.cpp25
-rw-r--r--src/mame/drivers/vegaeo.cpp8
-rw-r--r--src/mame/drivers/vic10.cpp7
-rw-r--r--src/mame/drivers/videopkr.cpp4
-rw-r--r--src/mame/drivers/voyager.cpp4
-rw-r--r--src/mame/drivers/vtech1.cpp15
-rw-r--r--src/mame/drivers/williams.cpp2
-rw-r--r--src/mame/drivers/x68k.cpp3
-rw-r--r--src/mame/drivers/xor100.cpp36
-rw-r--r--src/mame/drivers/zaurus.cpp4
-rw-r--r--src/mame/drivers/zr107.cpp110
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) )