From: Toni Wilen Date: Sat, 22 May 2021 12:20:27 +0000 (+0300) Subject: Return zero when executing code in ROM and CPU accesses non-existing address space. X-Git-Tag: 4900~131 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=bd181f518bb185af86ef958eefbb7a4a7286155f;p=francis%2Fwinuae.git Return zero when executing code in ROM and CPU accesses non-existing address space. --- diff --git a/memory.cpp b/memory.cpp index 3a4c26ac..4948f183 100644 --- a/memory.cpp +++ b/memory.cpp @@ -334,6 +334,12 @@ uae_u32 dummy_get_safe(uaecptr addr, int size, bool inst, uae_u32 defvalue) if (currprefs.cs_unmapped_space == 2) return 0xffffffff & mask; if ((currprefs.cpu_model <= 68010) || (currprefs.cpu_model == 68020 && (currprefs.chipset_mask & CSMASK_AGA) && currprefs.address_space_24)) { + // if executed from ROM: always return zero + uaecptr pc = m68k_getpc(); + addrbank *ab = &get_mem_bank(pc); + if (ab->flags & ABFLAG_ROM) { + return 0; + } if (size == sz_long) { v = regs.irc & 0xffff; if (addr & 1)