summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatarGravatar Olivier Galibert <galibert@pobox.com>2019-05-06 09:38:16 +0200
committerGravatarGravatar Olivier Galibert <galibert@pobox.com>2019-05-06 09:39:01 +0200
commitd5dd5c1ce9cfdcea76c5942000265664018b80e2 (patch) (github)
tree239a60a3593ed0796cfe824f194b8aad897a418c
parentd3132cc13b8a7a29ce6e4e5b3d543294c256dfb7 (diff)
downloadmame-d5dd5c1ce9cfdcea76c5942000265664018b80e2.tar.bz2
mame-d5dd5c1ce9cfdcea76c5942000265664018b80e2.zip
all: ram auto-sharing is going away, so fix drivers relying on it [O. Galibert]
-rw-r--r--src/mame/audio/cage.cpp2
-rw-r--r--src/mame/drivers/ambush.cpp11
-rw-r--r--src/mame/drivers/amiga.cpp3
-rw-r--r--src/mame/drivers/appoooh.cpp15
-rw-r--r--src/mame/drivers/armedf.cpp13
-rw-r--r--src/mame/drivers/astrocde.cpp11
-rw-r--r--src/mame/drivers/atarig1.cpp10
-rw-r--r--src/mame/drivers/atarig42.cpp9
-rw-r--r--src/mame/drivers/atarigt.cpp11
-rw-r--r--src/mame/drivers/atarigx2.cpp11
-rw-r--r--src/mame/drivers/bagman.cpp10
-rw-r--r--src/mame/drivers/banctec.cpp1
-rw-r--r--src/mame/drivers/batman.cpp12
-rw-r--r--src/mame/drivers/bingor.cpp4
-rw-r--r--src/mame/drivers/by68701.cpp1
-rw-r--r--src/mame/drivers/cball.cpp3
-rw-r--r--src/mame/drivers/ccastles.cpp4
-rw-r--r--src/mame/drivers/cclimber.cpp12
-rw-r--r--src/mame/drivers/contra.cpp13
-rw-r--r--src/mame/drivers/coolridr.cpp31
-rw-r--r--src/mame/drivers/cps2.cpp12
-rw-r--r--src/mame/drivers/crystal.cpp7
-rw-r--r--src/mame/drivers/ddragon.cpp2
-rw-r--r--src/mame/drivers/deadang.cpp11
-rw-r--r--src/mame/drivers/eprom.cpp30
-rw-r--r--src/mame/drivers/equites.cpp11
-rw-r--r--src/mame/drivers/expro02.cpp2
-rw-r--r--src/mame/drivers/feversoc.cpp2
-rw-r--r--src/mame/drivers/fitfight.cpp3
-rw-r--r--src/mame/drivers/gaelco2.cpp5
-rw-r--r--src/mame/drivers/gaelco3d.cpp12
-rw-r--r--src/mame/drivers/galaxian.cpp12
-rw-r--r--src/mame/drivers/galaxold.cpp1
-rw-r--r--src/mame/drivers/gamepock.cpp1
-rw-r--r--src/mame/drivers/goindol.cpp4
-rw-r--r--src/mame/drivers/hvyunit.cpp3
-rw-r--r--src/mame/drivers/ironhors.cpp7
-rw-r--r--src/mame/drivers/legionna.cpp1
-rw-r--r--src/mame/drivers/liberate.cpp5
-rw-r--r--src/mame/drivers/liberatr.cpp4
-rw-r--r--src/mame/drivers/ltd.cpp2
-rw-r--r--src/mame/drivers/m62.cpp2
-rw-r--r--src/mame/drivers/maygayep.cpp2
-rw-r--r--src/mame/drivers/maygayv1.cpp1
-rw-r--r--src/mame/drivers/mgolf.cpp18
-rw-r--r--src/mame/drivers/midvunit.cpp2
-rw-r--r--src/mame/drivers/mps1230.cpp1
-rw-r--r--src/mame/drivers/namcos12.cpp6
-rw-r--r--src/mame/drivers/namcos23.cpp2
-rw-r--r--src/mame/drivers/nemesis.cpp110
-rw-r--r--src/mame/drivers/nmk16.cpp15
-rw-r--r--src/mame/drivers/o2.cpp1
-rw-r--r--src/mame/drivers/olibochu.cpp4
-rw-r--r--src/mame/drivers/punchout.cpp18
-rw-r--r--src/mame/drivers/realbrk.cpp3
-rw-r--r--src/mame/drivers/rocnrope.cpp3
-rw-r--r--src/mame/drivers/rohga.cpp3
-rw-r--r--src/mame/drivers/scv.cpp1
-rw-r--r--src/mame/drivers/senjyo.cpp7
-rw-r--r--src/mame/drivers/seta.cpp3
-rw-r--r--src/mame/drivers/skimaxx.cpp4
-rw-r--r--src/mame/drivers/ssv.cpp3
-rw-r--r--src/mame/drivers/stfight.cpp2
-rw-r--r--src/mame/drivers/subs.cpp5
-rw-r--r--src/mame/drivers/subsino2.cpp12
-rw-r--r--src/mame/drivers/swtpc09.cpp9
-rw-r--r--src/mame/drivers/tagteam.cpp5
-rw-r--r--src/mame/drivers/tankbust.cpp3
-rw-r--r--src/mame/drivers/taxidriv.cpp11
-rw-r--r--src/mame/drivers/tbowl.cpp5
-rw-r--r--src/mame/drivers/wecleman.cpp5
-rw-r--r--src/mame/drivers/wiping.cpp8
-rw-r--r--src/mame/drivers/yiear.cpp5
-rw-r--r--src/mame/drivers/zaccaria.cpp3
-rw-r--r--src/mame/includes/armedf.h1
-rw-r--r--src/mame/includes/astrocde.h2
-rw-r--r--src/mame/includes/bagman.h4
-rw-r--r--src/mame/includes/eprom.h4
-rw-r--r--src/mame/includes/equites.h1
-rw-r--r--src/mame/includes/gaelco3d.h3
-rw-r--r--src/mame/video/bagman.cpp17
-rw-r--r--src/mame/video/liberatr.cpp1
82 files changed, 325 insertions, 314 deletions
diff --git a/src/mame/audio/cage.cpp b/src/mame/audio/cage.cpp
index 9a3a3bec780..a1cc0ccf349 100644
--- a/src/mame/audio/cage.cpp
+++ b/src/mame/audio/cage.cpp
@@ -588,7 +588,6 @@ void atari_cage_device::cage_map(address_map &map)
map(0x200000, 0x200000).nopw();
map(0x400000, 0x47ffff).bankr("bootbank");
map(0x808000, 0x8080ff).rw(FUNC(atari_cage_device::tms32031_io_r), FUNC(atari_cage_device::tms32031_io_w));
- map(0x809800, 0x809fff).ram();
map(0xa00000, 0xa00000).rw(FUNC(atari_cage_device::cage_from_main_r), FUNC(atari_cage_device::cage_to_main_w));
map(0xc00000, 0xffffff).bankr("mainbank");
}
@@ -600,7 +599,6 @@ void atari_cage_seattle_device::cage_map_seattle(address_map &map)
map(0x200000, 0x200000).nopw();
map(0x400000, 0x47ffff).bankr("bootbank");
map(0x808000, 0x8080ff).rw(FUNC(atari_cage_seattle_device::tms32031_io_r), FUNC(atari_cage_seattle_device::tms32031_io_w));
- map(0x809800, 0x809fff).ram();
map(0xa00000, 0xa00000).rw(FUNC(atari_cage_seattle_device::cage_from_main_r), FUNC(atari_cage_seattle_device::cage_from_main_ack_w));
map(0xa00001, 0xa00001).w(FUNC(atari_cage_seattle_device::cage_to_main_w));
map(0xa00003, 0xa00003).r(FUNC(atari_cage_seattle_device::cage_io_status_r));
diff --git a/src/mame/drivers/ambush.cpp b/src/mame/drivers/ambush.cpp
index 0e15f2331aa..0e50532b217 100644
--- a/src/mame/drivers/ambush.cpp
+++ b/src/mame/drivers/ambush.cpp
@@ -154,11 +154,12 @@ void ambush_state::bootleg_map(address_map &map)
{
map(0x0000, 0x5fff).rom();
map(0x6000, 0x6fff).ram();
- map(0x7000, 0x77ff).ram();
- map(0x7000, 0x71ff).share("sprite_ram");
- map(0x7200, 0x72ff).share("attribute_ram");
- map(0x7380, 0x739f).share("scroll_ram"); // not used on bootlegs?
- map(0x7400, 0x77ff).share("video_ram");
+ map(0x7000, 0x71ff).ram().share("sprite_ram");
+ map(0x7200, 0x72ff).ram().share("attribute_ram");
+ map(0x7300, 0x737f).ram();
+ map(0x7380, 0x739f).ram().share("scroll_ram"); // not used on bootlegs?
+ map(0x73a0, 0x73ff).ram();
+ map(0x7400, 0x77ff).ram().share("video_ram");
map(0x8000, 0x9fff).rom();
map(0xa000, 0xa000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
map(0xa100, 0xa100).portr("sw1");
diff --git a/src/mame/drivers/amiga.cpp b/src/mame/drivers/amiga.cpp
index fe31c4aaff4..766785098e9 100644
--- a/src/mame/drivers/amiga.cpp
+++ b/src/mame/drivers/amiga.cpp
@@ -1430,8 +1430,7 @@ void a4000_state::a400030_mem(address_map &map)
{
map.unmap_value_high();
a4000_mem(map);
- map(0x07000000, 0x07dfffff).noprw(); // motherboard ram
- map(0x07e00000, 0x07ffffff).ram(); // motherboard ram (up to 16mb), grows downward
+ map(0x07000000, 0x07dfffff).noprw(); // Drop the first 2Mb
}
// 2MB chip RAM and CD-ROM
diff --git a/src/mame/drivers/appoooh.cpp b/src/mame/drivers/appoooh.cpp
index 488fffffa82..d2c4b59e298 100644
--- a/src/mame/drivers/appoooh.cpp
+++ b/src/mame/drivers/appoooh.cpp
@@ -221,13 +221,14 @@ void appoooh_state::main_map(address_map &map)
map(0xe000, 0xe7ff).ram();
map(0xe800, 0xefff).ram(); /* RAM ? */
- map(0xf000, 0xffff).ram();
- map(0xf000, 0xf01f).share("spriteram");
- map(0xf020, 0xf3ff).w(FUNC(appoooh_state::fg_videoram_w)).share("fg_videoram");
- map(0xf420, 0xf7ff).w(FUNC(appoooh_state::fg_colorram_w)).share("fg_colorram");
- map(0xf800, 0xf81f).share("spriteram_2");
- map(0xf820, 0xfbff).w(FUNC(appoooh_state::bg_videoram_w)).share("bg_videoram");
- map(0xfc20, 0xffff).w(FUNC(appoooh_state::bg_colorram_w)).share("bg_colorram");
+ map(0xf000, 0xf01f).ram().share("spriteram");
+ map(0xf020, 0xf3ff).ram().w(FUNC(appoooh_state::fg_videoram_w)).share("fg_videoram");
+ map(0xf400, 0xf41f).ram();
+ map(0xf420, 0xf7ff).ram().w(FUNC(appoooh_state::fg_colorram_w)).share("fg_colorram");
+ map(0xf800, 0xf81f).ram().share("spriteram_2");
+ map(0xf820, 0xfbff).ram().w(FUNC(appoooh_state::bg_videoram_w)).share("bg_videoram");
+ map(0xfc00, 0xfc1f).ram();
+ map(0xfc20, 0xffff).ram().w(FUNC(appoooh_state::bg_colorram_w)).share("bg_colorram");
}
void appoooh_state::decrypted_opcodes_map(address_map &map)
diff --git a/src/mame/drivers/armedf.cpp b/src/mame/drivers/armedf.cpp
index 7c030762afa..def555a6651 100644
--- a/src/mame/drivers/armedf.cpp
+++ b/src/mame/drivers/armedf.cpp
@@ -418,11 +418,9 @@ WRITE16_MEMBER(armedf_state::irq_lv2_ack_w)
*
*************************************/
-void armedf_state::terraf_map(address_map &map)
+void armedf_state::common_map(address_map &map)
{
map(0x000000, 0x05ffff).rom();
- map(0x060000, 0x0603ff).ram().share("spriteram");
- map(0x060400, 0x063fff).ram();
map(0x064000, 0x064fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0x068000, 0x069fff).rw(FUNC(armedf_state::nb1414m4_text_videoram_r), FUNC(armedf_state::nb1414m4_text_videoram_w)).umask16(0x00ff);
map(0x06a000, 0x06a9ff).ram();
@@ -441,9 +439,16 @@ void armedf_state::terraf_map(address_map &map)
map(0x07c00e, 0x07c00f).w(FUNC(armedf_state::irq_lv1_ack_w));
}
+void armedf_state::terraf_map(address_map &map)
+{
+ common_map(map);
+ map(0x060000, 0x0603ff).ram().share("spriteram");
+ map(0x060400, 0x063fff).ram();
+}
+
void armedf_state::kozure_map(address_map &map)
{
- terraf_map(map);
+ common_map(map);
map(0x060000, 0x060fff).ram().share("spriteram");
map(0x061000, 0x063fff).ram();
// AM_RANGE(0x07c000, 0x07c001) AM_WRITE(kozure_io_w)
diff --git a/src/mame/drivers/astrocde.cpp b/src/mame/drivers/astrocde.cpp
index a9e5c09ba90..ad983c5553e 100644
--- a/src/mame/drivers/astrocde.cpp
+++ b/src/mame/drivers/astrocde.cpp
@@ -136,6 +136,9 @@
*
* Protected RAM
*
+ * If not specified in the memory map,
+ * then it's at the start of the nvram
+ *
*************************************/
WRITE8_MEMBER(astrocde_state::protected_ram_enable_w)
@@ -147,14 +150,14 @@ WRITE8_MEMBER(astrocde_state::protected_ram_enable_w)
READ8_MEMBER(astrocde_state::protected_ram_r)
{
m_ram_write_enable = false;
- return m_protected_ram[offset];
+ return m_protected_ram ? m_protected_ram[offset] : m_nvram[offset];
}
WRITE8_MEMBER(astrocde_state::protected_ram_w)
{
if (m_ram_write_enable)
- m_protected_ram[offset] = data;
+ (m_protected_ram ? m_protected_ram : m_nvram)[offset] = data;
m_ram_write_enable = false;
}
@@ -458,7 +461,7 @@ void astrocde_state::robby_map(address_map &map)
map(0x4000, 0x7fff).ram().share("videoram");
map(0x8000, 0xdfff).rom();
map(0xe000, 0xe7ff).ram().share("nvram");
- map(0xe000, 0xe1ff).rw(FUNC(astrocde_state::protected_ram_r), FUNC(astrocde_state::protected_ram_w)).share("protected_ram");
+ map(0xe000, 0xe1ff).rw(FUNC(astrocde_state::protected_ram_r), FUNC(astrocde_state::protected_ram_w));
map(0xe800, 0xffff).ram();
}
@@ -478,7 +481,7 @@ void astrocde_state::demndrgn_map(address_map &map)
void astrocde_state::profpac_map(address_map &map)
{
demndrgn_map(map);
- map(0xe000, 0xe1ff).rw(FUNC(astrocde_state::protected_ram_r), FUNC(astrocde_state::protected_ram_w)).share("protected_ram");
+ map(0xe000, 0xe1ff).rw(FUNC(astrocde_state::protected_ram_r), FUNC(astrocde_state::protected_ram_w));
}
diff --git a/src/mame/drivers/atarig1.cpp b/src/mame/drivers/atarig1.cpp
index d89689309aa..e2208708c98 100644
--- a/src/mame/drivers/atarig1.cpp
+++ b/src/mame/drivers/atarig1.cpp
@@ -193,11 +193,13 @@ void atarig1_state::main_map(address_map &map)
map(0xfd8000, 0xfdffff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask16(0x00ff);
/* AM_RANGE(0xfe0000, 0xfe7fff) AM_READ(from_r)*/
map(0xfe8000, 0xfe89ff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
- map(0xff0000, 0xffffff).ram();
map(0xff0000, 0xff0fff).ram().share("rle");
- map(0xff2000, 0xff2001).w(FUNC(atarig1_state::mo_command_w)).share("mo_command");
- map(0xff4000, 0xff5fff).w(m_playfield_tilemap, FUNC(tilemap_device::write16)).share("playfield");
- map(0xff6000, 0xff6fff).w(m_alpha_tilemap, FUNC(tilemap_device::write16)).share("alpha");
+ map(0xff1000, 0xff1fff).ram();
+ map(0xff2000, 0xff2001).ram().w(FUNC(atarig1_state::mo_command_w)).share("mo_command");
+ map(0xff2002, 0xff3fff).ram();
+ map(0xff4000, 0xff5fff).ram().w(m_playfield_tilemap, FUNC(tilemap_device::write16)).share("playfield");
+ map(0xff6000, 0xff6fff).ram().w(m_alpha_tilemap, FUNC(tilemap_device::write16)).share("alpha");
+ map(0xff7000, 0xffffff).ram();
}
diff --git a/src/mame/drivers/atarig42.cpp b/src/mame/drivers/atarig42.cpp
index 3d8de8d26a3..f71ee2c6db6 100644
--- a/src/mame/drivers/atarig42.cpp
+++ b/src/mame/drivers/atarig42.cpp
@@ -336,11 +336,12 @@ void atarig42_state::main_map(address_map &map)
map(0xf80000, 0xf80003).w(m_asic65, FUNC(asic65_device::data_w));
map(0xfa0000, 0xfa0fff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask16(0x00ff);
map(0xfc0000, 0xfc0fff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
- map(0xff0000, 0xffffff).ram();
map(0xff0000, 0xff0fff).ram().share("rle");
- map(0xff2000, 0xff5fff).w(m_playfield_tilemap, FUNC(tilemap_device::write16)).share("playfield");
- map(0xff6000, 0xff6fff).w(m_alpha_tilemap, FUNC(tilemap_device::write16)).share("alpha");
- map(0xff7000, 0xff7001).w(FUNC(atarig42_state::mo_command_w)).share("mo_command");
+ map(0xff1000, 0xff1fff).ram();
+ map(0xff2000, 0xff5fff).ram().w(m_playfield_tilemap, FUNC(tilemap_device::write16)).share("playfield");
+ map(0xff6000, 0xff6fff).ram().w(m_alpha_tilemap, FUNC(tilemap_device::write16)).share("alpha");
+ map(0xff7000, 0xff7001).ram().w(FUNC(atarig42_state::mo_command_w)).share("mo_command");
+ map(0xff7002, 0xffffff).ram();
}
diff --git a/src/mame/drivers/atarigt.cpp b/src/mame/drivers/atarigt.cpp
index cf235d3ea64..868b39fa90e 100644
--- a/src/mame/drivers/atarigt.cpp
+++ b/src/mame/drivers/atarigt.cpp
@@ -616,11 +616,14 @@ void atarigt_state::main_map(address_map &map)
map(0xd00010, 0xd0001f).r(FUNC(atarigt_state::analog_port_r)).umask32(0xff00ff00);
map(0xd20000, 0xd20fff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask32(0xff00ff00);
map(0xd40000, 0xd4ffff).w("eeprom", FUNC(eeprom_parallel_28xx_device::unlock_write32));
- map(0xd70000, 0xd7ffff).ram();
- map(0xd72000, 0xd75fff).w(m_playfield_tilemap, FUNC(tilemap_device::write32)).share("playfield");
- map(0xd76000, 0xd76fff).w(m_alpha_tilemap, FUNC(tilemap_device::write32)).share("alpha");
+ map(0xd70000, 0xd71fff).ram();
+ map(0xd72000, 0xd75fff).ram().w(m_playfield_tilemap, FUNC(tilemap_device::write32)).share("playfield");
+ map(0xd76000, 0xd76fff).ram().w(m_alpha_tilemap, FUNC(tilemap_device::write32)).share("alpha");
+ map(0xd77000, 0xd77fff).ram();
map(0xd78000, 0xd78fff).ram().share("rle");
- map(0xd7a200, 0xd7a203).w(FUNC(atarigt_state::mo_command_w)).share("mo_command");
+ map(0xd79000, 0xd7a1ff).ram();
+ map(0xd7a200, 0xd7a203).ram().w(FUNC(atarigt_state::mo_command_w)).share("mo_command");
+ map(0xd7a204, 0xd7ffff).ram();
map(0xd80000, 0xdfffff).rw(FUNC(atarigt_state::colorram_protection_r), FUNC(atarigt_state::colorram_protection_w)).share("colorram");
map(0xe04000, 0xe04003).w(FUNC(atarigt_state::led_w));
map(0xe08000, 0xe08003).w(FUNC(atarigt_state::latch_w));
diff --git a/src/mame/drivers/atarigx2.cpp b/src/mame/drivers/atarigx2.cpp
index 15696ebc2cc..241b318fc3a 100644
--- a/src/mame/drivers/atarigx2.cpp
+++ b/src/mame/drivers/atarigx2.cpp
@@ -1194,11 +1194,14 @@ void atarigx2_state::main_map(address_map &map)
map(0xd00000, 0xd0000f).r(FUNC(atarigx2_state::a2d_data_r)).umask32(0xff00ff00);
map(0xd20000, 0xd20fff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask32(0xff00ff00);
map(0xd40000, 0xd40fff).ram().w("palette", FUNC(palette_device::write32)).share("palette");
- map(0xd70000, 0xd7ffff).ram();
- map(0xd72000, 0xd75fff).w(m_playfield_tilemap, FUNC(tilemap_device::write32)).share("playfield");
- map(0xd76000, 0xd76fff).w(m_alpha_tilemap, FUNC(tilemap_device::write32)).share("alpha");
+ map(0xd70000, 0xd71fff).ram();
+ map(0xd72000, 0xd75fff).ram().w(m_playfield_tilemap, FUNC(tilemap_device::write32)).share("playfield");
+ map(0xd76000, 0xd76fff).ram().w(m_alpha_tilemap, FUNC(tilemap_device::write32)).share("alpha");
+ map(0xd77000, 0xd77fff).ram();
map(0xd78000, 0xd78fff).ram().share("rle");
- map(0xd7a200, 0xd7a203).w(FUNC(atarigx2_state::mo_command_w)).share("mo_command");
+ map(0xd79000, 0xd7a1ff).ram();
+ map(0xd7a200, 0xd7a203).ram().w(FUNC(atarigx2_state::mo_command_w)).share("mo_command");
+ map(0xd7a204, 0xd7ffff).ram();
map(0xd80000, 0xd9ffff).w("eeprom", FUNC(eeprom_parallel_28xx_device::unlock_write32));
map(0xe06000, 0xe06000).w(m_jsa, FUNC(atari_jsa_iiis_device::main_command_w));
map(0xe08000, 0xe08003).w(FUNC(atarigx2_state::latch_w));
diff --git a/src/mame/drivers/bagman.cpp b/src/mame/drivers/bagman.cpp
index 58c9a16f9b6..a75945539dd 100644
--- a/src/mame/drivers/bagman.cpp
+++ b/src/mame/drivers/bagman.cpp
@@ -133,14 +133,11 @@ void bagman_state::main_map(address_map &map)
map(0x0000, 0x5fff).rom();
map(0x6000, 0x67ff).ram();
map(0x9000, 0x93ff).ram().w(FUNC(bagman_state::videoram_w)).share("videoram");
- map(0x9800, 0x9bff).ram().w(FUNC(bagman_state::colorram_w)).share("colorram");
+ map(0x9800, 0x9bff).ram().w(FUNC(bagman_state::colorram_w)).share("colorram"); // Includes spriteram
map(0x9c00, 0x9fff).nopw(); /* written to, but unused */
map(0xa000, 0xa000).r(FUNC(bagman_state::pal16r6_r));
map(0xa000, 0xa007).w("mainlatch", FUNC(ls259_device::write_d0));
map(0xc000, 0xffff).rom(); /* Super Bagman only */
- map(0x9800, 0x981f).writeonly().share("spriteram"); /* hidden portion of color RAM */
- /* here only to initialize the pointer, */
- /* writes are handled by colorram_w */
map(0xa800, 0xa807).w(FUNC(bagman_state::ls259_w)); /* TMS5110 driving state machine */
map(0xb000, 0xb000).portr("DSW");
map(0xb800, 0xb800).nopr(); /* looks like watchdog from schematics */
@@ -158,10 +155,7 @@ void bagman_state::pickin_map(address_map &map)
map(0x0000, 0x5fff).rom();
map(0x7000, 0x77ff).ram();
map(0x8800, 0x8bff).ram().w(FUNC(bagman_state::videoram_w)).share("videoram");
- map(0x9800, 0x9bff).ram().w(FUNC(bagman_state::colorram_w)).share("colorram");
- map(0x9800, 0x981f).writeonly().share("spriteram"); /* hidden portion of color RAM */
- /* here only to initialize the pointer, */
- /* writes are handled by colorram_w */
+ map(0x9800, 0x9bff).ram().w(FUNC(bagman_state::colorram_w)).share("colorram"); // Includes spriteram
map(0x9c00, 0x9fff).nopw(); /* written to, but unused */
map(0xa000, 0xa007).w("mainlatch", FUNC(ls259_device::write_d0));
map(0xa800, 0xa800).portr("DSW");
diff --git a/src/mame/drivers/banctec.cpp b/src/mame/drivers/banctec.cpp
index 5daea29a7ac..fa996910cb2 100644
--- a/src/mame/drivers/banctec.cpp
+++ b/src/mame/drivers/banctec.cpp
@@ -61,7 +61,6 @@ void banctec_state::banctec_mem(address_map &map)
void banctec_state::banctec_mcu_mem(address_map &map)
{
- map(0x0000, 0x00ff).ram(); /* Probably wrong. Must be verified on pcb! */
map(0x2000, 0x2000).rw("crtc", FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w));
map(0x2001, 0x2001).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
map(0x2003, 0x2003).w(FUNC(banctec_state::videoram_w));
diff --git a/src/mame/drivers/batman.cpp b/src/mame/drivers/batman.cpp
index 54f76b81007..1e021691401 100644
--- a/src/mame/drivers/batman.cpp
+++ b/src/mame/drivers/batman.cpp
@@ -97,14 +97,14 @@ void batman_state::main_map(address_map &map)
map(0x2a0000, 0x2a0001).mirror(0x11fffe).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
map(0x2e0000, 0x2e0fff).mirror(0x100000).ram().w("palette", FUNC(palette_device::write16)).share("palette");
map(0x2effc0, 0x2effff).mirror(0x100000).rw(m_vad, FUNC(atari_vad_device::control_read), FUNC(atari_vad_device::control_write));
- map(0x2f0000, 0x2fffff).mirror(0x100000).ram();
- map(0x2f0000, 0x2f1fff).mirror(0x100000).w(m_vad, FUNC(atari_vad_device::playfield2_latched_msb_w)).share("vad:playfield2");
- map(0x2f2000, 0x2f3fff).mirror(0x100000).w(m_vad, FUNC(atari_vad_device::playfield_latched_lsb_w)).share("vad:playfield");
- map(0x2f4000, 0x2f5fff).mirror(0x100000).w(m_vad, FUNC(atari_vad_device::playfield_upper_w)).share("vad:playfield_ext");
+ map(0x2f0000, 0x2f1fff).mirror(0x100000).ram().w(m_vad, FUNC(atari_vad_device::playfield2_latched_msb_w)).share("vad:playfield2");
+ map(0x2f2000, 0x2f3fff).mirror(0x100000).ram().w(m_vad, FUNC(atari_vad_device::playfield_latched_lsb_w)).share("vad:playfield");
+ map(0x2f4000, 0x2f5fff).mirror(0x100000).ram().w(m_vad, FUNC(atari_vad_device::playfield_upper_w)).share("vad:playfield_ext");
map(0x2f6000, 0x2f7fff).mirror(0x100000).ram().share("vad:mob");
- map(0x2f8000, 0x2f8eff).mirror(0x100000).w(m_vad, FUNC(atari_vad_device::alpha_w)).share("vad:alpha");
- map(0x2f8f00, 0x2f8f7f).mirror(0x100000).share("vad:eof");
+ map(0x2f8000, 0x2f8eff).mirror(0x100000).ram().w(m_vad, FUNC(atari_vad_device::alpha_w)).share("vad:alpha");
+ map(0x2f8f00, 0x2f8f7f).mirror(0x100000).ram().share("vad:eof");
map(0x2f8f80, 0x2f8fff).mirror(0x100000).ram().share("vad:mob:slip");
+ map(0x2f9000, 0x2fffff).mirror(0x100000).ram();
}
diff --git a/src/mame/drivers/bingor.cpp b/src/mame/drivers/bingor.cpp
index d9c8f3014cd..f015d0ba80f 100644
--- a/src/mame/drivers/bingor.cpp
+++ b/src/mame/drivers/bingor.cpp
@@ -608,7 +608,7 @@ void bingor_state::bingor_map(address_map &map)
map(0x00000, 0x0ffff).ram();
map(0x90000, 0x9ffff).rom().region("gfx", 0);
map(0xa0000, 0xaffff).ram().share("blit_ram");
- map(0xa0300, 0xa031f).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); //wrong
+ map(0xa0300, 0xa031f).w(m_palette, FUNC(palette_device::write16)); //wrong
map(0xf0000, 0xfffff).rom().region("boot_prg", 0);
}
@@ -729,7 +729,7 @@ void bingor_state::vip2000_map(address_map &map)
{
map(0x00000, 0x0ffff).ram();
map(0x40000, 0x4ffff).ram().share("blit_ram");
- map(0x40300, 0x4031f).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); //wrong
+ map(0x40300, 0x4031f).w(m_palette, FUNC(palette_device::write16)); //wrong
//AM_RANGE(0x50000, 0x5ffff) AM_ROM AM_REGION("gfx", 0)
map(0x60000, 0x60003).w("ymz", FUNC(ymz284_device::address_data_w)).umask16(0x00ff);
map(0x80000, 0xeffff).rw("flash", FUNC(intelfsh16_device::read), FUNC(intelfsh16_device::write));
diff --git a/src/mame/drivers/by68701.cpp b/src/mame/drivers/by68701.cpp
index 9a95b171784..149fb03d85e 100644
--- a/src/mame/drivers/by68701.cpp
+++ b/src/mame/drivers/by68701.cpp
@@ -29,7 +29,6 @@ public:
void by68701_state::by68701_map(address_map &map)
{
map(0x0000, 0xffff).noprw();
- map(0x0000, 0x00ff).ram();
map(0x0400, 0x04ff).ram();
map(0x0500, 0x07ff).ram();
map(0x7000, 0xffff).rom();
diff --git a/src/mame/drivers/cball.cpp b/src/mame/drivers/cball.cpp
index 31cfcddf6fe..50dc9b7cc90 100644
--- a/src/mame/drivers/cball.cpp
+++ b/src/mame/drivers/cball.cpp
@@ -169,7 +169,6 @@ void cball_state::cpu_map(address_map &map)
map.global_mask(0x7fff);
map(0x0000, 0x03ff).r(FUNC(cball_state::wram_r)).mask(0x7f);
- map(0x0400, 0x07ff).readonly();
map(0x1001, 0x1001).portr("1001");
map(0x1003, 0x1003).portr("1003");
map(0x1020, 0x1020).portr("1020");
@@ -179,7 +178,7 @@ void cball_state::cpu_map(address_map &map)
map(0x2800, 0x2800).portr("2800");
map(0x0000, 0x03ff).w(FUNC(cball_state::wram_w)).mask(0x7f);
- map(0x0400, 0x07ff).w(FUNC(cball_state::vram_w)).share("video_ram");
+ map(0x0400, 0x07ff).ram().w(FUNC(cball_state::vram_w)).share("video_ram");
map(0x1800, 0x1800).noprw(); /* watchdog? */
map(0x1810, 0x1811).noprw();
map(0x1820, 0x1821).noprw();
diff --git a/src/mame/drivers/ccastles.cpp b/src/mame/drivers/ccastles.cpp
index 51760e94b85..9b5f86a9522 100644
--- a/src/mame/drivers/ccastles.cpp
+++ b/src/mame/drivers/ccastles.cpp
@@ -306,8 +306,8 @@ void ccastles_state::main_map(address_map &map)
map(0x0000, 0x7fff).ram().w(FUNC(ccastles_state::ccastles_videoram_w)).share("videoram");
map(0x0000, 0x0001).w(FUNC(ccastles_state::ccastles_bitmode_addr_w));
map(0x0002, 0x0002).rw(FUNC(ccastles_state::ccastles_bitmode_r), FUNC(ccastles_state::ccastles_bitmode_w));
- map(0x8000, 0x8fff).ram();
- map(0x8e00, 0x8fff).share("spriteram");
+ map(0x8000, 0x8dff).ram();
+ map(0x8e00, 0x8fff).ram().share("spriteram");
map(0x9000, 0x90ff).mirror(0x0300).rw(FUNC(ccastles_state::nvram_r), FUNC(ccastles_state::nvram_w));
map(0x9400, 0x9403).mirror(0x01fc).r(FUNC(ccastles_state::leta_r));
map(0x9600, 0x97ff).portr("IN0");
diff --git a/src/mame/drivers/cclimber.cpp b/src/mame/drivers/cclimber.cpp
index 9bda92aa6f7..e2033b18722 100644
--- a/src/mame/drivers/cclimber.cpp
+++ b/src/mame/drivers/cclimber.cpp
@@ -327,10 +327,12 @@ void cclimber_state::cclimber_map(address_map &map)
map(0x9000, 0x93ff).mirror(0x0400).ram().share("videoram");
/* 9800-9bff and 9c00-9fff share the same RAM, interleaved */
/* (9800-981f for scroll, 9c20-9c3f for color RAM, and so on) */
- map(0x9800, 0x9bff).ram(); /* not used, but initialized */
map(0x9800, 0x981f).ram().share("column_scroll");
+ map(0x9820, 0x987f).ram(); /* not used, but initialized */
map(0x9880, 0x989f).ram().share("spriteram");
+ map(0x98a0, 0x98db).ram(); /* not used, but initialized */
map(0x98dc, 0x98df).ram().share("bigspritectrl");
+ map(0x98e0, 0x9bff).ram(); /* not used, but initialized */
map(0x9c00, 0x9fff).ram().w(FUNC(cclimber_state::cclimber_colorram_w)).share("colorram");
map(0xa000, 0xa007).w(m_mainlatch, FUNC(ls259_device::write_d0));
map(0xa000, 0xa000).portr("P1");
@@ -355,10 +357,12 @@ void cclimber_state::cannonb_map(address_map &map)
map(0x9000, 0x93ff).mirror(0x0400).ram().share("videoram");
/* 9800-9bff and 9c00-9fff share the same RAM, interleaved */
/* (9800-981f for scroll, 9c20-9c3f for color RAM, and so on) */
- map(0x9800, 0x9bff).ram(); /* not used, but initialized */
map(0x9800, 0x981f).ram().share("column_scroll");
+ map(0x9820, 0x987f).ram(); /* not used, but initialized */
map(0x9880, 0x989f).ram().share("spriteram");
+ map(0x98a0, 0x98db).ram(); /* not used, but initialized */
map(0x98dc, 0x98df).ram().share("bigspritectrl");
+ map(0x98e0, 0x9bff).ram(); /* not used, but initialized */
map(0x9c00, 0x9fff).ram().w(FUNC(cclimber_state::cclimber_colorram_w)).share("colorram");
map(0xa000, 0xa007).w(m_mainlatch, FUNC(ls259_device::write_d0));
map(0xa000, 0xa000).portr("P1");
@@ -402,10 +406,12 @@ void cclimber_state::yamato_map(address_map &map)
map(0x9000, 0x93ff).mirror(0x0400).ram().share("videoram");
/* 9800-9bff and 9c00-9fff share the same RAM, interleaved */
/* (9800-981f for scroll, 9c20-9c3f for color RAM, and so on) */
- map(0x9800, 0x9bff).ram(); /* not used, but initialized */
map(0x9800, 0x981f).ram().share("column_scroll");
+ map(0x9820, 0x987f).ram(); /* not used, but initialized */
map(0x9880, 0x989f).ram().share("spriteram");
+ map(0x98a0, 0x98db).ram(); /* not used, but initialized */
map(0x98dc, 0x98df).ram().share("bigspritectrl");
+ map(0x98e0, 0x9bff).ram(); /* not used, but initialized */
map(0x9c00, 0x9fff).ram().w(FUNC(cclimber_state::cclimber_colorram_w)).share("colorram");
map(0xa000, 0xa007).w(m_mainlatch, FUNC(ls259_device::write_d0));
map(0xa000, 0xa000).portr("P1");
diff --git a/src/mame/drivers/contra.cpp b/src/mame/drivers/contra.cpp
index b8990718f0c..4c13d4b0a6e 100644
--- a/src/mame/drivers/contra.cpp
+++ b/src/mame/drivers/contra.cpp
@@ -81,14 +81,13 @@ void contra_state::contra_map(address_map &map)
map(0x1000, 0x1fff).ram();
- map(0x2000, 0x5fff).readonly();
- map(0x2000, 0x23ff).w(FUNC(contra_state::contra_fg_cram_w)).share("fg_cram");
- map(0x2400, 0x27ff).w(FUNC(contra_state::contra_fg_vram_w)).share("fg_vram");
- map(0x2800, 0x2bff).w(FUNC(contra_state::contra_text_cram_w)).share("tx_cram");
- map(0x2c00, 0x2fff).w(FUNC(contra_state::contra_text_vram_w)).share("tx_vram");
+ map(0x2000, 0x23ff).ram().w(FUNC(contra_state::contra_fg_cram_w)).share("fg_cram");
+ map(0x2400, 0x27ff).ram().w(FUNC(contra_state::contra_fg_vram_w)).share("fg_vram");
+ map(0x2800, 0x2bff).ram().w(FUNC(contra_state::contra_text_cram_w)).share("tx_cram");
+ map(0x2c00, 0x2fff).ram().w(FUNC(contra_state::contra_text_vram_w)).share("tx_vram");
map(0x3000, 0x3fff).ram().share("spriteram");
- map(0x4000, 0x43ff).w(FUNC(contra_state::contra_bg_cram_w)).share("bg_cram");
- map(0x4400, 0x47ff).w(FUNC(contra_state::contra_bg_vram_w)).share("bg_vram");
+ map(0x4000, 0x43ff).ram().w(FUNC(contra_state::contra_bg_cram_w)).share("bg_cram");
+ map(0x4400, 0x47ff).ram().w(FUNC(contra_state::contra_bg_vram_w)).share("bg_vram");
map(0x4800, 0x4fff).ram();
map(0x5000, 0x5fff).ram().share("spriteram_2");
diff --git a/src/mame/drivers/coolridr.cpp b/src/mame/drivers/coolridr.cpp
index b58f7718fb7..76ec4c25040 100644
--- a/src/mame/drivers/coolridr.cpp
+++ b/src/mame/drivers/coolridr.cpp
@@ -509,10 +509,12 @@ public:
objcachemanager m_decode[2];
void aquastge(machine_config &config);
void coolridr(machine_config &config);
+ void coolridr_h1_map(address_map &map);
void aquastge_h1_map(address_map &map);
void aquastge_submap(address_map &map);
void coolridr_submap(address_map &map);
void system_h1_map(address_map &map);
+ void system_h1_submap(address_map &map);
void system_h1_sound_map(address_map &map);
template<int Chip> void scsp_map(address_map &map);
};
@@ -2786,9 +2788,6 @@ void coolridr_state::system_h1_map(address_map &map)
map(0x00000000, 0x001fffff).rom().share("share1").nopw();
map(0x01000000, 0x01ffffff).rom().region("gfx_data", 0x0000000);
- map(0x03c00000, 0x03c1ffff).mirror(0x00200000).ram().w(FUNC(coolridr_state::dma_w)).share("fb_vram"); /* mostly mapped at 0x03e00000 */
-
- map(0x03f00000, 0x03f0ffff).ram().share("share3"); /*Communication area RAM*/
map(0x03f40000, 0x03f4ffff).ram().share("txt_vram");//text tilemap + "lineram"
map(0x04000000, 0x0400000f).rw(FUNC(coolridr_state::unk_blit_r), FUNC(coolridr_state::unk_blit_w)).share("txt_blit");
map(0x04000010, 0x04000013).w(FUNC(coolridr_state::blit_mode_w));
@@ -2802,6 +2801,14 @@ void coolridr_state::system_h1_map(address_map &map)
map(0x60000000, 0x600003ff).nopw();
}
+void coolridr_state::coolridr_h1_map(address_map &map)
+{
+ system_h1_map(map);
+ map(0x03c00000, 0x03c1ffff).mirror(0x00200000).ram().w(FUNC(coolridr_state::dma_w)).share("fb_vram"); /* mostly mapped at 0x03e00000 */
+
+ map(0x03f00000, 0x03f0ffff).ram().share("share3"); /*Communication area RAM*/
+}
+
void coolridr_state::aquastge_h1_map(address_map &map)
{
system_h1_map(map);
@@ -2916,7 +2923,7 @@ WRITE32_MEMBER(coolridr_state::sound_dma_w)
-void coolridr_state::coolridr_submap(address_map &map)
+void coolridr_state::system_h1_submap(address_map &map)
{
map(0x00000000, 0x0001ffff).rom(); // note: SH7032 only supports 64KB
@@ -2931,8 +2938,6 @@ void coolridr_state::coolridr_submap(address_map &map)
// map(0x04200000, 0x0420003f).ram(); /* unknown */
map(0x05000000, 0x05000fff).ram();
- map(0x05200000, 0x052001ff).ram();
- map(0x05300000, 0x0530ffff).ram().share("share3"); /*Communication area RAM*/
// map(0x05fffe00, 0x05ffffff).rw(FUNC(coolridr_state::sh7032_r), FUNC(coolridr_state::sh7032_w)); // SH-7032H internal i/o
map(0x06000000, 0x060001ff).ram().share("nvram"); // backup RAM
map(0x06100000, 0x0610001f).rw("io", FUNC(sega_315_5649_device::read), FUNC(sega_315_5649_device::write)).umask32(0x00ff00ff);
@@ -2940,11 +2945,19 @@ void coolridr_state::coolridr_submap(address_map &map)
map(0x07ffe000, 0x07ffffff).ram(); // On-Chip RAM (actually mapped at 0x0fffe000-0x0fffffff)
}
+void coolridr_state::coolridr_submap(address_map &map)
+{
+ system_h1_submap(map);
+ map(0x05200000, 0x052001ff).ram();
+ map(0x05300000, 0x0530ffff).ram().share("share3"); /*Communication area RAM*/
+}
+
void coolridr_state::aquastge_submap(address_map &map)
{
- coolridr_submap(map);
- map(0x05200000, 0x0537ffff).ram();
+ system_h1_submap(map);
+ map(0x05200000, 0x0520ffff).ram();
map(0x05210000, 0x0521ffff).ram().share("share3"); /*Communication area RAM*/
+ map(0x05220000, 0x0537ffff).ram();
map(0x06000200, 0x06000207).nopw(); // program bug?
}
@@ -3222,7 +3235,7 @@ WRITE_LINE_MEMBER(coolridr_state::scsp2_to_sh1_irq)
void coolridr_state::coolridr(machine_config &config)
{
SH2(config, m_maincpu, MAIN_CLOCK); // 28 MHz
- m_maincpu->set_addrmap(AS_PROGRAM, &coolridr_state::system_h1_map);
+ m_maincpu->set_addrmap(AS_PROGRAM, &coolridr_state::coolridr_h1_map);
TIMER(config, "scantimer").configure_scanline(FUNC(coolridr_state::interrupt_main), "screen", 0, 1);
M68000(config, m_soundcpu, 22579000/2); // 22.579 MHz XTAL / 2 = 11.2895 MHz
diff --git a/src/mame/drivers/cps2.cpp b/src/mame/drivers/cps2.cpp
index e26ae1aa7b8..0e859d82d18 100644
--- a/src/mame/drivers/cps2.cpp
+++ b/src/mame/drivers/cps2.cpp
@@ -923,9 +923,9 @@ void cps2_state::cps2_map(address_map &map)
map(0x400000, 0x40000b).ram().share("output"); /* CPS2 object output */
map(0x618000, 0x619fff).rw(FUNC(cps2_state::qsound_sharedram1_r), FUNC(cps2_state::qsound_sharedram1_w)); /* Q RAM */
map(0x660000, 0x663fff).ram(); /* When bit 14 of 0x804030 equals 0 this space is available. Many games store highscores and other info here if available. */
- map(0x662000, 0x662001).ram(); /* Network adapter related, accessed in SSF2TB */
- map(0x662008, 0x662009).ram(); /* Network adapter related, accessed in SSF2TB */
- map(0x662020, 0x662021).ram(); /* Network adapter related, accessed in SSF2TB */
+ // map(0x662000, 0x662001).ram(); /* Network adapter related, accessed in SSF2TB */
+ // map(0x662008, 0x662009).ram(); /* Network adapter related, accessed in SSF2TB */
+ // map(0x662020, 0x662021).ram(); /* Network adapter related, accessed in SSF2TB */
map(0x664000, 0x664001).ram(); /* Unknown - Only used if 0x660000-0x663fff available (could be RAM enable?) */
map(0x700000, 0x701fff).w(FUNC(cps2_state::cps2_objram1_w)).share("objram1"); /* Object RAM, no game seems to use it directly */
map(0x708000, 0x709fff).mirror(0x006000).rw(FUNC(cps2_state::cps2_objram2_r), FUNC(cps2_state::cps2_objram2_w)).share("objram2"); /* Object RAM */
@@ -956,9 +956,9 @@ void cps2_state::dead_cps2_map(address_map &map)
map(0x400000, 0x40000b).ram().share("output"); /* CPS2 object output */
map(0x618000, 0x619fff).rw(FUNC(cps2_state::qsound_sharedram1_r), FUNC(cps2_state::qsound_sharedram1_w)); /* Q RAM */
map(0x660000, 0x663fff).ram(); /* When bit 14 of 0x804030 equals 0 this space is available. Many games store highscores and other info here if available. */
- map(0x662000, 0x662001).ram(); /* Network adapter related, accessed in SSF2TB */
- map(0x662008, 0x662009).ram(); /* Network adapter related, accessed in SSF2TB */
- map(0x662020, 0x662021).ram(); /* Network adapter related, accessed in SSF2TB */
+ // map(0x662000, 0x662001).ram(); /* Network adapter related, accessed in SSF2TB */
+ // map(0x662008, 0x662009).ram(); /* Network adapter related, accessed in SSF2TB */
+ // map(0x662020, 0x662021).ram(); /* Network adapter related, accessed in SSF2TB */
map(0x664000, 0x664001).ram(); /* Unknown - Only used if 0x660000-0x663fff available (could be RAM enable?) */
map(0x700000, 0x701fff).w(FUNC(cps2_state::cps2_objram1_w)).share("objram1"); /* Object RAM, no game seems to use it directly */
map(0x708000, 0x709fff).mirror(0x006000).rw(FUNC(cps2_state::cps2_objram2_r), FUNC(cps2_state::cps2_objram2_w)).share("objram2"); /* Object RAM */
diff --git a/src/mame/drivers/crystal.cpp b/src/mame/drivers/crystal.cpp
index 6c9558185b9..23121983996 100644
--- a/src/mame/drivers/crystal.cpp
+++ b/src/mame/drivers/crystal.cpp
@@ -247,7 +247,6 @@ public:
crystal_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_sysregs(*this, "sysregs"),
- m_crtcregs(*this, "crtcregs"),
m_workram(*this, "workram"),
m_vidregs(*this, "vidregs"),
m_textureram(*this, "textureram"),
@@ -277,7 +276,7 @@ public:
private:
/* memory pointers */
required_shared_ptr<uint32_t> m_sysregs;
- required_shared_ptr<uint32_t> m_crtcregs;
+ uint32_t *m_crtcregs;
required_shared_ptr<uint32_t> m_workram;
required_shared_ptr<uint32_t> m_vidregs;
required_shared_ptr<uint32_t> m_textureram;
@@ -676,7 +675,7 @@ void crystal_state::internal_map(address_map &map)
// map(0x01802400, 0x018027ff) // Peripheral Chip Select
// map(0x01802800, 0x01802bff) // SIO
// map(0x01803400, 0x018037ff) // CRT Controller
- map(0x01803400, 0x018037ff).rw(FUNC(crystal_state::crtc_r), FUNC(crystal_state::crtc_w)).share("crtcregs");
+ map(0x01803400, 0x018037ff).rw(FUNC(crystal_state::crtc_r), FUNC(crystal_state::crtc_w));
// map(0x01804000, 0x018043ff) // RAMDAC & PLL
// map(0x02000000, 0x02ffffff).ram().share("workram"); // Local RAM/DRAM (Max.16MB)
@@ -1008,7 +1007,7 @@ void crystal_state::machine_reset()
{
std::fill_n(&m_sysregs[0], m_sysregs.bytes() / 4, 0);
std::fill_n(&m_vidregs[0], m_vidregs.bytes() / 4, 0);
- std::fill_n(&m_crtcregs[0], m_crtcregs.bytes() / 4, 0);
+ m_crtcregs = &m_sysregs[0x3400/4];
m_crtcregs[1] = 0x00000022;
m_FlipCount = 0;
diff --git a/src/mame/drivers/ddragon.cpp b/src/mame/drivers/ddragon.cpp
index ce4f861d11c..70fdc54f3cc 100644
--- a/src/mame/drivers/ddragon.cpp
+++ b/src/mame/drivers/ddragon.cpp
@@ -561,7 +561,7 @@ void ddragon_state::sub_map(address_map &map)
void ddragon_state::ddragonba_sub_map(address_map &map)
{
- map(0x0000, 0x0fff).ram();
+ map(0x0100, 0x0fff).ram();
map(0x8000, 0x81ff).ram().share("comram");
map(0xc000, 0xffff).rom();
}
diff --git a/src/mame/drivers/deadang.cpp b/src/mame/drivers/deadang.cpp
index 7ea8704e88c..6cbae850333 100644
--- a/src/mame/drivers/deadang.cpp
+++ b/src/mame/drivers/deadang.cpp
@@ -88,12 +88,21 @@ void deadang_state::main_map(address_map &map)
void popnrun_state::popnrun_main_map(address_map &map)
{
- main_map(map);
map(0x00000, 0x03bff).ram();
map(0x03c00, 0x03dff).ram().share("spriteram");
map(0x03e00, 0x03fff).ram();
+ map(0x04000, 0x04fff).ram().share("share1");
+ map(0x05000, 0x05fff).writeonly();
+ 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(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(0x0e000, 0x0e0ff).ram().share("scroll_ram");
+ map(0x0e100, 0x0ffff).writeonly();
+ map(0xc0000, 0xfffff).rom();
}
void deadang_state::sub_map(address_map &map)
diff --git a/src/mame/drivers/eprom.cpp b/src/mame/drivers/eprom.cpp
index f0443b42e3e..9fe13a92230 100644
--- a/src/mame/drivers/eprom.cpp
+++ b/src/mame/drivers/eprom.cpp
@@ -52,14 +52,13 @@ void eprom_state::update_interrupts()
void eprom_state::machine_start()
{
atarigen_state::machine_start();
- save_item(NAME(m_sync_data));
}
void eprom_state::machine_reset()
{
atarigen_state::machine_reset();
scanline_timer_reset(*m_screen, 8);
- m_sync_data = 0;
+ m_share1[0xcc00/2] = 0;
}
@@ -123,18 +122,13 @@ WRITE16_MEMBER(eprom_state::eprom_latch_w)
*
*************************************/
-READ16_MEMBER(eprom_state::sync_r)
-{
- return m_sync_data;
-}
-
-
template<bool maincpu> WRITE16_MEMBER(eprom_state::sync_w)
{
- int oldword = m_sync_data;
- COMBINE_DATA(&m_sync_data);
+ u16 oldword = m_share1[0xcc00/2];
+ COMBINE_DATA(&m_share1[0xcc00/2]);
+ u16 newword = m_share1[0xcc00/2];
- if ((oldword & 0xff00) != (m_sync_data & 0xff00))
+ if ((oldword & 0xff00) != (newword & 0xff00))
(maincpu ? m_maincpu->yield() : m_extra->yield());
}
@@ -150,7 +144,7 @@ void eprom_state::main_map(address_map &map)
map(0x000000, 0x09ffff).rom();
map(0x0e0000, 0x0e0fff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask16(0x00ff);
map(0x160000, 0x16ffff).ram().share("share1");
- map(0x16cc00, 0x16cc01).rw(FUNC(eprom_state::sync_r), FUNC(eprom_state::sync_w<true>));
+ map(0x16cc00, 0x16cc01).w(FUNC(eprom_state::sync_w<true>));
map(0x1f0000, 0x1fffff).w("eeprom", FUNC(eeprom_parallel_28xx_device::unlock_write16));
map(0x260000, 0x26000f).portr("260000");
map(0x260010, 0x26001f).r(FUNC(eprom_state::special_port1_r));
@@ -162,12 +156,12 @@ void eprom_state::main_map(address_map &map)
map(0x360020, 0x360021).w(m_jsa, FUNC(atari_jsa_base_device::sound_reset_w));
map(0x360031, 0x360031).w(m_jsa, FUNC(atari_jsa_base_device::main_command_w));
map(0x3e0000, 0x3e0fff).ram().share("paletteram");
- map(0x3f0000, 0x3f9fff).ram();
- map(0x3f0000, 0x3f1fff).w(m_playfield_tilemap, FUNC(tilemap_device::write16)).share("playfield");
+ map(0x3f0000, 0x3f1fff).ram().w(m_playfield_tilemap, FUNC(tilemap_device::write16)).share("playfield");
map(0x3f2000, 0x3f3fff).ram().share("mob");
- map(0x3f4000, 0x3f4f7f).w(m_alpha_tilemap, FUNC(tilemap_device::write16)).share("alpha");
+ map(0x3f4000, 0x3f4f7f).ram().w(m_alpha_tilemap, FUNC(tilemap_device::write16)).share("alpha");
map(0x3f4f80, 0x3f4fff).ram().share("mob:slip");
- map(0x3f8000, 0x3f9fff).w(m_playfield_tilemap, FUNC(tilemap_device::write16_ext)).share("playfield_ext");
+ map(0x3f5000, 0x3f7fff).ram();
+ map(0x3f8000, 0x3f9fff).ram().w(m_playfield_tilemap, FUNC(tilemap_device::write16_ext)).share("playfield_ext");
}
@@ -176,7 +170,7 @@ void eprom_state::guts_map(address_map &map)
map(0x000000, 0x09ffff).rom();
map(0x0e0000, 0x0e0fff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask16(0x00ff);
map(0x160000, 0x16ffff).ram().share("share1");
- map(0x16cc00, 0x16cc01).rw(FUNC(eprom_state::sync_r), FUNC(eprom_state::sync_w<true>));
+ map(0x16cc00, 0x16cc01).w(FUNC(eprom_state::sync_w<true>));
map(0x1f0000, 0x1fffff).w("eeprom", FUNC(eeprom_parallel_28xx_device::unlock_write16));
map(0x260000, 0x26000f).portr("260000");
map(0x260010, 0x26001f).r(FUNC(eprom_state::special_port1_r));
@@ -208,7 +202,7 @@ void eprom_state::extra_map(address_map &map)
{
map(0x000000, 0x07ffff).rom();
map(0x160000, 0x16ffff).ram().share("share1");
- map(0x16cc00, 0x16cc01).rw(FUNC(eprom_state::sync_r), FUNC(eprom_state::sync_w<false>)).share("sync_data");
+ map(0x16cc00, 0x16cc01).w(FUNC(eprom_state::sync_w<false>));
map(0x260000, 0x26000f).portr("260000");
map(0x260010, 0x26001f).r(FUNC(eprom_state::special_port1_r));
map(0x260020, 0x260027).mirror(0x8).r(FUNC(eprom_state::adc_r)).umask16(0x00ff);
diff --git a/src/mame/drivers/equites.cpp b/src/mame/drivers/equites.cpp
index c7ee9975c8c..e2722851fdb 100644
--- a/src/mame/drivers/equites.cpp
+++ b/src/mame/drivers/equites.cpp
@@ -638,11 +638,10 @@ WRITE_LINE_MEMBER(equites_state::mcu_switch_w)
/******************************************************************************/
// CPU Memory Maps
-void equites_state::equites_map(address_map &map)
+void equites_state::equites_common_map(address_map &map)
{
map.unmap_value_high();
map(0x000000, 0x00ffff).rom(); // ROM area is written several times (dev system?)
- map(0x040000, 0x040fff).ram();
map(0x080000, 0x080fff).rw(FUNC(equites_state::equites_fg_videoram_r), FUNC(equites_state::equites_fg_videoram_w)).umask16(0x00ff);
map(0x0c0000, 0x0c01ff).ram().w(FUNC(equites_state::equites_bg_videoram_w)).share("bg_videoram");
map(0x0c0200, 0x0c0fff).ram();
@@ -657,9 +656,15 @@ void equites_state::equites_map(address_map &map)
map(0x780000, 0x780001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
}
+void equites_state::equites_map(address_map &map)
+{
+ equites_common_map(map);
+ map(0x040000, 0x040fff).ram();
+}
+
void gekisou_state::gekisou_map(address_map &map)
{
- equites_map(map);
+ equites_common_map(map);
map(0x040000, 0x040fff).ram().share("nvram"); // mainram is battery-backed
map(0x580000, 0x580001).select(0x020000).w(FUNC(gekisou_state::gekisou_unknown_bit_w));
}
diff --git a/src/mame/drivers/expro02.cpp b/src/mame/drivers/expro02.cpp
index 56d2f0503dc..a8c68c79d8f 100644
--- a/src/mame/drivers/expro02.cpp
+++ b/src/mame/drivers/expro02.cpp
@@ -816,7 +816,6 @@ void expro02_state::supmodel_map(address_map &map)
{
expro02_video_base_map_noview2(map);
map(0x000000, 0x4fffff).rom();
- map(0x500000, 0x51ffff).ram().share("fgvideoram");
map(0x800000, 0x800001).portr("DSW1");
map(0x800002, 0x800003).portr("DSW2");
map(0x800004, 0x800005).portr("SYSTEM");
@@ -835,7 +834,6 @@ void expro02_state::smissw_map(address_map &map)
{
expro02_video_base_map_noview2(map);
map(0x000000, 0x4fffff).rom();
- map(0x500000, 0x51ffff).ram().share("fgvideoram");
map(0x800000, 0x800001).portr("DSW1");
map(0x800002, 0x800003).portr("DSW2");
map(0x800004, 0x800005).portr("SYSTEM");
diff --git a/src/mame/drivers/feversoc.cpp b/src/mame/drivers/feversoc.cpp
index 552d2d81df5..e74e7820788 100644
--- a/src/mame/drivers/feversoc.cpp
+++ b/src/mame/drivers/feversoc.cpp
@@ -201,7 +201,7 @@ void feversoc_state::feversoc_map(address_map &map)
{
map(0x00000000, 0x0003ffff).rom();
map(0x02000000, 0x0202ffff).ram().share("workram1"); //work ram
- map(0x02030000, 0x0203ffff).ram().share("nvram");
+ map(0x02030000, 0x02033fff).ram().share("nvram");
map(0x02034000, 0x0203dfff).ram().share("workram2"); //work ram
map(0x0203e000, 0x0203ffff).ram().share("spriteram");
map(0x06000000, 0x06000001).w(FUNC(feversoc_state::output_w));
diff --git a/src/mame/drivers/fitfight.cpp b/src/mame/drivers/fitfight.cpp
index a75e86a61fc..c89e2725519 100644
--- a/src/mame/drivers/fitfight.cpp
+++ b/src/mame/drivers/fitfight.cpp
@@ -208,8 +208,7 @@ void fitfight_state::bbprot_main_map(address_map &map)
map(0xb08000, 0xb0bfff).ram().w(FUNC(fitfight_state::fof_mid_tileram_w)).share("fof_mid_tileram");
map(0xb0c000, 0xb0ffff).ram().w(FUNC(fitfight_state::fof_txt_tileram_w)).share("fof_txt_tileram");
- map(0xc00000, 0xc00fff).readonly();
- map(0xc00000, 0xc03fff).w(m_palette, FUNC(palette_device::write16)).share("palette");
+ map(0xc00000, 0xc03fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0xd00000, 0xd007ff).ram().share("spriteram");
diff --git a/src/mame/drivers/gaelco2.cpp b/src/mame/drivers/gaelco2.cpp
index 35b14dc18bc..8d8830e4f9d 100644
--- a/src/mame/drivers/gaelco2.cpp
+++ b/src/mame/drivers/gaelco2.cpp
@@ -760,9 +760,8 @@ void bang_state::bang_map(address_map &map)
map(0x200000, 0x20ffff).ram().w(FUNC(bang_state::vram_w)).share("spriteram"); /* Video RAM */
map(0x202890, 0x2028ff).rw("gaelco", FUNC(gaelco_cg1v_device::gaelcosnd_r), FUNC(gaelco_cg1v_device::gaelcosnd_w)); /* Sound Registers */
map(0x210000, 0x211fff).ram().w(FUNC(bang_state::palette_w)).share("paletteram"); /* Palette */
- map(0x218004, 0x218009).readonly(); /* Video Registers */
- map(0x218004, 0x218007).w(FUNC(bang_state::vregs_w)).share("vregs"); /* Video Registers */
- map(0x218008, 0x218009).nopw(); /* CLR INT Video */
+ map(0x218004, 0x218007).ram().w(FUNC(bang_state::vregs_w)).share("vregs"); /* Video Registers */
+ map(0x218008, 0x218009).noprw(); /* CLR INT Video */
map(0x300000, 0x300001).portr("P1");
map(0x300002, 0x300003).nopr(); /* Random number generator? */
map(0x300000, 0x30000f).w(m_mainlatch, FUNC(ls259_device::write_d0)).umask16(0x00ff); /* Coin Counters & serial EEPROM */
diff --git a/src/mame/drivers/gaelco3d.cpp b/src/mame/drivers/gaelco3d.cpp
index 4408bb290e8..11c5b398f24 100644
--- a/src/mame/drivers/gaelco3d.cpp
+++ b/src/mame/drivers/gaelco3d.cpp
@@ -429,16 +429,6 @@ WRITE_LINE_MEMBER(gaelco3d_state::tms_control3_w)
logerror("%06X:tms_control3_w = %d\n", m_maincpu->pc(), state);
}
-
-WRITE16_MEMBER(gaelco3d_state::tms_comm_w)
-{
- COMBINE_DATA(&m_tms_comm_base[offset ^ m_tms_offset_xor]);
- if (LOG)
- logerror("%s:tms_comm_w(%02X) = %08X & %08X\n", machine().describe_context(), offset*2, data, mem_mask);
-}
-
-
-
/*************************************
*
* ADSP control registers
@@ -683,7 +673,6 @@ void gaelco3d_state::main_map(address_map &map)
map(0x510105, 0x510105).w(m_serial, FUNC(gaelco_serial_device::data_w));
map(0x510107, 0x510107).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
map(0xfe0000, 0xfeffff).ram().share("m68k_ram_base");
- map(0xfe7f80, 0xfe7fff).w(FUNC(gaelco3d_state::tms_comm_w)).share("tms_comm_base");
}
@@ -703,7 +692,6 @@ void gaelco3d_state::main020_map(address_map &map)
map(0x510105, 0x510105).w(m_serial, FUNC(gaelco_serial_device::data_w));
map(0x510107, 0x510107).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
map(0xfe0000, 0xfeffff).ram().share("m68k_ram_base");
- map(0xfe7f80, 0xfe7fff).w(FUNC(gaelco3d_state::tms_comm_w)).share("tms_comm_base");
}
void gaelco3d_state::tms_map(address_map &map)
diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp
index 8b9d4128768..69f95ed81c1 100644
--- a/src/mame/drivers/galaxian.cpp
+++ b/src/mame/drivers/galaxian.cpp
@@ -1592,13 +1592,13 @@ void galaxian_state::galaxian_map(address_map &map)
void galaxian_state::frogg_map(address_map &map)
{
galaxian_map(map);
- map(0x4000, 0x47ff).ram(); // needs a full 2k of RAM
+ map(0x4400, 0x47ff).ram(); // needs a full 2k of RAM
}
void galaxian_state::mandingarf_map(address_map &map)
{
galaxian_map(map);
- map(0x4000, 0x47ff).ram(); // needs a full 2k of RAM
+ map(0x4400, 0x47ff).ram(); // needs a full 2k of RAM
map(0xc000, 0xc7ff).rom().region("maincpu", 0xc000); // extend ROM
}
@@ -1654,7 +1654,7 @@ void galaxian_state::mooncrst_map(address_map &map)
void galaxian_state::froggermc_map(address_map &map)
{
mooncrst_map_base(map); // no discrete sound
- map(0x8000, 0x87ff).ram(); // actually needs 2k of RAM
+ map(0x8400, 0x87ff).ram(); // actually needs 2k of RAM
map(0xa800, 0xa800).mirror(0x7ff).w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0xb001, 0xb001).mirror(0x7f8).w(FUNC(galaxian_state::froggermc_sound_control_w));
}
@@ -1672,7 +1672,7 @@ void galaxian_state::skybase_map(address_map &map)
{
mooncrst_map(map);
map(0x0000, 0x5fff).rom().region("maincpu", 0); // extend ROM
- map(0x8000, 0x87ff).ram(); // needs a full 2k of RAM
+ map(0x8400, 0x87ff).ram(); // needs a full 2k of RAM
map(0xa002, 0xa002).mirror(0x7f8).w(FUNC(galaxian_state::galaxian_gfxbank_w)); // coin lockout replaced by graphics bank
}
@@ -1680,7 +1680,7 @@ void galaxian_state::kong_map(address_map &map)
{
mooncrst_map(map);
map(0x0000, 0x7fff).rom().region("maincpu", 0); // extend ROM
- map(0x8000, 0x87ff).ram(); // needs a full 2k of RAM
+ map(0x8400, 0x87ff).ram(); // needs a full 2k of RAM
}
void galaxian_state::scorpnmc_map(address_map &map)
@@ -1688,7 +1688,7 @@ void galaxian_state::scorpnmc_map(address_map &map)
mooncrst_map(map);
map(0x4000, 0x47ff).ram();
map(0x5000, 0x67ff).rom().region("maincpu", 0x5000); // extra ROM
- map(0x8000, 0x87ff).unmaprw(); // doesn't appear to use original RAM
+ map(0x8400, 0x87ff).unmaprw(); // doesn't appear to use original RAM
map(0xb000, 0xb000).mirror(0x7f8).nopw(); // interrupt enable moved
map(0xb001, 0xb001).mirror(0x7f8).w(FUNC(galaxian_state::irq_enable_w));
}
diff --git a/src/mame/drivers/galaxold.cpp b/src/mame/drivers/galaxold.cpp
index 0a8e7478df4..6055bb97fdc 100644
--- a/src/mame/drivers/galaxold.cpp
+++ b/src/mame/drivers/galaxold.cpp
@@ -565,7 +565,6 @@ void galaxold_state::dkongjrmc_map(address_map &map)
{
map(0x0000, 0x5fff).rom();
map(0x6000, 0x6fff).ram();
- map(0x7000, 0x73ff).ram().w(FUNC(galaxold_state::galaxold_videoram_w));
map(0x7000, 0x70ff).ram().w(FUNC(galaxold_state::galaxold_attributesram_w)).share("attributesram");
map(0x7100, 0x71ff).ram().share("spriteram");
map(0x7400, 0x77ff).ram().w(FUNC(galaxold_state::galaxold_videoram_w)).share("videoram");
diff --git a/src/mame/drivers/gamepock.cpp b/src/mame/drivers/gamepock.cpp
index 1b31660c55d..3b25f8a5094 100644
--- a/src/mame/drivers/gamepock.cpp
+++ b/src/mame/drivers/gamepock.cpp
@@ -21,7 +21,6 @@ void gamepock_state::gamepock_mem(address_map &map)
map(0x1000, 0x3fff).noprw();
//AM_RANGE(0x4000,0xbfff) AM_ROM // mapped by the cartslot
map(0xc000, 0xc7ff).mirror(0x0800).ram();
- map(0xff80, 0xffff).ram(); // 128 bytes microcontroller RAM
}
diff --git a/src/mame/drivers/goindol.cpp b/src/mame/drivers/goindol.cpp
index 0e80a2e447f..15bebca3abb 100644
--- a/src/mame/drivers/goindol.cpp
+++ b/src/mame/drivers/goindol.cpp
@@ -89,9 +89,9 @@ void goindol_state::goindol_map(address_map &map)
map(0xc800, 0xc800).nopr().w("soundlatch", FUNC(generic_latch_8_device::write)); // watchdog?
map(0xc810, 0xc810).w(FUNC(goindol_state::goindol_bankswitch_w));
map(0xc820, 0xc820).portr("DIAL");
- map(0xc820, 0xd820).writeonly().share("fg_scrolly");
+ map(0xc820, 0xc820).writeonly().share("fg_scrolly");
map(0xc830, 0xc830).portr("P1");
- map(0xc830, 0xd830).writeonly().share("fg_scrollx");
+ map(0xc830, 0xc830).writeonly().share("fg_scrollx");
map(0xc834, 0xc834).portr("P2");
map(0xd000, 0xd03f).ram().share("spriteram");
map(0xd040, 0xd7ff).ram();
diff --git a/src/mame/drivers/hvyunit.cpp b/src/mame/drivers/hvyunit.cpp
index 5b0743ab271..2e577976c26 100644
--- a/src/mame/drivers/hvyunit.cpp
+++ b/src/mame/drivers/hvyunit.cpp
@@ -415,9 +415,10 @@ void hvyunit_state::slave_memory(address_map &map)
map(0x8000, 0xbfff).bankr("slave_bank");
map(0xc000, 0xc3ff).ram().w(FUNC(hvyunit_state::videoram_w)).share("videoram");
map(0xc400, 0xc7ff).ram().w(FUNC(hvyunit_state::colorram_w)).share("colorram");
- map(0xd000, 0xdfff).ram();
map(0xd000, 0xd1ff).ram().w(m_palette, FUNC(palette_device::write8_ext)).share("palette_ext");
+ map(0xd200, 0xd7ff).ram();
map(0xd800, 0xd9ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
+ map(0xda00, 0xdfff).ram();
map(0xe000, 0xffff).ram().share("share1");
}
diff --git a/src/mame/drivers/ironhors.cpp b/src/mame/drivers/ironhors.cpp
index c95a55df929..4cd28d4cb7d 100644
--- a/src/mame/drivers/ironhors.cpp
+++ b/src/mame/drivers/ironhors.cpp
@@ -124,15 +124,14 @@ void ironhors_state::farwest_master_map(address_map &map)
map(0x1a00, 0x1a00).ram().share("int_enable");
map(0x1a01, 0x1a01).ram().w(FUNC(ironhors_state::charbank_w));
map(0x1a02, 0x1a02).w(FUNC(ironhors_state::palettebank_w));
-// map(0x1c00, 0x1fff).ram();
+ map(0x1e00, 0x1eff).ram().share("spriteram");
map(0x2000, 0x23ff).ram().w(FUNC(ironhors_state::colorram_w)).share("colorram");
map(0x2400, 0x27ff).ram().w(FUNC(ironhors_state::videoram_w)).share("videoram");
map(0x2800, 0x2fff).ram();
map(0x1c00, 0x1dff).ram().share("spriteram2");
- map(0x3000, 0x38ff).ram();
+ map(0x3000, 0x31da).ram();
map(0x31db, 0x31fa).ram().share("scroll");
- map(0x1e00, 0x1eff).ram().share("spriteram");
- map(0x3900, 0x3fff).ram();
+ map(0x31fb, 0x3fff).ram();
map(0x4000, 0xffff).rom();
}
diff --git a/src/mame/drivers/legionna.cpp b/src/mame/drivers/legionna.cpp
index e1359deac03..c3761203ef2 100644
--- a/src/mame/drivers/legionna.cpp
+++ b/src/mame/drivers/legionna.cpp
@@ -250,7 +250,6 @@ void legionna_state::godzilla_map(address_map &map)
map(0x101800, 0x101fff).ram(); // .w(FUNC(legionna_state::legionna_foreground_w).share("fore_data");
map(0x102000, 0x1027ff).ram(); // .w(FUNC(legionna_state::legionna_midground_w).share("mid_data");
map(0x102800, 0x103fff).ram(); // .w(FUNC(legionna_state::legionna_text_w).share("textram");
- map(0x103800, 0x103fff).ram(); // check?
map(0x104000, 0x104fff).ram(); // .w("palette", FUNC(palette_device::write)).share("palette");
map(0x105000, 0x105fff).ram().share("spriteram");
map(0x106000, 0x1067ff).ram();
diff --git a/src/mame/drivers/liberate.cpp b/src/mame/drivers/liberate.cpp
index 245f906e692..22f06f39dde 100644
--- a/src/mame/drivers/liberate.cpp
+++ b/src/mame/drivers/liberate.cpp
@@ -242,8 +242,9 @@ WRITE8_MEMBER(liberate_state::prosport_charram_w)
void liberate_state::prosport_map(address_map &map)
{
- map(0x0000, 0x03ff).mirror(0x2000).ram();
- map(0x0200, 0x021f).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
+ map(0x0000, 0x01ff).mirror(0x2000).ram();
+ map(0x0200, 0x021f).mirror(0x2000).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
+ map(0x0220, 0x03ff).mirror(0x2000).ram();
map(0x0400, 0x07ff).ram().w(FUNC(liberate_state::prosport_bg_vram_w)).share("bg_vram");
map(0x0800, 0x1fff).rw(FUNC(liberate_state::prosport_charram_r), FUNC(liberate_state::prosport_charram_w)); //0x1e00-0x1fff isn't charram!
map(0x2400, 0x2fff).ram();
diff --git a/src/mame/drivers/liberatr.cpp b/src/mame/drivers/liberatr.cpp
index 837fc987a1b..994525ae507 100644
--- a/src/mame/drivers/liberatr.cpp
+++ b/src/mame/drivers/liberatr.cpp
@@ -275,10 +275,10 @@ WRITE8_MEMBER( liberatr_state::earom_control_w )
void liberatr_state::liberatr_map(address_map &map)
{
- map(0x0000, 0x3fff).ram().w(FUNC(liberatr_state::bitmap_w)).share("bitmapram"); /* overlapping for my convenience */
map(0x0000, 0x0000).ram().share("xcoord");
map(0x0001, 0x0001).ram().share("ycoord");
map(0x0002, 0x0002).rw(FUNC(liberatr_state::bitmap_xy_r), FUNC(liberatr_state::bitmap_xy_w));
+ map(0x0003, 0x3fff).ram().w(FUNC(liberatr_state::bitmap_w)).share("bitmapram");
map(0x4000, 0x403f).r(FUNC(liberatr_state::earom_r));
map(0x5000, 0x5000).r(FUNC(liberatr_state::port0_r));
map(0x5001, 0x5001).portr("IN1");
@@ -306,10 +306,10 @@ void liberatr_state::liberatr_map(address_map &map)
void liberatr_state::liberat2_map(address_map &map)
{
- map(0x0000, 0x3fff).ram().w(FUNC(liberatr_state::bitmap_w)).share("bitmapram"); /* overlapping for my convenience */
map(0x0000, 0x0000).ram().share("xcoord");
map(0x0001, 0x0001).ram().share("ycoord");
map(0x0002, 0x0002).rw(FUNC(liberatr_state::bitmap_xy_r), FUNC(liberatr_state::bitmap_xy_w));
+ map(0x0003, 0x3fff).ram().w(FUNC(liberatr_state::bitmap_w)).share("bitmapram");
map(0x4000, 0x4000).r(FUNC(liberatr_state::port0_r));
map(0x4001, 0x4001).portr("IN1");
map(0x4002, 0x400f).nopr();
diff --git a/src/mame/drivers/ltd.cpp b/src/mame/drivers/ltd.cpp
index 27f3e4e9500..7ca3f4a4eae 100644
--- a/src/mame/drivers/ltd.cpp
+++ b/src/mame/drivers/ltd.cpp
@@ -108,8 +108,6 @@ void ltd_state::ltd3_map(address_map &map)
void ltd_state::ltd4_map(address_map &map)
{
- map(0x0000, 0x001f).ram(); // internal to the cpu
- map(0x0080, 0x00ff).ram();
map(0x0100, 0x01ff).ram().share("nvram");
map(0x0800, 0x0800).w(FUNC(ltd_state::count_reset_w));
map(0x0c00, 0x0c00).w("aysnd_1", FUNC(ay8910_device::reset_w));
diff --git a/src/mame/drivers/m62.cpp b/src/mame/drivers/m62.cpp
index 32faff7893c..d49034d8648 100644
--- a/src/mame/drivers/m62.cpp
+++ b/src/mame/drivers/m62.cpp
@@ -255,8 +255,8 @@ void m62_state::ldrun3_map(address_map &map)
map(0xcc00, 0xcc00).r(FUNC(m62_state::ldrun3_prot_7_r));
map(0xcfff, 0xcfff).r(FUNC(m62_state::ldrun3_prot_7_r));
map(0xc000, 0xc0ff).writeonly().share("spriteram");
- map(0xd000, 0xefff).ram();
map(0xd000, 0xdfff).ram().w(FUNC(m62_state::m62_tileram_w)).share("m62_tileram");
+ map(0xe000, 0xefff).ram();
}
void m62_state::ldrun3_io_map(address_map &map)
diff --git a/src/mame/drivers/maygayep.cpp b/src/mame/drivers/maygayep.cpp
index 4d3399db597..b02001b7f9c 100644
--- a/src/mame/drivers/maygayep.cpp
+++ b/src/mame/drivers/maygayep.cpp
@@ -62,7 +62,7 @@ void maygayep_state::maygayep_map(address_map &map)
{
map.global_mask(0xffffff);
map(0x000000, 0x07ffff).rom().region("maincpu", 0);
- map(0xfe0000, 0xffffff).ram(); // merln at least?
+ map(0xfe0000, 0xfffd0f).ram(); // merln at least?
}
static INPUT_PORTS_START( maygayep )
diff --git a/src/mame/drivers/maygayv1.cpp b/src/mame/drivers/maygayv1.cpp
index 0090a262c58..baea9d0482d 100644
--- a/src/mame/drivers/maygayv1.cpp
+++ b/src/mame/drivers/maygayv1.cpp
@@ -667,7 +667,6 @@ void maygayv1_state::sound_prg(address_map &map)
void maygayv1_state::sound_data(address_map &map)
{
- map(0x0000, 0x1ff).ram(); // nothing?
}
void maygayv1_state::sound_io(address_map &map)
diff --git a/src/mame/drivers/mgolf.cpp b/src/mame/drivers/mgolf.cpp
index cc47c4c2c9a..47d12299405 100644
--- a/src/mame/drivers/mgolf.cpp
+++ b/src/mame/drivers/mgolf.cpp
@@ -234,28 +234,22 @@ void mgolf_state::cpu_map(address_map &map)
{
map.global_mask(0x3fff);
- map(0x0040, 0x0040).portr("40");
- map(0x0041, 0x0041).r(FUNC(mgolf_state::dial_r));
- map(0x0060, 0x0060).portr("60");
- map(0x0061, 0x0061).r(FUNC(mgolf_state::misc_r));
- map(0x0080, 0x00ff).r(FUNC(mgolf_state::wram_r));
- map(0x0180, 0x01ff).r(FUNC(mgolf_state::wram_r));
- map(0x0800, 0x0bff).readonly();
map(0x0000, 0x0009).nopw();
map(0x0024, 0x0024).nopw();
map(0x0028, 0x0028).nopw();
+ map(0x0040, 0x0040).portr("40");
+ map(0x0041, 0x0041).r(FUNC(mgolf_state::dial_r));
map(0x0042, 0x0042).nopw();
map(0x0044, 0x0044).nopw(); /* watchdog? */
map(0x0046, 0x0046).nopw();
- map(0x0060, 0x0060).nopw();
- map(0x0061, 0x0061).nopw();
+ map(0x0060, 0x0060).portr("60").nopw();
+ map(0x0061, 0x0061).r(FUNC(mgolf_state::misc_r)).nopw();
map(0x006a, 0x006a).nopw();
map(0x006c, 0x006c).nopw();
map(0x006d, 0x006d).nopw();
- map(0x0080, 0x00ff).w(FUNC(mgolf_state::wram_w));
- map(0x0180, 0x01ff).w(FUNC(mgolf_state::wram_w));
- map(0x0800, 0x0bff).w(FUNC(mgolf_state::vram_w)).share("video_ram");
+ map(0x0080, 0x00ff).rw(FUNC(mgolf_state::wram_r), FUNC(mgolf_state::wram_w)).mirror(0x100);
+ map(0x0800, 0x0bff).ram().w(FUNC(mgolf_state::vram_w)).share("video_ram");
map(0x2000, 0x3fff).rom();
}
diff --git a/src/mame/drivers/midvunit.cpp b/src/mame/drivers/midvunit.cpp
index 211433347fc..6277f9d0516 100644
--- a/src/mame/drivers/midvunit.cpp
+++ b/src/mame/drivers/midvunit.cpp
@@ -590,7 +590,6 @@ void midvunit_state::midvunit_map(address_map &map)
map(0x400000, 0x41ffff).ram();
map(0x600000, 0x600000).w(FUNC(midvunit_state::midvunit_dma_queue_w));
map(0x808000, 0x80807f).rw(FUNC(midvunit_state::tms32031_control_r), FUNC(midvunit_state::tms32031_control_w)).share("32031_control");
- map(0x809800, 0x809fff).ram();
map(0x900000, 0x97ffff).rw(FUNC(midvunit_state::midvunit_videoram_r), FUNC(midvunit_state::midvunit_videoram_w)).share("videoram");
map(0x980000, 0x980000).r(FUNC(midvunit_state::midvunit_dma_queue_entries_r));
map(0x980020, 0x980020).r(FUNC(midvunit_state::midvunit_scanline_r));
@@ -622,7 +621,6 @@ void midvunit_state::midvplus_map(address_map &map)
map(0x400000, 0x41ffff).ram().share("fastram_base");
map(0x600000, 0x600000).w(FUNC(midvunit_state::midvunit_dma_queue_w));
map(0x808000, 0x80807f).rw(FUNC(midvunit_state::tms32031_control_r), FUNC(midvunit_state::tms32031_control_w)).share("32031_control");
- map(0x809800, 0x809fff).ram();
map(0x900000, 0x97ffff).rw(FUNC(midvunit_state::midvunit_videoram_r), FUNC(midvunit_state::midvunit_videoram_w)).share("videoram");
map(0x980000, 0x980000).r(FUNC(midvunit_state::midvunit_dma_queue_entries_r));
map(0x980020, 0x980020).r(FUNC(midvunit_state::midvunit_scanline_r));
diff --git a/src/mame/drivers/mps1230.cpp b/src/mame/drivers/mps1230.cpp
index 71f8f4d9d39..b2daf33df49 100644
--- a/src/mame/drivers/mps1230.cpp
+++ b/src/mame/drivers/mps1230.cpp
@@ -128,7 +128,6 @@ void mps1230_state::mps1230_map(address_map &map)
{
map(0x0000, 0x7fff).rom().region("maincpu", 0);
map(0xc000, 0xdfff).ram(); // as per the service manual
- map(0xff80, 0xffff).ram(); // internal in cpu
}
/***************************************************************************
diff --git a/src/mame/drivers/namcos12.cpp b/src/mame/drivers/namcos12.cpp
index d8a18996bb5..264a663547d 100644
--- a/src/mame/drivers/namcos12.cpp
+++ b/src/mame/drivers/namcos12.cpp
@@ -1815,7 +1815,7 @@ void namcos12_boothack_state::golgo13(machine_config &config)
void namcos12_state::jvsmap(address_map &map)
{
map(0x0000, 0x1fff).rom().region("iocpu", 0);
- map(0xc000, 0xffff).ram();
+ map(0xc000, 0xfb7f).ram();
}
void namcos12_state::jvsiomap(address_map &map)
@@ -1866,7 +1866,7 @@ void namcos12_state::tdjvsmap(address_map &map)
map(0x0000, 0x3fff).rom().region("iocpu", 0);
map(0x6000, 0x6001).portr("IN01");
map(0x6002, 0x6003).portr("IN23");
- map(0xc000, 0xffff).ram();
+ map(0xc000, 0xfb7f).ram();
}
void namcos12_state::tdjvsiomap(address_map &map)
@@ -1883,7 +1883,7 @@ void namcos12_state::plarailjvsmap(address_map &map)
map(0x0000, 0x3fff).rom().region("iocpu", 0);
map(0x6000, 0x6001).portr("IN01");
map(0x6002, 0x6003).portr("IN23");
- map(0xc000, 0xffff).ram();
+ map(0xc000, 0xfb7f).ram();
}
void namcos12_state::plarailjvsiomap(address_map &map)
diff --git a/src/mame/drivers/namcos23.cpp b/src/mame/drivers/namcos23.cpp
index f07f0112576..6096003f31b 100644
--- a/src/mame/drivers/namcos23.cpp
+++ b/src/mame/drivers/namcos23.cpp
@@ -3203,7 +3203,7 @@ void namcos23_state::s23iobrdmap(address_map &map)
map(0x6002, 0x6003).portr("IN23");
map(0x6004, 0x6005).nopw();
map(0x6006, 0x6007).noprw();
- map(0xc000, 0xffff).ram();
+ map(0xc000, 0xfb7f).ram();
}
void namcos23_state::s23iobrdiomap(address_map &map)
diff --git a/src/mame/drivers/nemesis.cpp b/src/mame/drivers/nemesis.cpp
index 5ce77ac4c33..42bdbd15aa3 100644
--- a/src/mame/drivers/nemesis.cpp
+++ b/src/mame/drivers/nemesis.cpp
@@ -309,11 +309,12 @@ void nemesis_state::nemesis_map(address_map &map)
{
map(0x000000, 0x03ffff).rom();
map(0x040000, 0x04ffff).ram().w(FUNC(nemesis_state::nemesis_charram_word_w)).share("charram");
- map(0x050000, 0x051fff).ram();
- map(0x050000, 0x0503ff).share("xscroll1");
- map(0x050400, 0x0507ff).share("xscroll2");
- map(0x050f00, 0x050f7f).share("yscroll2");
- map(0x050f80, 0x050fff).share("yscroll1");
+ map(0x050000, 0x0503ff).ram().share("xscroll1");
+ map(0x050400, 0x0507ff).ram().share("xscroll2");
+ map(0x050800, 0x050eff).ram();
+ map(0x050f00, 0x050f7f).ram().share("yscroll2");
+ map(0x050f80, 0x050fff).ram().share("yscroll1");
+ map(0x051000, 0x051fff).ram();
map(0x052000, 0x052fff).ram().w(FUNC(nemesis_state::nemesis_videoram1_word_w)).share("videoram1"); /* VRAM */
map(0x053000, 0x053fff).ram().w(FUNC(nemesis_state::nemesis_videoram2_word_w)).share("videoram2");
map(0x054000, 0x054fff).ram().w(FUNC(nemesis_state::nemesis_colorram1_word_w)).share("colorram1");
@@ -339,11 +340,12 @@ void nemesis_state::gx400_map(address_map &map)
map(0x010000, 0x01ffff).ram();
map(0x020000, 0x027fff).rw(FUNC(nemesis_state::gx400_sharedram_word_r), FUNC(nemesis_state::gx400_sharedram_word_w));
map(0x030000, 0x03ffff).ram().w(FUNC(nemesis_state::nemesis_charram_word_w)).share("charram");
- map(0x050000, 0x051fff).ram();
- map(0x050000, 0x0503ff).share("xscroll1");
- map(0x050400, 0x0507ff).share("xscroll2");
- map(0x050f00, 0x050f7f).share("yscroll2");
- map(0x050f80, 0x050fff).share("yscroll1");
+ map(0x050000, 0x0503ff).ram().share("xscroll1");
+ map(0x050400, 0x0507ff).ram().share("xscroll2");
+ map(0x050800, 0x050eff).ram();
+ map(0x050f00, 0x050f7f).ram().share("yscroll2");
+ map(0x050f80, 0x050fff).ram().share("yscroll1");
+ map(0x051000, 0x051fff).ram();
map(0x052000, 0x052fff).ram().w(FUNC(nemesis_state::nemesis_videoram1_word_w)).share("videoram1"); /* VRAM */
map(0x053000, 0x053fff).ram().w(FUNC(nemesis_state::nemesis_videoram2_word_w)).share("videoram2");
map(0x054000, 0x054fff).ram().w(FUNC(nemesis_state::nemesis_colorram1_word_w)).share("colorram1");
@@ -372,11 +374,12 @@ void nemesis_state::bubsys_map(address_map &map)
map(0x020000, 0x027fff).rw(FUNC(nemesis_state::gx400_sharedram_word_r), FUNC(nemesis_state::gx400_sharedram_word_w));
map(0x030000, 0x03ffff).ram().w(FUNC(nemesis_state::nemesis_charram_word_w)).share("charram");
map(0x040000, 0x040007).ram().w(FUNC(nemesis_state::bubsys_mcu_w)).share("bubsys_control"); // Shared with MCU
- map(0x050000, 0x051fff).ram();
- map(0x050000, 0x0503ff).share("xscroll1");
- map(0x050400, 0x0507ff).share("xscroll2");
- map(0x050f00, 0x050f7f).share("yscroll2");
- map(0x050f80, 0x050fff).share("yscroll1");
+ map(0x050000, 0x0503ff).ram().share("xscroll1");
+ map(0x050400, 0x0507ff).ram().share("xscroll2");
+ map(0x050800, 0x050eff).ram();
+ map(0x050f00, 0x050f7f).ram().share("yscroll2");
+ map(0x050f80, 0x050fff).ram().share("yscroll1");
+ map(0x051000, 0x051fff).ram();
map(0x052000, 0x052fff).ram().w(FUNC(nemesis_state::nemesis_videoram1_word_w)).share("videoram1"); /* VRAM */
map(0x053000, 0x053fff).ram().w(FUNC(nemesis_state::nemesis_videoram2_word_w)).share("videoram2");
map(0x054000, 0x054fff).ram().w(FUNC(nemesis_state::nemesis_colorram1_word_w)).share("colorram1");
@@ -401,11 +404,12 @@ void nemesis_state::konamigt_map(address_map &map)
{
map(0x000000, 0x03ffff).rom();
map(0x040000, 0x04ffff).ram().w(FUNC(nemesis_state::nemesis_charram_word_w)).share("charram");
- map(0x050000, 0x051fff).ram();
- map(0x050000, 0x0503ff).share("xscroll1");
- map(0x050400, 0x0507ff).share("xscroll2");
- map(0x050f00, 0x050f7f).share("yscroll2");
- map(0x050f80, 0x050fff).share("yscroll1");
+ map(0x050000, 0x0503ff).ram().share("xscroll1");
+ map(0x050400, 0x0507ff).ram().share("xscroll2");
+ map(0x050800, 0x050eff).ram();
+ map(0x050f00, 0x050f7f).ram().share("yscroll2");
+ map(0x050f80, 0x050fff).ram().share("yscroll1");
+ map(0x051000, 0x051fff).ram();
map(0x052000, 0x052fff).ram().w(FUNC(nemesis_state::nemesis_videoram1_word_w)).share("videoram1"); /* VRAM */
map(0x053000, 0x053fff).ram().w(FUNC(nemesis_state::nemesis_videoram2_word_w)).share("videoram2");
map(0x054000, 0x054fff).ram().w(FUNC(nemesis_state::nemesis_colorram1_word_w)).share("colorram1");
@@ -432,11 +436,12 @@ void nemesis_state::rf2_gx400_map(address_map &map)
map(0x010000, 0x01ffff).ram();
map(0x020000, 0x027fff).rw(FUNC(nemesis_state::gx400_sharedram_word_r), FUNC(nemesis_state::gx400_sharedram_word_w));
map(0x030000, 0x03ffff).ram().w(FUNC(nemesis_state::nemesis_charram_word_w)).share("charram");
- map(0x050000, 0x051fff).ram();
- map(0x050000, 0x0503ff).share("xscroll1");
- map(0x050400, 0x0507ff).share("xscroll2");
- map(0x050f00, 0x050f7f).share("yscroll2");
- map(0x050f80, 0x050fff).share("yscroll1");
+ map(0x050000, 0x0503ff).ram().share("xscroll1");
+ map(0x050400, 0x0507ff).ram().share("xscroll2");
+ map(0x050800, 0x050eff).ram();
+ map(0x050f00, 0x050f7f).ram().share("yscroll2");
+ map(0x050f80, 0x050fff).ram().share("yscroll1");
+ map(0x051000, 0x051fff).ram();
map(0x052000, 0x052fff).ram().w(FUNC(nemesis_state::nemesis_videoram1_word_w)).share("videoram1"); /* VRAM */
map(0x053000, 0x053fff).ram().w(FUNC(nemesis_state::nemesis_videoram2_word_w)).share("videoram2");
map(0x054000, 0x054fff).ram().w(FUNC(nemesis_state::nemesis_colorram1_word_w)).share("colorram1");
@@ -526,11 +531,12 @@ void nemesis_state::salamand_map(address_map &map)
map(0x103000, 0x103fff).ram().w(FUNC(nemesis_state::nemesis_colorram1_word_w)).share("colorram1");
map(0x120000, 0x12ffff).ram().w(FUNC(nemesis_state::nemesis_charram_word_w)).share("charram");
map(0x180000, 0x180fff).ram().share("spriteram"); /* more sprite ram ??? */
- map(0x190000, 0x191fff).ram();
- map(0x190000, 0x1903ff).share("xscroll2");
- map(0x190400, 0x1907ff).share("xscroll1");
- map(0x190f00, 0x190f7f).share("yscroll1");
- map(0x190f80, 0x190fff).share("yscroll2");
+ map(0x190000, 0x1903ff).ram().share("xscroll2");
+ map(0x190400, 0x1907ff).ram().share("xscroll1");
+ map(0x190800, 0x190eff).ram();
+ map(0x190f00, 0x190f7f).ram().share("yscroll1");
+ map(0x190f80, 0x190fff).ram().share("yscroll2");
+ map(0x191000, 0x191fff).ram();
}
void nemesis_state::blkpnthr_map(address_map &map)
@@ -551,11 +557,12 @@ void nemesis_state::blkpnthr_map(address_map &map)
map(0x102000, 0x102fff).ram().w(FUNC(nemesis_state::nemesis_videoram1_word_w)).share("videoram1");
map(0x103000, 0x103fff).ram().w(FUNC(nemesis_state::nemesis_videoram2_word_w)).share("videoram2");
map(0x120000, 0x12ffff).ram().w(FUNC(nemesis_state::nemesis_charram_word_w)).share("charram");
- map(0x180000, 0x181fff).ram();
- map(0x180000, 0x1803ff).share("xscroll1");
- map(0x180400, 0x1807ff).share("xscroll2");
- map(0x180f00, 0x180f7f).share("yscroll2");
- map(0x180f80, 0x180fff).share("yscroll1");
+ map(0x180000, 0x1803ff).ram().share("xscroll1");
+ map(0x180400, 0x1807ff).ram().share("xscroll2");
+ map(0x180800, 0x180eff).ram();
+ map(0x180f00, 0x180f7f).ram().share("yscroll2");
+ map(0x180f80, 0x180fff).ram().share("yscroll1");
+ map(0x181000, 0x181fff).ram();
map(0x190000, 0x190fff).ram().share("spriteram"); /* more sprite ram ??? */
}
@@ -579,11 +586,12 @@ void nemesis_state::citybomb_map(address_map &map)
map(0x211000, 0x211fff).ram().w(FUNC(nemesis_state::nemesis_videoram2_word_w)).share("videoram2");
map(0x212000, 0x212fff).ram().w(FUNC(nemesis_state::nemesis_colorram1_word_w)).share("colorram1");
map(0x213000, 0x213fff).ram().w(FUNC(nemesis_state::nemesis_colorram2_word_w)).share("colorram2");
- map(0x300000, 0x301fff).ram();
- map(0x300000, 0x3003ff).share("xscroll1");
- map(0x300400, 0x3007ff).share("xscroll2");
- map(0x300f00, 0x300f7f).share("yscroll2");
- map(0x300f80, 0x300fff).share("yscroll1");
+ map(0x300000, 0x3003ff).ram().share("xscroll1");
+ map(0x300400, 0x3007ff).ram().share("xscroll2");
+ map(0x300800, 0x300eff).ram();
+ map(0x300f00, 0x300f7f).ram().share("yscroll2");
+ map(0x300f80, 0x300fff).ram().share("yscroll1");
+ map(0x301000, 0x301fff).ram();
map(0x310000, 0x310fff).ram().share("spriteram"); /* more sprite ram ??? */
}
@@ -607,11 +615,12 @@ void nemesis_state::nyanpani_map(address_map &map)
map(0x203000, 0x203fff).ram().w(FUNC(nemesis_state::nemesis_colorram2_word_w)).share("colorram2");
map(0x210000, 0x21ffff).ram().w(FUNC(nemesis_state::nemesis_charram_word_w)).share("charram");
map(0x300000, 0x300fff).ram().share("spriteram"); /* more sprite ram ??? */
- map(0x310000, 0x311fff).ram();
- map(0x310000, 0x3103ff).share("xscroll1");
- map(0x310400, 0x3107ff).share("xscroll2");
- map(0x310f00, 0x310f7f).share("yscroll2");
- map(0x310f80, 0x310fff).share("yscroll1");
+ map(0x310000, 0x3103ff).ram().share("xscroll1");
+ map(0x310400, 0x3107ff).ram().share("xscroll2");
+ map(0x310800, 0x310eff).ram();
+ map(0x310f00, 0x310f7f).ram().share("yscroll2");
+ map(0x310f80, 0x310fff).ram().share("yscroll1");
+ map(0x311000, 0x311fff).ram();
}
READ8_MEMBER(nemesis_state::wd_r)
@@ -684,11 +693,12 @@ void nemesis_state::hcrash_map(address_map &map)
map(0x103000, 0x103fff).ram().w(FUNC(nemesis_state::nemesis_colorram1_word_w)).share("colorram1");
map(0x120000, 0x12ffff).ram().w(FUNC(nemesis_state::nemesis_charram_word_w)).share("charram");
map(0x180000, 0x180fff).ram().share("spriteram");
- map(0x190000, 0x191fff).ram();
- map(0x190000, 0x1903ff).share("xscroll2");
- map(0x190400, 0x1907ff).share("xscroll1");
- map(0x190f00, 0x190f7f).share("yscroll1");
- map(0x190f80, 0x190fff).share("yscroll2");
+ map(0x190000, 0x1903ff).ram().share("xscroll2");
+ map(0x190400, 0x1907ff).ram().share("xscroll1");
+ map(0x190800, 0x190eff).ram();
+ map(0x190f00, 0x190f7f).ram().share("yscroll1");
+ map(0x190f80, 0x190fff).ram().share("yscroll2");
+ map(0x191000, 0x191fff).ram();
}
/******************************************************************************/
diff --git a/src/mame/drivers/nmk16.cpp b/src/mame/drivers/nmk16.cpp
index 4558f538bf1..7d2f6bfda4b 100644
--- a/src/mame/drivers/nmk16.cpp
+++ b/src/mame/drivers/nmk16.cpp
@@ -5254,13 +5254,6 @@ WRITE16_MEMBER(nmk16_state::afega_scroll_w)
COMBINE_DATA(&m_afega_scroll[Scroll][offset]);
}
-/*
- Lines starting with an empty comment in the following MemoryReadAddress
- arrays are there for debug (e.g. the game does not read from those ranges
- AFAIK)
-*/
-
-
void nmk16_state::afega_map(address_map &map)
{
map.global_mask(0xfffff);
@@ -5269,16 +5262,12 @@ void nmk16_state::afega_map(address_map &map)
map(0x080002, 0x080003).portr("IN1"); // P1 + P2
map(0x080004, 0x080005).portr("DSW1"); // 2 x DSW
map(0x080012, 0x080013).r(FUNC(nmk16_state::afega_unknown_r));
- map(0x080000, 0x08001d).writeonly(); //
map(0x08001f, 0x08001f).w(m_soundlatch, FUNC(generic_latch_8_device::write)); // To Sound CPU
- map(0x080020, 0x087fff).writeonly(); //
map(0x084000, 0x084003).ram().w(FUNC(nmk16_state::afega_scroll_w<0>)); // Scroll on redhawkb (mirror or changed?..)
map(0x084004, 0x084007).ram().w(FUNC(nmk16_state::afega_scroll_w<1>)); // Scroll on redhawkb (mirror or changed?..)
map(0x088000, 0x0885ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette
- map(0x088600, 0x08bfff).writeonly(); //
map(0x08c000, 0x08c003).ram().w(FUNC(nmk16_state::afega_scroll_w<0>)).share("afega_scroll_0"); // Scroll
map(0x08c004, 0x08c007).ram().w(FUNC(nmk16_state::afega_scroll_w<1>)).share("afega_scroll_1"); //
- map(0x08c008, 0x08ffff).writeonly(); //
map(0x090000, 0x093fff).ram().w(FUNC(nmk16_state::nmk_bgvideoram_w<0>)).share("nmk_bgvideoram0"); // Layer 0 // ?
map(0x09c000, 0x09c7ff).ram().w(FUNC(nmk16_state::nmk_txvideoram_w)).share("nmk_txvideoram"); // Layer 1
@@ -5295,16 +5284,12 @@ void nmk16_state::firehawk_map(address_map &map)
map(0x280002, 0x280003).portr("IN1"); // P1 + P2
map(0x280004, 0x280005).portr("DSW1"); // 2 x DSW
map(0x280012, 0x280013).r(FUNC(nmk16_state::afega_unknown_r));
- map(0x280000, 0x28001d).writeonly(); //
map(0x28001f, 0x28001f).w(m_soundlatch, FUNC(generic_latch_8_device::write)); // To Sound CPU
- map(0x280020, 0x287fff).writeonly(); //
map(0x284000, 0x284003).ram().w(FUNC(nmk16_state::afega_scroll_w<0>)); // Scroll on redhawkb (mirror or changed?..)
map(0x284004, 0x284007).ram().w(FUNC(nmk16_state::afega_scroll_w<1>)); // Scroll on redhawkb (mirror or changed?..)
map(0x288000, 0x2885ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette
- map(0x288600, 0x28bfff).writeonly(); //
map(0x28c000, 0x28c003).ram().w(FUNC(nmk16_state::afega_scroll_w<0>)).share("afega_scroll_0"); // Scroll
map(0x28c004, 0x28c007).ram().w(FUNC(nmk16_state::afega_scroll_w<1>)).share("afega_scroll_1"); //
- map(0x28c008, 0x28ffff).writeonly(); //
map(0x290000, 0x293fff).ram().w(FUNC(nmk16_state::nmk_bgvideoram_w<0>)).share("nmk_bgvideoram0"); // Layer 0 // ?
map(0x29c000, 0x29c7ff).ram().w(FUNC(nmk16_state::nmk_txvideoram_w)).share("nmk_txvideoram"); // Layer 1
diff --git a/src/mame/drivers/o2.cpp b/src/mame/drivers/o2.cpp
index 1914538a6c0..dacb0a43e33 100644
--- a/src/mame/drivers/o2.cpp
+++ b/src/mame/drivers/o2.cpp
@@ -44,7 +44,6 @@ protected:
void o2_state::mem_map(address_map &map)
{
map(0x00000000, 0x01ffffff).ram().share("bank1");
- map(0x00000000, 0x00000fff).ram();
map(0x14000000, 0x15ffffff).m(m_crime, FUNC(crime_device::map));
map(0x1f000000, 0x1f3fffff).m(m_mace, FUNC(mace_device::map));
map(0x1fc00000, 0x1fc7ffff).rom().region("user1", 0);
diff --git a/src/mame/drivers/olibochu.cpp b/src/mame/drivers/olibochu.cpp
index ed2cf4d2120..8f43d64288f 100644
--- a/src/mame/drivers/olibochu.cpp
+++ b/src/mame/drivers/olibochu.cpp
@@ -282,9 +282,11 @@ void olibochu_state::olibochu_map(address_map &map)
map(0xa005, 0xa005).portr("DSW2");
map(0xa800, 0xa801).w(FUNC(olibochu_state::sound_command_w));
map(0xa802, 0xa802).w(FUNC(olibochu_state::olibochu_flipscreen_w)); /* bit 6 = enable sound? */
- map(0xf000, 0xffff).ram();
+ map(0xf000, 0xf3ff).ram();
map(0xf400, 0xf41f).ram().share("spriteram");
+ map(0xf420, 0xf43f).ram();
map(0xf440, 0xf47f).ram().share("spriteram2");
+ map(0xf480, 0xffff).ram();
}
void olibochu_state::olibochu_sound_map(address_map &map)
diff --git a/src/mame/drivers/punchout.cpp b/src/mame/drivers/punchout.cpp
index 2eea40d1d90..1c0e2e8f181 100644
--- a/src/mame/drivers/punchout.cpp
+++ b/src/mame/drivers/punchout.cpp
@@ -146,10 +146,11 @@ void punchout_state::punchout_map(address_map &map)
map(0x0000, 0xbfff).rom();
map(0xc000, 0xc3ff).ram().share("nvram");
map(0xd000, 0xd7ff).ram();
- map(0xd800, 0xdfff).ram().w(FUNC(punchout_state::punchout_bg_top_videoram_w)).share("bg_top_videoram");
- map(0xdff0, 0xdff7).share("spr1_ctrlram");
- map(0xdff8, 0xdffc).share("spr2_ctrlram");
- map(0xdffd, 0xdffd).share("palettebank");
+ map(0xd800, 0xdfef).ram().w(FUNC(punchout_state::punchout_bg_top_videoram_w)).share("bg_top_videoram");
+ map(0xdff0, 0xdff7).ram().share("spr1_ctrlram");
+ map(0xdff8, 0xdffc).ram().share("spr2_ctrlram");
+ map(0xdffd, 0xdffd).ram().share("palettebank");
+ map(0xdffe, 0xdfff).ram();
map(0xe000, 0xe7ff).ram().w(FUNC(punchout_state::punchout_spr1_videoram_w)).share("spr1_videoram");
map(0xe800, 0xefff).ram().w(FUNC(punchout_state::punchout_spr2_videoram_w)).share("spr2_videoram");
map(0xf000, 0xffff).ram().w(FUNC(punchout_state::punchout_bg_bot_videoram_w)).share("bg_bot_videoram"); // also contains scroll RAM
@@ -161,10 +162,11 @@ void punchout_state::armwrest_map(address_map &map)
map(0x0000, 0xbfff).rom();
map(0xc000, 0xc3ff).ram().share("nvram");
map(0xd000, 0xd7ff).ram();
- map(0xd800, 0xdfff).ram().w(FUNC(punchout_state::armwrest_fg_videoram_w)).share("armwrest_fgram");
- map(0xdff0, 0xdff7).share("spr1_ctrlram");
- map(0xdff8, 0xdffc).share("spr2_ctrlram");
- map(0xdffd, 0xdffd).share("palettebank");
+ map(0xd800, 0xdfef).ram().w(FUNC(punchout_state::armwrest_fg_videoram_w)).share("armwrest_fgram");
+ map(0xdff0, 0xdff7).ram().share("spr1_ctrlram");
+ map(0xdff8, 0xdffc).ram().share("spr2_ctrlram");
+ map(0xdffd, 0xdffd).ram().share("palettebank");
+ map(0xdffe, 0xdfff).ram();
map(0xe000, 0xe7ff).ram().w(FUNC(punchout_state::punchout_spr1_videoram_w)).share("spr1_videoram");
map(0xe800, 0xefff).ram().w(FUNC(punchout_state::punchout_spr2_videoram_w)).share("spr2_videoram");
map(0xf000, 0xf7ff).ram().w(FUNC(punchout_state::punchout_bg_bot_videoram_w)).share("bg_bot_videoram");
diff --git a/src/mame/drivers/realbrk.cpp b/src/mame/drivers/realbrk.cpp
index 5bcc5ab632a..a3b810bc6ac 100644
--- a/src/mame/drivers/realbrk.cpp
+++ b/src/mame/drivers/realbrk.cpp
@@ -170,8 +170,9 @@ void realbrk_state::base_mem(address_map &map)
map(0x600000, 0x601fff).ram().w(FUNC(realbrk_state::vram_w<0>)).share("vram_0"); // Background (0)
map(0x602000, 0x603fff).ram().w(FUNC(realbrk_state::vram_w<1>)).share("vram_1"); // Background (1)
map(0x604000, 0x604fff).ram().w(FUNC(realbrk_state::vram_2_w)).share("vram_2"); // Text (2)
- map(0x605000, 0x61ffff).ram(); //
+ map(0x605000, 0x605fff).ram(); //
map(0x606000, 0x60600f).ram().w(FUNC(realbrk_state::vregs_w)).share("vregs"); // Scroll + Video Regs
+ map(0x606010, 0x61ffff).ram(); //
map(0x800000, 0x800003).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)).umask16(0xff00); // YMZ280
map(0xfe0000, 0xfeffff).ram(); // RAM
}
diff --git a/src/mame/drivers/rocnrope.cpp b/src/mame/drivers/rocnrope.cpp
index 2518a36dfab..88b94eead7e 100644
--- a/src/mame/drivers/rocnrope.cpp
+++ b/src/mame/drivers/rocnrope.cpp
@@ -68,9 +68,10 @@ void rocnrope_state::rocnrope_map(address_map &map)
map(0x3083, 0x3083).portr("DSW1");
map(0x3000, 0x3000).portr("DSW2");
map(0x3100, 0x3100).portr("DSW3");
- map(0x4000, 0x47ff).ram();
map(0x4000, 0x402f).ram().share("spriteram2");
+ map(0x4030, 0x43ff).ram();
map(0x4400, 0x442f).ram().share("spriteram");
+ map(0x4430, 0x47ff).ram();
map(0x4800, 0x4bff).ram().w(FUNC(rocnrope_state::rocnrope_colorram_w)).share("colorram");
map(0x4c00, 0x4fff).ram().w(FUNC(rocnrope_state::rocnrope_videoram_w)).share("videoram");
map(0x5000, 0x5fff).ram();
diff --git a/src/mame/drivers/rohga.cpp b/src/mame/drivers/rohga.cpp
index c6d7bc47dcd..95edf27a66d 100644
--- a/src/mame/drivers/rohga.cpp
+++ b/src/mame/drivers/rohga.cpp
@@ -221,8 +221,9 @@ void rohga_state::wizdfire_map(address_map &map)
map(0x380000, 0x381fff).ram().w(m_decocomn, FUNC(decocomn_device::buffered_palette_w)).share("paletteram");
map(0x390008, 0x390009).w(m_decocomn, FUNC(decocomn_device::palette_dma_w));
- map(0xfdc000, 0xffffff).ram();
+ map(0xfdc000, 0xfe3fff).ram();
map(0xfe4000, 0xfe7fff).rw(FUNC(rohga_state::ioprot_r), FUNC(rohga_state::ioprot_w)).share("prot16ram"); /* Protection device */
+ map(0xfe8000, 0xffffff).ram();
}
diff --git a/src/mame/drivers/scv.cpp b/src/mame/drivers/scv.cpp
index 9c39e51a7d4..4467b27d585 100644
--- a/src/mame/drivers/scv.cpp
+++ b/src/mame/drivers/scv.cpp
@@ -85,7 +85,6 @@ void scv_state::scv_mem(address_map &map)
map(0x3600, 0x3600).w(m_upd1771c, FUNC(upd1771c_device::write));
map(0x8000, 0xff7f).rw(m_cart, FUNC(scv_cart_slot_device::read_cart), FUNC(scv_cart_slot_device::write_cart)); // cartridge
- map(0xff80, 0xffff).ram(); // upd7801 internal RAM
}
diff --git a/src/mame/drivers/senjyo.cpp b/src/mame/drivers/senjyo.cpp
index 552359d2af4..ce047dbcc0b 100644
--- a/src/mame/drivers/senjyo.cpp
+++ b/src/mame/drivers/senjyo.cpp
@@ -131,20 +131,25 @@ void senjyo_state::senjyo_map(address_map &map)
map(0x9400, 0x97ff).ram().w(FUNC(senjyo_state::fgcolorram_w)).share("fgcolorram");
map(0x9800, 0x987f).ram().share("spriteram");
map(0x9c00, 0x9dff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
- map(0x9e00, 0x9e3f).ram();
map(0x9e00, 0x9e1f).ram().share("fgscroll");
map(0x9e20, 0x9e21).ram().share("scrolly3");
/* AM_RANGE(0x9e22, 0x9e23) height of the layer (Senjyo only, fixed at 0x380) */
+ map(0x9e22, 0x9e24).ram();
map(0x9e25, 0x9e25).ram().share("scrollx3");
+ map(0x9e26, 0x9e26).ram();
map(0x9e27, 0x9e27).ram().share("bgstripesram"); /* controls width of background stripes */
map(0x9e28, 0x9e29).ram().share("scrolly2");
/* AM_RANGE(0x9e2a, 0x9e2b) height of the layer (Senjyo only, fixed at 0x200) */
+ map(0x9e2a, 0x9e2c).ram();
map(0x9e2d, 0x9e2d).ram().share("scrollx2");
+ map(0x9e2e, 0x9e2f).ram();
map(0x9e30, 0x9e31).ram().share("scrolly1");
/* AM_RANGE(0x9e32, 0x9e33) height of the layer (Senjyo only, fixed at 0x100) */
+ map(0x9e32, 0x9e34).ram();
map(0x9e35, 0x9e35).ram().share("scrollx1");
/* AM_RANGE(0x9e38, 0x9e38) probably radar y position (Senjyo only, fixed at 0x61) */
/* AM_RANGE(0x9e3d, 0x9e3d) probably radar x position (Senjyo only, 0x00/0xc0 depending on screen flip) */
+ map(0x9e36, 0x9e3f).ram();
map(0xa000, 0xa7ff).ram().w(FUNC(senjyo_state::bg3videoram_w)).share("bg3videoram");
map(0xa800, 0xafff).ram().w(FUNC(senjyo_state::bg2videoram_w)).share("bg2videoram");
map(0xb000, 0xb7ff).ram().w(FUNC(senjyo_state::bg1videoram_w)).share("bg1videoram");
diff --git a/src/mame/drivers/seta.cpp b/src/mame/drivers/seta.cpp
index 2d4477cb459..ae9b89720d7 100644
--- a/src/mame/drivers/seta.cpp
+++ b/src/mame/drivers/seta.cpp
@@ -2049,7 +2049,7 @@ void seta_state::wrofaero_map(address_map &map)
map(0x000000, 0x1fffff).rom(); // ROM (up to 2MB)
map(0x200000, 0x20ffff).ram(); // RAM
map(0x210000, 0x21ffff).ram(); // RAM (gundhara)
- map(0x300000, 0x30ffff).ram(); // RAM (wrofaero only?)
+ map(0x300000, 0x30ffff).ram().share("nvram"); // actually 8K x8 SRAM in zombraid
map(0x400000, 0x400001).portr("P1"); // P1
map(0x400002, 0x400003).portr("P2"); // P2
map(0x400004, 0x400005).portr("COINS"); // Coins
@@ -2086,7 +2086,6 @@ void seta_state::wrofaero_map(address_map &map)
void zombraid_state::zombraid_map(address_map &map)
{
wrofaero_map(map);
- map(0x300000, 0x30ffff).ram().share("nvram"); // actually 8K x8 SRAM
map(0xf00000, 0xf00001).w(FUNC(zombraid_state::gun_w));
map(0xf00002, 0xf00003).r(FUNC(zombraid_state::gun_r));
}
diff --git a/src/mame/drivers/skimaxx.cpp b/src/mame/drivers/skimaxx.cpp
index b2f523cacf4..6b9a540a05f 100644
--- a/src/mame/drivers/skimaxx.cpp
+++ b/src/mame/drivers/skimaxx.cpp
@@ -27,7 +27,7 @@
The sub CPU bit-bangs 30864 bits worth of data to 0x40000003 twice.
- There seems to be a bug in the game code drawing routines, causing objects to have some pixels
- chopped off. This is most noticeable for distant thin objects (falgs, poles of the start banner).
+ chopped off. This is most noticeable for distant thin objects (flags, poles of the start banner).
See maincpu routine at 387B8, specifically the jump at 3880E throws 4 horizontal pixels away.
- The player often disappears (when she's too slow?). Is this normal ?
@@ -378,7 +378,7 @@ void skimaxx_state::m68030_2_map(address_map &map)
map(0xfffc0000, 0xfffcffff).ram().share("share1");
// AM_RANGE(0xfffe0000, 0xffffffff) AM_RAM // I think this is banked with the shared RAM? (see CPU sync routines)
map(0xfffe0000, 0xfffeffff).ram().share("share1"); // HACK
- map(0xfffe0010, 0xfffeffff).ram(); // HACK
+ // map(0xfffe0010, 0xfffeffff).ram(); // HACK
map(0xffff0000, 0xffffffff).ram();
}
diff --git a/src/mame/drivers/ssv.cpp b/src/mame/drivers/ssv.cpp
index b3e49b25fe5..1c18e351e01 100644
--- a/src/mame/drivers/ssv.cpp
+++ b/src/mame/drivers/ssv.cpp
@@ -408,9 +408,8 @@ void ssv_state::ssv_map(address_map &map, u32 rom)
map(0x100000, 0x13ffff).ram().share("spriteram"); /* Sprites */
map(0x140000, 0x15ffff).ram().w("palette", FUNC(palette_device::write16)).share("palette"); /* Palette */
map(0x160000, 0x17ffff).ram(); /* */
+ map(0x1c0000, 0x1c007f).ram().w(FUNC(ssv_state::scroll_w)).share("scroll"); /* Scroll */
map(0x1c0000, 0x1c0001).r(FUNC(ssv_state::vblank_r)); /* Vblank? */
-/**/map(0x1c0002, 0x1c007f).readonly(); /* Scroll */
- map(0x1c0000, 0x1c007f).w(FUNC(ssv_state::scroll_w)).share("scroll"); /* Scroll */
map(0x210002, 0x210003).portr("DSW1");
map(0x210004, 0x210005).portr("DSW2");
map(0x210008, 0x210009).portr("P1");
diff --git a/src/mame/drivers/stfight.cpp b/src/mame/drivers/stfight.cpp
index 3d2a73da697..b72e004eb4b 100644
--- a/src/mame/drivers/stfight.cpp
+++ b/src/mame/drivers/stfight.cpp
@@ -315,7 +315,7 @@ void stfight_state::cshooter_cpu1_map(address_map &map)
map(0xc801, 0xc801).w(FUNC(stfight_state::stfight_bank_w));
map(0xd000, 0xd7ff).ram().w("airraid_vid", FUNC(airraid_video_device::txram_w)).share("txram");
map(0xd800, 0xd80f).ram().w("airraid_vid", FUNC(airraid_video_device::vregs_w)).share("vregs"); // wrong?
- map(0xe000, 0xfdff).ram();
+ map(0xf000, 0xfdff).ram();
map(0xfe00, 0xffff).ram().share("sprite_ram");
}
diff --git a/src/mame/drivers/subs.cpp b/src/mame/drivers/subs.cpp
index b5622eac858..b8239b08832 100644
--- a/src/mame/drivers/subs.cpp
+++ b/src/mame/drivers/subs.cpp
@@ -54,7 +54,7 @@ void subs_state::subs_palette(palette_device &palette) const
void subs_state::main_map(address_map &map)
{
map.global_mask(0x3fff);
- map(0x0000, 0x01ff).ram();
+ map(0x0000, 0x008f).ram();
map(0x0000, 0x0000).w(FUNC(subs_state::noise_reset_w));
map(0x0000, 0x0007).r(FUNC(subs_state::control_r));
map(0x0020, 0x0020).w(FUNC(subs_state::steer_reset_w));
@@ -62,7 +62,8 @@ void subs_state::main_map(address_map &map)
// AM_RANGE(0x0040, 0x0040) AM_WRITE(timer_reset_w)
map(0x0060, 0x0063).r(FUNC(subs_state::options_r));
map(0x0060, 0x006f).w("latch", FUNC(ls259_device::write_a0));
- map(0x0090, 0x009f).share("spriteram");
+ map(0x0090, 0x009f).ram().share("spriteram");
+ map(0x00a0, 0x01ff).ram();
map(0x0800, 0x0bff).ram().share("videoram");
map(0x2000, 0x3fff).rom();
}
diff --git a/src/mame/drivers/subsino2.cpp b/src/mame/drivers/subsino2.cpp
index 2d6931de584..4633a1570bd 100644
--- a/src/mame/drivers/subsino2.cpp
+++ b/src/mame/drivers/subsino2.cpp
@@ -197,6 +197,7 @@ private:
void ramdac_map(address_map &map);
void saklove_io(address_map &map);
void saklove_map(address_map &map);
+ void xplan_common_io(address_map &map);
void xplan_io(address_map &map);
void xplan_map(address_map &map);
void xtrain_io(address_map &map);
@@ -1452,7 +1453,7 @@ void subsino2_state::xplan_map(address_map &map)
map(0xc0000, 0xfffff).rom().region("maincpu", 0);
}
-void subsino2_state::xplan_io(address_map &map)
+void subsino2_state::xplan_common_io(address_map &map)
{
map(0x0000, 0x0000).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
@@ -1479,6 +1480,11 @@ void subsino2_state::xplan_io(address_map &map)
map(0x0304, 0x0304).portr("IN B");
map(0x0305, 0x0305).portr("IN A");
map(0x0306, 0x0306).portr("IN D"); // 0x40 serial out, 0x80 serial in
+}
+
+void subsino2_state::xplan_io(address_map &map)
+{
+ xplan_common_io(map);
// 306 = d, 307 = c, 308 = b, 309 = a
map(0x0306, 0x0309).w(FUNC(subsino2_state::xplan_outputs_w)).share("outputs");
@@ -1524,7 +1530,7 @@ WRITE8_MEMBER(subsino2_state::xtrain_outputs_w)
void subsino2_state::expcard_io(address_map &map)
{
- xplan_io(map);
+ xplan_common_io(map);
// 306 = d, 307 = c, 308 = b, 309 = a
map(0x0306, 0x0309).w(FUNC(subsino2_state::expcard_outputs_w)).share("outputs");
@@ -1532,7 +1538,7 @@ void subsino2_state::expcard_io(address_map &map)
void subsino2_state::xtrain_io(address_map &map)
{
- xplan_io(map);
+ xplan_common_io(map);
// 306 = d, 307 = c, 308 = b, 309 = a
map(0x0306, 0x0309).w(FUNC(subsino2_state::xtrain_outputs_w)).share("outputs");
diff --git a/src/mame/drivers/swtpc09.cpp b/src/mame/drivers/swtpc09.cpp
index 638d3a2d23a..b40975c4be5 100644
--- a/src/mame/drivers/swtpc09.cpp
+++ b/src/mame/drivers/swtpc09.cpp
@@ -69,7 +69,7 @@ void swtpc09_state::mp09_mem(address_map &map)
void swtpc09_state::flex_dmf2_mem(address_map &map)
{
- map(0x00000, 0xfffff).ram().share("mainram"); // by default everything is ram, 1MB ram emulated
+ map(0x00000, 0xfffff).ram(); // by default everything is ram, 1MB ram emulated
map(0xe000, 0xe003).mirror(0xf0000).noprw();
map(0xe004, 0xe005).mirror(0xf0000).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
map(0xe080, 0xe083).mirror(0xf000c).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
@@ -84,7 +84,8 @@ void swtpc09_state::flex_dmf2_mem(address_map &map)
void swtpc09_state::flex_dc4_piaide_mem(address_map &map)
{
- map(0x00000, 0xfffff).ram().share("mainram"); // by default everything is ram, 1MB ram emulated
+ map(0x00000, 0x0efff).ram(); // by default everything is ram, 1MB ram emulated
+ map(0x10000, 0x1efff).ram(); // avoid the s09ram though
map(0xe000, 0xe003).mirror(0xf0000).noprw();
map(0xe004, 0xe005).mirror(0xf0000).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
map(0xe014, 0xe014).mirror(0xf0000).w(FUNC(swtpc09_state::dc4_control_reg_w));
@@ -106,7 +107,7 @@ void swtpc09_state::flex_dc4_piaide_mem(address_map &map)
void swtpc09_state::uniflex_dmf2_mem(address_map &map)
{
- map(0x00000, 0xfffff).ram().share("mainram"); // by default everything is ram, 1MB ram emulated
+ map(0x00000, 0xfffff).ram(); // by default everything is ram, 1MB ram emulated
map(0xe000, 0xe001).mirror(0xf0000).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
map(0xe002, 0xe07f).mirror(0xf0000).noprw();
map(0xe080, 0xe083).mirror(0xf000c).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
@@ -121,7 +122,7 @@ void swtpc09_state::uniflex_dmf2_mem(address_map &map)
void swtpc09_state::uniflex_dmf3_mem(address_map &map)
{
- map(0x00000, 0xfffff).ram().share("mainram"); // by default everything is ram, 1MB ram emulated
+ map(0x00000, 0xfffff).ram(); // by default everything is ram, 1MB ram emulated
map(0xe000, 0xe001).mirror(0xf0000).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
map(0xe002, 0xe07f).mirror(0xf0000).noprw();
map(0xe080, 0xe083).mirror(0xf000c).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
diff --git a/src/mame/drivers/tagteam.cpp b/src/mame/drivers/tagteam.cpp
index 1046292c820..5f707810bfc 100644
--- a/src/mame/drivers/tagteam.cpp
+++ b/src/mame/drivers/tagteam.cpp
@@ -56,9 +56,8 @@ void tagteam_state::main_map(address_map &map)
map(0x2003, 0x2003).portr("DSW2").w(FUNC(tagteam_state::irq_clear_w));
map(0x4000, 0x43ff).rw(FUNC(tagteam_state::mirrorvideoram_r), FUNC(tagteam_state::mirrorvideoram_w));
map(0x4400, 0x47ff).rw(FUNC(tagteam_state::mirrorcolorram_r), FUNC(tagteam_state::mirrorcolorram_w));
- map(0x4800, 0x4fff).readonly();
- map(0x4800, 0x4bff).w(FUNC(tagteam_state::videoram_w)).share("videoram");
- map(0x4c00, 0x4fff).w(FUNC(tagteam_state::colorram_w)).share("colorram");
+ map(0x4800, 0x4bff).ram().w(FUNC(tagteam_state::videoram_w)).share("videoram");
+ map(0x4c00, 0x4fff).ram().w(FUNC(tagteam_state::colorram_w)).share("colorram");
map(0x8000, 0xffff).rom();
}
diff --git a/src/mame/drivers/tankbust.cpp b/src/mame/drivers/tankbust.cpp
index bf7cef07fae..75fd2e791a7 100644
--- a/src/mame/drivers/tankbust.cpp
+++ b/src/mame/drivers/tankbust.cpp
@@ -223,8 +223,7 @@ void tankbust_state::map_cpu2(address_map &map)
map(0x2000, 0x3fff).nopw(); /* garbage, written in initialization loop */
//0x4000 and 0x4040-0x4045 seem to be used (referenced in the code)
map(0x4000, 0x7fff).nopw(); /* garbage, written in initialization loop */
- map(0x8000, 0x87ff).readonly();
- map(0x8000, 0x87ff).writeonly();
+ map(0x8000, 0x87ff).ram();
}
diff --git a/src/mame/drivers/taxidriv.cpp b/src/mame/drivers/taxidriv.cpp
index fc3e0af0d8c..6bf0855e29b 100644
--- a/src/mame/drivers/taxidriv.cpp
+++ b/src/mame/drivers/taxidriv.cpp
@@ -120,12 +120,11 @@ void taxidriv_state::main_map(address_map &map)
map(0xc000, 0xc7ff).ram().share("vram4"); /* radar bitmap */
map(0xc800, 0xcfff).writeonly().share("vram5"); /* "sprite1" bitmap */
map(0xd000, 0xd7ff).writeonly().share("vram6"); /* "sprite2" bitmap */
- map(0xd800, 0xdfff).ram().share("vram7"); /* "sprite3" bitmap */
- map(0xe000, 0xf3ff).readonly();
- map(0xe000, 0xe3ff).writeonly().share("vram1"); /* car tilemap */
- map(0xe400, 0xebff).writeonly().share("vram2"); /* bg1 tilemap */
- map(0xec00, 0xefff).writeonly().share("vram0"); /* fg tilemap */
- map(0xf000, 0xf3ff).writeonly().share("vram3"); /* bg2 tilemap */
+ map(0xd800, 0xdfff).ram().share("vram7"); /* "sprite3" bitmap */
+ map(0xe000, 0xe3ff).ram().share("vram1"); /* car tilemap */
+ map(0xe400, 0xebff).ram().share("vram2"); /* bg1 tilemap */
+ map(0xec00, 0xefff).ram().share("vram0"); /* fg tilemap */
+ map(0xf000, 0xf3ff).ram().share("vram3"); /* bg2 tilemap */
map(0xf400, 0xf403).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xf480, 0xf483).rw("ppi8255_2", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* "sprite1" placement */
map(0xf500, 0xf503).rw("ppi8255_3", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* "sprite2" placement */
diff --git a/src/mame/drivers/tbowl.cpp b/src/mame/drivers/tbowl.cpp
index ee03744b36b..39cf16715fc 100644
--- a/src/mame/drivers/tbowl.cpp
+++ b/src/mame/drivers/tbowl.cpp
@@ -102,9 +102,8 @@ WRITE8_MEMBER(tbowl_state::trigger_nmi)
void tbowl_state::_6206C_map(address_map &map)
{
map(0x0000, 0xbfff).rom();
- map(0xc000, 0xdfff).readonly();
- map(0xc000, 0xd7ff).writeonly();
- map(0xd800, 0xdfff).writeonly().share("spriteram");
+ map(0xc000, 0xd7ff).ram();
+ map(0xd800, 0xdfff).ram().share("spriteram");
map(0xe000, 0xefff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); // 2x palettes, one for each monitor?
map(0xf000, 0xf7ff).bankr("subbank");
map(0xf800, 0xfbff).ram().share("shared_ram");
diff --git a/src/mame/drivers/wecleman.cpp b/src/mame/drivers/wecleman.cpp
index 75ea4e6dd0b..53e4233a2c7 100644
--- a/src/mame/drivers/wecleman.cpp
+++ b/src/mame/drivers/wecleman.cpp
@@ -520,8 +520,9 @@ WRITE16_MEMBER(wecleman_state::blitter_w)
void wecleman_state::wecleman_map(address_map &map)
{
map(0x000000, 0x03ffff).rom(); // ROM (03c000-03ffff used as RAM sometimes!)
- map(0x040000, 0x043fff).ram(); // RAM
- map(0x040494, 0x040495).w(FUNC(wecleman_state::wecleman_videostatus_w)).share("videostatus"); // cloud blending control (HACK)
+ map(0x040000, 0x040493).ram(); // RAM
+ map(0x040494, 0x040495).ram().w(FUNC(wecleman_state::wecleman_videostatus_w)).share("videostatus"); // cloud blending control (HACK)
+ map(0x040496, 0x043fff).ram(); // RAM
map(0x060000, 0x060005).w(FUNC(wecleman_state::wecleman_protection_w)).share("protection_ram");
map(0x060006, 0x060007).r(FUNC(wecleman_state::wecleman_protection_r)); // MCU read
map(0x080000, 0x080011).ram().w(FUNC(wecleman_state::blitter_w)).share("blitter_regs"); // Blitter
diff --git a/src/mame/drivers/wiping.cpp b/src/mame/drivers/wiping.cpp
index a5bdb311fda..04cf412bfc2 100644
--- a/src/mame/drivers/wiping.cpp
+++ b/src/mame/drivers/wiping.cpp
@@ -81,10 +81,10 @@ WRITE_LINE_MEMBER(wiping_state::sound_irq_mask_w)
void wiping_state::main_map(address_map &map)
{
map(0x0000, 0x5fff).rom();
- map(0x8000, 0x83ff).share("videoram");
- map(0x8400, 0x87ff).share("colorram");
- map(0x8800, 0x88ff).share("spriteram");
- map(0x8000, 0x8bff).ram();
+ map(0x8000, 0x83ff).ram().share("videoram");
+ map(0x8400, 0x87ff).ram().share("colorram");
+ map(0x8800, 0x88ff).ram().share("spriteram");
+ map(0x8900, 0x8bff).ram();
map(0x9000, 0x93ff).ram().share("share1");
map(0x9800, 0x9bff).ram().share("share2");
map(0xa000, 0xa007).w("mainlatch", FUNC(ls259_device::write_d0));
diff --git a/src/mame/drivers/yiear.cpp b/src/mame/drivers/yiear.cpp
index effbeaffaa4..ca188c9307f 100644
--- a/src/mame/drivers/yiear.cpp
+++ b/src/mame/drivers/yiear.cpp
@@ -151,10 +151,11 @@ void yiear_state::main_map(address_map &map)
map(0x4e02, 0x4e02).portr("P2");
map(0x4e03, 0x4e03).portr("DSW1");
map(0x4f00, 0x4f00).w("watchdog", FUNC(watchdog_timer_device::reset_w));
- map(0x5000, 0x5fff).ram();
map(0x5000, 0x502f).ram().share("spriteram");
+ map(0x5030, 0x53ff).ram();
map(0x5400, 0x542f).ram().share("spriteram2");
- map(0x5800, 0x5fff).w(FUNC(yiear_state::yiear_videoram_w)).share("videoram");
+ map(0x5430, 0x57ff).ram();
+ map(0x5800, 0x5fff).ram().w(FUNC(yiear_state::yiear_videoram_w)).share("videoram");
map(0x8000, 0xffff).rom();
}
diff --git a/src/mame/drivers/zaccaria.cpp b/src/mame/drivers/zaccaria.cpp
index d3827682f13..56d50686bc4 100644
--- a/src/mame/drivers/zaccaria.cpp
+++ b/src/mame/drivers/zaccaria.cpp
@@ -148,9 +148,8 @@ WRITE_LINE_MEMBER(zaccaria_state::nmi_mask_w)
void zaccaria_state::main_map(address_map &map)
{
map(0x0000, 0x5fff).rom();
- map(0x6000, 0x63ff).readonly();
+ map(0x6000, 0x67ff).ram().w(FUNC(zaccaria_state::videoram_w)).share("videoram"); /* 6400-67ff is 4 bits wide */
map(0x6400, 0x6407).r(FUNC(zaccaria_state::prot1_r));
- map(0x6000, 0x67ff).w(FUNC(zaccaria_state::videoram_w)).share("videoram"); /* 6400-67ff is 4 bits wide */
map(0x6800, 0x683f).w(FUNC(zaccaria_state::attributes_w)).share("attributesram");
map(0x6840, 0x685f).ram().share("spriteram");
map(0x6881, 0x68c0).ram().share("spriteram2");
diff --git a/src/mame/includes/armedf.h b/src/mame/includes/armedf.h
index 53c8c4fd412..3702ee2b129 100644
--- a/src/mame/includes/armedf.h
+++ b/src/mame/includes/armedf.h
@@ -124,6 +124,7 @@ protected:
void armedf_drawgfx(bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx,
uint32_t code,uint32_t color, uint32_t clut,int flipx,int flipy,int offsx,int offsy,
int transparent_color);
+ void common_map(address_map &map);
void armedf_map(address_map &map);
void cclimbr2_map(address_map &map);
void cclimbr2_soundmap(address_map &map);
diff --git a/src/mame/includes/astrocde.h b/src/mame/includes/astrocde.h
index 9b1301b3897..6599ca5d384 100644
--- a/src/mame/includes/astrocde.h
+++ b/src/mame/includes/astrocde.h
@@ -43,6 +43,7 @@ public:
m_astrocade_sound1(*this, "astrocade1"),
m_videoram(*this, "videoram"),
m_protected_ram(*this, "protected_ram"),
+ m_nvram(*this, "nvram"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_soundlatch(*this, "soundlatch"),
@@ -57,6 +58,7 @@ public:
optional_device<astrocade_io_device> m_astrocade_sound1;
optional_shared_ptr<uint8_t> m_videoram;
optional_shared_ptr<uint8_t> m_protected_ram;
+ optional_shared_ptr<uint8_t> m_nvram;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
optional_device<generic_latch_8_device> m_soundlatch;
diff --git a/src/mame/includes/bagman.h b/src/mame/includes/bagman.h
index 21997a4de33..5cd0950f7d8 100644
--- a/src/mame/includes/bagman.h
+++ b/src/mame/includes/bagman.h
@@ -22,8 +22,7 @@ public:
m_tmsprom(*this, "tmsprom"),
m_tmslatch(*this, "tmslatch"),
m_videoram(*this, "videoram"),
- m_colorram(*this, "colorram"),
- m_spriteram(*this, "spriteram")
+ m_colorram(*this, "colorram")
{ }
void botanic(machine_config &config);
@@ -77,7 +76,6 @@ private:
required_shared_ptr<uint8_t> m_videoram;
required_shared_ptr<uint8_t> m_colorram;
- required_shared_ptr<uint8_t> m_spriteram;
bool m_irq_mask;
bool m_video_enable;
diff --git a/src/mame/includes/eprom.h b/src/mame/includes/eprom.h
index f7e15763e01..53a76497084 100644
--- a/src/mame/includes/eprom.h
+++ b/src/mame/includes/eprom.h
@@ -25,6 +25,7 @@ public:
m_alpha_tilemap(*this, "alpha"),
m_mob(*this, "mob"),
m_jsa(*this, "jsa"),
+ m_share1(*this, "share1"),
m_adc(*this, "adc"),
m_extra(*this, "extra"),
m_palette(*this, "palette"),
@@ -43,7 +44,6 @@ protected:
DECLARE_READ16_MEMBER(special_port1_r);
DECLARE_READ8_MEMBER(adc_r);
DECLARE_WRITE16_MEMBER(eprom_latch_w);
- DECLARE_READ16_MEMBER(sync_r);
template<bool maincpu> DECLARE_WRITE16_MEMBER(sync_w);
TILE_GET_INFO_MEMBER(get_alpha_tile_info);
TILE_GET_INFO_MEMBER(get_playfield_tile_info);
@@ -62,9 +62,9 @@ private:
required_device<tilemap_device> m_alpha_tilemap;
required_device<atari_motion_objects_device> m_mob;
required_device<atari_jsa_base_device> m_jsa;
+ required_shared_ptr<uint16_t> m_share1;
int m_screen_intensity;
int m_video_disable;
- uint16_t m_sync_data;
optional_device<adc0808_device> m_adc;
optional_device<cpu_device> m_extra;
required_device<palette_device> m_palette;
diff --git a/src/mame/includes/equites.h b/src/mame/includes/equites.h
index 7638e32aa25..92e503bf548 100644
--- a/src/mame/includes/equites.h
+++ b/src/mame/includes/equites.h
@@ -132,6 +132,7 @@ protected:
virtual void machine_reset() override;
void common_sound(machine_config &config);
void equites_map(address_map &map);
+ void equites_common_map(address_map &map);
void mcu_map(address_map &map);
void sound_map(address_map &map);
void sound_portmap(address_map &map);
diff --git a/src/mame/includes/gaelco3d.h b/src/mame/includes/gaelco3d.h
index 9ed14ef3872..f69298b3653 100644
--- a/src/mame/includes/gaelco3d.h
+++ b/src/mame/includes/gaelco3d.h
@@ -33,7 +33,6 @@ public:
: driver_device(mconfig, type, tag)
, m_adsp_ram_base(*this, "adsp_ram_base")
, m_m68k_ram_base(*this, "m68k_ram_base", 0)
- , m_tms_comm_base(*this, "tms_comm_base", 0)
, m_adsp_control_regs(*this, "adsp_regs")
, m_adsp_fastram_base(*this, "adsp_fastram")
, m_maincpu(*this, "maincpu")
@@ -104,7 +103,6 @@ private:
required_shared_ptr<uint32_t> m_adsp_ram_base;
required_shared_ptr<uint16_t> m_m68k_ram_base;
- required_shared_ptr<uint16_t> m_tms_comm_base;
required_shared_ptr<uint16_t> m_adsp_control_regs;
required_shared_ptr<uint16_t> m_adsp_fastram_base;
required_device<cpu_device> m_maincpu;
@@ -154,7 +152,6 @@ private:
DECLARE_WRITE_LINE_MEMBER(tms_reset_w);
DECLARE_WRITE_LINE_MEMBER(tms_irq_w);
DECLARE_WRITE_LINE_MEMBER(tms_control3_w);
- DECLARE_WRITE16_MEMBER(tms_comm_w);
DECLARE_WRITE16_MEMBER(adsp_control_w);
DECLARE_WRITE16_MEMBER(adsp_rombank_w);
DECLARE_WRITE_LINE_MEMBER(radikalb_lamp_w);
diff --git a/src/mame/video/bagman.cpp b/src/mame/video/bagman.cpp
index 6b0e9036074..6d65bc6ea9c 100644
--- a/src/mame/video/bagman.cpp
+++ b/src/mame/video/bagman.cpp
@@ -114,14 +114,15 @@ void bagman_state::video_start()
void bagman_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- for (int offs = m_spriteram.bytes() - 4;offs >= 0;offs -= 4)
+ // Spriteram is at the start of the colorram
+ for (int offs = 0x20 - 4;offs >= 0;offs -= 4)
{
int sx,sy,flipx,flipy;
- sx = m_spriteram[offs + 3];
- sy = 256 - m_spriteram[offs + 2] - 16;
- flipx = m_spriteram[offs] & 0x40;
- flipy = m_spriteram[offs] & 0x80;
+ sx = m_colorram[offs + 3];
+ sy = 256 - m_colorram[offs + 2] - 16;
+ flipx = m_colorram[offs] & 0x40;
+ flipy = m_colorram[offs] & 0x80;
if (flip_screen())
{
sx = 256 - sx - 15;
@@ -130,11 +131,11 @@ void bagman_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
flipy = !flipy;
}
- if (m_spriteram[offs + 2] && m_spriteram[offs + 3])
+ if (m_colorram[offs + 2] && m_colorram[offs + 3])
m_gfxdecode->gfx(1)->transpen(bitmap,
cliprect,
- (m_spriteram[offs] & 0x3f) + 2 * (m_spriteram[offs + 1] & 0x20),
- m_spriteram[offs + 1] & 0x1f,
+ (m_colorram[offs] & 0x3f) + 2 * (m_colorram[offs + 1] & 0x20),
+ m_colorram[offs + 1] & 0x1f,
flipx,flipy,
sx,sy,0);
}
diff --git a/src/mame/video/liberatr.cpp b/src/mame/video/liberatr.cpp
index f4d59688d0d..eb24737053d 100644
--- a/src/mame/video/liberatr.cpp
+++ b/src/mame/video/liberatr.cpp
@@ -42,6 +42,7 @@ WRITE8_MEMBER( liberatr_state::bitmap_w )
m_bitmapram[offset] = data;
+ offset += 3;
x = (offset & 0x3f) << 2;
y = offset >> 6;