• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Tutorial: Removing Parts of a Model

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
EDIT: There's a better way to remove parts of a model. Click here to see the post.

Have you ever wanted to remove a part of a character/stage model, be it a character or stage? Or, have you ever wanted to change the way that an accessory appeared in game (shinier, darker, purple highlights)?

In this guide, I'll attempt to explain how to do just that. Now keep in mind, I suck at tutorials. Chances are I'll miss something, in which case, I am sorry.

Examples of things you can remove (for instance, if they're interfering with your costume):

- Earrings
- Falcon's shoulder pad
- Peach's hair (the part which waves in the wind).
- Mario's moustache (looks a bit weird if you don't edit the shadow out of the texture though).
- Pokemon hats/headbands/crowns etc (say if you just want pure re-colours).
- Ganon's necklace.
- Dr. Mario's Stethoscope and Dr. Light (the headband needs to stay though. He doesn't actually have his forehead behind it).

Now, before we start, you'll need the following:

- Dolphin (to test and make sure it worked).
- One of Steelia's texture dumps (you'll identify the object you need by the offset of the texture). Alternatively, Melee Toolkit or Dat Texture Wizard will also state the offsets of textures.
- GCRebuilder
- A hex editor. I use HxD (but be warned, be sure to say 'no' to the questions in its installer).

Step 1: Identify what part of the model you want to remove or alter
For the purposes of this tutorial, I'll be using Falcon's gun:



Step 2: Find the offset of the texture used for the model.
I strongly recommend using Steelia's texture dumps (for convenience).
Since I want the gun, my texture offset will be: 0x00022c60 in PlCaNr.dat.

Step 3: Finding material data.
The offset for the gun's texture is at

0x00022c60

I now need to subtract 32 bytes off that value. We do this to account for the header Hex, which takes up 32 bytes.
This is easy to do without a calculator (examples: 3F0 -> 3D0, 4A0 -> 480).
Note: If you are using Melee Toolkit to get your offsets, do NOT subtract anything.

This gives me:

0x00022c40

Now, take that value, and find all instances of it within the PlCaNr.dat:



I only found one, but it is possible to find many (example: hands would likely have 2). Each instance will correspond to a different object within the model that uses the texture. In this case, if you wanted a specific one (say, left hand only), it'd be up to trial and error to determine which corresponds to which (at least, as far as I've figured out).

Step 4: Changing material.
Let's say I want his gun to have a magenta shine to it, and capture light more intensely. To do this is very simple:
Note: If you can't find the RGB values as shown in the image, then find the next instance of the offset.



Green RGB: Diffuse color (this has the most effect on the objects color).
Orange RGB: Specular color (the color of the "shininess". Imagine this color is the color of the lamp creating the light).

So if I just change these values like this:





We get this. And no texture needed to be altered. I'll let you play around with these values as you see fit.

Step 5: Removing it completely.
But what if we want to completely remove it? Well first, we need to find the offset of this location:



Note: the offset is exactly 12 bytes before the first RGB value.


0x0000C660

Now, we're going to be working our way through a few pointers:



The blue highlighted area is our 0x0000c660 that we found. Directly above it (16 bytes back), highlighted in red, is a pointer to the previous face block: 0x0001EEC0. Take that value, and follow it (shown by the red arrow). From there, take another step 16 bytes back (aka, one line in this example), then another 2 bytes back. Your cursor will now be directly before the 00 08, which is the size of the displaylist. Aka, the thing which signifies how many faces this particular object has. In this case, it has 8, so changing it to 00 00 will mean it has no faces and thus, nothing is rendered.



Tada!

---

Alright, chances are there's a million and one things I missed in this tutorial, but I hope this helps those of you who are curious.
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Nice, thanks for taking the time to make this guide, Milun.

Couple quick things:

1) Steelia's texture packs are completely obsolete now, with the release of DAT Texture Wizard 3. DTW3 also automatically gives you the offsets for the image data pointer which is the first thing you searched for.

2) As Zankyou has stated a couple times, you shouldn't need to touch the displaylist values if you are trying to completely remove something. Just change the displaylist size flag to 0.

So for the above example, change the value at offset 0x1eeac from 80000008 to 80000000 and it should disappear.
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Ive actually found that melee toolkit is the best for this because it gives you the images and shows you the bone tree it belongs to. When I was first looking into models I made a py script that removes models by mesh structure and/or by object group. But I assumed there wasnt much of an interest in this.
 

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
Nice, thanks for taking the time to make this guide, Milun.

Couple quick things:

1) Steelia's texture packs are completely obsolete now, with the release of DAT Texture Wizard 3. DTW3 also automatically gives you the offsets for the image data pointer which is the first thing you searched for.

2) As Zankyou has stated a couple times, you shouldn't need to touch the displaylist values if you are trying to completely remove something. Just change the displaylist size flag to 0.

So for the above example, change the value at offset 0x1eeac from 80000008 to 80000000 and it should disappear.
Oops, my bad. Forgot about that. I personally always liked blanking them because it made it easier to see my footprints later on. I'll put a note in.

As for Steelia's texture packs; I was not aware of that. I'll probably leave it in. The notepad documents are still relly handy to work with.
 
Last edited:

TerryJ

Smash Journeyman
Joined
Apr 12, 2010
Messages
488
Location
BEST COAST, WA
NNID
1337-1337-1337
3DS FC
1337-1337-1337
Neato! I've always wanted to remove Falcon's gun since he doesn't use the damned thing anyways.
 

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
I've updated the OP with some serving suggestions for ideas.

Glad to see you guys getting use out of it. I remember making an "invisible-Shiek" myself. It's an amusing test of how well you know the character if you can still orient yourself just by the sight of the dust-landing effect and rumble alone.
 
Last edited:

flieskiller

Smash Journeyman
Joined
Jan 3, 2013
Messages
426
I remember making an "invisible-Shiek" myself. It's an amusing test of how well you know the character if you can still orient yourself just by the sight of the dust-landing effect and rumble alone.
That is already available as a AR code from a long time ago from this page: http://arcentral.net/ssbm/ssbmV12/v12gen.html

All players invisible (wParam)
04069390 3B800000
04069394 9383001C
04069398 BB810038
0406939C 60000000
 

D-Toast

Smash Rookie
Joined
Nov 24, 2015
Messages
1
I feel like I need a little help here, I'm trying to remove Captain Falcon's belt and the green strap.

I can find the offsets for them in the .dat, but how do I determine what is Face Data and what is not?
 

Phantop

Smash Cadet
Joined
Jun 28, 2014
Messages
43
Location
New York
I have a similar issue as the guy above. I am trying to remove the shade part of blue Ness' cap. The second value I got was AC1C but, after blanking out what i thought was the model data, the shade was still there. Any help?
 

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
Aiit, nothing to it, I'll help out. Just give me until Australian tomorrow afternoon.
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
I feel like I need a little help here, I'm trying to remove Captain Falcon's belt and the green strap.

I can find the offsets for them in the .dat, but how do I determine what is Face Data and what is not?
I have a similar issue as the guy above. I am trying to remove the shade part of blue Ness' cap. The second value I got was AC1C but, after blanking out what i thought was the model data, the shade was still there. Any help?
You only have to zero the displaylist size. Its a halfword.
 

Phantop

Smash Cadet
Joined
Jun 28, 2014
Messages
43
Location
New York
I followed the updated steps with blue Ness's cap and the face value was 0... did i get the wrong addresses?

Also, you should replace the info on subtracting and getting the texture packs with just using melee toolkit.
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Thanks! I've been planning a few skins for a while and need to figure this out to make them.
You should know that theres probably nothing under ness's cap.

I could probably make a command line program to do this for you guys if the dat file format seems too confusing.
 

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia


Is this what you were after? Well, first off I owe you an apology. Read on to see why...

Here's how I did it. By the way, I found the problem. When using Melee Toolkit, you do not subtract 32 bytes. It does it automatically.



Anyway, I found the offset: 0x00022200. Ctrl-F-ed that in my .dat, which lead me to...



I then search for the offset where the red line is (0000AC1C):



Hm... I see your point. It is inconsistent. I can see this is wrong just by looking at it (not enough face data for the hat). I think this needs more research tbh...

Anyway, I went back and searched for 00022200 again (yeah, I know I screwed up with the tutorial; sorry):



Offset is: 0x0000C22C.



Which takes me here:



But now, another flaw is found with my tutorial, because the display list is in a different location. Furthermore, changing that 00 27 to 00 00 makes this happen:



The CORRECT display list (the one which corresponded to the cap) was actually here:



And changing that to 00 00's gets rid of the cap. I have absolutely no idea why the rules are inconsistent, I'm sorry. I personally was able to see what's wrong because I've spend a loooooot of time looking at Melee hex data and can recognize certain values by sight at this point. This however, confuses me. I mean... at least my tutorial narrows it down to a general viscinity? I don't know...

Anyone using this tutorial, take it with a grain of salt. I don't think I fully know what I'm doing myself.
 

Phantop

Smash Cadet
Joined
Jun 28, 2014
Messages
43
Location
New York


Is this what you were after? Well, first off I owe you an apology. Read on to see why...

Here's how I did it. By the way, I found the problem. When using Melee Toolkit, you do not subtract 32 bytes. It does it automatically.



Anyway, I found the offset: 0x00022200. Ctrl-F-ed that in my .dat, which lead me to...



I then search for the offset where the red line is (0000AC1C):



Hm... I see your point. It is inconsistent. I can see this is wrong just by looking at it (not enough face data for the hat). I think this needs more research tbh...

Anyway, I went back and searched for 00022200 again (yeah, I know I screwed up with the tutorial; sorry):



Offset is: 0x0000C22C.



Which takes me here:



But now, another flaw is found with my tutorial, because the display list is in a different location. Furthermore, changing that 00 27 to 00 00 makes this happen:



The CORRECT display list (the one which corresponded to the cap) was actually here:



And changing that to 00 00's gets rid of the cap. I have absolutely no idea why the rules are inconsistent, I'm sorry. I personally was able to see what's wrong because I've spend a loooooot of time looking at Melee hex data and can recognize certain values by sight at this point. This however, confuses me. I mean... at least my tutorial narrows it down to a general viscinity? I don't know...

Anyone using this tutorial, take it with a grain of salt. I don't think I fully know what I'm doing myself.
Thanks for looking into the cap. I already knew I didn't have to subtract from Melee Toolkit but I couldn't quite figure out what to do within the hex editor. I think this might help me out.

EDIT: At least you know WAY more than people like me trying this stuff out!

EDIT 2: Now I try removing the ball thing at the top of the cap using the originally written guide and the way it was done with the shade... nothing happens. Also, sorry if I'm bugging you a lot about this.
 
Last edited:

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
Thanks for looking into the cap. I already knew I didn't have to subtract from Melee Toolkit but I couldn't quite figure out what to do within the hex editor. I think this might help me out.

EDIT: At least you know WAY more than people like me trying this stuff out!

EDIT 2: Now I try removing the ball thing at the top of the cap using the originally written guide and the way it was done with the shade... nothing happens. Also, sorry if I'm bugging you a lot about this.
Houston, you have a problem:

 

Phantop

Smash Cadet
Joined
Jun 28, 2014
Messages
43
Location
New York
Guess ill just leave it. Anyway, was that part different as well or do I just have no idea whatsoever as to what I am doing?
 

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
Nah, you're on the right track dude. You just have to find the last occurrence of the texture offset at the start. It seems that when they come in twos, the first one is just always wrong.

As for the top of the cap, I think it should be possible to just model-hack that hole closed. Depends what you need it for, but I might be able to help you out there if that's all you need.

What are you trying to make exactly?
 
Last edited:

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia


Here you go chief: http://puu.sh/lFinN/a4b63628b6.dat

In other news, This is what Marth looks like without all the fancy stuff:



Do you guys think removing his cape would be bad for tournament scenes? Whenever I hack, I make sure to leave the model extremely close to how I found it (for hitboxes and such). The cape has no hitboxes however, but I'm still wondering if that would mess with people.
 
Last edited:

Anutim

Smash Apprentice
Joined
Oct 22, 2013
Messages
185


Here you go chief: http://puu.sh/lFinN/a4b63628b6.dat

In other news, This is what Marth looks like without all the fancy stuff:



Do you guys think removing his cape would be bad for tournament scenes? Whenever I hack, I make sure to leave the model extremely close to how I found it (for hitboxes and such). The cape has no hitboxes however, but I'm still wondering if that would mess with people.
The cape hides part of his body making it harder to tell apart similar animations, but losing that is only an issue for the player who uses the skin, so should be allowed imo.
 

CCS Kid

Smash Rookie
Joined
Feb 28, 2015
Messages
18
Location
Havertown, PA


Here you go chief: http://puu.sh/lFinN/a4b63628b6.dat

In other news, This is what Marth looks like without all the fancy stuff:



Do you guys think removing his cape would be bad for tournament scenes? Whenever I hack, I make sure to leave the model extremely close to how I found it (for hitboxes and such). The cape has no hitboxes however, but I'm still wondering if that would mess with people.
I'm about the no cape. Pretty fresh tbh
 

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
LOL let's gooooooooooo

I'm in the texture hacking community, I wanna make skins for that model!! Is it stable?

:)
It's stable, but it's also unfinished. I'm making him look like Raiden. What did you have in mind?
 
Last edited:

CCS Kid

Smash Rookie
Joined
Feb 28, 2015
Messages
18
Location
Havertown, PA
It's stable, but it's also unfinished. I'm making him look like Raiden. What did you have in mind?
nothing in particular, just looks like it has tons of potential. I like the raiden idea!

I'll let you know if I come up with anything ground breaking lmao
 
Last edited:

CCS Kid

Smash Rookie
Joined
Feb 28, 2015
Messages
18
Location
Havertown, PA
And here guys, is an example of what can be achieved with the model removing strategy (and a bit of model hacking thrown in for good measure, but mostly the removing).



Name: Raiden (PlMsBk)
Made by: Milun
Video: https://youtu.be/9RrsQeOdeQQ
Download Link Here: https://drive.google.com/file/d/0B8C5yfu_VjgxbGtnenk3MWNEOUk/view?usp=sharing
came out awesome. so if i were to make a skin for capeless marth, would i do it just the same as any other? like download the raiden skin and then rework the textures to how i want them to look or do i have to change something in the game's code for it to read marth without a cape? sorry i'm just not too sure how i would go about it
 

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
came out awesome. so if i were to make a skin for capeless marth, would i do it just the same as any other? like download the raiden skin and then rework the textures to how i want them to look or do i have to change something in the game's code for it to read marth without a cape? sorry i'm just not too sure how i would go about it
Same as any other man. Everything needed to make the file run is in the file itself. I only modify data, so there's never a need for codes.
 

VoidedSmash

Smash Rookie
Joined
Feb 17, 2016
Messages
23
What should I do if the file list within the placement file doesn't cover all the texture files? To elaborate, the dump for Final Destination only contains the locations for:
07
09
23
24
21
22
01
17
16
02
But the dump location has textures numbered 1-27, which presents obvious issues. How would one go about finding the addresses of those textures/geometry?
 

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
What should I do if the file list within the placement file doesn't cover all the texture files? To elaborate, the dump for Final Destination only contains the locations for:
07
09
23
24
21
22
01
17
16
02
But the dump location has textures numbered 1-27, which presents obvious issues. How would one go about finding the addresses of those textures/geometry?
Whoops, sorry for the late reply. If you're still interested, you'd use this program: http://smashboards.com/threads/new-tools-for-texture-hacking.373777/

Just open a .dat or .usd (or any other extention) file in it, and it will read all textures (it's a really amazing program). It will also tell you the addresses for the textures within the files on the right if you select them (they will already have the subtraction 0x20 applied to them, so skip that step).

Again, sorry for the late response.
 

Zeus_Da_master

Smash Journeyman
Joined
Jan 22, 2007
Messages
298
Location
Atlanta Ga
maybe i missed it when reading, but how do i find the code for the piece of the model that i want to change? i'm using dat texture wizard 4.1... i see a list of codes under the structural analysis tab, but how do i know what number sequence goes to what? n how do i get to that screen above with all the number values in which i'll change the value to 0 to remove something? example, i want to remove the neck and shoulder things on green peach
 
Top Bottom