Stircrazy69 / pcsx2

Automatically exported from code.google.com/p/pcsx2
0 stars 0 forks source link

In Monster lab, Attempting to write 65k to scratchpad crashes pcsx2. #53

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
It's obvious the reason of SIGFAULT, but it's not obvious how to solve it.
The second _GIFchain call of this game appered to have gif->madr equal to
0x80000000. Yes, it's not wery good, because *dmaGetAddr (line 341 at HW.h)
return psS as a result, start of scraptchpad memory.

But gif->qwc = 4096, so it's try to write 4096*16 = 65K to 16K sized
scratchpad.

I add following block

if ((pMem == psS) && (qwc > 0x1000))
       qwc = 0x1000;    

in Gif.cpp, line 127, after pMem = (u32*)dmaGetAddr(gif->madr); That's have
obvious meaning: if we wrote in scratchpad, we should use blocks, that less
than 16K (0x1000). And with it game now in Menus. 

Original issue reported on code.google.com by Zeydl...@gmail.com on 21 Feb 2009 at 8:01

GoogleCodeExporter commented 9 years ago
Changing the title to make it more likely for people other then me to look at 
it.

Original comment by arcum42@gmail.com on 3 Apr 2009 at 1:46

GoogleCodeExporter commented 9 years ago
This issue was fixed to. And this game became playable with new idle-loop speed 
hack
with several graphical issues.

Original comment by Zeydl...@gmail.com on 29 Apr 2009 at 8:55

GoogleCodeExporter commented 9 years ago
Cool. I'll go ahead and close it.

Original comment by arcum42@gmail.com on 29 Apr 2009 at 9:02