Sora3100 / Tales_of_Cheat_Tables

Various cheat tables for the "Tales of" franchise
21 stars 7 forks source link

Symphonia #62

Closed bad1dea closed 1 year ago

bad1dea commented 1 year ago

Hey,

I make cheats for Switch/PC as well, wondering if you were able to help.. with Tales of Symphonia, since you're into the Tales game.

Been trying to port over the Walk Through Walls for the GameCube Version to PC/Switch, but having a heck of a time..

0402F1A0 38600001
282CAED9 00000402
0402F1A0 7F23DB78
E0000000 80008000

image

image

looks like it's just forcing that r3 to 1..

Trying to trace it down, and playing with every OR the game code has, doesn't seem to do anything.

You think you can take a crack at it?

Sora3100 commented 1 year ago

I believe the same code is at 004EC57C on the PC version, albeit it seems to behave differently, so they maybe changed some code after the GameCube version?

bad1dea commented 1 year ago

You.. found it so easily.. while I struggled, I really appreciate you looking into it :)

It's essentially the same --

.text:004EC57A 8B C6                                   mov     eax, esi
.text:004EC57C 0B 45 08                                or      eax, [ebp+arg_0]

changing those into mov eax, 1

Allows you to clip / Walk Through Walls..

May I ask, how you found that function .. so quickly -- I've spent quite some time trying to track it down..

Even searched for the 0FFBFFFFFh to help.. see if any or's were around it.

Managed to locate it on the switch now as well.. Thank you!!!!

image image

Sora3100 commented 1 year ago

My method was essentially to just find the player character's coordinates (I have done this in the past, as I tend to do it for every Tales PC game to look at debug rooms and such), after I use Cheat Engine's "Find out what accesses this address", let it run for a bit, and start noping out each address hoping it would result on something (it did), I found a few that let me pass through walls (with different results) and one of them was what I needed, after which I loaded the address into Ghidra for easier visiblity, then I traced back what modified that value.

In my small testing, in the room where you walk up to the Tower of Salvation, on GC you can walk next to the stairs without gaining height, on the PC ver, no matter where you are, you will gain height if you proceed northwest, so that's why I was confused a bit.

I probably wouldn't have found it so fast if the GC code wasn't already there though. Hopefully that helps. And you're welcome.

bad1dea commented 1 year ago

Definitely, looks like they added a Z plane check, forcing the Player to always align with Terrain Z unlike the GC which allows you to clip through Terrain as well. Which really isn't a huge problem.

I'll probably dig some more, but the info, helped a lot! I must try out Ghidra, I use IDA as it's what I've been using for.. close to two decades now..

Sora3100 commented 1 year ago

Ahh, that would explain why the code generated from GC and PC are so different.

From what I've heard, there isn't much point to Ghidra if you already have IDA and it works for you, but then again, Ghidra is free so you can always see how it compares to IDA :)

Also, here's a small little bit of fun I accidentally did while looking for this :) https://cdn.discordapp.com/attachments/685868772216668177/1120108990408429638/2023-06-18_23-52-50.mp4