From: Toni Wilen Date: Sun, 1 Nov 2020 18:08:09 +0000 (+0200) Subject: Fix PPC access to gfx boards. X-Git-Tag: 4900~264 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=cf73569359b9937b9bf059ed77d02ad19fb86f33;p=francis%2Fwinuae.git Fix PPC access to gfx boards. --- diff --git a/gfxboard.cpp b/gfxboard.cpp index 97ad05c1..89d3b451 100644 --- a/gfxboard.cpp +++ b/gfxboard.cpp @@ -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; } } diff --git a/memory.cpp b/memory.cpp index fe4b315c..0af817b8 100644 --- a/memory.cpp +++ b/memory.cpp @@ -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