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

Phantom pwnt Dantarion (New Custom SSS + Custom Stage ID Engine Thingy)

Dantarion

Smash Champion
Joined
May 21, 2007
Messages
2,492
Location
Santa Barbara, CA
Get hyped!
http://www.youtube.com/watch?v=lMXBwpjshn4

As many of you know, we now have the ability to play on SSE Stages. However, we are limited in what stages we can replace with these new SSE stages. A solution is here to how to choose these stages without replacing other ones.

This code is based on Almas's Alternate File Engine, and the findings that took place in this effort will eventually be backported to the original code.

Okay, who those who used versions before v1.1, the code AND the data code have changed. The data format hasn't changed, but the surrounding lines have.
Code:
Alternate Stage Loader v1.1 [Dantarion, Almas]
C23FA360 00000024
91620000 90E20004
91820008 90620010
91220014 7D800026
3C602F70 60637269
80E10020 7C033800
408200D4 3C602F53
60635447 80E10044
7C033800 408200C0
80E10048 3D60DFDF
616BDFDF 7CE75838
3D60805A 616B7D00
816B0000 806B0000
892B0004 880B0005
2C030DED 41820090
7C033800 41820014
396B0008 1D290008
7D6B4814 4BFFFFD8
2C090000 41820030
396B0008 A0EB0000
3C60815E 60638420
A0630002 7C071800
4182000C 3929FFFF
4BFFFFD8 886B0003
48000024 2C000000
4182003C 3C60815E
606325D0 80630000
7D2303D6 7D2049D6
7C691810 38E05F41
7CE71A14 B0E6FFFC
3C602E50 60634143
9066FFFE 38A5FFFE
38C60002 7D8FF120
81620000 80E20004
81820008 80620010
81220014 38000000
60000000 00000000

Alternate Stage Loader Data v1.1
46000010 00000000
44000000 005A7D00
6620[COLOR=SandyBrown]LLLL[/COLOR] 00000000
[COLOR=Silver]DATADATA DATADATA[/COLOR]
00000DED FADEDEAD
E0000000 80008000
Heres a little overview about how it all works.
This code allows you to have multiple .pac files for one stage. These could be textures, model replacements, whatever. However, it is very flexible in how you can replace the stages.



For each replacement stage, you can choose.
1) The button combination that the stage will be loaded by.
2) If the stage appears randomly when the original stage is selected.

Whereas the Alternate File Engine used multiple folders, this uses modified filenames.
For example, if you had 3 Final Destination textures, you would name them STGFINAL_A.pac,
STGFINAL_B.pac, and STGFINAL_C.pac.

The code will NEVER load STGFINAL.pac off your SD card if you define any other files to be loaded! However, if you want the original FD to be loaded, simply add 1 to the count of random stages, or define a button activator with someting not on your SD card, like "Z". When the game tries to load STGFINAL_Z.pac, and doesn't find it on your SD, it will just fall back to STGFINAL.pac from disk.

Heres how the data section of the code will be set up. UPDATED FOR v1.1
Code:
AT THE BEGINNING ONCE:
46000010 00000000
44000000 005A7D00
6620[COLOR=SandyBrown]LLLL[/COLOR] 00000000
-----------------------------------
[COLOR=SandyBrown]LLLL[/COLOR] = The number of lines of stage data, +1. If you have 9 lines of stage data, input 10, which is A in hex, so "000A"
------------------------------------
FOR EACH ORIGINAL STAGE YOU HAVE REPLACEMENTS FOR:
[COLOR=Yellow]SSSSSSSS[/COLOR] [COLOR=Red]BB[/COLOR][COLOR=Blue]RR[/COLOR]0000 
-----------------------------
[COLOR=Yellow]SSSSSSSS[/COLOR]  = Stage ASCII Data(Take from the chart below)
[COLOR=Red]BB[/COLOR] = number of replacement stages with button activators (Max 26 _A-_Z)
[COLOR=Blue]RR[/COLOR] = Number of Randomly Selected Textures (Max 26 _A-_Z)
---------------------------------
FOR EACH BUTTON ACTIVATED STAGE
[COLOR=DarkGreen]JJJJ[/COLOR]00[COLOR=PaleGreen]II[/COLOR] 00000000
[COLOR=DarkGreen]JJJJ[/COLOR] = Button Activator from list below. All players controllers affect the activator.
[COLOR=PaleGreen]II[/COLOR] = Filename #- _A = 00, _B = 01, etc. Remember, 10 in hex is 0A

This is complex. It is complex, because it allows you to set things up the way you want them to be. For example, you could have 10 FD textures, 5 that appear randomly, and 5 only accessible though button combinations. You could have some of the 5 random ones also have button inputs if you wanted, too.

Stage ASCII Data
Code:
STGBATTLEFIELD.PAC (BATT)
42415454
STGCHARAROLL.PAC (CHAR)
43484152
STGCONFIGTEST.PAC (CONF)
434f4e46
STGCRAYON.PAC (CRAY)
43524159
STGDOLPIC.PAC (DOLP)
444f4c50
STGDONKEY.PAC (DONK)
444f4e4b
STGDXBIGBLUE.PAC (DXBI)
44584249
STGDXCORNERIA.PAC (DXCO)
4458434f
STGDXGARDEN.PAC (DXGA)
44584741
STGDXGREENS.PAC (DXGR)
44584752
STGDXONETT.PAC (DXON)
44584f4e
STGDXONETT_en.PAC (DXON)
44584f4e
STGDXPSTADIUM_en.PAC (DXPS)
44585053
STGDXRCRUISE.PAC (DXRC)
44585243
STGDXSHRINE.PAC (DXSH)
44585348
STGDXYORSTER.PAC (DXYO)
4458594f
STGDXZEBES.PAC (DXZE)
44585a45
STGEARTH.PAC (EART)
45415254
STGEDIT_0.PAC (EDIT)
45444954
STGEDIT_1.PAC (EDIT)
45444954
STGEDIT_2.PAC (EDIT)
45444954
STGEMBLEM.PAC (EMBL)
454d424c
STGEMBLEM_00.PAC (EMBL)
454d424c
STGEMBLEM_01.PAC (EMBL)
454d424c
STGEMBLEM_02.PAC (EMBL)
454d424c
STGFAMICOM.PAC (FAMI)
46414d49
STGFINAL.PAC (FINA)
46494e41
STGFZERO.PAC (FZER)
465a4552
STGGREENHILL.PAC (GREE)
47524545
STGGW.PAC (GW.P)
47572e50
STGGW_en.PAC (GW_e)
47575f65
STGHALBERD.PAC (HALB)
48414c42
STGHEAL.PAC (HEAL)
4845414c
STGHOMERUN.PAC (HOME)
484f4d45
STGHOMERUN_en.PAC (HOME)
484f4d45
STGICE.PAC (ICE.)
4943452e
STGJUNGLE.PAC (JUNG)
4a554e47
STGKART.PAC (KART)
4b415254
STGMADEIN_en.PAC (MADE)
4d414445
STGMANSION.PAC (MANS)
4d414e53
STGMARIOPAST_00.PAC (MARI)
4d415249
STGMARIOPAST_01.PAC (MARI)
4d415249
STGMETALGEAR_00.PAC (META)
4d455441
STGMETALGEAR_01.PAC (META)
4d455441
STGMETALGEAR_02.PAC (META)
4d455441
STGNEWPORK_en.PAC (NEWP)
4e455750
STGNORFAIR.PAC (NORF)
4e4f5246
STGOLDIN.PAC (OLDI)
4f4c4449
STGONLINETRAINING.PAC (ONLI)
4f4e4c49
STGORPHEON.PAC (ORPH)
4f525048
STGPALUTENA.PAC (PALU)
50414c55
STGPICTCHAT_en.PAC (PICT)
50494354
STGPIRATES.PAC (PIRA)
50495241
STGPLANKTON.PAC (PLAN)
504c414e
STGRESULT_en.PAC (RESU)
52455355
STGSTADIUM_en.PAC (STAD)
53544144
STGSTARFOX_ASTEROID.PAC (STAR)
53544152
STGSTARFOX_BATTLESHIP.PAC (STAR)
53544152
STGSTARFOX_CORNERIA.PAC (STAR)
53544152
STGSTARFOX_GDIFF.PAC (STAR)
53544152
STGSTARFOX_SPACE.PAC (STAR)
53544152
STGTARGETLV1.PAC (TARG)
54415247
STGTARGETLV2.PAC (TARG)
54415247
STGTARGETLv3.PAC (TARG)
54415247
STGTARGETLv4.PAC (TARG)
54415247
STGTARGETLv5.PAC (TARG)
54415247
STGTENGAN_1.PAC (TENG)
54454e47
STGTENGAN_2.PAC (TENG)
54454e47
STGTENGAN_3.PAC (TENG)
54454e47
STGVILLAGE_00_en.PAC (VILL)
56494c4c
STGVILLAGE_01_en.PAC (VILL)
56494c4c
STGVILLAGE_02_en.PAC (VILL)
56494c4c
STGVILLAGE_03_en.PAC (VILL)
56494c4c
STGVILLAGE_04_en.PAC (VILL)
56494c4c
Button Trigger Info
For combinations, add together IN HEX.
All controllers together are checked.
This means that all players can affect the stage.
Also, note that A and Start have values.
You have to LET GO of the button you use to select the stage pretty quickly.
I recommend using combination like A+ANOTHER BUTTON because its easier than having to remember to let go of A.
Code:
0 = No Buttons Held
1 = Left (GC,CC,Wiimote D-Pad or GC,CC Analog)
2 = Right (GC,CC,Wiimote D-Pad or GC,CC Analog)
4 = Down (GC,CC,Wiimote D-Pad or GC,CC Analog)
8 = Up (GC,CC,Wiimote D-Pad or GC,CC Analog)

10 =  (GC Z)(CC ZL)(CC ZR)
20 = (GC R)(CC R)
40 = (GC L)(Wiimote B)(CC L)

100 = (GC,CC A)
200 = (GC,CC B)(Wiimote 1)
400 = (GC,CC X)
800 = (GC,CC Y)

1000 = (GC Start)(Wiimote +)
4000 = (CC ZL)
8000 = (CC ZR)
Todo List
Figure out how the hell the Clone Engine works (DONE THANKS ALMAS)
Get it working with alternate folders.(DONE)
Get alternate filenames working (DONE)
Create reliable random(DONE - Using what appears to be a animation timer for the menus)
Implement reading of Data(DONE IN ALPHA 1)
Implement reading button input (DONE IN v1)

Implement custom song asm injection(HARDER THAN IT LOOKS)
 

NeonTogepi

Smash Journeyman
Joined
Apr 5, 2009
Messages
309
This is complex. It is complex, because it allows you to set things up the way you want them to be. For example, you could have 10 FD textures, 5 that appear randomly, and 5 only accessible though button combinations. You could have some of the 5 random ones also have button inputs if you wanted, too.

Implement custom song asm injection(Easy, but only for wifi room replacements)


Will the code's songs also load with the stages? for instance, if the random chose waiting room b, would it choose waiting room theme b? If so, that would be pretty awesome.

Also, second suggestion, classic controller getting to choose as opposed to gc (why does no one else use classic? it's awesome and a good way of seperating your melee play style from you brawl one)
 

playermode

Smash Rookie
Joined
Aug 3, 2009
Messages
21
Hey Dantarion, are you planning on making the Boss Battle version of Midair Stadium, when you fight Petey Pirahna?
 

playermode

Smash Rookie
Joined
Aug 3, 2009
Messages
21
My apologizes...I have this and the "Playable SSE Stages with Video" tabbed side by side, minor mix up..look for the same question over on that thread lol...
 

Almas

Smash Lord
Joined
Jul 6, 2008
Messages
1,588
Oh, awesome, you managed to get alternate filenames working. Was it what we discussed?

No need to backport the code, but if you're using the same breakpoint as me, could you let me know?
 

Amazing Ampharos

Balanced Brawl Designer
Writing Team
Joined
Jan 31, 2008
Messages
4,582
Location
Kansas City, MO
Is there any way for these alternate stages to appear as custom stages in the menus? That would greatly simplify the selection process within the game.
 

Eldiran

Smash Lord
Joined
Jan 8, 2008
Messages
1,707
Location
Pennsylvania
Excellent work Dant (and Almas)! The failure of button activators was the drawback of the Clone Engine (no offense Almas). Because these are stages and not characters, random selection will work great. I'm going to use this for all kinds of stage textures, SSE and otherwise. I'm impressed you're incorporating custom songs as well.
 

Roy-G-Biv

Smash Journeyman
Joined
Apr 21, 2008
Messages
267
Location
Roanoke, VA
Song ID?

Would that mean the filename of the song?
Like in the Song area I'd put in the hex for say...... A07?

And does it have to be one of those files that already replaces a stage song?
 

Almas

Smash Lord
Joined
Jul 6, 2008
Messages
1,588
Oh, I know the Clone Engine is glitchy, which is why I'm rewriting it. It's not a problem with the framework of the code (which has since changed) so much as bugs which I never ironed out because of university. I'm debugging a current version now, although it is still far from functional (e.g. doesn't boot yet).
 

Akuma2120

Smash Ace
Joined
Mar 27, 2008
Messages
826
Questions for Dantarion for future reference when this code is completed.

This line specifically: BBRR0000

You said RR is the random selected texture/pac files right? What if we don't want any to be loaded randomly? Would we just put the RR value as 00 or just anything we want?

Or would it be that the stage you want loaded normally is put under RR(that is putting only one texture under this) and the rest are set to button commands?

And how would we go about keeping the original textures if this code forces the game to load from say STGFINAL_A? Would just getting the original file from the Brawl disc and putting it under STGFINAL_A solve the problem? It kinda takes up space though...

And one more thing, can I load Brawl+ through Gecko with an SDHC card(4GB)? Because my 2GB is already full, and I want to use this code when it's completed. Just want to ask before I go out to buy one just to find out it doesn't work.

Awesome freakin amazing plan though, can't wait till it's done!

And did I just hear correctly? Almas saying he's re-doing his alternate file loader? HELL YES! I love using that code but it has some glitches, can't wait until it's completed
 

Dantarion

Smash Champion
Joined
May 21, 2007
Messages
2,492
Location
Santa Barbara, CA
Oh, awesome, you managed to get alternate filenames working. Was it what we discussed?

No need to backport the code, but if you're using the same breakpoint as me, could you let me know?
I made my code hook the command AFTER the one yours does, so they don't conflict.

Is there any way for these alternate stages to appear as custom stages in the menus? That would greatly simplify the selection process within the game.
That would be the holy grail, but I have no idea where to start with that.

Because these are stages and not characters, random selection will work great. I'm going to use this for all kinds of stage textures, SSE and otherwise. I'm impressed you're incorporating custom songs as well.
Thankss.

Song ID?

Would that mean the filename of the song?
Like in the Song area I'd put in the hex for say...... A07?

And does it have to be one of those files that already replaces a stage song?
This won't be the filename, but the hex ID of the song. I am not sure if many people remember it, but the My Music Swap code used a list of music ID's. THOSE are the ID's I'm talking about. You can use your custom music still, u just have to remember what song you have replaced.

Oh, I know the Clone Engine is glitchy, which is why I'm rewriting it. It's not a problem with the framework of the code (which has since changed) so much as bugs which I never ironed out because of university. I'm debugging a current version now, although it is still far from functional (e.g. doesn't boot yet).
Once the code is released Illl give oyu all the info I can.

Oh god, please tell me there's going to be a GUI to go with this.

BUTTAN CLICKIN
CODE SAVAN
BRAWL BATTLAN
Maybe, it really shouldn't be too hard to do...

Questions for Dantarion for future reference when this code is completed.

This line specifically: BBRR0000

You said RR is the random selected texture/pac files right? What if we don't want any to be loaded randomly? Would we just put the RR value as 00 or just anything we want?

Or would it be that the stage you want loaded normally is put under RR(that is putting only one texture under this) and the rest are set to button commands?

And how would we go about keeping the original textures if this code forces the game to load from say STGFINAL_A? Would just getting the original file from the Brawl disc and putting it under STGFINAL_A solve the problem? It kinda takes up space though...

And one more thing, can I load Brawl+ through Gecko with an SDHC card(4GB)? Because my 2GB is already full, and I want to use this code when it's completed. Just want to ask before I go out to buy one just to find out it doesn't work.

Awesome freakin amazing plan though, can't wait till it's done!
Okay, heres the deal. If you have 3 FD textures, but you want the original FD as well, you just set the random number for FD to 4. This will make the game try to find STGFINAL_D.pac, which will not exist, therefore loading FD from disc instead. You can use the same trick to make a button activator to load the original stage.....
THanksss for the support.
SDHC will never work IMO.


MY VIRGIN EYES
EDIT: Dant are you going to make your loader compatible with this?
It already is. However, I am going to see if I can combine my loader with giantpune's embedded GeckoOS that he uses in the updatifier. That will give me USB loading support for free, also giving me the option of compiling a Brawl+ updatifier that has a few more options for launching other Brawl Mods, much like the Brawl Mod Launcher in its current form
 

Akuma2120

Smash Ace
Joined
Mar 27, 2008
Messages
826
Okay, heres the deal. If you have 3 FD textures, but you want the original FD as well, you just set the random number for FD to 4. This will make the game try to find STGFINAL_D.pac, which will not exist, therefore loading FD from disc instead. You can use the same trick to make a button activator to load the original stage.....
THanksss for the support.
SDHC will never work IMO.
Cool, thanks:)

One more question though(sorry for bothering you), but what if we don't want button commands, as in, we want all the textures random, would we set BB to 00? How would you go about doing that?(Sorry for stupid question)

Gecko 1.9.3 says it DOES work with SDHC on the download page on the homebrew browser, I trust that, however I'm skeptical, ok say Gecko DOES load from an SDHC, would there be anything else that would prevent it from loading up textures and other codes via Clone Engine?
 

DevilKiller

Smash Apprentice
Joined
Sep 13, 2004
Messages
142
Is this Stage Loader being made for mutliple types of controllers, or are we stuck to Gamecube? There are definitely going to be people who don't use Gamecube at all.
 

Dantarion

Smash Champion
Joined
May 21, 2007
Messages
2,492
Location
Santa Barbara, CA
Cool, thanks:)

One more question though(sorry for bothering you), but what if we don't want button commands, as in, we want all the textures random, would we set BB to 00? How would you go about doing that?(Sorry for stupid question)
Yes, you would just put BB as 00 to show that you only want to define the number of textures for a stage.
I will post more examples when I release the code.
 

STUFF2o

Smash Ace
Joined
Aug 31, 2009
Messages
508
Location
Hyrule
Sweet. I really hope that this actually works for all controllers. I feel sort of left out using a Wiimote and nunchuck.
 

WaterTails

Smash Lord
Joined
Dec 2, 2005
Messages
1,363
Location
Minot, ND
Is this Stage Loader being made for mutliple types of controllers, or are we stuck to Gamecube? There are definitely going to be people who don't use Gamecube at all.
If this'll work how I think it will, you could always just go into the code and change the button activators. Also, if you read the OP, Dantarion says he might eventually change it to the highest port for any controller.
 

JoeMcLarry

Smash Cadet
Joined
Mar 13, 2009
Messages
35
Location
Planet Earth
Would it be possible to have 2 different random sets? Example: no buttons loads random FD texture, hold z loads random SSE stage. And will this have original/no texture included in the random? Also, I also use Wiichuck, so i hope to see that being possible to use.
 

Akuma2120

Smash Ace
Joined
Mar 27, 2008
Messages
826
Wait, so Almas' clone engine will be compatible with this? sweet! I'll use Almas' for characters and this is for stages I guess because using both would be unnecessary
 

MaRRoK

Smash Journeyman
Joined
Aug 20, 2009
Messages
207
Location
Los Angeles
perfect. im sure every1 knows but me, but..... when we load an SSE stage based on wifi waiting room, will the sandbag apear? ive only tried a SSE stage with a code specificly without sandbag so i wouldnt know.

btw brilliant idea on the music file change.
FTW!
 

Shaya

   「chase you」 
BRoomer
Joined
Jun 8, 2007
Messages
27,654
Location
/人◕‿‿◕人\ FABULOUS Max!
NNID
ShayaJP
Okay then.

I presume this can be used for just stage textures, not stage replacements, correct?

Then,
will the default texture ever be loaded (even from the game disc)?

In other words, is it possible for me to have custom textures on _A, _B all as random, and if someone were to press a button it would load the default texture?

Very excited about this in general though :)
 

gigasteve

Smash Ace
Joined
Nov 15, 2007
Messages
730
This is just too good for words. Brawl has so much accomplished and we don't even have complete model hacking.
 

Almas

Smash Lord
Joined
Jul 6, 2008
Messages
1,588
Regarding Sangbag issues; it should be possible to use a simple item swap code to remove it.
 

shanus

Smash Hero
Joined
Nov 17, 2005
Messages
6,055
Regarding Sangbag issues; it should be possible to use a simple item swap code to remove it.
You can remove it using the code already. Also, someone in theother thread posted how to remove it with brawlbox as well.
 

Dan_X

Smash Lord
Joined
Mar 14, 2008
Messages
1,335
Location
Boston, MA
Shanus, will Brawl+ be backing alternate stages such as SSE (upon button activation) in an official build? Though I've yet to try an SSE stage in multiplayer, it'd appear as though they are perfect for the competitive scene.

The ability to play these SSE stages is probably one of the most exciting things to happen in Brawl hacking in recent memory!
 

It's a forum

Smash Apprentice
Joined
Aug 15, 2007
Messages
85
As much as I love these new stages a part of me would rather see the classics reborn.
If only StageStudio was still remembered...then we'd be able to recreate Hyrule Castle or Saffron City after a couple of updates, such as half blocks.

Best update since SD support for custom music. AWESOME!
 

thanyou

Smash Journeyman
Joined
Mar 8, 2009
Messages
371
Location
CA
So if I have, say, 10 SSE textures for WWR that are all random, my code would look something like this, right?

Code:
4f4e4c49 000A0000
Or do I need the second line of code, despite making all stages random....?
 
Top Bottom