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

Stage Hacking: NEW Research + Documentation

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
If one were to have the knowledge to edit the display list, wouldnt it be possible to add more vertices.
yep, exactly, and for something in an area of question like what I've done with Pikachu's head there, you wouldn't need to add weights, but use the already existing weights ;)
(for example, I could work on DP's hair and make it look much better by only adding vertices affected by the same influence matrices)
^ you'd have to realign the pointers afterwards, but it's possible so long as you currently don't add or remove any pointers to or from the file ;)
 
Last edited:

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
yep, exactly, and for something in an area of question like what I've done with Pikachu's head there, you wouldn't need to add weights, but use the already existing weights ;)
(for example, I could work on DP's hair and make it look much better by only adding vertices affected by the same influence matrices)
^ you'd have to realign the pointers afterwards, but it's possible so long as you currently don't add or remove any pointers to or from the file ;)
If characters work like stages the you could just add the entire new display list and mesh to the end of the file without editing the pointers. Youd only have the change the pointers that go to the mesh.
I guess I really should sit down and stare at how display list work.
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
eh, it's not that simple actually...
the display list is allocated with a 32 byte chunk alignment, so you'd have to keep the data in the list at that location.

there's a bu16 int in the object data that gives the DList size
size = bu16() * 32
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
eh, it's not that simple actually...
the display list is allocated with a 32 byte chunk alignment, so you'd have to keep the data in the list at that location.

there's a bu16 int in the object data that gives the DList size
size = bu16() * 32
If youre referring to the mesh structure you have to change that as well. Youd have to change everything that points to these things which isnt that much. Its how Ive been adding things to the end of the files. When I did this I added the mesh from GrSh to the end of the file of a target stage.

Ill test this more later. I could have done something wrong.
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
oh woops... I keep getting the mesh and object structures mixed up between the 2... heh

I guess you could reposition the entire DList at the end of the file >.>
just adjust the DList pointer and size, and yea, it could work >.>

though that certainly is quite a dirty way of doing it :p

what cool is that actually wouldn't break UMC's current script =3
heck, with the way the script works, the pathfinder would pass that AND there wouldn't be any errors.

that idea actually has alot of potential, but it's just dirty :p

then again, FortWaffles's idea was just as dirty for adding bones to the MDL0 :p


I'm thinking ahead of myself... excuse my autism XD
this could work for now until we have something better :)
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
oh woops... I keep getting the mesh and object structures mixed up between the 2... heh

I guess you could reposition the entire DList at the end of the file >.>
just adjust the DList pointer and size, and yea, it could work >.>

though that certainly is quite a dirty way of doing it :p

what cool is that actually wouldn't break UMC's current script =3
heck, with the way the script works, the pathfinder would pass that AND there wouldn't be any errors.

that idea actually has alot of potential, but it's just dirty :p

then again, FortWaffles's idea was just as dirty for adding bones to the MDL0 :p


I'm thinking ahead of myself... excuse my autism XD
this could work for now until we have something better :)
It is incredibly sloppy. Its just that I havent made a program to shift the values in the pointer table and so its either manually change these (I did it once... It took forever) or add it to the end. Really this is just a way of doing it temporarily to test things. I also use the same method to add higher res images. At some point before the semester starts Ill create a program to automate it hopefully.
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
yea... mine'll be a while... I need a pointer system to be able to export the format properly... heh
but even still, I have to build the format, so I can't just do something simple... :p
 
Last edited:

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
So uh, I tried only adding just part of a mesh to the end instead of the tedious effort of doing the entire thing. Removed part of a different mesh to free up some relocation table entries. Got an error. Invalid texture format=7.
Heres the result.

Roys target stage. The pipe is from yoshi island. Too lazy to copy over the images. I can only assume I broke the display list or maybe I made a pointer go to the wrong spot.There were a lot of them.
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
ehh, you did alot... heh

wait... are you adding pointers to the file??
No I was replacing the mesh for a platform with the pipe. The idea is that you can repurpose entries in the pointer/relocation table that you dont need or want. For a lot of stages hacks Ive been working on Ive gotten rid of a ton of objects which leaves a ton of relocation table entries unused.
I cant tell if its the new mesh thats broken, or the old mesh thats still being used by other platforms thats broken. Could also have something to do with the texture structure flags since swapping them gives me a list of problems. Ill try to mirror the texture structure later and see if that fixes the problem.
 
Last edited:

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
No I was replacing the mesh for a platform with the pipe. The idea is that you can repurpose entries in the pointer/relocation table that you dont need or want. For a lot of stages hacks Ive been working on Ive gotten rid of a ton of objects which leaves a ton of relocation table entries unused.
I cant tell if its the new mesh thats broken, or the old mesh thats still being used by other platforms thats broken. Could also have something to do with the texture structure flags since swapping them gives me a list of problems. Ill try to mirror the texture structure later and see if that fixes the problem.
So... would this allow for instance the crane on Fourside do be duplicated over the UFO (giving 2 cranes)?

EDIT: So I tried it



Now, that's a pretty good result... buuut: for whatever reason despite me replacing only one of the flowers (they were the 6 stars in the original level), all of them disappeared as a result of me changing one of them to a rock (bush).
I'll investigate further. By the way, my final goal with this stage is to completely fill it with flowers (the kind that react to the wind).
 
Last edited:

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
I updated the post with my new findings. Technically what I did was replacing, not duplicating though.
 
Last edited:

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
OOOH! I figured out what you meant by that. That's actually a good thing. Last thing I want is a floating UFO crane heh.
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
So... would this allow for instance the crane on Fourside do be duplicated over the UFO (giving 2 cranes)?

EDIT: So I tried it



Now, that's a pretty good result... buuut: for whatever reason despite me replacing only one of the flowers (they were the 6 stars in the original level), all of them disappeared as a result of me changing one of them to a rock (bush).
I'll investigate further. By the way, my final goal with this stage is to completely fill it with flowers (the kind that react to the wind).
What I was doing was taking meshes from other files and inserting them. Taking meshes from the same file is easy. You just redirect pointers to them. You can duplicate things as many times as their are objects. The stars probably have a child object. Sorry I skipped straight into taking other meshes and didnt explain that part. Be sure to read tcll's dat page. You'll understand the structures better and what youre looking at.
Im not sure what you mean about the crane and ufo, but one of the things I was planning on doing was replacing the hotel in your stage hack with another copy of the building next to it.
Really for things like platform I dont understand why each one doesnt point to the same structure, but that just means more entries in the relocation table to repurpose.
Edit: Heres and a clear example of doing so I posted a while back in the other thread.

I also talk about deleting part of meshes with the display list which works differently than removing the texture. Its how I removed the pipe on Yoshi Island.

I really need to figure out how to add stages with gecko codes. So many training stages with so much potential.
 
Last edited:

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
Ooh! Hey could I please have that .dat for that? It's just that I learn better from example.
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Ooh! Hey could I please have that .dat for that? It's just that I learn better from example.
Uh... I probably turned that dat it this stage. Notice that the top platform is duplicated and has the second one upside down. I think I still have one without any textures though so I could try to make if for you again.

This is such a fun stage. I really need to finish it. Now that I know how to delete only parts of meshes Ill try to get rid of the grass on the side and place bricks over there. I couldnt have done that with the knowledge I had when I made the stage. If I understood vertex hacking though itd be a lot easier.
 
Last edited:

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
Whoa! So wait, you did all this without changing the meshes? As in, editing vertice positions?
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Whoa! So wait, you did all this without changing the meshes? As in, editing vertice positions?
Yeah, changing scales, duplicates meshes, and moving everything around really. It was just the second stage I made I think.
Oh I wanted to try out your vertex program but Im not quite sure how to use it. Im assuming you only copy the vertices in the mesh array. Is there like a row a zero's that you copy to or what. Not really sure how to use it. I could program reverse your dreamland vertex guide though I guess.
 
Last edited:

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
Well... my ingenious method of using it involved Ctrl-F-ing "00 00 00 00" and just visually determining that "yeah that seems like it's the end". There really is no penalty for copying more than just the mesh. You just want to be sure not to edit those vertices if you do.
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Well... my ingenious method of using it involved Ctrl-F-ing "00 00 00 00" and just visually determining that "yeah that seems like it's the end". There really is no penalty for copying more than just the mesh. You just want to be sure not to edit those vertices if you do.
Ill give it a shot tonight. It would make stage editing so much easier if I werent bound to the current shapes in the game. Its why I started duplicating meshes although Im running into an issure with the texture group if theyre too different. Some have color nodes and pallete nodes which I have to edit as well but Im way too lazy to go through that. Its what happened with the pipe.
Did you ever get the background working btw. If you don't do it right it wont load on the wii.
 

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
Nah I didn't get it working. I diiid get the consolation at least of finding where the model for it was declared (not that I'd recommend editing it, but just useful to know).
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Nah I didn't get it working. I diiid get the consolation at least of finding where the model for it was declared (not that I'd recommend editing it, but just useful to know).
Id recommend making it smaller. Theres really no need for the background to be as big as it is. Its why the backgrounds look as bad.
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
I think the logic is for when the stage zooms out during big moves (which is does).
Fair enough. I forgot how ridiculous the blast zones are for a second. Although there is all that white space. Could at least get rid of that. I dont think its used.

Ive successfully added the collision table to the end of the file. I might play with adding more points tonight as well. Making a battlefield style fd would be cool.
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
I feel so stupid right now :D
Thank you very much!

Edit:

Just finished my DL64 hack:




I wanted to create a balanced and simple stage without any jank cause our 6 competitive stages all have some kind of (minor) annoyance (battlefield ledges, Whispy's wind, rendall etc).

So I tried this as my first stage hack :)

Changes from vanilla DL:

- Changed the blastzones to the size of battlefield (around 1-2 % off)
- Removed the windblow and the background dedede/kirby spawn
- Removed the background trees
- Removed the 2 stupid looking ponds in the fourground
- Fixed the platforms to be more symethrical, the vanilla platforms all had slightly different sizes (position and collision data)

Shoutout to Milun for the awesome bottom-texture, the stage now looks like a piece of nature ripped from the earth and thrown in the sky, or something like that.

http://www.mediafire.com/download/ond88d6udo0fkfb/GrOp.dat


Zankyou how exactly did you upscale the background and put it back in the file?
I read that you just pasted the data on the end of the file but how does the game use the offset at the end instead of the regual on?
I'm still looking for a better background for the hack and your upscaling would help a ton.
This is f***ing awesome btw. Thanks for sharing!
So you fixed the platforms to be more symmetrical...did this include changing their heights?

RIP ponds! I actually like them...but I guess they're just not good enough for Nature Land 64.
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
I have to admit, I'm loving where this thread is going :)

also, if you can figure out the root nodes, think I could get some help undersanding the root image data >.>

that's the only thing that can currently break the pathfinder...
 
Last edited:

Ohsm

Smash Apprentice
Joined
Jul 26, 2011
Messages
175
Location
Germany
This is f***ing awesome btw. Thanks for sharing!
So you fixed the platforms to be more symmetrical...did this include changing their heights?

RIP ponds! I actually like them...but I guess they're just not good enough for Nature Land 64.
Thanks bro, really appreciate it.

I forgot to mention that I lowered all 3 of the platforms. The ones on the left and right are the same height as battlefield's platforms and the middle one is a bit lower than battlefield's.
Never like the height of the side platforms from the vanilla version, no tippered f-smash for marth ;)

Here is a version with the ponds:
https://www.mediafire.com/?ayejh0wi39dtuc4

Btw yesterday I tried to find a fix for the thin edges of battlefield without making them perpendicular to the stage cause that felt really awkward to play, if you dropped from the ledge and hold only 1-2 frames inwards and then jump you got immediatly stuck under the stage so I kept slant to avoid this problem.

Here's a pic of the debug mode with the collision on:

And here's gif with fox where he side-b'ed low and still grabed the ledge, on the vanilla version he would have clipped under the stage even tough it looked like he should grab the ledge.


It's not perfect but it's something.
https://www.mediafire.com/?hn5hfqna92f4nj6
 
Last edited:

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
Question:

I looked through it, and all the data for a trophy (verts, UVs, texture, etc) can fit inside the Goomba Trophy Tussle stage easily (as in, the trophy has less verts, smaller textures, etc). Now, I'm pretty sure the offsets mess up regardless of where I paste it. Is there an easy solution to this (I did look through the .dat documentation but I couldn't make much sense of it to be honest).

Also a minor question: how are you rotating/scaling objects without mesh edits? I've figured out how overwriting one object for another works (and am planning on making a simple tutorial on the first post about it for the everyman).
 
Last edited:

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Question:

I looked through it, and all the data for a trophy (verts, UVs, texture, etc) can fit inside the Goomba Trophy Tussle stage easily (as in, the trophy has less verts, smaller textures, etc). Now, I'm pretty sure the offsets mess up regardless of where I paste it. Is there an easy solution to this (I did look through the .dat documentation but I couldn't make much sense of it to be honest).
Did you also paste over the display list as well as fix the pointers for the uvs and verts.
 
Last edited:

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
(Display list is that thing at the end of the file right?) No I didn't. Now when you say UV's and Verts, you mean the pointers before whole blocks of faces right? Not the individual references within each one (you know, where it goes "vert #34, UV #17")?
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
(Display list is that thing at the end of the file right?) No I didn't. Now when you say UV's and Verts, you mean the pointers before whole blocks of faces right? Not the individual references within each one (you know, where it goes "vert #34, UV #17")?
Uh I dont know where the display list is in reference to things. But it tells the game how to connect verts and uvs and what not. Start at the object group and take the fork to the display list though. And yeah, the pointers to the blocks, I dont think theres one for each.
 

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
I went through all the face data in the Goomba trophy tussle and blanked it (but I made sure to leave the... "headers"? in tact. I'm not sure what the terminology is but theyre the things that point to the next and previous block of face data).

I then proceeded to copy a block of TyDosin's face data in place of one of the Goomba's, and it worked! Unfortunately, there's a block of face data in TyDosin which is bigger than any single block in Goomba. I tried rerouting the pointers in preceding and following face-block... things, but I think I messed something up:

 
Last edited:
Top Bottom