From: Toni Wilen Date: Sat, 16 Dec 2023 18:40:23 +0000 (+0200) Subject: Do not cross 0x08000000 unless allocated size is larger. X-Git-Tag: 5.1.0~3 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=966a53b038104023f0e68be5f3b99c7ab642f97f;p=francis%2Fwinuae.git Do not cross 0x08000000 unless allocated size is larger. --- diff --git a/cpuboard.cpp b/cpuboard.cpp index a73baa64..2aebb189 100644 --- a/cpuboard.cpp +++ b/cpuboard.cpp @@ -1687,7 +1687,12 @@ void cpuboard_map(void) if (is_mtec_ematrix530(&currprefs) || is_sx32pro(&currprefs) || is_apollo(&currprefs) || is_dce_typhoon2(&currprefs)) { if (cpuboardmem1_bank.allocated_size) { - map_banks(&cpuboardmem1_bank, cpuboardmem1_bank.start >> 16, 0x08000000 >> 16, cpuboardmem1_bank.allocated_size >> 16); + uae_u32 max = 0x08000000; + // don't cross 0x08000000 + if (cpuboardmem1_bank.start < 0x08000000 && cpuboardmem1_bank.start + max > 0x08000000 && cpuboardmem1_bank.start + cpuboardmem1_bank.allocated_size < 0x08000000) { + max = 0x08000000 - cpuboardmem1_bank.start; + } + map_banks(&cpuboardmem1_bank, cpuboardmem1_bank.start >> 16, max >> 16, cpuboardmem1_bank.allocated_size >> 16); } if (cpuboardmem2_bank.allocated_size && cpuboardmem2_bank.start < 0x18000000) { map_banks(&cpuboardmem2_bank, cpuboardmem2_bank.start >> 16, cpuboardmem2_bank.allocated_size >> 16, 0);