Author Topic: Grimoire LD's Notes, Patches, and Hacks (Dark Knight/Paladin Swap In Battle!)  (Read 78631 times)

fedorajoe

  • Mom Bomb
  • *
  • Posts: 123
  • Gender: Male
  • "G...Golbez!"
    • View Profile
Oh gosh, how cool is that???  I had thought that all of the dummy spells were in fact used somewhere, but if there are two truly unused spots, then that is exactly what I'll do.

Thanks again!

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
Here's a little trick I learned (probably not new) but I was wondering how I would go about nerfing the power of Bio (Virus) against certain foes. So a trick I used was to make Bio "Immune" element. If an enemy has Immune they will then treat it as an Immune spell as in it will deal 1 damage. This decreases its effectiveness against certain varieties of foes, but it's still a powerful choice to make in most circumstances.

chillyfeez

  • FF4 Hacker
  • *
  • Posts: 1,285
  • Gender: Male
  • Go ahead, ask me about Angel Feathers!
    • View Profile
That's cool! New to me, anyway. How does the game react if the target is "immune" to a different element?

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
It will react as if they Resist Immune as well, but looking through the default game there aren't that many foes with Immunity to elements. On a little more extra testing, this also has the side effect of making anything with a x4 Weakness x4 Weak to Bio. But if you give them Resist Immune then it will deal only one damage to them regardless.

I was growing a little worried at first that I would need to make Bio not hit bosses to compensate for some bosses., but giving them the Immune Resistance fixes that worry.

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
I've been working on my actual patch for a while now (you can see all of the detailed changes here)

But I thought it was a good idea to post what I've done with some of my research. I've managed to turn Piercing Sight and Aura into their own sections of gameplay rather than just curiousities that might get one look at and never used again. So in essence this post is about putting theory into practice (this is a repost from my romhacking.net topic on my patch but it displays in full the integration of Piercing Sight and Aura)

This update has been a bit of time coming. I always liked that The After Years made the Devil's Road (Serpent Road in this) into an actual area so I took my own interpretation of it.

The party of Palom/Porom/Tellah is highly unique in that there is a strong focus on magic moreso than anything, but the problem with the party formation is that it's only around for half of a pretty small area. I decided to let this crew tackle another area called the Serpent Road.

The unique enemies here are inescapable and each one has their own powerful tactics against the player.



The area is based around fake walls so there is a heavy element of trickery and because of this the place becomes labyrinthine with false leads and dashed hope (remember this Is a difficulty hack as well, hehe)

The enemies here are more geared towards this party, but I made one specific decision. Each enemy here would be resistant to Bio (Virus). Which will be the only spell in the game to be Immune Elemental. Which means that you may find it dealing 1 damage to some foes you might not expect it to.




You may find your weapons lacking in damage...



But there are ways around that! The unique enemies in the Serpent Road are mostly Mage types, which if Palom is sufficiently leveled or Tellah sufficiently geared he can cast the new spell Aura on Cecil and give him several Strong Against certain races of Foe.



This makes Cecil's damage go from that to this....


(Note: In this particular picture Cecil is using the Traveler's Knife which has a chance to cast Scan on hit which it did here, and that is why Scan is displayed as if Cast... because it was cast along with damage)

If you find your lack of strong damage against these foes as worrying, you may use Tellah's Piercing Sight spell to randomly change the elemental weakness of the foe!




Now it is weak to Fire which Tellah or Palom can exploit to the fullest!



With these new tools at your disposal the harrowing Serpent Road will still be a trek, but it is doable, make no mistake about it.

However this is the point in the game where the player should adapt to their new toys or else they will be outclassed by many manner of foes moving forward.

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
It's been a while since I posted in my own topic, but my interests have swayed here and there over the past few months, I had decided to revisit one of my hacks which always bothered me because of its "just-so" point of execution, my Imbued Weapons hack.

In theory it was a great idea. Take the broken code of the Calcify Routine and add a bunch of conditional checks for weapons that would activate their special Commands from normal weapons, unfortunately in practice it left a little to be desired... When the check failed the message "The Weapon glows bright!" showed up which indicated that yes the Status Check passed, but the secondary RNG check failed. This made it's occurrence a bit rarer than actually intended and it wouldn't work against certain foes at all! Also if you happened to kill the Foe with the weapon the status would Never occur so the Command could never execute. Meaning that the downside or upside of some of the commands (Ancient Sword - Regen, Thief Knife - Steal, etc) couldn't occur if the enemy was also being killed. This was not optimum and made the effects much rarer than intended.

Now I've changed the hack to be more... well moddable. The new hack takes the ill-planned "IF Target is Charging divide their defenses by 2" and changes it to "IF Caster is using a weapon with the Calcify1 Routine Place Caster's Accuracty into A then JSR to Imbued Weapons Routine."

This has an RNG bounced off of it where it will return a value from 00 to the Caster's Accuracy, if the check fails (Vs. Above 50) (which it always will by status infliction default due to the status coding above it, that is not accessed by this Jump) then Return.

Here is the new code which will be edited into the Imbued Weapons post...

Code: [Select]
-----------------------------------------------------------------------------------------------------------------------------------------
$03/C740 AD 9F 26 LDA $269F  [$7E:269F] A:0000 X:0000 Y:0000 P:envMxdiZC - Load Caster's Attack Status Byte 2 into A.
$03/C743 29 01 AND #$01 A:0001 X:0000 Y:0000 P:envMxdizC - Is it Calcify 1?
$03/C745 F0 06 BEQ $06    [$C74D] A:0001 X:0000 Y:0000 P:envMxdizC - If not, branch to next portion of Defense determination...
-----------------------------------------------------------------------------------------------------------------------------------------
$03/C747 AD 9C 26 LDA $269C  [$7E:269C] A:0001 X:0000 Y:0000 P:envMxdizC - Load Caster's Accuracy into A.
$03/C74A 20 E6 CB JSR $CBE6  [$03:CBE6] A:0063 X:0000 Y:0000 P:envMxdizC - Jump to Imbued Weapons Subroutine
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$03/CBE6 20 79 83 JSR $8379  [$00:8379] A:0012 X:000F Y:0000 P:envMxdizc - Jump to RNG Routine (00 to Accuracy)
$03/CBE9 C9 32 CMP #$32 A:000B X:0000 Y:0000 P:envMxdizc - Is it 50 or above?
$03/CBEB 90 54 BCC $54    [$CC41] A:000B X:0000 Y:0000 P:eNvMxdizc - If not, branch to end of routine.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

So much more effective than my original coding! Now Imbued Weapons is working 100% as intended.





« Last Edit: July 04, 2014, 11:20:55 AM by Grimoire LD »

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
Alright, so I am still playtesting my hack when I noticed something strange... Shields were giving Dark Knight Cecil a consistent x1 Defense Multiplier, no matter what shield the game would give him x1 Multiplier. I took a look through the Shield bytes and there was nothing in there specifically about that. Now this is a problem from a balancing standpoint... All of my other characters have 0-2 Defense Multipliers but Dark Knight Cecil has 3, making many hits to him as glancing blows, even though that was not the intention.

I did some quick searches to find why this was, but continued to come up empty... I tried it on a fresh file and saw that Shields at Level 10 don't effect the Defense Multiplier and I jumped to a late level file and saw that it was giving Kain x3 Defense Multipliers and it was independent of which shield was equipped. So I changed Cecil to Level 99 and saw that his Defense Multipliers jumped to x6, despite his stats being 00 and the only thing equipped was a shield.

This makes it clear to me that Level not only increases Base Hit% by 1 every few levels , but for Shield Bearers it increases their overall Defense Multipliers  every 16 levels.
96/6 = 16x6 thereby giving Shield Bearers an unfair curve against all other characters. I think I'll need to find where this is in code and squelch it for this project since Shield Bearers by their nature already have such high HP...

Alright, I've learned at least that looking at the basic stats is useless because the game first writes all of its proper calculations to the battle stats before transferring the changed values to the basic stats so to find this I set a breakpoint of write on the Defense Multipliers in the battle stat section...

In a short time I located what I was looking for.

$03/99C9   A0 28 00   LDY #$0028   A:0000   X:0003   Y:0027   P:envMxdIZC - Load 0028 (used for 2028 location of Battle Defense Multipliers...) into Y.
$03/99CC   AD 65 39   LDA $3965  [$7E:3965]   A:0000   X:0003   Y:0028   P:envMxdIzC - Load Copy of Level into A.
$03/99CF   20 84 84   JSR $8484  [$03:8484]   A:0063   X:0003   Y:0028   P:envMxdIzC - Jump to Dividing subroutine.
$03/8484   4A    LSR A   A:0063   X:0003   Y:0028   P:envMxdIzC
$03/8485   4A    LSR A   A:0031   X:0003   Y:0028   P:envMxdIzC
$03/8486   4A    LSR A   A:0018   X:0003   Y:0028   P:envMxdIzC
$03/8487   4A    LSR A   A:000C   X:0003   Y:0028   P:envMxdIzc
$03/8488   60    RTS   A:0006   X:0003   Y:0028   P:envMxdIzc - Return

This is only called if a Shield is equipped (which places a 01 in the Stat Copy Section which is used to somehow multiply the existing defense multiplier by x1, if no shield is equipped it returns a x0 and nullifies the Level Bonus for Shield Bearers. And there we have it! All I need to change is the LDA 3965 to look at an area that will always read 00. Or if I wanted to make it available to everyone independent of a shield I would change the second value that is looked for into a guaranteed value of 01. For this project I want to eliminate this unfair addition so...

$03/99CC   AD 65 39   LDA $3900  [$7E:3900]   A:0000   X:0003   Y:0028   P:envMxdIzC - Load 00 into A.


There's quite a bit in this section actually! I should take some time out one of these days to research this entire area since it flows so well into one another and there might be some other useful information in here.

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
Here's a little trick I learned (probably not new) but I was wondering how I would go about nerfing the power of Bio (Virus) against certain foes. So a trick I used was to make Bio "Immune" element. If an enemy has Immune they will then treat it as an Immune spell as in it will deal 1 damage. This decreases its effectiveness against certain varieties of foes, but it's still a powerful choice to make in most circumstances.

 :edit: There is an exception to this rule and that's if the monster has the Absorb bit set, the enemy will then take double the damage from an Immune bit spell if the Immune bit is also triggered.

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
Because some parts of this game were designed in a frankly silly fashion, I couldn't really completely get rid of the bonus defense multipliers because, outside of gaining Agility it is the Only way to get Defense Multipliers. So I instead have linked Defense Multipliers to Vitality /16 (rather than Level/16) and have forced a 01 to be loaded so there is no longer any sort of shield check, thereby everybody with enough vitality will be gaining Defense Multipliers and in my opinion this works out nicer than the initial setup.

Code: [Select]
$03/99C9 A0 28 00 LDY #$0028 A:0088 X:0003 Y:0027 P:eNvMxdIzC - Load 2028 reference intoY.
$03/99CC AD 68 39 LDA $3968  [$7E:3968] A:0088 X:0003 Y:0028 P:envMxdIzC - Load Copy of Vitality into A.
$03/99CF 20 84 84 JSR $8484  [$03:8484] A:001A X:0003 Y:0028 P:envMxdIzC - Jump to dividing Subroutine.
$03/8484 4A LSR A A:001A X:0003 Y:0028 P:envMxdIzC
$03/8485 4A LSR A A:000D X:0003 Y:0028 P:envMxdIzc
$03/8486 4A LSR A A:0006 X:0003 Y:0028 P:envMxdIzC
$03/8487 4A LSR A A:0003 X:0003 Y:0028 P:envMxdIzc
$03/8488 60 RTS A:0001 X:0003 Y:0028 P:envMxdIzC
$03/99D2 85 DF STA $DF    [$00:00DF] A:0001 X:0003 Y:0028 P:envMxdIzC - Store A in DF.
$03/99D4 A9 01 LDA #$01 A:0001 X:0003 Y:0028 P:envMxdIzC - Load 01 into A.
$03/99D6 EA NOP A:0001 X:0003 Y:0028 P:envMxdIzC - NULL
$03/99D7 85 E1 STA $E1    [$00:00E1] A:0001 X:0003 Y:0028 P:envMxdIzC - Store 01 in E1 (these two are multiplied together to give the final amount) (01xVit/16 xAgi/16 = Defense Multiplier now)[/quote]

And there you have it. I'll be moving forward with this. Since I noticed I was making Defense kind of worthless if you only ever get 2-3 Defense Multipliers, big deal if you can shrug off 40 damage from 2 blows when another 5 or 6 were waiting.

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
I've touched up Coat Hammer to make it more useful, now that I've made it to the point in my hack where he's usable I've noticed that he's not as useful as I had hoped. He can deal decent damage... some times and that's it/ I noticed that while in theory it's great to have a skill which puts a Status on a weapon (kind of the opposite of Tellah's Elemental Weapon ability) taking enemy evasion into consideration makes it difficult to predict, but since I had a free item in Greens (known at the time as "Key1" since it was replaced basically by the Whistle)  I changed it to the Homing Device "(Wrench)Homing" It's a little bit of a shame I came up with this "Wrench" idea so late as I'd love to use that symbol for other Coat Hammer or Item Lord abilities, maybe I'll think about it down the line, because it would be neat to have Cid unique items. (Currently there's only the Homing Device).

This will give Cid the ability to turn his weapon into a Drain Elemental weapon for the battle, if you're lucky enough to get a VampFang. This will give Cid the needed longevity he needs and his Homing Device will give him 255 Accuracy, making a combo with his normal Coat Hammer items so much better.




Code: [Select]
$03/EAE0 4C CF FF JMP $FFCF  [$02:FFCF] A:00F0 X:01CF Y:0010 P:eNvMxdIzc  - New Jump Point (used by later in Routine)
------------------------------------------------------------------------------------------------------------------------------------------------
$03/EAE6 A6 A6 LDX $A6    [$00:00A6] A:004A X:000D Y:012D P:envMxdIzc - Load Slot of User.
$03/EAE8 AD 1C 32 LDA $321C  [$7E:321C] A:004A X:000D Y:012D P:envMxdIzc - Load First Item Quantity into A.
$03/EAEB C9 02 CMP #$02 A:004A X:000D Y:012D P:envMxdIzc - Is there two or more?
$03/EAED B0 01 BCS $01    [$EAF0] A:004A X:000D Y:012D P:envMxdIzc - If so skip past the Return
----------------------------------------------------------------------------------------------------------------------------------
$03/EAEF 60 RTS A:004A X:000D Y:012D P:envMxdIzc - Return
--------------------------------------------------------------------------------------------------------------------------------------
$03/EAF0 AD 1B 32 LDA $321B  [$7E:321B] A:004A X:000D Y:012D P:envMxdIzc - Load First Item into A.
$03/EAF3 C9 D6 CMP #$D6 A:004A X:000D Y:012D P:envMxdIzc - Is it Maiden's Kiss?
$03/EAF5 D0 04 BNE $04    [$EAFB] A:004A X:000D Y:012D P:envMxdIzc - If not, branch to next check.
$03/EAF7 A9 20 LDA #$20 A:004A X:000D Y:012D P:envMxdIzc  - Load 20 into A (Frog)
$03/EAF9 80 1E BRA $1E    [$EB19] A:004A X:000D Y:012D P:envMxdIzc - Branch to Status Storing.
--------------------------------------------------------------------------------------------------------------------------------------
$03/EAFB C9 D7 CMP #$D7 A:004A X:000D Y:012D P:envMxdIzc - Is it Dwarf's Bread?
$03/EAFD D0 04 BNE $04    [$EB03] A:004A X:000D Y:012D P:envMxdIzc - If not, branch to next check.
$03/EAFF A9 10 LDA #$10 A:004A X:000D Y:012D P:envMxdIzc - Load 10 into A (Mini)
$03/EB01 80 16 BRA $16    [$EB19] A:004A X:000D Y:012D P:envMxdIzc - Branch to Status Storing.
-------------------------------------------------------------------------------------------------------------------------------------
$03/EB03 C9 D9 CMP #$D9 A:004A X:000D Y:012D P:envMxdIzc - Is it EchoHerb?
$03/EB05 D0 04 BNE $04    [$EB0B] A:004A X:000D Y:012D P:envMxdIzc - If not, branch to next check.
$03/EB07 A9 04 LDA #$04 A:004A X:000D Y:012D P:envMxdIzc - Load 04 into A (Silence)
$03/EB09 80 0E BRA $0E    [$EB19] A:004A X:000D Y:012D P:envMxdIzc - Branch to Status Storing.
-------------------------------------------------------------------------------------------------------------------------------------------------
$03/EB0B C9 DA CMP #$DA A:004A X:000D Y:012D P:envMxdIzc - Is it Eyedrops?
$03/EB0D D0 04 BNE $04    [$EB13] A:004A X:000D Y:012D P:envMxdIzc - If not, branch to next check.
$03/EB0F A9 02 LDA #$02 A:004A X:000D Y:012D P:envMxdIzc - Load 02 into A (Bliind)
$03/EB11 80 06 BRA $06    [$EB19] A:004A X:000D Y:012D P:envMxdIzc - Branch to Status Storing.
-----------------------------------------------------------------------------------------------------------------------------------------------------
$03/EB13 C9 DB CMP #$DB A:004A X:000D Y:012D P:envMxdIzc - Is it Antidote?
$03/EB15 D0 C9 BNE $C9    [$EAE0] A:00F0 X:01CF Y:0010 P:eNvMxdIzc - If none of the current items match, Branch back to new Jump. (Covered Below)
----------------------------------------------------------------------------
$03/EAE0 4C CF FF JMP $FFCF  [$02:FFCF] A:00F0 X:01CF Y:0010 P:eNvMxdIzc - (New Coat Weapon Area)
$03/EB17 A9 01 LDA #$01 A:004A X:000D Y:012D P:envMxdIzc - Load 01 into A (Poison)
-------------------------------------------------------------------------------------------------------------------------------------------------------
$03/EB19 9D 1E 20 STA $201E,x[$7E:202B] A:004A X:000D Y:012D P:envMxdIzc - Store A in Attack Status 1.
$03/EB1C CE 1C 32 DEC $321C  [$7E:321C] A:004A X:000D Y:012D P:envMxdIzc - Subtract 1 from Item Quantity.
-----------------------------------
(New Section - using a copy of the data in Item Master's code to load the item, subtract it by 1, and save it back.)
$03/EB1F A9 45 LDA #$45 A:004A X:000D Y:012D P:envMxdIzc - Load Smoke's Graphic into A.
$03/EB21 8D C5 33 STA $33C5  [$7E:33C5] A:004A X:000D Y:012D P:envMxdIzc - Store A in Audiovisual Cue.
$03/EB24 60 RTS A:004A X:000D Y:012D P:envMxdIzc - Return.

Extra Functionality for Coat Weapon
Code: [Select]
$03/FFCF C9 B8 CMP #$B8 A:00F0 X:01CF Y:0010 P:eNvMxdIzc - Is the Item VampFang?
$03/FFD1 D0 07 BNE $07    [$FFDA] A:00F0 X:01CF Y:0010 P:eNvMxdIzc - If not branch to Carrot/Greens Check.
----------------------------------------------------------------------------------------------------------------------------------
$03/FFD3 A9 40 LDA #$40 A:00F0 X:01CF Y:0010 P:eNvMxdIzc - Load 40 (Drain) into A.
$03/FFD5 9D 19 20 STA $2019,x[$7E:21E8] A:00F0 X:01CF Y:0010 P:eNvMxdIzc - Store A in Weapon Elemental.
$03/FFD8 80 08 BRA $08    [$FFE2] A:00F0 X:01CF Y:0010 P:eNvMxdIzc - Branch to Jump back to normal routine.
-----------------------------------------------------------------------------------------------------------------------------------
$03/FFDA C9 EB CMP #$EB A:00F0 X:01CF Y:0010 P:eNvMxdIzc - Is the Item Carrot/Greens?
$03/FFDC D0 08 BNE $08    [$FFE6] A:00F0 X:01CF Y:0010 P:eNvMxdIzc - If not, branch to End.
$03/FFDE A9 FF LDA #$FF A:00F0 X:01CF Y:0010 P:eNvMxdIzc - Load FF into A (255 Accuracy)
$03/FFE0 9D 1C 20 STA $201C,x[$7E:21EB] A:00F0 X:01CF Y:0010 P:eNvMxdIzc - Store A in Physical Accuracy.
$03/FFE3 4C 1C EB JMP $EB1C  [$02:EB1C] A:00F0 X:01CF Y:0010 P:eNvMxdIzc - Jump back to normal Routine.
$03/FFE6 60 RTS A:00F0 X:01CF Y:0010 P:eNvMxdIzc - Return Out of Routine.


 :edit: 2/5/2014 Added a fix for the Coat Hammer skill to properly decrement an item.

 :edit: 7/27/2014 Added a new functionality which looks at the Drain Item and the Gysahl Greens Item (changed for my purposes)

Because Whistles (10 GP in every store) have replaced all need of the Big Chocobo spots, Gysahl Green/Carrots in my hack are being turned into Homing Devices (Wrench)Homing. This will give Cid 255 Accuracy for the rest of the battle as long as he doesn't switch his weapons. This combined with the innate power of the other Coat Hammer statuses can be a powerful combination. As this should guarantee that each hit will 100% apply the status.

koala_knight

  • Tunnel Armor
  • *
  • Posts: 166
  • Gender: Male
    • View Profile
Hmmm... speaking of Cid exclusive items and maxing out accuracy immediately made me think of the Sight Scope in FF6.
What would be cool is for the Homing command to normally only increase accuracy by say 50%, and then if the Sight Scope is equipped it does the accuracy max out.

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
Ah, but it's not quite a command (otherwise it would be Aim under a different name...) It's Coat Hammer/Weapon. The Homing Device is just one of the seven items that can be applied to the hammer (and should probably be applied first). If an Antidote is in the First Slot, Cid's weapon acquires Poison, If a DietFood is in the First Slot Cid's weapon acquires Pig, If a Maiden's Kiss is in the First Slot, Cid's weapon acquires Frog, If a Mallet is in the First Slot, Cid's Weapon acquires Mini, If an EchoHerb Cid's weapon acquires Mute, If a Vampire Fang, Cid's Weapon acquires Drain Elemental and if it is a Homing Device Cid's Weapon acquires 255% Accuracy (making the other status ailment ones a guarantee if the enemy is vulnerable to them.

 I also need to keep things in perspective. Would people sacrifice their accessory slot for Sight Scope to increase their already 80%+ Accuracy to 130%+ Accuracy to go to a strict 255% (Never miss) Accuracy? Remember, the Accessory Slot is quite important, this also works really well for the Backrow, (Since Tellah can actually deal some significant damage in this hack, there's room for him in the front row) as it assures Cid maximum damage, even from the Backrow.

My thought was to make more use of that "wrench" symbol and give him something else unique for either ItemLord or Coat Hammer. Accessories are pretty set in stone by this point. That said, I might consider something to allow a character to Auto-Cover like True Knight... but that could be difficult to set-up, and at the moment it's not quite a priority.

koala_knight

  • Tunnel Armor
  • *
  • Posts: 166
  • Gender: Male
    • View Profile
Re: Grimoire LD's Notes, Patches, and Hacks (Touched up Coat Hammer Command)
« Reply #357 on: August 03, 2014, 04:41:52 AM »
Ah, gotcha. That makes more sense then. Disregard my nonsense. :P

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
Re: Grimoire LD's Notes, Patches, and Hacks (Touched up Coat Hammer Command)
« Reply #358 on: August 06, 2014, 10:05:04 PM »
Hehe, it's not nonsense, in a more blank slate sense that would have been a great idea, but since I'm so far along with my hack I wouldn't be able to use that.

But if you have any other ideas for things in a basic sense for FFIV than please let me know and I'll see what can be done. I am getting a little rusty in actual coding lately.