mirror of
https://github.com/holub/mame
synced 2025-07-05 09:57:47 +03:00
Fix for remaining issues with validation of rom regions (no whatsnew)
This commit is contained in:
parent
2e199e3e83
commit
742a3a92b3
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user