• 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

omegagmaster

Smash Cadet
Joined
Dec 20, 2015
Messages
44
There’s a way to specify a few options for memory checks in the breakpoints tab by clicking the +MC button and adjusting settings from the GUI that appears. It looks like this on my setup:

View attachment 102029
Yeah... that's my exact problem. None of those buttons appear on my setup. That means I cannot setup write only breakpoints. (I tried compiling Dolphin on Mac OS X by combining the debugfast enable command with some instructions I found for compiling Dolphin with ffmpeg support. I can set memory checks, but I can only set read and write. I'm using 3.5 for this) As for the address, it's something I found relating to P1 Kirby's copy ability. It seems to change into a pointer when Kirby swallows a player, and I also found another address that changes into a pointer as well when Kirby gets a copy ability. I currently don't have my notes at hand but it's around my first address. (One might control power, one might control hat, I don't know since I haven't tinkered with it much yet.) What I really need help with right now is compiling Dolphin on Mac OS X so I can use the buttons in the Breakpoints tab and set write only memory checks.
 

Punkline

Dr. Frankenstack
Premium
Joined
May 15, 2015
Messages
423
Yeah... that's my exact problem. None of those buttons appear on my setup. That means I cannot setup write only breakpoints. (I tried compiling Dolphin on Mac OS X by combining the debugfast enable command with some instructions I found for compiling Dolphin with ffmpeg support. I can set memory checks, but I can only set read and write. I'm using 3.5 for this) As for the address, it's something I found relating to P1 Kirby's copy ability. It seems to change into a pointer when Kirby swallows a player, and I also found another address that changes into a pointer as well when Kirby gets a copy ability. I currently don't have my notes at hand but it's around my first address. (One might control power, one might control hat, I don't know since I haven't tinkered with it much yet.) What I really need help with right now is compiling Dolphin on Mac OS X so I can use the buttons in the Breakpoints tab and set write only memory checks.
Oh, I see. Wish I could help you there, but I'm afraid I wouldn't know where to begin with that sort of thing. Maybe somebody more knowledgeable here can help you compile what you need?

One thing you could maybe try; I just checked on a non-deubgFast build of dolphin 3.x that I've got laying around and it appears to have this same system in place for saving breakpoint information in Debugger.ini from the config directory:

memCheckINI.png

The "r" and "w" flags denote read and write options. I think in order to make use of this though, you're going to need the save/load buttons in the breakpoint panel... So if you have NONE of the breakpoint panel buttons then this probably isn't very helpful...

Sorry I couldn't be of more assistance! I hope you can get this sorted out.
 

flieskiller

Smash Journeyman
Joined
Jan 3, 2013
Messages
426
X+Y disable start: The hex 1CE50008 is wrong, should be 1CE5000C

edit: oh wait, it isn't even in the main post, I assumed it was... Here's the full code:

x+y disable start [Dan Salvato]
C2376BB4 00000009
38A00000 38C1002C
1CE5000C 7D07302E
55090109 4182001C
5509014B 41820014
3D20EFFF 6129FFFF
7D084838 7D07312E
38A50001 2C050003
4081FFD0 8081002C
80010030 00000000
 
Last edited:

SinsOfApathy

Smash Journeyman
Joined
Feb 24, 2015
Messages
474
NNID
Psion312

omegagmaster

Smash Cadet
Joined
Dec 20, 2015
Messages
44
That's because you compiled it incorrectly. The DebugFast thread is incorrect, as the CMake option is -DDEBUGFAST https://github.com/dolphin-emu/dolphin/blob/master/CMakeLists.txt#L354

Likewise, Mem breakpoints are disabled if ENABLE_MEM_CHECK isn't defined. Which is set at https://github.com/dolphin-emu/dolp...a97967443275/Source/Core/Core/HW/Memmap.h#L14
pounds head on desk

I have a question regarding this though. Using CMake creates a broken application, but according to the instructions I saw (https://bugs.dolphin-emu.org/issues/7933) you run the command "make -j5". Is this correct? (What's annoying is the process freezes so I have to restart it, fortunately it resumes instead of restart)
 

SinsOfApathy

Smash Journeyman
Joined
Feb 24, 2015
Messages
474
NNID
Psion312

omegagmaster

Smash Cadet
Joined
Dec 20, 2015
Messages
44
Thanks so much. I'm compiling Dolphin right now. I'll edit this post with a success or failure.

Edit: It still didn't work. I'm running Dolphin 3.5 if it helps. Does DDEBUGFAST need to be used in later versions or ? This error appears after the CMake:

CMake Warning:

Manually-specified variables were not used by the project:


DEBUGFAST
 
Last edited:

SinsOfApathy

Smash Journeyman
Joined
Feb 24, 2015
Messages
474
NNID
Psion312
Thanks so much. I'm compiling Dolphin right now. I'll edit this post with a success or failure.

Edit: It still didn't work. I'm running Dolphin 3.5 if it helps. Does DDEBUGFAST need to be used in later versions or ? This error appears after the CMake:

CMake Warning:

Manually-specified variables were not used by the project:


DEBUGFAST
Compile the latest version of Dolphin. Literally no reason to use 3.5. As of 4.0+ the variable was DEBUGFAST and 3.5 was pre-Github days.

Likewise, -DENCODE_FRAMEDUMPS=OFF disables the need for libav, which is why you were replacing it with FFMPEG.
 

omegagmaster

Smash Cadet
Joined
Dec 20, 2015
Messages
44
The latest dev builds are AWFUL. They can't detect any sort of input other than mouse, and it's bad. I'll go ahead and compile 4.0-8137, the trusty version I use for emulation since the keyboard controls WORK.
 

SinsOfApathy

Smash Journeyman
Joined
Feb 24, 2015
Messages
474
NNID
Psion312
The latest dev builds are AWFUL. They can't detect any sort of input other than mouse, and it's bad. I'll go ahead and compile 4.0-8137, the trusty version I use for emulation since the keyboard controls WORK.
Uh, sounds like your SDL dependency is ****ed or something. Dolphin literally just relies on that for input handling, unless you use the Wii U GC Adapter. I use an Xbox 360 controller, Wii U GC Adapter, and Mayflash adapter on Windows as well as Linux, and they work just fine.
 

omegagmaster

Smash Cadet
Joined
Dec 20, 2015
Messages
44
I tried compiling Dolphin 4.0-8137 since the controls work there. Anyways the game crashes when I set a memory check. ????????? The terminal output isn't much help either so what should I do? Also, I have a question. Will "ENABLE_MEM_CHECK" only allow memory checks? Because if so, that's perfectly fine. My goal is to have buttons on the Breakpoint tab like so:

http://smashboards.com/attachments/memcheckgui-png.102029/

No matter what I do I don't get any of those options. It's just a blank tab with a draggable bar like this:
Screen Shot 2016-03-31 at 9.11.37 PM.png
 

Savestate

Smash Cadet
Joined
Apr 14, 2015
Messages
38
Location
Greensboro, NC
Hello guys, I'm finally doing ASM again after a bit of a break from this stuff.

I've been working on a new Melee Mini-game called "CPU Takeover". If d-pad left is held while the map loads, you start off a match where all players on the field are Level 9 CPUs for 5 seconds. Once those 5 seconds are up (which are displayed in the milliseconds portion of the timer), you'll have control over your player for anywhere from 12-18 seconds (random, but not displayed). When those 12-18 seconds are up, the milliseconds timer will switch to a 10 second timer, where you have to root on your CPU as they battle it out with your opponent! By the time the 10 seconds is up, who knows what your CPU will of gotten you into!

However, in the code I've been working on for a few weeks, It seems to work just fine in dolphin, but as soon as I try running it on a console, it just refuses to work! (crashes at map load, whether or not you're holding down d-pad left) I can't tell if I'm missing something simple, or if there's an underlying complicated cpu-specific reason at hand... I've even tried running dolphin in interpreter mode and it works!

Does anyone here know what the problem could be? I'm at a complete loss...

Here's the ASM and resulting Gecko code.

Edit 9:27PM EST: Added SFX

Code:
# INJECTION POINT
# 0x802F3B04

_lr_backup:
subi sp, sp, 20
stw r3, 8(sp)
mflr r3
stw r3, 12(sp)
lwz r3, 8(sp)

_start:
b _main
nop

_backup:
subi sp, sp, 48
stw r0, 32(sp)
stw r1, 36(sp)
stw r2, 40(sp)
stw r3, 4(sp)
stw r4, 8(sp)
stw r5, 12(sp)
stw r6, 16(sp)
stw r7, 20(sp)
stw r8, 24(sp)
mfctr r3
stw r3, 28(sp)
lwz r3, 4(sp)
blr
nop

_restore:
lwz r3, 28(sp)
mtctr r3
lwz r0, 32(sp)
lwz r1, 36(sp)
lwz r2, 40(sp)
lwz r3, 4(sp)
lwz r4, 8(sp)
lwz r5, 12(sp)
lwz r6, 16(sp)
lwz r7, 20(sp)
lwz r8, 24(sp)
addi sp, sp, 48
blr
nop

_main:
bl _backup
nop

# Padding in the stack because I
# recall something about the edges
# of the stack not being safe when
# functions are called... so I'm
# just being safe!

# If the global frame timer is zero,
# then we will check the controllers
# to see if any of them have d-pad
# left pressed. If so, we'll
# activate CPU swap mode.

# We'll also init the activation timer
# in this startup code.

# GLOBAL FRAME TIMER -> 0x80479D60
# SECONDS LEFT IN GAME -> 0x8046B6C8
# CONTROLLER BLOCKS -> 0x804C1FAF
# RNG SEED -> 0x804D5F90
# --- free space in RAM (debug menu related)
# ACTIVATION TIMER -> 0x803FA4DC
# ENABLED FLAG -> 0x803FA4E0
# SFX PLAY PENDING -> 0x803FA4E4

# ::FUNCTIONS
# PLAY MENU BACK -> 0x8017435C
# PLAY MENU FORW -> 0x80174338

# IF (GFT == 0)
_if_gft_zero:
lis r3, 0x8047
ori r3, r3, 0x9D60
lwz r3, 0(r3)
cmplwi r3, 0
bne _end_if_gft_zero
nop
# if zero...
# set enabled flag to zero
lis r3, 0x803F
ori r3, r3, 0xA4E0
li r4, 0
stw r4, 0(r3)
# set sfx play pending to 0
lis r3, 0x803F
ori r3, r3, 0xA4E4
li r4, 0
stw r4, 0(r3)
# set activation timer to
# the current timer - 5
lis r3, 0x803F
ori r3, r3, 0xA4DC
lis r4, 0x8046
ori r4, r4, 0xB6C8
lwz r4, 0(r4)
subi r4, r4, 5
stw r4, 0(r3)
# now check all controllers
# for d-pad left ...
lis r3, 0x804C
ori r3, r3, 0x1FAF
li r4, 0
_controller_loop:
lbz r5, 0(r3)
addi r3, r3, 0x44
andi. r5, r5, 0x01
cmplwi r5, 0
beq _end_enabling
nop
lis r6, 0x803F
ori r6, r6, 0xA4E0
li r7, 1
stw r7, 0(r6)
_end_enabling:
addi r4, r4, 1
cmplwi r4, 4
blt _controller_loop
nop
_end_if_gft_zero:
# END IF (GFT == 0)

# IF NOT ENABLED, RETURN NORMAL MS VALUE
_if_not_enabled:
lis r3, 0x803F
ori r3, r3, 0xA4E0
lwz r3, 0(r3)
cmplwi r3, 0
bne _end_if_not_enabled
nop
# put the initial value of
# r5 into r24
b _default_ms_value
nop
_end_if_not_enabled:
# END IF NOT ENABLED

# IF ACTIVATION TIME == CURRENT TIME
_if_activation:
# Activation Timer
lis r3, 0x803F
ori r3, r3, 0xA4DC
lwz r5, 0(r3)
# Current time in seconds
lis r4, 0x8046
ori r4, r4, 0xB6C8
lwz r4, 0(r4)
cmplw r4, r5
bne _end_if_activation
nop
# RNG
lis r5, 0x804D
ori r5, r5, 0x5F90
lwz r5, 0(r5)
# modulus rng w/ 7
li r6, 7
divwu r7, r5, r6
mullw r7, r7, r6
subf r7, r7, r5
# current time - 10 - 12 - rng%7
subi r4, r4, 22
subf r4, r7, r4
stw r4, 0(r3)
# Play menu forward SFX
bl _backup
nop
lis r3, 0x8017
ori r3, r3, 0x4338
nop
mtctr r3
bctrl
nop
bl _restore
nop
# and set menu backwards SFX to pending!
lis r3, 0x803F
ori r3, r3, 0xA4E4
li r4, 1
stw r4, 0(r3)
_end_if_activation:
# END IF ACTIVATION TIME == CURRENT TIME

# STATIC BLOCKS : 0x80453080
# SEPERATION : 0xE90
# CPU|HMN TYPE OFFSET : 0x08
# PLAYER POINTERS : 0xB0
# --> CPU LEVEL : 0x1AFB

# LOOP THROUGH PLAYER BLOCKS
_player_block:
li r3, 0
lis r4, 0x8045
ori r4, r4, 0x3080
# begin loop...
_player_takeover_loop:
lwz r5, 0xB0(r4)
cmplwi r5, 0
beq _player_takeover_increment
nop
# IF ACTIVATION TIME + 10 >= CURRENT TIME
lis r6, 0x803F
ori r6, r6, 0xA4DC
lwz r6, 0(r6)
addi r6, r6, 10
lis r7, 0x8046
ori r7, r7, 0xB6C8
lwz r7, 0(r7)
cmplw r6, r7
blt _activation_else
nop
# CPU MODE
li r6, 9
stb r6, 0x1AFB(r5)
li r6, 1
stw r6, 0x08(r4)
# if an sfx play is pending, play it!
lis r6, 0x803F
ori r6, r6, 0xA4E4
lwz r7, 0(r6)
cmplwi r7, 1
bne _dont_play_sfx
nop
bl _backup
nop
lis r7, 0x8017
ori r7, r7, 0x435c
mtctr r7
bctrl
nop
bl _restore
nop
li r7, 0
stw r7, 0(r6)
_dont_play_sfx:
b _player_takeover_increment
nop
# ELSE (aka ACTIVATION TIME + 10 < CURRENT TIME)
_activation_else:
li r6, 0
stw r6, 0x08(r4)
# END IF ACTIVATION TIME + 10 >= CURRENT TIME
_player_takeover_increment:
addi r3, r3, 1
addi r4, r4, 0xE90
cmplwi r3, 4
ble _player_takeover_loop
nop
_end_player_block:
# END LOOPS THROUGH PLAYER BLOCKS

# CURRENT TIME / ACTIVATION TIME DIFFERENCE
# activation time
lis r3, 0x803F
ori r3, r3, 0xA4DC
lwz r3, 0(r3)
# current time
lis r4, 0x8046
ori r4, r4, 0xB6C8
lwz r4, 0(r4)
# r3 = current time - activation time
subf r3, r3, r4
cmpwi r3, 0
ble _default_ms_value
nop
cmpwi r3, 10
bgt _default_ms_value
nop
addi r24, r3, 0
b _end
nop

# SET MS TO DEFAULT VALUE
_default_ms_value:
lwz r24, 12(sp)

# Restore Registers...
_end:
bl _restore
nop

_lr_restore:
stw r3, 8(sp)
lwz r3, 12(sp)
mtlr r3
lwz r3, 8(sp)
addi sp, sp, 20

_exit:
Code:
CPU Swap [Savestate]
C22F3B04 0000005F
3821FFEC 90610008
7C6802A6 9061000C
80610008 4800007C
60000000 3821FFD0
90010020 90210024
90410028 90610004
90810008 90A1000C
90C10010 90E10014
91010018 7C6902A6
9061001C 80610004
4E800020 60000000
8061001C 7C6903A6
80010020 80210024
80410028 80610004
80810008 80A1000C
80C10010 80E10014
81010018 38210030
4E800020 60000000
4BFFFF8D 60000000
3C608047 60639D60
80630000 28030000
40820088 60000000
3C60803F 6063A4E0
38800000 90830000
3C60803F 6063A4E4
38800000 90830000
3C60803F 6063A4DC
3C808046 6084B6C8
80840000 3884FFFB
90830000 3C60804C
60631FAF 38800000
88A30000 38630044
70A50001 28050000
41820018 60000000
3CC0803F 60C6A4E0
38E00001 90E60000
38840001 28040004
4180FFD0 60000000
3C60803F 6063A4E0
80630000 28030000
40820010 60000000
48000188 60000000
3C60803F 6063A4DC
80A30000 3C808046
6084B6C8 80840000
7C042840 40820068
60000000 3CA0804D
60A55F90 80A50000
38C00007 7CE53396
7CE731D6 7CE72850
3884FFEA 7C872050
90830000 4BFFFE81
60000000 3C608017
60634338 60000000
7C6903A6 4E800421
60000000 4BFFFE9D
60000000 3C60803F
6063A4E4 38800001
90830000 38600000
3C808045 60843080
80A400B0 28050000
41820094 60000000
3CC0803F 60C6A4DC
80C60000 38C6000A
3CE08046 60E7B6C8
80E70000 7C063840
41800064 60000000
38C00009 98C51AFB
38C00001 90C40008
3CC0803F 60C6A4E4
80E60000 28070001
40820034 60000000
4BFFFDDD 60000000
3CE08017 60E7435C
7CE903A6 4E800421
60000000 4BFFFDFD
60000000 38E00000
90E60000 48000010
60000000 38C00000
90C40008 38630001
38840E90 28030004
4081FF58 60000000
3C60803F 6063A4DC
80630000 3C808046
6084B6C8 80840000
7C632050 2C030000
40810020 60000000
2C03000A 41810014
60000000 3B030000
4800000C 60000000
8301000C 4BFFFD85
60000000 90610008
8061000C 7C6803A6
80610008 38210014
60000000 00000000
 
Last edited:

Savestate

Smash Cadet
Joined
Apr 14, 2015
Messages
38
Location
Greensboro, NC
Ah, nevermind! I got it working!
Apparently the gecko code loader that nintendont uses is borked! I injected it into the .dol and it worked just fine.
 

jra64

Smash Journeyman
Joined
Jan 30, 2004
Messages
372
Does anyone know if it's possible to get a AR / Gecko / Cheat Code that makes it where the computer cannot throw me? I have a P1 invincible cheat I like to use when practicing combos but the computer can still throw me is it possible to get it where I'm completely invincible?

EDIT: If anyone has the answer to this I would really REALLY appreciate it because I have been looking for this code for years... I wanted to bump the thread cause it's been 5 days lol T_T.
 
Last edited:

jra64

Smash Journeyman
Joined
Jan 30, 2004
Messages
372
Okay it's been nearly a month so I think a bump for someone to see my post is okay?
 

flieskiller

Smash Journeyman
Joined
Jan 3, 2013
Messages
426
Does anyone know if it's possible to get a AR / Gecko / Cheat Code that makes it where the computer cannot throw me? I have a P1 invincible cheat I like to use when practicing combos but the computer can still throw me is it possible to get it where I'm completely invincible?

EDIT: If anyone has the answer to this I would really REALLY appreciate it because I have been looking for this code for years... I wanted to bump the thread cause it's been 5 days lol T_T.
Player 1 can't be grabbed (1.02) [flieskiller]
C206938C 00000005
8B9F006C 2C1C0000
40820014 3BA00001
881E222A 53A03E30
981E222A 8001004C
60000000 00000000

This code uses the same flag as Giga Bowser uses that prevents him from getting grabbed.
 
Last edited:

Absolome

Smash Cadet
Joined
Jan 3, 2014
Messages
68
Location
Asheville, NC
So on the 1.02 data google sheet I pulled '0x80432A28 = frame advance on/off -- 0x80000000 will turn it on, add 1 to the word to advance a frame forward'

I've been using this for a code I'm writing that activates frame advance mode after a timer hits a certain amount. I also wrote some ASM that should be taking the inputs of each player and checking them for Start or Z. If Start was pressed it'd unfreeze the game, if Z was pressed it'd add 1 to the value in 0x80432A28.

Problem is, when I change frame advance mode on (by setting 0x80432A28 to 0x80000000), a lot of the games code stops running every frame until I turn it back off. Adding 1 to the amount in the address definitely does advance forward a frame, but I can't do that based on inputs because none of the functions that update digital button data are running! I tried checking cheatsearch for ANYTHING in memory that changed when I pressed Z on the p1 controller, but there was nothing.

Any ideas how I could check for button data while in Frame Advance mode?
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
So on the 1.02 data google sheet I pulled '0x80432A28 = frame advance on/off -- 0x80000000 will turn it on, add 1 to the word to advance a frame forward'

I've been using this for a code I'm writing that activates frame advance mode after a timer hits a certain amount. I also wrote some ASM that should be taking the inputs of each player and checking them for Start or Z. If Start was pressed it'd unfreeze the game, if Z was pressed it'd add 1 to the value in 0x80432A28.

Problem is, when I change frame advance mode on (by setting 0x80432A28 to 0x80000000), a lot of the games code stops running every frame until I turn it back off. Adding 1 to the amount in the address definitely does advance forward a frame, but I can't do that based on inputs because none of the functions that update digital button data are running! I tried checking cheatsearch for ANYTHING in memory that changed when I pressed Z on the p1 controller, but there was nothing.

Any ideas how I could check for button data while in Frame Advance mode?
Idk about 80432a28.

Try this:
@ 80479d68

Freeze: set to 0x01010001
Frame Advance: set to 0x01010100
Unfreeze: set to 0x00000001

Should be just like Develop Mode.
 
Last edited:

Absolome

Smash Cadet
Joined
Jan 3, 2014
Messages
68
Location
Asheville, NC
I'd like to start working on a better system for RAM documentation than what we've got now, but I'm not sure how we'd do it for anything other than just global addresses
 

Absolome

Smash Cadet
Joined
Jan 3, 2014
Messages
68
Location
Asheville, NC
Idk about 80432a28.

Try this:
@ 80479d68

Freeze: set to 0x01010001
Frame Advance: set to 0x01010100
Unfreeze: set to 0x00000001

Should be just like Develop Mode.
This seems to work perfectly, same mechanics as the 80432a28 except now I can easily poll for digital button data :>

I wonder what the heck 80432a28 is for then. It definitely does work as a sort of frame advance
 

Punkline

Dr. Frankenstack
Premium
Joined
May 15, 2015
Messages
423
I'd like to start working on a better system for RAM documentation than what we've got now, but I'm not sure how we'd do it for anything other than just global addresses
I've been writing a code for MCM that lets me use Cheat Engine's native pointer GUI without this whole mess:



--by caching 64-bit (padded) little-endian pointers that are displaced to match the program's reference of "GALE01"


It lets me save "cheats tables" which are just xml files that describe pointer chains. I'm still working on a few things--but so far it's been pretty great for saving specific pointer structures in the form of a file that I can review in a sort of fancy RAM watch:



The hex view on the right is a dynamically allocated bone table for the player who last used a taunt. The code is capable of assigning hooks during runtime in order to cache pointers from registers like this to use as a BA.

In this case, the context of the action state transition function (for taunting) is used to select a player entity to watch.
---

I'll post a WIP of it soon.
 
Last edited:

jra64

Smash Journeyman
Joined
Jan 30, 2004
Messages
372
Player 1 can't be grabbed (1.02) [flieskiller]
C206938C 00000005
8B9F006C 2C1C0000
40820014 3BA00001
881E222A 53A03E30
981E222A 8001004C
60000000 00000000

This code uses the same flag as Giga Bowser uses that prevents him from getting grabbed.
Thank you so much flieskiller! I'll try it right now! I really hope this works...

EDIT: Getting some sort of error about not using master codes for some reason...

EDIT2: Nevermind, I'm such an idiot... psiLupan let me know that this is a gecko code not an AR code lol. Sorry.

Thanks so much you have no idea how long I've been looking for this flieskiller...
 
Last edited:

Squelchyman

Smash Cadet
Joined
May 13, 2015
Messages
48
Hey, is there any way that I could save any of these codes e.g. Flash red on unsuccessful l-cancel onto my memory card from a soft nodded Wii so that they would work on a GameCube?

Edit: Also, could I request for a flash red on unsuccessful l cancel code to be ported to PAL?
 
Last edited:

Absolome

Smash Cadet
Joined
Jan 3, 2014
Messages
68
Location
Asheville, NC
Hey, is there any way that I could save any of these codes e.g. Flash red on unsuccessful l-cancel onto my memory card from a soft nodded Wii so that they would work on a GameCube?

Edit: Also, could I request for a flash red on unsuccessful l cancel code to be ported to PAL?
This is (IN VERY BASIC TERMS) what 20xxTE does

Of course, it's a lot more complex than just saving the code to your memory card and popping it in, but there are ways to execute custom ASM code on a gamecube
 

Squelchyman

Smash Cadet
Joined
May 13, 2015
Messages
48
This is (IN VERY BASIC TERMS) what 20xxTE does

Of course, it's a lot more complex than just saving the code to your memory card and popping it in, but there are ways to execute custom ASM code on a gamecube
Is there any way I could do the same thing, but on a wii, or would I have to homebrew my GC?
 

SinsOfApathy

Smash Journeyman
Joined
Feb 24, 2015
Messages
474
NNID
Psion312
Is there any way I could do the same thing, but on a wii, or would I have to homebrew my GC?
If you have a Wii, you could just use 20XX TE for the codes by copying the save over from a USB drive, or you could just use Gecko codes the normal way.
 

Squelchyman

Smash Cadet
Joined
May 13, 2015
Messages
48
Sorry, that was in reply to another person, I would like to use gecko codes on my Gamecube by injecting them into a gci file so that I can use the codes on it. I have a wii on hand to do it, I would just like to be able to use the codes on my gamecube.
 

Vegerot

Smash Apprentice
Joined
Nov 3, 2013
Messages
86
Location
Baltimore, Maryland
The Press Z for slow laser causes my game to freeze. I'm using a vanilla 1.02 iso in USBLoaderGX with nintendont.

The same thing happens when I try to run an amazing code that doubles landing lag when missing an L-Cancel:

Failing a L-cancel doubles landing lag (1.02) [flieskiller]
0408d69c 60000000
C208D6A4 00000003
7C050000 4080000C
EC010024 48000008
EC010032 00000000

This removes the normal check from the game (the 04), and check when dividing by 2, and replace by multiplying by 2 if the player don't L-cancel.
flieskiller flieskiller
 

flieskiller

Smash Journeyman
Joined
Jan 3, 2013
Messages
426
^ The code above has nothing to do with laser, the function wouldn't go there at all, so it can't be that cause the freeze. 20XX uses some code to modify the landing lag, so if 20XX is fine, my code should be too.
 

jra64

Smash Journeyman
Joined
Jan 30, 2004
Messages
372
Does anyone know how to get @Jorgasms 's Stock Control/Crew Battle code to work on console?

Stock Control/Crew Battle (1.02) [Jorgasms]

04036bb4 60000000
C2266678 00000015
3DC0803F 61CEA3E6
89CE0000 2C0E0000
4182008C 3DC08045
39CE310E 3DE08048
39EF0828 3E008045
6210BF14 8A100000
2C100009 40810008
3A000009 8A2E0000
2C110000 4182000C
9A2F0000 48000008
9A0F0000 8A2E0E90
2C110000 4182000C
9A2F0024 48000008
9A0F0024 8A2E1D20
2C110000 4182000C
9A2F0048 48000008
9A0F0048 8A2E2BB0
2C110000 4182000C
9A2F006C 48000008
9A0F006C 3803FFFF
60000000 00000000
C21A57DC 00000005
3E008048 621006E0
3A200009 9A300000
9A300024 9A300048
9A30006C 38BEFFF8
60000000 00000000
C2230D54 00000006
88030005 3DC0803F
61CEA3E6 3DE08045
61EFBF15 3A000001
89CE0000 2C0E00FF
4082000C 9A0F0000
38000001 00000000
C222F76C 00000008
881C0004 3DC0803F
61CEA3E6 3E008045
6210BF15 8A300000
2C110001 40820014
38000002 39E000FF
99EE0000 4800000C
39E00000 99EE0000
60000000 00000000
C222F6BC 00000008
881C0004 3DC0803F
61CEA3E6 3E008045
6210BF15 8A300000
2C110001 40820014
38000002 39E000FF
99EE0000 4800000C
39E00000 99EE0000
60000000 00000000
C2033CC4 0000000A
3DC08045 61CEBF15
89CE0000 2C0E0002
40820038 3DC08045
39CE310E 3DE08048
39EF0828 8A4F0000
9A4E0000 8A4F0024
9A4E0E90 8A4F0048
9A4E1D20 8A4F006C
9A4E2BB0 48000008
98A3008E 00000000

I tried converting it to a gct file via this website http://geckocodes.org/index.php?gct=#editbox but every time I try to convert it, it gives me the error: "This is not a code"

This is not a code error.png
Anyone know what might be going on?

EDIT: This is resolved, I changed the lowercase bb in the code to BB, and it ended up working... Credit goes to PsiLupan for this advice...
 
Last edited:

Squelchyman

Smash Cadet
Joined
May 13, 2015
Messages
48
Could I request for a Pal Code for Flashes White on L-Cancel or Flashes Red on Unsuccessful L-Cancel?
 

worm_hd

Smash Cadet
Joined
Apr 27, 2015
Messages
48
I posted this over in the Texture thread, figured I'd put it here as well.

Would costume dependent Shine colors for Fox/Falco be possible in the same way that sword swing colors are for Marth? And I believe that Falcon Punch is a texture (rather than just colors), but would a similar thing be possible, albeit necessitating separate Falcon Data files?
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Possible in the sense the you can change the color of the shine with ram hacking. I highly doubt you could have both a red shine and a blue shine though at the same time.
 

worm_hd

Smash Cadet
Joined
Apr 27, 2015
Messages
48
Possible in the sense the you can change the color of the shine with ram hacking. I highly doubt you could have both a red shine and a blue shine though at the same time.
I guess the reason I'm asking is that I've messed around with the shine color values, and it seems structurally similar to the Marth sword color trail. Aside from it being more complex (more colors to pick), wouldn't the existence of the Marth code imply that a shine code would be possible?
 

Vegerot

Smash Apprentice
Joined
Nov 3, 2013
Messages
86
Location
Baltimore, Maryland
Ah, nevermind! I got it working!
Apparently the gecko code loader that nintendont uses is borked! I injected it into the .dol and it worked just fine.
How do you inject it into the dol? It's not Nintendont's Gecko loader that's the problem, it's Nintendon't. Nintendon't runs games in Wii mode, while the Wii/GameCube/Dolphin runs games in GameCube mode. This shifts memory addresses so that only certain Gecko codes work. You can convert them to Nintendon't just by shifting the location in the Gecko code. See this post and the posts after it for more specifics.
 

SinsOfApathy

Smash Journeyman
Joined
Feb 24, 2015
Messages
474
NNID
Psion312
How do you inject it into the dol? It's not Nintendont's Gecko loader that's the problem, it's Nintendon't. Nintendon't runs games in Wii mode, while the Wii/GameCube/Dolphin runs games in GameCube mode. This shifts memory addresses so that only certain Gecko codes work. You can convert them to Nintendon't just by shifting the location in the Gecko code. See this post and the posts after it for more specifics.
0x93006000-0x93008000 = cheats path
Nintendont fixes the EXI calls, so the only things that won't work are controller-based and C types.

Code:
_hook_addresscheck:
  
    cmpwi    cr4,r5,3
    bgt-    cr4,_addresscheck1    #lf sub code type ==6 or 7
    lis    r5,0x4800
    add    r12,r3,r12
    rlwinm    r12,r12,0,0,29        #align address

    bne-    cr4,_hook1        #lf sub code type ==2

_hook2:
    bne-    cr7,_readcodes

    rlwinm    r4,r26,0,0,29        #address &=0x01FFFFFC

    sub    r4,r4,r12        #r4 = to-from
    rlwimi    r5,r4,0,6,29        #r5  = (r4 AND 0x03FFFFFC) OR 0x48000000
    rlwimi    r5,r3,0,31,31        #restore lr bit
    stw    r5,0(r12)        #store opcode
    b    _readcodes
This is a snippet of one of the broken portions. It's caused by the "to - from".
 
Last edited:
Top Bottom