summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/addrmap.cpp
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2025-06-10 09:33:15 +0200
committer Olivier Galibert <galibert@pobox.com>2025-06-10 09:33:15 +0200
commit542f7da17a22773c9dbbb03ae538b77dae0cbfc0 (patch)
tree05427e0eaf21d82f1042176fae3234714e627a13 /src/emu/addrmap.cpp
parentb608cc9288361f8aaf0e66865548f22af860394c (diff)
emumem: correct shifting direction on masks when importing a map with active umask
Diffstat (limited to 'src/emu/addrmap.cpp')
-rw-r--r--src/emu/addrmap.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/emu/addrmap.cpp b/src/emu/addrmap.cpp
index 81e91457e71..985d93ea254 100644
--- a/src/emu/addrmap.cpp
+++ b/src/emu/addrmap.cpp
@@ -1008,17 +1008,17 @@ void address_map::import_submaps(running_machine &machine, device_t &owner, int
{
subentry->m_addrstart = ((subentry->m_addrstart * ratio) >> -addr_shift) + entry->m_addrstart;
subentry->m_addrend = (((subentry->m_addrend + 1) * ratio - 1) >> -addr_shift) + entry->m_addrstart;
- subentry->m_addrmirror = ((subentry->m_addrmirror / ratio) << -addr_shift) | entry->m_addrmirror;
- subentry->m_addrmask = ((subentry->m_addrmask / ratio) << -addr_shift) | entry->m_addrmask;
- subentry->m_addrselect = ((subentry->m_addrselect / ratio) << -addr_shift) | entry->m_addrselect;
+ subentry->m_addrmirror = ((subentry->m_addrmirror * ratio) << -addr_shift) | entry->m_addrmirror;
+ subentry->m_addrmask = ((subentry->m_addrmask * ratio) << -addr_shift) | entry->m_addrmask;
+ subentry->m_addrselect = ((subentry->m_addrselect * ratio) << -addr_shift) | entry->m_addrselect;
}
else
{
subentry->m_addrstart = subentry->m_addrstart * ratio + entry->m_addrstart;
subentry->m_addrend = (subentry->m_addrend + 1) * ratio - 1 + entry->m_addrstart;
- subentry->m_addrmirror = (subentry->m_addrmirror / ratio) | entry->m_addrmirror;
- subentry->m_addrmask = (subentry->m_addrmask / ratio) | entry->m_addrmask;
- subentry->m_addrselect = (subentry->m_addrselect / ratio) | entry->m_addrselect;
+ subentry->m_addrmirror = (subentry->m_addrmirror * ratio) | entry->m_addrmirror;
+ subentry->m_addrmask = (subentry->m_addrmask * ratio) | entry->m_addrmask;
+ subentry->m_addrselect = (subentry->m_addrselect * ratio) | entry->m_addrselect;
}
if (subentry->m_addrstart > entry->m_addrend)