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

How can I have two different versions of one map?

Vesne

Smash Cadet
Joined
Nov 9, 2008
Messages
35
I am looking for a method that allows me to have two different versions of one Yoshi's Story on my stage select screen. I spent the majority of my day yesterday reading through various threads and using smashboard's search feature so that I could find a way to do this but I couldn't figure it out.

I learned how to edit Start.DOL so that clicking on a stage icon now loads a different stage but that still doesn't allow me to redirect it to another version of an already existing stage. Of course trying to just rename the map and place it over another map will just cause it to crash when you try to load the map.

What I Found
In this post by @zankyou he mentions changing the stages file extension and using a code to change the file extension of the stage when you press a button. I have some familiarity with ASM and writing Gecko Codes from following Dan Salvato's "Intro to Wii Game Modding" guide and from my personal experiencing using debug dolphin but not enough to write this type of code myself. If this code already exists I would be grateful if someone could post or link it.

In the same thread CeLL CeLL shared his code that allows you to have 10 versions of each stage and will randomly select one each time you load that stage. Unfortunately this doesn't work for me because I want to have vanilla Yoshi's Story along with a texture hacked version so that people can play on the vanilla version if they prefer it.

I saw a fair amount comments by @zankyou and other users stating that this can be done using file patching and posts referencing a thread about file patching but I am unfamiliar with file patching and couldn't figure out where to learn more. I found the "Patching Files on the Fly" thread by @_glook that discussed his methods of loading characters, stages, and hats off a memory card for SD Remix but unless I misunderstood something it doesn't seem like it included information on a method I could use to add multiple versions of a stage.

So if anyone knows a method I could use to have two different versions of the Yoshi's Story stage I would really appreciate the help, even if it is just a link to a thread/post on the topic. :)
 

CeLL

Smash Lord
Joined
Jan 26, 2014
Messages
1,026
Location
Washington
I am looking for a method that allows me to have two different versions of one Yoshi's Story on my stage select screen. I spent the majority of my day yesterday reading through various threads and using smashboard's search feature so that I could find a way to do this but I couldn't figure it out.

I learned how to edit Start.DOL so that clicking on a stage icon now loads a different stage but that still doesn't allow me to redirect it to another version of an already existing stage. Of course trying to just rename the map and place it over another map will just cause it to crash when you try to load the map.

What I Found
In this post by @zankyou he mentions changing the stages file extension and using a code to change the file extension of the stage when you press a button. I have some familiarity with ASM and writing Gecko Codes from following Dan Salvato's "Intro to Wii Game Modding" guide and from my personal experiencing using debug dolphin but not enough to write this type of code myself. If this code already exists I would be grateful if someone could post or link it.

In the same thread CeLL CeLL shared his code that allows you to have 10 versions of each stage and will randomly select one each time you load that stage. Unfortunately this doesn't work for me because I want to have vanilla Yoshi's Story along with a texture hacked version so that people can play on the vanilla version if they prefer it.

I saw a fair amount comments by @zankyou and other users stating that this can be done using file patching and posts referencing a thread about file patching but I am unfamiliar with file patching and couldn't figure out where to learn more. I found the "Patching Files on the Fly" thread by @_glook that discussed his methods of loading characters, stages, and hats off a memory card for SD Remix but unless I misunderstood something it doesn't seem like it included information on a method I could use to add multiple versions of a stage.

So if anyone knows a method I could use to have two different versions of the Yoshi's Story stage I would really appreciate the help, even if it is just a link to a thread/post on the topic. :)
You need to change the stage ID of the icon you're replacing and change the filename on the fly when either icon is selected.
 

Vesne

Smash Cadet
Joined
Nov 9, 2008
Messages
35
You need to change the stage ID of the icon you're replacing and change the filename on the fly when either icon is selected.
Thanks for the help CeLL CeLL , greatly appreciate it! I understand how to change the stage ID of the icon I'm replacing but it's the second part that I'm having trouble with. How would I go about changing the filename on the fly when either icon is selected?
 

CeLL

Smash Lord
Joined
Jan 26, 2014
Messages
1,026
Location
Washington
Thanks for the help CeLL CeLL , greatly appreciate it! I understand how to change the stage ID of the icon I'm replacing but it's the second part that I'm having trouble with. How would I go about changing the filename on the fly when either icon is selected?
You need to inject an ASM function that would activate after stage selection but before stage load, check the stage ID, see if it matches either stage, and then change the filename in the RAM. http://smashboards.com/threads/397941/
My alt stage code injects at 0x8025bb44 which would work great for this scenario.

A brief concept in pseudo code:
Code:
load stage id
if stage id = fountain of dreams (example, could be the stage id of any stage you want to replace with a yoshis story texture):
    change yoshis story filename to GrS2.dat
    change stage id to yoshis story

else if stage id = yoshis story:
    change yoshis story filename to GrSt.dat
With this code you wouldn't need to change the stage ID of the icon in the DOL, in fact that would make this code not work.

The filename of Yoshi's Story is at 0x803E2741 in the RAM. Stage IDs are on the SSBM Data Sheet.

You will need to add GrS2.dat to your ISO. Also if you want it to look nice, you'd need to make an SSS icon for your stage skin and replace the icon on the SSS of your choice with it. That can be done easily using DRGN's DAT Texture Wizard.
 
Last edited:

PrettyFalcoJodeye

Smash Rookie
Joined
Sep 12, 2016
Messages
13
Here's what I did:
Installed 20xx 4.05, then read through this guide
Basically you'll need to do 2 things: Modify MnSchl1 (or whatever it's called) with DAT texture wizard to change the icon of the stage (this is just for aesthetic reasons, doesn't affect loading the stage).

Next, you'll have to use a byte replacement to load in the alternate texture. You're talking about Yoshi's Story (GrSt.dat), so what you'll have to do is open up Start.dol in a hex editor, then search for /GrSt.dat (or whatever other stage you're trying to find. Look out for line breaks too b/c they mess up searching for stages like Green Greens 64)

Once you've located /GrSt.dat, note the offset for the d in dat; that's the character you're going to overwrite. In this case, it's located at 0x3DF746 (note that people write offsets with a 0x in front of them). Take that 3DF746 and plug into melee code manager's RAM address conversion (under the tools tab). The RAM address in this case is 0x803E2746. This tells the game which characters in the hex it should alter when the stage is selected

The next step is to hop down to the stage replacements section. I'm going to overwrite brinstar depths, on the first page, with an alternate Yoshi's story (just as an example). First, I'd hop down to 0x003F8D50 and replace the first 8 digits (00 00 00 00) with 803E2746 (the RAM address). Next, I'd replace the 00 at 0x3F8D48 with 09 (this forces the game to load yoshi story rather than brinstar depths). Finally, replace the 00 at 0x003F8D60 with 31 (Hex value for "1"). Now, when the stage loads brinstar depths, it will instead load yoshi's story. Thanks to the byte replacement it will load up GrSt.1at (because you replaced that d from .dat with 1, 0x31 in hex).

Finally it's a matter of adding your texture hacked yoshi's story to the root. Rename the file to GrSt.1at (it'll show up as a .1at file; that's fine, it'll load properly). Make sure to uncheck "use game ToC" then rebuild the ISO.

This is by far the easiest way to do it IMO. Make sure to read Achilles guide, it breaks down everything you can do with stage replacements. Hopefully this helped!
 
Last edited:
Top Bottom