News:

The forum has been updated to SMF (2.1.3)!
Please be patient as we work to polish up the place and update features as we can.

Main Menu

Ideas for Optimizing Golden Sun

Started by Salanewt, 01, August, 2014, 09:34:00 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Salanewt

Jamie: That or something like Hex Editor Neo would work, yeah.

Second edit: Sort of. In an unpatched version of the game, each pointer corresponds to an ability effect from 8-85. It's basically "base location + (ID x 4) = pointer" for every effect in that range. Using the patch, every byte from a certain address on corresponds to an ability effect. The table in both cases is at #080B0528!

Third: Huh, that's interesting. Does it work fine for base damage, or does it fail for all HP-damaging formulas? If it's the latter, then the effect could be set up to only account for damage to PP rather than HP; you could benefit from a "restores PP based on HP damage" effect in this case.

Role:
Revive: I guess, but I'd think it would be more worthwhile to just make the amount revival effects heal dependent on what an existing healing formula heals, and then add additional ability effects for whatever else is desired by the hack owner. That way, you don't have to add what is basically a duplicate formula with the distinction of also being an ability effect.

Formula Overhaul: Well... None of this has a lot to do with pure optimization, but I can bite. Expanding abilities like that would require rewriting some of the existing code and relocating the ability data (or reducing the amount of abilities in the game), while not doing that can afford you about four more ability formulas overall; six if you scrap two of the clone values and leave out the HP% or PP% formulas (summon is the same as base damage if I'm not mistaken, and you could probably figure out another way to assign priority and get rid of the other effect only formula).

Stats: Yeah, that's basically one of the examples of what doesn't qualify as optimization in the first post; reason being that it's a major overhaul and it has little to do with streamlining parts of the game for ease of use. I'm sure it could be done with enough work, but something like that could take forever when the game doesn't account for them already. Plus there are already the eStats that seem to do the same thing...
Oh yeah baby, £ me harder.

Fusion is just a cheap tactic to make weak Adepts stronger.

Yoshi's Lighthouse is a hacking website in progress. Why not check it out if you like Yoshi or the Mario & Luigi games?

Aile~♥

What I meant is "has anyone ever recorded, somewhere on these forums, what ability effect is at what offset to make my life easier if I want to change the effect rates around?"

What the "User may drain PP from target" effect does if used with the Base Damage formula is that, if the effect triggers, the target's PP is damaged instead of their HP, and the user recovers PP equal to the damage dealt. I would really, really like it if it worked the same way for Added Damage or Multiplier formulas.

On the subject of formulas, what I'd like is simply a basic modification to the Editor that makes the four empty formula slots selectable when editing abilities, so they can be used with patches that add formulas. Also, Summon Damage is not the same as Base Damage. The two formulas have differing damage diffusion. Summon Damage effects deal less damage to secondary targets than Base Damage effects do.
[sprite=16, 6, 0]:P[/sprite]

Lloyd: Easy as pie.
Genis: Sweet!
Presea: ...Sweetie pie...
Zelos: Let's not start on this again...

[spoiler=epic mindscrew][/spoiler]

Salanewt

#22
As in actual, fully recorded locations? Well, for success rates, it's basically "#080B0528 is effect 8's rate, 080B052C is effect 9's rate, #080B0530 is effect 10's rate, etc."  if you're not using the patch. Every pointer in that list corresponds to an effect in numerical order from 8-85. If you are using it, then it's "#080B0528 is effect 0's rate, #080B0529 is effect 1's rate..." and so forth, where every effect is a byte in numerical order.

PP: Huh, that's interesting. It actually seems like a pretty useful ability; I'm afraid that it might be coded into the damage formula, but I can't say for sure. I'll probably look into it later, although I'm working on something else at the moment. Something grand and magical, and partially finished but also partially a pain in the butt.  :happy: And also Skyrim.

Formulas: Yeah, I'd love that too. I was actually working on making tiny changes like that at some point, but I'm using a cracked version of the tool and it stopped working with me for some reason. The plan was to do that for formulas, ability types, and ability effects.

Summon: Oh wait, really? Um, is it the same as base damage - diminishing at least?
Oh yeah baby, £ me harder.

Fusion is just a cheap tactic to make weak Adepts stronger.

Yoshi's Lighthouse is a hacking website in progress. Why not check it out if you like Yoshi or the Mario & Luigi games?

Rolina

Oh, here's an idea.  Remove the three diffusion types from formulas - Base, Summon, and Diminishing - and instead have those be togglable option.  For example, let's say you have an AoE physical attack, but you want it to be more of a "hit with some shrapnel effecting an area".  You'd use the physical damage type, a range of 3, with the Diminishing AoE Magnitude.

I think being able to designate magnitudes like you do the AoE size would be great.  If we can do that, we'd also free up space for more formulas, and allow for physical attacks to have diminishing AoEs.

@Summons:  Summons work just like Base Damage and Diminishing - it's base power, with a stronger center.  It's about halfway between Base and Diminishing in magnitude.  The only reason it's "more powerful" is because of the HP Percentile damage associated with the specific ability slots.  Check the Battle Mechanics FAQ on TLA's Gamefaqs page for more info.

Salanewt

Might be a bit tricky or time consuming if it's applied to all formulas, but I'm sure it could be done at some point. Probably more of an overhaul though. I probably won't be able to do it because my summer break is really short this year and I'm working on another couple patches... One or two of which I'm keeping to myself until after I release Disco Sun's balance update! :happy:

Summons: Yeah, I know. I just forgot that its diminishing rate was different.
Oh yeah baby, £ me harder.

Fusion is just a cheap tactic to make weak Adepts stronger.

Yoshi's Lighthouse is a hacking website in progress. Why not check it out if you like Yoshi or the Mario & Luigi games?

Rolina

Honestly, though, I think the best possible update for the editor right now isn't a patch for the game - rather, we desperately need some better keyboard support.  Taking an hour to do one class line is ridiculous, and is arguably what's holding most people back.  I'd say fixing that first might be the best course of action right now, since it'd make updating/modifying hacks significantly faster.

Salanewt

Well maybe, but that's optimizing the editor rather than the game. What you're asking for is actually really easy with a hex editor anyway, you just need to know how to use one first; pretty simple to learn if you're willing. Takes me about 10-20 minutes at most for a group of 5-6 classes (make the first, copy+paste until the same class fills each of the line's slots in a hex editor, tweak the rest of the new classes in the editor). Even then though, I never find that it takes me an hour to make a full set of classes...

Okay, so recent ideas for optimization include universal PP damage for PP drain, tiered luck-base immunity for ailments (instead of a flat 40 cap for certain ailments, which would also allow for disabling it by putting each minimum luck requirement at 100+), Revival stuff, Agility buff fix... Are there any others that wouldn't require a major overhaul or anything? The plan is to keep tabs on these and maybe make patches for them in the future if they are simpler fixes.

Right, I happen to have a PP% formula that works a lot like the HP% one; I'll see if I can isolate it from Disco Sun and upload it when I also upload a DS patch, but it will have the same problems as the HP% one (being no editor support and no field use).
Oh yeah baby, £ me harder.

Fusion is just a cheap tactic to make weak Adepts stronger.

Yoshi's Lighthouse is a hacking website in progress. Why not check it out if you like Yoshi or the Mario & Luigi games?

Rolina

For those whom use the editor as it was presented, without going to the more advanced things like Hex Editing, that's about how long it takes to set everything up - and even then, there's no clear way to handle how you want ailment resistances to work.

Hm, simple fixes, huh?  Do we have abilities that cost HP yet?  I know that was a popular idea.

Luna_blade

HP costing abilities, sounds like fun.

I don't know if this existed already, but what about People joining your party?
They're always the same level (example Mia always starts at level 10) as far as I know.

Would it be something if people that join your party are about as high as your average party?
"Hear the sounds and melodies
Of rilets flowing down
They're the verlasting songs
Whispering all the time
As a warning that behind some rocks
There's a rigid grap even
Oreads fear the tread"

Rolina

Yeah, having a patch that allows the starting XP for characters be the party average is a great idea.  I was so focused on mechanical stuff I forgot about that one.  That's another popularly wanted idea.

Lord Wolfram

Make spell like "farewell"
it takes all pp no mater is it 153 pp points or 1 pp...
spell takes all pp and fully revives all allies or fully heals them and user after that dies.

Rolina

I think that'd need a new formula - one that uses a percentile of current PP rather than a flat value.  These would be "manaburn" style spells that scale with the amount of fuel you have to give them.  I don't think it's optimization so much as a new option - but a good idea nonetheless.

Caledor

Hello guys and girls, i'm new to this forum even though i've been following it for a very long time, but this is something i really want to give my 2 cents to. IMHO what we really need is psynergy that becomes stronger as characters level up, and that is stronger for mage-like characters and less for warriors. I think a bonus dependant on max MP would suffice, something like "multiplier=1+(MAXMP/1000)" to all the base damage spells, which are the ones that suffer the most late-game. Also, rising the elemental power power/resist cap to 255 would help, as well as making the 2 draining psynergies useable (not dependant on enemy luck).

Luna_blade

Quote from: Caledor on 28, August, 2014, 11:38:44 AM
Hello guys and girls, i'm new to this forum even though i've been following it for a very long time, but this is something i really want to give my 2 cents to. IMHO what we really need is psynergy that becomes stronger as characters level up, and that is stronger for mage-like characters and less for warriors. I think a bonus dependant on max MP would suffice, something like "multiplier=1+(MAXMP/1000)" to all the base damage spells, which are the ones that suffer the most late-game. Also, rising the elemental power power/resist cap to 255 would help, as well as making the 2 draining psynergies useable (not dependant on enemy luck).
Welcome! I like your idea.
"Hear the sounds and melodies
Of rilets flowing down
They're the verlasting songs
Whispering all the time
As a warning that behind some rocks
There's a rigid grap even
Oreads fear the tread"

Rolina

Yeah, that's an idea we've had before.  I don't remember who first suggested it, though.  That would fall under formula editing, which would be a new feature we'd need to implement.  I might also suggest having max PP factor into psynergy defense as well, but at half the weight as offense.

Caledor

There is still someone willing to work at this game that knows this stuff? By myself I only managed to rise the elemental cap to 255 among many other things I implemented in my roms, mostly from ideas found here, like your eight character class system Rolina. ;)

Salanewt

While it doesn't have much to do with optimizing the game, I could offer a tiny suggestion for this PP cost stuff. If you can find the code that handles PP cost deduction (a breakpoint on PP when casting a spell should do it), you could probably code an exception for a certain selection of abilities and use different deduction code; for example, you could pick abilities 300-320 and have them follow a formula that basically goes Cost / 1000 * PP, where "Cost" is a value from 0-1000. The same could be done with HP if one wanted (either with formula or with plain subtraction). I'm a tad tired, but I think that would work. Either that or a list for every ability that decides how the deduction will work. Something like "0 = PP subtraction, 1 = HP subtraction, 2 = PP formula, 3 = HP formula" maybe.

As for this "formula editing feature," what you would probably want to do is download a compiler somewhere and learn how assembly works. It's basically the same as saying "we need a C++ editor" or a "we need a Java editor" and it's not really practical for a basic editor beyond more minor functions. Regardless, adding the "1+(PP/1000)" portion would definitely require you change whichever formulas you want to use max PP for damage calculations.

Also, welcome and enjoy your stay and stuff!


Party Exp average: It depends on how you want to do it, but I imagine a simpler fix would be to change the code from "join at so-and-so level" to "grab so-and-so level and recalculate with party Exp average + current character Exp." If you don't want the base level at all, then you may be able to just average the party experience values and calculate the character level from there... Oh, and you would need some way to check how many characters your party currently has. Going by flags could work; check for existing characters, add their experience values together, and divide by the amount of existing characters you have.

Or you could take a simpler route and just tweak the averaging formula for each character, but this requires that you plan ahead so you know exactly when each character will be acquired and may also take up a little more space. GS1 would basically work like "when Ivan joins, add Isaac + Garet, divide by 2, and calculate level; when Mia joins, add Isaac, Garet, and Ivan, divide by 3, and calculate level." Same deal with GS2, just with slightly different calculations.
Oh yeah baby, £ me harder.

Fusion is just a cheap tactic to make weak Adepts stronger.

Yoshi's Lighthouse is a hacking website in progress. Why not check it out if you like Yoshi or the Mario & Luigi games?

Misery

Quote from: Lord Squirtle on 29, August, 2014, 09:10:44 PM
As for this "formula editing feature," what you would probably want to do is download a compiler somewhere and learn how assembly works. It's basically the same as saying "we need a C++ editor" or a "we need a Java editor" and it's not really practical for a basic editor beyond more minor functions.
I don't think there is any compiler for ARM/THUMB assembly, would be glad to be proved wrong about that though.

Agree that formula editing would be impractical to do beyond the most basic things, but just being able to change the non-dynamic values used in the current formulas would probably be enough for a lot of people.

Salanewt

I know for sure that there are a few if you're willing to pick one and learn how to use it, but I think there are also a couple floating around on the Pokemon Community somewhere... They are rather hard to find if you don't know what to search for though.

It definitely depends on what one wants to do with a formula, but being able to make some minor changes wouldn't be terribly hard to do depending on what you want it to do. For example, the healing formula (not explained perfectly in the image, but this was a while ago):




It's actually pretty short. If you know;
a) Where unit data is stored,
b) What some of these instructions mean, and
c) How branching works;

Then you could easily figure out what this function does without a guide or any really advanced tools and tweak it to do whatever you want it to do.

It's kind of hard to say how useful this sort of feature would actually be if added to the editor though, especially when certain features (like the class/party separation patch) are awful and you have to rework your hack just to avoid having them screw you over constantly. It winds up being utterly useless if someone changes the formula and the editor reads the wrong instructions; even worse if the editor saves any default info (like that bloody class/party separation patch) and makes using the tool a bigger pain than it's worth after manually changing the ROM yourself. The editor would probably have to be able to understand assembly for the feature to not be broken on some level, although not having it save default information would be a huge step in the right direction (looking at you, class/party separation patch). Definitely more of an editor optimization and may not be suited for this topic, but I can see the appeal for it.

Oh yeah baby, £ me harder.

Fusion is just a cheap tactic to make weak Adepts stronger.

Yoshi's Lighthouse is a hacking website in progress. Why not check it out if you like Yoshi or the Mario & Luigi games?

Caledor

this is very good news. I know basic assembly so i think i can manage to write down the multiplier i mentioned in thumb and i can find where the base damage formula is thanks to teawater's gs2codedatalist; what actually worries me is the space... where can we put the whole thing in the rom?