The Alternate File Loader (aka "The Clone Engine")

Almas

Smash Lord
Joined
Jul 6, 2008
Messages
1,588
#1
Okay, so I spent a while working away at this and figuring it all out in my head. The potential is limited, but this will buy time. Any additional features are far beyond my capability, but I'm sure eventually someone will attain them.

Code:
Alternate File Loader [Almas]
C23FA350 00000020
90C20000 90E20004
91620008 90A2000C
90620010 91220014
91420018 9182001C
3D800004 618C86C0
3D60805A 3CA0452F
60A57066 90AB7C14
816B7C22 3C608057
60639FF0 84A30010
2C050000 4182008C
7C055800 4082FFF0
3CC04545 60C62F53
7C062800 4082001C
3D60804D 616BE4B0
A16B0000 A1430008
7C0A5800 41820050
88A30004 A1430008
39200000 A0C30006
64C68152 7CC66214
3CE0804D 60E7E4A8
39290001 7CCC3050
38E70008 2C090005
4182FF94 89660000
7C0B2800 4082FFE4
A1670000 7C0B5000
4082FFD8 A143000A
3D60805A B14B7C16
80C20000 80E20004
81620008 80A2000C
80620010 81220014
81420018 8182001C
8C040001 00000000
Whereas normally a texture or data .pac is loaded from /private/wii/app/RSBE/pf/... (/fighter/ or /stage/), this code changes the /pf/ directory to another one of the user's choice when a set of conditions are met. Thus, in order to use this code, you should place alternative replacement files you wish to use in another directory with a similar path. /pf/ can be changed to any other two-character name. For example, I may choose to load my alternate files from /private/wii/app/RSBE/lm/. Note that apart from this change of the /pf/ folder, the remaining file structure is the same, including the name of the replacement files.

For this code to operate, it is necessary that the File Replacement Code is also active. The code allows you to choose, prior to a game, whether or not you wish to play with an alternate data or texture .pac file for any character, or an alternate texture file for a stage. In order to choose which alternate files you have active, a data code is used with the following format:

Code:
Alternate File Data
0657A000 BYTECOUN
XXXXXXXX YY00E27B
ZZZZAAAA 00000000
Adding additional alternate files is done by repeating the XXXX... code block.

Filling in the gaps:

BYTECOUN: This is equal to 10 multiplied by the amount of alternate files you wish to have active. For example, if you wanted to have 5 alternate files, this would take the value 00000050. For more than 9 changes, it is important to remember to count in hex. E.g. 80, 90, A0, B0... F0, 100.

XXXXXXXX: This value is determined by the character you would wish to replace, and is taken from the list below (Thanks to Dantarion):

Code:
Captain Falcon
61707461
King Dedede
65646564
Diddy Kong
69646479
Donkey Kong
6F6E6b65
Falco
616C636F
Fox
6F782F46
Mr Game & Watch
616D6577
Ganondorf
616E6F6E
Giga Bowser
6B6F6F70
Ike
6B652F46
Kirby
69726279
Bowser
6F6F7061
Link
696E6B2F
Lucario
75636172
Lucas
75636173
Luigi
75696769
Mario
6172696F
Marth
61727468
Metaknight
6574616B
Ness
6573732F
Peach
65616368
Pikachu
696B6163
Olimar
696B6D69
Pit
69742F46
Ivysaur
6F6B6566
Charizard
6F6B656C
Pokémon Trainer
6F6B6574
Squirtle
6F6B657A
Ice Climbers
6F706F2F
Jigglypuff
7572696E
ROB
6F626F74
Samus
616D7573
Sheik
6865696B
Snake
6E616B65
Sonic
6F6E6963
Zero Suit Samus
7A65726F
Toon Link
6F6F6E6C
Wario
6172696F
Wario Man
6172696F
Wolf
6F6C662F
Yoshi
6F736869
Zelda
656C6461
If you wish to replace a stage texture, this value should always be 45452F53

YY: This is a two digit value determined by the Select Screen slot of the character you are choosing. Because this is chosen by the Select Screen slot, it may vary slightly - for example, if you want a custom Sheik and are using the default Zelda/Sheik slot, you should put the value for Zelda in this section.

IDs:

Code:
Mario - 00
Donkey Kong - 01
Link - 02
Samus - 03
Yoshi - 05
Kirby - 06
Fox - 07
Pikachu - 08
Luigi - 09
Captain Falcon - 0A
Ness - 0B
Bowser - 0C
Peach - 0D
Zelda - 0E
Sheik - 0F
Ice Climbers - 10
Marth - 11
Mr. Game & Watch 12
Falco - 13
Ganondorf - 14
Wario - 15
Meta Knight - 16
Pit - 17
Zero Suit Samus - 04
Olimar - 18
Lucas - 19
Diddy Kong - 1A
Pokémon Trainer - 1B
Charizard - 1C
Squirtle - 1D
Ivysaur - 1E
King Dedede - 1F
Lucario - 20
Ike - 21
R.O.B - 22
Jigglypuff - 23
Toon Link - 24
Wolf - 25
Snake - 26
Sonic - 27
Random - 29
The Random value can be used if you want an alternate character to only be accessible by getting them through selecting random. The button activator will still have to be used. If you wish to replace a stage texture, this value can be anything.

ZZZZ: This is a button activator that has to be held for the alternate file to be loaded. You can set up this value by visiting this link and using the bottom tab, "Game Cube Controller Joker Generator". Once you have decided on the button activator, add 80 in Hex to it. If you are unfamiliar with Hex, Calculator will happily do the job for you. It is recommended that you include the A button in your button activator, as it is likely that you will be pressing it at the appropriate moment anyway.

AAAA: This is the Hex-ASCII value of the alternate folder you wish to load files from. You can find a Hex-ASCII translator here. For example, if I decided to place my alternate files in /lm/ instead of /pf/, this would take the value of 6C6D.

Getting it to Work: You should place your alternate files in the directories you decided with the AAAA segment of the data code. Remember that they must still follow the normal file structure, save for the renaming of the /pf/ folder. In order for the replacement to take place in game, you must hold down the button activator at the appropriate times:

For Character Textures or Character Data .pacs: Hold down the button activator as you select the character. If you are changing between textures, hold down the button activator as you swap to your desired texture. Your alternate files will be in use until you de-select your character or texture, including between matches. If you play as an alternate texture one game and do not de-select it, you will be playing the same texture the next game. If you are using an alternate character and another player selects the same character as you, they will also be playing the alternate character. It is not possible to play matches of a character against their alternate version. It is recommended you hold down the button activator until you hear the Wii stop loading.

For Stage Textures: Hold down the button activator as you select the stage (e.g. as the match is beginning). This must be performed every game if you wish to reuse the alternate texture. This is only sensitive to Player 1 holding down the appropriate button.

The release of this code marks my retirement from coding. I hope you all enjoy it. I'm here to answer questions and solve bugs for a little while.
 

Nerd With An Afro

Smash Journeyman
Joined
Jul 23, 2009
Messages
283
Location
Lancaster PA
#5
Just 2 questions i want to ask.
1. Will this code boot up from a snapshot or do i need to have it in the original GCT?
2. Do i have to play as the original before i play as the clone like the last one?
 

MK26

Smash Master
Joined
Jun 29, 2008
Messages
4,451
Location
http://www.mediafire.com/?zj2oddmz0yy for ZSS fix!
#7
ohsitoh****ohsitoh****oh****ohsitoshstiohsito****po****o****ohsitoshtisohtius

GOOD JOB ALMAS

EDIT: does this work for multiple alternate pf folders? like, can i have one fitkirby.pac in one alternate folder that's activated by one button combo, and another fitkirby.pac in another folder that's activated by a different button combo?
 
Joined
Feb 6, 2009
Messages
3,299
#8
So, if I decided to do /lm/ as the path, would I rename my existing pf folder to lm, or make a new folder?


and the joker said that a + b would be 300. So I add 80 in hex to that (which is 50) to get 350?
 
Joined
Aug 10, 2009
Messages
889
Location
Donut Plains
#10
EDIT: does this work for multiple alternate pf folders? like, can i have one fitkirby.pac in one alternate folder that's activated by one button combo, and another fitkirby.pac in another folder that's activated by a different button combo?
I would imagine so, since each alternate PAC calls for a different button combination and folder name.
 

Almas

Smash Lord
Joined
Jul 6, 2008
Messages
1,588
#11
Just 2 questions i want to ask.
1. Will this code boot up from a snapshot or do i need to have it in the original GCT?
2. Do i have to play as the original before i play as the clone like the last one?
It should work fine from a snapshot

You won't have to play as the original

MK26 said:
EDIT: does this work for multiple alternate pf folders? like, can i have one fitkirby.pac in one alternate folder that's activated by one button combo, and another fitkirby.pac in another folder that's activated by a different button combo?
Yes.

SymphonicSage12 said:
So, if I decided to do /lm/ as the path, would I rename my existing pf folder to lm, or make a new folder?


and the joker said that a + b would be 300. So I add 80 in hex to that (which is 50) to get 350?
It depends. If the criteria are not met, the files will load from the /pf/ folder. If they are met, they are loaded from the alternate folder.

The joker operates in hex. Add 80 in hex. A+B+80=300
 
Joined
Feb 6, 2009
Messages
3,299
#12
wait, what? I selected a and b and the thing on the left said 300.

so I don't pay attention to that number at all?

Sorry for being a nub, but can you explain this part more? :|
 

Eldiran

Smash Lord
Joined
Jan 8, 2008
Messages
1,707
Location
Pennsylvania
#13
From your reply Almas, it sounds like the "XXXX... code block" is the entirety of
"XXXXXXXX YY00E27B
ZZZZAAAA 00000000"

Is that correct?
 

Almas

Smash Lord
Joined
Jul 6, 2008
Messages
1,588
#17
One question.

Can a marth fight a roy using this?

Furthermore, assuming Jin is a marth hack, can a marth fight a Jin and a Roy?
Almas said:
If you are using an alternate character and another player selects the same character as you, they will also be playing the alternate character. It is not possible to play matches of a character against their alternate version.
Reading. Do you has it?
 

Nerd With An Afro

Smash Journeyman
Joined
Jul 23, 2009
Messages
283
Location
Lancaster PA
#18
lol, this just came to mind, sorry about asking all these questons but does this also load alternative CSP's?

Edit... took me forever to type this, so someone did actually ask my other question
 
Joined
Feb 6, 2009
Messages
3,299
#20
I would think that it would be possible, though, Almas. If you used separate controllers, and used different inputs, wouldn't it work? Or would you have to have multiple sd cards for that? which isn't possible, obviously. (pssst can you pleeeease help me with my problem)
 

Almas

Smash Lord
Joined
Jul 6, 2008
Messages
1,588
#21
Add Hex 80 to whatever the joker puts out. Since A+B is 300, you would write 380 as A+B+80 = 380.

I don't know if this will load alternate CSPs. I presume not, though. Depending on where and when battle portaits are stored/loaded it might load them.
 

Craeter

Smash Apprentice
Joined
Jul 19, 2009
Messages
93
Location
FloMo/LBK, Texas
#25
Wow, awesome. So at the moment this only supports character and stage textures and pacs, but in the future will it be able to support music as well? Because if that were the case, 1 2G SD card could do anything between unhacked vBrawl, hacked vBrawl, BBrawl, and Brawl+ using Dantarion's loader.

Brawl hacking sure has come a long way, huh? :)
 

cookieM0Nster

Smash Champion
Joined
Mar 27, 2009
Messages
2,513
Location
oakland
#26
Add Hex 80 to whatever the joker puts out. Since A+B is 300, you would write 380 as A+B+80 = 380.

I don't know if this will load alternate CSPs. I presume not, though. Depending on where and when battle portaits are stored/loaded it might load them.
It shouldn't. CSP's and Battle Portraits are loaded at the start of the game, along witth Common5.pac, I believe.

And what is all this about button input? Care to explain, Almas?
 
Joined
Feb 6, 2009
Messages
3,299
#27
Never mind I get it.....thanks guys on the chat.

I just thought that "80 in hex" meant " the decimal value of 80's equivalent in hex" but apparently it means "the hex value '80' "
 

Almas

Smash Lord
Joined
Jul 6, 2008
Messages
1,588
#28
Ya know I just thought of something. What'll happen if 2 players choose the same character at the exact same time with different inputs...
There is no such thing as "the exact same time". One of the players always picks first.

Craeter said:
Wow, awesome. So at the moment this only supports character and stage textures and pacs, but in the future will it be able to support music as well? Because if that were the case, 1 2G SD card could do anything between unhacked vBrawl, hacked vBrawl, BBrawl, and Brawl+ using Dantarion's loader.
I don't intend to update the code to include music, though it is certainly possible.

For those who have joker issues: Simply take the value that the joker gives you, and add 80 to it. Make sure that during the entire calculation period, you are working in hex. The value the joker gives you is in hex. The value you are adding (80) is in hex. You just add them together, staying in hex.
 

Almas

Smash Lord
Joined
Jul 6, 2008
Messages
1,588
#29
Ya know I just thought of something. What'll happen if 2 players choose the same character at the exact same time with different inputs...
There is no such thing as "the exact same time". One of the players always picks first.

Craeter said:
Wow, awesome. So at the moment this only supports character and stage textures and pacs, but in the future will it be able to support music as well? Because if that were the case, 1 2G SD card could do anything between unhacked vBrawl, hacked vBrawl, BBrawl, and Brawl+ using Dantarion's loader.
I don't intend to update the code to include music, though it is certainly possible.

For those who have joker issues: Simply take the value that the joker gives you, and add 80 to it. Make sure that during the entire calculation period, you are working in hex. The value the joker gives you is in hex. The value you are adding (80) is in hex. You just add them together, staying in hex.
 

Almas

Smash Lord
Joined
Jul 6, 2008
Messages
1,588
#32
Yes. If you have more than one copy of the same character playing (e.g. more than one Marth), the game only loads Marth's data file once. Since this code intercepts the loading of the data file and replaces it with another one, it can't prevent all the characters from sharing the same data file. The only way to prevent this would be to convince the game that Jin/Roy are in fact different characters. Which is what Phantom Wings is presumably working on.

Code:
Alternate File Loader Lol
C23FA350 0000001D
90C20000 90E20004
91620008 90A2000C
90620010 91220014
91420018 9182001C
91A20020 38C07066
3CE0805A 60E77C16
90C70000 3D800004
618C86C0 3CC08152
60C6E27B 3CA0804D
60A5E4B0 3C608057
6067A000 6063A0FC
3D60805A 616B7C22
39200000 48000020
38A50008 7CCC3050
39290001 3C608057
6063A0FC 2C090004
41820038 81460000
1D4A0004 7D4A382E
7C0A5800 4082FFD4
A1A50000 A5430004
7C0D5000 4082FFC4
A4C30002 3CE0805A
60E77C16 90C70000
80C20000 80E20004
81620008 80A2000C
80620010 81220014
81420018 8182001C
81A20020 8C040001
60000000 00000000
Code:
Data Code Lol
0657A100 00000004
01A06270 00000000
Code:
File Patch Code v3.5.1 (NTSC-U) [Phantom Wings]
E0000000 80008000
225664EC 00000000
0401BFE0 4858BE20
065A7E00 00000070
38A00067 38810020
3CE0805A 60E37C18
4BE52531 38A0007F
3883FFE8 38610020
4BE52521 38A00068
60E47C18 38610020
9421FF80 BC410008
38610088 4BA74DB9
7C7C1B78 2C030000
4082000C 38210080
4800001C B8410008
38210080 4BE524E5
38610008 4BA742E1
7C7C1B78 4BA741E8
040223E0 48585BC0
065A7FA0 00000028
80010044 3C608001
6063581C 7C001800
4082000C 7FDDC850
3BDEFFE0 93DB0008
4BA7A424 00000000
0401CD0C 4858B1F4
065A7F00 00000038
2C030000 4182000C
4BA7DD51 4BA74E04
80780008 2C030000
41820014 8118000C
7C634214 7C7B1850
48000008 8078000C
4BA74DE0 00000000
043EE9D8 48000014
043EEBD4 48000014
043D8B9C 48000018
043E9B4C 38600000
043E9D38 38600000
043D8C80 60000000
80000000 80406920
80000001 805A7C00
8A001001 00000000
045A7C10 2F525342
045A7C14 452F7066
80000001 805A7B00
8A001001 00000000
065A7B10 0000000F
2F525342 452F7066
2F736F75 6E642F00
041C6CE0 483E0D20
065A7A00 00000028
9421FF80 BC410008
3C60805A 60637B1F
4BE52931 B8410008
38210080 4BE52995
4BC1F2C4 00000000
065A7900 00000078
9421FF80 7C0802A6
9001000C BC810010
9421FF00 7C872378
54B2BA7E 7CD33378
38800000 9081000C
90810010 90610014
90810018 3880FFFF
9081001C 38610020
90610008 7CE43B78
38A00080 4BE529F5
38610008 4BA752A1
60000000 80210000
B8810010 8001000C
7C0803A6 80210000
4E800020 00000000
043E399C 481C3F04
065A78A0 00000010
80BC0020 7CA59214
3A400000 4BE3C0F4
043DBAEC 481CBDE4
065A78D0 00000018
800302A4 2C130000
41820008 7E609B78
3A600000 4BE3420C
041CDF7C 483D9884
065A7800 00000098
818C0014 9421FF80
BC410008 3D009034
61089D94 7C034000
4082003C 7C882378
3C60804D 60630000
3C80805A 60847B00
7CC53378 38C04200
80E40080 2C070000
40820014 60000000
480000B9 2C030000
41820010 B8410008
80210000 4BC26724
70A501FF 3868FFFF
3C80804C 6084FFFF
7C842A14 38A04001
38A5FFFF 8C040001
9C030001 2C050000
4082FFF0 B8410008
80210000 4BC2670C
141CCF90 483DA770
065A7700 00000048
9421FF80 BC410008
7FE3FB78 3C80805A
60847B00 38A00000
38C04000 480001E5
90640080 807F0008
907A0014 907A005C
907A0074 B8410008
80210000 807F0000
4BC25854 00000000
E0000000 80008000
/bp/ A+R
 
Joined
Sep 17, 2007
Messages
816
#34
The only way to prevent this would be to convince the game that Jin/Roy are in fact different characters. Which is what Phantom Wings is presumably working on.
I can't wait for that to happens, since I am impressed with people's Mewtwo model which look pretty good.
 

sffadsad

Smash Apprentice
Joined
Nov 6, 2007
Messages
148
#35
I'm confused by this part:
BYTECOUN: This is equal to 10 multiplied by the amount of alternate files you wish to have active. For example, if you wanted to have 5 alternate files, this would take the value 00000050. For more than 9 changes, it is important to remember to count in hex. E.g. 80, 90, A0, B0... F0, 100.

Does this mean number of alternate files in total? Like if I want Fighter Kirby, Roy, Mewtwo, and Wisp that would count as 4 so my byte count would be 00000040?

Also, using this code is it possible to have 3 different versions of a character at once? Like if I had Marth in the pf folder, Roy in an lm folder, and Elemental Marth in a gd folder using different buttons for each character?

Finally, what do I do if I want to be able to access these "clones" using alternate controllers? I use the classic controller while my friends prefer the gamecube controller.
 
Joined
Oct 4, 2007
Messages
905
#36
I'm confused by this part:
BYTECOUN: This is equal to 10 multiplied by the amount of alternate files you wish to have active. For example, if you wanted to have 5 alternate files, this would take the value 00000050. For more than 9 changes, it is important to remember to count in hex. E.g. 80, 90, A0, B0... F0, 100.

Does this mean number of alternate files in total? Like if I want Fighter Kirby, Roy, Mewtwo, and Wisp that would count as 4 so my byte count would be 00000040?

Also, using this code is it possible to have 3 different versions of a character at once? Like if I had Marth in the pf folder, Roy in an lm folder, and Elemental Marth in a gd folder using different buttons for each character?

Finally, what do I do if I want to be able to access these "clones" using alternate controllers? I use the classic controller while my friends prefer the gamecube controller.
Yes, it would be 40.

Don't do the tl;dr thing, read the whole first post. No.

Not sure.
 

sffadsad

Smash Apprentice
Joined
Nov 6, 2007
Messages
148
#38
Yes, it would be 40.

Don't do the tl;dr thing, read the whole first post. No.

Not sure.
I did in fact read the whole post. I'm aware that you can't have multiple versions of the character in a match. I'm asking if you can STORE multiple characters at once. For example, if I want Elemental Marth to be triggered by L while Roy is triggered by R.

Thank you for your help though.

P.s. How do you multiply in hex?
 
Top