PS4:Custom Themes

This page will cover the creation of the two types of custom themes that you can make. Dynamic themes are themes that have a moving background on the homescreen, while static themes have a plain static image as the background.

Creating a Custom Dynamic Theme

 * Requirements/Tools needed:
 * Your source video must be in a format that can be split into a sequence of frames. Recommended: .mp4 for videos or .gif.
 * Free Video to JPG Converter by dvdvideosoft (freeware, a different program can be used) for converting your source video/gif to frames.
 * TGA-PNG-JPG-TO DDS by Backporter. Note: You must download and install Nvidia GameWorks Legacy Texture Tool:DDS Utilities for the program to work!
 * A random content ID generator such as Random-Content-ID by Backporter.
 * orbis-pub-sfo and orbis-pub-gen from FPKG Tools.
 * Dynamic Custom Theme sample discovered by yy oossk and merged/edited by florinsdistortedvision:

Converting Source Video to Frames Usable by PS4

 * 1) Open Free Video to JPG Converter and add your source, in Extract section select Total of 34 frames from video. Note: You can select 8 more, as long as you also modify the .xml file with the new frames.
 * 2) Your source will now be in 34 .jpg files. It is advised that you rename them now from 00.jpg to 33.jpg.
 * 3) The PS4 theme system uses a sequence of .dds pictures that are controlled by a .xml file, so we need to convert our .jpg files to .dds. Open TGA-PNG-JPG-TO DDS, add all your frames, leave default dxt1a, and click start. You should now have files from 00.dds to 33.dds, ready for PS4 to read.
 * 4) Replace all the .dds files with the ones included in the sample archive in `scene/background.raf/`.

Customizing the Speed of Frames
A crucial step is figuring out the right speed of the frames, unfortunately this will most likely be needed.


 * 1) Open scene/background.raf/index.xml and look for lines that contain: ` `. The default value is 2, tinker with the values until your frames are played correctly.
 * 2) * Note: You must change all of them!
 * 3) At this point, if you had more frames converted in step 1, you can add the additional lines, following the same structure as the other ones.
 * 4) Save the file.

Other Modifications
Here are all the other things you can change:
 * `sce_sys/icon0.png`. Dimensions must be: 512x512, file must be png! This is the icon of the theme seen in Settings-Theme.
 * `sound/bgm_home.at9` and all the .vag files. bgm_home is the background music, a .wav can be converted via at9tool. The .vag files are the sound effects, .wav can be easily converted via vag2conw.exe.
 * Note: Files must be at 48000Hz.
 * `texture/content_icon` and `texture/function_icon` is where all the icons are. Content_Icon files must be .png at 512x512. Function_Icon files must be .png at 128x128.
 * `texture/preview.png` is the preview file for the theme (just before applying the theme in Settings). Must be .png at 1920x1080.
 * `/theme.xml`. Here you can change the colors of the font and what color the theme will use for menus like Settings, etc.

Example of things you can change via theme.xml:
 * ` 0< /themecolor >` holds the color for the menus. A description is present inside the .xml file telling which color is which number (ex: 1=pink, 2=red, etc).
 * ` #FF4F7ECE< /fontcolor >` holds the text color. Value is hexadecimal.
 * ` #00000000< /fontshadowcolor >` holds the shadow font color. Value is hexadecimal.
 * ` #FF00BAFF< /focuscolor >` holds the focus color of the font. Value is hexadecimal.
 * `< homebgm-enable >True< /homebgm-enable >` specifies whether the theme should use your custom background music or the default one. True=custom, False=default.

Editing Param.sfo

 * 1) Open sce_sys/param.sfo using orbis-pub-sfo.
 * 2) Make sure Category is PS4 System SoftwareTheme, input your Content-ID using Random-Content-ID by Backporter.
 * 3) In Title Text section, you can input the Theme Title and the Theme Provider (your name). These will be seen in Settings-Theme in Theme Information settings.
 * 4) Optionally you can input a Theme Version such as 01.12 in Theme Settings section and add other languages in Add/Delete Languages section.
 * 5) Save the file.

Building the Theme as a fpkg

 * 1) Open orbis-pub-gen.
 * 2) File - New Project - System Software Theme Package.
 * 3) Double click Image0.
 * 4) Drag and drop all the folders and files into the File Name section.
 * Note: Do not drag a single folder containing all the files, the structure should be: sce_sys folder, scene folder, sound folder, texture folder and theme.xml (no other folders)!
 * 1) Close the window.
 * 2) Select Command - Project Settings - Package tab.
 * 3) Input the same Content-ID as made in the param.sfo file. Passcode can be all 0’s. Select Ok.
 * 4) Select Build. Select your output path. Select Build.
 * 5) Install the pkg theme via debug settings or your preferred method and apply the theme.

End Notes

 * 1) Before trying to install or if you encounter any error, check the pkg using orbis-pub-chk. It will tell you all the errors. Loudness range error for bgm at9 file can be ignored.
 * 2) If the source files are playing too fast/slow, you must edit the file again. NOTE!: If any edits are made, you have to also make a new Content-ID in param.sfo and the project settings when building pkg, otherwise it will cause issues such as the theme not applying.

Creating a Custom Static Theme

 * 1) Download and extract PS4 Theme Creator v1.2.
 * 2) Launch PS4 Theme Creator.
 * 3) Drag & drop your background and images to the corresponding place.
 * 4) * Function_Icon files must be .png at 128x128.
 * 5) * Content_Icon files must be .png at 512x512
 * 6) * Background should be .png at 1920x1080.
 * 7) Tweak settings on the right context menus.
 * 8) Build and put the .pkg on the root of a USB drive.
 * 9) Navigate on the PS4 to Settings > GoldHEN > Package Installer. Install the pkg.