• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
April 23, 2024, 01:50:07 pm

News:

Please use .png instead of .bmp when uploading unfinished sprites to the forum!


Pride's ASM Thread (MP Switch overflow damages HP)

Started by Pride, April 04, 2011, 07:12:17 am

crazypants

You could also change it to one of the dummied formulas if you want it to be compatible with your other formulas. I don't need it, but I'm just saying.

DrBreen

Pride,you already have Work formula with all the properties of normal formual(element,status,evade etc.),can you remake it to "Dmg_((WP+Y)*PA) DmgToSelf_((WP+Y)*PA/X)"? I think it'll be helpful not only for me but also for alot of the people on forum(Dark Knight yeah)!

Also,not a request but a question. Is it possible to make Wall status function like "every unit targeting unit with Wall will be treated like having Best/Worst Zodiac compatibility with this unit"?

Also,by the way,Work formula hack is AMAZING.

THANK
YOU
PRIDE

Pride

At 0x00122194  replace 81 17 06 0C with 97 17 06 0C.

And it is possible but might be annoying to make (Not sure what good it does either since the AI won't target units with Wall...)

  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

RavenOfRazgriz

Axe/Flail/Bags are PA*WP

Quote@11EC30
1980013C
CE3830A4
20170608
00000000
00000000
00000000
00000000
00000000
00000000
00000000

The 0's are obviously extra space


Gained Experience = XX

Quote0x001178ac
XX000334
21184300
00016228
00000000
00000000

Gained experience = XX (in hex of course)
Doesn't display gained exp correctly


Knight Swords + Katana become PA*WP

Quote0x11EBB4

1980013C
CE3830A4
20170608
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

The 0's are extra space that could be used for something else.


As for what we talked about regarding Formula 2D last night:

Make use of the X variable input, so that the Formula becomes ((XA + Y) * modifier) * WP, using a loop and X value to determine XA and modifier.  (If you see "modifiable divisor", I mean highlight where it can me modded in the code itself, not moddable via FFTP settings, that would be far too overwrought.)

Eg, X of 0 is default 2D, so XA is PA and modifier is 1. X of 1 is MA and 1. X of 2 is SP and 1.  X of 3 is WP and 1.  X of 4 is W-Ev/(modifiable divisor) and 1.  X of 5 is S-EV P/(modifiable divisor) and 1. X of 6 is S-EV M/(modifiable divisor) and 1.  X of 7 is LVL/(modifiable divisor).  Loop, X of 8 is PA again, but the modifier is now 2/3.  X of 9 is MA and 2/3... etc.  X of (10 or 16, I forget if FFTP's X/Y input uses hex or decimal) is PA and 1/2, (11/17) is MA and 1/2... etc.  (18/23) is PA and 1/4..., (20/31) is PA and 4/3, (28/39) is 4/2, etc etc etc. for whatever useful modifiers there are, essentially filling every 2D request that may ever come around at once using this boss loop. You can extend each entry to be out of base 16 (0-F, so the loop resets at a more rounded number in hex) as well if you can think of 8 more statistics to cram in there, or if you want to try applying an XA1 + XA2 setup to 2D. (Something I'll explain below.)

The above can also be applied to Work as well.  Show where and how to mod the *Y of Work to be something like PA, MA, WP so the user can decide what they want, apply the above, but instead of a modifier, make that value be your recoil.  (Obviously you'd use a different set of fractions from 2D, but you get the idea.)

You could also apply the XA1+XA2 setup to Work.  This makes the Formula become (XA1+Y)*XA2 then the recoil factor, and only accepts four statistics instead of 8-16, but gives you more freedom over editing the formula itself.  This must be is base 16.  Perform a loop as before, with 0 as your PA.  Except, this time, it sets both XA factors to PA - so you get (PA+Y)*PA.  1 is PA and MA, or (PA+Y)*MA. 2 is PA and SP. 3 is PA and WP. 4 is MA and PA. 5 is MA and MA. 6 is MA and SP. 7 is MA and WP. 8 is SP and PA. 9 is SP and MA. 10/A is SP and SP. 11/B is SP and WP. 12/C is WP and PA. 13/D is WP and MA. 14/E is WP and SP. 15/F is WP and WP.  You use all 16, including redundant ones as PA*WP vs WP*PA due to the Y factor, adding Y to PA and Y to WP yields different results and different scaling, etc.  You then add your modifier or recoil per loop of 16 as usual and its good to go for either 2D or Work, or even other things like the Knight's Break Formula and other things that accept two PA/MA/SP/WP factors.  Which four factors this uses can easily be edited as well - you may want to toss them over moddable divisors, so people can easily do things like replacing SP with S-EV P, etc.

There's your challenging hack, Pride.  :p  You can take this a lot farther with a YA3 factor and other things, but this stuff's really the baseline, so I figured I'd stop the gravy train here for now.  This stuff is basically the principle behind FDC's huge formula hack though, except taken 1000x farther via flags - highly variable formula that can serve up to 16 different roles at once by default.  He just adds the flags in, so each of those 16 roles gains an extra 20-30-40-50-ohchristwhathtefuckisthis.  If you can stomp out these though, they'll make for good tide overs until FDC's huge hack is done, and knowing how this stuff works will make expanding on said hack easy, since it'll have tons of room for I guess what you'd call "plug ins", if you can even think of Formula it doesn't cover or can't be easily modified to cover somehow.

SentinalBlade

I think When i added the Fury Hack, it simply overode endurance. I wish i could remember. It was nearly 2 years ago that i made Endurance.

If your looking for things to do out of boredom, i always wanted to do something with my Class "Zealot". Basically, the intent was to make an innate support ability, that worked in reverse of endurance. I.E. The lower the hp, the higher your attack goes. Thematically, it was to be called "Rage" and tie in with the story line, and the church's "Zeal" Stone.

Or, something cool would be a support ability that lets you do more damage when you have a status afflicted

I wish i had more time, lately. I miss ASM

Pride

I'll have to look into it.... Cause that's a strange occurrence. But I think I'll do the Zealot one as it seems fun enough to do for fun ^_^

Pokeytax was kind enough to make a spreadsheet for the current hack I was working on, which is attached on the first post. It creates a "Defensive" number for each job that reduces damage (either magical or physical) by a percent based on X/256, so 0x19 (25) would act as 10% decrease and 0xFF (255) would decrease the damage by 99%. You check the AI flag Magic Defense Up or Defense Up in the Patcher to determine what stat the attack will draw from or you just don't check either one and it'll ignore the units defensive boost. Enjoy!
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

DrBreen

Don't want to be an annoyance,but Pride,
QuoteAt 0x00122194  replace 81 17 06 0C with 97 17 06 0C.

makes formula damage functions like (WP+Y)*PA*Y/100,so,with low Y it's useless,but with high Y it's overpowered.
Or i patched something wrong?

Pride

...

That's... really strange. I can't fathom why it would be doing that... Could you do me a favor a open your battle.bin to 0x11EE04 and copy and paste from 0x11EE5C to 0x11EE90. I'm wondering if there is any changes in that section for you then what should be there.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

DrBreen

April 29, 2011, 12:21:00 pm #28 Last Edit: April 29, 2011, 12:22:14 pm by DrBreen
Sure!
Here is my BATTLE.BIN from 0x11EE5C to 0x11EE90:
19 80 04 3C 94 2D 84 8C 19 80 02 3C 02 39 42 90 19 80 03 3C FA 38 63 90 36 00 84 90 21 10 43 00 19 80 01 3C D0 38 22 A4 19 80 01 3C CE 38 24 A4 08 00 E0 03 00


That's it.

I also use Abilty Requirement Hack,maybe something from there overrides your modifications?

RavenOfRazgriz

About the YA3 thing, since you wanted me to post it, it's basically like the XA1 and XA2 input, except using Y/8 or Y/16.  Each time you loop through Y, you increment the + by 1, and the actual value in there determines what YA3 is.

Eg, say you wanted to apply this to a basic 2D, with both X and Y being out of base 8 and using the modifier setup I described above, it would become:

(XA1 + Y/8) * YA2 * (modifier).

XA1 and YA2 would be drawing off the same table of values, so both could be PA/MA/SP/WP/W-Ev/S-EvP/S-EvM/LVL depending on whether the input is 0-7.  The difference here is just what the looping does - looping X cycles the modifier value, looping Y increments the Y additive that 2D has natively.  Using this setup, you can make 2D into, well, 2D, 2D with an MA factor, the Punch Art formula ((PA+Y)/2*PA), the Geomancy Formula ((PA+Y)/2*MA)), the Truth/TripleFlame/etc Formula ((MA+Y)/2*MA), and a ton of others.  You can also apply this to the Knight's Break Hit Formula, making it XA1 + YA2 + Y/8 * (modifier) and in turn incredibly customizable, or even to a simple MA+Y or MA*Y Formula, making it XA1(+/*)Y and filling a lot of simple requests at once.

But this is simple stuff.  A more complex one is:

((XA1 + XA2)/2 + (Y/8)) * YA3 * (modifier)

Same deal, but you use the XA1 and XA2 tree, which is out of base 16 and only has combinations for four values.  This, when combined with YA3, however, can represent a number of the more complex formula in the game.  PA+MA/2*WP, aka the Book Formula, can be cranked out of this, among many others.  A variation is (XA1 * YA3 + Y/8) * XA2, which covers formula such as the Katana if you give YA3 input options like Br/100, Fa/100, the inverse of those, etc.  I believe that also covers the Formula of things like Wiznaibus. You can even go completely insane with Formula using 4-factor combinations of XA1/XA2/YA3/YA4 if you wanted.

You can easily apply this to every Formula in the game besides Drain/Raise/Demi and I think 1-2 others by just recycling the code as well.  The fix for Demi and co was kinda nightmarish, so I don't know if you want to go near it.

I'll post the other Formula related stuff we talked about over IRC too, since you said the first one was easy, at the very least:

Take the main bit where the game processes Status and nop part of it out, so every Formula in the game is forced to act like 2D.

Make it so that ATKUP/DEFUP/MATKUP/MDEFUP are wired to the AI Defense UP / MagicDefenseUP flag.  I'm trying to think of a good way to make Martial Arts and Two Hands well-handled here as well, but it's not gone the best so far.  I can't think of anything that's not overly arbitrary or overly complex.

Pride

Quote from: DrBreen on April 29, 2011, 12:21:00 pm
Sure!
Here is my BATTLE.BIN from 0x11EE5C to 0x11EE90:
19 80 04 3C 94 2D 84 8C 19 80 02 3C 02 39 42 90 19 80 03 3C FA 38 63 90 36 00 84 90 21 10 43 00 19 80 01 3C D0 38 22 A4 19 80 01 3C CE 38 24 A4 08 00 E0 03 00


That's it.

I also use Abilty Requirement Hack,maybe something from there overrides your modifications?


Hm... It looks fine and I just tested ingame and I'm getting the correct numbers... So I really don't know what's wrong. There might be something conflicting but I'm not seeing it.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

DrBreen

PRIIIIIIIDE! You're a genius!   :mrgreen:
Your hack about formula 42 works OK,i just tried to repatch it,and suddenly noticed that you made a typo:
QuoteAt 0x00122194  replace 81 17 06 0C with 97 17 06 0C.
.
it should be 0x00123194.
So,i tried it(with my fingers crossed) and it worked!
YEEAH

Pride

Requested by Eternal

0 Gil from battles from the level bonus. War Trophies and gil stolen are still acquired.

BATTLE.bin

0x119efe
Change 83 to 80
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

LastingDawn

Great work here Pride! I was wondering if I could make two requests... I was wondering if you could replace Formula 4E (MA * Y) into (MA * Y) (Hit = MA+X%)? Razele tried to make this long ago, but his hack doesn't appear to do any thing. I was wondering if you could take a look at it?

Also I was wondering if you could make items not look at a "Z" value but normal X's and Y's? This would increase item versatility by a ton and I'm sure would be helpful to others as well.

"Moment's anger can revert to joy,
sadness can be turned to delight.
A nation destroyed cannot be restored,
the dead brought back to life."

Art of War

Beta & Gretchen Forever!!!!

Eternal

  • Modding version: PSX & WotL
"You, no less human than we? Ha! Now there's a beastly thought. You've been less than we from the moment your baseborn father fell upon your mother in whatever gutter saw you sired! You've been chattel since you came into the world drenched in common blood!"
  • Discord username: eternal248#1817

Pride

The first request is pretty simple. I'm assuming Razele was unable to do it back then is because he didn't have the knowledge we do now.

As for the second request... I don't think its possible. I don't have enough knowledge in SCUS and there's no space at the end to the abilities to try and add on.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

RandMuadDib

I know that if you use a formula that references x and/or y with an item, they are considered 0, and there is no room in the FFTPatcher for x and y on items. Perhaps this is because there is no room for x and y values for them?
I will show you the power of SARDIIIIINES!!!!

Pride

  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Tea

Would it instead be possible to replace an x or y value in a formula with z, so it still has versitality?

Pride

This asm creates an individual spell proc for each weapon, so you can have a special staff that cast Esuna at 100% and you don't have the terror of your book that cast Flare at 100%. Obviously this only applies to weapons using Formula 02. To set the rate for each weapon you need to refer to this list. http://ffhacktics.com/wiki/Items_List

Refer to my first post for more details.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?