Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

3DS HomeMenu extdata Tool 3DS: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 17: Line 17:
==Installation==
==Installation==
===Installing===
===Installing===
Available as .3dsx and .smdh.
Available as 3DSX/SMDH.


===Compiling===
===Compiling===

Revision as of 13:37, 8 July 2021

Template:Infobox 3DS homebrew

3DS HomeMenu extdata Tool is a Nintendo 3DS homebrew tool for accessing the Home Menu SD extdata, this is usable from Ninjhax. This allows reading/writing the home-menu SD extdata SaveData.dat, and the extdata theme-cache.

This essentially allows user to write custom themes to SD extdata, which home-menu will automatically load at Home Menu process next startup.

Installation

Installing

Available as 3DSX/SMDH.

Compiling

This requires the latest ctrulib from git.

If you build a CXI/CIA for this, the accessinfo must have bitmask 0x01 set (in the RSF that's FileSystemAccess with field - CategorySystemApplication).

User guide

Before modifying

Backing up extdata before modifying is recommended.

You can copy the data from sdmc:/Nintendo 3DS/{ID0}/{ID1}/extdata/00000000/{extdataIDlow}/ to elsewhere, where extdataIDlow is the extdataIDs for home-menu extdata and theme extdata.

Theme-data

The data this app reads/writes to/from sdmc is located in the same directory that the app runs from (SD root for CXI/CIA). The theme-data this app uses on sdmc is the following.

ThemeManage.bin - Copied from extdata to sdmc.

  • This can be copied to extdata from sdmc, if it doesn't exist on sdmc for that then data is generated for it then writen to extdata.

BodyCache.bin and body_LZ.bin - The former is copied from extdata to sdmc.

  • When copying from sdmc to extdata, the app will first attempt to use BodyCache.bin, then body_LZ.bin.
  • When ThemeManage.bin exists on sdmc with sdmc->extdata, this body-data is only copied when the size field in ThemeManage.bin for this is non-zero.
  • When copying to extdata, the filesize must be smaller than or exactly 0x150000-bytes.

BgmCache.bin and bgm.bcstm - Handled basically the same way as the body-data, except with the bgm sizes.

  • When copying to extdata, the filesize must be smaller than or exactly 0x337000-bytes.
  • When writing BGM to extdata, Home Menu must not be already using any BGM from the theme-cache (prior to when this tool wrote anything to extdata).

Main menu

  • Copy extdata SaveData.dat to sd - Option to backup your SaveData.dat to SD (this contains the current theme settings and other things).
  • Copy SaveData.dat from sd to extdata - Option to restore your SaveData.dat from SD.
  • Enable normal theme-cache - Ooption to enable using the theme-data from SD. Do not use this if you don't have any theme DLC installed, use the below menu option instead.
  • Enable persistent theme-cache - Same as above except the custom themes are persistent even without any theme DLC installed.
  • Copy theme-data from extdata to sd - Option to backup the theme-data stored in extdata.
  • Copy theme-data from sd to extdata - Option to write a custom theme to extdata.

How to import custom theme

Place your edited body_LZ.bin from Theme Customisation Tools in sd:\3ds\3ds_homemenu_extdatatool or wherever your theme folder is.

If you have a custom BCSTM file, rename it to BGM.bcstm and place it in the same folder. Then open 3ds_homemenu_extdatatool, enable theme cache and import theme cache from SD to ExtData.

Disable theme-cache

To disable using the theme-cache, you can:

  • Either enter home-menu theme-settings then select none, restore a backup of SaveData.dat with this tool, restore the entire home-menu and/or theme extdata with the above backup.
  • Or delete the homemenu and/or theme extdata.

Controls

D-Pad/C-Pad - Select a menu entry

A - Enter a menu

B - Return to the hbmenu

Known issues

Please refer to reported issues.

Changelog

v1.1.1

  • Updated for latest ctrulib+devkitARM.
  • Set the icon strings to proper values.
  • Replaced the 5-second-delay with a press-button-wait.

v1.1 6 Jan 2015

  • Custom theme persistence even without any theme DLC installed, and other minor fixes/changes.

v1.0 31 Dec 2014

  • Initial release. Extract this to the root of your SD for use with ninjhax.

External links

Advertising: