]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Do not cross 0x08000000 unless allocated size is larger.
authorToni Wilen <twilen@winuae.net>
Sat, 16 Dec 2023 18:40:23 +0000 (20:40 +0200)
committerToni Wilen <twilen@winuae.net>
Sat, 16 Dec 2023 18:40:23 +0000 (20:40 +0200)
cpuboard.cpp

index a73baa6496cd46f84144e52122ae7a88f584b352..2aebb189daaff24ae336b7584a3a34f1ff15ca06 100644 (file)
@@ -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);