Hello,
I've been playing Animal Crossing: Let's Go to the City (PAL) for a while now and couldn't escape the grass deterioration problem so I decided to get a code that would simply prevent grass from dying off instead of reviving the grass of the whole town in a save editor.
It turns out that Seth@WiiPlaza wrote a code in the past that seems to address this issue on the NTSC-U version (Wii Gecko Codes, GameHacking.org).
Grass Cant Be Trampled [Seth@WiiPlaza] (for NTSC-U)
Interestingly, there is a similar code for the PAL version that's only on GameHacking.org but was submitted by someone named Aurum:
Grass Can\' Be Trampled by Aurum (for PAL)
My problem is that the code above does not work. It doesn't prevent grass deterioration and I noticed this by checking the save data in Animal Crossing Save Editor.
The NTSC and PAL codes are completely different so I decided to use PyiiASMH to check what Seth's code does, since it's a C0 code (Execute ASM):
PPC Opcodes for "Grass Cant Be Trampled" (NTSC-U):
Since I don't know anything about PowerPC assembly but do know some low-level programming, I checked a "Beginner's Simple ASM Reference Page" from MarioKartWii.com to try to quickly grasp what the code does.
From what I've gathered, it writes the word 0x60000000 at address 0x802B62EC. Then there's a blr instruction to return to the code handler...? The additional code seems to serve no purpose...?
Interestingly, the PAL code seems to do something similar; it writes 0x60000000 at address 0x2B0FD4. But it doesn't work.
This got me to wonder about three things:
Thanks.
I've been playing Animal Crossing: Let's Go to the City (PAL) for a while now and couldn't escape the grass deterioration problem so I decided to get a code that would simply prevent grass from dying off instead of reviving the grass of the whole town in a save editor.
It turns out that Seth@WiiPlaza wrote a code in the past that seems to address this issue on the NTSC-U version (Wii Gecko Codes, GameHacking.org).
Grass Cant Be Trampled [Seth@WiiPlaza] (for NTSC-U)
- Code:
C0000000 00000004
3D80802B 618C62EC
3D606000 616B0000
916C0000 4E800020
4E800020 00000000
E0000000 80008000
Interestingly, there is a similar code for the PAL version that's only on GameHacking.org but was submitted by someone named Aurum:
Grass Can\' Be Trampled by Aurum (for PAL)
- Code:
042B0FD4 60000000
My problem is that the code above does not work. It doesn't prevent grass deterioration and I noticed this by checking the save data in Animal Crossing Save Editor.
The NTSC and PAL codes are completely different so I decided to use PyiiASMH to check what Seth's code does, since it's a C0 code (Execute ASM):
PPC Opcodes for "Grass Cant Be Trampled" (NTSC-U):
- Code:
.loc_0x0:
lis r12, 0x802B
ori r12, r12, 0x62EC
lis r11, 0x6000
ori r11, r11, 0
stw r11, 0x0(r12)
blr
blr
.long 0x00000000
psq_l f0,0x0(r0),0,0
Since I don't know anything about PowerPC assembly but do know some low-level programming, I checked a "Beginner's Simple ASM Reference Page" from MarioKartWii.com to try to quickly grasp what the code does.
From what I've gathered, it writes the word 0x60000000 at address 0x802B62EC. Then there's a blr instruction to return to the code handler...? The additional code seems to serve no purpose...?
Interestingly, the PAL code seems to do something similar; it writes 0x60000000 at address 0x2B0FD4. But it doesn't work.
This got me to wonder about three things:
- What's the functional difference between the NTSC-U C0 code and the PAL 04 one? To me, it looks like the 04 code (incorrectly?) writes at 0x2B0FD4 while the C0 code writes at 0x802B62EC, which is very different. Is this correct?
- If the PAL memory offset is correct, shouldn't a simple change in the ASM code for it to write at 0x802B0FD4 work?
- If both codes are actually equivalent functionally speaking, does Seth's NTSC-U code work on NTSC-U?
Thanks.