BullyWiiHacks
Welcome dear guest! Very Happy

To start posting and being part of the BWH community, you simply need to register an account or log into an existing one.

If you do not wish to register at all, that's fine but there will be more advertisements. :/

You can probably see and download most content provided for regular members even without an account.

Your contributions will be greatly appreciated though, give it a shot and register today! thumbsup

Join the forum, it's quick and easy

BullyWiiHacks
Welcome dear guest! Very Happy

To start posting and being part of the BWH community, you simply need to register an account or log into an existing one.

If you do not wish to register at all, that's fine but there will be more advertisements. :/

You can probably see and download most content provided for regular members even without an account.

Your contributions will be greatly appreciated though, give it a shot and register today! thumbsup
BullyWiiHacks
Would you like to react to this message? Create an account in a few clicks or log in to continue.
BullyWiiHacks

Gaming, Modding & Programming

Important reminders:

- Click *HERE* for advanced forum search or check out the text field below on the front page for Google before posting
- NO support via private message (use the forum)
- Write meaningful topic titles
Site Translation
Latest topics
Search
 
 

Display results as :
 


Rechercher Advanced Search

January 2025
MonTueWedThuFriSatSun
  12345
6789101112
13141516171819
20212223242526
2728293031  

Calendar Calendar

Country Statistics
Free counters!

You are not connected. Please login or register

Animal Crossing Wii: An Issue With Seth's "Grass Can't Be Trampled" Gecko code

2 posters

Go down  Message [Page 1 of 1]

Fox_McCloud45

Fox_McCloud45

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)
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.

Fox_McCloud45

Fox_McCloud45

Okay so I simply investigated myself using Dolphin and I found out several things.

  • Seth's NTSC-U code indeed works and does two things: it prevents grass from deteriorating and it hides all deteriorated grass. Grass that's normally seen around houses is missing, for instance.
  • The original grass wear remains in the save file. When the code is active, the grass doesn't deteriorate but also doesn't heal. When the code is inactive, the original wear reappears.
  • The 04 code does edit Mem80, so Aurum's code affects 0x802B0FD4 and should have worked if valid.
  • By checking the memory dumps between the NTSC-U and PAL versions, I managed to find the correct offsets and got both the C0 and 04 codes working.


So, from what I've observed, Seth's NTSC-U code:

Code:
C0000000 00000004
3D80802B 618C62EC
3D606000 616B0000
916C0000 4E800020
4E800020 00000000
E0000000 80008000

can be reduced to:

Code:
042B62EC 60000000

Thus, I'm not sure why it's a C0 code in the first place.

I also now know that there are two revisions of Animal Crossing: Let's Go to the City but no distinction exists between the two anywhere. Gecko codes for 1.00 are not compatible with 1.10 so that's bad news.

I found out that my DVD copy is 1.00 but the backup I was playing the game from (for faster load times) was 1.10. Aurum's code actually crashes on 1.00 (which matches my original experience with the code and I was surprised it worked now but that was the result of switching from the 1.00 DVD to the 1.10 backup).

I'm really surprised that there is a complete lack of information about the two revisions. It also leads to Gecko code conflicts so that's not great. I'm not aware of any way to tell whether someone's version is 1.00 or 1.10.

The ported codes follow.

Grass can't be trampled (PAL 1.00) [Seth@WiiPlaza]
Code:
042B613C 60000000
*Ported to RUUP01 / PAL by Fox_McCloud45

Grass can't be trampled (PAL 1.10) [Seth@WiiPlaza]
Code:
042B6260 60000000
*Ported to RUUP01 / PAL by Fox_McCloud45

EDIT: Reformatted Gecko codes with SnB's suggestion.



Last edited by Fox_McCloud45 on 11/25/2024, 11:00 am; edited 1 time in total

SnB@BWH

SnB@BWH
Admin & Writer

As you had stated, for someone who doesn't know anything about PowerPC ASM, your investigative efforts on the subject is well-written and documented for others' future references. Analytical thinking... I like that, and is great skill to have to get down to the bottom of things. Wink I'm glad you have figured this out.

I am unaware also of figuring out what revision a (Wii or GameCube) game is, but I am sure the information must be placed somewhere within the memory.

Did you port those codes yourself? If so, and they work, feel free to give yourself credit like this:

TITLE OF CODE [CODE CREATOR CREDIT]
CODE HERE
*Ported to GAME ID / REGION by YOUR HANDLE

If you are to port at least several more codes, I'll give you Coder status with the rank of Code Porter. The codes can be for any game / system, not just Wii or GameCube.

hank you for posting about this subject. Seth very rarely comes on the forum anymore, but perhaps if he sees this topic, he can offer his input.

I hope you enjoy the rest of your week! Smile

Fox_McCloud45

Fox_McCloud45

Thank you!

The only other code I worked on is a port of dragonboy269's Nookway to Nookington's code for Animal Crossing: Wild World to the PAL version of the game but I haven't managed to test it (and I can't find it again).

The two codes I posted are functional.

Sponsored content



Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum