From 742a3a92b393f10b8d43bb791627369923c72f2a Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Wed, 22 Jun 2011 16:23:32 +0000 Subject: [PATCH] Fix for remaining issues with validation of rom regions (no whatsnew) --- src/emu/dimemory.c | 6 +++++- src/emu/memory.c | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/emu/dimemory.c b/src/emu/dimemory.c index 9b793f9d45f..8e1f43a0b08 100644 --- a/src/emu/dimemory.c +++ b/src/emu/dimemory.c @@ -318,7 +318,11 @@ bool device_memory_interface::interface_validity_check(emu_options &options, con { astring fulltag; astring regiontag; - device().siblingtag(regiontag, entry->m_region); + if (strchr(entry->m_region,':')) { + regiontag = entry->m_region; + } else { + device().siblingtag(regiontag, entry->m_region); + } rom_region_name(fulltag, &driver, source, romp); if (fulltag.cmp(regiontag) == 0) { diff --git a/src/emu/memory.c b/src/emu/memory.c index 5d0b10bc3b0..2f19d82bfa3 100644 --- a/src/emu/memory.c +++ b/src/emu/memory.c @@ -2136,7 +2136,11 @@ void address_space::prepare_map() if (entry->m_region != NULL && entry->m_share == NULL && entry->m_baseptr == NULL) { astring regiontag; - m_device.siblingtag(regiontag, entry->m_region); + if (strchr(entry->m_region,':')) { + regiontag = entry->m_region; + } else { + m_device.siblingtag(regiontag, entry->m_region); + } const memory_region *region = machine().region(regiontag.cstr()); if (region == NULL) fatalerror("Error: device '%s' %s space memory map entry %X-%X references non-existant region \"%s\"", m_device.tag(), m_name, entry->m_addrstart, entry->m_addrend, entry->m_region); @@ -2149,7 +2153,11 @@ void address_space::prepare_map() // convert any region-relative entries to their memory pointers if (entry->m_region != NULL) { astring regiontag; - m_device.siblingtag(regiontag, entry->m_region); + if (strchr(entry->m_region,':')) { + regiontag = entry->m_region; + } else { + m_device.siblingtag(regiontag, entry->m_region); + } entry->m_memory = machine().region(regiontag.cstr())->base() + entry->m_rgnoffs; } }