News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Eliminating recharge time in SoM and SoE  (Read 554 times)

werewolfslayr925

  • Full Member
  • ***
  • Posts: 127
    • View Profile
Eliminating recharge time in SoM and SoE
« on: September 30, 2020, 04:09:27 pm »
Is it possible to eliminate the "recharge" time for a weapon swing/dashing in Secret of Mana and Secret of Evermore? I'm hoping it's as simple as changing a byte to FF or something. Any idea how this can be achieved for the player character/all allies?
As the harbor is welcome to the sailor, so is the last line to the scribe.

MKnightDH

  • Restricted Access
  • Jr. Member
  • *
  • Posts: 42
    • View Profile
Re: Eliminating recharge time in SoM and SoE
« Reply #1 on: September 30, 2020, 07:16:03 pm »
I know with Secret of Evermore the the Tactical Fatigue script, which empties the chargeup level and shuts off the pseudo intangibility flag (Character Index $14 Bit $0200, activated by charged attack usage and also deactivated sooner by an attack from the character connecting a hitbox with an enemy to trigger the Hit Roll), is at $908495. However, I would advise understanding why the recharge mechanic is around in the first place. There's a reason why plenty of enemies in SoE have an actual Evade value to prevent 100% Hit Chance without getting to 99 Hit yourself, after all.

FAST6191

  • Hero Member
  • *****
  • Posts: 2936
    • View Profile
Re: Eliminating recharge time in SoM and SoE
« Reply #2 on: September 30, 2020, 07:19:45 pm »
As simple as changing it might be, the trick however is getting to that point.

Is there a potion/equip that can reduce it?

Do different weapons have different times? Better yet if they are the weapons within a class (as opposed to all spears take, all daggers take, all longswords take...) different?

If so then chances are you can use some form of cheat to do something. Statuses that have such effects can do things but also might be tied to it.

If the game has weapon stats one of those might be time between attacks, especially if there is some uber nice end game (or fast but weak one in the mid game to mix it up) thing that plays around with this.

If not then you are probably playing with assembly. It will be a wonderful first project; you key off a button, check what buttons say, have responses visible on screen by sprites and probably a very obvious timer somewhere in the mix (if you are adding one to a value every frame until you hit something and this value is checked then yeah).

TzakShrike

  • Newbie
  • *
  • Posts: 3
    • View Profile
Re: Eliminating recharge time in SoM and SoE
« Reply #3 on: October 01, 2020, 12:38:22 am »
That sounded so easy that I went ahead and did it for you. (BTW this is my first post. I created an account for this.)
I did this on Secret of Mana Europe v1.1 (Rev1), but it's likely the same for all versions.
Please notice that this will make combat really uninspiring, removing a lot of strategy.

You can do it (for Player 1, I didn't play far enough to get the other characters yet) by forcing 0x00E1ED to 0x00.
The game sets this value to 0x5C after a sword swing, and to 0x5B after a dash (I guess it sets 0x5C before decrementing it).
I found this value by using BizHawk's RAM Watch functionality.

If you have some sort of cheat device, try 00E1ED:00 or DD33-070D (or C061ED:00 or DD13-570D for 64K range). The GameGenie codes there I converted to using this tool: (https://www.romhacking.net/utilities/23/).

Edit: Yep, seems to be the same on the US release. Also, it looks like the game reuses this value for something else during cutscenes, but I can't see any difference.
« Last Edit: October 01, 2020, 12:43:46 am by TzakShrike »

TzakShrike

  • Newbie
  • *
  • Posts: 3
    • View Profile
Re: Eliminating recharge time in SoM and SoE
« Reply #4 on: October 01, 2020, 02:02:31 am »
Secret of Evermore is a bit harder cause it's more janky, but writing 0x0400 to 0x004EB7 and also keeping an eye on writes to 0x000B4D (or forcing it to 0x00) is a very good start.

When an attack completes, the game writes 0x0000 (0) to 0x004EB7 and 0x0F (15) to 0x000B4D.
It then increments 0x004EB7 in steps of 10 up to 1024 (ending 1010, 1020, 1024) and starting that frame decrements 0x000B4D each frame down to 0.

There's a bit more going on than that, but there's a starting point for you. (Again, I was experimenting with the Euro version)

werewolfslayr925

  • Full Member
  • ***
  • Posts: 127
    • View Profile
Re: Eliminating recharge time in SoM and SoE
« Reply #5 on: October 01, 2020, 06:26:43 pm »
Beautiful! I don't care if it makes the combat "uninspiring". The combat was boring without this cheat! Thank you so much!!
As the harbor is welcome to the sailor, so is the last line to the scribe.

TzakShrike

  • Newbie
  • *
  • Posts: 3
    • View Profile
Re: Eliminating recharge time in SoM and SoE
« Reply #6 on: October 01, 2020, 08:19:54 pm »
You could make the combat a bit more interesting again by shorting enemy stun time to just a few frames?

mkwong98

  • Jr. Member
  • **
  • Posts: 84
    • View Profile
Re: Eliminating recharge time in SoM and SoE
« Reply #7 on: October 09, 2020, 04:09:54 am »