Author Topic: Advanced cheat search/better way to search for addresses?  (Read 187 times)

That_Guy28

  • Newbie
  • *
  • Posts: 2
    • View Profile
Advanced cheat search/better way to search for addresses?
« on: May 07, 2018, 09:51:23 PM »
I am trying to hack Sexy Parodius by making an Action Replay code for invincibility. There are already known codes for unlimited lives for player 1 and 2 which are 160B1366 0002 and 160B13E6 0002 respectively. My plan on how to carry out this hack is by finding the ram address where it stores the state for post-hit invincibility and use a 1xxxxxxx or 3xxxxxxx to constantly write to that address making the player basically always be flashing like they do for the first 3 seconds after respawning. Essentially, I'm trying to make post-hit invincibility last forever by locking the state to always being on if that makes any sense.

Now the problem is with the lack of sufficient tools in Yabause's cheat search to accomplish this task. The only relevant search options are "Greater than", "less than" and "exact value". The limitation is that I don't know the exact value of what the post hit invincibility flashing is. In Jikko Oshaberi Parodius, a totally different game, there is a known AR code where it sets invincibility by using 160D478C 0066 for player 1. I tried searching for an exact value for Sexy Parodius by using 102, the decimal value of 0066 and I couldn't find it but that was a stab in the dark anyway.

The only actual way to find this code is by using an "Unknown Initial value" button and then searching using either "changed value", "increased value" or "decreased value". Yabause doesn't have these options. No other Saturn emulator has cheat search at all.

I also tried using Cheat Engine to find that address in Yabause and then use that as a starting point hoping I would at least find the values so I can use them in Yabause's cheat search but it didn't work. I just found millions of garbage values like 2144.45463210540150 and stuff. Hacking games within emulators like that never works anyway.

So this begs the question, how would I find the address in this game to do the hack? Even if it's not in Yabause.

The only two paths I can think of at this point are:
1. Download Yabause source code. Mod the options I need into the cheat search dialog which are "Unknown Initial Value", "changed value" and all that other stuff like what Cheat Engine has.
2. Obtain a Saturn Communication cable that the original Action Replay developers used to find a lot of their codes. It's extremely rare. Obtain a Windows 3.1, 95 or OS/2 PC with necessary serial port and hope the options I need are either available or possible to hack/mod in. I would go this route if it turns out Yabause's code is so convoluted and defiant of all logic and common sense that modding the source to do what I want is impossible.

All I know is that such a hack is possible due to the fact that someone at some point between now and 20 years ago did it in Jikko Oshaberi Parodius which would require the same steps to pull off.

Can anyone help or give me any ideas? Anyone got any crazy out of the box ideas to pull this off even with the limited "Exact value" "Greater than" and "Less than" cheat search options in Yabause that isn't manually going through all 2megs of ram and changing each byte from 0 to 255 until it works?

Edit: I just came up with 2 more ideas. The first one is download a psx emulator and hope one exists with better cheat search capability than yabause. I can use that to find the hex value for what puts the player in an invincible state. Once I find this, I can search for that value in yabause and if it's the same, that would be the easiest way to find the address in the Saturn version. Its worth a try due to how relatively little work that would be required.

My next idea is to just save state a bunch of times and write a program to compare them and make functions like "greater than" and all that. This would be the method with the next least amount of work.

So in order of effort, the order of methods that I currently have is:
1. Hack Ps1 version because better tools may be available on Ps1 emulators. Once I know the value, search for an address with that value in the Saturn version. Disadvantage: value may not be the same.
2. Save a bunch of states with and without the player having post hit invincibility still active. Compare them to find address. Disadvantage: save state may not be in same format as ram while the systems running but I haven't checked yet.
3. Download Yabause source and mod in better cheat search options. Disadvantage: it may be difficult to do this based on many factors of the way the program works but I haven't looked into it yet. Can't be worse than Minecraft though. They were on some terrible stuff when they wrote that programming abomination.
4. Find a way to obtain rare equipment that the Action Replay developers used back in the day to directly interface the Saturn's ram with a Windows or OS/2 PC (it may need one or the other). Disadvantages: everything. Especially the possibility that this is so old it may be for OS/2 not Windows. In this case, the possibility of working out problems or doing custom nodding may be impossible.
5. Just play the Ps1 version or give up an go outside. Disadvantages: everything  :P
« Last Edit: May 08, 2018, 04:23:37 AM by That_Guy28 »

That_Guy28

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Advanced cheat search/better way to search for addresses?
« Reply #1 on: May 08, 2018, 07:34:04 PM »
Ok I got it. Through an immense amount of trial and error and an insane amount of luck, I got it through randomly editing random byte addresses until I got it. This crap took multiple days but my chances of finding it increased by a factor of 255 when I saw someone suggest on gamehacking.org that the invincibility value for this game needs to be set to a hex value of 20. Set 60BDC1A to 20 for player 1's invincibility and set 060C091A to 20 for player 2's invincibility.

Seriously though, someone needs to work on putting better cheat searching options in Yabause, for fuck sake.