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

Writing a Gecko code to change what stage gets loaded in a vs. match

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Every stage has a hexadecimal ID that gets loaded upon selection on the Stage Select Screen. Knowing the location of this memory offset that gets loaded and ID numbers of all the stages, an IF statement can be written to change the ID moments before the stage gets loaded.

For example,
In version 1.02, 80480687 is the memory offset that has the ID that stages get loaded from for vs. matches. Thus we can write,

28480686 FF000019 <-- if the byte (stage ID) at 80480687 = 19 (Icicle Mountain)
00480687 00000053 <-- overwrite this value with 53 (Snag the Trophy Stage)
E2000001 00000000 <-- endif

It's as easy as that! Now whenever we select Icicle Mountain, it will load the Snag the Trophy stage.

Here are code templates for each version. As shown above,
XX = stage to replace
YY = replacement stage

(1.02)
28480686 FF0000XX
00480687 000000YY
E2000001 00000000

(1.01)
2847F9A6 FF0000XX
0047F9A7 000000YY
E2000001 00000000

(1.00)
2847E6BE FF0000XX
0047E6BF 000000YY
E2000001 00000000

(PAL)
2847148E FF0000XX
0047148F 000000YY
E2000001 00000000


A list of Stage IDs can be found here at AHeinerm's Google Page:
https://code.google.com/p/vgce/wiki/ssbmStageID

(Note: I am only referring to the last two digits of each stage ID. I, personally, wouldn't really see the point in loading any stages past [100], as it does not introduce any new ones. If you did want to though, a few modifications would be needed to the above code templates)

Also see the Gecko site if you are interested in seeing more information on the codetype.
http://geckocodes.org/index.php?arsenal=1#F0
 
Last edited:

TerryJ

Smash Journeyman
Joined
Apr 12, 2010
Messages
488
Location
BEST COAST, WA
NNID
1337-1337-1337
3DS FC
1337-1337-1337
I love you so much for this. I've REAAALY been wanting to play on the Trophy stage with others for a long time. Problem is the stage still freezes after a couple of seconds of playing it. I'm pretty sure it's caused by the spawning trophy's so it might need to be disabled to be playable.
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
I don't know if you saw my post in the gecko codes thread about this, but that code is available for 1.02.

Disable Trophy Spawn on Snag the Trophy Stage
(1.02) [wparam]
- Game doesn't freeze when playing level outside of Classic Mode
- Trophies do not spawn in Classic Mode as well

042199FC 60000000


The trophy stage is certainly awesome and has a lot of potential, but it's got some work to be done on it before it can be competitively viable. The edges are not grabbable, blastzones are very small (sides), and the edges have a little lip that extend past the wall keeping recoveries from riding up the wall and onto the stage. It's a dream/goal of mine to eventually fix all these problems, but I have done ZERO stage hacking and I know it's hard and rather undocumented. So we'll see....

I love the purple rings in the center of the stage. They're a stage feature unlike any other (that I know of, or at least unlike anything on the current tournament stages). If you stand on top it acts like a platform (that I don't think you can drop through), and you can also walk through them. The interesting part is that the rings block projectiles....its like a little safe haven under the rings. It would be so interesting to see people play on.

But anyway, using those codes in my original post, you can then make stage select modifications like this:



Note: Icicle Mountain, Big Blue, Mush Kingdom, and I also replaced the DreamLand picture because I've always hated the original (which I showed below the modified)
 
Last edited:

TerryJ

Smash Journeyman
Joined
Apr 12, 2010
Messages
488
Location
BEST COAST, WA
NNID
1337-1337-1337
3DS FC
1337-1337-1337
Beautiful.

I guess I'm going to have to switch my ISO to a 1.2 version since I'm using a 1.0 currently.

Also, would you mind going into detail on how you changed the pictures/added a stage icon? Also I'm pretty sure there's a way to change the text for each stage selection too but I don't know where the documentation on that is.
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Yeah, I would switch to 1.02. That seems to be the version that everyone writes new codes for anyway (including myself).

I plan on making a video soon detailing the process of changing stage select icons and text. I'll keep you posted.

and if you were wondering, using the Stage ID for Event Match 39: Jigglypuff Live! will give you Pokemon Stadium with no transformations. It's pretty awesome having the option for both!
 

TerryJ

Smash Journeyman
Joined
Apr 12, 2010
Messages
488
Location
BEST COAST, WA
NNID
1337-1337-1337
3DS FC
1337-1337-1337
Yeah, I would switch to 1.02. That seems to be the version that everyone writes new codes for anyway (including myself).

I plan on making a video soon detailing the process of changing stage select icons and text. I'll keep you posted.

and if you were wondering, using the Stage ID for Event Match 39: Jigglypuff Live! will give you Pokemon Stadium with no transformations. It's pretty awesome having the option for both!
Any way you could make it so we're able to load different versions of stages if we hold L/R while selecting the stage? It'd be neat to have multiple versions for each stage, legal and modified without having to get rid of stages already there to replace them with. Also actually adding stage selection icons would be cool too but that sounds pretty difficult.
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Toggling on/off things like pokemon transformations might be possible. One of my first code attempts was this but it wasn't working as expected. If I turned off the timer from the first time I played the match after booting the game, it would stay off forever, even if I later turned it back to its original value. I do want to look into it some more.

But, doing things like holding R and choosing Green Greens will get you that cool Green Greens stage hack that takes away the block and pushes those side platforms in, is not possible [at the moment at least]. The only way I could see this happening is if someone found out how to have the game point toward a completely new file within the disc filesystem. Idk if thats feasible or not.
 

Sham Rock

Smash Apprentice
Joined
Feb 10, 2014
Messages
95
Location
Outside of your grab range
Yeah, I would switch to 1.02. That seems to be the version that everyone writes new codes for anyway (including myself).

I plan on making a video soon detailing the process of changing stage select icons and text. I'll keep you posted.

and if you were wondering, using the Stage ID for Event Match 39: Jigglypuff Live! will give you Pokemon Stadium with no transformations. It's pretty awesome having the option for both!
Iirc Event Match 39 had an easter egg where everybody would get hit if a Jigglypuff used sing while it is "on TV", regardless of position on the stage.
Does that still exist or is the option tournament viable?
 

Cyjorg

tiny.cc/19XXTE
Joined
Nov 18, 2013
Messages
686
Location
Purdue University
How did you apply this to your 20xx pack without Gecko Codes?

Edit:
Namely the MKI > Jigglypuff Live stage switch
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
How did you apply this to your 20xx pack without Gecko Codes?

Edit:
Namely the MKI > Jigglypuff Live stage switch
When dpad down is pressed while on the character select screen, a byte (that the game normally never changes) is changed from 00 to FF.

I injected custom code at a line that gets executed after you choose a stage, but before it actually loads. And this code basically looks at that memory address on the main post of this thread, and says "if mushroom kingdom 1 is chosen AND the hacked stage byte toggle = FF, then write the stage ID for jigglypuff live at that memory address. Otherwise, don't write anything"
 
Last edited:

Cyjorg

tiny.cc/19XXTE
Joined
Nov 18, 2013
Messages
686
Location
Purdue University
When dpad down is pressed while on the character select screen, a byte (that the game normally never changes) is changed from 00 to FF.

I injected custom code at a line that gets executed after you choose a stage, but before it actually loads. And this code basically looks at that memory address on the main post of this thread, and says "if mushroom kingdom 1 is chosen AND the hacked stage byte toggle = FF, then write the stage ID for jigglypuff live at that memory address. Otherwise, don't write anything"
That's beautiful. You should really consider posting any kind of notes you have so we can pick and choose what we want, actually understand the 20xx hacks, and maybe be inspired to make our own. Personally I'd love to start modding myself but until then I'd at least want to do things like disable the ability to give everyone infinite shield etc.
 

slowbruh

Smash Cadet
Joined
Jan 11, 2017
Messages
60
Its not working for me now every stage leads me into peach target smash (i have melee 1.02). here is the code:

28480686 FF000015
00480687 00000030
E2000001 00000000

thanks in advance
 

Zamorita

Smash Rookie
Joined
Jan 5, 2017
Messages
5
Is there a way i can play 1v1 in miiverse?
I can load it only with kirby target test
 

Michael Ashby

Smash Apprentice
Writing Team
Joined
Dec 10, 2015
Messages
148
Location
Athens, GA
Slippi.gg
GIN#752
Hey guys, I know this thread is pretty old, but for anyone just getting into coding, this page is a pretty good reference for this type of basic Gecko code, so I wanted to mention a small issue I found regarding this process.

I was originally trying this code out on a Vanilla Melee Iso version 1.00, and I was running into issues, because the code wasn't working at all.

Here's the exact code I was using:
Load Bowser's Target Test instead of Green Greens
1.00
2847E6BE FF000011
0047E6BF 0000002a
E2000001 00000000

I wrote this code originally using this guide, and then had it check over again by DRGN when I was having issues. We went through the whole process just to make sure it wasn't user error, but it still wasn't working. I managed all my coding with MCM, and had never had issues prior.

Eventually I switched to a v1.02 ISO for other reasons, and retried the v1.02 code for this exact same function, and everything worked perfectly.

In short, if you're using v1.00, I think the version of code for v1.00 is wrong at the moment, specifically the memory address the code uses/targets are probably wrong.

My advice? Honestly just switch to v1.02, as it's easier to mod anyway. If you want the hitlag behavior of 1.00 there are codes for that already built into MCM, so I wouldn't sweat it too much.
 

DDragon

Smash Rookie
Joined
May 14, 2018
Messages
3
Its not working for me now every stage leads me into peach target smash (i have melee 1.02). here is the code:

28480686 FF000015
00480687 00000030
E2000001 00000000

thanks in advance
Same problem, pls help
 

DRGN

Technowizard
Moderator
Premium
Joined
Aug 20, 2005
Messages
2,175
Location
Sacramento, CA
Same problem, pls help
Information is needed in order to help. What game version are you using (1.00, 1.02, etc)? And which version of the code are you trying to use? How are you applying the code?

I would try using 1.02 for your game version, since most codes are written for that. (If there are specific game features/behaviors you want from 1.00, there are even codes to replicate those.)
 

DDragon

Smash Rookie
Joined
May 14, 2018
Messages
3
Information is needed in order to help. What game version are you using (1.00, 1.02, etc)? And which version of the code are you trying to use? How are you applying the code?

I would try using 1.02 for your game version, since most codes are written for that. (If there are specific game features/behaviors you want from 1.00, there are even codes to replicate those.)
I use ntsc 1.02 and I used the codes and ids from this thread https://smashboards.com/threads/custom-stages-in-melee.442979/
I used them as AR code on dolphin.
 

hotdogturtle

Smash Master
Joined
Feb 15, 2007
Messages
3,503
Hi, I realize that this thread is so old that it predates the Melee Codes subforum (maybe move it there?), but I'm wondering if such a code could be made or modified to work in 1P modes. I was trying to find a way to replace the Target Test stages with Escape from Brinstar [Adventure mode] so you can play it standalone. I realize that this code refers to a memory address that stores the stage ID of the selected stage from the Vs stage select screen, so to my understanding someone would need to find the address that controls the stages loaded by 1P modes. Or do those modes not work the same way since there's no stage selection screen, and thus we'd need an entirely different code instead to accomplish this?
 

Ux66

Smash Rookie
Joined
Mar 14, 2019
Messages
4
Location
Burlington, VT
Slippi.gg
UX#66
Would like to mention that applying these codes to an ISO using MCM breaks Slippi direct connect for that ISO for all stages, not just the ones changed using this code. Beware!
 
Top Bottom