aboutsummaryrefslogtreecommitdiff
path: root/plugins/gpu_unai
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/gpu_unai')
-rw-r--r--plugins/gpu_unai/gpu.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/plugins/gpu_unai/gpu.cpp b/plugins/gpu_unai/gpu.cpp
index 3e69aaa..f9f7c41 100644
--- a/plugins/gpu_unai/gpu.cpp
+++ b/plugins/gpu_unai/gpu.cpp
@@ -182,6 +182,10 @@ long GPU_freeze(unsigned int bWrite, GPUFreeze_t* p2)
if (bWrite)
{
p2->GPU_gp1 = GPU_GP1;
+ memset(p2->Control, 0, sizeof(p2->Control));
+ p2->Control[5] = DisplayArea[0] | (DisplayArea[1] << 10);
+ p2->Control[7] = DisplayArea[4] | (DisplayArea[5] << 10);
+ p2->Control[8] = ((GPU_GP1 >> 17) & 0x3f) | ((GPU_GP1 >> 10) & 0x40);
memcpy(p2->FrameBuffer, (u16*)GPU_FrameBuffer, FRAME_BUFFER_SIZE);
return (1);
}
@@ -189,6 +193,10 @@ long GPU_freeze(unsigned int bWrite, GPUFreeze_t* p2)
{
GPU_GP1 = p2->GPU_gp1;
memcpy((u16*)GPU_FrameBuffer, p2->FrameBuffer, FRAME_BUFFER_SIZE);
+ GPU_writeStatus((5 << 24) | p2->Control[5]);
+ GPU_writeStatus((7 << 24) | p2->Control[7]);
+ GPU_writeStatus((8 << 24) | p2->Control[8]);
+ gpuSetTexture(GPU_GP1);
return (1);
}
return (0);