EmuNewz Network

Full Version: iso_tool 1.981
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
This homebrew utility was tested with revision bbf6500. Although JPCSP is able to load iso_tool, most of the options do not work as the log shows invalid memory address errors. I have included a Debug Log of iso_tool being used on PPSSPP v1.0.1-777-gf4e0034.
(07-22-2015 01:30 AM)DragonNeos Wrote: [ -> ]This homebrew utility was tested with revision bbf6500. Although JPCSP is able to load iso_tool, most of the options do not work as the log shows invalid memory address errors.
Should now be fixed with e8ca352
There are errors that still occur when trying to use certain options in the homebrew such as Game Update. I place the game in the ISO folder created by iso_tool and the patch/update files in the GAME folder. When I press on Game Update, the operation goes smoothly until this error appears:
Code:
22:01:53 ERROR      hle - user_main - Unmapped import at 0x08002D4C [0xBC31C1B9] Module 'ThreadManForKernel' - $a0=0x00002000 $a1=0x080007D8 $a2=0x09FBF614
The homebrew acts as if the operation was finished, however checking the game using programs such as UMDGen show that the EBOOT.BIN file is 0 KB.
This homebrew application was tested with revision 6493ea6. The function Game Update now works on JPCSP, although a few errors pop up as the patching process occurs.
Code:
22:26:19 ERROR      hle - user_main - Unmapped import at 0x08002D1C [0x4C537C72] Module 'semaphore' - $a0=0x09FFEE6C $a1=0x000000A4 $a2=0x09FFEE6C
22:26:21 ERROR      hle - user_main - Unmapped import at 0x08002D1C [0x4C537C72] Module 'semaphore' - $a0=0x09FFEE6C $a1=0x00000064 $a2=0x09FFEE6C
22:26:21 ERROR      hle - user_main - Unmapped import at 0x08002D1C [0x4C537C72] Module 'semaphore' - $a0=0x09FFEC68 $a1=0x00000074 $a2=0x09FFEC68
22:26:22 ERROR      hle - user_main - Unmapped import at 0x08002D1C [0x4C537C72] Module 'semaphore' - $a0=0x09FFEE6C $a1=0x00000150 $a2=0x09FFEE6C

When JPCSP tries to load a game that was updated through iso_tool, a window pops up that says "Critical error: Check console output for details."
Code:
java.lang.IndexOutOfBoundsException
    at java.io.ByteArrayOutputStream.write(Unknown Source)
    at jpcsp.crypto.AES128.doUpdateCMAC(AES128.java:140)
    at jpcsp.crypto.KIRK.executeKIRKCmd10(KIRK.java:662)
    at jpcsp.crypto.KIRK.executeKIRKCmd1(KIRK.java:402)
    at jpcsp.crypto.KIRK.hleUtilsBufferCopyWithRange(KIRK.java:859)
    at jpcsp.crypto.PRX.DecryptPRX(PRX.java:749)
    at jpcsp.format.PSP.decrypt(PSP.java:162)
    at jpcsp.Loader.LoadPSP(Loader.java:332)
    at jpcsp.Loader.LoadModule(Loader.java:173)
    at jpcsp.Emulator.load(Emulator.java:160)
    at jpcsp.Emulator.load(Emulator.java:153)
    at jpcsp.MainGUI.loadUMD(MainGUI.java:1859)
    at jpcsp.MainGUI.loadUMDGame(MainGUI.java:2027)
    at jpcsp.MainGUI.loadUMD(MainGUI.java:1899)
    at jpcsp.MainGUI$RecentElementActionListener.actionPerformed(MainGUI.java:3118)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.AbstractButton.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$300(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
I was not able to find the source code of this homebrew. But I'm not able to understand the blog of the author:
http://takka.tfact.net/2011/12/isotool-1981.html

Could someone check if the source code is available?

Thank you!
Unfortunately, the developer has never posted the source code of this homebrew online. It may be possible to contact the developer using the email listed on their blog to ask about the source code.

No errors pop up now when using Game Update on revision f187aa8. However, games that were updated through iso_tool still crash on JPCSP (error seems to be slightly different than before). When trying to load an updated game made through iso_tool on JPCSP into PPSSPP v1.0.1-799-gb5f7d93, the log shows that it is missing a key.
Code:
java.lang.ArrayIndexOutOfBoundsException
    at java.lang.System.arraycopy(Native Method)
    at jpcsp.crypto.KIRK.executeKIRKCmd1(KIRK.java:430)
    at jpcsp.crypto.KIRK.hleUtilsBufferCopyWithRange(KIRK.java:861)
    at jpcsp.crypto.PRX.DecryptPRX(PRX.java:750)
    at jpcsp.format.PSP.decrypt(PSP.java:162)
    at jpcsp.Loader.LoadPSP(Loader.java:332)
    at jpcsp.Loader.LoadModule(Loader.java:173)
    at jpcsp.Emulator.load(Emulator.java:160)
    at jpcsp.Emulator.load(Emulator.java:153)
    at jpcsp.MainGUI.loadUMD(MainGUI.java:1859)
    at jpcsp.MainGUI.loadUMDGame(MainGUI.java:2027)
    at jpcsp.MainGUI.loadUMD(MainGUI.java:1899)
    at jpcsp.MainGUI$RecentElementActionListener.actionPerformed(MainGUI.java:3118)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.AbstractButton.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$300(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
This homebrew utility was tested with revision 825bf68. The option Game Update doesn't seem to work as the emulator crashes with the following message:
Code:
java.lang.IllegalArgumentException
    at java.nio.Buffer.limit(Unknown Source)
    at jpcsp.memory.FastMemory.getBuffer(FastMemory.java:224)
    at jpcsp.memory.SafeFastMemory.getBuffer(SafeFastMemory.java:196)
    at jpcsp.memory.SafeFastMemory.getBuffer(SafeFastMemory.java:25)
    at jpcsp.util.Utilities.write(Utilities.java:565)
    at jpcsp.HLE.modules.IoFileMgrForUser.hleIoWrite(IoFileMgrForUser.java:2067)
    at jpcsp.HLE.modules.IoFileMgrForUser.sceIoWrite(IoFileMgrForUser.java:3177)
    at _S1_2_0x089B8FC4.s(_S1_2_0x089B8FC4.java:4)
    at _S1_2_0x0890EB20.s(_S1_2_0x0890EB20.java:35372)
    at _S1_2_0x089130B8.s(_S1_2_0x089130B8.java:168)
    at _S1_2_0x0891B110.s(_S1_2_0x0891B110.java:1508)
    at _S1_2_0x0891B110.exec(_S1_2_0x0891B110.java)
    at jpcsp.Allegrex.compiler.RuntimeContext.jumpCall(RuntimeContext.java:177)
    at jpcsp.Allegrex.compiler.RuntimeContext.call(RuntimeContext.java:230)
    at _S1_2_0x08921418.s(_S1_2_0x08921418.java:836)
    at _S1_2_0x0892301C.s(_S1_2_0x0892301C.java:1440)
    at _S1_2_0x0892301C.exec(_S1_2_0x0892301C.java)
    at jpcsp.Allegrex.compiler.RuntimeContext.jumpCall(RuntimeContext.java:177)
    at jpcsp.Allegrex.compiler.RuntimeContext.jump(RuntimeContext.java:209)
    at _S1_2_0x08914CC8.s(_S1_2_0x08914CC8.java:776)
    at _S1_2_0x08900184.s(_S1_2_0x08900184.java:156)
    at _S1_2_0x08900184.exec(_S1_2_0x08900184.java)
    at jpcsp.Allegrex.compiler.RuntimeContext.execWithReturnAddress(RuntimeContext.java​:778)
    at jpcsp.Allegrex.compiler.RuntimeContext.runThread(RuntimeContext.java:843)
    at jpcsp.Allegrex.compiler.RuntimeThread.run(RuntimeThread.java:50)
Is it possible to generate a log at DEBUG level until that error?
I have attached a DEBUG log that covers selecting and loading the homebrew utility until the error is reached and the emulator has crashed.
Code:
02:34:01 DEBUG compiler - user_main_0x13 -    0x0800275C: [0xFFFF8800] - vnop  <--- should be lui $a1, 0x88000000
02:34:01 DEBUG compiler - user_main_0x13 -    0x08002760: [0x02003021] - addu       $a2, $s0, $zr <=> move $a2, $s0
02:34:01 DEBUG compiler - user_main_0x13 -    0x08002764: [0x24A527D8] - addiu      $a1, $a1, 10200
02:34:01 DEBUG compiler - user_main_0x13 - <  0x08002768: [0x0E001353] - jal        0x08004D4C [sceKernelExtendKernelStack]
02:34:01 DEBUG compiler - user_main_0x13 -    0x0800276C: [0x24042000] - addiu      $a0, $zr, 8192 <=> li $a0, 8192
OK, this was a relocation issue from the loader which should now be fixed in ccfd35b. Could you please retry?

Thank you!
Pages: 1 2
Reference URL's