Does it work on OPL with HDD? It has serious random freezes everywhere in this game with USB. I may buy a network adapter for HDD but it will work with this game? I really need to play this game!
|
|
|
|
Would you like to get all the new info from
PSX-Scene in your email each day?
Want to learn more about the team keeping you up to date with the latest scene news?
Read about them now! Check out our Developer bios, too! | ||
|
|
Does it work on OPL with HDD? It has serious random freezes everywhere in this game with USB. I may buy a network adapter for HDD but it will work with this game? I really need to play this game!
I'm not sure if it works, but you need to find a way to bypass the (InGame-)disc-change.![]()
No beta support something like that, as of yet.
But it would be cool, if an InGame-(G)UI would work...
This could be useful for various things.
-dumping and loading any state of the running PS2-Applications
-InGame-Discchange
-InGame-Cheat-Activation
-InGame-RAM-Change/Modification/'Hacking'
-...
'gtlcpimp' made something similar (a.k.a. 'InGame-[G]UI') for project artemis, which also has some other things of the mentioned stuff implemented, but sadly it is not all stuff of 'project artemis' compatible with OPL.
I'm new in ps2 homebrew project but it's very interesting. What's project artemis'? I guess the best solution now is find someone to play DVD version to pass at disc-change point.
Edit: I know what's project artemis now but disc-change problem is the death blow problem for the games that need disc-change in game.
Last edited by Udosatiz; 04-30-2011 at 11:41 AM.
Yes, I think that could work.![]()
Shadow Hearts 2 depends on the timing of certain function calls from the CDVDMAN module. Technically, this is a bug in the game's IOP modules; it is pure coincidence (or luck) that it does not trigger on real PS2 drive hardware, just in emulation (or, in some cases, on backwards-compatible PS3s
).
Some technical details: the game uses a custom file I/O library (FIO.IRX), and that one has a bizarre race condition. When attempting to read sectors, it first performs a seek; when the seek completes, the callback triggers a state change in the underlying automaton, which then performs the read. The problem is now that the automaton state is set after sceCdSeek returns; so in case the CD callback runs before (which may happen in case of an emulated CD, depending on the timing and overall IOP load) the automaton permanently remains in the "seeking" state.
The code looks roughly like this (names are from FIO.IRX, as it still contains debug information):
[in HeadSeek]
if ((res = sceCdSeek(lsn)) != 0) { FioCommand = 0x2f; } else ...
[in CD_Read_Callback]
if (func == SCECdFuncSeek) { FioCommand = 2; WaitTime = 0; } else ...
As sceCdSeek is an asynchronous function, the call usually returns long before the callback is invoked, so it has all the time it needs to set FioCommand to 0x2f ("seeking"). If the callback runs afterwards, FioCommand ends up being set to 2, and the main automaton loop (in main_thread) continues to invoke Read_Order to read the disc. This is the usual case, and the game runs fine as long as this happens.
However, it is also possible that the callback runs before FioCommand is set in HeadSeek. In this case, FioCommand is first set to the correct value (2) in the callback, which is then almost immediately overwritten by 0x2f. Once this happens, it appears the disc drive is stuck seeking, and the game freezes.
It is possible, albeit cumbersome, to "un-freeze" the game. If a debugger is attached to the IOP and the address of the FioCommand variable is known, one can manually set it to 2, which continues the game. I have testet this on a T10k with my own CDVD emulator (Kermit/ODEM), and it works reliably.
A fix for this problem is to delay the invocation of the command completion callback. On my setup, I didn't get a single freeze in ~10h by using a timeout of 2ms (instead of the minimum value of 200us). However, please note that I'm using a custom emulator (ODEM) on development hardware, so results may be different for OPL.
By the way: I played the PAL version of SH:C, and it definitely allows saving right before the disc change.
| « Previous Thread | Next Thread » |