Achilles1515
Smash Master
Planning on it if everything checks out!Cool! I'm not at home ATM, but I'll check this out later. Are you planning to include this as an alt in 20XX?
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!
Planning on it if everything checks out!Cool! I'm not at home ATM, but I'll check this out later. Are you planning to include this as an alt in 20XX?
I briefly looked into this a little bit ago. I remember following the action state engine of how you're immediately put into tumble animation if you get 0 hp when hit upward....but I forget where I went with this. I think I just got distracted and stopped working on it.Is there a gecko code out there to make players lose a stock or "die" when their stamina reaches 0 HP? Just like in Project M's 3.5 stamina
Metal Texture as an Alternate Costume
See this post first.
Yesterday, I decided to look into the knockback equation and found out that if a character is metal, 30 is automatically subtracted from their knockback (which then lowers hitstun as well). This check is performed in the same function that looks to see if a character is crouching (crouch canceling) or charging a smash attack which increases knockback.
So I wrote a code to disable the metal check, and I think I now have metal as a viable alternate costume! I need you guys to test and play around with this to make sure, though.
[COLLAPSE="P1 is Metal"]
[/COLLAPSE]Code:0408d9f8 38000000 C216CE0C 00000004 3DE08045 81EF3130 2C0F0000 4182000C 3A000001 9A0F2283 38630001 00000000
[COLLAPSE="P2 is Metal"]
[/COLLAPSE]Code:0408d9f8 38000000 C216CE0C 00000004 3DE08045 81EF3FC0 2C0F0000 4182000C 3A000001 9A0F2283 38630001 00000000
Note: These are just proof of concept codes.
@NME @Goatlink @ DRGN
Merry Christmas, Melee Workshop Elves!
Do you have cheats enabled? CONFIG (at the top) --> enable cheats.I tried these but couldn't get them to produce an effect. I assume I'm applying them incorrectly. I tried to apply them using Dolphin's GameSettings .ini, like so:
+$P1 is Metal
0408d9f8 38000000
C216CE0C 00000004
3DE08045 81EF3130
2C0F0000 4182000C
3A000001 9A0F2283
38630001 00000000
+$P2 is Metal
0408d9f8 38000000
C216CE0C 00000004
3DE08045 81EF3FC0
2C0F0000 4182000C
3A000001 9A0F2283
38630001 00000000
[empty line]
I tried turning them on/off during a match, as well as turning them on before the match starts.
Should I be adding these to the dol instead? If so, where?
Also, I don't know if you've thought about the sound effects, but if you can I think it would be cool to leave them in. We could probably even add the "KA-CHING" sound effect from picking up a metal box to the start of the match if a player is using this, haha. That would be a cool little detail.
Oh, yeah, that would be cool for the sound effect.Do you have cheats enabled? CONFIG (at the top) --> enable cheats.
I just add codes like this:
When I load up Dolphin, my SSBM banner shows on the right side. Right click that and hit properties. Then hit gecko codes at the top. Then hit "edit" or something like that at the bottom and it will open up a txt file with your codes. Then add them like you did.
I want to add that sound effect to when you select the costume on the CSS!
Just automatically when you're in a match. Are you sure you're inputting it as a gecko code and not an action replay code?Oh, yeah, that would be cool for the sound effect.
And yeah, I have cheats enabled. I'm able to apply other codes. I was starting to think there was something about the code that would mean they could only be applied a particular way.
At what point do you activate them?
Link/Y. Link - Enable Boomerang Hookshot Cancel (1.02) [Achilles]
043C807C 00000000
043C809C 00000000
043D1204 00000000
043D1224 00000000
Can I have the airdash version instead?
Boomerang Catch Cancels Everything
040EC02C 38600000
What determines whether the code is executed as Gecko vs. Action Replay? The place I'm enabling it is in the "Gecko Codes" tab of the Cheats manager. Also, there's nothing in the AR Codes tab.Just automatically when you're in a match. Are you sure you're inputting it as a gecko code and not an action replay code?
Edit: Maybe I don't know what you mean by "activating" them. Just enable the codes and then boot the game and start a match.
Gave this a shot real quick. It works, but also results in a strange state while he's launching his hookshot before it connects (the state for falling into the camera, lol):Boomerang Hookshot Cancel
So yesterday, I had separate instances of 1.00 & 1.02 playing at one time on my computer and meticulously stepped through the “catching boomerang” function for each at the same time. Things are structured very similarly between the two versions, but some of the “Character State IDs” are different between the versions and the games read these values a little differently as well.
Quick synopsis of why boomerang hookshot canceling exists:
(Everything below applies to Young Link as well. The same code functions are used for the two characters.)
Link is given Character State IDs for nearly every action he is in. When he is standing on the ground doing nothing, this ID value is 0x0. When he is grabbing a character, it is 0x50…and there are a bunch more.
Link has a “boomerang catch” action state, but this obviously doesn’t always get applied to the character when the boomerang returns to his body. How does the game know when to execute the boomerang catch action state and when to not? By looking at the Character State ID!
The function that does the checking basically says “If the character state ID = 0, then go into boomerang catch action state, else don’t change current action state.”
For example, when you are standing on the ground and catch the boomerang (character state id = 0, mentioned earlier), Link goes into his boomerang catch action state.
The main differences between the versions lie in this fact.
(1.02)
Aerial Hookshot State ID – 0x20
Hanging from Stage Hookshot State ID – 0xC0
(1.00)
Aerial Hookshot State ID – 0x0
Hanging from Stage Hookshot State ID – 0x0
So for whatever reason in version 1.00, action states with the hookshot were not given specific state IDs. This defaults them to 0 which still initializes the action state change when a boomerang is caught. I don’t exactly know if this was done on purpose or a programming error/oversight, but I didn’t delve into the 1.00 code any further at this point because I knew exactly what I needed to do now, to make the cancel happen in 1.02 – change those hookshot State IDs back to 0.
So then I followed code back further to see where these values were being loaded from in the game’s memory, and then wrote the following code that changes these ID values to 0 instead of their defaults.
---------------------------------------------------------------------------Code:Link/Y. Link - Enable Boomerang Hookshot Cancel (1.02) [Achilles] 043C8078 00000000 043C809C 00000000 043D1200 00000000 043D1224 00000000
I believe this code perfectly adds the hookshot cancel back in. If anyone wants to test this, that would be great.
Don’t use the Cheats Manager for Gecko codes. Idk how to use it but it’s different and stupid.What determines whether the code is executed as Gecko vs. Action Replay? The place I'm enabling it is in the "Gecko Codes" tab of the Cheats manager. Also, there's nothing in the AR Codes tab.
When I say activate I mean opening the Cheats Manager, going to the Gecko Codes tab, and selecting the checkbox to toggle the code to on/enabled there, like this:
View attachment 34248
I tried doing that during and before a match, and also before booting the game. I also just now tried Classic Mode, and for some reason it worked for P2 in that. They didn't appear to be affected more by gravity. Knockback also I think worked normally, but it was kind of hard to tell since knockback is adjusted differently in Classic Mode anyway and I don't play it a lot. I'd experiment more with taking the code apart myself to see what I could find, but I haven't really had more than 15 minutes at home for this these last few days. Have you or others gotten it to work?
Gave this a shot real quick. It works, but also results in a strange state while he's launching his hookshot before it connects (the state for falling into the camera, lol):
View attachment 34249
So apparently 0x0 strangely doesn't equate to the "idle" action state in v1.02.
Without the code activated, I noted his state displayed as 312 (where it says DEADUPFALLHITCAMERA above) for before connecting to a surface, and 313 for when the hookshot has connected. Don't know what action state IDs those equate to though.
Seems like the code should still work though if you find the right state to set him to, which I imagine should be what is compared against in the "If the character state ID = 0" check. Are you sure it still compares against 0 in 1.02 and not something else? (Although I admit it would make sense for it to be 0.) Weird. Unless they made it so that he can't be in that state while shooting the hookshot, so it defaults to something else.
Np. And that's interesting; I'll try that other method later.Don’t use the Cheats Manager for Gecko codes. Idk how to use it but it’s different and stupid.
-Right click on the SSBM game banner and hit “Properties”.
-Then hit the “Gecko Codes” tab at the top. You’ll see all your codes (which are located in the GALE01.ini file, not GameSettings or whatever).
-To add new codes, hit “Edit Config” at the bottom left and it automatically brings up the GALE01.ini file. Add codes here. Then save and close out of the text file and make sure they are checked. Then start game.
View attachment 34268
If you want a Gecko code to run, you must enable codes and have the specific codes on before you start the game up with Dolphin. You can’t completely turn on/off the Gecko codehandler midgame.
And thanks for testing the boomerang cancel code! I'll try and look into that later today.
They're just test stuff for the debug menu from Dan S.Where are those menu codes (Submenus Resemble Normal Menus, Fancy Menu Transitions) from and what do they do?
I don't think it works for all types of codes (probably not for ASM injection codes) which is what you've been experiencing.Np. And that's interesting; I'll try that other method later.
I've been able to successfully use the Cheats Manager for other codes. And not only that, but I've been using it to toggle things on/off mid-game.
I'm literally so stupid sometimes. I just wrote down the wrong addresses....it's fixed in the previous post now. Try again please!What determines whether the code is executed as Gecko vs. Action Replay? The place I'm enabling it is in the "Gecko Codes" tab of the Cheats manager. Also, there's nothing in the AR Codes tab.
When I say activate I mean opening the Cheats Manager, going to the Gecko Codes tab, and selecting the checkbox to toggle the code to on/enabled there, like this:
View attachment 34248
I tried doing that during and before a match, and also before booting the game. I also just now tried Classic Mode, and for some reason it worked for P2 in that. They didn't appear to be affected more by gravity. Knockback also I think worked normally, but it was kind of hard to tell since knockback is adjusted differently in Classic Mode anyway and I don't play it a lot. I'd experiment more with taking the code apart myself to see what I could find, but I haven't really had more than 15 minutes at home for this these last few days. Have you or others gotten it to work?
Gave this a shot real quick. It works, but also results in a strange state while he's launching his hookshot before it connects (the state for falling into the camera, lol):
View attachment 34249
So apparently 0x0 strangely doesn't equate to the "idle" action state in v1.02.
Without the code activated, I noted his state displayed as 312 (where it says DEADUPFALLHITCAMERA above) for before connecting to a surface, and 313 for when the hookshot has connected. Don't know what action state IDs those equate to though.
Seems like the code should still work though if you find the right state to set him to, which I imagine should be what is compared against in the "If the character state ID = 0" check. Are you sure it still compares against 0 in 1.02 and not something else? (Although I admit it would make sense for it to be 0.) Weird. Unless they made it so that he can't be in that state while shooting the hookshot, so it defaults to something else.
99% sure I did an ASM injection code that way too. I haven't played with the method you mentioned yet, but I'll try it later.They're just test stuff for the debug menu from Dan S.
I don't think it works for all types of codes (probably not for ASM injection codes) which is what you've been experiencing.
Hehe, np. I just now tried this real quick, and it works! Tested with both Link and Young Link. I was getting caught on Dreamland's right edge with Young Link, but I'm pretty sure that's just the stage and has nothing to do with the code.I'm literally so stupid sometimes. I just wrote down the wrong addresses....it's fixed in the previous post now. Try again please!
I have been looking for a way to make fountain of dreams lagless for over a month! This code is really helpful!Code:Lagless FoD [Dan Salvato] 041cbbd4 60000000 041cbefc 48000028 041cbf54 60000000 041cbf84 60000000
Note that I haven't yet tested this on a Gamecube, but there's no reason it should lag at this point. I've removed background assets, the pool reflection, and all of the stars (each star was its own point in 3D space).
Also, thanks to Zauron for some useful notes on initializing stages, which I used as a starting point.
How does one do this part? Obviously one can't step through all the lines leading up to something happening, so how do you find such specific lines?So then I followed code back further to see where these values were being loaded from in the game’s memory...
Every function gets initially branched into by a "branch link" (bl 0x___). Once the game branches into a new function and is done with that new function, it needs to get back to the original function that it was in. That is what a "branch link return" (blr) is for. You see it at the end of every game function.How does one do this part? Obviously one can't step through all the lines leading up to something happening, so how do you find such specific lines?
Do you just think of a portion of ASM that must be in the function, write that, convert it to WiiRd, and then search for that in memory?
I knew about the branching. But what if I don't know where that function is? For example, if I'm looking at a value in RAM, and want to find the line of code that put it there.Every function gets initially branched into by a "branch link" (bl 0x___). Once the game branches into a new function and is done with that new function, it needs to get back to the original function that it was in. That is what a "branch link return" (blr) is for. You see it at the end of every game function.
So if you were looking at a specific function and, say, register 4 had the value of interest in it, you may be trying to find where the game loads that value from. So to do that, you would look at the previous lines of code in the function to see if one of them loaded a value from somewhere into r4. But what if r4 hasn't been touched in that function you are looking at? Well then you need to go back to the previous function and look at the code lines prior to the branch link into the function that you are currently looking at. The easiest way to do this is to go to the blr at the bottom of the function you are in and set a breakpoint. Resume the game and it will run through the rest of the function you are currently in and break at the end. Then just step once to blr back into the function from where it came.
Use a memory write breakpoint on that address.I knew about the branching. But what if I don't know where that function is? For example, if I'm looking at a value in RAM, and want to find the line of code that put it there.
I must still be missing something. Are there different ways to set breakpoints (like for write vs. read)?Use a memory write breakpoint on that address.
I think you need a debugfast version for memory breakpoints/checkpoints. You can set them for when the memory is written or read. Or both.I must still be missing something. Are there different ways to set breakpoints (like for write vs. read)?
I have several breakpoints set as follows:
View attachment 34761
The actual write that I was trying to track were 8 bits in RAM at 80480853. After a few attempts I tried adding several other breakpoints because I started thinking maybe it's only looking for writes at certain intervals (like a block of 32).
I see the value 40000401 in RAM at 8048050. It's loaded there when loading the CSS (prior to that, 8048050 is 00000000). However, with the above breakpoints on, the game doesn't stop at any point. Any ideas?
Kadano I'm not sure on the formatting. Dodes/GALE01.txt, D:games/GALE01/game.iso@ T trasheater64
Change the ID code for the different .isos. For example GALE10, GALE11, GALE12 or whatever you want. Then, add the codes for each one as you want them.
http://smashboards.com/threads/how-to-changing-a-gamecube-games-id-and-name-and-more.365107/Kadano I'm not sure on the formatting. Dodes/GALE01.txt, D:games/GALE01/game.iso
I'm using Dios Mios Lite if that is something you gotta know. gimme a quick run down pls. <3
just edited ISO.hdr, imported it, and now its saying the image isn't a gamecube iso. was searching for isos.iuhudc
it still needs to be game.isojust edited ISO.hdr, imported it, and now its saying the image isn't a gamecube iso. was searching for isos.
codes/XXXEXX.txt
games/XXXEX/XXXEXX.iso
??
not certain on the formatting. Sorry for posting all this **** here oops. also new account cant give you file extentions
You are AMAZING Achilles!Disable Every Special Message