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

Melee Gecko Codes + Guide and Discussion

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
[all the below info is assuming Roy's swing color is dealt with the same way Marth's is....which is probably the case]

Yes, but they won't be that helpful to begin with. I'm assuming you have the offsets in roys own specific .dat file? The first thing you'll want to do is start a game with roy, dump the RAM, then search it in a hex editor for the identical information in the .dat file (a few adjacent lines should do). There will probably be two offsets in the RAM that contain this info, one in the 0x00C_____ area and one in the 0x01____ area. The one you are interested in is the 0x00C offset. Change those hex values midgame (roy's swing color should change) to know you found the right address. This address gets written to everytime Roy dies and is brought back to life (So for example, if you change it to red or something and then die, it will change back to the default value). So then you'll want to be in a game, set a memory write breakpoint at that address you found, and then kill yourself, and the game should freeze at [near] the line of code that writes the default color value to that address. This is the line of code where the custom code gets injected.

Hopefully that makes sense. Let me know when you find that code line.
 

HRR2b23

Smash Apprentice
Joined
Nov 16, 2013
Messages
134
Location
Lost in the Water Temple
3DS FC
2535-4498-3108
I'm having some issues getting the codes to load on my soft modded wii. I have the apps installed on homebrew fine and the GCT on my SD card in the location specified in the OP. When I go to the GeckoOS mod it recognizes that I have codes and it says that it applies them, however the codes do not work in the game. For reference, I am using the codes from the 20XX Training Pack specifically I have tried the ones for CPUs spamming projectiles and jumping/grabbing OoS, as well as the overlaying hitboxes. I have v1.02 and pasted the codes into the code manager directly from the site. I just don't really know why they aren't working.
 

Doq

Smash Lord
Joined
Dec 28, 2012
Messages
1,037
Location
The Lab, Sweet Home, OR
[all the below info is assuming Roy's swing color is dealt with the same way Marth's is....which is probably the case]

Yes, but they won't be that helpful to begin with. I'm assuming you have the offsets in roys own specific .dat file? The first thing you'll want to do is start a game with roy, dump the RAM, then search it in a hex editor for the identical information in the .dat file (a few adjacent lines should do). There will probably be two offsets in the RAM that contain this info, one in the 0x00C_____ area and one in the 0x01____ area. The one you are interested in is the 0x00C offset. Change those hex values midgame (roy's swing color should change) to know you found the right address. This address gets written to everytime Roy dies and is brought back to life (So for example, if you change it to red or something and then die, it will change back to the default value). So then you'll want to be in a game, set a memory write breakpoint at that address you found, and then kill yourself, and the game should freeze at [near] the line of code that writes the default color value to that address. This is the line of code where the custom code gets injected.

Hopefully that makes sense. Let me know when you find that code line.
And how would I go about doing so in Dolphin? Would I need a special version or just using the 4.0.1 version?
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
I'm having some issues getting the codes to load on my soft modded wii. I have the apps installed on homebrew fine and the GCT on my SD card in the location specified in the OP. When I go to the GeckoOS mod it recognizes that I have codes and it says that it applies them, however the codes do not work in the game. For reference, I am using the codes from the 20XX Training Pack specifically I have tried the ones for CPUs spamming projectiles and jumping/grabbing OoS, as well as the overlaying hitboxes. I have v1.02 and pasted the codes into the code manager directly from the site. I just don't really know why they aren't working.
Unfortunately, I have not heard of those codes I wrote working for GeckoOS. I would look into booting the ISO from an SD card.

And how would I go about doing so in Dolphin? Would I need a special version or just using the 4.0.1 version?
You'll need a special DebugFast version of Dolphin for memory read/write breakpoints. I recommend watching InternetExplorer's hacking tutorial where he goes over the basics of this stuff. I have this video linked in the beginning of my 20XX training codes thread. You can dump the RAM (mram) using any version of Dolphin running in Debug mode. Just have the memory tab visible.
 
Last edited:

drummaniac28

Smash Cadet
Joined
Nov 22, 2013
Messages
40
Location
Indianapolis, IN
I'd be really interested in seeing the Input Delay Testing code work. Testing input lag usually requires more equipment, but it'd be nice to have a rough estimate that can be done using Melee.
 

Todd Bonney

Smash Lord
Joined
Dec 17, 2005
Messages
1,098
Aw nuts, I had a code like that. But it didn't post it. Based on the gif, that one works better, though.


You'll need a special DebugFast version of Dolphin for memory read/write breakpoints.
What revision is the DebugFast version in that link? The only one I was able to find was old (3.0 based) and I didn't have success building one on my own.

Honestly they should just add the memory breakpoints to the regular Debug version. o_0
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
@ Achilles1515 Achilles1515 when it goes to the CPU part of that gif, it still has the tag selected. does the CPU in game have the tag or is that just an aesthetic thing on the CSS?
Just tried it out and the CPU does not have the name tag. BUT, the little "CP" arrow that, normally, occasionally shows up above the CPU is now constantly there...which is a little annoying I guess.
Thanks for asking/pointing this out.

Aw nuts, I had a code like that. But it didn't post it. Based on the gif, that one works better, though.

What revision is the DebugFast version in that link? The only one I was able to find was old (3.0 based) and I didn't have success building one on my own.

Honestly they should just add the memory breakpoints to the regular Debug version. o_0
Adding memory breakpoints slows the entire emulator down so there is a benefit to not having it. That link is for an old 3.0 version, probably the same one you have. I gave InternetExplorer a link to help him compile a 4.0 DebugFast version last night, and he was successful. I'll post the link in a bit.
Nah. Normal versions work too using the -d switch on the command line. :p
"C:\Users\Game Club 1\Desktop\kirby's ssbm\dolphin402\dolphin.exe" -d
That is just the regular Debug version. It can do code line breakpoints but not memory read/write breakpoints - this can only be done in a DebugFast version.
 
Last edited:

Doq

Smash Lord
Joined
Dec 28, 2012
Messages
1,037
Location
The Lab, Sweet Home, OR
That is just the regular Debug version. It can do code line breakpoints but not memory read/write breakpoints - this can only be done in a DebugFast version.
Incorrect. Standard Dolphin 3 compiles can break on Memory Checks. The only difference between the two is that the DF version is generally faster in Debug mode than a Release compile.
--------------

Irrelevant: Not working on the Roy code, but something else. More on this later. ;)
 
Last edited:

Metasponge64

Smash Rookie
Joined
Apr 4, 2012
Messages
24
Any way to get this code in tournament mode? I was wondering if this could be used in conjunction with the "Debug Menu replaces Tournament Mode" code to prevent freezing when winning with unplayable characters.

Code:
Skip Result Screen & KO Star Count = Placement (v1.02) [Sham Rock]
C21A415C 0000000E
3803FFFF 2C000004
40820060 2C0B0020
41820058 3A400000
3E808047 62949D58
3EA0804D 62B5672F
8E1400A8 8A340001
2C10004E 4080000C
9E350001 4800000C
3A310001 9E350001
3A520001 2C120004
41A0FFD8 3A000000
3A200000 3A800000
3AA00000 38000000
60000000 00000000
 
Last edited:
Joined
Oct 10, 2011
Messages
1,126
Location
Boise, ID
NNID
dansalvato
I wrote a proper "boot to character select screen" code that doesn't skip the memory card check.

Code:
Boot to Character Select Screen (v1.02) [InternetExplorer]
041BFA20 3C600202
041A4300 90640000
@ Achilles1515 Achilles1515 Please add this to the OP at your convenience, thank you.
 
Last edited:

P 1

Smash Cadet
Joined
Apr 16, 2014
Messages
45
Location
Merced, CA
anyone else have difficulty getting the boot to character select to work?

I've noticed that the unlock all character stages and characters loads after the progressing through the "press start" screen. so it makes the boot to character select kind of moot if you have to go back anyway.

I wrote a proper "boot to character select screen" code that doesn't skip the memory card check.
This is great, but my friend actually just overwrote my memory card LOL. anyway to load the cheats at character select?

any input on this would be appreciated.
 
Last edited:

Todd Bonney

Smash Lord
Joined
Dec 17, 2005
Messages
1,098
The old Boot to CSS code worked well, albeit with that caveat P1 mentioned. I tried the new one and had difficulties. It could be that it was not getting along with another code. I was having difficulty with the Input Delay Tester too.
 
Joined
Oct 10, 2011
Messages
1,126
Location
Boise, ID
NNID
dansalvato
The old Boot to CSS code worked well, albeit with that caveat P1 mentioned. I tried the new one and had difficulties. It could be that it was not getting along with another code. I was having difficulty with the Input Delay Tester too.
That's strange, the new one works very similarly to the older one, in that it simply changes the scene ID loaded to memory when the scene changes. I'll see how much luck others have with it.
 

Todd Bonney

Smash Lord
Joined
Dec 17, 2005
Messages
1,098
I'm trying to understand Achilles' combo counter code from the 20XX pack. I previously had only done ASM injection, or one-line memory overwrites, so this was another thing entirely, but I came up with this explanation:

Code:
(1.02) [Achilles]
2846B108 00000024    // if 16bits at 0x8046B108 == 0x24
CC000000 00000000    //    on-off switch
E2100000 00000000    // else{
0446b6CC 00000000    //    write 0x00000000 to 0x8046b6cc
2C4545CC FF000000    //    if 16 bits at [ba+4545cc] & 0x00FF > 0
82000007 804545CD    //        Load 8 bits at 0x804545cd into Gecko Register 7
2C453751 FF000000    //    if 16 bits at ba+453750 & 0x00FF
82000007 80453751    //        Load 8 bits at 0x80453751 into Gecko Register 7
2C45545D FF000000    //    if 16 bits at ba+45545C & 0x00FF > 0
82000007 8045545D    //        Load 8 bits at 0x8045545D into Gecko Register 7
2C453765 FF000000    //    if 16 bits at ba+453764 & 0x00FF > 0
82000007 80453765    //        Load 8 bits at 0x80453765 into Gecko Register 7
2C4562ED FF000000    //    if 16 bits at ba+4562EC & 0x00FF > 0
82000007 804562ED    //        Load 8 bits at 0x804562ED into Gecko Register 7
2C453779 FF000000    // ...
82000007 80453779    // and so on
2C455471 FF000000
82000007 80455471
2C4545F5 FF000000
82000007 804545F5
2C456301 FF000000
82000007 80456301
2C454609 FF000000
82000007 80454609
2C456315 FF000000
82000007 80456315
2C455499 FF000000
82000007 80455499
E2000001 00000000    // }
84100007 8046b6CA    // Store gr7's halfword at 0x8046b6ca
284545CC FF000000    // if byte at 0x804545CD == 0
28453750 FF000000    // ...nested ifs
2845545C FF000000
28453764 FF000000
284562EC FF000000
28453778 FF000000
28455470 FF000000
284545F4 FF000000
28456300 FF000000
28454608 FF000000
28456314 FF000000
28455498 FF000000    // if all of these are true, then
A8000008 0000003C    // for(i=0;i<60;i++)
80000007 00000000    //    Set gr7 = 0
84200007 8046b6CA    //    Store gr7 at 0x804B6CA
E200000B 00000000    // 11 endifs

Is that accurate pseudocode?
What does the "On-off switch" code do? I read the description several times and I don't understand.
In general, when is a Gecko code like this executed? Every frame? Is this running concurrently with the game's code?
Achilles, could you explain the bytes you're scanning through are with all those ifs? What is the first if-statement checking? Shouldn't the last line be 12 endifs? I counted 12 if statements.
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
I'm trying to understand Achilles' combo counter code from the 20XX pack. I previously had only done ASM injection, or one-line memory overwrites, so this was another thing entirely, but I came up with this explanation:

Code:
(1.02) [Achilles]
2846B108 00000024    // if 16bits at 0x8046B108 == 0x24
CC000000 00000000    //    on-off switch
E2100000 00000000    // else{
0446b6CC 00000000    //    write 0x00000000 to 0x8046b6cc
2C4545CC FF000000    //    if 16 bits at [ba+4545cc] & 0x00FF > 0
82000007 804545CD    //        Load 8 bits at 0x804545cd into Gecko Register 7
2C453751 FF000000    //    if 16 bits at ba+453750 & 0x00FF
82000007 80453751    //        Load 8 bits at 0x80453751 into Gecko Register 7
2C45545D FF000000    //    if 16 bits at ba+45545C & 0x00FF > 0
82000007 8045545D    //        Load 8 bits at 0x8045545D into Gecko Register 7
2C453765 FF000000    //    if 16 bits at ba+453764 & 0x00FF > 0
82000007 80453765    //        Load 8 bits at 0x80453765 into Gecko Register 7
2C4562ED FF000000    //    if 16 bits at ba+4562EC & 0x00FF > 0
82000007 804562ED    //        Load 8 bits at 0x804562ED into Gecko Register 7
2C453779 FF000000    // ...
82000007 80453779    // and so on
2C455471 FF000000
82000007 80455471
2C4545F5 FF000000
82000007 804545F5
2C456301 FF000000
82000007 80456301
2C454609 FF000000
82000007 80454609
2C456315 FF000000
82000007 80456315
2C455499 FF000000
82000007 80455499
E2000001 00000000    // }
84100007 8046b6CA    // Store gr7's halfword at 0x8046b6ca
284545CC FF000000    // if byte at 0x804545CD == 0
28453750 FF000000    // ...nested ifs
2845545C FF000000
28453764 FF000000
284562EC FF000000
28453778 FF000000
28455470 FF000000
284545F4 FF000000
28456300 FF000000
28454608 FF000000
28456314 FF000000
28455498 FF000000    // if all of these are true, then
A8000008 0000003C    // for(i=0;i<60;i++)
80000007 00000000    //    Set gr7 = 0
84200007 8046b6CA    //    Store gr7 at 0x804B6CA
E200000B 00000000    // 11 endifs

Is that accurate pseudocode?
What does the "On-off switch" code do? I read the description several times and I don't understand.
In general, when is a Gecko code like this executed? Every frame? Is this running concurrently with the game's code?
Achilles, could you explain the bytes you're scanning through are with all those ifs? What is the first if-statement checking? Shouldn't the last line be 12 endifs? I counted 12 if statements.
Todd, looking back on that code now, it is written very sloppily. And yes, it probably needs another endif or something. I remember using it on the console once and it messed other codes up and that was probably why. Times when it worked was most likely when it was the last code in the gct file.

I didn't really make official documentation of this code when I wrote it but here are some more notes:

The code toggle (CC) is weird...It took me awhile to figure out how it works because, you're right, the documentation kind of sucks on it. It took a lot of experimenting to figure it out. I pretty much look at it like whenever the code handler hits that CC line, it ignores the code execution status and resets this status to whatever it last changed it to (and this value gets switched when the conditional before it is met). And the default action the CC line does is switch the code execution status. Sounds confusing but here is an example.

2846B108 00000024 //if player 1 input = R+Dpad down
CC000000 00000000 //switch code execution status
04...something //32 bit write
E2000001 80008000 // 1 endif and then terminate

So now lets play the role of the code handler. We get to that first line and player 1 is NOT pressing the button combination --> code execution status is set to FALSE (meaning following lines [such as a memory write] will not be executed, until something turns the code execution status back to true). Next line is the CC. So the code execution status is flipped to TRUE. And then the proceeding 32bit memory write will be executed.

For the above code though, I wanted the combo counter section to not execute while the button combination is not being pressed. In the above example, the 32 bit write IS executed when the button combination is not being pressed. In order to reverse this, I added an ELSE after the CC toggle line - an ELSE just flips the code execution status.

2846B108 00000024 //not being pressed --> code execution status set to FALSE
CC000000 00000000 //switch code execution status --> TRUE
E2100000 00000000 //ELSE --> switch code execution status --> FALSE
04...something //32 bit write will not happen now
E2000001 80008000 // 1 endif and then terminate

The aspect of the CC toggle that makes it special is that it....saves (?) the last execution status that the CC line flipped to and any time the code handler hits the CC line, it uses that last stored value (unless the conditional before it is met, which means it changes this value). It's...idk...kind of hard to explain.

So once the button activator is pressed:
2846B108 00000024 //is being pressed --> code execution status set to TRUE
CC000000 00000000 //CC toggle internally switches code execution status --> FALSE
E2100000 00000000 //ELSE --> switch code execution status --> TRUE
04...something //32 bit write will happen
E2000001 80008000 // 1 endif and then terminate

And then after the player lets go of the button:
2846B108 00000024 //is not being pressed --> code execution status set to FALSE
CC000000 00000000 //CC toggle ignores the current code execution status and sets it to what it was last --> FALSE
E2100000 00000000 //ELSE --> switch code execution status --> TRUE
04...something //32 bit write will happen
E2000001 80008000 // 1 endif and then terminate

And then they toggle it back off:
2846B108 00000024 //is being pressed --> code execution status set to TRUE
CC000000 00000000 //CC toggle internally switches code execution status from what it was last--> TRUE
E2100000 00000000 //ELSE --> switch code execution status --> FALSE
04...something //32 bit write will not happen
E2000001 80008000 // 1 endif and then terminate

and, again, after the player lets go of the button:
2846B108 00000024 //is not being pressed --> code execution status set to FALSE
CC000000 00000000 //CC toggle ignores the current code execution status and sets it to what it was last --> TRUE
E2100000 00000000 //ELSE --> switch code execution status --> FALSE
04...something //32 bit write will not happen
E2000001 80008000 // 1 endif and then terminate

So yeah...it's a little confusing. Just experiment with it some more and you'll figure it out.

Here's the code for the fixed camera toggling as another example.

Default code execution (theres probably a better term for this..):
2846B108 00000002 //is player 1 pressing d-pad right? No. code execution set to FALSE.
04452C6C 00000000 //32 bit write for making the camera normal. will not get executed (the camera should be normal at this point anyway)
CC000000 00000000 //code execution is flipped --> TRUE
E2100000 00000000 //ELSE -->code execution is flipped --> FALSE
04452C6C 00000004 //value for making camera fixed. Will not get executed because code status is false
E2000001 00000000 //endif terminator

Once the button is pressed (turning camera to fixed):
2846B108 00000002 //is player 1 pressing d-pad right? Yes. code execution set to TRUE.
04452C6C 00000000 //32 bit write for making the camera normal. will get executed (the camera should be normal at this point anyway so its not doing anthing)
CC000000 00000000 //code execution is flipped --> FALSE //this FALSE value is stored so after they let go of the button combination, every line proceeding this will be executed in this same way (until the button conditional is met again)
E2100000 00000000 //ELSE -->code execution is flipped --> TRUE
04452C6C 00000004 //value for making camera fixed. Will get executed because code status is TRUE
E2000001 00000000 //endif terminator

When the button is pressed again (turning the camera back normal):
2846B108 00000002 //is player 1 pressing d-pad right? Yes. code execution set to TRUE.
04452C6C 00000000 //32 bit write for making the camera normal. will get executed (camera switches from fixed back to normal)
CC000000 00000000 //store code execution value is flipped to --> TRUE
E2100000 00000000 //ELSE -->code execution is flipped --> FALSE
04452C6C 00000004 //value for making camera fixed. Will not get executed because code status is false
E2000001 00000000 //endif terminator

Hopefully I didn't confuse you too much and that this helps you get a feel for how it works.


Other notes:

Essentially what this code is doing is looking at a players combo counter, and if it is greater than 0, store the value in Gecko register 7 and then copy Gecko register 7 to the memory address that corresponds to minutes/seconds left in the game timer. The memory addresses where I was getting the combo counter from revert back to 0 when the player that was hit is out of hitstun. The logic behind it is that (in a 1v1 match) both players can't simultaneously have combo counters greater than 0 (except for maybe a trade hit?).

0446b6CC 00000000 //writes 0 to an address that is a counter for taking away time from the game timer. writing 0 to this every frame essentially freezes the game timer

(The one note I actually wrote down)
TIMER Offsets (1.02)
8046B6C8 is the amount of minutes/seconds left
000001E0 = 8 minutes (1E0=decimal 480[seconds] = 8 minutes)

The A8 line is for waiting a second before putting zero in the game timer combo counter (so the player will have time to look and see if they had a combo or not)

The code is not written well, though, because the address the combo counters are at are from a pointer. aka, their memory location changes (and I believe I found out that it changes based on how many characters are currently playing and what the player combination is - so the location for P1's combo counter is different for P1 v. P2 than it is for P1 v. P3). But I never figured out what the pointer value/offset from the pointer was, so I just played a match with every player combination and found all those combo counter addresses and threw them into the code in the if statements. This is the very nonelegant way of doing it. So the first big set of ifs in the code are looking at all these addresses of possible places the combo counters could be in and asking if they are above zero. If so --> store in Gecko register 7, etc. And the last big set of ifs is checking the addresses so that if they are all zero --> set Gecko register 7 to zero, etc.

So yeah....its sloppy. Knowing the pointers would drastically decrease the amount of code lines necessary - I just haven't gotten around to figuring it out. I'd really like to rewrite this code in ASM at some point this week. Especially now that I know of the "player data" pointers and that the combo counter for a player is one of the offsets from this (known) pointer. More information on the player data pointers can be found in this spreadsheet that IE and I have been adding to recently. These combo counter address in the player data offsets are a little different than the ones used for this code, though, in the fact that they don't revert back to zero when the opponent is out of hitstun. This means I'll need to rework my logic used in the code.

I need to go to sleep now.
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Any way to get this code in tournament mode? I was wondering if this could be used in conjunction with the "Debug Menu replaces Tournament Mode" code to prevent freezing when winning with unplayable characters.

Code:
Skip Result Screen & KO Star Count = Placement (v1.02) [Sham Rock]
C21A415C 0000000E
3803FFFF 2C000004
40820060 2C0B0020
41820058 3A400000
3E808047 62949D58
3EA0804D 62B5672F
8E1400A8 8A340001
2C10004E 4080000C
9E350001 4800000C
3A310001 9E350001
3A520001 2C120004
41A0FFD8 3A000000
3A200000 3A800000
3AA00000 38000000
60000000 00000000
I'm actually writing a code to do this (and more) at the moment.

I wrote a proper "boot to character select screen" code that doesn't skip the memory card check.

Code:
Boot to Character Select Screen (v1.02) [InternetExplorer]
041BFA20 3C600202
041A4300 90640000
@ Achilles1515 Achilles1515 Please add this to the OP at your convenience, thank you.
It has been added. Thanks for looking into this. I'll test it on my wii next time I get the chance.
 
Last edited:

WindozeNT

Smash Ace
Joined
Sep 24, 2013
Messages
559
Location
Texas
NNID
WindozeNT
3DS FC
1865-1050-3752
I have version 1.01. Any codes that disable the invincibility gained after getting off the revival platform, causing the top blast line to either regular KO or screen KO instead of star KOing (these are both for when I'm in Super Sudden Death mode), or one that keeps Nana from dematerializing and respawing when Popo gets KO'd?
 

Todd Bonney

Smash Lord
Joined
Dec 17, 2005
Messages
1,098
I rewrote the combo counter code in ASM. That spreadsheet you posted was very helpful. Mine works, but the combo # stays up until the next combo starts
Next I want to either display it differently, or expand how the game defines combo (include techchases as combos... potentially edgeguards too)

Code:
(1.2)
0446b6CC 00000000
C2076410 00000004
9181FFFC 3D808046
618CB6CA B00C0000
8181FFFC B0062090
60000000 00000000

stops clock
inject this at 80076410
stw r12, -4 (sp) //"pushes" r12
lis r12, 0x8046
ori r12, r12, 0xb6ca //these two lines put the address of the timer into r12
sth r0, 0 (r12) //r0 contains the combo count. store it where the timer is
lwz r12, -4 (sp) //"pops" r12
sth r0, 0x2090 (r6) //the original line of code (updates the comboer's combo count)
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
I rewrote the combo counter code in ASM. That spreadsheet you posted was very helpful. I just can't figure out which part of your code stopped the clock. Mine works, but the clock keeps going, so the game will end 2-3 seconds after the first combo.
Next I want to either display it differently, or expand how the game defines combo (include techchases as combos... potentially edgeguards too)

Code:
(1.2)
C2076410 00000004
9181FFFC 3D808046
618CB6CA B00C0000
8181FFFC B0062090
60000000 00000000

inject this at 80076410
stw r12, -4 (sp) //"pushes" r12
lis r12, 0x8046
ori r12, r12, 0xb6ca //these two lines put the address of the timer into r12
sth r0, 0 (r12) //r0 contains the combo count. store it where the timer is
lwz r12, -4 (sp) //"pops" r12
sth r0, 0x2090 (r6) //the original line of code (updates the comboer's combo count)
I noted about freezing the timer in the above post.

"0446b6CC 00000000 //writes 0 to an address that is a counter for taking away time from the game timer. writing 0 to this every frame essentially freezes the game timer"
 

Todd Bonney

Smash Lord
Joined
Dec 17, 2005
Messages
1,098
K, I hadn't read it since morning. Thanks! I updated my code.
 
Last edited:

Gavin D.

Smash Cadet
Joined
Jan 19, 2014
Messages
26
Location
Denver Colorado
So I have Homebrew channel, and when I try to load up IOS236 Installer the writing at the bottom says...
Could not open file: sd:/IOS36-64-v3351.wad
Could not open file: sd:/IOS36-64-v3351.wad.out.wad
Error reading IOS into memory
IOS236 Install failed. Press any button the exit...


Why wont it work? Is there something else I need to have on my SD card? Im using SDHC 8GB but also have a SD 2GB card. What am I doing wrong?
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
So I have Homebrew channel, and when I try to load up IOS236 Installer the writing at the bottom says...
Could not open file: sd:/IOS36-64-v3351.wad
Could not open file: sd:/IOS36-64-v3351.wad.out.wad
Error reading IOS into memory
IOS236 Install failed. Press any button the exit...


Why wont it work? Is there something else I need to have on my SD card? Im using SDHC 8GB but also have a SD 2GB card. What am I doing wrong?
Delete the current IOS 236 app you have on your SD card, download this one and follow the guide on that page. It is easiest to have your Wii connected to the internet and then using the option in the IOS 236 menu to download it from the internet. The guide goes over this.
 

Jazriel

Smash Ace
Joined
Sep 23, 2006
Messages
837
Location
Nepean, ON
I have recently delved into the world of softmodded Wii's. I don't have access to my melee discs so I'm using my SD card for everything. How do I get Gecko codes like the CPU DI & Tech and the 20XX training pack to work? If discussing .iso's is against smashboards TOS then would someone be kind enough to PM me?
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
I have recently delved into the world of softmodded Wii's. I don't have access to my melee discs so I'm using my SD card for everything. How do I get Gecko codes like the CPU DI & Tech and the 20XX training pack to work? If discussing .iso's is against smashboards TOS then would someone be kind enough to PM me?
We just can't talk about where to download the ISOs. Go to the "unofficial guide to getting the codes to work" I posted at the bottom of the 20xx thread.
 

Jazriel

Smash Ace
Joined
Sep 23, 2006
Messages
837
Location
Nepean, ON
Thank you very much. I must have missed those parts when I read all of those threads. Just about to put my SD card in and see how it works :D

I have followed all the instructions, and it's not working. I tried Gecko OS but I don't know how to configure it to run an .iso, if it even can. Trying Dios-Mios Booter, it seems to work, I choose to start the .iso, Dios Mios screen comes on and disc drive whirrs, and then it flashes green and the screen goes black and stays black. Would the codes I'm using matter? Since I don't have a GC memory card right now one of the codes I put in is the 'skip to char select and skip mem check' code.
 
Last edited:

SuperUltraDX

Smash Rookie
Joined
Mar 30, 2014
Messages
22

Gavin D.

Smash Cadet
Joined
Jan 19, 2014
Messages
26
Location
Denver Colorado
Delete the current IOS 236 app you have on your SD card, download this one and follow the guide on that page. It is easiest to have your Wii connected to the internet and then using the option in the IOS 236 menu to download it from the internet. The guide goes over this.
So i went to the link you gave me and downloaded IOS236_InstAller_v6 but when reading on with the instructions i didn't have this

  • "You should now have an sd:/apps/IOS236/boot.dol file among others. It is important to also have sd:/apps/IOS236/meta.xml" when i opened the folder. I still tried to go ahead and put the sd card into the wii and download ios236 from home-brew but it was no longer an option.
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
So i went to the link you gave me and downloaded IOS236_InstAller_v6 but when reading on with the instructions i didn't have this

  • "You should now have an sd:/apps/IOS236/boot.dol file among others. It is important to also have sd:/apps/IOS236/meta.xml" when i opened the folder. I still tried to go ahead and put the sd card into the wii and download ios236 from home-brew but it was no longer an option.
It's in the pack.


Just put that IOS236 folder into your SD:\apps\ folder
 

Jazriel

Smash Ace
Joined
Sep 23, 2006
Messages
837
Location
Nepean, ON
So I've tried Dios Mios Booter with the .gct, doesn't work. I think I'm starting to understand how this stuff works. I'm looking online and I can't seem to get anything to work with the .gct made from that 'Ocarina Code Manager' thing. Wiiflow gives me the option to enable Ocarina, and then does nothing (though if I choose the loader as Devolution it crashes the same as Dios Mios Booter). Gecko OS seems to apply the codes if you have a disc to run, which I don't, so that's out for me. Wiiflow works for everything else and has been up to this point how I play melee, albeit it without any codes or memory. I tried cfg and that didn't work either. USB Loader GX seems like the next thing to try but the download page is confusing.

Is there a certain IOS or .wad I need to install? What are IOS or .wad's anyways?

Everything involved in modding a wii seems really simple after a few google searches, I just wish all the instructions actually worked. "Put .gct into sd:/wiiflow/codes and you're good to go" does NOT work for me, etc. le sadface

I just want to play melee with Gecko codes without needing a disc or USB drive.
 
Top Bottom