gfxmem_banks[0]->start = restore_u32 ();
rtarea_base = restore_u32 ();
fastmem_bank[1].start = restore_u32 ();
- if (rtarea_base != 0 && rtarea_base != RTAREA_DEFAULT && rtarea_base != RTAREA_BACKUP && rtarea_base != RTAREA_BACKUP_2)
+ if (rtarea_base != 0 && rtarea_base != RTAREA_DEFAULT && rtarea_base != RTAREA_BACKUP && rtarea_base != RTAREA_BACKUP_2 && (rtarea_base < 0xe90000 || rtarea_base >= 0xf00000))
rtarea_base = 0;
return src;
}
#endif
}
+static void map_banks_set(addrbank *bank, int start, int size, int realsize)
+{
+ bank->startmask = start << 16;
+ map_banks(bank, start, size, realsize);
+}
+
static void allocate_memory (void)
{
bogomem_aliasing = 0;
protect_roms (false);
restore_ram (bootrom_filepos, rtarea_bank.baseaddr);
protect_roms (true);
+ if (currprefs.uaeboard >= 2) {
+ map_banks_set(&rtarea_bank, rtarea_base >> 16, 1, 0);
+ }
}
restore_ram (chip_filepos, chipmem_bank.baseaddr);
if (bogomem_bank.allocated_size > 0)
m68k_setpc_normal (m68k_getpc ());
}
-static void map_banks_set(addrbank *bank, int start, int size, int realsize)
-{
- bank->startmask = start << 16;
- map_banks(bank, start, size, realsize);
-}
-
void memory_clear (void)
{
mem_hardreset = 0;