ForewordThis is a tutorial written as a result of my personal readings and experience on installing custom Bubbles on PS Vita running OFW3.36 and using NUMBLAST US exploit and running TN-C and TN-V11. I've decided to write this since I found no one single tutorial that covers this. Frankly you will need to read tons of materials just to have an idea what is going on. I did try my best to explain the reason behind each steps to my best of knowledge. Frankly I've left Vita scene for quite some time now and recently gaining interest during my spare time.
In short, this guide basically summarize my attempts to achieve this feat after spending literally dozens of hours / days reading on forum posts and YouTube videos. And jolly-o-joy, I'm glad that I was able to achieve it. Granted it took me a lot of trial and error, and at some point even at the verge of tearing my hair apart. :-P
Before reading on, note that this is a PICTORIAL tutorial that I hope will aid to illustrate my points as clearly as possible. Combined that with my writeups and you should have no problem completing your goal! Just make sure to read and follow everything EXACTLY as mentioned. Keep in mind that I generally wrote this tutorial gearing towards even the novice computer users with minimal technical background but still wanted to attempt. Hence, don't find it strange if you find me explaining even some of the very straightforward steps for intermediate/advance computer users.
[Heavy picture loads... :-)]
- PS Vita Slim running OFW 3.36
- Numblast/Quotron US TN-C and TN-V11 exploit
- Patched Sony CMA with OpenCMA to transfer files between your PC and PS Vita. Alternatively, you can choose QCMA but I'm having trouble connecting my Vita to it.
- NPUG80320 is the GameID for Numblast US.
- EBOOT.PBP is like Windows Executable (.EXE) files on Windows
- PBOOT.PBP is the file that contains information for the Bubble, e.g. Bubble image and Bubble game title. *You'll have to rebuild the Database every time you add a new PBOOT.PBP for the Vita to read the information and modify the Bubble on the Vita home screen*
Things Covered This Tutorial
- Cloning a custom Bubble for PSN Base Game, e.g. NUMBLAST US
- Creating a Homebrew application, e.g. Snes9X TYLMod on the cloned Bubble. The method that I chose is Homebrew Loader
- Sign your ISO without any command line! Thanks to Sign-NP Expert tool.
Required SoftwaresAll the required Softwares are included in the package that can be downloaded from my Google Drive <<< here >>>. Note that I simply compiled them in a package and is not of my authored works.
- UMDGen - Load an ISO, modify its content, and repack it
- HxD - Hexadecimal editor to edit some of the critical files in binary content
- pack.exe - Pack IMG01.PNG (Bubble image) and PARAM.SFO (Bubble game title) into PBOOT.PBP for customized bubble
- Sign-Fake NP Expert - Sign our Homebrew ISO using a PSN Base Game so that it is launch-able on PS Vita Bubble.
Notation Used in This Tutorial$VITA_BACKUP: The path to your PS Vita backups as set on Content Manager Assistant. Mine is set to F:\VITA BACKUP\
$SIGN: The sign folder of the extracted package. E.g. F:\Vita Bubble Workspace\Sign. We're going to pack our PBOOT.PBP using the pack.exe here.
$UTILS: The Utilities folder of the extracted package. E.g. F:\Vita Bubble Workspace\Utils
- Having TN-C eCFW running on Vita 3.36.
- A way to access (read/write) folders and files inside your PSP folders. Either using PSP Filer 6.60 via TN-V or Vita FTP. In my experience, when using FTP, I'm unable to remove or rename any existing directories and also creating new directories. So I'm going to base this tutorial without FTP.
- Familiar with PSP Filer basic navigation. Basically PSP Filer uses tree view to display your files and directories. You perform file operation (copy, rename...) by pressing the 'X' button on a selected file/directory.
- Your Homebrew in which you want to create custom Bubble must have already been extracted/located in your ms0:/ such as PSP/GAME. If not, transfer it via INSTALL.ZIP method on TN-C.
- Downloaded the listed software above.
FAQWhy cloning bubbles?
Cloning is necessary if you don't have enough Base Game to sign your ISOs.
Which PSN Base Game should I choose?
Try to choose those that are having a very small size, such as UNO, Cubix, and Numblast. Only PSP and Minis will work. Not PS1 games.
Can I use a single Base Game for all my ISOs?
There might be cases where a Base Game of your choice won't launch your custom bubbles. It is rare though.
My Attempt Experience Unlike OthersUnlike others that uses FTP to create and modify the needed directories, I simply can't use FTP to create, rename or modify any directories. Files upload and deletion is working though. For this you'll find that I only uses PS Filer for all the directories or files insertion/deletion/renaming needs.
WARNINGSNEVER EVER delete the Bubbles directly from PS Vita Home Screen. Instead, delete them (both the main and &) from PS Filer and rebuild the database.
DO NOT store the Vita Backup Location to a Network Share Folder! I've faced occasional errors when transferring the NUMBLAST base game to the PC.
Cloning Bubbles is so... Fun!?Launch
PSP Filerand navigate to
'R'trigger to rename the folder. My preferred way of naming the clones are C1, C2, C3... with numbers to distinguish between the clones. For example, I'm going to rename this to NPUG80320C6 since this is my 6th cloned bubbles.
Go back to Vita Home Screen by clicking the Home button.
We will now copy the clone back to our Vita Backup location $VITA_BACKUP using Content Manager.
Select all occurrences of ALL the games having the NumBlast game title AND NumBlast screenshots. DO NOT select NumBlast titles that are NOT having the NumBlast pictures as they are the custom bubbles EBOOT.PBP
Go to $VITA_BACKUP and make sure a new folder named NPUG803C6 is created, with the file size 34.3MB. It should matches with the filesize of the original NPU80320.
* In case if you're wondering why can't we simply copy and paste the original NPU80320 into the cloned folder to save us the effort and then simply transfer the said folder back to the Vita. The reason is although they are both similar in size, their CRC simply doesn't match, which means some part of the content is changed. I had verified this personally. So just follow the instruction as it is.
Now transfer the original NPUG80320 and NPUG803C6 from your PC back to the Vita.
We're seeing a lot of NUMBLAST games here. Reason is it displays both the Main file and Cloned titles.
From my experience, it will take quite some time to copy all them one by one to your Vita, especially if your bubbles are exceeding 10. If you have time to spare, then go ahead and select ALL of the NUMBLAST games. Again, make sure you only select those that have NUMBLAST as the game title and NUMBLAST screenshots.
[Optional] Otherwise if you're willing to go the extra miles, we're going to only select the ones that we want to copy back, which is the original NPUG80320 and NPUG803C6. To filter to the ones that we need, we simply replace the ICON0.PNG of each of the & games with another similar image, but with the text label photoshopped.
Once done, you should hear a bubble sound and see a new NUMBLAST bubble appear on your Home Screen.
Now go to PS Filer PSP\GAME and make sure the original NPUG80320 folder and our cloned folder are there.
That's it, now time to put a homebrew inside that bubble!
Creating and Signing our Homebrew Executable (EBOOT.PBP)
To ease the effort, we are going to use the Homebrew Loader that will wrap our homebrew into it. First, choose a homebrew of your choice. I'm going to choose Snes9X emulator, which resides in PSP\GAME\S9XTYL on my Vita memory stick. Take note of the full path to the EBOOT.PBP or FBOOT.PBP depending on your homebrew. In my case it is ms0:/PSP/GAME/S9XTYL/EBOOT.PBP
- Homebrew Loader is only one of the many methods to create our homebrew executables.
- You can only include the path of Homebrew application (EBOOT.PBP/FBOOT.PBP) using Homebrew Loader method. You cannot create PS1 or PSP ISOs using it.
- Perhaps the biggest advantage of using this method is you can specify any path to load your homebrew. This solves the restriction on OFW 3.50 and above whereby CFW cannot write files to any folder within the path ms0:\PSP\GAME
Open UMDGen in $Utils which we'll use to repack PATH.TXT into the original LOADER.ISO. Simply drag and drop LOADER.ISO into UMDGen.
Go to PSP_GAME\USRDIR and delete the existing PATH.TXT.
Right click and add the PATH.TXT that we created earlier on in $HOMEBREW_LOADER
Go to File > Save as > Uncompressed ISO and name it as LOADER2.
Go to $SIGNFAKENP and select LOADER2.ISO as the source ISO and NUMBLAST EBOOT.PBP as the Base PSN EBOOT.PBP. Follow the options exactly as shown, most importantly, make sure 'Use Fakenp Mode' is checked.
Save it as EBOOT2.PBP.
Creating Custom Bubble Image and TitleNext we're going to create PBOOT.PBP which contains the information and picture to display on the Bubble on Vita Home Screen.
We'll need two files:
- PARAM.SFO that contains the Title to display on the Bubble
- ICON0.PNG that contains the Bubble picture.
Open PARAM.SFO using a HEX Editor such as the recommended HxD freeware. Change the highlighted parts to match NUMBLAST GAMEID and title to display on the Bubble. The GAMEID should matches your Base GAMEID, e.g. NPUG80320 for NUMBLAST and NOT your cloned folder, e.g. NPUG80320C6 that we created earlier on.
Note: To remove any additional letters after the TITLE, click on the left tab (or pressing TAB) and type 0 instead of hitting Spacebar to clear the remaining letters.
SAVE after done. Double check that the final file size is similar to the original file. HxD will display a prompt dialog whenever you press delete while editing. DO NOT disable the warning!
Try to confirm that the contents are indeed correct. Pay close attention once again to the GAMEID and TITLE. It is a hassle to modify it since it requires refreshing the Vita database every time we want to do that, which is VERY time consuming.
Let's move on next to create a custom Bubble image. Instead of creating a custom image myself, I'm going to simply extract the image from SNES9x EBOOT.PBP. To do that, we'll have to first convert EBOOT.PBP into .ISO so that we can view the content using UMDGen.
Open $Utils\EBOOT2ISO.EXE and fill in the directories:
Go to the extracted folders and copy ICON0.PNG into $SIGN.
Our $SIGN folder should now contains both the image (ICON0.PNG) and text info (PARAM.SF0).
Next we're going to pack these two files into PBOOT.PBP using pack.exe.
Just a quick hint, you can quickly open a command prompt to this folder by going one folder above $SIGN and while holding the Shift key, right click on the Sign folder.
Type the following commands:
pack PBOOT2.PBP param.sfo icon0.png NULL NULL NULL NULL NULL NULL to pack these into PBOOT2.PBP
Our PBOOT2.PBP containing both PARAM.SFO and ICON0.PNG.
Transfer to Vita using INSTALL.ZIP MethodUp until now we'll have the two required files, EBOOT2.PBP and PBOOT2.PBP for our Snes9x custom Bubble.
Hopefully by now you're getting used to the traditional INSTALL.ZIP method to transfer files to the Vita. Just a quick recap, go to $VITA_BACKUP\PSAVEDATA\HASHCODE\NPUG80320KEXPLOIT and create PSP\GAME\HOMEBREWTITLE. Put both EBOOT2.PBP and PBOOT2.PBP here.
After that create a .ZIP archive with STORE compression. Make sure the archive name is all CAPITALIZED.
Now that we're all set. Open Content Manager on your Vita and transfer the TN-C to your Vita.
Back to PS Filer, append a & character to the previously created cloned folder NPUG803C6. The final folder name is NPUG803C6&
Go to \PSP\GAME and create a new folder called NPUG803C6.
Next go to INSTALL.ZIP and copy EBOOT2.PBP to NPUG803C6 and PBOOT2.PBP to NPUG803C6&
Make sure to rename EBOOT2.PBP and PBOOT2.PBP to EBOOT.PBP.. and PBOOT.PBP.. respectively. Don't forget the trailing .. after PBP. I believe it is needed in order for PSP file system to see the changes.
We're almost at the end now. Exit PS Filer and power your Vita off.
Boot into Safe Mode by holding the PS Home button, Power button and Right trigger button ALL AT THE SAME TIME for around 10 seconds. Another way to boot into Safe Mode is to simply remove the memory card while the Vita is turned on. I wouldn't recommend doing it though.
Select Rebuild Database.
The time it took to complete varies depending on the existing files on your Vita. In my case it took around 3 minutes or so. While waiting, remember the PBOOT.PBP that we created earlier on? In this step, your Vita basically reads the PBOOT.PBP and modify the bubble image from ICON0.PNG and text information (game title) from PARAM.SFO. Good to see your hard work finally paid off ain't it?
After it's done rebuilding, go to your Home Screen and voila, our custom Snes9x bubble!
Let's now start to launch our custom Bubble. If you followed everything exactly as I did, you should be booting into Snes9x with flawless success!
Note that this method might not work on certain homebrew. To my best knowledge I believe this is not the problem with the method, but lies in the Base PSN EBOOT.PBP that you used to sign the EBOOT.PBP. From what I've tested so far, this method works on popular homebrew like VitaFTP, PS Filer 6.60, MasterBoy, and Snes9x that I covered in this tutorial. Keep in mind that any homebrew that requires kernel access would still require you launch it via kernel exploit, i.e. boot into TN-C or TN-V (XMB) and then load the homebrew from there.
Just to illustrate my point, this method (or I should say using NUMBLAST as Base PSN game), will not work on gpsp-j. I'll try to figure it out once I have time.
Leave in the comments below if you found this tutorial to be helpful to you. HAPPY BUBBLING!