[Release] PSXPeria: Native PSX Emulator ISO Converter

Search This thread

yifanlu

Senior Member
Aug 1, 2011
279
228
PLEASE, PLEASE post all your issues and bug reports regarding the converter at github. https://github.com/yifanlu/PSXperia/issues Also, include detailed information such as a copy of the converter output, android's logcat, etc. If your bug is reported already, make a comment with your system information and logs on the issue so I know multiple people are experiencing it.

Links

Stuff that's done
  • Reversed engineered all propriety formats (image.ps,zpak,toc,etc)
  • Extracted and decrypted emulator binary
  • Mapped out important functions
  • Patched TOC functions to load unencrypted tables (wrapper library)
  • Tool to extract image.ps into an ISO
  • Tool to convert an ISO to image.ps
  • Tool to generate modified APK with wrapper library, custom text, icon, and data (converter backend)
  • Tool to extract Crash Bandicoot and patch some files for the converter
  • Command line interface (frontend)
  • GUI (frontend)
  • Remove requirement for "aapt" and "jarsigner" in PATH.
  • Bug bashing

Stuff for the future (no promises)
  • Load gamedata/icon into converter from XML file (name,titleid,etc)
  • Batch convert
  • Multidisk
  • Game manual

Check out this guide if you are having any problems. It contains a detailed usage directions, some guidelines for settings, and troubleshooting advice. If you still can't get it working, submit a bug report here.

 
Last edited:

Scorbion

Senior Member
May 6, 2005
257
20
Riyadh
Nice to see someone starting on this ,, I Bought syphon filter. Just tell me what to do and I ll do it.

good luck m8
 

AndroHero

Senior Member
May 28, 2010
6,476
906
Manchester
We cannot share paid games, you will have to get someone who has bought the game to do a memory dump for you ........

Sent from my R800i using Tapatalk
 

Blagus

Inactive Recognized Developer
Jun 10, 2010
1,324
1,048
How much does any multi-disk game costs? SE's PSX market is not available here.
 

yifanlu

Senior Member
Aug 1, 2011
279
228
We cannot share paid games, you will have to get someone who has bought the game to do a memory dump for you ........

Sent from my R800i using Tapatalk

Yes, I know. I only really need the first 40 bytes or so of image.ps from the ZPAK.

Why doesn't someone just donate the money so he can buy a game? I'd do it but I'm buying a house.

First, I can't access the store because I have the R800i and am in US. Second, it is a rule of mine to never accept donations until after a project is completely finished.
 
  • Like
Reactions: quazimojo

MechaBouncer

Senior Member
Nov 13, 2010
268
44
First, I can't access the store because I have the R800i and am in US. Second, it is a rule of mine to never accept donations until after a project is completely finished.

That's interesting to learn. My phone is an unlocked R800a that I'm using on AT&T. I installed the unlocked UK firmware on it and it now reports as an R800i in the "About phone" section. However, as of the last month or so, I can finally see games in the PlayStation Pocket app store. I wonder if it's using the IMEI or something like that to report to the store for the region?
 

ashergray

Senior Member
Jul 19, 2011
167
92
Rock Hill SC
If you use a User Agent String changer to match that of the r800a and use a proxy so that the website thinks you are in the proper country you can maybe able to download the games that way.
I can confirm this worked for the gameloft wapshop from my desktop. I have never seen where the psx games come from so I cant guarantee it, but it is worth a shot.
 

MechaBouncer

Senior Member
Nov 13, 2010
268
44
They're actually in the Android Marketplace. For the longest time, they were limited to Europe, but now they're available in the US. Perhaps it might be possible to purchase them from there and remote install them to the phone?
 

ashergray

Senior Member
Jul 19, 2011
167
92
Rock Hill SC
Again all that can be done with the ua switcher and a
Proxy in firefox. Android market is available via your browser. Could be worth a shot.

sent from the original unlocked R800x.
 

yifanlu

Senior Member
Aug 1, 2011
279
228
So I have extracted ALL the encrypted files now, this means libdefault.so, image_ps_toc, and ps1_rom.bin. It was pretty hard because it was obfuscated in memory, but I got it using another, unorthodox method. Now, here's the weird thing. I can't figure out how the PS1 bios works. It's not a copy of any of the BIOS floating around the internet, in fact, it's not even the same format (all the bios that can be found on the internet have a similar structure). In addition, I still can't figure out what image_ps_toc is for. If anyone wants to take a look at these files for me (I've already decrypted them, you're welcome), PM me.

EDIT: I spoke too soon, I found out that the PS1 ROM is actually part of the PS2 BIOS. Yea, wtf. It seems to be using the PS1 emulator bios from the PS2, or something like that. Now, to find what the toc file is.
 
Last edited:

Blagus

Inactive Recognized Developer
Jun 10, 2010
1,324
1,048
So I have extracted ALL the encrypted files now, this means libdefault.so, image_ps_toc, and ps1_rom.bin. It was pretty hard because it was obfuscated in memory, but I got it using another, unorthodox method. Now, here's the weird thing. I can't figure out how the PS1 bios works. It's not a copy of any of the BIOS floating around the internet, in fact, it's not even the same format (all the bios that can be found on the internet have a similar structure). In addition, I still can't figure out what image_ps_toc is for. If anyone wants to take a look at these files for me (I've already decrypted them, you're welcome), PM me.

EDIT: I spoke too soon, I found out that the PS1 ROM is actually part of the PS2 BIOS. Yea, wtf. It seems to be using the PS1 emulator bios from the PS2, or something like that. Now, to find what the toc file is.

TOC maybe contains sub-channel data, known from original PSX CD-s, which served in copy-protection mechanism?
 

yifanlu

Senior Member
Aug 1, 2011
279
228
I've been trying to find some information on the PSX iso format, like what's at the different offset, where checksums are, where the executable starts, etc, but google isn't helping. Can you tell me more about this? If this copy protection thing is true, that means every game has a different libjava-activity.so. Could someone with another game pm me with /data/data/packagename/libs/libjava-activity.so where package name starts with com.sony and ends with the titleld? Also, Blagus, if you want, I can let you take a look at the decrypted toc files.
 
  • Like
Reactions: Atlas51

Blagus

Inactive Recognized Developer
Jun 10, 2010
1,324
1,048
I've been trying to find some information on the PSX iso format, like what's at the different offset, where checksums are, where the executable starts, etc, but google isn't helping. Can you tell me more about this? If this copy protection thing is true, that means every game has a different libjava-activity.so. Could someone with another game pm me with /data/data/packagename/libs/libjava-activity.so where package name starts with com.sony and ends with the titleld? Also, Blagus, if you want, I can let you take a look at the decrypted toc files.

You may want to download original Crash PSX image in CloneCD format, which comes with CUE, IMG and SUB files. Check the SUB file size, if it's approximate to TOC fle, then it might be worth downloading it.
 
  • Like
Reactions: yifanlu

yifanlu

Senior Member
Aug 1, 2011
279
228
You may want to download original Crash PSX image in CloneCD format, which comes with CUE, IMG and SUB files. Check the SUB file size, if it's approximate to TOC fle, then it might be worth downloading it.

I made an image using CloneCD and looked at the subdata file. It's 25MB uncompressed and 4MB compressed. The TOC file is 67KB, so I don't think that's it.
 
  • Like
Reactions: Atlas51

Top Liked Posts

  • There are no posts matching your filters.
  • 43
    PLEASE, PLEASE post all your issues and bug reports regarding the converter at github. https://github.com/yifanlu/PSXperia/issues Also, include detailed information such as a copy of the converter output, android's logcat, etc. If your bug is reported already, make a comment with your system information and logs on the issue so I know multiple people are experiencing it.

    Links

    Stuff that's done
    • Reversed engineered all propriety formats (image.ps,zpak,toc,etc)
    • Extracted and decrypted emulator binary
    • Mapped out important functions
    • Patched TOC functions to load unencrypted tables (wrapper library)
    • Tool to extract image.ps into an ISO
    • Tool to convert an ISO to image.ps
    • Tool to generate modified APK with wrapper library, custom text, icon, and data (converter backend)
    • Tool to extract Crash Bandicoot and patch some files for the converter
    • Command line interface (frontend)
    • GUI (frontend)
    • Remove requirement for "aapt" and "jarsigner" in PATH.
    • Bug bashing

    Stuff for the future (no promises)
    • Load gamedata/icon into converter from XML file (name,titleid,etc)
    • Batch convert
    • Multidisk
    • Game manual

    Check out this guide if you are having any problems. It contains a detailed usage directions, some guidelines for settings, and troubleshooting advice. If you still can't get it working, submit a bug report here.

    7
    https://github.com/yifanlu/PSXperia
    Binary: https://github.com/downloads/yifanlu/PSXperia/psxperia-beta-1.zip

    First beta release. I've finished the extractor and the command line interface. It is now useable (although buggy). Once everything works, I'll coat it with a GUI.

    First of all, I suggest everyone turn on verbose output with -v when running so when something goes wrong, you can send me a huge logfile.

    I've listed the directions to use in the readme, but if you want some even friendly ones... Make an empty folder called "psxperia" or something copy the following files to it.

    1) Copy the PSXperia tool JAR (PSXperiaTool.jar) to the folder
    2) Copy the Crash bandicoot APK there too (europe, r800i: com.sony.playstation.ncea00344_1.apk; usa, r800x: com.sony.playstation.ncua94900_1.apk) found in /system/app, use adb pull
    3) Copy the Crash Bandicoot data ZPAK also (access the phone's sdcard, it's under "Android/data/com.sony.playstation.ncea00344_1|ncua94900_1)
    4) Now run the following to extract the apk
    Code:
    java -jar PSXperiaTool.jar x -v com.sony.playstation.ncea00344_1.apk NCEA00344_1_1.zpak data
    (Change to the USA APK/zpak if you have it)
    5) Copy your game's ISO image, let's call it game.iso
    6) Run
    Code:
    java -jar PSXperiaTool.jar c --game-name "Game Name" --icon-file icon.png NCXA00000_1 game.iso output
    Change NCXA00000_1 to an unique identifier, it's the game's title id. Something like NCUA12345_1. It doesn't matter what goes here, just for better organizing.
    If you don't have icon.png, you can leave that part out and get the default android icon, or make a 170x170 PNG with the game's cover.
    7) You now get a "output" folder. In there, you'll find the APK, which you will install, and a "data" folder that should be merged with the "Android/data" folder on your SD card.

    Oh, and you should set your phone to allow applications from unknown sources.

    Please copy the entire console output when you get an error and send it to me.

    And I never done Java GUI programming before, so I'm going to learn it.
    5
    IT'S DONE!

    I'm uploading a youtube video right now of the Play running Crash Bandicoot 3. Now I just need to write the GUI. No more then a day for that. As much as I hate Java in every way, I feel like it would be the easiest way of making a multi-platform tool. I'll also do a final writeup on my site in a couple of days.

    EDIT: Video - http://www.youtube.com/watch?v=6sV0rXHBekQ
    4
    I'm releasing the update after pssuite comes out. I'm betting that a better emulator will be out as they will release more games.
    3
    Ok, finally an update:

    I've got the new emulator (1.0.3, found on the 2.3.4 update). It was pretty hard, not gonna to lie. There was 3 new protection.
    1) All function names and etc in the emulator binary are gone, I had to reconstruct the them from the older version based on what the functions do and what they import. That was to prevent poking around.
    2) No more binary 1 decrypting and loading binary 2 which calls bin 1 to give the image_ps_toc (decrypted). They're all in one binary file. Good news is that the actual emulator is no longer encrypted (but all the symbols are gone :( ). Bad news is that image_ps_toc is still encrypted and inside the binary. No more hooking the function when bin 2 asks bin 1 for the toc.
    3) The emulator validates the header of the game it's loading. It refuses to load any game other then "crash bandicoot"

    So the million dollar question: has compatibility improved? Short answer: nope. Long answer: maybe. I don't have that many games. So far I've only tested the first few minutes of Castlevania. The characters are still black and you can't see the health bar, but the dialogue text is no longer buggy. This means at least, the emulator IS updated, but not as much as I hoped.

    I am not going to release the new version of the tool yet. Mainly because I had to do some tricks that may turn out to decrease compatibility (not sure). I also don't want my new method to be patched until we get a better emulator. Now, if there's any completely broken games that you want me to check, post a screenshot of how broken it looks and I'll post a screenshot of how it looks on the new emulator.

    Oh, and I don't know about tablet compatibility yet, but if someone gives me a Sony tablet, I'll get it working ;)