• 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

Kadano

Magical Express
Joined
Feb 26, 2009
Messages
2,160
Location
Vienna, Austria
How do you guys apply these tags? Do you modify memcard code adresses in Dolphin? Is it possible to leak the code into a hacked iso or an AR code somehow?

Sorry for being a coding noob.
 

ResidentWaffle

Smash Lord
Joined
Jan 22, 2006
Messages
1,125
Location
UCLA
I've been kinda lazy the past 2 days but here's what I've found.

0x804a0740 where names are stored when you are currently entering a new tag.
0x804a04f0 cursor/highlighted position( in the name entry menu and all other main menus).

EDIT: for kadano

Currently we can only codes that would make a specific tag for that specific code. If we figure how name entry menu works we can make it so we can freely enter in these characters in game. Also, AR codes are essentially logic for memory address modifiers like you would do manually in dolphin. So if we can do it in dolphin we can do it in AR.

EDIT 2: Might make a guide how to make gecko and AR codes if I have enough time.
 

hotdogturtle

Smash Master
Joined
Feb 15, 2007
Messages
3,503
If you made a basic guide for turning this information into a code, then people could use that list of characters to build their own code for a specific tag that they want to use. And they'd only have to do it once since you said that you can save them normally to your file.
 

ResidentWaffle

Smash Lord
Joined
Jan 22, 2006
Messages
1,125
Location
UCLA
I'll write a guide somewhat soon. Still trying to figure out how the name entry menu works, though.

Also, does anyone know how controller inputs are read( like what memory address an input goes to?) This would be very helpful for me trying to figure out how the name entry menu works and for future codes.
 

standardtoaster

Tubacabra
Joined
Nov 26, 2009
Messages
9,253
Location
Eau Claire, Wisconsin
from magus

**0xE90 Apart**
804BFE1E Analog Max Inputs?
804BFE2C Button Inputs
804BFE44 Analog Inputs
804BFE48 Analog Inputs
804BFE4C Float Control Stick X
804BFE50 Float Control Stick Y
804BFE54 Float C-Stick X
804BFE58 Float C-Stick Y
804BFE5C Float L
804BFE60 Float R
 

danny135

Smash Apprentice
Joined
Jul 25, 2012
Messages
150
Location
Puerto Rico
Here's a quick guide on how to make AR codes for tags. I won't explain some stuff (like hex counting) and won't be organized. Feel free to make a friendlier guide, anyone.

Template:
04XXXXXX AAAAAAAA
04YYYYYY BBBBBBBB

XXXXXX is the first address without the 80 or 81 that's at the beginning.
YYYYYY is the same except for the second address.

AAAAAAAA and BBBBBBBB are the number values of the in-game characters (letters/numbers/symbols) squished together.

04 is the AR code type for 32-bit write. This is used to overwrite values in the memory. I believe it's the same for Gecko/Ocarina/WiiRD so the same code should work for that.

Here's an example:

I want my first tag to be aaaabbbb.

I would find the memory address for the first tag (8045d850). Take out the first two numbers (In this case it's 80, but it can also be 81).
That leaves me with 45d850.
You add 04 where the 80 was, because that tells action replay to write to that address.
0445d850
But it's missing the second half, what action replay writes to that address.
0445d850 ????????
So the values for a and b are 41 and 42. That would make it 41 41 41 41 42 42 42 42.
Squish them all together and try to fit as much as I can into the eight spots in the first address:
I can only put in 41414141 (aaaa) into the first address.
0445d850 41414141
I put what's left in the second address (just add 4 to the first address (in hex) to get the second).
0445d854 42424242
It fits perfectly, 8 numbers in each address (that's the maximum for this).

0445d850 41414141
0445d854 42424242

This would change the first tag to aaaabbbb. (These are all two-number character values. 41 = lowercase a, 42 = lowercase b, You can find more values (2-number and 4-number) scattered in posts on the last pages)
Using two-number character values allows for more characters to be stored in the memory addresses.

If I only wanted it to be aaabbb, I would have

0445d850 41414142
0445d854 42420000

Whatever spots are left extra, you add a 0 there. Each half of a line has to have 8 numbers/letters. No more, no less.
Name tag memory addresses (without the 80) for 1.02:
First tag
45d850
45d854
Second
45d9f4
45d9f8
Third
45db98
45db9c
Fourth
45dd3c
45dd40

Name tag memory addresses for 1.00:
First:
45b888
45b88c

If you want to find more, you can use this hex calculation:
First address: 45d850 + (1a4 * x)
Second address: First Address + 4

'x' being the placement of the name tag minus one (First name tag would be 0, second would be 1, third would be 2, etc)
The second memory address is always the one after the first (+4).

If there's something missing or wrong, tell me. If you have any questions, ask.
 

hotdogturtle

Smash Master
Joined
Feb 15, 2007
Messages
3,503
That looks like a solid guide, from reading it over. Tomorrow I just have to figure out how to use codes and I'll give it a try (never done it before, but I should have more than enough tools to run codes with my Wii). I should be able to make a new tag just by following this.

By first tag, you mean that it edits the first tag on your name list to become the new name, right?
 

Kadano

Magical Express
Joined
Feb 26, 2009
Messages
2,160
Location
Vienna, Austria
All of these name tag codes only work on NTSC 1.2, by the way. I’d try to port them but I have no idea how this is done and how I can learn it in the first place.
 

BTmoney

a l l b e c o m e $
Joined
Jan 2, 2013
Messages
1,806
Location
Columbus OH / Chicago (Plainfield) IL
Nnnnnot gonna happen, haha. Pretty much everything left in this thread isn't something I could quickly "bang out" and so I don't know when I'll get around to it.
Just wanted to throw in my two cents, but thank you anyway. A lot of us, such as myself, have absolutely nothing to contribute to this although we still ask for things from you guys.
:]

If did you ever get around to doing any of the more demanding stuff, I recommend the first thing should be changing/improving the CPU's tech'ing AI for players' sake as that would be extremely helpful. Unless this already exists, I know it is requested often.
 

danny135

Smash Apprentice
Joined
Jul 25, 2012
Messages
150
Location
Puerto Rico
That looks like a solid guide, from reading it over. Tomorrow I just have to figure out how to use codes and I'll give it a try (never done it before, but I should have more than enough tools to run codes with my Wii). I should be able to make a new tag just by following this.

By first tag, you mean that it edits the first tag on your name list to become the new name, right?
That's what I did in the example. I put the memory addresses for more names and how you can find even more.
 
Joined
Oct 10, 2011
Messages
1,126
Location
Boise, ID
NNID
dansalvato
I know a lot of people want work done on CPU AI, but it will likely never happen. That's entering very complex territory and it's probably not worth deciphering so much simply for the sake of making minor improvements such as teching and DI, if that's even possible. It would be easier, probably, to write an AI from scratch by hooking into Dolphin (Massive wants to do this).
 

danny135

Smash Apprentice
Joined
Jul 25, 2012
Messages
150
Location
Puerto Rico
I found the name offsets for 1.00.
The first one is 8045b888
Just use the calculation in my other post to find the other memory addresses
 

Pac-Man Vs.

Smash Rookie
Joined
Feb 2, 2011
Messages
15
Name activators sound really really cool. Melee is filled with secrets. With this, we can add some more. It's like all those old-school games that had secret codes from the name entry screen. Plus, certain AR codes are better suited as one-time name activators than permanent button activators or always-on codes.

#Does not seem to work if no memory card is inserted and "don't save any data" is selected on startup
#If first name tag equals $$$$
cc45d850 81908190
cc45d854 81908190
#And rumble is set to off
cc45d858 00000500
#If in menus.
c8bda603 000000ff
#Then constantly write 999 coins to the "current amount of lottery coins" value
04C41699 08000000
0445C108 00002706
And I just guessed based on the code InternetExplorer wrote that the 01 should be an 04 to be part of an "if-then" statement. Don't know if that's true but it works. This cash code gives you 999 coins once you disable rumble - they run down like normal after you enable rumble for the name again. With rumble off (and only in menus?) your coins stay at 999.

edit: Would it be possible to integrate codes like this into main.dol? I assume so.

I think one of the cooler things to do would be port the trophy bringer code to this name unlock format. Apparently there's no DOL patch for getting the 3 unobtainable trophies. I can't get this to work as a name activation code and I don't think the button activator (second line) is causing it either. More information on adding AR codes as "then" parts of "if/then" statements would be helpful.
01C45686 08000000
8A46B108 00000010
0B123456 00000000
8245C390 00000003
0245C526 00008001
0245C560 00008001
0245C5BE 00008001
05123456 DEAD55B2
00000000 40000000
 

hotdogturtle

Smash Master
Joined
Feb 15, 2007
Messages
3,503
Crap, my disc and my ISO are both 1.01, and I'm not gonna download a whole new version just to fiddle around with this code for 5 minutes >_>

Any chance of someone finding the 1.1 offsets?
 

Pac-Man Vs.

Smash Rookie
Joined
Feb 2, 2011
Messages
15
Crap, my disc and my ISO are both 1.01, and I'm not gonna download a whole new version just to fiddle around with this code for 5 minutes >_>

Any chance of someone finding the 1.1 offsets?
Get a version patcher and join the 1.02 club. There are threads in this subsection for this very purpose.
 

Kou

Smash Apprentice
Joined
Nov 22, 2011
Messages
198
Location
Japan
NametagHackGuide.png

I made tables of all characters with Excel thanks to you guys.
 

Kou

Smash Apprentice
Joined
Nov 22, 2011
Messages
198
Location
Japan
NametagHackGuide.png
If someone finds the firstname offsets for 1.01, I'll update "CHEAT CODE" sheets.
 

Pac-Man Vs.

Smash Rookie
Joined
Feb 2, 2011
Messages
15
I hope these become available as DOL patches. I envision a "ready-made" ISO patch that newbies can apply to their Melee ISO for better stages or default values or whatever, and some of these names provide rudimentary cheat support for advanced or returning players. It would also help to have this if you delete your character data to make a "very hard" run in Adventure mode less difficult.

#Does not seem to work if no memory card is inserted and "don't save any data" is selected on startup
#If first name tag equals DOJO
cc45d850 8263826E
cc45d854 8269826E
#And rumble is set to off
cc45d858 00000500
#If in menus.
c8bda603 000000ff
#Then unlock all characters, stages, random stage select, sound test
04C4169A 08000000
0445BF28 FFFFFFFF
0445BF2C FFFFFFFF
 
Joined
Oct 10, 2011
Messages
1,126
Location
Boise, ID
NNID
dansalvato
I feel like this should be its own thread. It's useful for many people, and there is a lot of information that will eventually get lost here. Could somebody compile all the information into a new thread and continue this there?
 

hotdogturtle

Smash Master
Joined
Feb 15, 2007
Messages
3,503
Yeah, the only reason why I can't convert my 1.1 game to another version is because I've already modified it. But if any of you guys have 1.0/1.2 unmodified, you should be able to convert it to 1.1 to find the offsets.

Also, I want to say that these conditional nametag/rumble codes are really cool.
 

kiw1

Smash Apprentice
Joined
Apr 14, 2013
Messages
106
i wondered, can you change the inport for teammates taking stocks?

because thats one thing brawl did good.. not taking stocks with the start button
 

ResidentWaffle

Smash Lord
Joined
Jan 22, 2006
Messages
1,125
Location
UCLA
Well I found out more about the name entry menu. Specifically how name entry letters are visually loaded into the name entry screen. They are loaded from addresses that correspond to the letter boxes. The loading starts first for the top right box(which in English's case is J) and then goes down and to the left. I found that the address the loading starts from is 0x80bd6cb2 (although it seems there might be multiple start addresses) and then increments by 0x13 for the next box. This means that every 0x13 corresponds the next box down(so the value at 0x80bd6cc5 should contain t if set to english) and every 0x5f corresponds the next box to the left (so the letter I would be in 0x80bd6d11 because 0x13*5 = 0x5f).

I also found out that the values that each address holds are stored in the form of:

0x0b200a0f

Where yellow and green are constant values that mark the beginning and end of the value to load into the box. Red marks the value to be loaded into the box and from what I found out these are some of the corresponding values:

2009 = 9
200A = A (uppercase)
2023 = Z (uppercase)
2024 = a (lowercase)
203d = z (lowercase)
203e = Is a Japanese letter

20ec = !
20e3 is blank (maybe).

Note, that changing these values only makes a visual change. So when I tried to use this to make a lower case name tag it didn't work. The new boxes with lower case letters just gave me the original uppercase letters stored at that box. To let you see how this works I made an AR code to visually change the name entry menu:

Code:
$Visually switch all english letters in name entry to lower case.
#If A's position is equal to upper case A
0CBD7009 0B200A0F
#Then set it equal to lower case a
04BD7009 0B20240F
#If B's position is equal to upper case B
0CBD6FAA 0B200B0F
#Then set it equal to lower case b
04BD6FAA 0B20250F
#If C's position is equal to upper case C
0CBD6F4B 0B200C0F
#Then set it equal to lower case c
04BD6F4B 0B20260F
#If D's position is equal to upper case D
0CBD6EEC 0B200D0F
#Then set it equal to lower case d
04BD6EEC 0B20270F
#If E's position is equal to upper case E
0CBD6E8D 0B200E0F
#Then set it equal to lower case e
04BD6E8D 0B20280F
#If F's position is equal to upper case F
0CBD6E2E 0B200F0F
#Then set it equal to lower case f
04BD6E2E 0B20290F
#If G's position is equal to upper case G
0CBD6DCF 0B20100F
#Then set it equal to lower case g
04BD6DCF 0B202A0F
#If H's position is equal to upper case H
0CBD6D70 0B20110F
#Then set it equal to lower case h
04BD6D70 0B202B0F
#If I's position is equal to upper case I
0CBD6D11 0B20120F
#Then set it equal to lower case i
04BD6D11 0B202C0F
#If J's position is equal to upper case J
0CBD6CB2 0B20130F
#Then set it equal to lower case j
04BD6CB2 0B202D0F
#If K's position is equal to upper case K
0CBD701C 0B20140F
#Then set it equal to lower case k
04BD701C 0B202E0F
#If L's position is equal to upper case L
0CBD6FBD 0B20150F
#Then set it equal to lower case l
04BD6FBD 0B202F0F
#If m's position is equal to upper case M
0CBD6F5E 0B20160F
#Then set it equal to lower case m
04BD6F5E 0B20300F
#If n's position is equal to upper case N
0CBD6EFF 0B20170F
#Then set it equal to lower case n
04BD6EFF 0B20310F
#If O's position is equal to upper case O
0CBD6EA0 0B20180F
#Then set it equal to lower case o
04BD6EA0 0B20320F
#If P's position is equal to upper case P
0CBD6E41 0B20190F
#Then set it equal to lower case p
04BD6E41 0B20330F
#If Q's position is equal to upper case Q
0CBD6DE2 0B201A0F
#Then set it equal to lower case q
04BD6DE2 0B20340F
#If R's position is equal to upper case R
0CBD6D83 0B201B0F
#Then set it equal to lower case r
04BD6D83 0B20350F
#If S's position is equal to upper case S
0CBD6D24 0B201C0F
#Then set it equal to lower case s
04BD6D24 0B20360F
#If T's position is equal to upper case T
0CBD6CC5 0B201D0F
#Then set it equal to lower case t
04BD6CC5 0B20370F
#If U's position is equal to upper case U
0CBD702F 0B201E0F
#Then set it equal to lower case u
04BD702F 0B20380F
#If V's position is equal to upper case V
0CBD6FD0 0B201F0F
#Then set it equal to lower case v
04BD6FD0 0B20390F
#If W's position is equal to upper case W
0CBD6F71 0B20200F
#Then set it equal to lower case w
04BD6F71 0B203A0F
#If X's position is equal to upper case X
0CBD6F12 0B200210F
#Then set it equal to lower case x
04BD6F12 0B203B0F
#If Y's position is equal to upper case Y
0CBD6EB3 0B20220F
#Then set it equal to lower case y
04BD6EB3 0B203C0F
#If Z's position is equal to upper case Z
0CBD6E54 0B20230F
#Then set it equal to lower case z
04BD6E54 0B203D0F
Which gives you this:




As you can see above selecting lower case a still gives me upper case A but I think if I find out more about how these addresses are loaded from I can use it to make a real working lower case name entry menu.
 
D

Deleted member

Guest
Figured I'd ask here, would anyone who is capable and that has free time mind making codes for these two things if possible?

1. Disable Analog Stick Up Jumping
2. Disable Z Button Shield (so it only does grab and nothing else)

Would greatly appreciate it.
 
Joined
Oct 10, 2011
Messages
1,126
Location
Boise, ID
NNID
dansalvato
Disabling Z shield is not really possible. Z is coded as a hotkey for "R + A" which is why you get a shield when grab is not an option.
 

Kou

Smash Apprentice
Joined
Nov 22, 2011
Messages
198
Location
Japan
Can you make a cheat of modifying stocks?
I want to use this as a handicap.

for example...(these are v1.00 and for Player 1)
・0445114C 00000300
→Always displayed 3 stock. never decrease if P1 died

0445114C 00000100
→If P1 died, the game will finish but the stcok display won't disappear at that time)

・0445114C 00000000
・0445114C 00000001
→Stock isn't displayed and the game will finish immediately.


I want a cheat which can modify the particular player's stocks.
If the rule is 4 stocks battle,

2 stocks(Player 1) vs 4 stocks(Player 2)

like this.
 

zelazon

Smash Apprentice
Joined
May 12, 2006
Messages
87
I was wondering if someone could make an ar code for the ability to l-cancel everything (like in the Melee Impossible video)... I've search around for month, but found nothing about it.
 

mooki

Smash Apprentice
Joined
Apr 13, 2013
Messages
157
Location
Cali
Is there any way to hex edit a dol file to include this?

Flash on successful L-cancel (v1.02) [InternetExplorer]:
0408D6A0 48519A60
045A7100 C00600E8
045A7104 39E000D4
045A7108 99E30564
045A710C 4BAE6598
040C0148 484E6FC8
045A7110 387F0488
045A7114 89FE0564
045A7118 2C0F00D4
045A711C 41820008
045A7120 4BB1902C
045A7124 39E00091
045A7128 99FE0564
045A712C 3DE0C200
045A7130 91FE0518
045A7134 91FE051C
045A7138 91FE0520
045A713C 91FE0524
045A7140 3DE0C280
045A7144 91FE0534
045A7148 4BB19008
 

Stratocaster

Smash Ace
Joined
Oct 6, 2007
Messages
672
Location
Knoxville, TN
Is it possible to change the reset all damage code to instead set damage to a number? (I know damage isn't actually stored in the game as an integer like its displayed, but I don't know if that if that matters) And assign it to different buttons too? I'd like to be able to set damage to different numbers at the press of a button. I'm thinking all 8 d-pad directions could be assigned, or damage could be scrolled through using the d-pad side-to-side.
 
Joined
Oct 10, 2011
Messages
1,126
Location
Boise, ID
NNID
dansalvato
That's possible but would require a lot of re-coding. Recently I haven't been coding for Melee so I don't see myself getting around to that anytime soon, sorry. =/
 
Joined
Oct 10, 2011
Messages
1,126
Location
Boise, ID
NNID
dansalvato
Oops, I accidentally wrote the code you were asking for, lol. Check the OP for it, called "D-pad controls damage". It only works with Gecko, though, because I was too lazy to format it for AR, haha.

Now, you can use d-pad up/down to change the damage by 10 and d-pad left/right to change the damage by 1.
 

Stratocaster

Smash Ace
Joined
Oct 6, 2007
Messages
672
Location
Knoxville, TN
Hey thank you so much! I really appreciate you doing that for me. However, while the code works, its glitch-y, it effects the damage moves do. I can't figure out exactly how it works, but generally speaking using the damage increase buttons make moves do more damage, while the damage decrease buttons can make your moves weak or even healing. I have seen the knee HEAL the opponent while uair has done over 200 damage. So that's a bit of an issue. The effect isn't consistent, but seems to increase as the battle goes on.

Btw, what I'm doing with the code is improving my training macros. I've used dolphin and autohotkey scripts to practice things such as combos and tech chasing (I can make the computer do random teching and DI this way), but I have to have a save state for every level of damage and scenario. If I could set the damage via commands like this, then it would immensely help alleviate the limitations of having only 8 save-states per emulator.

Anyway, if you can figure out how to correct the issue that'd be AWESOME, but I understand if you can't/don't want to spend the time. Thanks.
 
Joined
Oct 10, 2011
Messages
1,126
Location
Boise, ID
NNID
dansalvato
Ah, I know why this happens. I'm changing both the damage display and the actual damage value, and the operations I'm using to change the actual damage value is probably off. This means that the actual damage becomes off-sync with the displayed damage, giving the appearance of moves doing a ton of damage or even healing. In reality, the damage display is just not indicative of the actual damage the player has. I'll take a second look at my code and see if I can find what's going wrong.
 

mooki

Smash Apprentice
Joined
Apr 13, 2013
Messages
157
Location
Cali
Is there any way to hex edit a dol file to include this?

Flash on successful L-cancel (v1.02) [InternetExplorer]:
0408D6A0 48519A60
045A7100 C00600E8
045A7104 39E000D4
045A7108 99E30564
045A710C 4BAE6598
040C0148 484E6FC8
045A7110 387F0488
045A7114 89FE0564
045A7118 2C0F00D4
045A711C 41820008
045A7120 4BB1902C
045A7124 39E00091
045A7128 99FE0564
045A712C 3DE0C200
045A7130 91FE0518
045A7134 91FE051C
045A7138 91FE0520
045A713C 91FE0524
045A7140 3DE0C280
045A7144 91FE0534
045A7148 4BB19008
Is this a very difficult task?
 
Top Bottom