Help:Updating the RSTB: Difference between revisions
imported>NiceneNerd m (→Using rstbtool) |
imported>NiceneNerd m (Undo revision 7727 by NiceneNerd (talk)) |
||
Line 59: | Line 59: | ||
* [path to RSTB] and [resource path]: see above. | * [path to RSTB] and [resource path]: see above. | ||
* If you're editing a Wii U RSTB, add <code> -b</code> (Big Endian) at the end of the line. | * If you're editing a Wii U RSTB, add <code> -b</code> (Big Endian) at the end of the line. | ||
{{ex|text=For Switch: | {{ex|text=For Switch: |
Revision as of 14:26, 26 July 2019
The resource size table (RSTB) determines how much memory is allocated for a resource. If after editing a game resource its uncompressed file size has increased, the RSTB entry must be edited to avoid load failures.
If the file has become smaller after editing, you do not need to edit the RSTB.
Symptoms of RSTB issues:
- The game crashes when loading a resource.
- The game fails to load a resource.
- The game gets stuck on the loading screen.
This guide explains how to update the RSTB.
Prerequisites
- Python 3.6+ 64 bit (more details at Help:Setting up tools)
- rstbtool or Wild Bits
Updating entries
Using rstbtool
Open a terminal / command prompt and run the following command [help]
rstbtool [path to RSTB] set [resource path] [new size]
- [path to RSTB] is a path to the ResourceSizeTable.product.rsizetable file. It can be found in System/Resource.
- [resource path] is the canonical resource path of the resource. Generally, this is the path of the resource (relative to any archive) without the "s" prefix in the extension for compressed files. If you're not sure what this is, look at the second column in the lists of resources.
- [new size] is a path to your edited file.
- If you're editing a Wii U RSTB, add
-b
(Big Endian) at the end of the line.
Example
For Switch:
rstbtool botw/System/Resource/ResourceSizeTable.product.srsizetable set Actor/GeneralParamList/Item_Fruit_A.bgparamlist path/to/edited/Item_Fruit_A.sbgparamlist
For Wii U:
rstbtool -b botw/System/Resource/ResourceSizeTable.product.srsizetable set Actor/GeneralParamList/Item_Fruit_A.bgparamlist path/to/edited/Item_Fruit_A.sbgparamlist
To make it clear: the first path (the one that comes right after set
) does not depend on the location of your modified file. Think of it as a unique identifier for the resource.
If everything goes well, no errors will be shown on the screen. If rstbtool says it is unable to calculate the resource size, then read the following section.
Using Wild Bits
Open Wild Bits from the command line using the command wildbits
[help]. Then:
- Go to the RSTB Editor tab.
- Click "Open" and select the RSTB file you want to edit.
- Find the RSTB entry you want to edit. Each game file is listed by its canonical resource path. Generally, this is the path of the resource (relative to any archive) without the "s" prefix in the extension for compressed files. If you're not sure what this is, look at the second column in the lists of resources. If necessary, use the search bar at the bottom of screen.
- Click "Update." You can either enter the size for the RSTB entry yourself (measured in bytes) or select the file using the "Detect size from file" option.
- Click "Ok." You can then save the RSTB or edit more entries.
If everything goes well, no errors will be shown on the screen. If Wild Bits says it is unable to calculate the resource size, then read the following section.
Deleting entries
Using rstbtool
Run the following command [help]:
rstbtool [path to RSTB] del [resource path]
- [path to RSTB] and [resource path]: see above.
- If you're editing a Wii U RSTB, add
-b
(Big Endian) at the end of the line.
Example
For Switch:
rstbtool botw/System/Resource/ResourceSizeTable.product.srsizetable del Actor/GeneralParamList/Item_Fruit_A.bgparamlist
For Wii U:
rstbtool -b botw/System/Resource/ResourceSizeTable.product.srsizetable del Actor/GeneralParamList/Item_Fruit_A.bgparamlist
Using Wild Bits
Open Wild Bits from the command line using the wildbits
command. [help] Then:
- Open the RSTB file in Wild Bits.
- Select the entry you wish to delete and click "Delete."
- Save the RSTB or modify more entries.
Deleting entries does not always work!
Some parts of the game require valid RSTB entries and will crash or refuse to load if you delete them. Avoid deleting entries for the Animation Sequence (AS) files: .bas, .baslist
For those files, you must determine the required size manually by trial and error.
Why deleting entries is sometimes necessary
Currently, rstbtool cannot calculate sizes for complex resources (e.g. bfres, AAMP files). The workaround is to delete their RSTB entry: doing that causes the game to allocate a lot of memory, enough to ensure that the resource can be loaded correctly. This wastes a significant amount of memory, but it is a quick and simple workaround that is perfectly fine if you only do it for a limited number of resources (100 should be safe).