notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
drc: remove leftover printf
[pcsx_rearmed.git]
/
plugins
/
gpu_unai
/
gpu.cpp
diff --git
a/plugins/gpu_unai/gpu.cpp
b/plugins/gpu_unai/gpu.cpp
index
3e69aaa
..
abe7638
100644
(file)
--- a/
plugins/gpu_unai/gpu.cpp
+++ b/
plugins/gpu_unai/gpu.cpp
@@
-94,7
+94,8
@@
u32 lInc;
u32 tInc, tMsk;
GPUPacket PacketBuffer;
u32 tInc, tMsk;
GPUPacket PacketBuffer;
-u16 GPU_FrameBuffer[FRAME_BUFFER_SIZE/2] __attribute__((aligned(16))); // FRAME_BUFFER_SIZE is defined in bytes
+// FRAME_BUFFER_SIZE is defined in bytes; 512K is guard memory for out of range reads
+u16 GPU_FrameBuffer[(FRAME_BUFFER_SIZE+512*1024)/2] __attribute__((aligned(16)));
u32 GPU_GP1;
///////////////////////////////////////////////////////////////////////////////
u32 GPU_GP1;
///////////////////////////////////////////////////////////////////////////////
@@
-182,6
+183,10
@@
long GPU_freeze(unsigned int bWrite, GPUFreeze_t* p2)
if (bWrite)
{
p2->GPU_gp1 = GPU_GP1;
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);
}
memcpy(p2->FrameBuffer, (u16*)GPU_FrameBuffer, FRAME_BUFFER_SIZE);
return (1);
}
@@
-189,6
+194,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_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);
return (1);
}
return (0);