Asset Modding Guide#
Welcome to the Asset Modding Guide for Courage Reborn. This guide covers how to modify, replace, and create custom game assets like 3D models, textures, animations, and level layouts. This guide doesn't go in depth on every file formats but links to guides for most of them.
Legal Compliance and Asset Distribution#
Important
Do not distribute Nintendo assets in your mods. Distributing copyrighted files like original .bmd or .bdl files is illegal.
Loading Custom Assets / Overrides#
To keep your mods legal and avoid distributing copyright-protected Nintendo game archives, the Courage Reborn mod loader (Petrichor) lets you override individual files inside .arc archives without replacing the full archive.
Whenever the game requests a resource (such as a .bmd model, .bti texture, or .dzr room data) from a .arc file, the mod loader intercepts the call and checks the global mods/ directory for an override.
Where to put override files#
Put the file inside a mod package, using the same path as on the game disc:
<mod-id> is the folder name under mods/. The res/ part and everything after it should match the extracted disc layout.
Example: Master Sword model#
On the disc the Master Sword mesh is here:
Copy your edited al_swm.bmd to:
Replace my-master-sword with your mod folder name. The game still loads Alink.arc from the disc. Petrichor reads your file instead of the one inside the archive.
Example: Lakebed Temple room 10#
Lakebed Temple uses stage id D_MN01. Room 10 data is here on the disc:
Your override path:
The dev map loader lists stage archives by name if you want to browse D_MN01 without memorizing paths. You can also look in the ultimate spreadsheet for a full list of all maps or other assets.
Full .arc files#
You cannot drop in a whole replacement .arc file. Unpack the archive with Siphon or another tool, edit the files you need, then place them under mods/<mod-id>/assets/overrides/res/... using the paths above.
Game File Formats Reference#
Here is a list of file formats used by the game engine:
| Format | Description |
|---|---|
.arc | RARC archive |
.bck | Skeletal animation |
.bmd | Binary 3D model |
.bti | Binary texture image |
.btk | Texture SRT animation |
.btp | Texture pattern animation |
.dat | Data file |
.dzb | Object collision mesh |
.brk | TEV register color animation |
.dzs | Stage object layout |
.gz | Gzip compressed file |
.dzr | Room object layout |
.kcl | Terrain collision octree map |
.plc | Collision attribute data |
.stb | Cutscene script and sound data |
.blo | UI layout data |
.blk | Cluster animation (key) |
.bpk | Color animation |
.bmg | Message text resource |
.jpc | Particle effect container |
.tga | Targa image file |
.bin | Binary data |
.bls | Binary cluster shapes |
.bdl | Binary display list model |
.bfn | Binary font file |
Asset Modding Categories#
Asset modding in Twilight Princess is split by the file formats used in the GameCube/Wii engine. Here is a list of the main areas:
3D Models and Meshes (.bmd, .bdl)#
- What they are: Binary Model Data (
.bmd) and Binary Display List (.bdl) files store 3D meshes, skeleton structures, materials, and textures for actors, items, and environment pieces. - How they are modded: You model in standard software like Blender, export to
.fbxor.obj, and use converter tools likeSuperBMDto compile them back into the game's native format. You can also use tools like BMD-Optimizer in the Twilight Princess Gamecube Toolbox to optimize models before conversion. - Using GCFT: GCFT can preview BMD and BDL models in real time, extract or replace embedded BTI textures, and edit MAT3 material properties directly.
- Reference: Archives and Models tabs of the TP Ultimate Spreadsheet.
Animations (.bck, .btk, .btp, .brk, .bpk)#
- What they are: These formats store skeletal bone movements (
.bck), texture scale/rotation/translation animations (.btk), texture pattern animations (.btp), TEV register color animations (.brk), and color animations (.bpk). - How they are modded: Skeletal animations are rigged and animated in Blender, then exported and converted using community tools. The Twilight Princess Gamecube Toolbox provides animation editing tools and rigs (like LinkRigBase.blend) to assist with Blender setups.
- Using GCFT: GCFT lets you view and edit texture and color animations directly within J3D model archives.
Stages and Rooms (.dzs, .dzr, .dzb, .kcl, .plc)#
- What they are: Stage object layout files (
.dzs) define data that stays active for the whole stage. Room object layout files (.dzr) define actors, doors, spawns, and other room data. Terrain collision (.kcl) and its attribute companion (.plc) define map floor and wall geometry. Object collision meshes (.dzb) cover individual actors and objects, not full map terrain. - How they are modded: TODO WE NEED A TOOL IN CR FOR THIS.
- Reference: Rooms, Exits, and Act. by Area tabs of the TP Ultimate Spreadsheet.
Textures and UI (.bti)#
- What they are: Binary Texture Images (
.bti) are standard image formats used by the game engine for textures, images, and UI elements. - How they are modded: You can extract textures and convert them to PNG using GCFT. After editing them in an image editor, you can use GCFT to convert them back to
.btiand modify image attributes like image format, palette format, wrapping, and filter modes. - CReact mod panels: For overlay UI, you can also ship PNG/JPEG/BMP under
mods/<id>/assets/and reference them withCourage.Assets. No BTI conversion required. See Courage.Assets.
UI Layouts (.blo)#
- What they are: Binary Layout (
.blo) files control menu screens, HUD positions, and other 2D UI structure. Linked.bck,.btk, and.bpkclips drive menu animations at runtime. - How they are modded: You can view and modify layout parameters using the
blo-gui-editorfrom the Twilight Princess Gamecube Toolbox. - Runtime in mod UI:
Courage.Layoutcan load a BLO screen, play linked BCK/BPK/BTK clips, and rasterize the frame into a CReact texture for use inCourage.UIpanels and popups. Embedded TIMG textures decode through the engine's JUT texture path.
Particles (.jpc)#
- What they are: Particle effect containers (
.jpc) store the particle visual effects used for spells, fire, water, and environmental details. - How they are modded: GCFT can open JPC containers, import or export folders of particle files to add or overwrite effects, and edit particle parameters in the interface.
Text and Messages (.bmg)#
- What they are: Message resources (
.bmg) store text data for dialogue, menus, and item descriptions. - How they are modded: You can view and edit text files inside
.bmgresources using text editors or GCFT. Alternatively, you can edit message files usingpikminBMGfrom the Twilight Princess Gamecube Toolbox. You can also use the LuauCourage.BmgAPI to dynamically replace individual message strings at runtime. - Reference: Runtime overrides use message ids from extracted data. The spreadsheet Debug Text tab lists debug strings. See Courage.Bmg.
Extracting Game Assets#
Before you can modify any assets, you need to extract them from your game disc image. We use Siphon, a command line tool designed to handle GameCube/Wii file formats.
Getting Siphon#
You can download Siphon or build it from source.
Downloading the binary#
Download the pre-built binary for your platform from the Siphon releases page.
Making Siphon globally accessible#
To run siphon without writing the full path each time:
Extracting a Game Disc (.iso)#
To extract the entire filesystem of a Twilight Princess .iso file:
This extracts the game filesystem (including folders like res/Object/) into your output directory.
Extracting RARC Archives (.arc)#
Game assets in Twilight Princess are stored inside RARC archives (.arc files).
Extract the entire archive#
List archive contents#
Extract a single file#
Handling Yaz0 Compression#
Many .arc asset files like Alanm.arc are compressed using Yaz0 compression. You can spot them by checking if the first four magic bytes read Yaz0.
Because they are compressed, direct extraction with siphon arc will fail. You must decompress the Yaz0 wrapper first.
- Decompress the Yaz0 wrapper:
- Extract the uncompressed archive:
Documentation and Resources#
Here are some helpful tutorials and reference materials for asset modding:
Video Tutorials#
- Twilight Princess Modding Part 1: Setting Up
- Twilight Princess Modding Part 2: The Basics - Sword Import
Reference Sheets and Specifications#
- TP Ultimate Spreadsheet, stage codes, rooms, exits, actors, archives, flags, and more
- DZS and DZR Chunk Documentation