• 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!

Brawl model extractor

Status
Not open for further replies.

Wavedash Master

Smash Journeyman
Joined
Dec 14, 2008
Messages
322
If someone makes Mewtwo I will have their babies. No joke.
They probably already have the Mewtwo model from Melee, it's just a matter of compacting into a .pcs or .pac file, which Pharrox is working on. (I guess the model will have to be messed with considering the polygon count thing I keep hearing about in this thread).
 

Pharrox

Smash Journeyman
Joined
Jan 26, 2007
Messages
397
Location
Belleville, MI
:urg:

Ehh...this scope of this project may be starting to get to me. I've ran into a few problems that will probably significantly lengthen the development time for this. As I've stated before, there are really no such files as MDL0, TEX0, etc, they are just blocks inside the brres. The problem is, if you change one thing, it throws the data on everything else off. This really only leaves me with two options:

1. Write functions that can update every possible kind of file with the new information
2. Write the functions to decode each file, and then write the corresponding import functions for each.

Either way, there's going to be a lot more that has to be added then simply repacking a model file. Currently I've started the second and I'm hoping that it can be run through relatively quickly. As for the model portion, I have all the code to read in the .dae file, but as stated, writing the brres is significantly harder. So here is where basically everything stands now that I'm starting to take a closer look at this project:

MDL0: models, can decode, half the importer
TEX0: textures, can decode
PLT0: palettes, can decode
PAT0: texture animations, can decode
CLR0: colors, not much known, probably not too complex
CHR0: animations, partially decoded, hardest to decode
SRT0: I don't even know what these do
VIS0: same as above
 

mariokart64n

Smash Apprentice
Joined
Apr 21, 2009
Messages
130
is it possible to make a tool that we can use to modify the existing vertices of a model. meaning we wouldn't be able to import models, we'd only be able to move around the existing verts. then inject the difference back. I figure this won't cause a shift in the data.. but I don't know, cause you said the polygons were stored as tri stripes and all this crazy stuff..
 

Pharrox

Smash Journeyman
Joined
Jan 26, 2007
Messages
397
Location
Belleville, MI
Yeah, I can't see it being able to come out the same size even just modifying the data that's already there. For the most part the coding won't be that hard, it's just the reverse engineering of the known formats. Right now the two I'm focusing on are VIS0 and SRT0, since I don't really know anything about them. Everything else is either pretty basic or over halfway decoded already.

Really all I know so far is that SRT0 seems to be used for non standard textures (metal and spycloak), as well as textures that aren't always shown (Pikachu's thunder). It's basically just one long float array.
 

Knightcrawler

Smash Journeyman
Joined
Jun 19, 2007
Messages
224
Location
Orange county, CA, USA
Other possibilities: hit/hurtboxes (I dunno, were they found someplace else), shadows (they WERE found somewhere, so this is probably a bad suggestion; if not, it's probably a simple model with no UV map or textures), illumination, and particle effects. The last one I'd be willing to bet is something you haven't looked into yet because it's not very obvious. I'd say to compare the unknown file parts of Zelda and hrrmmm... Sonic or Toon Link. Zelda's got tons of particle effects and Sonic/Toon Link have very few, so if you find part of the file that's much larger for Zelda than the other two, that's probably it.

Keep at it, Pharrox, even if you have to take a break. Because it's likely that nobody will ever get to the point you're at now. :-P
 

Pharrox

Smash Journeyman
Joined
Jan 26, 2007
Messages
397
Location
Belleville, MI
Well, for example, SRT0 is what makes your character partially visible (when you move) if you're playing with cloaking. Filling the SRT0 file with all 0's makes it so you're character is never even partially visible, even when in motion. I may just pad with 0's as a temporary solution to those files, since their effect on standard play seems minimal.

VIS0 files, well I haven't really messed with them. They're really small, have one entry for every bone in the model they affect and usually one to three numbers for each bone. Given where they're found, they're name, and the file layout, the most obvious guess is that it's something to do with visibility. Still, needs some in game testing to confirm.

I'm basically just throwing this out there bacause of my lack of experience with 3d modeling. Once I know what I'm working with it should be pretty easy (STR0 being the main thing I'm referring to here). So yeah, if any of you 3d artists know what kind of data could be applied to a model to give it the effects you see when cloaked, please let me know. :)
 

...:::VILE:::...

Smash Ace
Joined
Apr 15, 2009
Messages
786
Yeah, I can't see it being able to come out the same size even just modifying the data that's already there. For the most part the coding won't be that hard, it's just the reverse engineering of the known formats. Right now the two I'm focusing on are VIS0 and SRT0, since I don't really know anything about them. Everything else is either pretty basic or over halfway decoded already.

Really all I know so far is that SRT0 seems to be used for non standard textures (metal and spycloak), as well as textures that aren't always shown (Pikachu's thunder). It's basically just one long float array.
It doesnt matter if they come out different sized. Also i found out how to insert foreign textures (this means we can have like 1 texture file if we wanted.) :p I tried to give Jigglypuff and emerald texture, but theres a difference in the model somewhere and ais cant decode the ******Dark.pac models :(. But strangly enough i did get a weird reflection on the character.
 

Pharrox

Smash Journeyman
Joined
Jan 26, 2007
Messages
397
Location
Belleville, MI
Well I typed out a big explanation, but my connection cut out so I'll just summarize. It is important that the file be the same size. If it isn't the pointers in the header or other files won't match. One temporary solution would be to put it at the very end of a brres file. I could generate the model, but it would have to be copied over manually. You also have to update a pointer in the header yourself. The original data would need to be left as padding, not that the overall file size really matters. So yeah, it's a solution, but it isn't very user friendly.
 

...:::VILE:::...

Smash Ace
Joined
Apr 15, 2009
Messages
786
Well I typed out a big explanation, but my connection cut out so I'll just summarize. It is important that the file be the same size. If it isn't the pointers in the header or other files won't match. One temporary solution would be to put it at the very end of a brres file. I could generate the model, but it would have to be copied over manually. You also have to update a pointer in the header yourself. The original data would need to be left as padding, not that the overall file size really matters. So yeah, it's a solution, but it isn't very user friendly.
The pointers placing in the brres file wouldn't matter, would it? Because its the same as swapping ness's model with lucas's, it looks for the name of the pointer, not the position in the brres file.
 

Knightcrawler

Smash Journeyman
Joined
Jun 19, 2007
Messages
224
Location
Orange county, CA, USA
VIS0 files, well I haven't really messed with them. They're really small, have one entry for every bone in the model they affect and usually one to three numbers for each bone. Given where they're found, they're name, and the file layout, the most obvious guess is that it's something to do with visibility. Still, needs some in game testing to confirm.
Yeah, I'd say it's a good guess. I remember seeing on YouTube some guys playing in a pitch-black, blank stage. Basically characters just spawn and fall to their deaths. This stage I guess has no lighting or geometry, although it's possible it has lighting but no geometry. However, despite the blackness of the stage, the characters were visible. That means they're probably self-illuminating somehow, or the game looks at these markers and says "always render these with such and such lighting in addition to other lighting."

I'm basically just throwing this out there bacause of my lack of experience with 3d modeling. Once I know what I'm working with it should be pretty easy (STR0 being the main thing I'm referring to here). So yeah, if any of you 3d artists know what kind of data could be applied to a model to give it the effects you see when cloaked, please let me know. :)
Uh... I really do more basic modeling and haven't messed with them yet so I can't be sure, but I'd guess it's a kind of vertex shader. Seems that along certain edges between vertices, a soft glow effect and some kind of "pixel distortion" (I really have no idea what it would be called) is used. Their visibility probably depends on your angle relative to the vertex normals. Try setting the whole thing to "f" and a variety of values in between and see what happens.

Sorry, I'm kinda grasping here.
 

shadowtroop

Smash Ace
Joined
Jul 14, 2008
Messages
631
Location
Ann Arbor, MI
Yeah, I'd say it's a good guess. I remember seeing on YouTube some guys playing in a pitch-black, blank stage. Basically characters just spawn and fall to their deaths. This stage I guess has no lighting or geometry, although it's possible it has lighting but no geometry. However, despite the blackness of the stage, the characters were visible. That means they're probably self-illuminating somehow, or the game looks at these markers and says "always render these with such and such lighting in addition to other lighting."



Uh... I really do more basic modeling and haven't messed with them yet so I can't be sure, but I'd guess it's a kind of vertex shader. Seems that along certain edges between vertices, a soft glow effect and some kind of "pixel distortion" (I really have no idea what it would be called) is used. Their visibility probably depends on your angle relative to the vertex normals. Try setting the whole thing to "f" and a variety of values in between and see what happens.

Sorry, I'm kinda grasping here.
That's the custom stage on Wi-Fi code when you haven't played on a custom stage first. Also, when on the all-star resting, you step in the portal and everything goes black, including characters. It must be stage specific...
 

fortwaffles

Smash Ace
Joined
Jan 20, 2009
Messages
514
That's the custom stage on Wi-Fi code when you haven't played on a custom stage first. Also, when on the all-star resting, you step in the portal and everything goes black, including characters. It must be stage specific...
either that, or it's a different form of rendering speciffically for that stage (which is basically what u just said... oops lol) so, pharrox, you are also working on the Fit***MotionEtc.pac files?
 

Knightcrawler

Smash Journeyman
Joined
Jun 19, 2007
Messages
224
Location
Orange county, CA, USA
I asked my friend Defiant to take a few guesses. He's played Smash, but not in a long time. And he doesn't remember what the effect looks like, so he's taking these guesses as just that.

Hm. Well, the Wii itself is fixed-function, so no shaders per se.
It would probably be a custom effect setting. You might be able to achieve it by rendering the area behind the character to an offscreen surface and then projecting that texture onto the character.
But you might not even have to go to that end, Tribes II did a cloaking effect by just setting a cloudy texture and fading the character out.
 

Revven

FrankerZ
Joined
Apr 27, 2006
Messages
7,550
Location
Cleveland, Ohio
That stage is accessible, it is basically Brawl's DUMMY stage. Melee had the very same stage, where you were falling and there's blackness in the background etc. (Remember? It was in Melee's Debug Menu).
 

Arw1ng

Smash Rookie
Joined
Feb 16, 2009
Messages
21
Wait, so theretically speaking, we could have a Pichu that isn't a waste of a spot?

o:
 

mariokart64n

Smash Apprentice
Joined
Apr 21, 2009
Messages
130
we need some entertainment up in here.

lets get some fan made renders going with the models from brawl
 

GaryCXJk

Smash Lord
Joined
Jun 2, 2006
Messages
1,809
That black screen is the result screen. If you replace the taunts with the win poses, the background changes to the original result screen texture. Otherwise the texture won't be loaded.
 

Pharrox

Smash Journeyman
Joined
Jan 26, 2007
Messages
397
Location
Belleville, MI
either that, or it's a different form of rendering speciffically for that stage (which is basically what u just said... oops lol) so, pharrox, you are also working on the Fit***MotionEtc.pac files?
.PAC files aren't the problem, it's the different kinds of thing in those files. But yes, hopefully everything in the animation files will be covered.

I asked my friend Defiant to take a few guesses. He's played Smash, but not in a long time. And he doesn't remember what the effect looks like, so he's taking these guesses as just that.
Actually that sounds pretty good. Still, even if it is right, I'm still not sure how to test it. It makes a lot of sense that it is being rendered elsewhere because of the fact that even while invisible, effects can't be seen behind the characters, smoke, particles and even your shield don't show up behind you. Assuming that it's just rendering geometry, that would make perfect sense. Now it just comes down to the matter of finding a way to test it, and then represent it in an editable format. Thanks for the suggestions, this really is a great help. :)
 

Knightcrawler

Smash Journeyman
Joined
Jun 19, 2007
Messages
224
Location
Orange county, CA, USA
More comments from my friend, Defiant, before you replied.

Oh, I see the effect you're talking about. It's sort of a silhouette.
It's probably a z-buffer trick.
He mentions zeroing out the SRT makes the character invisible, yes?
What happens if half of it is zeroed?
He mentions it's used for metal, though...that's another matter.
Ah well, if you get more info, I can probably think more on it.
 

mofo_

Smash Ace
Joined
Jan 12, 2009
Messages
931
Location
The 808 State
That black screen is the result screen. If you replace the taunts with the win poses, the background changes to the original result screen texture. Otherwise the texture won't be loaded.
no, there are 2 black screens; NothingWorld and ResultsScreen, theyre talking about the stage with no ground & nothing, cant save a replay because it'll just end up being corrupted [ which is kinda weird ]
 

STEF2009

Smash Rookie
Joined
May 8, 2009
Messages
3
Hi,

about this converter ais.exe

I downloaded the exe (ais0.1.exe ) from this site, but it doesn't work
I got later versions (I think, it's ais_0.1.1.exe and ais_0.1.2d.exe) from somewhere, but I get the same log file.
I then used ais0.1.3 (AIS.exe) but this just completely crashes.

In the log file, I get the error:
ERROR: Unknown identifier in poly group (1)

any idea what might be the problem ?
 

STEF2009

Smash Rookie
Joined
May 8, 2009
Messages
3
Well it's actually not a model from smash bros. (but your's and william's are the only converters I could find, so that's why I'm asking it here)
It's a .brres file, so it's couple of models (about 15) and textures (.tpl)

I can extract the .brres and convert the tpls to png, but the mdl0 files are the problem, the williamsconverter doesn't seem to work, so I tried your converter (with the .brres ofcourse not the .mdl0 files).
 

Pharrox

Smash Journeyman
Joined
Jan 26, 2007
Messages
397
Location
Belleville, MI
Well, a bit more information on the SRT0 blocks. Padding with all 0xFF results in pretty much the mormal effect you would see, but much more pronounced. You are constantly seen even when not moving, and look, for lack of a better word, kinda grainy. The same thing happens when padded with 0x7FFFFFFF, as the both technically read as not a number.

Padding with and other number constantly all the way through, 1.0, 100.6, etc, results in the same thing as padding with 0's in that you are always completely invisile no matter what you do. It seems these files are based more around the difference between the numbers rather than the actual numbers themselves.

Inserting numbers progressively (1.0, 2.0, 3.0, etc) had an effect more pronounced than normal, though less pronounced than padding with not a number. Also the behavior was kinda weird. Instead of being motion based it seemed to be more camera based when padded like this. For example, holding down A when using Pikachu results in at first being completely invisible for a few seconds, then as to opponent approaches you and the camera zooms in just a bit, you suddenly become very noticable.

The original files layout seems to have a mix of floating numbers and whole numbers in float form. For every whole number there are two decimal numbers, the first one always smaller than the second. The whole numbers increase in size the farther you get into the file, but don't seem to have any real pattern they follow as they get bigger (53, 54, 55, 71, 75, 82, 83, 98)

Can post screen caps if it would be helpful.
 

mariokart64n

Smash Apprentice
Joined
Apr 21, 2009
Messages
130
hm.. sounds interesting. I'll have to experiment with that later too. it doesn't sound like anything I've ever seen

might be some sort of culling info based off face to face data
 

KAZECoyote

Smash Cadet
Joined
May 2, 2009
Messages
36
This is my cloud model for Ike, but i cant seem to get the extractor to work so i can rig it with Ikes bones(and face)



 

-BigSharkZ-

Smash Lord
Joined
Jan 19, 2009
Messages
1,071
This is some really epic work you've done here!

I'm amazed. All I got to do by scratch was this crappy 3D cel-shaded Bomberman XD.
 

Poxag

Smash Apprentice
Joined
Apr 15, 2009
Messages
123
Holy ****! that's tight, I just downloaded the KH2 version of cloud from garrys mod.org. that's actually a very good place to find models, cause they can be converteed for use in other programs. I've just been downloading other model instead of making my own, It's too hard to do it myself. So far I have, krystal, knuckles, cloud, sephiroth, Leon, Panther, neliel tu and Rorschach. im still looking for more tho
 

KAZECoyote

Smash Cadet
Joined
May 2, 2009
Messages
36
Half of it. I got the hair from Dissidia and the sholderpad, arm thing, and boots from KH1. Ill put credits with the download, its like 65% (including textures) custom.
I dont like the kh2 AC model, I think the dissidia models are better, i might rig Squall and Zidane from it.
 

...:::VILE:::...

Smash Ace
Joined
Apr 15, 2009
Messages
786
ais1.3 is being gay, its saying that its failing to start because its side by side configuration is incorrect. Help plz?
 

KAZECoyote

Smash Cadet
Joined
May 2, 2009
Messages
36
It tells me that the configuration is incorrect and to reinstall it... but i never installed it :/
 
Status
Not open for further replies.
Top Bottom