summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2022-10-26 17:03:50 +0200
committer Olivier Galibert <galibert@pobox.com>2022-10-27 08:13:55 +0200
commitf726eeeee0a41aef1d333609da9ea2d474d21691 (patch)
tree8ea209ccda5992faccee091ac4e3c3102b79ee9d /src/emu
parentcf29455ae1d84d73cb8fea22a1297d234abf28f8 (diff)
emumem: Fix range tracking when creating a subdispatch
Diffstat (limited to 'src/emu')
-rw-r--r--src/emu/emumem_hedr.ipp4
-rw-r--r--src/emu/emumem_hedw.ipp4
2 files changed, 8 insertions, 0 deletions
diff --git a/src/emu/emumem_hedr.ipp b/src/emu/emumem_hedr.ipp
index 0efc37a478f..d24dc44a7c1 100644
--- a/src/emu/emumem_hedr.ipp
+++ b/src/emu/emumem_hedr.ipp
@@ -201,6 +201,8 @@ template<int HighBits, int Width, int AddrShift> void handler_entry_read_dispatc
cur->unref();
m_u_dispatch[entry] = subdispatch;
subdispatch->populate_nomirror(start, end, ostart, oend, handler);
+ range_cut_before(((entry - 1) << LowBits) - 1, entry);
+ range_cut_after((entry + 1) << LowBits, entry);
}
}
@@ -276,6 +278,8 @@ template<int HighBits, int Width, int AddrShift> void handler_entry_read_dispatc
cur->unref();
m_u_dispatch[entry] = subdispatch;
subdispatch->populate_mirror(start, end, ostart, oend, mirror, handler);
+ range_cut_before(((entry - 1) << LowBits) - 1, entry);
+ range_cut_after((entry + 1) << LowBits, entry);
}
}
diff --git a/src/emu/emumem_hedw.ipp b/src/emu/emumem_hedw.ipp
index a45b5eceef9..4744a64fa39 100644
--- a/src/emu/emumem_hedw.ipp
+++ b/src/emu/emumem_hedw.ipp
@@ -200,6 +200,8 @@ template<int HighBits, int Width, int AddrShift> void handler_entry_write_dispat
cur->unref();
m_u_dispatch[entry] = subdispatch;
subdispatch->populate_nomirror(start, end, ostart, oend, handler);
+ range_cut_before(((entry - 1) << LowBits) - 1, entry);
+ range_cut_after((entry + 1) << LowBits, entry);
}
}
@@ -275,6 +277,8 @@ template<int HighBits, int Width, int AddrShift> void handler_entry_write_dispat
cur->unref();
m_u_dispatch[entry] = subdispatch;
subdispatch->populate_mirror(start, end, ostart, oend, mirror, handler);
+ range_cut_before(((entry - 1) << LowBits) - 1, entry);
+ range_cut_after((entry + 1) << LowBits, entry);
}
}