• Welcome to Final Fantasy Hacktics. Please login or sign up.
 

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Emmy

1
Help! / Re: Enemy Monsters equip items
April 18, 2018, 04:34:09 am
The way to make enemy monsters have equipment is to assign them a gender (male or female), and NOT monster.  They also must not be recruitable, or they'll function as human.  As it was said, I have tried to make monsters equip things legitimately, but the problem is with stupid checks all over the place in the code.  "branch if unit is a monster" followed by "branch if unit has no item equipped in x slot" (why would the first check be necessary if the 2nd check is made). 
2
What are the exact hacks you used?
3
PSX FFT Hacking / Re: ASM Requests
November 25, 2017, 02:28:57 pm
I have no idea what you did, but just use Pride's White Wind formula unless you want a version that could also affect MP. 

As for a "damage and 100% proc" use this for physical attacks. This uses Punch Art's base formula unless you change what punch art does.  You must apply BOTH patches for the formula to work, because the first code depends on the 2nd code to work.  If you want to affect a formula other than 12, you must learn basic asm to change the offset affected.


  <Patch name="Formula 12 - Physical damage, Status proc 100%">
    <Description>Takes elements, evasion, status proc as indexed by status byte.  Requires inner routine - physical elemental damage.</Description>
    <Location file="BATTLE_BIN" offset="12212c">
E8FFBD27
1000BFAF
4421060C
00000000
05004014
00000000
1B79050C
00000000
AD1F060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

  <Patch name="Inner routine - physical elemental damage">
    <Description>Returns r2 = 0 if conditional 19% roll hits.  Calculates critical hit, element, physical damage using punch art formula.  A requirement for several formulas, as listed in description.</Description>
    <Location file="BATTLE_BIN" offset="f746c">
E8FFBD27
1000BFAF
4017060C
00000000
3E19060C
00000000
FF17060C
00000000
7E21060C
00000000
DF21060C
00000000
05004014
00000000
3F1C060C
00000000
3021060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>
4
PSX FFT Hacking / Re: ASM Requests
November 24, 2017, 02:07:02 am
If those do not exist in the regular xml's, they most certainly exist here:

http://ngplus.net/index.php?/files/file/33-monster-tactics-asm-pack/
5
Help! / Re: Invite Everyone
October 23, 2017, 12:33:37 pm
What version of Patcher are you on?  ??? is labeled for me on the newest one.
6
Help! / Re: Make Knight's Breaks add Status Effects?
September 18, 2017, 01:01:37 pm
I'm pretty sure what you're thinking of hasn't been done.  However, MT's break skills are crazy good, even in a game where 98% of enemies don't have equipment.  I made break into something more similar to Meliadoul's vanilla abilities (only that they hit monsters too). 

ASM for this (along with required code):


  <Patch name="Formula 40 - Defense ignoring damage/item break">
    <Description>Requires break/steal/mighty sword de-hardcoding.  Requires Disable defend/merge equip change, maintenance, move-find on move-find's slot.  Deals defense ignoring damage PA^2. If item indexed is present and unit doesn't have Maintenance (merged to move find slot), item is broken.</Description>
    <Location file="BATTLE_BIN" offset="123088">
E8FFBD27
1000BFAF
4421060C
00000000
19004014
00000000
19800A3C
942D4D8D
982D4B8D
902D4C8D
3600A291
95006391
18004200
80000434
250084A1
01000434
000084A1
12100000
01006330
040082A5
09006014
00000000
721E060C
00000000
05004014
00000000
19800A3C
902D4C8D
04000234
100082A5
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

<Patch name="Break/Steal/Mighty Sword de-hardcoding">
<Description>
    This removes the hard-code on STEAL, MIGHTY SWORD, and BREAK.  This means any skill taking those formulas can break stuff and MIGHTY SWORD will work on units if they do not equip anything to break (but will still be blocked by maintenance).  This means, among other things, that you can create Accessory Break.
    This formula reads the unused Y value in those three formulas.  Y = 5 breaks the head slot, Y = 4 breaks the armor slot, Y = 3 breaks the accessory slot, Y = 2 breaks the weapon slot, Y = 1 breaks the shield slot, Y = 0 breaks nothing.  Do not insert other values; they WILL cause glitchy effects!  Please update the preexisting BREAK/STEAL/MIGHTY SWORD attacks to correspond to the new rules.

**Changed to work with MT formulas**
</Description>
<Location file="BATTLE_BIN" offset="1209C8">
    1980013C
    FA382390
    982D218C
    05000234
    1A002424
    00008590
    06004314
    FF000634
    0400A610
    04000634
    04304600
    8F1E0608
    A50126A0
    FFFF4224
    03004628
    F5FFC010
    01008424
    0E004010
    00008590
    F9FF4314
    FF000634
    0500A614
    04000634
    02008590
    FF000634
    F3FFA610
    01000634
    04304600
    A50126A0
    8F0125A0
    0800E003
    21100000
    FE000234
    950122A0
    0800E003
    8F0120A0
</Location>
</Patch>

  <Patch name="Disable Defend. Merge Equip Change, Maintenance, Move-Find on Move-Find's slot">
    <Description>^^^^^</Description>
    <Location file="BATTLE_BIN" offset="11a450">    <!-- Equip Change -->
95006690
    </Location>
    <Location file="BATTLE_BIN" offset="11a4c8">    <!-- Disables Defend (required for Equip Change's move to work) -->
03000010
    </Location>
    <Location file="BATTLE_BIN" offset="11a4d8">    <!-- Equip Change -->
0100C230
    </Location>
    <Location file="BATTLE_BIN" offset="120644">    <!-- Maintenance -->
95004290
00000000
01004230
    </Location>
  </Patch>


However if you still *really* want it to apply status as well as breaking an item, you can learn asm.  This is a relatively simple hack to make for someone experienced with asm (is literally just 2 additional lines of code, one of which is a nop), since the inflict status byte isn't used by these formulas.  Though because you're adding to the code, you'll also have to either move the code of the formula that you're using for break, or copy over a longer unused formula.
7
Help! / Re: Passive Weapon Leveling
September 10, 2017, 10:45:19 am
The best bet for this would probably be a unique formula for the sword itself, instead of the usual pa * wp formula; and if he has sword skills that use this sword, they also need to scale to whatever you use for punch art instead of to pa * (wp+y).  I'd need to know how you plan on scaling the rest of the game in order to have a good suggestion for this formula.
8
Archer's set needs both the Skillset behaviors or Generic Skillset Fix to change it into a normal skillset (both are the same thing, Skillset Behaviors is in an easier to use spreadsheet) and this hack to remove the hardcoding that causes characters to cancel their own skills by moving if you want to change it into a regular set:

  <Patch name="Silly hardcoding removal, related to skillset 08">
    <Description>If you use skillset 08 (charge) for anything other than charge, you want to use this hack.  This eliminates the hardcoding that causes characters to cancel their own spells by moving.</Description>
    <Location file="BATTLE_BIN" offset="1191a0">
FFFF0234
    </Location>
  </Patch>
9
Help! / Re: Some Formula Questions
August 14, 2017, 09:15:04 pm
1. Yes.
1a. Depends on the formula.  Some, for example, have a hit rate like fa(ma+x)%, pa+x%, whatever else.  For abilities that proc status/ability, it's always 100% or 19%.

2. Pretty sure these formulas take most flags without having to edit the formula.

3.  Not sure if this is what you're looking for, but this will heal regardless of if the unit has the status or not if the move hits.  It reverses on undead, and 100% applies the status if it hits.  Which means you can use it to revive if you set the status inflicted to include "cancel dead."


  <Patch name="Formula 3F - Fa(MA+X)% hit rate, Quadratic heal, 100% status">
    <Description>^^^^^</Description>
    <Location file="BATTLE_BIN" offset="12302c">
E8FFBD27
1000BFAF
6017060C
00000000
0022060C
00000000
09004014
00000000
3017060C
00000000
1622060C
00000000
D41C060C
00000000
AD1F060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


3a. This is heal MP with 19% status proc.


  <Patch name="Formula 27 = Improved Mana Battery">
    <Description>Heal Mp (PA+Y)/2 * MA, inflict status 19%</Description>
    <Location file="BATTLE_BIN" offset="122828">
E8FFBD27
1000BFAF
5017060C
00000000
1622060C
00000000
3B1D060C
00000000
3021060C
00000000
03004014
00000000
AD1F060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


4. I have a few formulas that can damage both HP and MP, this is the least gimmicky of them.


  <Patch name="Formula 60 = Physical elemental damage hp/mp">
    <Description>Requires physical elemental inner routine. Accepts evasion and element.  If it deals damage, will deal MP damage equal to the damage dealt.  If it heals, will heal MP equal to the damage healed.</Description>
    <Location file="BATTLE_BIN" offset="123af8">
      53790508
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="f754c">
      E8FFBD27
      1000BFAF
      4421060C
      00000000
      13004014
      00000000
      1B79050C
      00000000
      19800A3C
      902D498D
      00000000
      04002395
      06002495
      25002591
      04006010
      00000000
      080023A5
      2000A534
      250025A1
      04008010
      00000000
      0A0024A5
      1000A534
      250025A1
      1000BF8F
      1800BD27
      0800E003
      00000000
    </Location>
  </Patch>

  <Patch name="Inner routine - physical elemental damage">
    <Description>Returns r2 = 0 if conditional 19% roll hits.  Calculates critical hit, element, physical damage using punch art formula.  A requirement for several formulas, as listed in description.</Description>
    <Location file="BATTLE_BIN" offset="f746c">
E8FFBD27
1000BFAF
4017060C
00000000
3E19060C
00000000
FF17060C
00000000
7E21060C
00000000
DF21060C
00000000
05004014
00000000
3F1C060C
00000000
3021060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


Attaching my formula pack in case you have other formula requests.
10
Help! / Re: Tanking? Expanded Party?
August 14, 2017, 06:16:43 pm
Expanded party = no, unless you figure out a fix to uprooting guest slots for player characters (hack that currently exists is buggy, but if you get good with asm, you might be able to fix it).  There is also a hard limit of 16 sprites, 9 spritesheets on the battlefield, which there's no way to change this.  So if you want to have for example, 5 player characters and 3 guests, that leaves you with a max of 8 enemies who all have to share the same spritesheet.

Creating new skills is definitely possible.  MT's skills are about 70% custom, and there are a lot of defensive skills.  Feel free to use/modify my asm, though keep in mind many of these are written for MT and require other custom code as a result of this. 

http://ngplus.net/index.php?/files/file/33-monster-tactics-asm-pack/
11
It was just convenient space, can be placed anywhere in scus that you can make for it.  Only thing is, since it is scus space that is necessary, good luck finding another part of scus to put it unless you're willing to get rid of something or rewrite routines yourself to save the space for it. :(  I just put it there because I got rid of monster breeding in MT.
12
Help! / Re: 9999 JP on All Jobs
August 14, 2017, 03:15:17 pm
13
No it can't.  You'll have to use Glain's hack for that, and they're incompatible with each other (due to using the same unknown fields to do different things).
14
This is what I use:


  <Patch name="Unknown 1 and 2 = new item attributes">
    <Description>Requires No Monster Breeding (overwrites code that lays eggs). Unknown 1 = byte you want affected, Unknown 2 = amount you want it affected by.  Adds to item attributes.

Some useful values for byte 1: 33 = PA, 34 = MA, 35 = Speed, 3a = Move, 3b = Jump, 4a-4d = Equippable items (make an item grant the ability to grant other items), 4e-52 = innate statuses, 53-57 = status immunities, etc. 

You can even add use of R/s/m through an item this way! :):):) 

Credit to Pride to finding my mistake (twice).
Version 1.3 improvements:
1. Works! (old version didn't work as more than just a proof of concept, please use this instead)
2. Can affect HP and MP now
3. Works properly with value caps

Does not accept signed values, or values greater than 0x7f for PA/MA/Speed/Move/Jump bonuses.  Sorry :(
</Description>
    <Location file="SCUS_942_21" offset="4a618">
06002291
2A000834
DFFF4324
2500632C
11006010
21282202
03004810
2E000834
07004814
00000000
0B002391
0000AB94
00000000
21586301
0C000010
0000ABA4
0B002381
0000AB80
00000000
20586301
06000010
0000ABA0
0B002391
0000AB90
00000000
25586301
0000ABA0
07002391
AE710108
03008824
    </Location>
    <Location file="SCUS_942_21" offset="4ceb0">
      86670108
      00000000
    </Location>
  </Patch>

<Patch name="No monster breeding">
    <Location file="WORLD_WORLD_BIN" offset="45b6e">42</Location>
  </Patch>



Doesn't give negative stats, but it does allow you to use the unused bytes on every item to give one byte worth of unit data changes to any character temporarily with the item.  This can do stuff like granting fly, but also can allow for making a +1 pa item without having to use an attribute for that.
15
I actually like flaws as a way to encourage out of the box thinking.  It's one way that I allowed for more items that retain use throughout the length of the game instead of being immediately upgraded and thrown away by the next shop upgrade.  Just going by your example of an item with a significant bonus, but with Poison innate and immunity to Regen and Critical, that "significant" bonus would have to be very significant to be worth it to most people with vanilla abilities.  However, with a couple of the abilities that exist in MT, that drawback could be turned into an advantage.  Poison Heal and Marvel Scale can turn a unit into a tank, while Guts would turn it into an offensive beast (these abilities are very similar to what they do in Pokemon). 

Now, how I balance/introduce items like this into the game is by making the earlier items having more obvious utility (say, 25% damage reduction or immune: charm, don't move, don't act) while the later items might have better bonuses but also include drawbacks (say, 35% damage reduction, innate poison; or immune to petrify, frog, slow, haste, stop).  In these cases, while the earlier stuff is still useful, you can make later stuff outclass it with some out of the box thinking with the abilities I have provided the player.
16
Personally, I removed growth differences across the jobs and all level up/down abilities.  Main reason I did this is because growths in FFT are done in a way that's unintuitive and not explained to the player either.  MT is reasonably difficult, and I didn't want players to think that they bricked their saves because they spent all of ch 2 as a chemist or whatever else, especially if they want to attempt the Deep Dungeon/chapter 5/difficult extra battles.  Abilities that increase/decrease level quite frankly have no place in the game, even when the growth differences are removed.
17
You could take the approach of balancing that MT has, and use entirely custom formulas with a new consistency as to what takes faith and what does not.  The problem with vanilla here is that there's no consistency  - plenty of stuff does "magic-like" effects or takes MA in their formulas with no faith calculation.  Stuff also randomly uses linear or quadratic formulas.  Choose whether you want to use linear or quadratic formulas for everything and stay married to your choice.  This will prevent a lot of balance headaches later.  Also, keep in mind before you remove zodiac compatibility is that having another form of variance in battles is a mostly positive thing - it makes different fights of the same battles different.  You can reduce the amount of difference it makes, and also remove the place where vanilla will calculate compatibility twice in some formulas:


<Patch name="Compatibility is no longer calculated twice for no reason in spell accuracy, silly hardcoding to Golem's slot removed">
    <Description>nop nop</Description>
    <Location file="BATTLE_BIN" offset="11f5b0">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f5d0">
      00000000
    </Location>
  </Patch>


I don't think what you're thinking of can easily be done, however if you want to make Golem not completely horrid to the ai, you can try Dokurider's hack:


   <Patch name="Priority Score Fixes">
      <Description>Improves upon the AI's interaction with Golem and gives priority to Stat Abilities&#13;&#10;Reduces Golem's Priority to a maximum of 7C / 5 time the number of units on a team&#13;&#10;Replaces the Damaged Golem check with a Stat Ability check. &#13;&#10;Golem fix is the same as the previous one I released except it now skips if no golem is present, for increased thinking speed.&#13;&#10;Very basic fixes, but gets the job done. &#13;&#10;Version 2</Description>
      <Location file="BATTLE_BIN" offset="136A3C">
         00000334   <!-- Initialize r3 -->
      </Location>
      <Location file="BATTLE_BIN" offset="136A54">
         05000534   <!-- Divide Golem HP by 5 -->
         0400C010   <!-- Branch if no Golem HP -->
         C2300600   <!-- Divide Golem HP by 8 -->
         1A00C500   <!-- Golem / 5 -->
      </Location>
      <Location file="BATTLE_BIN" offset="136A68">
         2138E300   <!-- Add Golem HP to Priority -->
         34182291   <!-- Load Enemy Flag -->
         00000000
         02004010   <!-- Branch if not Enemy -->
         00000000
         23380700   <!-- Invert Priority -->
         32004296   <!-- Load Current Unit Target Priority Value -->
         00000000
         21104700   <!-- Add/Subtract from current Target Priority -->
         320042A6   <!-- Save New Unit Target Priority Value -->
         21482A01   <!-- Unit AI Data++ -->
         01004A25   <!-- Unit AI++ -->
         15003126   <!-- Unit++ -->
         1500222A
         62FF4014   <!-- Loop for all units -->
         C0016B25   <!-- Unit Data++ -->
         0C004392   <!-- Load AI Ability Flags 1 -->
         32004796   <!-- Load Ability Priority -->
         08006330
         02006010   <!-- Branch if not a Stat Ability -->
         0900E724   <!-- Ability Priority + 9 -->
         320047A6   <!-- Save new Priority -->
      </Location>
      <Location file="BATTLE_BIN" offset="136E24">
         F7FF1E34   <!-- Priority Score - 9 -->
         00000000
      </Location>
      <Location file="BATTLE_BIN" offset="136F34">
         BA0C2292   <!-- Moved Old Code Up -->
         00000000
         01004224
         BA0C22A2
         B80C2296
         2A004396
         2E0E2492
         21104300
         2D000416
         B80C22A6
         01001634
         21103002
         8D0C4290
         00000000
         2D004010
         01000234
         BA1922A2
         3800A28F
         1200A327
         01004224
         3800A2AF
         21106200
         00004290
         00000000
         B2FF5514
         00000000
         1A80043C
         F3018390   <!-- Load Unit Battle ID -->
         C0F3848C   <!-- Load AI Extended Status Data -->
         80190300   <!-- ID * 64 -->
         21208300   <!-- Get Current Ability Data -->
         20008390   <!-- Load Current Ability CT -->
         01002292   <!-- Load New Ability CT -->
         FF000434
         08006410   <!-- Branch if not currently charging an ability -->
         00000000
         32002496   <!-- Load Current Priority -->
         05006210   <!-- Branch if the same CTs -->
         21209E00   <!-- Add to Priority (r30 is zero unless Stats) -->
         F8770608   <!-- Jump to next routine -->
         320024A6   <!-- Save New Priority -->
         00000000
         00000000
      </Location>
   </Patch>
18
This hack will make Counter Flood cast any indexed ability with the Counter Flood flag as trigger.  If you're not using geomancy at all, this means you can change it to cast any other ability in the game.


  <Patch name="Counter Flood uses Flood Ball">
    <Description>This allows for Counter Flood to work by using an ability instead of vanilla geomancy.  If you changed geomancy with my other codes, this is required to make Counter Flood work.</Description>
    <Location file="SCUS_942_21" offset="4f3df">
      29
    </Location>
    <Location file="BATTLE_BIN" offset="11731c">
      21202002
      0B000534
      F7F80508
      7E000634  <!-- Ability used is indexed here (0x007e default) -->
    </Location>
  </Patch>


Change the 7e00 to reference whatever ability you want (bytes reversed).  For example if you want it to cast ability # 0123, replace 7e00 with 2301. 

I'll have to take a better look at the code to figure out if what you want can be done.  Just got home from work now/not really in the right mindset to do asm.
19
I removed permanent br/fa modification, which goes a long way in preventing the 97/3 armies from taking over.  The reason I did this wasn't purely to nerf the player; but because having a majority of enemies being randomized is much more interesting than having them all start off as 97/3, and because I wanted enemies to be able to use skills that do -br/fa without it being an automatic reset.  This takes care of at least one of your gripes about Blade Grasp.

I wrote a simple hack to make Counter into the physical equivalent of Counter Magic.  For example, if you Earth Slash this unit, it'll Earth Slash you back. This type of change goes nicely with making physical skills that behave like spells.  It also means that Hamedo and Counter have completely different functions.  The other thing that helps this along is giving the ai worthwhile skills to use.  This ends up indirectly nerfing Hamedo without doing anything to its code.


  <Patch name="Counter = physical counterpart to Counter Magic">
    <Description>Counter will counter with the same move used on target, going by Countergrasp flag.</Description>
    <Location file="SCUS_942_21" offset="4F3E4">
      29
    </Location>
    <Location file="BATTLE_BIN" offset="1173d4">
0B000534
00000000
94F9050C
01000734
    </Location>
  </Patch>


2 swords/2 hands multipliers can be toned down.  Remember to do your math in hex if using this hack!


  <Patch name="2 Hands, Attack Up, Martial Arts, 2 Swords rewrite">
    <Description>A more efficient rewrite of these abilities.  This makes it so that you can easily change the amount of bonus given.  Defaults are approximations of vanilla's.</Description>
    <Location file="BATTLE_BIN" offset="11f054">
      19800A3C
      FF384391
      D9384491
      CE384995
      942D4B8D
      01006230
      0A004014
      04006230
      08004010
      00000000
      06008010
      00000000
      00010234  <!-- 2 hands bonus, change 0x0001 to whatever you want to divide by 128 -->
      18004900
      12100000
      C2110200
      CE3842A5
      90006291  <!-- Ability group associated with Attack UP, change 0x90 if moving this -->
      CE384995
      10004230  <!-- Ability slot, change 0x10 if moving Attack Up -->
      06004010
      00000000
      AA000234  <!-- Attack up bonus, change 0xaa00 to whatever you want to divide by 128 -->
      18004900
      12100000
      C2110200
      CE3842A5
      D8384391
      91006291  <!-- Ability group associated with Martial Arts, change 0x91 if moving this --> 
      0A006014
      00000000
      20004230  <!-- Ability slot, change 0x20 if moving Martial Arts -->
      07004010
      00000000
      CE384995
      C0000234  <!-- Martial Arts bonus, change 0xc000 to whatever you want to divide by 128 -->
      18004900
      12100000
      C2110200
      CE3842A5
      91006291  <!-- Ability group associated with 2 swords, change 0x91 if moving this -->
      F3384391
      01004230  <!-- Ability slot, change 0x01 if moving 2 swords -->
      0A004010
      00000000
      20006330
      07006010
      00000000
      CE384995
      60000234  <!-- Penalty per hit, change 0x6000 to whatever you want to divide by 128 -->
      18004900
      12100000
      C2110200
      CE3842A5
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f14c"> <!-- Deletes duplicate routine -->
15180608
00000000
    </Location>
  </Patch>


Weapon Guard I just made innate to everyone (by disabling the slot in a way that is always active) and writing something completely unrelated to that slot.  Most weapons have been given lower evade amounts than they had in vanilla to compensate.  MP Absorb was also rewritten to something completely unrelated on that slot, but keeps the MP cost trigger.  Even with more MP costs/MP management in general, that skill is still meh compared to every other option the player gets.
20
If you've ever seen Monster Tactics, you'd know my answer is to keep as much as possible.  Too many people have the mindset of "nerf everything" as opposed to buffing all the other options to be unique and usable.  One of the major reasons stuff like 2 swords seems OP is there's literally nothing else competing for that slot besides stuff that has the same end effect of doing more damage unconditionally (2 hands, attack up, martial arts, etc), or perhaps stuff like Short Charge for caster units (who would probably be using Math Skill or be switched to the physical tree later in the game).  What else are you going to put there? Equip Axe?  So part of balancing these other abilities is writing relevant abilities to the other slots.  You can look to mine, or learn asm and think of something new.

Keep in mind too if you keep a lot of the higher end abilities unnerfed (Blade Grasp, MP Switch, etc) and make more good abilities that the rest of the game needs to be balanced in a way to keep things from being mindless.  Another major reason that Blade Grasp was broken in vanilla is that the vast majority of enemies could do nothing about it.  A typical enemy is a job lv 1 Knight or Archer.  If the most threatening ability known by it is Charge +2 or potion, and they have nothing in terms of spells or status effects, the AI has no choice besides rushing forward and attacking or healing itself when it's almost dead.  However, Blade Grasp won't save you against Petrify or Frog, nor will it do anything against magic.

As for MP, I've balanced it solely on the existence of abilities such as Amplify (+1 aoe on abilities that cost mp/2x MP cost) and Siphon (ability costs no mp for the user, double MP cost's damage done to target), unique formulas such as Ignite (deals damage to both MP and HP equal to MP) and Invert (switches target's current MP and HP, dealing damage/healing accordingly), MP cost trigger reactions, MP Switch, and all the different ways that characters have to heal and damage MP.  Characters at higher levels commonly have hundreds of MP, yet MP management is still relevant. 

Spell CT is an often overlooked balancing factor for abilities.  I've directly correlated Y values with spell ct's (to where more powerful spells have higher CT), with exceptions given based on things like more powerful procs or larger aoe.  There's no reason why you can't make physical abilities that follow the usual rules of spells (MP cost, CT, reflect/silence flags, etc), yet use PA based formulas and the physical flags (takes p-ev, protect, countergrasp, etc).