]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Fix PPC access to gfx boards.
authorToni Wilen <twilen@winuae.net>
Sun, 1 Nov 2020 18:08:09 +0000 (20:08 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 1 Nov 2020 18:08:09 +0000 (20:08 +0200)
gfxboard.cpp
memory.cpp

index 97ad05c10fa246d40383b69df9899b62629156c5..89d3b4516e2653ef1ce5f183f43f484bee0becae 100644 (file)
@@ -396,7 +396,7 @@ static const addrbank tmpl_gfxboard_bank_memory_nojit = {
        gfxboard_lput_mem_nojit, gfxboard_wput_mem_nojit, gfxboard_bput_mem_nojit,
        gfxboard_xlate, gfxboard_check, NULL, NULL, NULL,
        gfxboard_lget_mem_nojit, gfxboard_wget_mem_nojit,
-       ABFLAG_RAM | ABFLAG_THREADSAFE | ABFLAG_CACHE_ENABLE_ALL, S_READ | S_N_ADDR, S_WRITE | S_N_ADDR
+       ABFLAG_RAM | ABFLAG_THREADSAFE | ABFLAG_PPCIOSPACE | ABFLAG_CACHE_ENABLE_ALL, S_READ | S_N_ADDR, S_WRITE | S_N_ADDR
 };
 
 static const addrbank tmpl_gfxboard_bank_wbsmemory = {
@@ -444,7 +444,7 @@ static const addrbank tmpl_gfxboard_bank_vram_pcem = {
        gfxboard_lput_vram_pcem, gfxboard_wput_vram_pcem, gfxboard_bput_vram_pcem,
        gfxboard_xlate, gfxboard_check, NULL, NULL, _T("PCem SVGA VRAM"),
        gfxboard_lget_vram_pcem, gfxboard_wget_vram_pcem,
-       ABFLAG_IO | ABFLAG_SAFE, S_READ | S_N_ADDR, S_WRITE | S_N_ADDR
+       ABFLAG_RAM | ABFLAG_THREADSAFE | ABFLAG_PPCIOSPACE, S_READ | S_N_ADDR, S_WRITE | S_N_ADDR
 };
 
 static const addrbank tmpl_gfxboard_bank_vram_normal_pcem = {
@@ -455,7 +455,6 @@ static const addrbank tmpl_gfxboard_bank_vram_normal_pcem = {
        ABFLAG_RAM | ABFLAG_THREADSAFE | ABFLAG_PPCIOSPACE, S_READ, S_WRITE
 };
 
-
 static const addrbank tmpl_gfxboard_bank_vram_wordswap_pcem = {
        gfxboard_lget_vram_wordswap_pcem, gfxboard_wget_vram_wordswap_pcem, gfxboard_bget_vram_wordswap_pcem,
        gfxboard_lput_vram_wordswap_pcem, gfxboard_wput_vram_wordswap_pcem, gfxboard_bput_vram_wordswap_pcem,
@@ -2407,7 +2406,8 @@ static void copyvrambank(addrbank *dst, const addrbank *src, bool unsafe)
        dst->jit_write_flag = src->jit_write_flag;
        if (unsafe) {
                dst->jit_read_flag |= S_READ | S_N_ADDR;
-               dst->jit_write_flag |= S_READ | S_N_ADDR;
+               dst->jit_write_flag |= S_WRITE | S_N_ADDR;
+               dst->flags |= ABFLAG_PPCIOSPACE;
        }
 }
 
index fe4b315c599c169e5d4bcb35c3f69d79bbdbd5a7..0af817b8091affc097c3dfab6f832b3994bcd2ef 100644 (file)
@@ -3202,7 +3202,7 @@ static void ppc_generate_map_banks(addrbank *bank, int start, int size)
                        baseaddr += bankaddr - bank->start;
                }
                // ABFLAG_PPCIOSPACE = map as indirect even if baseaddr is non-NULL
-               ppc_map_banks(bankaddr, banksize, bank->name, (bank->flags & ABFLAG_PPCIOSPACE) ? NULL: baseaddr, bank == &dummy_bank);
+               ppc_map_banks(bankaddr, banksize, bank->name, (bank->flags & ABFLAG_PPCIOSPACE) ? NULL : baseaddr, bank == &dummy_bank);
        }
 }
 #endif