GUIDE: Fully customize your XMB
20/02/2007 03:35 AM Posted by: SXForce in PSP Customisation Tutorials / Guides
[Image: headersc7.png]
Note: This Guide is NOT under construction anymore!

This is the full guide for fully changing the PSP's XMB (Cross Media Bar) Menu.
[Image: barys2.gif]

PLEASE NOTE:
  • THERE IS ALWAYS A CHANCE OF BRICKING WHILE FLASHING.
  • HAVE CUSTOM FIRMWARE 3.02 OE-A TO 3.10 OE-A'.
  • DO NOT USE ANYTHING OF THIS GUIDE IF YOU Don't KNOW WHAT YOU ARE DOING
  • YOU NEED TO KNOW WHAT FLASHING IS.
  • ALL YOU DO IS AT YOUR OWN RISK, I'AM NOT RESPONSIBLE FOR ANYTHING THAT HAPPENS TO YOUR PSP.


[Image: barys2.gif]

The Guide:
  1. Custom Volume Bars
  2. Custom XMB Name Labels
  3. Custom XMB Icons
  4. Custom XMB Font
  5. Custom XMB Battery
  6. [anchor=squee666Custom XMB Waves[/anchor]
  7. Custom XMB Sounds
  8. Your Background with Wave
  9. Custom Busy Icons
  10. Load Gameboot from MemoryStick
  11. Your own website link in XMB
  12. Custom Coldboot Text
  13. Custom Gameboot Text
  14. Network update Homebrew Launcher
  15. Custom USB Sliding Bar
  16. Custom Home Screen




1. Custom Volume Bars (All Custom firmwares)

Click to Expand
FIRST:
[Image: bol.gif]DOWNLOAD  ZiNgA BuRgA's RCO Editor

SECOND:
Run the program:
[Image: rcoeditbs7.jpg]

Then select: Open RCO...
Now open a decrypted version of the impose_plugin.rco, download one here.
[Image: rcoopenedju5.jpg]

Now click one of the images to view them in the preview screen.
When you found the one that you like to edit click extract and save it in the folder you want.
Now open the file in a image edit program (eg. the gimp, photoshop) and change it to the icon you want, make sure you keep the dimensions and the color depth the same.
When you changed the icon, press Replace in the RCO Editor, and select the file you changed.
(Do not use MSPaint or Paint Shop Pro 9 for this, this programs cannot keep the color depth right. Use The Gimp or Photoshop, these work both fine.)

THIRD:
[Image: bol.gif]Backup impose_plugin.rco first!

Flash the file impose_plugin.rco to f0:\vsh\resource. (Advance » Toggle USB (Flash0)
NOTE: This can brick your psp, check ''The Guide for if anything goes wrong'' for more information.
[Image: imposeflashwi1.jpg]

Lazy?
Download and view some premade Volume Bars here: Custom XMB volume bars
[Image: barys2.gif]

2. Custom XMB Name Labels (Custom firmware 3.02/3.03)

This can be done with the most HEX Editors, but I will explain two, Hex Workshop and XVI32:

Hex Workshop
FIRST:
[Image: bol.gif]Download Hex Workshop.

SECOND:
Open a decrypted version of the topmenu_plugin.rco in Hex Workshop. (Download a decrypted one here)
Now find your language (the one you use on your psp), its seperated by dots, like G.a.m.e.
[Image: hexselectedyc7.jpg]

Once you find your language, you can edit the text.
Example is in the picture:
[Image: hexchangedlx6.jpg]
NOTE: You must keep number of characters the same, and you need to keep the dots (00 Bytes) on the same place EG.
RIGHT: G.a.m.e. » O.M.F.G.
WRONG: G.a.m.e » L.o.L.o.L.o (Too long)
WRONG: G.a.m.e. » Game  (No dots)
And to make text shorter you can use spaces like, G. . . .


Once you are done with editing all the text, save the file.

THIRD:
[Image: bol.gif]Backup topmenu_plugin.rco first!

Flash the file topmenu_plugin.rco to f0:\vsh\resource. (Advance » Toggle USB (Flash0)
NOTE: This can brick your psp, check ''The Guide for if anything goes wrong'' for more information.
[Image: topmenuflashux5.jpg]
XVI32
FIRST:
[Image: bol.gif]Download XVI32.

SECOND:
Open a decrypted version of the topmenu_plugin.rco in XVI32. (Download a decrypted one here)
Now find your language (the one you use on your psp), its seperated by ? (00 Bytes), like G?a?m?e?
You can edit all text you see, but the marked text is only the basic text:
[Image: xvitopmenuuw9.jpg]

Once you find your language, you can edit the text.
NOTE: You must keep number of characters the same, and you need to keep the ? on the same place EG.
RIGHT: G?a?m?e? » O?M?F?G?
WRONG: G?a?m?e » L?o?L?o?L?o (Too long)
WRONG: G?a?m?e? » Game  (No ?)
And to make text shorter you can use spaces like, G? ? ? ?


Once you are done with editing all the text, save the file.

THIRD:
[Image: bol.gif]Backup topmenu_plugin.rco first!

Flash the file topmenu_plugin.rco to f0:\vsh\resource. (Advance » Toggle USB (Flash0)
NOTE: This can brick your psp, check ''The Guide for if anything goes wrong'' for more information.
[Image: topmenuflashux5.jpg]

[Image: barys2.gif]

3. Custom XMB Icons (Custom firmware 3.02/3.03)

You can customize your XMB Icons with two different programs, the first one that I mention here is the easiest (xmbPackager), the second one is a little harder (ZiNgA BuRgA's RCO Editor).

(xmbPackager, only edit the Settings, Photo, Music, Video, Game, Network icons)
FIRST:
[Image: bol.gif]Download the  xmbPackager v0.3.

SECOND:
Once you extracted the zip file, open up the folder.
[Image: xmbpackfh9.jpg]

Now select 'sets' and choose your icons (or make icons yourself, do this by opening a picture in the 'sets' folder and edit it, then you have the right format).
Now copy the icons you want to the folder 'icons', and run 'start.cmd'.
Select your firmware (3.02 (Option C) can be used for 3.03 also, but not for 3.10), and press enter.
[Image: startcmdtw1.jpg]

THIRD:
[Image: bol.gif]Backup topmenu_plugin.rco first!

Flash the file topmenu_plugin.rco to f0:\vsh\resource. (Advance » Toggle USB (Flash0)
NOTE: This can brick your psp, check ''The Guide for if anything goes wrong'' for more information.
[Image: topmenuflashux5.jpg]
(ZiNgA BuRgA's RCO Editor, edit every icon)
FIRST:
[Image: bol.gif]DOWNLOAD  ZiNgA BuRgA's RCO Editor
[Image: bol.gif]Get a decrypted version of the topmenu_plugin.rco. (Download a decrypted one here)

SECOND:
Run the program:
[Image: rcoeditbs7.jpg]

Then select: Open RCO...
Open a decrypted version of the topmenu_plugin.rco  (Download one here)
[Image: rcoedittopmenuta7.jpg]

Now you will see a list of all the icons that you can edit.
You can click one of the images to view them in the preview screen.
When you found the one that you like to edit click extract and save it in the folder you want.
Now open the file in a image edit program (eg. the gimp, photoshop) and change it to the icon you want, make sure you keep the dimensions and the color depth the same.
When you changed the icon, press Replace in the RCO Editor, and select the file you changed.
(Do not use MSPaint or Paint Shop Pro 9 for this, this programs cannot keep the color depth right. Use The Gimp or Photoshop, thesework both fine.)

THIRD:
[Image: bol.gif]Backup topmenu_plugin.rco first!

Flash the file topmenu_plugin.rco to f0:\vsh\resource. (Advance » Toggle USB (Flash0)
NOTE: This can brick your psp, check ''The Guide for if anything goes wrong'' for more information.
[Image: topmenuflashux5.jpg]
[Image: barys2.gif]

4. Custom XMB Font (All Custom firmwares)

3.02/3.03 OE
FIRST:
[Image: bol.gif]Get a Custom font, you can find a lot in the Custom Fonts Section.
[Image: bol.gif]Get X-Flash

SECOND:
Once you got your font place it in the folder '__SCE__XFLASH\XFlash\Modified' make sure the  font name is 'ltn0.pgf'.
[Image: modifiedfolderqe7.jpg]

Now put both folders (%__SCE__XFLASH and __SCE__XFLASH) in the GAME folder (if kernal is set to 1.5 in the recovery menu) or in the GAME150 folder (Default).

THIRD:
Now turn on your PSP and start X-Flash.
Once the program is fully loaded, select this option:
6. INSTALL CUSTOM FONT
Once the font is flashed, close X-Flash and restart the PSP, now you will have your new font.
3.10 OE
FIRST:
[Image: bol.gif]Get a Custom font, you can find a lot in the Custom Fonts Section.

SECOND:
Get into Recovery mode » Advance » Toggle USB (Flash0).
[Image: bol.gif]Backup font file(s) first!

Put your font file (ltn0.pgf) in f0:\font.
NOTE: This can brick your psp, check ''The Guide for if anything goes wrong'' for more information.
[Image: fontflashwp5.jpg]

Restart the PSP, you will now have you custom font.
[Image: barys2.gif]

5. Custom XMB Battery (All Custom firmwares)

Click to Expand
FIRST:
[Image: bol.gif]DOWNLOAD  ZiNgA BuRgA's RCO Editor

SECOND:
After you extracted the files, open the RCO Editor.
Then select: Open RCO...
Now open a decrypted version of the system_plugin_fg.rco, download one here.
[Image: systemfgopeniy6.jpg]

Now click the first image (The battery image, as you can see above), and click Extract... , now save it in the folder you want.
Now open the file in a image edit program (eg. The Gimp, Photoshop) and change it to the battery icon you want, make sure you keep the dimensions and the color depth the same.
It can be a little tricky to get the battery you make, on the the right place, so I suggest to make your battery within the red area I made (It can be longer in width, but I suggest you keep the height the same).
(Do not use MSPaint or Paint Shop Pro 9 for this, this programs cannot keep the color depth right. Use The Gimp or Photoshop, these work both fine.)
When you changed the battery, press Replace in the RCO Editor, and select the file you changed.

THIRD:
[Image: bol.gif]Backup system_plugin_fg.rco first!

Flash the file system_plugin_fg.rco to f0:\vsh\resource. (Advance » Toggle USB (Flash0)
NOTE: This can brick your psp, check ''The Guide for if anything goes wrong'' for more information.
[Image: systemfgflashdh1.jpg]


[anchor]squee666/anchor]6. Custom XMB Waves (All Custom firmwares)

Click to Expand
FIRST:
[Image: bol.gif]DOWNLOAD  XMBWave Editor
[Image: bol.gif]Hex Workshop.

SECOND:
Once you unpacked 'XMBWaveEdit.rar', open system_plugin_bg_deflate.bin in a hex editor.
(I suggest you backup the system_plugin_bg_deflate.bin file, because if you mess it up you need to download it again or extract it again.)
Once you opened it, select Edit » 'goto' (Ctrl+G).
[Image: hexgotopg1.jpg]

Now choose one of those decimals:
Decimals you can edit for:
[Image: bol.gif]Colour: 7767 to 7841
[Image: bol.gif]Shape: 528 to 946 don't edit too much because if you do, the wave will disappear or become crazy.
[Image: bol.gif]Colour and Contrast: 7653 to 7766

Note: Decimals are in pairs of two so, 03, 05, FF.....
Decimals can be changed from 01 through FF!
Make sure you edit the right decimals, you can find these numbers on the left.

[Image: decnumbum3.jpg]

Example for Colour: 7767 to 7841
[Image: wavecolourdg6.jpg]

Once you changed everything you want, save the file.
Now run 'start.bat' and your new system_plugin_bg.rco will be created.

THIRD:
[Image: bol.gif]Backup system_plugin_bg.rco first!

Flash the file system_plugin_bg.rco to f0:\vsh\resource. (Advance » Toggle USB (Flash0)
NOTE: This can brick your psp, check ''The Guide for if anything goes wrong'' for more information.
[Image: flashsystembgeo5.jpg]

8. Your Background with Wave (All Custom firmwares)

Click to Expand
This is the easiest mod in my whole tutorial!
*Warning: Some icons can be acting weird if you do this mod, however you can change this back by placing the old background back.*

FIRST:
Just get your picture (480x272 This is Full Screen), then open it in a image editing program (MS Paint also work),   resize it to 352x199 and save it as 01-12.bmp.
Here are some links for backgrounds:
[Image: bol.gif]Link 1
[Image: bol.gif]Link 2
[Image: bol.gif]Link 3
[Image: bol.gif]Link 4

SECOND:
[Image: bol.gif]Backup 01-12.bmp first!

Flash the file 01-12.bmp to f0:\vsh\resource.
Get into Recovery mode » Advance » Toggle USB (Flash0).

NOTE: If there is something wrong with the picture somehow, it will appear blank/white.
[Image: 1tot12flashpi0.jpg]

*Does this not work right?
Try replacing your background with the background in this download (Just cut and paste) and resize it to 352x199:
[Image: bol.gif]DOWNLOAD
[Image: barys2.gif]


9. Custom Busy Icons (All Custom firmwares)

Click to Expand
FIRST:
[Image: bol.gif]DOWNLOAD ZiNgA BuRgA's RCO Editor

SECOND:
After you extracted the files, open the RCO Editor.
Then select: Open RCO...
Now open a decrypted version of the system_plugin_fg.rco, download one here.
[Image: rcoeditsystemfgbusywp8.jpg]

Now click the image [img]tex_busy (The busy image, as you can see above), and click Extract... , now save it in the folder you want.

Now open the file in a image edit program (eg. the gimp, photoshop) and change it to the icon you want, make sure you keep the dimensions and the color depth the same.

(Do not use MSPaint or Paint Shop Pro 9 for this, this programs cannot keep the color depth right. Use The Gimp or Photoshop, these work both fine.)

You need to replace your animation with the original.
Example of hue and saturation changed icons:
[Image: busyimageem1.jpg]

When you changed the animation, press Replace in the RCO Editor, and select the file you changed.
(If the program stops you from replacing, try to save it in 256 colours, or convert the picture to that number of colours.)

THIRD:
[Image: bol.gif]Backup system_plugin_fg.rco first!

Flash the file system_plugin_fg.rco to f0:\vsh\resource.
Get into Recovery mode » Advance » Toggle USB (Flash0).

NOTE: This can brick your psp, check ''The Guide for if anything goes wrong'' for more information.
[Image: systemfgflashdh1.jpg]
[Image: barys2.gif]
[Image: barys2.gif]


11. Your own website link in XMB (All Custom firmwares)

Click to Expand
FIRST:
[Image: bol.gif]DOWNLOAD htmlviewer_plugin.prx
[Image: bol.gif]DOWNLOAD PSP Filer
[Image: bol.gif]Download Hex Workshop.



SECOND:
Place the both folders (%__SCE__Filer + __SCE__Filer) in ms0:\PSP\GAME150.
Now place htmlviewer_plugin.prx in ms0:\ (The root of your memorystick)
-Now open  htmlviewer_plugin.prx in a hex editor.
Press Ctrl+G and press HEX now enter offset 962C and press Go.
Now edit this in the right screen:
[Image: htmlvieplugea2.jpg]

THIRD:
[Image: bol.gif]htmlviewer_plugin.prx  first!

This looks a bit long but it acutally takes only 5 minutes or even less.

-Start PSP Filer
(If you get chinese language, press Select, O, [], X)
-Now select htmlviewer_plugin.prx in the list
-Now press X and then O to copy it to the ramdisk
-Once there is a message that sais: '1 file(s) copied' press O
-Press start until you see this in the left-top corner of the screen: file:[flash0:/]
-Select vhs and press O
-Now select nodule and now press this buttons:
Left trigger + D-Pas left + right trigger (Now your in 'Hacker' mode)
-Press X and then D-Pad Left to move the file.
-Now press O to replace it.
-Press O again to close the message.
-Close the program
-DONE
[Image: barys2.gif]

12. Custom Coldboot Text (All Custom firmwares)

Click to Expand
FIRST:
[Image: bol.gif]DOWNLOAD ZiNgA BuRgA's RCO Editor

SECOND:
After you extracted the files, open the RCO Editor.
Then select: Open RCO...
Now open a decrypted version of the opening_plugin.rco, download one here.
[Image: openingcoldbootpw7.jpg]

Now click 'tex_logo' as I did in the picture above, and click Extract...
Now select the folder where you like to save this picture, and give it a name.

Now open it in a image editing program.
(Do not use MSPaint or Paint Shop Pro 9 for this, this programs cannot keep the color depth right. Use The Gimp or Photoshop, these work both fine.)

Note: You can only use 256 colours to draw/write what you want.
[Image: openingcoldboottextrt3.jpg]

When you are done with editing, click Replace... in the RCO Editor, and select the picture you edited.

THIRD:
[Image: bol.gif]Backup opening_plugin.rco first!

Flash the file opening_plugin.rco to f0:\vsh\resource.
Get into Recovery mode » Advance » Toggle USB (Flash0).

NOTE: This can brick your psp, check ''The Guide for if anything goes wrong'' for more information.
[Image: openingflashre4.jpg]
[Image: barys2.gif]


13. Custom Gameboot Text (All Custom firmwares)

Click to Expand
FIRST:
[Image: bol.gif]DOWNLOAD ZiNgA BuRgA's RCO Editor

SECOND:
Extract all the files from 'RCOEdit112b.rar' and then open the RCO Editor.
Then select: Open RCO...
Now open a decrypted version of the opening_plugin.rco, download one here.
[Image: openinggamebootal7.jpg]

Now click 'tex_psp_logo' and click Extract...
You now get a screen that let you save this picture, now just select the folder you want and name your picture.

Once you saved your picture, open it in a image editing program.
(Do not use MSPaint or Paint Shop Pro 9 for this, this programs cannot keep the color depth right. Use The Gimp or Photoshop, these work both fine.)

Note: You can only use 256 colours to draw/write what you want.
[Image: openinggameboottextvw0.jpg]

When you are done with editing, click Replace... in the RCO Editor, and select the picture you edited.

THIRD:
[Image: bol.gif]Backup opening_plugin.rco first!

Flash the file opening_plugin.rco to f0:\vsh\resource.
Get into Recovery mode » Advance » Toggle USB (Flash0).

NOTE: This can brick your psp, check ''The Guide for if anything goes wrong'' for more information.
[Image: openingflashre4.jpg]
[Image: barys2.gif]

14. Network update Homebrew Launcher (All Custom firmwares)

Click to Expand
FIRST:
[Image: bol.gif]DOWNLOAD update_plugin.prx
[Image: bol.gif]DOWNLOAD a hex editor (Hex Workshop and XVI32 are almost the same)

SECOND:
Open the Hex Editor and click Edit » Find... (Just search for Find in XVI32)
Now a search box will show up and then type GAME.
[Image: findgameupdateqr7.jpg]

Now click OK.
(Maybe you get a message like this:
[Image: updatemessagecl5.jpg]
Just click OK.)

Once it found GAME, you will see this:
[Image: hexupdateda5.jpg]

This is the path where the 'Network Update' will run the file from.
Just edit the path between the red lines that you see in the picture above.
Now click Save (Ctrl+S)

THIRD:
[Image: bol.gif]Backup update_plugin.prx first!

Flash the file update_plugin.prx to f0:\vsh\nodule.
Get into Recovery mode » Advance » Toggle USB (Flash0).

NOTE: This can brick your psp, check ''The Guide for if anything goes wrong'' for more information.
[Image: flashupdatevr5.jpg]

To Reboot AND Shutdown your PSP instead of running homebrew, try to flash this PRX (To install check the THIRD part): DOWNLOAD
Note: To Shutdown: Hold 'L' while clicking the Network Update icon.

[Image: barys2.gif]

15. Custom USB Sliding Bar (All Custom firmwares)

** Coming soon! **


[Image: barys2.gif]

16. Custom Home Screen (All Custom firmwares)

** Coming soon! **


[Image: barys2.gif]

The Guide for if anything goes wrong:
1. Recovery Menu

[Image: barys2.gif]
What the hell is a brick?
A bricked PSP is one in which the firmware has been corrupted so that the PSP will no longer start up.
Bricking usually occurs when a homebrew application is incorrectly installed, or a system update is interrupted while in progress.
[Image: barys2.gif]

You bricked your psp, and the only thing you can do is getting into the Recover Menu, what now?
First check some things:
  • The PSP is fully charged and still connected to the charger.
  • You have a folder called: RECOVERY in ms0:\PSP\GAME\ so (ms0:\PSP\GAME\RECOVERY).
  • You have downloaded the Official SONY 1.5 update
  • You have the Official SONY update of the firmware that you want to use for your custom firmware, this can be firmware 3.02/3.03/3.10, nothing else.

Now the Instalation/Recovery:
FIRST:
1. Download the installer for the custom firmware you want. (3.02/3.03/3.10)
2. Copy the EBOOT.PBP in the map named 'oeupdmaker' to the RECOVERY folder.
3. Rename the EBOOT.PBP from firmware 1.5 to 150.PBP
4. Rename the EBOOT.PBP from firmware you want to eg.
[Image: bol.gif]3.02 » 302.PBP
[Image: bol.gif]3.03 » 303.PBP
[Image: bol.gif]3.10 » 310.PBP
5. Place BOTH of these files in the RECOVERY folder, just like you did with the EBOOT.PBP.
6. Now you have 3 files files in the RECOVERY folder: EBOOT.PBP, 150.PBP and the other firmware pbp.
7. Run the EBOOT.PBP by getting into the Recovery menu (Press R at startup), and select: 'Run program at'.

SECOND:
1. Remove the 3 files in the RECOVERY folder.
2. Copy the EBOOT.PBP, from the folder ***oeflasher, to the RECOVERY folder. (*** means the version of the custom firmware)
3. Copy the data.dxar (This files is created by the program that you ran earlier, the file is in the root of your MemoryStick), to the RECOVERY folder.
4.  Now you have 2 files files in the RECOVERY folder: EBOOT.PBP and the DATA.DXAR.
5. Run the EBOOT.PBP by getting into the Recovery menu (Press R at startup), and select: 'Run program at'.
6. The program will now flash the custom firmware.

You are done now, your psp is fully recovered.

[Image: barys2.gif]




Credits:
Guide:                     SXForce
RCO Editor:             ZiNgABuRgA
X-Flash:                  Art
xmbPackager v0.3:  Kgsws
Hex Workshop:        BreakPoint Software
XVI32:                    Christian Maas

Note: You can click on a application name to view more details about it.

Original posted at PSP-HACKS.COM
  Replies (55)
 PSP2???
20/02/2007 01:53 AM Posted by: Incadude in PSP News
[Image: psp2.jpg]

NVIDIA is hiring eDRAM engineers for possible upcoming PSP-sucessor GPU

NVIDIA is currently recruiting senior eDRAM design engineers. The new job is for a full-time position at NVIDIA’s Santa Clara, California offices. There is no mention what projects the senior eDRAM design engineers will work on, however, the job responsibilities include:
  • Transistor level circuit design for Graphics processors and other ASICs targeted at desktop, laptop, workstation, set-top box, wireless and home networking markets.
  • Participating in circuit design of eDRAM macros.
  • Circuit simulations, layout extractions, timing characterizations and timing file generations.
  • Layout floor planning and layout supervisions.
  • Circuit level logical function and transistor level verifications.
NVIDIA does not have any products that integrate eDRAM now, however, Beyond3D forum members believe the job posting is for an upcoming GPU for Sony’s PSP successor. This makes sense as the Sony PS2 and PSP GPU feature eDRAM.  Although NVIDIA is a likely candidate as the GPU designer for Sony’s PSP successor, neither companies have made any announcements.

Other gaming consoles that take advantage of eDRAM include Nintendo’s Gamecube, Wii and Microsoft’s Xbox 360; however, all three consoles feature AMD ATI designed graphics processors. On the eDRAM side of things, IBM recently unveiled the fastest eDRAM technology yet.

Source: [Image: top.gif]
  Replies (2)
 Custom Firmware 1.53
19/02/2007 11:53 PM Posted by: Incadude in PSP News
[Image: prxloadermj3_qjpreviewth.jpg?424809]

eiffel56 has released an custom firmware for you ancient devoted 1.5 users. Its basically a 1.5 with added abilities.

So heres what's extra:
  • Recovery Menu
  • Boot Menu
  • Integrated uxMB
  • You can start 1.00 style EBOOTS
  • You can hide corrupt data icons
  • You can start ISO/DAX files
  • You can load your own plugins(PRX)
  • Autoboot EBOOTs at startup
  • Never turn off the backlight in XMB
SO read the readme.txt to read more into this custom firmware.

[Image: psp-haxorsdownload.jpg]
  Replies (4)
 [Random Info] (decrypted) RCO File Format
19/02/2007 10:42 PM Posted by: ZiNgA BuRgA in PSP Customisation Developments
Note, I'm assuming you already have basic hex editing knowledge...

This is the file structure, as far as I know, of decrypted (FW2.60 and lower) RCOs.
Many thanks go to Z33 at MaxConsole for providing much information on this.  His thread can be found here.

NOTES:
  • I tend to refer to "encrypted" - RCOs aren't really encrypted, but just compressed in an unknown way.  I use this word for convenience purposes :P
  • Everything is aligned to a 4 byte boundary, so basically all values are DWords.  There are one or two which are just Words however.  Thus, padding is used to achieve this 4 byte boundary at times
  • Lengths don't include padding (obviously)
  • For text entries, they are always separated by at least one null character

Anyways, there's 3 basic sections of the RCO.

Contents

RCO Header
OffsetType/SizePurpose
0x00DWordRCO Signature, always is 0x46525000 (.PRF)
0x04DWordAppears to be a switch of some kind:
  • 0x70 or 0x71 means normal table section
  • 0x90 means a deflated table section
  • larger values indicate that it's "encrypted"
0x08DWordUnknown - always seems to be 0x00
0x0CDWordSeems to change when different compressed headers are used:
  • 0x00 = normal header
  • 0x10 = deflated header
  • 0x20 = "encrypted" header
For the following sections, 0xFFFFFF means the section doesn't exist
0x10DWordOffset of the "information"? table - always is 0xA4
0x14DWordUnknown.  Always seems to be 0xFFFFFF
0x18DWordOffset of the text table
0x1CDWordOffset of the sound (VAG) table
0x20DWordOffset of the model (OMG) table
0x24DWordOffset of the image (MIG) table
0x28DWordUnknown.  Always seems to be 0xFFFFFF
0x2CDWordUnknown.  Always seems to be 0xFFFFFF
0x30DWordOffset of the "page" table
0x34DWordOffset of the "anim" table
0x40DWordOffset of the label table
0x44DWordLength of the label table
0x48DWordOffset of the "native:/" table
0x4CDWordLength of the "native:/" table
0x50DWordOffset of the text pointer table.
0x54DWordLength of the text pointer table.
0x58DWordOffset of the image (MIG) pointer table.
0x5CDWordLength of the image (MIG) pointer table.
0x60DWordOffset of the model (OMG) pointer table.
0x64DWordLength of the model (OMG) pointer table.
0x68DWordOffset of the sound (VAG) pointer table.
0x6CDWordLength of the sound (VAG) pointer table.
0x70DWordOffset of the "page" pointer table.
0x74DWordLength of the "page" pointer table.
0x78DWordOffset of the "anim" pointer table.
0x7CDWordLength of the "anim" pointer table.
0x38DWord(note the offset) Offset and length to some text.  If this text doesn't exist, this value is the same as the value at 0x40, and length is 0x00.
0x80DWordOffset of the image (MIG) data section
0x84DWordLength of the image (MIG) data section
0x88DWordOffset of the sound (VAG) data section
0x8CDWordLength of the sound (VAG) data section
0x90DWordOffset of the model (OMG) data section
0x94DWordLength of the model (OMG) data section
0x98DWordEnd marker???  Always seems to be 0xFFFFFF
0x9CDWordEnd marker???  Always seems to be 0xFFFFFF
0xA0DWordEnd marker???  Always seems to be 0xFFFFFF


Table Section (begins at 0xA4)
If the table area is compressed (FW2.60), there are 3 DWords before the compressed data:
OffsetType/SizePurpose
0x00DWordPacked size of all the table sections
0x04DWordUnpacked size of all the table sections
0x08DWord"Something about the unpacked size of the next file after the packed header..." -Z33

For FW2.71+, the table seems to be packed in parts, rather than the whole table section packed together.


Now, back to the uncompressed header.
Each table entry seems to have a 40 byte header, followed by the entry data. (note, the "main entry" refers to the first one - which "contains" all the other entries)

Table entry headers
OffsetType/SizePurpose
0x00ByteID of the current entry???  The main entry, seems to have a value of 1.  Some subentries seem to use this as the "depth" of the current entry.
0x01ByteType of the entry.  Here's a few:
  • 0x01 = main entry
  • 0x03 = text
  • 0x04 = image (GIM or PNG)
  • 0x05 = model (GMO)
  • 0x06 = sound (VAG)
  • 0x08 = "page"
  • 0x09 = "anim"
The "anim" sections seem to have subentries with higher values
0x02WordUnknown - always seem to be 0x0000
0x04DWordOffset to the label (relative to the label table).  0xFFFFFFFF means the label doesn't exist for this entry
0x08DWordSize of entry header? (always 0x28)
0x0CDWordOffset of current entry to first entry (of same depth)?
0x10DWordNumber of subentries in this one
0x14DWordSize of the entry
0x18DWordOffset to the next entry?
0x1CDWordCurrent entry offset from the main table (which is always 0xA4)
0x20DWordUnknown - always seem to be 0x00000000
0x24DWordUnknown - always seem to be 0x00000000
For entry headers longer than this, the rest is unknown

Table entry data
This varies, depending on the type:
0x03 (text)
This starts off with 2 bytes, before the actual text indexes.
OffsetType/SizePurpose
0x00DWordLanguage ID:
  • 0x10000 = Japanese
  • 0x10001 = English
  • 0x10002 = French
  • 0x10003 = Spanish
  • 0x10004 = German
  • 0x10005 = Italian
  • 0x10006 = Netherlands
  • 0x10007 = Portugese
  • 0x10008 = Russian
  • 0x10009 = Korean
  • 0x1000A = Chinese (Traditional)
  • 0x1000B = Chinese (Simplified)
0x04DWordNumber of text indexes in current entry
After this, is the actual text indexes (each is 12 bytes long):
OffsetType/SizePurpose
0x00DWordOffset to label, relative of the label table
0x04DWordLength of the text
0x08DWordOffset of the text, relative to the text data start address
0x04 (image)
OffsetType/SizePurpose
0x00WordFile type ID (0x05 = MIG)
0x02WordCompression flag?  0x00 = uncompressed, 0x01 = zlib deflated
0x04DWordPacked size of data without padding
0x08DWordOffset of data relative to the beginning of the image data section
0x0CDWordSize of unpacked data
0x05 (object)
OffsetType/SizePurpose
0x00WordFile type ID? (0x00 = OMG)
0x02WordCompression flag?  0x00 = uncompressed, 0x01 = zlib deflated
0x04DWordPacked size of data without padding
0x08DWordOffset of data relative to the beginning of the image data section
0x0CDWordSize of unpacked data
0x06 (sound)
OffsetType/SizePurpose
0x00WordFile type ID? (0x01 = VAG)
0x02WordNumber of channels, either 0x01 or 0x02
0x04DWordSize of data (if there's two channels, then this is the size of both)
0x08DWordOffset of the sound data to the beginning of the sound data section
0x0CDWordSize of left channel VAG
0x10DWordOffset of left channel VAG to the beginning of the sound data section
Note, the following values don't exist for single channel VAGs
0x14DWordSize of right channel VAG
0x18DWordOffset of right channel VAG to the beginning of the sound data section
0x08 (page)
In this section, the entry ID (from the table entry header described above) is rather important in determining what the page entry does, and the type of values under it.

A few common common characteristics first though:
Many entries have a "position description" at the beginning.  This consists of 13 consecutive float values:
#Purpose
1Position X
2Position Y
3Object Scale
4Colour Channel (Red)
5Colour Channel (Green)
6Colour Channel (Blue)
7Colour Channel (Alpha)
8Dimension - Width
9Dimension - Height
10Unknown
11Stretch X
12Stretch Y
13Element Scale
For the position values, 0 = centre of screen.  For the colour channels, 0 = no colour, 1 = full colour (for example, the colour red (FF0000FF in hex colour code) would be R:1, G:0, B:0, A:1)

Another common thing are "objects".  These consist of two DWords, the first is a type descriptor, the second refers points to the object.  Below is a list of the types of objects known:
TypePointer
0x400 (event)Points to a native:/ entry relative to the "native" table.
0x401 (text)The text entry #.  For example, 0 = the first text entry.
0x402 (image)Absolute pointer to the image table entry.
0x403 (model)Absolute pointer to model table entry.
0x407 (page?)Same as 0x409???
0x408 (anim)Absolute pointer to anim table entry.
0x409 (page)Absolute pointer to page table entry.
0xFFFF (blank)This value should always be 0xFFFFFFFF

Now onto each type of entry.  The following table shows the types of values (in order) under each particular type of page entry. (note, RCO Editor will stick a "8" at the front, thus 0x802 instead of 0x02)
TypeData
0x01 (page)* note that this is always a top level page entry
0x111 (dunno what this does)
<object (event)>
<object (event)>
<object (event)>
<object (event)>
0x02 (plane)* this entry seems to describe an image
<position description>
<DWord>
<object (event)>
<object (image)>
<DWord>
0x03 (button)* this entry seems to be used for "buttons" or small images
<position description>
<DWord>
<object (event)>
<object (image)>
<object (image)>
<object (image)>
<object>
<object (event)>
<object (event)>
<object (event)>
<object (event)>
<object (event)>
<object (event)>
<object (event)>
<object (event)>
<DWord>
0x04 (xmenu? [XmbMenu?])<position description>
<?>
<object (event)>
<DWord> * number of sub menus?
<object (event)>
<object (event)>
<object (event)>
<object (event)>
<object>
0x05 (list [XmbMainList?])* this entry seems to only appear for XMB main menu icons
<?>
<object (image)>
<object>
0x06 (xlist [XmbList])<position description>
<DWord>
<object (event)>
<DWord> * seems to be number of items under this xlist
<object (event)>
<object (event)>
<object (event)>
<object (event)>
<object (event)>
<object (event)>
<object (event)>
0x07<position description>
<DWord>
<object (event)>
<Float>
<?>
<object>
<object>
<object>
0x08 (scroll?)* A scrollbar???  Only seems to appear under lists
<position description>
<DWord>
<object>
<Float>
<Float>
<?>
<object>
<object>
<object>
<object>
<object>
0x09 (mlist [MenuList])* seems to describe those context menus, for example, selecting a language in the System Settings
<position description>
<DWord>
<object (event)>
<DWord>
<?>
<DWord>
<Float>
<Float>
<object>
<object (event)>
<object>
<object>
<object>
<object (event)>
<object>
<object>
<object>
<object (event)>
<object>
0x0A (item [MenuItem])* Item under MenuList
<object (text)>
<object (text)>
<object>
0x0B* This type doesn't seem to exist :P
0x0C (item_xlist [XmbListItem])<object (image)>
<object (text)>
<object>
0x0D (text)<position description>
<DWord>
<object>
<object (text)>
<object>
<DWord>
<DWord>
<Float>
<Float>
<Float>
<Float>
<Float>
<Float>
<Float>
<?>
<?>
<?>
<?>
<Float>
<Float>
<Float>
<?>
<Float>
<Float>
<Float>
<Float>
<?>
<?>
<?>
<Float>
<Float>
<Float>
<Float>
<DWord>
0x0E (model)<position description>
<?>
<object (event)>
<object (model)>
0x0F<position description>
<DWord>
<object (event)>
<?>
<DWord>
<object>
<object>
<object (event)>
<object (event)>
<object (event)>
<object>
<object>
<object>
<object>
<object>
0x10<object>
0x11 (item_spin)* seems to be some item which often changes - eg the seconds counter when listening to music
<position description>
<DWord>
<object (event)>
<DWord>
<DWord>
<DWord>
<DWord>
<DWord>
<Float>
<object>
<object>
<object (event)>
<object (event)>
<object>
<object>
<object>
<object>
<object (page)>
<object (page)>
0x12 (group)* used to group page resources together?
<position description>
<DWord>
<object>
0x13 (list?)<position description>
<DWord>
<object>
<DWord>
<?>
<Float>
<object>
<object>
<object>
<object>
<object>
<object>
<object (event)>
<object>
0x14 (litem?)<object (text)>
<object>
<object>
0x15 (edit?)* An edit field?
<position description>
<DWord>
<object (event)>
<?>
<?>
<?>
<?>
<object>
<object>
<object (event)>
<object>
<object>
<object>
<object (event)>
<object (event)>
<object (page)>
<object (page)>
<object>
0x16 (clock)* O_o, a clock :P
<position description>
<DWord>
<object (event)>
<DWord>
<Float>
<object (text)>
<object (text)>
<object>
<object>
<object (event)>
<object (event)>
<object>
<object>
<object (event)>
<object (event)>
<object>
<object>
<object (event)>
0x17 (ilist [InfoList])<position description>
<DWord>
<object (event)>
<Float>
<object>
<object>
<object (event)>
<object>
0x18 (item [InfoItem])* A piece of "information"
<object (text)> * Default text to display
<object (text)> * Error/alternative text to display
0x19 (icon?)<position description>
<?>
<object (event)>
<object (image)>
<object (image)>
<object>
0x09 (anim)
Note that the following information has not been tested yet - it's actually just my idea on how it works :P
The structure of anim resources are similar to that of page resources.  There's no multiple-depth subentries, and subentries don't have a label.
It seems that each subentry describes a "command".  The PSP, when the animation sequence is fired, will start executing each command in order in parallel, until a DELAY (0x07) command is reached.
Most of these commands involve modifying some attribute of a page resource - for these, the first bit of data is the <object (page)> to modify, then the next item would be the time (in ms) it takes to perform the animation (for example, if a set position command is given, with time=100, then the PSP will take 0.1 seconds to animate the page moving to the specified position).  Times are floats (so decimals accepted).
Note that anim resources will borrow the <object> concept from page resources.

Here's the list of IDs: (note, RCO Editor will stick a "9" at the front, thus 0x902 instead of 0x02)
IDDescriptionData
0x01Parent* No data
0x02Set pos.<object (page)>
Time
<?>
Target X
Target Y
<?>
0x03Set colour<object (page)>
Time
<?>
New Red value
New Green value
New Blue value
New Alpha value
0x05Set scale?<object (page)>
Time
<?>
New Object Scale?
New X Scale?
New Y Scale?
0x06Set alpha<object (page)>
Time
<?>
New Alpha value
0x07DelayTime
0x08Fire event<object (event)>
0x09Some switch???0xFFFFFFFF
0x0B???<object (page)>
<?>
<?>
<Float>
<?>
<?>
<Float>

Entry Pointer sections
These immediately follow the above tables.  They just contain absolute offsets to the various subentries above.  These sections are described by the values from 0x50 to 0x80, and follow the same order.
However, these seem to be out of order, and have "null" entries.  Don't understand why, lol Erk


Text/"native:/" Tables
The "text tables" (offset is given at 0x40 and 0x48) are just ASCII text separated by null characters.  Each string is aligned to a 4 byte boundary (thus extra padding may be used).


Data Area
Basically, where all the data is stored...
Resources are aligned to 4 byte boundaries (thus padding may be used to achieve this).
Deflated resources have the 2 byte signature, 0xDA78.  "Encrypted" resources have the 2 byte signature, 0xD905.



Alright, that's all I really know about the RCO format - Z33 has some more info in his documentation (can be found here).

Hope this guide helped someone Erk
  Replies (19)
 EBGames are a bunch of dicks
19/02/2007 09:31 PM Posted by: Ge64 in PSP News
[Image: ebgamesflyer_qjgenth.jpg?473402]

double you tee eff!!!1
  Replies (9)
 PspIrDA v0.0.2
19/02/2007 07:46 PM Posted by: ZiNgA BuRgA in PSP News
Quote:Does anybody remember PspIrDA? For the guys who don't, the homebrew application allowed you to transfer files between your PSP and your cell phone, PDA, PC, and pretty much any device compatible with the application's protocol (nope - no DS here). With that said, author Mat17 has just released version 0.0.2.

Major changes include improved device compatibility and transfer speed, although the application's GUI has been kept sparse. Mat notes that version 0.0.3 will carry improved transfer speed, and (it is hoped) an improved GUI.

Included in the bundle is a debug version of the app, along with this note from the author:

Quote:I've included in the archive a debug version which outputs a debug.log and dump.log files in the pspirda directory. So if this release does not work for you, try a transfer (send or receive) with this debug version and send me the corresponding debug.log and dump.log.

As always, wee recommend a thorough viewing of the app's README, along with a trip to the release thread for any further details. Wee thank Mat17 for the effort, and hope you guys enjoy trying this application out.
Source: http://pspupdates.qj.net/PspIrDA-v0-0-2/pg/49/aid/83443

Hmm, sounds quite an interesting program - hopefully it gets better ;)
  Replies (2)
 Frapsp: new video capture application in the works
19/02/2007 07:41 PM Posted by: ZiNgA BuRgA in PSP News
Quote:Homebrew coder Gunner dropped by our forums today and posted that he is currently working on a new application called Frapsp that will allow users to capture and record game video footage. In case you've noticed, that is what exactly AdePSP's ScreenVideo Capture Module does.

However, Gunner added that he's gunning for a proper capture as well as a better and faster application than SVC. Frapsp is still in its early stages but the owner assures that it doesn't freeze the game. The games may run slower at times but he's working on it, Gunner added.

Frapsp currently uses usbhostfs.prx and psplink.prx butt he plans on including usb host into the plugin. Good luck to Gunner on his Frapsp! Wee are sure that the community will be there the moment you release this application.

Proof of Concept videos
Source: YouTube

Source: YouTube

Source: YouTube
Source: http://pspupdates.qj.net/Frapsp-new-vide.../aid/83453

Hmm, sounds interesting I guess, though I'm not sure how all that would actually work Erk
  Replies (5)
 nVidia releases C compiler and SDK for 8800+ GPUs
19/02/2007 08:12 AM Posted by: Ge64 in Tech News
nVidia, by far the best GPU maker of course :cheesygrin: has released CUDA, a C compiler package which allows programmers to run calculations on the Geforce 8800 and up series GPUs. CUDA uses the GPU as a coprocessors, so now software can be made that uses the GPU to do stuff so the CPU can do other stuff. Just to show how cool this is, the Geforce 8800 GTX has 128 cores (shaders) running at 1.1Ghz each. And with 2 of these cards in SLi setup, you have a 1+ teraflops system (which is really fast).

Link
  Replies (6)

 
Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  


Latest Threads
What Anime are you watchi...
Last Post: pyokala
05/12/2024 08:05 AM
» Replies: 779
» Views: 470036
Still at EP standing cont...
Last Post: amoonrabbit
20/10/2024 12:18 PM
» Replies: 400
» Views: 332539
ONEDEADLYVENOM's Gameboot...
Last Post: ONEDEADLYVENOM
11/10/2024 09:56 PM
» Replies: 96
» Views: 152774
Playstation Portable Onli...
Last Post: tranE
04/08/2024 05:37 AM
» Replies: 6
» Views: 7080
Archived 4chan stories
Last Post: tranE
03/08/2024 05:12 PM
» Replies: 2
» Views: 9226
Rikka Takanashi Theme
Last Post: amoonrabbit
28/05/2024 11:53 PM
» Replies: 2
» Views: 5364
Darth Vader PSP Persuader...
Last Post: BigDaddyWeaves
28/04/2024 05:49 AM
» Replies: 5
» Views: 23126
OG XBOX
Last Post: amoonrabbit
15/04/2024 08:55 AM
» Replies: 1
» Views: 5114
Watcha Listening to Right...
Last Post: amoonrabbit
05/10/2023 07:36 PM
» Replies: 2790
» Views: 1775584
Anyone get a Steam Deck?
Last Post: amoonrabbit
05/10/2023 07:30 PM
» Replies: 5
» Views: 6145

Online Users
There are currently 202 online users.
» 2 Member(s) | 200 Guest(s)
JeaoneZilug, Methrenwet



 Quick Theme: