From 966a53b038104023f0e68be5f3b99c7ab642f97f Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sat, 16 Dec 2023 20:40:23 +0200 Subject: [PATCH] Do not cross 0x08000000 unless allocated size is larger. --- cpuboard.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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); -- 2.47.3