hmsong

Hmsong's non-SoM patches

237 posts in this topic

I'm thinking about creating a spell balance patch for Seiken Densetsu 3 (SNES), so that certain classes (of the same character) aren't inferior to another class.  Lise is especially guilty of this (two of her final classes don't even get the buff/debuff multi-target, for no reason), but there are plenty of others (Duran's Duelest and Paladin, Kevin's God Hand and Bashkar, Hawkeye's Rogue and Ninja Master, Angela's Delvar, Carlie's dark classes, etc etc).  The problem is, I have no idea what the addresses are for these.  I can create IPS and I can edit things using hex editors, but I need to know the specific addresses to modify these things.

So... does anyone have any idea which address contain this info?

Edited by praetarius5018

Share this post


Link to post
Share on other sites

as long as you are aware that that changes nearly nothing until you address the bigger problems like Kevin...

Spoiler

 

11BCC0 - Duran, base class
11BCD8 - Kevin, base class
...

11BD50 - Duran, Knight
11BD7C - Duran, Gladiator
...

11BF60 - Duran, Paladin skills
11BF90 - Duran, Lord skills
...

order is as you'd expect:
char wise Duran, Kevin, Hawk, Angela, Charlie, Lise (same as char select screen)
class wise: L/L, L/D, D/L, D/D

base classes have 6 entries each
first classes 11
final classes 12
4 bytes per entry
1st - targetting:
        00 mimic last used spell's targetting
        01 one
        02 always all
        03 one/all
        04 always self
2nd - required stat + value
    first  4 bit determine attribute; 4 = AGL, 8 = INT, A = PIE
    second 4 bit determine amount (0-15)
3rd - unused in vanilla
4th - which skill is learned

 

 

Share this post


Link to post
Share on other sites

Wuw, thank you.  I shall try some editing and see how things work out.  I'll have to make a list of what code does what though, but your post really helps.  Thanks.

 

Wait, how do you "assign" spells to a class of a character?  For example, if I wanted to give Duran (Paladin) a multi heal, how do I do that?

Edited by hmsong

Share this post


Link to post
Share on other sites

these are not codes but the addresses in the rom.

9 hours ago, hmsong said:

Wait, how do you "assign" spells to a class of a character?  For example, if I wanted to give Duran (Paladin) a multi heal, how do I do that?

11BF60 - Duran, Paladin skills
so you could just put 03 00 00 21 as an entry there, 03 for target one/all and 21 for heal light.

Share this post


Link to post
Share on other sites

Sorry, I had some problems with personal issues, but all of that is now solved (very well too).  Now, I can get back to hacking.

Okay, I'm looking at at vanilla addresses from 11BCC0 to 11BCD7 (Duran base), and I'm seeing the following:

11BCC0: 00 00 00 00

11BCC4: 00 00 06 00

11BCC8: 00 00 00 00

11BCCC: 00 00 00 54

11BCD0: 00 00 00 00

11BCD4: 00 00 00 06

So does that mean Duran can learn Vacuum Sword (54) and Diamond Saber (06) in his base class, with no requirement at all?  I don't understand how that works.  Or am I using the wrong ROM?  I'm using the english translated version.  If I'm using the wrong ROM, which one should I download?  Obviously, I'd want a rom which is compatible with Sin of Mana patch.

EDIT:  Hmm.  It seems that some roms are different from another rom.  I found a new ROM, and the address is what it seems to be.  The SFC version uses 11BCC0, whereas .SMC version must be using another address.  Which ROM do I use for the Sin of Mana?  Or does it matter?

Btw, the only "guide" I have is [Seiken Densetsu 3 PAR Codes and Hacking] by Paul Le and les1two (gamefaqs.com).  If you have any other guides I can use, I'd appreciate it if you can point me in the right direction.

Any help anyone can provide me is greatly appreciated.  Thank you.

Edited by hmsong

Share this post


Link to post
Share on other sites

@praetarius5018

Thank you so much.  Thanks to you, I was able to create my own balance-tweak patch (for vanilla).  Obviously, nowhere near as deep as Sin of Mana (I just changed the spell list and stats, so that some of the crappy class won't be as crappy as before).  I truly appreciate everything you taught me.

I know you already did this for Sin of Mana, but if I intended on creating a patch for enemies NOT countering any freezing screen techs, would you be willing to help?  I feel like that's the biggest drawback of the original game, since it made half of the magic and all techs useless.

Edited by hmsong

Share this post


Link to post
Share on other sites

You could try replacing $D0/C62B 20 65 C6 with EAEAEA - that is no jab at a certain company for once - to skip the whole logic.
At least I think that was all that is needed.

Share this post


Link to post
Share on other sites

Wait, seriously?  That's all it takes?  Just 3 bytes?  Holy crap.

I can't help but ask.  How do you know all this?  Were you one of the creators for the original game or something?  Hot damn.  How can you possibly know which address contains what?  I mean, I can open up a game in hex editor to see the addresses and values, but I have no idea what any of the codes mean, nor which address does what.  And I definitely can't create something that didn't already exist in the game (such as Sin of Mana's awesome equipment tweaks).

Btw, which program do you use to create IPS files?  Right now, I use hex editor (HxD) to open up a ROM, and manually change the codes, then use Lunar to create the IPS, but I have a feeling that it's a very ineffective way to create a IPS file (and way too many possibilities of errors).

Edited by hmsong

Share this post


Link to post
Share on other sites
9 hours ago, hmsong said:

I can't help but ask.  How do you know all this?

nearly 6 years of work with a debugger on the game.

9 hours ago, hmsong said:

Btw, which program do you use to create IPS files?  Right now, I use hex editor (HxD) to open up a ROM, and manually change the codes, then use Lunar to create the IPS, but I have a feeling that it's a very ineffective way to create a IPS file (and way too many possibilities of errors).

exactly the same.
once you do bigger code changes you might want to pickup something like asar.

Share this post


Link to post
Share on other sites

Okay, so far, I made hacks for stat balance, magic balance, and the enemies don't counter attack every time you use a screen freezing attack spell.

I'm sorry to ask you (again), but would you help me to create the "run on the battle" hack?  That always bothered me, since the AI allies were able to run, but your controlled characters couldn't.  I know Sin of Mana used B for running, and Y for the tech (Y was unused in battle, so that was a brilliant idea).  I intend on doing the same thing.  Obviously, this is your idea from Sin of Mana, so unless you give me your permission, I will not release the hack to the public.  But I still want it for my own private use.

I have a feeling that this is going to be one of those "bigger code changes".  I'll learn how to use asar.  It can't be that hard to learn.

Share this post


Link to post
Share on other sites

Nope, sorry, that's one where you'll have to work a bit more with a debugger.

Also don't forget that Y will be used when battle ends to enter the menu so you have to change something there as well or players will be annoyed when they try to use a tech, and AI ally kills the last enemy and they enter the super slow menu.

Share this post


Link to post
Share on other sites

Hmm.  you mentioned this before too, but I don't exactly know what a debugger is.  I know what a debug room is (it was in gamefaqs.com), but I don't' think you're referring to that.  How would I use a debugger to create a running in battle patch?  Or is that something more... advanced than all the stuff I did?  Am I just going over my head?

Yeah, you're right about the Y button.  That would indeed be annoying.  I figured making it Y+B (like Sin of Mana) would be even more difficult than it already was, but I suppose if I had the skills to program the stuff that didn't already exist in the game, I wouldn't have that problem with just assigning buttons to stuff.

Now that I think about it, I'm sure you have mixed feeling about teaching me about the battle run tweak.  I mean, it's one of the signature features of Sin of Mana -- I'm sure you wouldn't want to give that away.  Sorry for asking about that.

Edited by hmsong

Share this post


Link to post
Share on other sites

@praetarius5018

I wanted to avoid starting another topic, so I'm continuing from here.

I released a balance patch several days ago, and some people have asked if I can release a patch that only fixes the bugs, but not change anything else.

They made a good point, so I'd like to do that (in fact, since I'm done with the balance patch, I'll just focus on the bug fixes -- at least, the ones I can fix with my limited skills).  Starting with what you told me -- Kevin's unlimited strength (that seems to be the most critical game-breaker).  Could you please help me with that?  What do I do to fix that?  I know that Kevin can be powered up infinitely using the Wind Drum in his werewolf form.  You also told me that Kevin doesn't get stat boost if he levels up in his werewolf form.  Are those two bugs one of the same? (as in, if you fix one, you fix the other)

Share this post


Link to post
Share on other sites
3 hours ago, hmsong said:

Could you please help me with that?  What do I do to fix that?

You'll have to get busy with a debugger for that, there's no quick and easy solution for that.
What I did was to force a stat recalculation on screen transition. Should be the part where the game checks for dead party members and revives them to 1 HP if necessary.
That circumvents most of the issues with those 2 bugs as they last at most until the end of the current screen.

Share this post


Link to post
Share on other sites

Damn, I have no idea how to use a debugger.  Or even know what it is (I googled it, but I don't really understand it).  I mean, it's obviously for hacking (or to analyze the game), but I have no idea how to go about that.

Are there any quick fixes for the following bugs?

  • Critical not working
  • Dex not working
  • Spell casting wait time can be canceled with the Pause button.
  • Burn status effect not working

I'm sure there are more bugs, but I don't know any.  Also, do vanilla shields do anything, other than raising the EVA stat?  I heard that they resist certain elements or something (all the element shields sold in Forcena), but I couldn't exactly test that.  Or maybe they're supposed to, but that's not working due to yet another bug?

Thanks in advance.  And I'm sorry to bother you all the time.

Share this post


Link to post
Share on other sites
40 minutes ago, hmsong said:

Are there any quick fixes for the following bugs?

  • Critical not working
  • Dex not working
  • Spell casting wait time can be canceled with the Pause button.
  • Burn status effect not working

No, functionality for those doesn't exist and would have to be added, so nothing simple as just uncommenting the call for the ASM equivalent of checkAIreaction(); as above.

41 minutes ago, hmsong said:

Also, do vanilla shields do anything, other than raising the EVA stat?  I heard that they resist certain elements or something (all the element shields sold in Forcena), but I couldn't exactly test that.  Or maybe they're supposed to, but that's not working due to yet another bug?

Vanilla shields actually have 2(!) functions:
-they waste your money
-they change Duran's sprite (technically the game checks if there is anything in the shield item slot, not necessarily for a shield)

Share this post


Link to post
Share on other sites
13 hours ago, praetarius5018 said:

No, functionality for those doesn't exist and would have to be added, so nothing simple as just uncommenting the call for the ASM equivalent of checkAIreaction(); as above.

Vanilla shields actually have 2(!) functions:
-they waste your money
-they change Duran's sprite (technically the game checks if there is anything in the shield item slot, not necessarily for a shield)

First, thank you for answering my question.  It's too bad that I don't have the skills to fix any of the bugs.  I'm so sad.  I would like to learn how to do these.  Any recommendation on where to start?  A guide?  A specific app?  Any help would be appreciated.

Second, LOL!!  Shields ultimately don't have any actual practical purpose in the game? (due to bug)  Yikes.  But I loved your sarcastic comment.  Thanks for that.  That was funny.

Third, someone today emailed me a link to your long-time-ago work:

http://ngplus.net/InsaneDifficultyArchive/www.insanedifficulty.com/board/index567c.html?/topic/6274-fix-only-patch/

I took a look at the patch using IPSPeek, and my god, I didn't understand any of it (seemed very complicated).  This is way way beyond anything I can do.  Having said that, some questions:

  1. Regarding Energy Ball critical hit, I know that after the bug fix from your patch makes the crit to 50%, but how do does that work?  I know that you made Sin of Mana into 10%.  I'm guessing you adjust the crit at $D19BF7, but I also remember you telling me that Energy Ball ignores what crit rate you had before, and sets it to 50%.  So let's say I adjusted D19BF7 tp 0A (which is 10%, which is the same as Sin of Mana -- I don't know where you adjusted for Sin of Mana, since it doesn't seem like you adjusted anything in D19BF7).  Now, let's say Hawkeye has Luck of 18 (so your bug-fix patch will make his crit rate to 20%, right?).  So, if I were to cast Energy Ball to Hawkeye, would his crit hit rate actually go DOWN to 10%?
  2. Quote

    -corrected issue with level-ups where max stats were sometimes those of later levels

    I don't know what that means.  Were there cases where you can reach max level stats early or something?

  3. You said in one of the posts:
    Quote

    You're mixing two things up:
    get-hit bonus and transformation bonus

    If Kevin gets hit, he simply gets the normal power-up spell effect. That seems to be intended as the byte for "has power up buff" is set when he transforms (I removed it in the regular hack).
    This is properly removed when you call flammie as it doesn't modify base attack, only the derivated value.


    When Kevin transforms into a wolf, he gets a well-known 1/7 bonus to his base attack.
    This overwrites his base attack. His original base attack is stored in a backup variable.
    Normally, when he transforms back this backup is loaded and stored as his base attack, so all is back to normal.
    But if you call flammie while he is in wolfform this is not executed; his current base attack keeps the wolfbonus.
    So when you land and transform again, you get another 1/7 on top of that and the original base attack is overwritten with the base attack that has 1x wolfbonus.
    Repeat until he reaches 370 base attack - that is a cap solely present for wolf-Kevin.

    This lasts until his attack is recalculated; in vanilla this is only the case on level up (just be in wolfform then to avoid the loss...) or when you go weapon shopping as Kevin (why would you need to?)
    So my fix is simply to force recalculation on every map transition.

    So, does the bug-fix patch (not Sin of Mana patch) fix any of the Kevin bugs?  I'm not sure which one you meant by "regular hack" in the 2nd paragraph and "my fix" at the end.  Are you referring to Sin of Mana hack or bug-fix hack?

  4. Quote

    change $D2:C9AF (12C9AF in a hexedit of an unheadered ROM) to 00 to disable Kevin's auto-power up

    Which auto-power up are you talking about?  The one where Kevin can stack his werewolf powerup?  Or the one you mentioned as "(I removed it in the regular hack)"?

Whew, that was a lot.

Edited by hmsong

Share this post


Link to post
Share on other sites
12 hours ago, hmsong said:

LOL!!  Shields ultimately don't have any actual practical purpose in the game? (due to bug)  Yikes.  But I loved your sarcastic comment.  Thanks for that.  That was funny.

I'm not sure it is a bug really, like crits I suspect their effect was removed on purpose since physical combat was obviously OP enough and having near god mode shields vs most mono-elemental endgame bosses with no drawback is obviously too powerful.

12 hours ago, hmsong said:

Regarding Energy Ball critical hit, I know that after the bug fix from your patch makes the crit to 50%, but how do does that work?  I know that you made Sin of Mana into 10%.  I'm guessing you adjust the crit at $D19BF7, but I also remember you telling me that Energy Ball ignores what crit rate you had before, and sets it to 50%.  So let's say I adjusted D19BF7 tp 0A (which is 10%, which is the same as Sin of Mana -- I don't know where you adjusted for Sin of Mana, since it doesn't seem like you adjusted anything in D19BF7).  Now, let's say Hawkeye has Luck of 18 (so your bug-fix patch will make his crit rate to 20%, right?).  So, if I were to cast Energy Ball to Hawkeye, would his crit hit rate actually go DOWN to 10%?

Vanilla energy ball sets a derived luck value to 50, by default it is same as luck, not sure if a few weapons had a bonus for that or if that was my own creation at this point.
This value is never used anywhere but it is likely that that was the intended crit rate.
In the fix only patch I changed that to base luck value+10 so that luck investment has a purpose again.

I've no idea what $D19BF7 is supposed to be, that is so far off the mark as to not even be funny. Like millions of bytes.

12 hours ago, hmsong said:

I don't know what that means.  Were there cases where you can reach max level stats early or something?

Oh that is one of the BEST glitches in vanilla - hf fixing that >.>

The game tracks TWO values for your level. One for onscreen display, one for internal use.
The later goes up by 1 every time an enemy dies and you have enough exp to level up.
Take a guess what happens when you kill 2-3 enemies at the same time and the first was enough to trigger the level up.
Your current stat cap is determined by the internal value.
This cap is supposed to only go up by 1 every 3 levels but this glitch makes it possible to take e.g. STR all the way to the hard class cap without taking useless stats in between.

12 hours ago, hmsong said:

So, does the bug-fix patch (not Sin of Mana patch) fix any of the Kevin bugs?

It should prevent the attack stacking.

12 hours ago, hmsong said:

Which auto-power up are you talking about?  The one where Kevin can stack his werewolf powerup?  Or the one you mentioned as "(I removed it in the regular hack)"?

When Kevin transforms the game gives him the power up buff for free.
He doesn't get the attack increase yet, that only happens when the game feels like updating character stats, e.g. after taking a hit that could potentially inflict stat altering flags.

Share this post


Link to post
Share on other sites
Quote

Vanilla energy ball sets a derived luck value to 50, by default it is same as luck, not sure if a few weapons had a bonus for that or if that was my own creation at this point.
This value is never used anywhere but it is likely that that was the intended crit rate.
In the fix only patch I changed that to base luck value+10 so that luck investment has a purpose again.

Vanilla Energy Ball was:  B5 00 62 0D 01 41 06 B4 09 40 00 00 00 40 32 00 00 <<--- 32 is where $D19BF7 was.  I figured 32 represented the 50% or something.

And my balance patch has:  B5 00 62 0D 01 41 07 96 08 40 54 54 00 00 00 00 00 (all stat up)

So if I were to apply your bug fix patch after my balance patch was applied, would that overwrite the all stat up (meaning, canceling the stat up), or would Energy Ball have all stat up + crit up?  Obviously, I prefer the bug patch to cancel out the stat up, but I can't tell.  I don't have a save file with Energy Ball.

Quote

It should prevent the attack stacking.

So the bug-fix fixes Kevin from stacking the power.  Does it also fix Kevin's werewolf form not getting the stat up from level ups?

Quote

When Kevin transforms the game gives him the power up buff for free.
He doesn't get the attack increase yet, that only happens when the game feels like updating character stats, e.g. after taking a hit that could potentially inflict stat altering flags.

Maybe I'm misunderstanding something.  So if I change $D2:C9AF to 00, that would make the werewolf form's attack power and non-werewolf form to be the same power? (aka making werewolf form meaningless, at least in terms of damage output)

Share this post


Link to post
Share on other sites

...I'm not interested in further discussions of a patch I wish I'd have never made in the first place.
It wasted a lot of time, attracted some annoying people which wasted even more time and didn't produce anything I care about at all - I shoulda learn to say no, really...

If I had any say in the matter in the matter I'd just make that fix-only version disappear completely.

On 5/3/2020 at 7:11 AM, hmsong said:

I released a balance patch several days ago

I'd have been ok if the no enemy counter thing was a small part of a proper project
but as it turns out I did 100% of the work
which I'm NOT ok with.

Share this post


Link to post
Share on other sites

That's true.  I'll get rid if it.  I hope you accept my sincere apologies.  I'm sorry.

Also, if you wanted that bug patch to disappear, why not just get rid of the link?  Isn't that in your power, as the original creator? (not that I would want you to)

Edited by hmsong

Share this post


Link to post
Share on other sites

I really am sorry.  How do I make up?

I don't think too many people downloaded my patch (which I confirmed is down now).  And people generally post link (just like how a guy sent me a link), rather than pass around the patch via attachment.  Also, I advertised your Sin of Mana patch in my balance patch, but should I not advertise the bug-fix patch?  I was intending on doing that for the next update, but I'll not do that if you don't want me to.

Edited by hmsong

Share this post


Link to post
Share on other sites

Hmsong, are you aware that Speed Up does nothing in the vanilla game? Since Evade and Accuracy do nothing in the original game, there's no point ever casting Speed Up. Maybe you could make Speed Up decrease spell casting time, and the other way around for Speed Down?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now