From: notaz Date: Tue, 6 Dec 2011 09:16:40 +0000 (+0200) Subject: gpu_neon: keep texture bits in sync X-Git-Tag: r12~34 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=commitdiff_plain;h=a3a9f519f75d195891d466f77ceb43f90e24f713 gpu_neon: keep texture bits in sync ex_regs must be updated as they are saved and sent to GPU on frameskip --- diff --git a/plugins/gpu_neon/gpu.c b/plugins/gpu_neon/gpu.c index 7f5a8a92..a5d0b876 100644 --- a/plugins/gpu_neon/gpu.c +++ b/plugins/gpu_neon/gpu.c @@ -283,24 +283,13 @@ static int check_cmd(uint32_t *data, int count) //printf(" %3d: %02x %d\n", pos, cmd, len); if ((cmd & 0xf4) == 0x24) { // flat textured prim - gpu.status.reg &= ~0x1ff; - gpu.status.reg |= list[4] & 0x1ff; + gpu.ex_regs[1] &= ~0x1ff; + gpu.ex_regs[1] |= list[4] & 0x1ff; } else if ((cmd & 0xf4) == 0x34) { // shaded textured prim - gpu.status.reg &= ~0x1ff; - gpu.status.reg |= list[5] & 0x1ff; - } - else switch (cmd) - { - case 0xe1: - gpu.status.reg &= ~0x7ff; - gpu.status.reg |= list[0] & 0x7ff; - break; - case 0xe6: - gpu.status.reg &= ~0x1800; - gpu.status.reg |= (list[0] & 3) << 11; - break; + gpu.ex_regs[1] &= ~0x1ff; + gpu.ex_regs[1] |= list[5] & 0x1ff; } if (2 <= cmd && cmd < 0xc0) vram_dirty = 1; @@ -331,6 +320,10 @@ static int check_cmd(uint32_t *data, int count) break; } + gpu.status.reg &= ~0x1fff; + gpu.status.reg |= gpu.ex_regs[1] & 0x7ff; + gpu.status.reg |= (gpu.ex_regs[6] & 3) << 11; + if (gpu.frameskip.active) renderer_sync_ecmds(gpu.ex_regs); gpu.state.fb_dirty |= vram_dirty;