01-22-2012, 05:37 AM
Starting with r2438, Heroes Phantasia (NPJH50558) is unable to continue past the title screen even when you push Start or the circle button. After a few seconds in the title screen, it loops back to the opening movie and keeps looping indefinitely between opening movie and title screen with the controls being non-responsive. With r2437 and earlier revisions, I can continue past the title screen and play the game.
I've tracked the problem to the jpcsp.HLE.modules630.sceAtrac3plus class in the following part (lines 51 - 53):
If line 52 is commented out, then the game can continue past the title screen just like in r2437.
There is another unrelated bug with this game regarding MediaEngine. If MediaEngine is enabled, JPCSP will crash when it tries to play the opening movie with the following error in the console:
A workaround is to disable MediaEngine in the configuration option to get past the opening movie and to the title screen in this game.
I've tracked the problem to the jpcsp.HLE.modules630.sceAtrac3plus class in the following part (lines 51 - 53):
Code:
51 if (Memory.isAddressGood(samplesAddr.getAddress())) {
52 decodeAddr.setValue(samplesAddr.getAddress() - 2160); // Rewind to the sample's header block.
53 }
There is another unrelated bug with this game regarding MediaEngine. If MediaEngine is enabled, JPCSP will crash when it tries to play the opening movie with the following error in the console:
Code:
java.lang.IllegalArgumentException: must pass in a non null handler
at com.xuggle.xuggler.io.XugglerIO.mapIO(XugglerIO.java:588)
at com.xuggle.xuggler.io.XugglerIO.map(XugglerIO.java:539)
at com.xuggle.xuggler.io.XugglerIO.map(XugglerIO.java:218)
at com.xuggle.xuggler.IContainer.open(IContainer.java:196)
at jpcsp.media.MediaEngine.init(MediaEngine.java:315)
at jpcsp.HLE.modules150.sceMpeg.sceMpegGetAtracAu(sceMpeg.java:1232)
at _S1_3_8A98634.s(_S1_3_8A98634.java:4)
at _S1_3_89287D8.s(_S1_3_89287D8.java:80)
at _S1_3_8927788.s(_S1_3_8927788.java:380)
at _S1_3_8927DF4.s(_S1_3_8927DF4.java:948)
at _S1_3_8851674.s(_S1_3_8851674.java:108)
at _S1_3_884E29C.s(_S1_3_884E29C.java:200)
at _S1_3_884E29C.exec(_S1_3_884E29C.java)
at jpcsp.Allegrex.compiler.RuntimeContext.jumpCall(RuntimeContext.java:137)
at jpcsp.Allegrex.compiler.RuntimeContext.jump(RuntimeContext.java:175)
at _S1_3_884E20C.s(_S1_3_884E20C.java:140)
at _S1_3_880C2FC.s(_S1_3_880C2FC.java:40)
at _S1_3_880C2FC.exec(_S1_3_880C2FC.java)
at jpcsp.Allegrex.compiler.RuntimeContext.jumpCall(RuntimeContext.java:137)
at jpcsp.Allegrex.compiler.RuntimeContext.call(RuntimeContext.java:216)
at _S1_3_880CD58.s(_S1_3_880CD58.java:88)
at _S1_3_88C5C20.s(_S1_3_88C5C20.java:96)
at _S1_3_880557C.s(_S1_3_880557C.java:196)
at _S1_3_88046EC.s(_S1_3_88046EC.java:260)
at _S1_3_892B334.s(_S1_3_892B334.java:284)
at _S1_3_892B334.exec(_S1_3_892B334.java)
at jpcsp.Allegrex.compiler.RuntimeContext.runThread(RuntimeContext.java:693)
at jpcsp.Allegrex.compiler.RuntimeThread.run(RuntimeThread.java:51)