diff --git a/src/emu/emumem_hedr.ipp b/src/emu/emumem_hedr.ipp index 7be3afc6727..9e9967585aa 100644 --- a/src/emu/emumem_hedr.ipp +++ b/src/emu/emumem_hedr.ipp @@ -593,10 +593,11 @@ template void handler_entry_read_dispatc } else if(lowbits != LowBits) { u32 dt = lowbits - LowBits; u32 ne = 1 << dt; + u32 ee = end_entry - start_entry; if(m_view) { auto filter = [s = m_view->m_addrstart, e = m_view->m_addrend] (handler_entry::range r) { r.intersect(s, e); return r; }; - for(offs_t entry = start_entry; entry <= end_entry; entry++) { + for(offs_t entry = 0; entry <= ee; entry++) { dispatch[entry]->ref(ne); u32 e0 = (entry << dt) & BITMASK; for(offs_t e = 0; e != ne; e++) { @@ -609,7 +610,7 @@ template void handler_entry_read_dispatc } } } else { - for(offs_t entry = start_entry; entry <= end_entry; entry++) { + for(offs_t entry = 0; entry <= ee; entry++) { dispatch[entry]->ref(ne); u32 e0 = (entry << dt) & BITMASK; for(offs_t e = 0; e != ne; e++) { diff --git a/src/emu/emumem_hedw.ipp b/src/emu/emumem_hedw.ipp index dae4e91f802..a9b698147ea 100644 --- a/src/emu/emumem_hedw.ipp +++ b/src/emu/emumem_hedw.ipp @@ -592,10 +592,11 @@ template void handler_entry_write_dispat } else if(lowbits != LowBits) { u32 dt = lowbits - LowBits; u32 ne = 1 << dt; + u32 ee = end_entry - start_entry; if(m_view) { auto filter = [s = m_view->m_addrstart, e = m_view->m_addrend] (handler_entry::range r) { r.intersect(s, e); return r; }; - for(offs_t entry = start_entry; entry <= end_entry; entry++) { + for(offs_t entry = 0; entry <= ee; entry++) { dispatch[entry]->ref(ne); u32 e0 = (entry << dt) & BITMASK; for(offs_t e = 0; e != ne; e++) { @@ -608,7 +609,7 @@ template void handler_entry_write_dispat } } } else { - for(offs_t entry = start_entry; entry <= end_entry; entry++) { + for(offs_t entry = 0; entry <= ee; entry++) { dispatch[entry]->ref(ne); u32 e0 = (entry << dt) & BITMASK; for(offs_t e = 0; e != ne; e++) {