Fix for remaining issues with validation of rom regions (no whatsnew)

This commit is contained in:
Miodrag Milanovic 2011-06-22 16:23:32 +00:00
parent 2e199e3e83
commit 742a3a92b3
2 changed files with 15 additions and 3 deletions

View File

@ -318,7 +318,11 @@ bool device_memory_interface::interface_validity_check(emu_options &options, con
{ {
astring fulltag; astring fulltag;
astring regiontag; astring regiontag;
if (strchr(entry->m_region,':')) {
regiontag = entry->m_region;
} else {
device().siblingtag(regiontag, entry->m_region); device().siblingtag(regiontag, entry->m_region);
}
rom_region_name(fulltag, &driver, source, romp); rom_region_name(fulltag, &driver, source, romp);
if (fulltag.cmp(regiontag) == 0) if (fulltag.cmp(regiontag) == 0)
{ {

View File

@ -2136,7 +2136,11 @@ void address_space::prepare_map()
if (entry->m_region != NULL && entry->m_share == NULL && entry->m_baseptr == NULL) if (entry->m_region != NULL && entry->m_share == NULL && entry->m_baseptr == NULL)
{ {
astring regiontag; astring regiontag;
if (strchr(entry->m_region,':')) {
regiontag = entry->m_region;
} else {
m_device.siblingtag(regiontag, entry->m_region); m_device.siblingtag(regiontag, entry->m_region);
}
const memory_region *region = machine().region(regiontag.cstr()); const memory_region *region = machine().region(regiontag.cstr());
if (region == NULL) 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); 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 // convert any region-relative entries to their memory pointers
if (entry->m_region != NULL) { if (entry->m_region != NULL) {
astring regiontag; astring regiontag;
if (strchr(entry->m_region,':')) {
regiontag = entry->m_region;
} else {
m_device.siblingtag(regiontag, entry->m_region); m_device.siblingtag(regiontag, entry->m_region);
}
entry->m_memory = machine().region(regiontag.cstr())->base() + entry->m_rgnoffs; entry->m_memory = machine().region(regiontag.cstr())->base() + entry->m_rgnoffs;
} }
} }