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

PM 3.6 Alternate Stage Code Guide

Ryztiq

Smash Hoo Hah
Joined
Nov 21, 2013
Messages
1,101
Location
Chicago, IL
NNID
Theytah
Here's a quick tutorial on how the alt stage codes work.

Start by looking for DEADBEEF BABEBEEF in the codeset, you’ll find it twice near the top and underneath each there’ll be a ton of coding, the first section below DEADBEEF BABEBEEF is for stage files, and the second one is for their module files (or RELs). (NOTE: If you cant find the DEADBEEF BABEBEEF, then search for * 45415254 01000000 instead, as it is right at the top of each section of the stage code.)


* DEADBEEF BABEBEEF
* 46000010 00000000
* 44000000 005A7CB0
* 66200033 00000000
* 45415254 01000000
* 00400019 00000000

Amount of Stages (33 = 51 stages since the code stores the number in hex)

First 4 letters of stage file name (45415254 = EART)

Amount of button combinations (01 = 1 combination, the next line is how the combination works)

Amount of Random stages to load (Order by letter, _A _B _C etc.)

Buttons to activate (0140 = L which means L must be held to load the combination)
Here's a site where you can find different button inputs for controllers in the correct format

File suffix loaded (19 stands for Z, so in the example above, pressing A+L (0140) would load _Z (19)
0 = _A 1 = _B 2 = _C 3 = _D 4 = _E 5 = _F 6 = _G 7 = _H 8 = _I 9 = _J A = _K B = _L C = _M D = _N E = _O
F = _P 10 = _Q 11 = _R 12 = _S 13 = _T 14 = _U 15 = _V 16 = _W 17 = _X 18 = _Y 19 = _Z


so lets say I wanted to have it so that a stage had 5 versions of the main file that would load randomly, but I also wanted to make it so that holding L will load the alt stage no matter what. The code would look like this (using FD as an example)

* 46494E41 01050000
* 00400019 00000000

Now, lets say I wanted to do the same thing but this time I wanted it so that I could load one alt stage by holding L, and another by holding A+L, it'd look like this.

* 46494E41 02050000
* 00400019 00000000
* 01400018 00000000

The first line had the 01 change to 02, which means there's two button combinations. A third line was added which is the second combination possible. Notice how I put 18 instead of 19, which means that the second combination loads STGFINAL_Y.pac instead of STGFINAL_Z.pac

Remember, you need to edt the line below * 44000000 005A7CB0 for each section of code so that it knows how many lines to read, if I were to add that button combination for final destination to both parts of the code, I'd need the line that says * 66200033 00000000 to say * 66200036 00000000 instead, because there's now 54 lines of code instead of 51.

The calculator program in windows has a nice programmer mode that can calculate hex and decimal back and forth, and HxD is good for finding out what the name of the stage in hex is.
 
Last edited:

NFreak

Smash Journeyman
Joined
Jan 13, 2014
Messages
420
Location
MA
In theory, this can be used to add any number of alternates to any stage, including those that don't have alts in 3.6?

Are there any weird restrictions with some stages? I saw Sandfall mention on reddit how PS1 and PS2 have to use PS1's slot, which sucks because it has less music slots than PS2 (is there a workaround for this?). Any other issues to know about?
 

birdnerd

Smash Rookie
Joined
Mar 8, 2015
Messages
4
Location
Ontario
Are there any weird restrictions with some stages? I saw Sandfall mention on reddit how PS1 and PS2 have to use PS1's slot, which sucks because it has less music slots than PS2 (is there a workaround for this?). Any other issues to know about?
Just to add on to this question a lil bit, Smashville is one stage in particular I'd be curious to hear about! o:
 
Last edited:

Ryztiq

Smash Hoo Hah
Joined
Nov 21, 2013
Messages
1,101
Location
Chicago, IL
NNID
Theytah
In theory, this can be used to add any number of alternates to any stage, including those that don't have alts in 3.6?

Are there any weird restrictions with some stages? I saw Sandfall mention on reddit how PS1 and PS2 have to use PS1's slot, which sucks because it has less music slots than PS2 (is there a workaround for this?). Any other issues to know about?
Its like when you try to port stages over other ones normally, stages that have special effects or sounds related to their .rel will only work over the base stage, so for example if I had dreamland as an alt for fountain of dreams then there'd be no wind effect from wispy, stuff like that.

Also, you can have up to 26 stages per slot since that's how many letters are in the alphabet.

I'd need to figure out what all the letters the game goes by (I know that Z isn't the 19th letter in the alphabet, lol) and also figure out what buttons correspond to what (I don't know where the info was gained that 4 is A and 1 is L, but I want to figure out the rest of the buttons so that there can be more flexibility with this) but besides that there's not really any limit as long as its within the bounds of how the code works. It'd be ideal to not have a combination that uses any buttons that already do stuff on the stage select screen, so besides say, start and the D-Pad you dont have that many button choices (because Z, X, Y, B, and R all have functions on the stage select screen)
 

Sundark

Smash Apprentice
Joined
Oct 20, 2014
Messages
99
Does this interfere in any way with custom stage lists/ordering the stage select as in SOJ's thread? My instinct says no but I'd want to be sure.
 

QuickLava

Smash Journeyman
Joined
Nov 30, 2013
Messages
361
Location
Somewhere in the Aether....
Can we get this stickied please? This is very useful info.
Edit: How exactly did you go about opening the codeset? I've tried opening the gct in brawlbox and exporting the text manually but I can't find the sequence "DEADBEEF BABEBEEF" anywhere. I've been able to find the "DEADBEEF" sequence once towards the end of the exported body of text but I can't find anything else.
 
Last edited:

Superfiremario

Smash Apprentice
Joined
May 15, 2015
Messages
94
Location
Canada
Would it be possible for someone to create a code that enables 2 ASL stages for every stage? I have no idea how to really do codes.
 

Xermo

Smash Champion
Joined
Feb 19, 2013
Messages
2,811
Location
afk
NNID
SSBFC-Xerom
3DS FC
4425-1998-0670
Just wait for M22K to update his asl tool. It's user friendly for the most part.
 

Mewtwo_2000

Smash Lord
Joined
Nov 23, 2009
Messages
1,177
Location
Spain
NNID
Mewtwo2ooo
3DS FC
0877-0152-2009
Just wait for M22K to update his asl tool. It's user friendly for the most part.
To be honest, I updated the tool several weeks ago, but I don't remember if I updated the download link. I'll check after work.
 

Ryztiq

Smash Hoo Hah
Joined
Nov 21, 2013
Messages
1,101
Location
Chicago, IL
NNID
Theytah
Does this interfere in any way with custom stage lists/ordering the stage select as in SOJ's thread? My instinct says no but I'd want to be sure.
No it does not :)

Edit: I added a note to the OP that shows what to do if you cant find the deadbeef babebeef line!
 
Last edited:

NFreak

Smash Journeyman
Joined
Jan 13, 2014
Messages
420
Location
MA
When working with Melee stage slots, do the first four letters of the stage file name include the DX or no?
 

MFMAXY

Smash Apprentice
Joined
Sep 28, 2013
Messages
95
what program do you use to edit the codeset? what am i supposed to open the GCT in?
 

matein10

Smash Rookie
Joined
Apr 13, 2009
Messages
11
Hey Theytah,

Button Combination values can be found at http://geckocodes.org/index.php?arsenal=2.

Also, you posted that button 'L' = 0x04 when it should be 0x40 and button 'A' = 1 when it should equal 0x0100. Add the sum of all button values in hexadecimal to get your Button Activator/Combination (whatever people want to call it.)

Sorry to nitpick. I'm posting because I do want to help improve this awesome guide.

-matein10

EDIT:

MFMAXY,

Try using a hex editor like 'HxD' to edit just about anything or use BrawlBox for editing .gct files in this case (I haven't tried BrawlBox though.)

EDIT2:

I think the reason why Z = 19 in the code is because nothing is innately in decimal. Convert 0x19 from hexadecimal to decimal and add 1 because programming often starts at 0 (not 1) to get 26 in decimal.

To recap; 0x01 through 0x19 = 25. Because many people forget 0 is a number (or at least, I sometimes do...), 0x00 through 0x19 = 26. Lastly the prefix '0x' denotes a value or number is in hexadecimal.

I hope this will address that issue adequately (and I hope I don't confuse people with my weird grammar and wording of things.)
 
Last edited:

TheOriginalSINe

Smash Rookie
Joined
Jun 25, 2015
Messages
13
Its like when you try to port stages over other ones normally, stages that have special effects or sounds related to their .rel will only work over the base stage, so for example if I had dreamland as an alt for fountain of dreams then there'd be no wind effect from wispy, stuff like that.

Also, you can have up to 26 stages per slot since that's how many letters are in the alphabet.

I'd need to figure out what all the letters the game goes by (I know that Z isn't the 19th letter in the alphabet, lol) and also figure out what buttons correspond to what
Well in hex, the number 19 corresponds to 25 in decimal. So by that logic I would assume that 0 = A, 1 = B, C = 2, ... Z = 25, etc.

As for the buttons activation, that is simply the memory value for the buttons you have pressed. For example, 140 is A + L. A = 100 and L = 40, so add them up and you get 140. Here's a link to determine button combinations: http://geckocodes.org/index.php?arsenal=2

Also I'm not entirely sure about this, but I think the new ASL code allows for different .rels per stage. There are some .rels in the module folder with the suffix _Z, so I assume this new code allows for unique .rels per alternate stage. I'm also going to assume it will try to load the default .rel if it can't find a specific .rel, so an alternate stage that shares the same .rel as the original would not need its own unique one.
 

Ryztiq

Smash Hoo Hah
Joined
Nov 21, 2013
Messages
1,101
Location
Chicago, IL
NNID
Theytah
Well in hex, the number 19 corresponds to 25 in decimal. So by that logic I would assume that 0 = A, 1 = B, C = 2, ... Z = 25, etc.

As for the buttons activation, that is simply the memory value for the buttons you have pressed. For example, 140 is A + L. A = 100 and L = 40, so add them up and you get 140. Here's a link to determine button combinations: http://geckocodes.org/index.php?arsenal=2

Also I'm not entirely sure about this, but I think the new ASL code allows for different .rels per stage. There are some .rels in the module folder with the suffix _Z, so I assume this new code allows for unique .rels per alternate stage. I'm also going to assume it will try to load the default .rel if it can't find a specific .rel, so an alternate stage that shares the same .rel as the original would not need its own unique one.
Hey Theytah,

Button Combination values can be found at http://geckocodes.org/index.php?arsenal=2.

Also, you posted that button 'L' = 0x04 when it should be 0x40 and button 'A' = 1 when it should equal 0x0100. Add the sum of all button values in hexadecimal to get your Button Activator/Combination (whatever people want to call it.)

Sorry to nitpick. I'm posting because I do want to help improve this awesome guide.

-matein10

EDIT:

MFMAXY,

Try using a hex editor like 'HxD' to edit just about anything or use BrawlBox for editing .gct files in this case (I haven't tried BrawlBox though.)

EDIT2:

I think the reason why Z = 19 in the code is because nothing is innately in decimal. Convert 0x19 from hexadecimal to decimal and add 1 because programming often starts at 0 (not 1) to get 26 in decimal.

To recap; 0x01 through 0x19 = 25. Because many people forget 0 is a number (or at least, I sometimes do...), 0x00 through 0x19 = 26. Lastly the prefix '0x' denotes a value or number is in hexadecimal.

I hope this will address that issue adequately (and I hope I don't confuse people with my weird grammar and wording of things.)
Thanks for the info! I've updated the OP with this stuff.

Also yes, the new code does allow for customization of the .rel loading too, that's what the second section of the code is for while the first is for the actual stages.
 

TheOriginalSINe

Smash Rookie
Joined
Jun 25, 2015
Messages
13
So I just made these and I thought I'd share them. I made a background image for the alternate stage loader for two stages here and a template to put your images behind here. For the background you have to replace the the MenSelmapFrontBg inside of sc_selmap.pac > MiscData[80] > Textures with the first image. The second image is a template to put your stages on and you can replace the old previews. If you don't need alternates, you need to only have an image between the black lines.

Working on a 4 stage version.
 

PsychoGhost

Smash Apprentice
Joined
Aug 4, 2014
Messages
111
Location
Southern California
Ok, so I'm really new to this whole code thing. I downloaded HxD to look through the code and found the stages file codes.

But now let's say I wanted to make an alt. stage for Jungle Japes, how would I go about adding code to accomplish this?
Would it look something like this?:
* 46000010 00000000
* 44000000 005A7CB0
* 66200034 00000000
* 44584741 01000000
* 01400019 00000000
Also, this

is when I found the code in a GCT editing program.

If I were to add the adjusted code that I typed above, would that work? Or would I have to edit an existing code?

@ Ryztiq Ryztiq any help regarding this would be greatly appreciated! :) I'll work really hard to learn understand this because I'm looking to make a video tutorial to help others with this as well.
 
Last edited:

Ryztiq

Smash Hoo Hah
Joined
Nov 21, 2013
Messages
1,101
Location
Chicago, IL
NNID
Theytah
Ok, so I'm really new to this whole code thing. I downloaded HxD to look through the code and found the stages file codes.

But now let's say I wanted to make an alt. stage for Jungle Japes, how would I go about adding code to accomplish this?
Would it look something like this?:
* 46000010 00000000
* 44000000 005A7CB0
* 66200034 00000000
* 44584741 01000000
* 00400019 00000000
Also, this

is when I found the code in a GCT editing program.

If I were to add the adjusted code that I typed above, would that work? Or would I have to edit an existing code?

@ Ryztiq Ryztiq any help regarding this would be greatly appreciated! :) I'll work really hard to learn understand this because I'm looking to make a video tutorial to help others with this as well.
Yes, if you want to add an alt for jungle japes then you'd change the code to what you posted above, however you put an extra space between 44584741 and 01000000 so make sure that's not there. And remember that there's a second section of the code for the .rel files too.

So I just made these and I thought I'd share them. I made a background image for the alternate stage loader for two stages here and a template to put your images behind here. For the background you have to replace the the MenSelmapFrontBg inside of sc_selmap.pac > MiscData[80] > Textures with the first image. The second image is a template to put your stages on and you can replace the old previews. If you don't need alternates, you need to only have an image between the black lines.

Working on a 4 stage version.
Nice, I'm going to make a stage select screen with a larger preview image aswell so that it's easier to make out details in the preview :)
 

PsychoGhost

Smash Apprentice
Joined
Aug 4, 2014
Messages
111
Location
Southern California
Yes, if you want to add an alt for jungle japes then you'd change the code to what you posted above, however you put an extra space between 44584741 and 01000000 so make sure that's not there. And remember that there's a second section of the code for the .rel files too.
Ok cool thanks. But how would I go about the .rel code? I'm a little confused on that. Also, every time I add another alt. stage code like the one above, would I just keep increasing the number by 1, or say I upped the number of stages to 60, would I have to put 3C instead for every stage code, or just the stage that increased the total to 60?
 
Last edited:

Ryztiq

Smash Hoo Hah
Joined
Nov 21, 2013
Messages
1,101
Location
Chicago, IL
NNID
Theytah
Ok cool thanks. But how would I go about the .rel code? I'm a little confused on that. Also, every time I add another alt. stage code like the one above, would I just keep increasing the number by 1, or say I upped the number of stages to 60, would I have to put 3C instead for every stage code, or just the stage that increased the total to 60?
The first number is stored in hex, so for an example the OP has 33 which translates to 51 because there's 51 lines of code for the alt stage info.

For the .rel code you can honestly just leave it unchanged or copy what you have for stages, the only time I'd suggest to not have the same thing is when you're doing random stage loading.
 

PsychoGhost

Smash Apprentice
Joined
Aug 4, 2014
Messages
111
Location
Southern California
The first number is stored in hex, so for an example the OP has 33 which translates to 51 because there's 51 lines of code for the alt stage info.

For the .rel code you can honestly just leave it unchanged or copy what you have for stages, the only time I'd suggest to not have the same thing is when you're doing random stage loading.
So for the first number in hex for the code, say if I were to do it for Jungle Japes (in my example) would be 34. So if I were to add more alt. slots, can I leave that 34 alone, or would I need to change that number as well? So if I included the necessary .rel file in the module folder after adding the appropriate code, I should be ok? If not, when's the appropriate time to add a code in for the .rel file?

To help a little, I'm trying to add this for the original stage: http://forums.kc-mm.com/Gallery/BrawlView.php?Number=206917 (which I know needs an FD .rel) and this for the alt. stage: http://forums.kc-mm.com/Gallery/BrawlView.php?Number=36351 (which I believe also uses an FD .rel) Would I need to code for .rel files using these? Or would a .rel file in the module folder suffice?

P.S. Thanks for helping me learn and understand this! :)
 

MFMAXY

Smash Apprentice
Joined
Sep 28, 2013
Messages
95
hey, what's the best button combos for loading two stages? it seems like almost every other button is taken
 

ledgerewskie

Smash Journeyman
Joined
Sep 14, 2010
Messages
450
Location
California
Mushroomy Kingdom had a secret where you could hold L and always get the underground version when choosing it. Is there a way to fix this so that MARIOPAST_00_Z and MARIOPAST_01_Z will load randomly when holding L?
 

The Peacekeeper

Smash Cadet
Joined
Apr 25, 2015
Messages
71
Location
Downunda
This seems...confusing. Is there an easier way of doing alt stages? like a tool or something. Sorry If i'm sounding lazy but I've had problems regards to codesets.
 

Mewtwo_2000

Smash Lord
Joined
Nov 23, 2009
Messages
1,177
Location
Spain
NNID
Mewtwo2ooo
3DS FC
0877-0152-2009
Ok then, I've updated ASL Tool for compatibility with the ASRL code in Project M 3.6.

It's in the Brawlvault, as always, following this link:

http://forums.kc-mm.com/Gallery/BrawlView.php?Number=21742

Tutorial video here. It shows the previous version, but the only difference with the current one is just one button that lets you switch between the stages list and the modules list.

 

Superfiremario

Smash Apprentice
Joined
May 15, 2015
Messages
94
Location
Canada
Ok, I downloaded the tool but I'm unable to run it. It keeps saying "unable to find a version of a runtime for this application".
 

Kapedani

Smash Apprentice
Joined
Jun 27, 2015
Messages
145
The ASL tool works great. While using it however, I noticed that some stages won't load. It freezes at the stage loading screen (it doesn't make the beep noise however). For example, I tried adding the Melee Icicle Mountain stage as an alternate stage to Infinite Glacier and it froze when i selected it. I named it correct rel file (st_ice_A) from the correct base (skyworld) and pac file (stgice_A). Just wondering if there is some sort of limit to the ASL, like a file size limit or something when adding stages.
 

Mewtwo_2000

Smash Lord
Joined
Nov 23, 2009
Messages
1,177
Location
Spain
NNID
Mewtwo2ooo
3DS FC
0877-0152-2009
There's a size limit for stages, but this may not be the problem here. Before trying it as stgice_A, try as stgice_Z (the one already existing), just in case the problem is that the code isn't set up properly and the st_ice_A rel isn't read for some reason.
 

Kapedani

Smash Apprentice
Joined
Jun 27, 2015
Messages
145
There's a size limit for stages, but this may not be the problem here. Before trying it as stgice_A, try as stgice_Z (the one already existing), just in case the problem is that the code isn't set up properly and the st_ice_A rel isn't read for some reason.
Just tried it as stgice_Z and it still wouldn't work so it doesn't seem to be a coding issue It seems to be stage specific for me, like certain stages work as alternates to other stages but not as alternates to certain stages. For example, Theytah's HD Kongo Jungle stage wouldn't work as an alternate to Jungle Japes (stgdxgarden_Z) but would work as an alternate to 75m (stgdonkey_B). Other stages would work as stgdxgarden_Z like the Jungle Hijinx stage.
 

PsychoGhost

Smash Apprentice
Joined
Aug 4, 2014
Messages
111
Location
Southern California
There's a size limit for stages, but this may not be the problem here. Before trying it as stgice_A, try as stgice_Z (the one already existing), just in case the problem is that the code isn't set up properly and the st_ice_A rel isn't read for some reason.
I'm trying to add an alt. stage slot for Jungles Japes.

Here's what I have done in the ASL Tool for STGDXGARDEN:


I did this for both the stages and modules section. However,after adding in a STGDXGARDEN_Z.pac file into the "melee" folder, as well as a STGDXGARDEN_Z.rel file into the "module" folder, it didn't work. I booted up Project M, and when I hold "L", I don't get the alt. stage I'm trying to use: http://forums.kc-mm.com/Gallery/BrawlView.php?Number=36351

I used the .rel file that it came with (it uses an FD .rel file) but added the "_Z" to the file name and added it like I said, but I can't get it to work! :/

My main goal is to create alt. stage slots for a majority of the stages in Project M, created the way the PMDT did. Not sure what I did wrong, can you please help me understand this?

Thanks for reading! :)
 

Kapedani

Smash Apprentice
Joined
Jun 27, 2015
Messages
145
I'm trying to add an alt. stage slot for Jungles Japes.

Here's what I have done in the ASL Tool for STGDXGARDEN:


I did this for both the stages and modules section. However,after adding in a STGDXGARDEN_Z.pac file into the "melee" folder, as well as a STGDXGARDEN_Z.rel file into the "module" folder, it didn't work. I booted up Project M, and when I hold "L", I don't get the alt. stage I'm trying to use: http://forums.kc-mm.com/Gallery/BrawlView.php?Number=36351

I used the .rel file that it came with (it uses an FD .rel file) but added the "_Z" to the file name and added it like I said, but I can't get it to work! :/

My main goal is to create alt. stage slots for a majority of the stages in Project M, created the way the PMDT did. Not sure what I did wrong, can you please help me understand this?

Thanks for reading! :)
Hmm, interesting, I got that stage to work as an alternate to Jungle Japes. What happens when you select it at the stage selection screen? Also, which version of the stage are you using as it comes in three versions?
 
Top Bottom