Editing stage textures the correct way. (a shitty guide)
Tools you will need: This zip (contains sm4sht3x.jar, etc1tool.exe, and old ohana3ds)
A hex editor (I recommend HxD because it's just great)
An image editor of your choice (if you need one for some reason, use gimp or paint.net (google paint dot net))
Some free time (this process is tedious, and requires a lot of hex editing. I may make the process somewhat simpler in the future but I will have to learn more python)
A good playlist (again, this a tedious process, listening to something helps?)
1) Make a copy of the normal.bch you will be editing. You will need one unmodified copy at all times.
2) Using ohana3ds, follow the standard procedure to importing/exporting textures in smash bch files. Import one texture. (I will explain later on)
Basically: Launch Ohana3DS, "Open", \ui\model\chara\chara_hand\normal.bch, "Open", \stage\[END FOR OMEGA FORM STAGES, MELEE FOR NORMAL STAGES]\[STAGE OF CHOICE, OPEN MBNS IN OHANA3DS IF YOU DON'T KNOW THE NAME]\model\[LOOK FOR SOMETHING WITH LIKE RING, 00, B, BASE, ETC IN THE NAME OF THE FOLDER]\normal.mbn or h0X\normal.mbn, ignore error, "Open", 'normal.bch' from same folder, ignore error, click textures tab on left, import and export as you please, "Save" when done importing if you are doing so. Note: you MUST use import all, if you are doing a single edit, just put the texture in its own folder and import (stolen from OP and edited for sanity by me)
3. After you import and save the normal.bch, open the modified and unmodified normal.bch in hxd and hit ctrl+k (Analysis>File-Compare>Compare...) then hit F6 to go to the first change. Make note of this offset (displayed on the bottom left corner in HxD) Scroll to the bottom of the page and hit shift+F6. This will bring you to the last difference. Make note of this as well. Use a calculator that can do math with hex and find the difference between the numbers. This is around the file size of the texture. Round up to the nearest left most byte (idk what else to call it :/) Textures should be from xxx0 to xxx0, so you will usually end up with something like x000 for the size (why you need to round up) (From now on, "first offset" refers to what you found during the first compare rounded down to the nearest x byte)
4. Create a new file in HxD and add the 80 byte header to it. Copy the data you found from step 3 and paste it in the new file. Save it as something distinctive (will be known as original.tex from now on)
4a. Divide the x000 by 4 to find the size of the next mipmap. Mipmaps appear directly after eachother (0 bytes between) and paste it into a new tex with a header. Modify the header to be the appropriate size. Create 4 of these + the original. Sizes for these tex files will be in a spoiler below (only squares for now, rectangular textures may be provided later, try to find textures in /ui/ for now (playable_roll is a good place))
5. Open the edited image in an image editor and scale the image down the dimensions (256x256 > 128x128 > 64x64 > 32x32 >16x16 etc.). You will need to make 4 mipmaps + the original texture (will be known as 128x128.png, etc.). (the footer for a texture and their mipmaps is a block of 00 bytes in maybe 3 rows). Name these something distinctive for etc1tool.exe
6. Right now, you should have 4 pngs and 4 tex files. Open the tex files in sm4sht3x to verify that the headers are correct, and have textures. If nothing appears, try closing and opening the program again. (Make copies of the tex files now if you want to be safe) Begin importing the pngs into the appropriate textures. Save over the file you modified. If the result is a 0kb file, make sure you have etc1tool.exe in the same folder and that it is not corrupted (shift+right click > open command window here > type "etc1tool.exe" if you get a help message, it isn't corrupted and there is an actual issue. Tag me here or PM me with the tex and png if that is the case).
7. Once this process is completed for all files, begin importing them. A safer and easier way to do this is to make a new file in HxD, paste the new original without the header into it, and just add each mipmap (without header) to the bottom. Ctrl+a and paste to the first offset. Save and test in game. (There may be 40 bytes left, but I couldn't get anything to load...)
8. Repeat for each texture you want to modify.
Have fun stage editing n_n. If I missed something, or you are stuck, let me know.
You should not need anything else. Anything above 4 breaks stuff (they work, but they are weird), and using 0x 00 will not be read by sm4sht3x.
Note: after more testing, sizes listed below are not accurate. You may get some graphical errors. (Please report them to me with an attachment of what you edited along with what addresses you changed, and what stage the files are for)
Code:
00 10 = 4096 px (If this exists, please let me know probably only found in lumen files or maybe the jpn font)
00 04 = 1024 px (Only exists in some lumen textures afaik)
00 02 = 512 px (Unknown size, if you have a size and a bch that this comes with, please let me know)
00 01 = 256 px (FFF0 bytes)
80 00 = 128 px (4000 bytes)
40 00 = 64 px (1000 bytes)
30 00 = 48 px (Unknown size, if you have a size and a bch that this comes with, please let me know)
20 00 = 32 px (540 bytes?)
10 00 = 16 px (100 bytes?)
Editing stage textures the correct way. (a shitty guide)
Tools you will need: This zip (contains sm4sht3x.jar, etc1tool.exe, and old ohana3ds)
A hex editor (I recommend HxD because it's just great)\
An image editor of your choice (if you need one for some reason, use gimp or paint.net (google paint dot net))
Some free time (this process is tedious, and requires a lot of hex editing. I may make the process somewhat simpler in the future but I will have to learn more python)
A good playlist (again, this a tedious process, listening to something helps?)
1) Make a copy of the normal.bch you will be editing. You will need one unmodified copy at all times.
2) Using ohana3ds, follow the standard procedure to importing/exporting textures in smash bch files. Import one texture. (I will explain later on)
Basically: Launch Ohana3DS, "Open", \ui\model\chara\chara_hand\normal.bch, "Open", \stage\[END FOR OMEGA FORM STAGES, MELEE FOR NORMAL STAGES]\[STAGE OF CHOICE, OPEN MBNS IN OHANA3DS IF YOU DON'T KNOW THE NAME]\model\[LOOK FOR SOMETHING WITH LIKE RING, 00, B, BASE, ETC IN THE NAME OF THE FOLDER]\normal.mbn or h0X\normal.mbn, ignore error, "Open", 'normal.bch' from same folder, ignore error, click textures tab on left, import and export as you please, "Save" when done importing if you are doing so. Note: you MUST use import all, if you are doing a single edit, just put the texture in its own folder and import (stolen from OP and edited for sanity by me)
3. After you import and save the normal.bch, open the modified and unmodified normal.bch in hxd and hit ctrl+k (Analysis>File-Compare>Compare...) then hit F6 to go to the first change. Make note of this offset (displayed on the bottom left corner in HxD) Scroll to the bottom of the page and hit shift+F6. This will bring you to the last difference. Make note of this as well. Use a calculator that can do math with hex and find the difference between the numbers. This is around the file size of the texture. Round up to the nearest left most byte (idk what else to call it :/) Textures should be from xxx0 to xxx0, so you will usually end up with something like x000 for the size (why you need to round up) (From now on, "first offset" refers to what you found during the first compare rounded down to the nearest x byte)
4. Create a new file in HxD and add the 80 byte header to it. Copy the data you found from step 3 and paste it in the new file. Save it as something distinctive (will be known as original.tex from now on)
4a. Divide the x000 by 4 to find the size of the next mipmap. Mipmaps appear directly after eachother (0 bytes between) and paste it into a new tex with a header. Modify the header to be the appropriate size. Create 4 of these + the original. Sizes for these tex files will be in a spoiler below (only squares for now, rectangular textures may be provided later, try to find textures in /ui/ for now (playable_roll is a good place))
5. Open the edited image in an image editor and scale the image down the dimensions (256x256 > 128x128 > 64x64 > 32x32 >16x16 etc.). You will need to make 4 mipmaps + the original texture (will be known as 128x128.png, etc.). (the footer for a texture and their mipmaps is a block of 00 bytes in maybe 3 rows). Name these something distinctive for etc1tool.exe
6. Right now, you should have 4 pngs and 4 tex files. Open the tex files in sm4sht3x to verify that the headers are correct, and have textures. If nothing appears, try closing and opening the program again. (Make copies of the tex files now if you want to be safe) Begin importing the pngs into the appropriate textures. Save over the file you modified. If the result is a 0kb file, make sure you have etc1tool.exe in the same folder and that it is not corrupted (shift+right click > open command window here > type "etc1tool.exe" if you get a help message, it isn't corrupted and there is an actual issue. Tag me here or PM me with the tex and png if that is the case).
7. Once this process is completed for all files, begin importing them. A safer and easier way to do this is to make a new file in HxD, paste the new original without the header into it, and just add each mipmap (without header) to the bottom. Ctrl+a and paste to the first offset. Save and test in game. (There may be 40 bytes left, but I couldn't get anything to load...)
8. Repeat for each texture you want to modify.
Have fun stage editing n_n. If I missed something, or you are stuck, let me know.
You should not need anything else. Anything above 4 breaks stuff (they work, but they are weird), and using 0x 00 will not be read by sm4sht3x.
Code:
00 10 = 4096 px (If this exists, please let me know probably only found in lumen files or maybe the jpn font)
00 04 = 1024 px (Only exists in some lumen textures afaik)
00 02 = 512 px (Unknown size, if you have a size and a bch that this comes with, please let me know)
00 01 = 256 px (FFF0 bytes)
80 00 = 128 px (4000 bytes)
40 00 = 64 px (1000 bytes)
30 00 = 48 px (Unknown size, if you have a size and a bch that this comes with, please let me know)
20 00 = 32 px (540 bytes?)
10 00 = 16 px (100 bytes?)
Now here's a feature I'd definitely like to see: Being able to set 2 or 3 stock matches to the default format when launching Smash instead of 2 minute time matches.
Now here's a feature I'd definitely like to see: Being able to set 2 or 3 stock matches to the default format when launching Smash instead of 2 minute time matches.
Completely possible and I have done it. Just search around in this thread and you'll find the post. Most Wii U guides in that respect will work if my first suggestion failed.
Now here's a feature I'd definitely like to see: Being able to set 2 or 3 stock matches to the default format when launching Smash instead of 2 minute time matches.
That's sounds awesome, if you manage to do it try to fina a video of it that doesnt have a watermark on it because the one I linked to has an IGN watermark on the bottom right corner
Today, April 8th, 2024, at 4PM PT, marks the day in which Nintendo permanently ends support for both the 3DS and the Wii U online services, which include co-op play...
A new Nintendo Switch firmware update is here. System software version 18.0.1 has been released. This update offers the typical stability features as all other...
With Apple having recently updated their guidelines for the App Store, iOS users have been left to speculate on specific wording and whether retro emulators as we...
The time has finally come, and after many, many years (if not decades) of Apple users having to side load emulator apps into their iOS devices through unofficial...
The highly popular and accurate FPGA hardware, MisterFGPA, has received today a brand new update with a long-awaited feature, or rather, a new core for hardcore...
TheFlow has done it again--a new kernel exploit has been released for PlayStation 4 consoles. This latest exploit is called PPPwn, and works on PlayStation 4 systems...
Nintendo might just as well be a law firm more than a videogame company at this point in time, since they have yet again issued their now almost trademarked usual...
Another video game prototype has been found and preserved, and this time, it's none other than the game that spawned an entire franchise beloved by many, the very...
Anbernic is back with yet another retro handheld device. The upcoming RG28XX is another console sporting the quad-core H700 chip of the company's recent RG35XX 2024...
Nintendo has recently announced through their social media accounts that a new Indie World stream will be airing tomorrow, scheduled for April 17th, 2024 at 7 a.m. PT...
Today, April 8th, 2024, at 4PM PT, marks the day in which Nintendo permanently ends support for both the 3DS and the Wii U online services, which include co-op play...
Nintendo might just as well be a law firm more than a videogame company at this point in time, since they have yet again issued their now almost trademarked usual...
With Apple having recently updated their guidelines for the App Store, iOS users have been left to speculate on specific wording and whether retro emulators as we...
The time has finally come, and after many, many years (if not decades) of Apple users having to side load emulator apps into their iOS devices through unofficial...
A new Nintendo Switch firmware update is here. System software version 18.0.1 has been released. This update offers the typical stability features as all other...
TheFlow has done it again--a new kernel exploit has been released for PlayStation 4 consoles. This latest exploit is called PPPwn, and works on PlayStation 4 systems...
Two classic titles join the Nintendo Switch Online Expansion Pack game lineup. Available starting April 24th will be the motorcycle racing game Extreme G and another...
The highly popular and accurate FPGA hardware, MisterFGPA, has received today a brand new update with a long-awaited feature, or rather, a new core for hardcore...
Nintendo has recently announced through their social media accounts that a new Indie World stream will be airing tomorrow, scheduled for April 17th, 2024 at 7 a.m. PT...
In 2017, the United States Federal Communications Commission (FCC) repealed net neutrality. At the time, it was a major controversy between internet service providers...
It's not the movies or games downloads that I would worry about, like breaking into networks, downloading encrypted things, spying on network traffic. I have seen so many "Top Secret" seals on files when I was a kid
I was obsessed with finding UFOs, a surprising amount of US files where stashed on computers in other countries, China back in the early 90s omg sooo much