1. Texture EditingFirst I suggest anyone that wants to do any texture editing, use this tool. (Must be 4.0 or higher!) Once you download this, simply extract it to a folder.
Then launch bfres_tool.exe.
Now for your texture file. These are all located in the Models folder of BOTW. The way these are labeled are like this:
- Armor_001.sbfres - Contains just the model data (has no tex in name)
- Armor_001.Tex1.sbfres - Store all main textures
- Armor_001.Tex2.sbfres - Store mip map data (not editable atm)
These files are sbfres files which are simply Yaz0 compressed. To decompress them to get a .bfres file, drag the file to yaz0dec which can be found here.
It will output a rarc file. Rename this to .bfres.
Now we got our bfres. Now with bfres_tool, open the bfres.
If you get a left over .gtx file with a "2" at the end, you may be using an outdated build! Make sure you're on 4.0!
Click on the DDS file you want to edit. Make sure the format as shown in the tool is the right one!
Some may not open due to no mip maps. To fix this, open hex, and change this at 0x1C value to 01.
Paint dot net will display incorrectly. To fix this download noesis
Then open the program. Goto where you have the textures
Export as a png. Any format can work but for now lets do png.
Then open the file with paint dot net! Should be in the same folder just a a .png file.
Now we can open it and edit away!
Clip of edited.
Make sure the file name is the same as original. Noesis may add "out" to the name, so remove that.
Also the format and resolution must be the same. So DXT1 as noted on the tool, so i saved it as that.
For settings, i suggest to not generate mip maps by unchecking this
2. Mip MapsNow this is a bit advanced but isn't too bad.
First get 010 editor.
Now get the bfres template.
Once installed. Open 010 editor.
Goto templates - view installed templates.
Click the "Add" button and select all .bt files from that bfres template link.
Now you will importantly need to open the bfres that contains the model. These are the ones without tex1 or tex2.
Now that it is open, you should see a screen like this.
Click on model(Dict) at the bottom. If this isn't named the exact same, it's fine.
Then the the model itself. Armors can have upper, lower, and head pieces.
Click on Dict(materials) at bottom
Click on the model you wanna remove the mip maps. If you can't tell from the name, then you can do each one.
Then click the SamplerDict.
click _a0 in that.
What each means
- _a0 = main texture/diffuse
- _n0 = normal map
- _s0 = spec map
- _ao0 = Ambient Occlusion/Shading
- _gn0 = Damage Map
- _gn1= Some sorta red damage thing
And then click on GX2SamplerRegs (3) and click on it again inside
It will highlight 4 bytes. The ones circled is mip maps. Set these from (02) to 00. This will disable them.
So we got all that done. Texture editing should be complete!
3. Model EditingFor those who want to model edit, use this tutorial. The process is the same thing. You still need to stay within the poly limit for now due to current tools that would bypass this do not support botw bfres files.
For rigging things. Make sure the bone limit in the advanced settings is set to 4! If not you will get stretched objects like this.
4. Finalizing everything. Compress back to sbfres!Drag each bfres into yaz0fast which you can get here.
Then remove the .yaz0 extension and rename your file back to sbfres.
5. Copying texture data from other bfres files. (Advanced, should not be needed as of 4.0)So some particular bfres files will fail to inject or extract textures. So I will explain how you can manage to transfer over a successfully injected texture over to another bfres that does not work.
First open the bad bfres with 010 editor.
Goto textureDict and scroll down till you get texture(number).
Click on the texture
Take note of the image size and resolution. You will need to copy over the data from another bfres that has the proper injection.
For this example armor_001 works great. The bad bfres is the switch shirt which has the Armor_170_Upper_Alb file broken.
So i inject a texture that has the same format and resolution as this.
Then i open the bfres with the successful injection. Goto that texture.
Highlight over ImageData
Hover your mouse over to the highlighted hex in blue, right click and copy.
Then goto the bad bfres file, goto imagedata of the texture and over the selected bytes in blue, right click and paste.
Now that is done, this should work in game!