Doq
Smash Lord
I got this.If someone gave me the address for his sword swing color then I could technically do it...but I'm not going to do this on my own because Roy is not my boy.
Do you have your code notes for that one? I might need it.
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!
I got this.If someone gave me the address for his sword swing color then I could technically do it...but I'm not going to do this on my own because Roy is not my boy.
And how would I go about doing so in Dolphin? Would I need a special version or just using the 4.0.1 version?[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.
Unfortunately, I have not heard of those codes I wrote working for GeckoOS. I would look into booting the ISO from an SD card.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.
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.And how would I go about doing so in Dolphin? Would I need a special version or just using the 4.0.1 version?
x86? I don't use 64 bits.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
x86 is 32bitx86? I don't use 64 bits.
x86 is 32bit
Oh sorry, I see. Idk...google around. I know you can make your own by compiling Dolphin yourself but I can't help you with this because I've never done it.I know. I'm wondering if there's a 32-bit version, as I don't have/use 64 bits.
Did you get a 32bit version? If so, can you post the link?I know. I'm wondering if there's a 32-bit version, as I don't have/use/prefer 64 bits.
Ne'mind. I found my own. To the Gaming Computer!
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.You'll need a special DebugFast version of Dolphin for memory read/write breakpoints.
Nah. Normal versions work too using the -d switch on the command line.Did you get a 32bit version? If so, can you post the link?
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.@ 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?
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.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
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.Nah. Normal versions work too using the -d switch on the command line.
"C:\Users\Game Club 1\Desktop\kirby's ssbm\dolphin402\dolphin.exe" -d
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.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.
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
Boot to Character Select Screen (v1.02) [InternetExplorer]
041BFA20 3C600202
041A4300 90640000
This is great, but my friend actually just overwrote my memory card LOL. anyway to load the cheats at character select?I wrote a proper "boot to character select screen" code that doesn't skip the memory card check.
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.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.
(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
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'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.
I'm actually writing a code to do this (and more) at the moment.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
It has been added. Thanks for looking into this. I'll test it on my wii next time I get the chance.I wrote a proper "boot to character select screen" code that doesn't skip the memory card check.
@ Achilles1515 Please add this to the OP at your convenience, thank you.Code:Boot to Character Select Screen (v1.02) [InternetExplorer] 041BFA20 3C600202 041A4300 90640000
(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)
I noted about freezing the timer in the above post.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)
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 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?
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.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?
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 thisDelete 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.
It's in the pack.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.