-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gregory Horror Show(all versions) #643
Comments
That's interesting, i've always wondered what caused that hang, I want to assign this to @gregory38 just for the lolz :P Does the IOP and the EE side say 0x80000000 or just the IOP side? That's crazy huge (or somehow trying to do a negative size, but that would just be weird), I wonder if that's intended or if there is another bug that causes it |
@refractionpcsx2 Humm, that problem is probably very specific to the way I handle SIF transfers (done through HLE). I guess transfer size wouldn't be a problem when it's done through standard DMA since that high bit would get masked off when writing to the transfer size register on the IOP side. |
That does bring us back to square one if that is the case as theoretically we are already doing what you said makes it boot further, but it wouldn't suprise me if SIF is the problem, the whole system is PITA. Our synchronization registers are almost unknown and complete guesswork from poking them, the DMA side is reasonably straight forward. |
@refractionpcsx2 |
@ADormant Excellent job! Do you know which bit specifically got past the hang? Obviously quite a chunk of that is thread control, something we don't really do in PCSX2 :P |
@refractionpcsx2 @gregory38 @jpd002 Oh I see so is there no hope for emulation of this game in PCSX2? |
Well yes, but he is using hle, so the threading stuff is all done manually, I want to know if that fixed it or something else |
@refractionpcsx2 : I think it's based on the sifcmd part which is currently not handled on the codebase. would be nice if @jpd002 could explain ;) |
I can test that, but i'm not sure that's it.. but one way to find out :P He has already explained it once :) |
Low and behold it was that :) |
All fixed, you might want to check your code @jpd002 the manuals say the max transfer size is 1mb-16bytes and the top part is for the cache mode, 0x10000000 for "NOWAIT" aka async mode, or 0x20000000 which means don't write to d-cache, but these are probably useless anyway, not many (if any) games use it besides GHS. I dunno how your code works but just thought you should know :) |
@refractionpcsx2 Ah, thanks for clearing that up! Glad I could help to make the game playable in your emulator! |
Gregory Horror Show never worked or even booted on PCSX2, it just gets a black screen.
It isn't playable on Play! either but it does go further in and shows some letters so perhaps something can be copied over.
Crash is caused by a weird transfer from IOP to EE through SIF that has a size > 0x80000000. Clamping the size fixes the crash. I'll see if I can push a branch with fixes later on.
I can't go any further because the game doesn't respond to input. I think it's caused by some issues with thread scheduling on the IOP.
jpd002/Play-#62
The text was updated successfully, but these errors were encountered: