The following warnings occurred: | |||||||||||||||
Warning [2] Undefined property: MyLanguage::$archive_pages - Line: 2 - File: printthread.php(287) : eval()'d code PHP 8.2.26 (Linux)
|
A question for the devs about Kingdom Hearts Birth By Sleep (US) - Printable Version +- EmuNewz Network (https://www.emunewz.net/forum) +-- Forum: PSP Emulation (https://www.emunewz.net/forum/forumdisplay.php?fid=191) +--- Forum: JPCSP Official Forum (https://www.emunewz.net/forum/forumdisplay.php?fid=51) +---- Forum: JPCSP builds and releases (https://www.emunewz.net/forum/forumdisplay.php?fid=53) +---- Thread: A question for the devs about Kingdom Hearts Birth By Sleep (US) (/showthread.php?tid=4310) Pages:
1
2
|
A question for the devs about Kingdom Hearts Birth By Sleep (US) - chessplayerjames - 04-22-2011 Can we possibly have a new release for JPCSP that caters to Kingdom Hearts Birth By Sleep, and overrides the errors? That would be nice, if it were possible. Whenever I (and many other people also) get to Deep Space with Terra, after the cutscene there is supposed to be a huge battle, but the game freezes. I would attach the log, except it won't let me because the file is too large, so I am resorting to Media Fire. I am also going to give you the link to a video that I made that shows exactly what happens and what I do. Note: The game runs more slowly that normal because of the screen capture I was doing. Link for the .txt file: JPCSP .txt Profiler Link Link for the video file: JPCSP Kingdom Hearts Birth By Sleep Error Upon Entering Deep Space If this error could be overrun in a future build or something, that would be greatly appreciated, by many people, myself included. Another note about the video, I didn't have the media engine or SonicStage enabled. In the video, it showed the cutscene, but if I skip the cutscene, the same thing happens. If I use CWCheat to skip to that event without the cutscene, it freezes in the same way and shows the same message. If I boss warp past that point, then it freezes after I defeat the boss. Thanks for everything you do JPCSP Devs! RE: A question for the devs about Kingdom Hearts Birth By Sleep (US) - -Kratos- - 05-21-2011 Will it be fixed in newer revisions ? nothing has changed to fix this problem in the last ~50 revs. I know that the network and the fullscreen/resizing fuctions are indev but devs could solve this problem :/ I think this problem is in the complier source file, i've searched on the jpcsp google code. Thanks RE: A question for the devs about Kingdom Hearts Birth By Sleep (US) - Hykem - 05-21-2011 Found the problem. It's this file: Code: disc0:/PSP_GAME/USRDIR/MODULE/KEYBLADE_RIDE.ELF It seems to be using a different kind of relocation... I'll run a few tests and I'll report back with the results as soon as possible. RE: A question for the devs about Kingdom Hearts Birth By Sleep (US) - -Kratos- - 05-21-2011 (05-21-2011, 05:14 PM)Hykem Wrote: Found the problem. It's this file: Thank you Hykem If i had a paypal account, i'm sure i would have donate (i don't know if it's correct, i'm French) RE: A question for the devs about Kingdom Hearts Birth By Sleep (US) - Hykem - 05-29-2011 Sorry for the delay on this issue, but this one was quite hard to figure out. Anyway, I've finally traced this bug by disassembling the compiler's instructions at the problematic execution time: Code: 85750 [user_main] DEBUG compiler - CodeInstruction.compile > 0x8B8CCA8 - addiu $sp, $sp, -16 So, that's the trace output that results when the game attempts to interpret this portion of code here: Code: 08B8CCA8:[27BDFFF0]: addiu $sp, $sp, -16 I've narrowed this down to that particular instruction "08B8CCE0:[00200008]: jr $at". Apparently, at runtime, the register $at contains 08B8CD10. This causes the execution of "jr $at" to jump to the 0x08B8CD10 address, which in turn contains the instruction "08B8CD10:[0E260447]: jal 0x0898111C". Now, this should make the compiler jump to the address 0x0898111C, but for some reason it's immediately jumping (not even compiling the delay slot) into 0x08A57578, which contains this: Code: 08A57578:[8FB00000]: lw $s0, 0($sp) This is changing the return address to 0x08bd1d20, so the application jumps back to here: Code: 08BD1D20:[00000000]: nop Weird, huh? Either the game forgot to load something at that address, or something is quite wrong with our compilation sequence (most likely ). RE: A question for the devs about Kingdom Hearts Birth By Sleep (US) - gid15 - 05-29-2011 (05-29-2011, 07:01 PM)Hykem Wrote: Weird, huh? Either the game forgot to load something at that address, or something is quite wrong with our compilation sequence (most likely ).Could you enable "debugCodeBlockCalls = true" in RuntimeContext.java, line 68 and post a log file including compiler and runtime logs at DEBUG level? This way, I can see what the compiler generated and which call sequences are executed. Thanks! RE: A question for the devs about Kingdom Hearts Birth By Sleep (US) - Hykem - 05-29-2011 (05-29-2011, 07:42 PM)gid15 Wrote:(05-29-2011, 07:01 PM)Hykem Wrote: Weird, huh? Either the game forgot to load something at that address, or something is quite wrong with our compilation sequence (most likely ).Could you enable "debugCodeBlockCalls = true" in RuntimeContext.java, line 68 and post a log file including compiler and runtime logs at DEBUG level? This way, I can see what the compiler generated and which call sequences are executed. Sure. To save space, I've tried to make the log as specific as possible. Here is a DEBUG level Compiler and Runtime log file recording the activity of the thread "user_main" alone, shortly after loading the KEYBLADE_RIDE.ELF. As you can see, for some reason, there seems to be some sort of conflict with the runtime call instructions and the respective compiled jump (the one with the $at register). RE: A question for the devs about Kingdom Hearts Birth By Sleep (US) - gid15 - 05-30-2011 (05-29-2011, 08:45 PM)Hykem Wrote: Sure.The only information I could find in the log was that the address 0x8B8CD10 was compiled as a "nop" some time before: Code: Replacing CodeBlock at 0x08B8CD10 by Native Code 'nop' Code: 0x8B8CD10 jr $ra Normally the compiled code is invalidated (RuntimeContext.invalidateAll) when unloading a module (sceKernelUnloadModule)... Does this game call a different method to unload the module located at 0x8B8CD10? Could you set a memory write breakpoint at 0x8B8CD10-0x8B8CD17 to find out who is overwriting the memory? RE: A question for the devs about Kingdom Hearts Birth By Sleep (US) - Hykem - 05-30-2011 (05-30-2011, 07:25 AM)gid15 Wrote:(05-29-2011, 08:45 PM)Hykem Wrote: Sure.The only information I could find in the log was that the address 0x8B8CD10 was compiled as a "nop" some time before: Uh oh, found the problem... This game is using sceKernelIcacheInvalidateRange to invalidate the memory area where the ELF file will be read into. Then, when the next ELF file is read, no module loading is processed, the contents are just overwritten and the range is recompiled *facepalm*. Going to implement this right away and also improve a bit our trace debug for some of these cache functions (missing params in some of them). EDIT: Finally, this is with chessplayerjames' save file, after the bug. Commiting the fix right now. RE: A question for the devs about Kingdom Hearts Birth By Sleep (US) - ventusrocks - 07-30-2011 Wow thanks devs, somebody posted a problem, and you fixed it. Way to go! |