ROM Hack [Smash 3DS] Complete ROM Hacking guide (Textures, music, SFX/voice clips)

Status
Not open for further replies.

Cydget

Well-Known Member
Member
Joined
Oct 1, 2015
Messages
493
Trophies
0
Age
27
XP
260
Country
United States
Guys, i discovered the location of the css background and i changed the colors of the hands
Do you mind sharing where the css background is saved? Was it in a tex or some param kind of file that you had to hex edit?
 

ih8ih8sn0w

Koreaboo
Member
Joined
Aug 22, 2015
Messages
1,677
Trophies
0
Age
25
Location
Hell
XP
898
Country
United States
Do you mind sharing where the css background is saved? Was it in a tex or some param kind of file that you had to hex edit?
The css background is in /ui/lumen/chara_up iirc. I made a post about changing hand colors here (use sm4sht3x.jar found in OP to open them).
 

ih8ih8sn0w

Koreaboo
Member
Joined
Aug 22, 2015
Messages
1,677
Trophies
0
Age
25
Location
Hell
XP
898
Country
United States
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.

Base (copy/paste, 256x256)
Code:
00 01 00 00 00 01 00 00 0D 01 00 00 30 5F 30 2E 74 65 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

oF3bBBg.png


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?)
 
Last edited by ih8ih8sn0w,

Eddypikachu

Well-Known Member
Member
Joined
Mar 25, 2015
Messages
921
Trophies
0
Age
34
XP
2,140
Country
United States
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.

Base (copy/paste, 256x256)
Code:
00 01 00 00 00 01 00 00 0D 01 00 00 30 5F 30 2E 74 65 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

oF3bBBg.png


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?)
This should definitely be posted in the OP
 

shahanshah

Well-Known Member
Member
Joined
Sep 5, 2015
Messages
308
Trophies
0
Age
32
XP
324
Country
Italy
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.
 

Omegablu

We shall not yield to the Kingdom of Nohr!
Member
Joined
Mar 10, 2016
Messages
1,140
Trophies
0
Location
Ice Tribe Village
XP
1,016
Country
United States
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.
 
  • Like
Reactions: shahanshah

gryz

Well-Known Member
Member
Joined
May 26, 2016
Messages
407
Trophies
0
Age
22
XP
297
Country
United States
No, I tried that. The game will load garbage data, which will crash it. Just swap the platforms with the Omega version or something.
 

Eddypikachu

Well-Known Member
Member
Joined
Mar 25, 2015
Messages
921
Trophies
0
Age
34
XP
2,140
Country
United States
I kinda wish I had the moflex converter so I can convert this smash wii u opening into moflex and replace the how to play video with it
 

Yudowat

That one guy that shows up occasionally
Member
Joined
Jun 12, 2015
Messages
552
Trophies
0
XP
341
Country
Australia
I kinda wish I had the moflex converter so I can convert this smash wii u opening into moflex and replace the how to play video with it

I believe I have it actually, so if nobody beats me to it, ill try it on the weekend.
 

Eddypikachu

Well-Known Member
Member
Joined
Mar 25, 2015
Messages
921
Trophies
0
Age
34
XP
2,140
Country
United States
I believe I have it actually, so if nobody beats me to it, ill try it on the weekend.
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
 

gryz

Well-Known Member
Member
Joined
May 26, 2016
Messages
407
Trophies
0
Age
22
XP
297
Country
United States
Yo, what's up guys! I'm here to tell you that this project is back in full force and I am not dead! Don't worry, Demo 0.5 will be here soon!
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    BigOnYa @ BigOnYa: Ok good chatting, I'm off to the bar, to shoot some pool, nighty night. +1