PS4:Custom Themes: Difference between revisions

From ConsoleMods Wiki
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 1: Line 1:
This 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.
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 ==
== Creating a Custom Dynamic Theme ==
* Requirements/Tools needed:
* 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).
** 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, other program can be used) for converting your source video/gif to frames.
** [https://www.dvdvideosoft.com/products/dvd/Free-Video-to-JPG-Converter.htm 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!'''
** [https://github.com/Backporter/TGA-PNG-JPG-TO-DDS 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
** A random content ID generator such as [https://github.com/Backporter/Random-Content-ID Random-Content-ID by Backporter].
** orbis-pub-sfo and orbis-pub-gen from FPKG Tools .
** orbis-pub-sfo and orbis-pub-gen from [https://github.com/CyB1K/PS4-Fake-PKG-Tools-3.87 FPKG Tools].
** Dynamic Custom Theme sample discovered by yy oossk and merged/edited by florinsdistortedvision: [https://github.com/florinsdistortedvision/PS4DynamicThemeSample/ PS4 Theme Sample]
** [https://github.com/florinsdistortedvision/PS4DynamicThemeSample/ Dynamic Custom Theme sample] discovered by yy oossk and merged/edited by florinsdistortedvision:


=== Converting Source Video to Frames Usable by PS4 ===
=== Converting Source Video to Frames Usable by PS4 ===
* Note: Dynamic themes have a limit of 16MB of video/frames files, so to ensure the theme can be applied, video must be 1280x720, otherwise the theme will give a error when trying to apply.
 
* Open Free Video to JPG Converter and add your source, in Extract section select Total of 34 frames from video (Note! You can select 8more, as long as you also modify the .xml file with the new frames).
{{Warning|Dynamic themes have a limit of 16MB of video/frames files, so to ensure the theme can be applied, video must be 1280x720, otherwise the theme will give a error when trying to apply.}}
* Your source will now be in 34 .jpg files. It is advised that you rename them now from 00.jpg to 33.jpg.
 
* 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.
# 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.
* You should now have files from 00.dds to 33.dds, ready for PS4 to read.
# Your source will now be in 34 .jpg files. It is advised that you rename them now from 00.jpg to 33.jpg.
* Replace all the .dds files with the ones included in the sample archive in `scene/background.raf/`.
# 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.
# Replace all the .dds files with the ones included in the sample archive in `scene/background.raf/`.


===Customizing the Speed of Frames ===
===Customizing the Speed of Frames ===
* A crucial step is figuring out the right speed of the frames, unfortunately this will most likely be needed.
 
* 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. Note!: You must change all of them!
A crucial step is figuring out the right speed of the frames, unfortunately this will most likely be needed.
* 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.
 
* Save the file.
# Open scene/background.raf/index.xml and look for lines that contain: `< case wait = "2" >`. The default value is 2, tinker with the values until your frames are played correctly.
#* Note: You must change all of them!
# 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.
# Save the file.


=== Other Modifications ===
=== 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.
Here are all the other things you can change:
** 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.
* `sce_sys/icon0.png`. Dimensions must be: 512x512, file must be png! This is the icon of the theme seen in Settings-Theme.
** 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.
* `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 .
** texture/preview.png is the preview file for the theme (just before applying the theme in Settings). Must be .png at 1920x1080.
** Note: Files must be at 48000Hz.
** /theme.xml. Here you can change the colors of the font and what color the theme will use for menus like Settings, etc.
* `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.
* Example of things you can change via theme.xml:
* `texture/preview.png` is the preview file for the theme (just before applying the theme in Settings). Must be .png at 1920x1080.
**"< themecolor >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)
* `/theme.xml`. Here you can change the colors of the font and what color the theme will use for menus like Settings, etc.
**"< fontcolor >#FF4F7ECE< /fontcolor >" holds the text color. Value is hexadecimal.
 
**"< fontshadowcolor >#00000000< /fontshadowcolor >" holds the shadow font color. Value is hexadecimal.
Example of things you can change via theme.xml:
**"< focuscolor >#FF00BAFF< /focuscolor >" holds the focus color of the font. Value is hexadecimal.
* `< themecolor >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).
**"< homebgm-enable >True< /homebgm-enable >" specifies whether the theme should use your custom background music or the default one. True=custom, False=default.
* `< fontcolor >#FF4F7ECE< /fontcolor >` holds the text color. Value is hexadecimal.
* `< fontshadowcolor >#00000000< /fontshadowcolor >` holds the shadow font color. Value is hexadecimal.
* `< focuscolor >#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 ===
=== Editing Param.sfo ===
* Open sce_sys/param.sfo using orbis-pub-sfo.
# Open sce_sys/param.sfo using orbis-pub-sfo.
* Make sure Category is PS4 System SoftwareTheme, input your Content-ID using Random-Content-ID by Backporter.
# Make sure Category is PS4 System SoftwareTheme, input your Content-ID using Random-Content-ID by Backporter.
* 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.
# 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.
* Optionally you can input a Theme Version such as 01.12 in Theme Settings section and add other languages in Add/Delete Languages section.
# Optionally you can input a Theme Version such as 01.12 in Theme Settings section and add other languages in Add/Delete Languages section.
* Save the file.
# Save the file.


=== Building the Theme as a fpkg===
=== Building the Theme as a fpkg===
* Open orbis-pub-gen.
# Open orbis-pub-gen.
* File - New Project - System Software Theme Package.
# File - New Project - System Software Theme Package.
* Double click Image0.
# Double click Image0.
* 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)!
# Drag and drop all the folders and files into the File Name section.
* Close the window.
** 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)!
* Command - Project Settings - Package tab.
# Close the window.
* Input the same Content-ID as made in the param.sfo file. Passcode can be all 0’s. Select Ok.
# Select Command - Project Settings - Package tab.
* Select Build. Select your output path. Select Build.
# Input the same Content-ID as made in the param.sfo file. Passcode can be all 0’s. Select Ok.
* Install the pkg theme via debug settings or your preffered method and apply the theme.
# Select Build. Select your output path. Select Build.
# Install the pkg theme via debug settings or your preferred method and apply the theme.


=== End Notes ===
=== End Notes ===
* As this is a fpkg theme, this cannot be made permanent/persistent after reboot.
{{Warning|As this is a fpkg theme, this cannot be made permanent/persistent after reboot.}}
* 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.
# 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.
* 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.
# 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 ==
==Creating a Custom Static Theme ==
* Download and extract PS4 Theme Creator v1.2.
# Download and extract PS4 Theme Creator v1.2.
* Launch PS4 Theme Creator.
# Launch PS4 Theme Creator.
* Drag & drop your background and images to the corresponding place.
# Drag & drop your background and images to the corresponding place.
* Function_Icon files must be .png at 128x128.
#* Function_Icon files must be .png at 128x128.
* Content_Icon files must be .png at 512x512
#* Content_Icon files must be .png at 512x512
* Background should be .png at 1920x1080.
#* Background should be .png at 1920x1080.
* Tweak settings on the right context menus.
# Tweak settings on the right context menus.
* Build and put the .pkg on the root of a USB drive.
# Build and put the .pkg on the root of a USB drive.
* Navigate on the PS4 to Settings > GoldHEN > Package Installer. Install the pkg.
# Navigate on the PS4 to Settings > GoldHEN > Package Installer. Install the pkg.

Revision as of 18:18, 12 August 2023

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:

Converting Source Video to Frames Usable by PS4

Exclamation-triangle-fill.svgDynamic themes have a limit of 16MB of video/frames files, so to ensure the theme can be applied, video must be 1280x720, otherwise the theme will give a error when trying to apply.


  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: < case wait = "2" >. The default value is 2, tinker with the values until your frames are played correctly.
    • Note: You must change all of them!
  2. 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.
  3. 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:

  • < themecolor >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).
  • < fontcolor >#FF4F7ECE< /fontcolor > holds the text color. Value is hexadecimal.
  • < fontshadowcolor >#00000000< /fontshadowcolor > holds the shadow font color. Value is hexadecimal.
  • < focuscolor >#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

Exclamation-triangle-fill.svgAs this is a fpkg theme, this cannot be made permanent/persistent after reboot.


  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.
    • Function_Icon files must be .png at 128x128.
    • Content_Icon files must be .png at 512x512
    • Background should be .png at 1920x1080.
  4. Tweak settings on the right context menus.
  5. Build and put the .pkg on the root of a USB drive.
  6. Navigate on the PS4 to Settings > GoldHEN > Package Installer. Install the pkg.