mirror of
https://github.com/holub/mame
synced 2025-04-20 23:42:22 +03:00
view: take into account the pre-offsetting when expanding handlers
This commit is contained in:
parent
c83fb1b2fa
commit
cc66d8797b
@ -593,10 +593,11 @@ template<int HighBits, int Width, int AddrShift> 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<int HighBits, int Width, int AddrShift> 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++) {
|
||||
|
@ -592,10 +592,11 @@ template<int HighBits, int Width, int AddrShift> 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<int HighBits, int Width, int AddrShift> 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++) {
|
||||
|
Loading…
Reference in New Issue
Block a user