Aslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=123;area=showposts;sa=topicse:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexc92c.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;sa=topics;u=123e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexc92c.html.zxGg^ PbbOKtext/htmlISO-8859-1gzip8:bTue, 10 Mar 2020 20:18:37 GMT0 0PEg^b Show Posts - Grimoire LD

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.


Topics - Grimoire LD

Pages: 1 2 »
1
In my most recent hacking stint I've formulated methods to go far beyond the limits of our original Table mandated routines by moving these to empty spaces and repointing accordingly. Hacking 101, now that I really think on it. But in so doing I've concocted a way to increase our Command space from a measly 27 slots (in hex) in which a lot of them are paired commands anyhow to a much more robust 38-3B amount of slots. Meaning that there would be enough room for 18-20 new routines without touching any others. The concern would invariably become "But what about Bank 03? It's nearly full as is!" Oh, that it is, but we aren't necessarily locked into Bank 03, the makers left leeway by tying the Bank choice at the very end of the "find table pointer" routines, meaning you would create a JSR to some unused space, create a check to see if the Subroutine is beyond a certain amount, if so jump to another place filled with empty space and that's where you can start to use unique subroutines.

That takes care of that, but then the second question, "Why would we ever need so much space?" And that is a fair point. With 13 characters there is only room for 39 (decimal) unique  commands and when Magic slots are taken into account that drops to 28.  And that's where my other new hack comes into play. This hack is an event instruction which moves Battle Commands into SRAM and when initialized the second part of that event instruction hack is to add any given Command to any Slot of a character's Commands. Another piece of this hack is that it loads Commands by Character basis rather than Actor basis, so it takes up a lot less space (a necessity as there is not much free space at all in SRAM.)

With the ability to mold a character's Command Set as one pleases, a lot of things would open up. With roughly  20-30 new Command slots to use people could allow their creativity flow as they will not have to worry about replacement and all of that and they can have these new commands accessible in any event setup they please.

But here is where this idea comes in to make a showcase...

Cecil will start the game with Dark Wave.

Say you go into the Training Hall and instead of a bunch of NPC's there are statues of the PC's. When you talk to say... Dark Knight Cecil's Statue the game will check to see if a flag is on that indicates Dark Knight Cecil is present through the use of my Flag Check Skip Instructions hack that I have recently made. If not it will say "Nothing happened." If you talk to it with the Dark Knight in your party you would then be prompted. "Would you like to change Dark Wave to Dark Omen?" and a Yes/No prompt would appear. If you have Dark Omen then it would ask "Would you like to change Dark Omen for Dark Wave?"  Through the very same use of flags. Or you could even have both Dark Omen and Dark Wave on at the same time, but my thought is to supply a unique command slot for each character that can hold them, so in essence Dark Knight Cecil could have 3 command slots thus three Cecil Statues that would offer new commands (likely for some price, or based on game progress). And so on and so forth with the other characters.

Does such an idea sound workable, does anyone have any suggestions to improve upon this thought or other ideas that could utilize expanded Commands/Flag check Hack/Command Placement in RAM and manipulation hacks?


2
With Combat Boost in a pretty stable state I thought I should talk about a side-project of sorts, as Chillyfeez has pointed out one of the glaring issues with FFIV is the lack of any randomized AI, the closest the game ever gets to randomization in AI is Blaster/Slap/Gaze which can do a variety of randomized status effects. Where FFIV shines was its use of counter-attacks and scripts depending on the enemy's state, but those are so rarely used in normal battle anyhow except for the Charm Script. (except for Counter-Scripts which will be left alone for the most part)

My thought is to use several formulas which aren't necessary (Protect and Shell come immediately to mind) and use them to Jump to a lot of empty space where I could set up four random spells/commands for an enemy to use.

What will probably be done is that each family of monster will get the same AI Choices (just as in the normal game each family of monster has similar AI)

In FFIV there are 65 Normal Enemy Families even that is a fairly tall order, but I think there will be enough space to make this work (One of those four choice will probably be Fight that all monsters could use anyhow so really only 3)

There are three unused spells in FFIV, Two blank skills right underneath W. Meteo and DullSong (is meant to be used by Scarmiglione as a counter, but the Index is never given to him) that should be enough to tie the random AI to.

In addition this patch would use Chillyfeez's Shadow Party Hack, Enemy Level Up, and User Options and will use Vivify93's Project II as a base.

This project will also include my various fixes.

Since this is using the Shadow Party Hack I will try to set up events for switching characters in the Tower of Prayer late in the game, exchanging Kain for Yang, Edge for Cid OR Edward, Rosa for Porom, and Rydia for Palom.

I should have enough event slots for this.

That's about the gist of it, I might throw in another hammer and harp or two for Cid and Edward. I will note now that I will not bother to mess with the end-game events, though for fairly obvious reasons. This patch is just a proof of concept, really.


So in total...

Randomized AI
Enemy Level Up
Bug Fixes
Party Rejoining

3
Final Fantasy IV Research & Development / Spare NPC's
« on: December 08, 2014, 10:20:45 PM »
Along the lines of my AI Conditionals hack this will go through the NPC's and look for the ones that can be freely changed without consequence (or to those who want to add a few more meaningful NPC's to the game; hint: All Dancers will be on this list.)

Cecil's Maid (Superfluous)
Baron Dancer
All Books NPC's
Kaipo Dancer
Fallen Soldier - Bank 2 Message 1
Fallen Soldier - Terrible Bombardments... (Why is That its own Event Square?!)
Captain - Not Used? (Unused)
Chocobo - Not Used? (Unused)
Baron Dancer's Dress (not even used by default in SNES FFII)
Dancer's Leg in Water
Soldier - Not Used? (Unused - When spawned correctly he only has a D filler line.)
Fabul Dancer
Mist Bomb, Not Used (Unused)
Agart Dancer
Mysidia Dancer
Troia Dance Troupe's Dance
Sleeping Bubble (Superfluous)
-------------------------------------
Underworld/Moon


Invisible (Obtaining Magazine)
Invisible (Obtaining Grimoire 6C)
Invisible (Obtaining Grimoire 6D)
Sylph (Unused?) (Has no data other than a sprite)
Invisible (Obtaining Grimoire 91)
Dwarf (Dancer)
Sleeping Bubble (2)
Heart Bubble (Only used during the Ending?)
Sleeping Bubble (3)
NPC 495-511 (Copies of Dark Knight Cecil)

There are 16+ NPC's in the Overworld which can be freely modified (if you don't care about losing the dancers)
And there 20+ NPC's in the Underworld/Moon which can also be modified.

This should give a modder some good amount of freedom when they want to create new NPC's.
And there are


4
Submissions / Final Fantasy IV: Immune Byte Fix
« on: December 08, 2014, 11:11:00 AM »
In the original FFII (and FFIV) the Immune Byte was bugged in that the character who had an item with the Immune Bit equipped, was given 99% Evasion and if it was removed they had a lingering x4 Weakness to Fire and Ice. This patch fixes both behaviors, for the Immune byte-99% Evasion fix the storing of the Immune Byte "temporarily" is no longer put in the same place as Evasion and is instead moved to a free section of RAM where it does not interfere with later Evasion calculations.  On that same note the game never properly decrements the bits that contain xr Weaknesses by a bizarre choice of design and oversight, it only took two NOPs (which doesn't effect anything else at all) to fix that behavior.

This only really serves purpose for modders who may want to add other Elemental Immune equipment or those who Really want the Glass Mask and Adamant Armor to not unbalance the game (granted the Adamant Armor does a good enough job of that as is)

Here is my first submission then, the Immune Byte Fix.

As you can imagine it's a little difficult to get a picture of this in action.


5
Hello everyone, I've been plugging this at romhacking.net for a while now, but I think I have enough completed at this point to start releasing demos of my work-in-progress hack of FFIV: Combat Boost!. This hack enhances the battle systems of the game in a major way (and also some things have been done outside of battle such as several (more like one...) new areas, changed treasures here and there, text changes to give hints to the new content (and all text in the training room being changed to give information on the hack.)

First and foremost this is a difficulty hack. You can use your new toys though to mitigate some of the difficulty, after all what good is a battle enhancement hack if the enemies are as pathetic as ever? Enemies also have their evasions properly added in. Evasions have been something touted in guides since the very early days of FFIV, but no version of the game actually used them because of an error (or intentional sabotage to turn off evasion by the programmers). When they are turned on they make a noticeable difference in the game play. Magic you'd never expect to miss, misses. Attacks can have some of their damage mitigated but moreso what evasion seems intended to do is prevent statuses from being applied nearly all the time. Also all custom Charm scripts have been removed and some are being used in other custom AI scripts. In my opinion it makes for a far more fulfilling journey.

To acquaint yourself with my basic changes if you have not already, please refer to this topic at romhacking.net...

http://www.romhacking.net/forum/index.php/topic,17723.0.html

First: The hacks that are in place for this mod...

Bug Fixes

Enemy Evasion Fix
Enemy Magic Evasion Fix
Infinite Arrow Fix
99% Evasion through Immune Byte Fix
Lingering x4 Weakness through Immune Byte Fix

Custom Commands

Fight(Broken Calcify Weapon Routine) to Fight(Imbued Weapons)
Peep to Geomancy
Cry to Coat Hammer
Steal to Mug
Salve to (item)Lord
Dart to Draw Out(Katana Soul)l
Twin to Third Random Spell Twin
Aim to Barrage
Pray to Hunt
(Empty Space) to Hunt Rewards System
(Empty Space) to Hunt Rewards System +
Hide to Advnc (Advance)
Dark Wave to Dark Wave + Spell Cast (+Zombification)
Sing to Harp-Dependent Sing
(Empty Space) to Magic Weapons
Recall to Dragon Speak
Regen to Will Based Regen
Kick to No Armor-Improved Kick.
Gird to FFI Based Armor-Gird
Boast to Elemental Weapon
(Empty Space) to Seek Remastered

Custom Spell Routines

Healing Spells to Alchemy-Cure
Damaging Spells to Item Lore-Damage
Chillyfeez's Dispel to Aura
Count to Elemental Strike/Fancy Flourish
Protect to Spell Power Dependent Protect
Damage, Sap to Piercing Sight
Search to Taunt
Sylph to Battle Skill
Damage, Status (Unused) to Regen (Command)

Specialty
Auto-Hide to XX Armor = Dark Wave replacing Cover
Disabling Level+Shield Defense Multipliers
Chillyfeez's Run/ATB Show/Character Switch Hack (Will remove if asked.)

Secondly acknowledgements:

Thanks to Vivify93 for Project II which this uses completely as a base to build off of.
Thanks to Chillyfeez for help in hacking and for providing a couple of hacks.
Thanks to PinkPuff for an amazing editor which makes editing many crucial matters a relative breeze!
Thanks to JCE3000GT for the wonderful title screen and early testing.
Thanks to LordGaramonde for brainstorming some ideas.
Thanks to DeathLike2 who encouraged me to do this with his take on an FFIV Patch.

Now I cannot ignore the new accessory system. It is basic, but important. Lots of foes you will encounter will have drops consisting of these rare accessories. Gone are the days where you go to the armor store and pick up the Rune Armlets and Diamond Gauntlets, now you will need to be quite lucky or grind a little to get these items... some allies do start with some of them and this will be noted where it occurs.

Here are the stats of each accessory so you don't have to ponder about their use in-game...

Iron Gauntlets    - StarPndt (Star Pendant) - Resists Poison - 3 Magic Def. +3 Will
Gauntlets         - Glasses - Resists Blind - 2 Evade, 2 Magic Evade +3 Wisdom - Tellah 1st Encounter
Silver Gauntlets  - WhiteCpe (White Cape) - Resists Mute - 10 Evade, +3 Vit - Edge
Diamond Gauntlets - RubyRing - Resists Pig - 2 Magic Def, 3 Magic Evade, +3 Agi
Zeus Gauntlets    - Zeus (Zeus Gauntlets) - Resists Mini, 8 Defense, 0 Evade, 10 Str, 10 Vit
Dragon Gauntlets  - CroakRng (Croak Ring) - Resists Frog, 2 of each stat.
Crystal Gauntlets - Jeweled (Jeweled Ring) - Resists Petrify
Iron Ring         - Memento (Memento Ring) - Resists KO, +3 Str - Rydia 1st Encounter
Ruby Ring         - Peace (Peace Ring) - 3 Magic Def. 2 Magic Evade, Resists Charm, Berserk, +5 Vit - Edward
Silver Ring       - Insomnia (Insomnia Ring) - 5 Def, Resists Sleep
Strength Ring     - Germinas (Germinas Ring) - 9 Evasion, 9 Magic Evasion, Resists Stun
Rune Ring         - Blessed (Blessed Ring) - -10 Evasion, 10 Magic Defense, Resists Undead - FuSoYa
Crystal Ring      - Shining (Shining Gauntlet) - 6 Defense, 8 Magic Defense, 6 Magic Evasion, +5 Str, Resist Dark
Protect Ring      - VampHntr (Vampire Hunter Gauntlets) - Resist Absorb, 5 Defense, 5 Evasion, 5 Magic Defense, 4 Magic Evasion, +5 Wisdom


A lot of this game I want to be the "element of surprise" whether an enemy does something you wouldn't expect it to, or a weapon being more useful than you may have originally thought. I will give a few hints to keep yourself alive, but be aware again that this is a difficulty hack...

Some tips...

1. DarkOmen is the Key to your success at the start. Without a healer Cecil and Kain will be taking some rather heavy blows but using DarkOmen will tear through these early foes in short order. You can pretty much stop expecting it to kill everything once you reach the Waterway. But don't expect it to be easy! Stock up on tonics and rest at the inn when need be. You will not be receiving much gil from early enemies here after all, but with some smarts and luck you should come out on top.

2. Stock up on Status Healing Items! Enemies as early as the SwordRat will inflict status ailments on you and this only intensifies as you progress. Remember there is no Esuna so you will have to use items or Tents to recover your statuses

3. Grind when you need to. All enemies have an interesting table of items, with each having a 1/32 chance of dropping a useful weapon, armor, or accessory so if you want to try and get those rare items, it won't be as annoying as it was originally and hopefully all battles (past the first part...) will feel like rewarding encounters. Also all enemies now have their 1/64 slot occupied by a Steal Item, that will be stolen with a specific item or Edge (who is not available)

4. Don't ignore the villagers! Some of the text here and there has been changed, but I imagine not many people here have played Vivify's Project II (which this is based on) it is encouraged that you visit the Training Room to get acquainted with all of the new skills and features.

5. The Power of Harps are Not to be underestimated. Harpsong is probably one of the most powerful skills allowing a patient party as much time as they need to overcome any obstacle with enough power boosting (Each use of Harpsong increases the power of the front by 5 and the singer by +5 as well). Paladin Cecil with a Harp is not a joke, but may at times be a necessity.

6. Be prepared for a Difficulty Spike when you make it back from Mt. Ordeals. I did not want the player to coast by with this magic heavy party as they normally would.

And with all of that out of the way, please enjoy this beta! Again, it is complete until right after the Dark Elf fights.

Note: I'm aware of some graphical silliness with some of the custom routines, but that's not quite my priority. Graphics have always been a bit of a sore spot for me.

(Sorry it had to be .rar'ed apparently it's too large in it's normal state by 6 bytes)

 :edit: 40 minutes in and I already noticed an error on my part. I accidentally put Mist Dragon's speed to be the same speed value as Baigan's Arms... making the battle nearly impossible. Sorry about that.



6
General Discussion / Site Outages
« on: February 18, 2014, 11:05:57 PM »
Hmm, the past couple of days the site has been rather finicky in terms of actually being up. I was just wondering if there's any reason why this is?

7
Final Fantasy IV Research & Development / FFII SNES Beta Curiosities
« on: January 05, 2014, 01:26:15 AM »
On a nostalgic surge, I decided to take a look at the old SNES Manual and found a few interesting mentions of things that didn't make it into the final cut of the game.

On Page 17 they introduce Tellah and they say that he has forgotten many of his spells "He might be able to recall some spells by chance". Did they intend to put Recall in FFII SNES, but then take it out at the last minute for some reason? It must have gotten pretty far since every reference to Cecil's Dark Wave is gone in the manual.

On that same page is a reference to receiving "powerful weapons and armor" after falling down the waterfall... but there are no weapons. Was there intended to be at one point?

The most bizarre mention on this page though Has to be in regards to the Staff. "Has Rydia learned Lit? If she hasn't, come back after she has risen in Level, or have her use the Staff. Used as an item, it has the same effect as Lit.

Whoa, whoa, what? That would have been quite powerful and its not as if it would have outshone the Thunder Rod, since that has Wisdom boosting capability.

Haha! "You will obtain a Hovercraft in Damcyan. With the exception of water, this vehicle travels everywhere including through forests and over mountains." This had to be a translation mistake otherwise there would barely be a required Dark Knight stretch of game to go through if you could use the... Hovercraft... to go over mountains.

Hmm... (in regards to Antlion "Two Antannae's emerge from the ground." They show the picture of the claws snapping at Edward right above that sentence...

On Page 23 - "There are two special fields on the mountain." Eh? Isn't there only one save point on Mt. Ordeals? Or is my memory playing tricks on me?
"Milon enters accompanied by his Zombie." Hm? Only one you say? At first I thought it may have been a typo, but the group is continually called "Zombie". Did they originally intend for Milon to have only one Zombie?

I do have to say the "Et Tu Baigan!" caption is actually pretty neat and shows they put a bit of effort into this instruction manual.

The Item List is woefully poorly translated with gems like Paradin, Doragoon, wepon and Ice Bland.

The info. seems mostly right, except they have the accuracy of the Drain sword wrong (thank goodness!) they have it at 30% when it is really 50%

Blizzard Spear is actually two points more powerful than the manual says.

The accuracy for the Dragoon Spear (or they call it the Dragon Spear) is wrong. It is 80 but the manual says 99.

On that same note the Holy Lance (Called Holy in the manual, White in game) has 80 accuracy as well where the manual says 95. What odd changes.

Ogre Axe's hit rate is shown as 69% when it is actually 80% in the SNES version.

The Archer Bow has the wrong accuracy, the manual lists it as 30% (Huh...?) while in-game it is 50%. Also an interesting note is that all bows have "aerial" on them in the manual, but the only spear to even mention Air was the Blizzard Lance. Were lances originally not going to have that effect? It may have been added late since a lot of the "Air, Element" indexes come pretty late.

The Elven Bow is not shown to be effective against Mages.

Iron Arrows are listed at 3 Atk rather than the 5 they actually are.

Mute Arrows are not listed as effective against Mages.

The Whip may have been intended to have 99% accuracy, which would have made it quite useful for a guarantee stun actually! The other whips are shown with the correct accuracy.

The Assassin Knife may have been Ridiculously good! At 99% accuracy it would instant kill any thing that was vulnerable. In the final (still unused) it was dropped to 55% accuracy, but did gain some more Atk.

Shuriken's aren't shown to have aerial properties, oddly enough.

When writing about Shields I think someone mixed up the Paladin and Dark Knight, or maybe the Paladin was just not able to equip many shields? Only being able to equip the Paladin and Crystal Shield originally?

Caps are shown as an evade rate of 3% when they actually have 5%, hmm. I'm noticing a theme with 3 to 5...

The Ribbon is effective against... ribbon, fantastic work guys.

Rune Ring has 3 defense in the manual... 5 in game.

Gaea Gear protects you against "Earth"... does this mean it was intended as an element at one point in production?

Karate... 3 def in book. 5 in game.

This might be going out on a limb but in these descriptions, I don't see Any resistances to Monster Types. Does that mean they weren't included at this point in production?

Fire is listed as having 13 Defense when it has 15 in-game. (3 and 5 again.. .hmm...)

Crystal has 23 Defense when it has 25 in-game (3 and 5 again... HMMM....)

(Goes to Magic Section in manual...)

Interesting...

Heal - Heals Hold, poison... That would be worthless. Thank you for upgrading this in the final game.

They for some reason call "Hold" "White" in the manual. Same effect.

"Sage" is shown as a character who learns "White" but Tellah never learns White.

It seems that Nuke was originally going to cost 99 MP. In the end it costs 50 in-game.

Then it shows Meteo costing only 50 MP... I think someone must have gotten mixed up there.

Stop is listed at only 9 MP, but is 15 in-game.

Judging by this manual, apparently Tellah at one time had every Black/White Magic in the game.

Now Image has an interesting description "Improve defence rate" (evasion) and could apparently be cast on any ally. I wonder if that means they intended for a routine to do such a thing? The description makes it much more inline with the FOG spell of FFI.

And finally it seems that the Mist Dragon may have only attacked one enemy at one point.

Well that's all I could find from the instruction manual. I'll go back through the Reference Book that was made before the game released to see what I can find there of interest.


8
A while back I played JCE3000GT's Solo Cecil Patch and I really did enjoy the concept of that. I always like when games give you the chance to have a solo member go through the entire game. I've always been partial to Child Rydia as a character with the ability to use White Magic, Black Magic, and Summon Magic and playing through the game solo as her gives you an entirely new respect for some of the lesser used magics. But the stretch in which you can play a game "solo" as any other character is a bit... limited.

Cecil - Whole Game
Kain - Start-To Mist - Underground Start-Underground Finish - Final Moon Trip-End
Rydia - Kaipo-Leviathan Attack - Underground-End
Edward - Damcyan-Leviathan Attack
Rosa - Kaipo Revisit-Battle of Fabul - Tower of Zot Finish-End (probably the longest character to stick around)
Yang - Mt. Hobbs-Leviathan Attack - Baron-End of Babil1
Palom - Mysidia-Cagnazzo
Porom - Mysidia-Cagnazzo (Edward and the Twins really don't get much face time in battle)
Cid - Troia-Underground Start (Cid gets two Dungeons)
Edge - Eblan Passage-End
FuSoYa - End of First Moon Trip-End of Giant of Babil

These characters all have interesting abilities and different strengths and weaknesses but you don't often get to see these in the game itself. So my goal is to make a Challenge Patch for each character to go through the game Solo. And in the end for some the question will be, "Is it possible to do so?"

With the initial patches released my plan then is to make a special patch, originally you will notice next to no changes in the game itself, but in future patches (Probably will have a + by the patch name) the game will be made more in-mind for the specific characters so you won't be getting a bunch of Dark Armor you can't equip anyhow. But I want to release a "pure game" patch set first before doing that.

So first of these will be Child Rydia.












Issues: Now because this is stepping outside of the game's comfort zones there was one or two things that I've noticed that aren't... quite right.

The only thing I have noticed off the top of my head is that when Edward goes back to mourn Anna he will be Mini because he is not actually part of the party. And every Special Battle will have Rydia as the party, no matter how absurd it may seem.

One last note, everybody will call Rydia... well Rydia. This will look odd in text in... certain places. I wasn't going to go through the script and change every instance of him to her and he to she after all, but this isn't a story based hack in the first place so its not that big of a deal.

Now this is for an Unheadered Rom of v1.1 make sure to patch it to that.

Please, give me your thoughts and suggestions.

9
I was looking through finalfantasy.wikia.com to see what exactly made FFII SNES and FFIV otherwise so different that FFII would be considered "easier". As far as I can tell the only thing that makes FFII a little bit easier is the open availability of Remedy's and Ethers, when you have the money to splurge on Ethers. None of the enemy stats are changed and I would argue that some of the battle items (curtains, bacchus wine, Spider Silk) actually ends up making things a bit easier.

While in this I saw a version of FFIV that I'd never even heard of before...

"Mobile PhoneEdit
The following is from the mobile phone port of the game, which was only released in Japan so far.

All new character sprites for during and outside of battle, with some taken from Final Fantasy IV: The After Years.

The party-swapping feature from the Advance edition is reinstated, with some rebalancing on the characters.

A whole new "EX Dungeon", which is a heavily redesigned version of the Lunar Ruins and shares the same entrance. The stories for the Lunar Ruins were changed.

The inventory space is now unlimited. The Fat Chocobo is now used for a minigame. If the player finds one of eight Gysahl Greens from around the world, they will receive a reward from the Fat Chocobo in the Chocobo Forest.

Namingway has been replaced by Tradingway, who must be visited in seven different locations. Each time the player meets him, they will get a Colored Card and an item. Collecting them all will award the player with the Unhappy Ear Hood, which refers to Namingway's ears.

Other than the Pink Tail, the player can discover other tails in exchange for items. These include items that were seen in the The After Years, such as the Rapid Ring and Rare Band."

Now this actually sounds like an interesting little update and would have been neat as an add on or DLC or something for the Complete Collection.  What interests me the most is that apparently the Lunar Trials stories were changed. I love FFIV to death and every iteration of its world and characters always fascinates me, so I would love to know more about this version if possible.  I am also curious to know what rebalancing efforts were done for the end game.

10
Final Fantasy IV Research & Development / AI Index Reference
« on: October 31, 2013, 05:27:45 PM »
As great as FF4kster is, looking through all of the usable indexes can be difficult and demotivating in many ways. Until I started this little project I wasn't aware that so many of the AI indexes are mostly used by one monster, so there is a lot of room to work around and change things without having to worry that you will screw something else down the line.

So here we are, a full recording of all of the AI Indexes in FFIV, including tags like "Unknown", "Moon", and "Reaction. So the modder will know what they are changing.

Code: [Select]

Index Usage of Basic AI

1.
86 - Egg (Nothing)
2 - Charm (Fight)
1 - Basic (Fight)
Imp, Sandman, EvilShel, Zombie, Pike, MadToad, Jelly, Cream, WaterHag, Weeper, DarkImp, Turtle Imp Cap., Slime, Piranha, Ghoul, Revenant, CaveNaga, ElecFish, Guard, Grudger, Naga, Ogre, SwordMan, Centaur, FangShel, Screamer, Warrior, Armadillo, EpeeGirl, BladeMan, HugeNaga, Tortoise, Carapace, Ironback, StoneMan, Mad Ogre, FlameMan, Grenade, Tofu, Pudding, Ironman, MacGiant Jucylote, Horseman, Staleman, Procyote, (Demo) FloatEye, (Demo)Raven, Dummy(2), Egg

2.
2 - Charm (Fight)
1 - Basic (Fight, Explode)
Bomb, GrayBomb, Balloon

3.(Reaction Only)
9 - Fire Magic (Explode)
GrayBomb

4. (Reaction Only)
10 - Ice Magic (Explode)
Balloon

5. (Reaction Only)
11 - Bolt Magic (Reaction)
 9 - Fire Magic (Explode)
Grenade

6.  (Unused Reaction)
 9 - Fire Magic (Reaction)
11 - Bolt Magic (Explode)
NOTE: Likely used for a foe similar to Grenade that they never finished.

7.
2 - Charm (Petrify)
1 - Basic (Fight, Petrify)
Basilisk


8.
86 - Egg (Nothing)
 2 - Charm (Petrify)
 1 - Basic (Fight)
BlackLiz

9. (Reaction Only)
87 - Egg, Damage (Hatch)
 7 - Fight (Petrify)
BlackLiz

10.
 2 - Charm (Ice-2)
 1 - Basic (Fight, Petrify)
Ice Liz

11. (Reaction Only)
 8 - Magic (Ice-2)
Ice Liz

12.
 2 - Charm (Beak)
 1 - Basic (Fight)
Eagle, Roc Baby

13.
 2 - Charm (Beak)
36 - 1 Monster-Magic (Beak)
 1 - Basic (Fight)
Cocktric

14. (Reaction Only)
 8 - Magic (Beak)
Roc Baby

15.
 2 - Charm (Fatal)
 1 - Basic (Fight)
FloatEye

16.
 2 - Charm (Fatal)
 1 - Basic (Fight, Gaze)
Red Eye

17. (Unused)
 2 - Charm (Count on Party, Stop on Self)
 1 - Basic (Count)
NOTE: Likely planned for a late game Ahriman like-foe that they never finished.

18.
 2 - Charm (Fire1)
14 - Ice Magic (Null Turn)
 1 - Basic (Fire 1, Fight)
Spirit, Soul,
 
19.
 2 - Charm (Sleep)
14 - Ice Magic (Null Turn)
 1 - Basic (Fire 2, Fight, Sleep)
Ghost

20.
 2 - Charm (Vampire)
 1 - Basic (Vampire)
Cave Bat, Giant Bat, Were Bat

21.
 2 - Charm (Beak)
 1 - Basic (Fight)
Treant

22.  (Reaction)
33 - 1 Monster Left-Fight (Stop)
Treant

23.
 3 - Charm (Target Random Foe Bersk)
 1 - Basic (Fight)
DarkTree

24. (Reaction)
 8 - Magic (Bersk)
DarkTree

25.
 2 - Charm (Needle)
 1 - Basic (Fight)
SwordRat

26. (Reaction)
 7 - Fight (Needle)
SwordRat, Needler, StingRat

27.
 2 - Charm (Needle)
 3 - 1 Monster (Needle)
 1 - Basic (Fight)
Needler

28.
 2 - Charm (Needle)
 4 - All Same (Needle)
 1 - Basic (Fight)
StingRat


29.
 2 - Charm (Fatal on Party Target)
 1 - Basic (Lit-1, Ice-1, Fire1)
TinyMage

30. (Reaction)
 8 - Magic (Psych)
 7 - Fight (Hold)
TinyMage

31.
 2 - Charm (Fight)
 4 - All Same (Fight, Powder)
 1 - Basic (Fight)
SandMoth, GlomWing

32.
 2 - Charm (Fight)
 1 - Basic (Fight, Powder)
RockMoth

33.
 2 - Charm (Quake)
 3 - 1 Monster (Quake)
 1 - Basic (Fight)
Sandpede


34.
 2 - Charm (Quake)
 1 - Basic (Fight)
Centpede

35. (Reaction)
34 - Damage-1 Monster (Quake)
Centpede

36.
 2 - Charm (Quake)
 1 - Basic (Quake)
Arachne

37. (Reaction)
 8 - Magic (Fight)
Arachne

38.
 2 - Charm (Quake on Party)
 1 - Basic (Fight, Quake)
Talantla

39.
 2 - Charm (Tornado)
 3 - 1 Monster (Tornado)
 1 - Basic (Fight)
SandWorm

40.
 2 - Charm (Fight)
 4 - All Same (Fight)
 1 - Basic (Wave)
AquaWorm


41.
86 - Egg (Nothing)
 2 - Charm (Retreat)
 1 - Basic (Fight)
Red Worm

42. (Reaction)
87 - Egg, Damage (Hatch)
 5 - Damage (Vampire)
Red Worm

43.
 2 - Charm (Weak)
 1 - Basic (Fight, Weak)
Gargoyle

44.
 2 - Charm (Weak)
12 - Magic (Weak, Fight)
 1 - Basic (Fight)
Hooligan
NOTE: A counter in a normal AI Index? Does this even work?


45.
 2 - Charm (Fight)
 3 - 1 Monster (Toad)
 1 - Basic (Fight)
CaveToad

46. (Reaction)
 5 - Damage (Toad)
MadToad

47.
 2 - Charm (Fight)
 4 - All Same (Pollen)
 1 - Basic (Fight)
TrapRose, Cannibal

48.
 2 - Charm (Fight)
 4 - All Same (Fight)
 1 - Basic (Nothing)
Larva

49. (Reaction)
 8 - Magic (Psych)
Larva

50.
 2 - Charm (Drain)
 4 - All Same (Fight)
 1 - Basic (Do Nothing)
Roc Larva, Crawler

51. (Reaction)
 8 - Magic (Psych)
 7 - Fight (Slow)
Crawler

52.
 3 - 1 Monster (Lit-1)
 1 - Basic (Fight)
Skelton, Red Bone

53.
 3 - 1 Monster (Lit-2)
 1 - Basic (Fight)
Skull

54.
 2 - Charm (Fight)
 1 - Basic (Fightx2)
Raven, Roc

55.
 2 - Charm (Retreat)
 1 - Basic (Fight, Retreat)
WaterBug, HugeCell

56. (Reaction)
 8 - Magic (Remedy)
WaterBug

57. (Reaction)
 7 - Fight (Remedy)
HugeCell

58. (Moon)
 2 - Charm (Retreat)
12 - Magic (Fight)
 1 - Basic (Fight, Retreat)
MoonCell

59. (Moon) (Reaction)
 5 - Damage (Remedy)
MoonCell

60.
 2 - Charm (Vampire)
 4 - All Same (Vampire)
 1 - Basic (Fight, Absorb)
VampGirl

61.
 2 - Charm (Vampire)
 4 - All Same (Vampire)
 1 - Basic (Fight, Lit-2, Glance)
VampLady

62. (Moon)
 1 - Basic (Fight)
D. Bone

63. (Moon) (Reaction)
 8 - Fire Magic (Fire)
D. Bone

64. (Reaction)
 8 - Magic (Piggy)
 7 - Fight (Size)
Guard

65. (Reaction)
 8 - Magic (Wall)
 7 - Fight (Virus)
BladeMan

66.
86 - Egg (Nothing)
 2 - Charm (Fight)
 1 - Basic (Fight)
Lamia
NOTE: This is a repeat of Index 2.

67.
 2 - Charm (Charm party target.)
 1 - Basic (Fight)
Lilith

68. (Reaction)
 7 - Fight (Slap)
Lilith

69.
 2 - Charm (Enemy Spell - Charm)
 1 - Basic (Fight)
Q. Lamia

70. (Reaction)
 7 - Fight (Fight)
 8 - Magic (Enemy Spell - Charm)
Q. Lamia

71.
 2 - Charm (Fight)
 1 - Basic (Fight, Entangle)
Hydra, Python

72.
 2 - Charm (Peep on Party Target)
 4 - All Same (Blast, Drain)
 1 - Basic (Fight)
Mage

73. (Reaction)
 8 - Magic (Slow)
CaveNaga

74. (Reaction)
 8 - Magic (Tongue)
Naga

75. (Reaction)
87 - Egg, Damage (Hatch)
 8 - Magic (Mute)
HugeNaga

76.
 2 - Charm (Bluster)
 3 - 1 Monster (Bluster)
 1 - Basic (Fight)
Panther

77.
 2 - Charm (Bluster)
 1 - Basic (Fight)
BlackCat

78. (Reaction)
 5 - Damage (Bluster)
BlackCat

79.
 3 - 1 Monster (Globe199, Recover)
26 - Reflect (Nothing)
 1 - Basic (Wall on Self)
CPU

80. (Reaction)
33 - Fight-1 Monster (Absorb)
36 - Magic-1 Monster (Curse)
SwordMan

81. (Reaction)
 5 - Damage (Fight)
EpeeGirl, D.Machin


82. (Moon)
 2 - Charm (Roulette Hug)
 4 - All Same (Fight, Hug, Retreat)
 1 - Basic (Fight)
Kary

83.
 2 - Charm (Fight)
 3 - 1 Monster (Fight)
 1 - Basic (Ray)
Medusa

84.
 2 - Charm (Fight)
 3 - 1 Monster (Ray)
 1 - Basic (Fight)
Gorgon

85.
 2 - Charm (Spell - Charm)
 1 - Basic (Fight, Charm)
Dummy(1)

86.
 2 - Charm (Spell - Charm)
 1 - Basic (Fight)
Gremlin, Fiend,

87. (Reaction)
 8 - Magic (Spell - Charm)
Gremlin

88. (Reaction)
 5 - Damage (Spell - Charm)
Fiend

89.
 2 - Charm (Fight)
 3 - 1 Monster (Blaze)
 1 - Basic (Fight)
Chimera

90.
 2 - Charm (Blaze on Party)
 1 - Basic (Blaze, Fight, Fight)
Mantcore

91.
 2 - Charm (Fire)
39 - Formation 451 (Fire, Fight)
 3 - 1 Monster (Fire)
 1 - Basic (Fight)
FlameDog


92.
 2 - Charm (Blizzard)
 4 - All Same (Blizzard, Fight)
 1 - Basic (Fight)
IceBeast

93.
 2 - Charm (Toad on Party Target)
 1 - Basic (Do Nothing)
TinyToad

94. (Reaction)
37 - Attack Ordered (Toad)
TinyToad

95.
 2 - Charm (Fatal)
 3 - 1 Monster (Call)
 1 - Basic (Fight)
Marion

96.
 2 - Charm (Drain)
 3 - 1 Monster (Call)
 1 - Basic (Fight)
Sorcerer

97.
 2 - Charm (Cast Warp... interesting.)
 3 - 1 Monster (Call)
 1 - Basic (Fight)
Conjurer

98.
 2 - Charm (Bersk)
 1 - Basic (Fight)
Puppet

99. (Reaction)
 9 - Fire Magic (Fire-1)
10 - Ice Magic (Ice-1)
11 - Lightning Magic (Lit-1)
Puppet

100. (Reaction)
 2 - Charm (Wall)
 1 - Basic (Fight)
EvilDoll

101.
 9 - Fire Magic (Fire-2)
10 - Ice Magic (Ice-2)
11 - Lightning Magic (Lit-2)
EvilDoll

102.
15 - Bolt Magic (Target Enemy - Beam)
 1 - Basic (Beam)
Beamer

103. (Moon)
40 - If All Party has Count (Target Party-Fast)
 1 - Basic (Target Party-Count)
Plague

104.
 2 - Charm (Fast on Enemy)
 4 - All Same (Fight)
 1 - Basic (Slow, Mute)
Witch

105.
 2 - Charm (Size on Party Target)
 3 - 1 Monster (Toad on Party, Toad on Self, Retreat)
 1 - Basic (Order Enemies)
ToadLady

106. (Moon)
 2 - Charm (Stone)
 3 - 1 Monster (Fight, Weak)
 1 - Basic (Fight)
Warlock

107. (Moon)
 1 - Basic (Fight)
RedGiant

108.(Moon) (Reaction)
 82 - Call (Explode)
  8 - Magic (Beam)
RedGiant

109.
 86 - Egg (Nothing)
  2 - Charm (Fightx2)
  1 - Basic (Fight, Thunder)
Green D.

110.
 86 - Egg (Nothing)
  2 - Charm (Fightx2)
  1 - Basic (Fight)
Yellow D.

111.
 87 - Egg, Damage (Hatch)
  5 - Damage (Thunder)
Yellow D.

112.
 1 - Basic (Search. Magnet, Beam)
Last Arm

113.
 3 - 1 Monster (Nothing)
 1 - Basic (Nothing)
Alert, Searcher

114. (Reaction)
 34 - Damage, 1 Monster (Alert)
  5 - Damage (Beam)
Alert, Searcher

115.
  2 - Charm (Fight)
  1 - Basic (Breath, Digest, Fight)
Molbol

116. (Moon)
 2 - Charm (Roulette Entangle, Roulette Fight)
 1 - Basic (Fight, Blaze)
Ging-Ryu

117. (Moon) (Reaction)
 82 - Call (Tornado)
Ging-Ryu

118.
  1 - Basic (Blitz)
Clapper

119.
 15 - Bolt Magic (Target Foe - Fight)
  1 - Basic (Fight)
Machine

120. (Unused?)
 15 - Bolt Magic (Roulette Laser)
  1 - Basic (Laser)
NOTE: This seems like such a familiar sequence, but I could not find the enemy which corresponded to it.

121. (Reaction)
 11 - Bolt Magic (Magnet)
MacGiant

122.
  2 - Charm (Roulette Fight)
  1 - Basic (Fight, Blizzard)
Blue D.
 
123. (Reaction)
  9 - Fire Magic (Blizzard)
Blue D.

124. (Moon)
  1 - Basic (Fight)
D. Fossil

125. (Moon) (Reaction)
 82 - Call (Fire)
D. Fossil

126. (Moon)
 18 - Flag 1 (Dancing, Music, Fight, Charm)
  1 - Basic (Set Flag to 1)
PinkPuff

127.
  2 - Charm (Explode on Party Target)
  1 - Basic (Fire)
D. Machin

128.
  8 - Magic (Petrify)
EvilWall

129.
  3 - 1 Monster (Retreat)
  1 - Basic (Order Monsters)
Officer

130.
  3 - 1 Monster (Retreat)
  1 - Basic (Order Monsters)
General
NOTE: Virtually the same as above except the two use Slightly different messages. A duplicate for all intents and purposes.

131.
 38 - Formation 247 (Fight)
  4 - All Same (Target Foe - Fight)
  1 - Basic (Nothing)
Soldier, Fighter

132.
 37 - Ordered (Fight)
Soldier, Fighter

133.
  2 - Charm (Fight)
  1 - Basic (x2 Fight)
Aligator, Crocdile, 
NOTE: A copy of Index 54.

134. (Moon)
  40 - Party is inflicted with Count (Fast, Bersk, Charm)
   2 - Charm (Fight Party)
   1 - Basic (Count)
FatalEye

135.
  1 - Basic (Fight, InvinOn, Flag1, InvinOff)
D. Mist

136.
 41 - Fight, Flag1 (ColdMist)
D. Mist

137.
  1 - Basic (Call)
Girl

138.
  1 - Basic (Quake, EndBattl)
Titan

139. 
  1 - Basic (Fight)
Octomamm
NOTE: This can be changed to any Index as long as it has normal fight included as Octomamm is a boss it cannot be charmed to begin with so changing it to Index 2 should present no issues.

140. (Reaction)
 42 - Damage, Flag 2 (Speed, Flag to Current Flag (+1?))
 43 - Damage, Flag 4 (Speed, Flag to Current Flag (+1?))
 44 - Damage, Flag 6 (Speed, Flag to Current Flag (+1?))
 45 - Damage, Flag 8 (Speed, Flag to Current Flag)
 46 - Damage, Flag 10 (Speed, Flag to Current Flag)
 47 - Damage, Flag 12 (Speed, Flag to Current Flag)
 48 - Damage, Flag 14 (Speed, Flag to Current Flag)
  5 - Damage (Set Flag to Current Do Nothing.)
Octomamm

141.
  1 - Basic (Nothing)
Bard

142.
 52 - Flag 3, Fight (EndBattl)
 51 - Flag 2, Fight (Set Flag to 3)
 50 - Flag 1, Fight (Set Flag to 2)
  7 - Fight (Set Flag to 1)
Bard

143.
  1 - Basic (Fight)
WaterHag
NOTE: Another waste of an index, can be changed to anything, really.

144. (Reaction)
 54 - Damage, Flag 2 (Vanish)
 53 - Damage, Flag 1 (R-Images, Flag 2, Remove Defense)
  5 - Damage (C-Anna, Flag 1)
WaterHag

145.
 18 - Flag 1 (Explode, TradeOff)
 55 - >10000 HP (Flag 1)
  1 - Basic (Fight)
MomBomb

146.
  3 - 1 Monster (Lit 1, Fight)
  1 - Basic (Order Monsters)
Milon

147. (Reaction)
 56 - >1000 HP (Vanish)
  5 - Damage (Lit-1)
Milon

148.
  4 - All Same (Fight)
  1 - Basic (Nothing)
Ghast

149. (Reaction)
 37 - If Ordered (Drain)
Ghast

150.
 18 - Flag 1 (Fight)
  1 - Basic (Flag 1, Do Nothing)
Milon-Z
NOTE: Does he really just do that? I thought he used more magic... somewhere?

151. (Unused) (Reaction)
  9 - Fire Magic (Show Dummied Message, use DullSong)
NOTE: Message is only being mentioned here to show that it is fully unused. It seems this is likely an unused Reaction for Scarmiglione's second form.

152.
 18 - Flag 1 (Dark, Flag to 0)
  1 - Basic (Dark, Dark, Dark, Dark, Vanish)
D. Knight

153.(Reaction)
  7 - Fight (Flag 1)
D. Knight

154.
 57 - Monster 0 Dead (Explode)
  1 - Basic (Entangle, Fight)
Left Arm

155.
 57 - Monster 0 Dead (Explode)
  1 - Basic (Fight, Vampire)
Right Arm

156.
  3 - 1 Monster (Recover on KO'd)
  1 - Basic (Fight, Fast)
Baigan

157. (Reaction)
  8 - Magic (Wall)
Baigan

158.
 19 - Flag 2 (Remedy, Defense+, Flag 1)
 18 - Flag 1 (Reaction 1, Weak-Bolt, Wait, Wave, Fast)
  1 - Basic (Fight, Flag 1)
Kainazzo

159. (Reaction)
 59 - Reaction 1, Bolt Magic (Weak-Ice, Flag 0)
 58 - >700 HP, Damage (Flag 2, Weak-Ice)
Cagnazzo

160.
 60 - Formation 252 (Fight, Quake)
  1 - Basic (Chain Fire2, Ice-2, Lit-2 (End Chain), Weak, EndBattl)
Dark Elf (1)

161.
  1 - Basic (Fire 2, Chain Lit-2, Ice 2 (End Chain), Weak, Whisper)
Dark Elf (2)

162. (Reaction)
 61 -  >20000 HP, Damage (TradeOff)
Dark Elf (2)

163.
  1 - Basic (Fight, D. Breath)
Dark Elf (3)

164.
 63 - Monster 0 KO'd (Charm, Bersk, Slow, Cure2)
  1 - Basic (Type 2 Foe-Wall)
Sandy

165.
 63 - Monster 0 KO'd (Fire1, Lit-1, Ice-1, Venom)
  1 - Basic (Type 2 Foe-Fire2,Lit-2,Ice-2,Virus)
Mindy

166.
  3 - 1 Monster (Fight, Remedy on Foes)
 62 - Monster 0 KO'd (Fight, Remedy on Foes)
 64 - Monster 0 KO'd (Fight, Remedy on Foes)
  1 - Basic (Fight)
Cindy
NOTE: Monster 0 must be literally "any monster" since it doesn't correspond correctly otherwise. However 62, 63, and 64 are redundant conditionals since they all do the same thing.

167.
 19 - Flag 2 (Fight, Nothing flag 0)
 18 - Flag 1 (Chain-Weak,Ray (End), Fight)
  1 - Basic (Chain-Defense+,M. Defense+ (End), Flag 1)
Valvalis

168. (Reaction)
 65 - Flag 1, Jump (Flag 2, -Defense, -Magic, Fight)
 66 - Flag 1, Fight (Messages)
 67 - Flag 1, Magic (Messages)
Valvalis

169.
  1 - Basic (Target DarkKn, Fight, Kick, Target DarkKn, Fight, Kick, Flag1)
Karate

170.
 68 - Flag 1, Paladin Fight (EndBattl)
Karate

171.
  1 - Basic (Fight, Glance, Hold)
Calbrena

172. (Reaction)
 69 - >100 HP, Damage (TradeOff)
  9 - Fire Magic (Fire)
 10 - Ice Magic (Wave)
 11 - Bolt Magic (Thunder)
Calbrena
NOTE: How interesting. These reactions would mostly not be seen unless someone uses an Attack Item on Calbrena. It strongly suggests that you should have had Rydia back already in the original plans.

173.
  4 - All Same (TradeOff)
  1 - Basic (Fight)
Cal

174. (Reaction)
  7 - Fight (Fight)
Cal
NOTE: A very simple reaction. Could likely be put on anything you'd like to have a basic reaction.

175.
  4 - All Same (TradeOff)
  1 - Basic (Fight)
Brena
NOTE: Same exact as above. One of these sets of indexes can be changed without worry.

176. (Reaction)
  7 - Fight (Fight)
Brena
NOTE: As above.

177. (Reaction)
 87 - Egg, Damage (Hatch)
Green. D

178. (Reaction)
 87 - Egg, Damage (Hatch)
  7 - Fight (Charm)
Lamia

179. (Moon)
 18 - Flag 1 (Target Random Foe-Virus)
  1 - Basic (Fight, Fire, Target Party-Breath)
D. Lunar

180. (Moon) (Reaction)
 82 - Call (Self-Remedy)
 23 - Flag 0, Fight (Target Foes-Wall, Flag1)
  3 - One Monster (Fire)
D. Lunar
 
181.
 70 - Formation 253 (Nothing)
 18 - Flag 1 (Fight, Chain-Fight(End), Flag 0
  1 - Basic (Chain-Resist-None,Very Weak-Ice(End), Glare, Chain-Resist-Ice,Absorb,Weak-Ice,Absorb(End), Fight, (Repeat), Flag 1)
Rubicant

182. (Reaction)
 71 - Formation 253, Fire Magic (Glare)
 73 - >1000 HP, Fight (Messages, Vanish)
  7 - Fight (Target All, Fire2)
 27 - Paladin Defeated, Fire Magic (Life1 All Characters)
 28 - Adult Rydia Defeated, Fire Magic (Life1 All Characters)
 29 - Kain2 Defeated, Fire Magic (Life1 All Characters)
 30 - Rosa2 Defeated, Fire Magic (Life1 All Characters)
 31 - Edge Defeated, Fire Magic (Life1 All Characters)
Rubicant
NOTE: Seems a bit extreme, possibly, it is only using one script for it all at least.

183.
   1 - Basic (Fire2, UNKNOWN, Order Monster, Flag 1, Vanish)
K. Eblan

184.
   3 - 1 Monster (Vanish)
  18 - Flag 1 (Nothing)
   1 - Basic (Fire1)
Q. Eblan

185. (Reaction)
  37 - Ordered (Change Sprite)
Q. Eblan
NOTE: Only noted Sprite change because it is all the reaction does of importance.


186.
  3 - 1 Monster (TradeOff, Flag1)
 19 - Flag2 (Heal)
 18 - Flag1 (Nothing)
  1 - Basic (Flag 1)
Dr. Lugae

187. (Reaction)
 74 - Fight(Any Unit?) (Flag 2)
Dr. Lugae

188.
  3 - 1 Monster (Explode)
 19 - Flag 2 (Fight)
 18 - Flag 1 (Target Type1 Foe, Fight, Flag 2)
  1 - Basic (Nothing)
Balnab

189.
  1 - Basic (Fight, Explode)
Balnab-Z

190.
 18 - Flag 1 (Beam, Laster, Emission, Target Party-Heal)
  1 - Basic (Flag 1, Poison)
Dr. Lugae(2)

191. (Reaction)
  5 - Damage (Gas)

192.
 32 - Flag 16 (Crush)
  1 - Basic (Chain-WallMove-Fight-Flag+1(End))
EvilWall

193.
  1 - (Fight, Odin, Fight, Fight, Odin, Fight, Flag 1, Flag 0, Odin)
Odin

194. (Reaction)
 75 - Flag 1, Bolt Magic (Vanish)
Odin

195.
 18 - Flag 1 (Target Party - Maser)
  1 - Basic (Big Wave, Ice-2, Big Wave, Ice-2)
Leviatan
NOTE: Now this is curious! Flag 1 is never triggered on Leviathan in the first place, and that is an ill-fitting attack if that were the case.

196. (Moon) (Reaction)
 91 - 1 Monster, Holy Magic (Storm)
  5 - Damage (Fight)
  8 - Magic (Fight)
Behemoth

197. (Moon)
  1 - Basic (MegaNuke)
Bahamut

198. (Moon) (Reaction)
 92. Magic, Flag 1 (Self-Wall, Flag1)
Bahamut
NOTE: Now this is odd. According to his AI he can never set Flag 1 so this might go unused. I never recall Bahamut using Wall to my recollection anyhow.

199.
 76 - Cecil Critical (Jump, EndBattl)
 18 - Flag 1 (Jump)
  1 - Basic (Jump, Flag 1)
Dragoon

200.
  1 - Basic (Nothing)
Golbez
NOTE: Copy of 141 and can be replaced.

201. (Reaction)
  9 - Fire Magic (Messages)
 10 - Ice Magic (Messages)
 16 - Holy Magic (Vanish)
Golbez

202.
 19 - Flag 2 (Virus, Lit-3, Fire2)
 77 - Flag 1, 1 Monster (Target Party-Heal, G-Rydia, Flag 2)
 18 - Flag 1 (Nothing)
  1 - Basic (Hold Gas, Flag 1)
Golbez(2)

203. (Reaction)
 78 - >19000 HP, Damage (Vanish)
Golbez(2)

204.
  1 - Basic (Chain-Yang2,Demolish,Kain2,Demolish,Rosa2,Demolish, Chain-InvinOff,G-MistD,G-MD-Spl(End))
Shadow

205.
 19 - Flag 2 (Life1, Flag 0)
 18 - Flag 1 (Cure3, Flag2)
  1 - Basic (Cure4, Flag1)
Asura

206. (Reaction)
 81 - Flag 2, Damage (Fight, Flag1)
 80 - Flag 1, Damage (Fight, Flag0)
 79 - Flag 0, Damage (Fight, Flag2)

207.
 18 - Flag 1 (Fire2, Fire3, Glare)
  1 - Basic (Chain-Resist-Ice-Bolt-Dark,Very weak-Fire, Race-Zombie(End)Fight, Curse)
Elements

208. (Reaction)
 89 - Flag 1, >11000 HP, Damage (TradeOff)
 88 - Flag 0, >40000 HP, Damage (Flag1, Resist-Fire-Bolt-Dark, Very Weak-Ice, Race-Mage)
Elements

209.
 20 - Flag 3 (Fight, Ray, Storm)
  1 - Basic (Chain-Flag2-Resist-Fire-Ice-Dark,Very Weak-Bolt,Race-None(End), Fight, Big Wave)
Elements(2)

210. (Reaction)
 90 - Flag 2, >27000 HP, Damage (Flag 3, Resist-None, Weak-Holy, Race-None)
Elements(2)
NOTE: Hmm... without clearing the Bolt Weakness, does that mean that Barbariccia is then weak to Bolt as well?

211.
  1 - Basic (Target Type 1, Remedy)
Defender

212.
  1 - Basic (Target Party - Maser)
Attacker

213. (Moon)
  1 - Basic (Nothing)
Zemus

214. (Moon) (Reaction)
 83 - ?224? (Twin?), Flag 1 (Vanish)
 16 - Holy Magic (Flag 1)
Zemus

215. (Moon)
  1 - Basic (Nothing)
Zeromus

216. (Moon) (Reaction)
 84 - FuSoYa, Holy Magic (Messages, Nothing)
 96 - Dark Magic (Meteo)
Zeromus

217.
  1 - Basic (Chain-Flag1-Search(End), Chain-Disrupt-Flag0)
TrapDoor

218.
 85 - >700, Damage, Flag 0 (TradeOff)
TrapDoor

219.
  1 - Basic (Self-Peep, Retreat)
Dummy(5)
NOTE: A Programmer's Room Battle AI. Can be replaced.

220.
  1 - Basic (Self-Sleep, EndBattl)
Dummy(4)
NOTE: A Programer's Room Battle AI. Can be replaced.

221.
  1 - Basic (Fight)
Antlion
NOTE:A repeat of another Index. Can be replaced.

222. (Reaction)
  7 - Fight (Counter)
Anlion

223. (Moon)
 19 - Flag 2 (Chain-Disrupt-Z-Shake(End))

 18 - Flag 1 (Chain-C-Cid/Yn-Z-FlHeal-Target Edge-Z-Elixir-Target Kain3-Z-Elixir-R-Images(End), Chain-C-Gol/Fu-Z-FlHeal-Target Party-Z-Elixir-R-Images-Flag2-Z-Shake(End))

  1 - Basic (Chain-C-Pa/Po-ZFlHeal-Target Party-Z-Revive-R-Images(End),  Chain-C-Ed/Tel-ZFlHeal-Target Rosa2-Z-Elixir-Target Adult Rydia-Z-Elixir-R-Images-Flag1(End))
Zeromus(2)
 
224. (Moon) (Reaction)
 95 - Cecil, Dark Magic, Flag 2 (UNKNOWN, TradeOff, UNKNOWN)
  5 - Damage (Vanish2)
Zeromus(2)
Note: Interesting, apparently if you ever found a way to damage Zeromus, he would undo it immediately.

225. (Moon)
 22 - Flag 5 (Chain-Magic-27-Meteo(End))

 21 - Flag 4 (Z-Shake, Magic+1, Big Bang, Blk. Hole, Magic-16, Nuke, Z-Shake, Magic+2, Big Bang)

 20 - Flag 3 (Z-Shake, Magic+1, Big Bang, Blk. Hole, Z-Shake, Magic+2, Big Bang, Magic+6, Target Party-Virus, Blk. Hole, Magic+2, Big Bang, Blk. Hole)

  1 - Basic (InVinOff, Z-Shake, Big Bang, Flag 3)
Zeromus (3)

226. (Moon) (Reaction)
 98 - Flag 4, Damage, >12000 HP (Flag 5)
 25 - Flag 3, Damage, >16000 HP (Flag 4, Vanish2)
 94 - Call, Flag 3, (Magic-16, Nuke)
 82 - Call (Magic+6, Target Party-Virus)
 16 - Holy Magic (Enemy Spell - Weak)
  8 - Magic (Magic-16, Nuke)
Zeromus(3)

227. (Moon)
  2 - Charm (Thunder on Party)
  1 - Basic (Fight, Blitz)
King-Ryu

228. (Moon) (Reaction)
  5 - Damage (Entangle)
King-Ryu

229. (Moon)
  2 - Charm - (Self-Fire3, Self-Fight)
  3 - 1 Monster (Fight, Heat Ray, Fight)
  1 - Basic (Fight, Fightx2)
Red D.

230. (Unused) (Moon) (Reaction)
 82 - Call (Bluster)
NOTE: This seems like it was made for another Couerl-like monster, but there are none on the moon, as I recall in the Normal FFIV. In FFIV:TAY there are Couerl-like foes on the moon. Might it be that they were planned all the way back in 1991?

231. (Moon)
 18 - Flag 1 (Self-White, Self-Nuke, Self-Virus, Self-White, Target Party-Cure3, Target Roulette-Fast, Self-Wall)
  1 - Basic (Wall, Target Party-Wall, Flag 1)
EvilMask

232. (Moon) (Unused)
  1 - Basic (Invalid - Script:256)
NOTE: No idea, but it is another free index in any case.

233. (Moon)
 19 - Flag 2 (Target Party, Lit-3)
  1 - Basic (Self-Peep)
Tricker

234. (Moon) (Reaction)
 11 - Bolt Magic (Fast, Flag 2)
Tricker

235. (Moon)
 26 - Reflect (Magic-18, Nuke, Magic-22, Magic-18, Nuke, Magic-22, Magic-18, Nuke, Magic-22, Magic-18, Nuke, Magic-22)
 18 - Flag 1 (Self-Remedy, Self-Wall)
  1 - Basic (MegaNuke, Flag1, Self-Wall)
Wyvern

236. (Moon) (Reaction)
 82 - Call (Magic-24, MegaNuke)
Wyvern

237. (Moon)
  1 - Basic (Fight, Big Wave)
Ogopogo

238. (Moon) (Reaction)
 11 - Bolt (Enemy Spell - Weak)
 82 - Call (Blaze)
  8 - Magic (Blaze)
Ogopogo

239. (Moon)
  1 - Basic (Fight, many times)
Pale Dim
 
240. (Moon) (Reaction)
 82 - Call (Quake)
  7 - Fight (Slow)
  9 - Fire Magic (Glare)
 10 - Ice Magic (Blizzard)
 11 - Bolt Magic (Blitz) 
Pale Dim

241. (Moon)
  1 - Basic  (Fight, Target Party-Charm)
Mind

242. (Moon) Reaction)
  7 - Fight (Armor)
 16 - Holy Magic (Shell)
Mind

243. (Moon)
  1 - Basic (Peep)
Breath

244. (Moon) (Reaction)
  8 - Magic (Blast)
Breath

245. (Moon)
 98 - Flag 4, Damage >12000 HP ("!" messages, TradeOff)
  1 - Basic (One message that says "It's my turn now!" and the rest are unused, EndBattl)
NOTE: What a strange index, it seems like it may have been intended for a Programmer battle at one point with the emphasis on Messages and EndBattl's.

246. (Moon)
 1 - Basic (Fight)
Behemoth
NOTE: Copy of Index 62 (Also Moon). Can be replaced.

247. (Reaction)
  7 - Fight (Messages, Explode)
NOTE: Programmer's Room Battle, can be replaced.

248.
  1 - Basic (Messages, EndBattl)
Dummy(6)
NOTE: Programmer's Room Battle, can be replaced.

249.
  1 - Basic (Nothing)
Dummy(3)
NOTE: Copy of 141, can be replaced.

250.
  1 - Basic (UNKNOWN, Messages, Vanish)
Dummy(7)
NOTE: Programmer's Room Battle, can be replaced.

251.
  1 - Basic (Messages, EndBattl)
Dummy(8)
NOTE: Programmer's Room Battle, can be replaced.

252. (Reaction)
 24 - >1000 HP, Damage (Fission)
Last Arm
NOTE: Programmer's Room Battle, can be replaced.

253. (Reaction)
  5 - Damage (Message, Slap)
Dummy(7)
NOTE: Programmer's Room Battle, can be replaced.

254.
  1 - Basic (Repeating Message, Fight)
Dummy(9)
NOTE: Programmer's Room Battle, can be replaced.





I will also soon be including Script usage, as that is a bit of a different matter, but half of the work is done for me here. I did not include matters that I considered non-essential so most mentions of messages are left out, as are all sprite changes, and music changes.

11
This has always boggled my mind when I first heard about it. What was the expected design of the Immune bit? Was it really supposed to give a character 99% Physical Evade or was it just a code mess that only occurred by chance and a mistaken byte exchange.

Well now, I think I have the answer to that...

$03/9A00   A0 29 00   LDY #$0029   A:0023   X:0003   Y:0023   P:envMxdIZC - Load 29 into A.
$03/9A03   18    CLC   A:0023   X:0003   Y:0029   P:envMxdIzC - Clear Carry Flag.
$03/9A04   A5 AA   LDA $AA    [$00:00AA]   A:0023   X:0003   Y:0029   P:envMxdIzc - Load the Value in AA into A.
$03/9A06   6D 6C 39   ADC $396C  [$7E:396C]   A:0094   X:0003   Y:0029   P:eNvMxdIzc - Add the value from 7E369C into A.
$03/9A09   20 2A 9E   JSR $9E2A  [$03:9E2A]   A:0094   X:0003   Y:0029   P:eNvMxdIzc - Jump to Subroutine.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$03/9E2A   C9 63   CMP #$63   A:0094   X:0003   Y:0029   P:eNvMxdIzc - Is it 63?
$03/9E2C   90 02   BCC $02    [$9E30]   A:0094   X:0003   Y:0029   P:envMxdIzC - If less than 63, branch to 9E30.
$03/9E2E   A9 63   LDA #$63   A:0094   X:0003   Y:0029   P:envMxdIzC - Load 63 into A.
$03/9E30   60    RTS   A:0063   X:0003   Y:0029   P:envMxdIzC - Return
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$03/9A0C   91 80   STA ($80),y[$7E:2129]   A:0063   X:0003   Y:0029   P:envMxdIzC - Store A in Evasion.


AA - Is the temporary storing place of Character's evasion. For some reason when an Immune bit item is put on it, it jumps to
94.

When we dig a little deeper...

$03/9987   B5 AD   LDA $AD,x  [$00:00AD]   A:0000   X:0000   Y:0029   P:envMxdIZC - Load AD (+x) into A.
(AD Becomes 80 through the Immune Bit)
$03/9989   30 06   BMI $06    [$9991]   A:0080   X:0000   Y:0029   P:eNvMxdIzC -If it is 80 or above branch to 039991.
----------------------

------------------
$03/9991   05 AA   ORA $AA    [$00:00AA]   A:0080   X:0000   Y:0029   P:eNvMxdIzC - Add it to AA
$03/9993   85 AA   STA $AA    [$00:00AA]   A:0080   X:0000   Y:0029   P:eNvMxdIzC - Store it in AA.


So now the question becomes... how did AD acquire that 80?

Well we have to go back to the beginning of this process which begins at 039965 it appears...

?Armor Equipping Routine?

Code: [Select]
$03/9965 7B TDC A:0000 X:0005 Y:0030 P:envMxdIZC - Transfer Direct Page
$03/9966 AA TAX A:0000 X:0005 Y:0030 P:envMxdIZC - Transfer A to X.
$03/9967 86 A9 STX $A9    [$00:00A9] A:0000 X:0000 Y:0030 P:envMxdIZC - Store A in A9.
$03/9969 A0 08 00 LDY #$0008 A:0000 X:0000 Y:0030 P:envMxdIZC - Load 0008 into Y
-----------------------------------------------------------(Looping Point)---------------------------------------------------------
$03/996C B1 82 LDA ($82),y[$7E:27F6] A:0000 X:0000 Y:0008 P:envMxdIzC - Load Value from 7E27F6 into A.
$03/996E 95 AD STA $AD,x  [$00:00AD] A:0080 X:0000 Y:0008 P:eNvMxdIzC - Store A in AD.
$03/9970 98 TYA A:0080 X:0000 Y:0008 P:eNvMxdIzC - Transfer Y to A
$03/9971 18 CLC A:0008 X:0000 Y:0008 P:envMxdIzC - Clear Carry Flag.
$03/9972 69 0B ADC #$0B A:0008 X:0000 Y:0008 P:envMxdIzc - Add 0B to A.
$03/9974 A8 TAY A:0013 X:0000 Y:0008 P:envMxdIzc - Transfer A to Y.
$03/9975 E8 INX A:0013 X:0000 Y:0013 P:envMxdIzc - +1 to X.
$03/9976 E0 03 00 CPX #$0003 A:0013 X:0001 Y:0013 P:envMxdIzc - Has it cycled three times?
$03/9979 D0 F1 BNE $F1    [$996C] A:0013 X:0001 Y:0013 P:eNvMxdIzc - Then loop back to 03996C
---------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------
$03/997B AD 6D 39 LDA $396D  [$7E:396D] A:0029 X:0003 Y:0029 P:envMxdIZC - Load 7E396D into A.
$03/997E 85 B0 STA $B0    [$00:00B0] A:0000 X:0003 Y:0029 P:envMxdIZC - Store A in B0.
$03/9980 AD 6E 39 LDA $396E  [$7E:396E] A:0000 X:0003 Y:0029 P:envMxdIZC - Load A from 7E396E.
$03/9983 85 B1 STA $B1    [$00:00B1] A:0000 X:0003 Y:0029 P:envMxdIZC - Store A in B1.
$03/9985 7B TDC A:0000 X:0003 Y:0029 P:envMxdIZC - Transfer Direct Page.
$03/9986 AA TAX A:0000 X:0003 Y:0029 P:envMxdIZC - Transfer A to X.
---------------------------------------------------------(Looping Point)----------------------------------------------------------------
$03/9987 B5 AD LDA $AD,x  [$00:00AD] A:0000 X:0000 Y:0029 P:envMxdIZC - Load A from AD +X.
$03/9989 30 06 BMI $06    [$9991] A:0080 X:0000 Y:0029 P:eNvMxdIzC  - If minus branch to 039991.
------------------------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------------------------
$03/9991 05 AA ORA $AA    [$00:00AA] A:0080 X:0000 Y:0029 P:eNvMxdIzC - Add 80 to AA
$03/9993 85 AA STA $AA    [$00:00AA] A:0080 X:0000 Y:0029 P:eNvMxdIzC - Store A in AA.
$03/9995 E8 INX A:0080 X:0000 Y:0029 P:eNvMxdIzC - +1 to X
$03/9996 E0 05 00 CPX #$0005 A:0080 X:0001 Y:0029 P:envMxdIzC - Is X 5?
$03/9999 D0 EC BNE $EC    [$9987] A:0080 X:0001 Y:0029 P:eNvMxdIzc - If not loop back to 039987.

7E27F6 is the key. Now this is a section of RAM that is woefully under-explored, but 27F6 must deal with the character slot. The Glass Helm in particular (and likely any immune bit) copies an 80 to there. What 7E2780 and beyond appears to be copies of the character equipment that the characters currently have equipped.

And the final verdict...

It's intended. As idiotic of a decision as it is, the programming doesn't lie, it Specifically looks for an item that is equipped (hence why it searches three times through the character's equipment, interestingly Shields are not included in this search and indeed when they have the Immune bit they are not effected by the 99% evade) for a negative value byte in Elemental Resistance to take it through a special piece of code that...

$03/9987   B5 AD   LDA $AD,x  [$00:00AD]   A:0000   X:0000   Y:0029   P:envMxdIZC - Load A from AD +X.
$03/9989   30 06   BMI $06    [$9991]   A:0080   X:0000   Y:0029   P:eNvMxdIzC  - If minus branch to 039991.
------------------------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------------------------
$03/9991   05 AA   ORA $AA    [$00:00AA]   A:0080   X:0000   Y:0029   P:eNvMxdIzC - Add A to AA
$03/9993   85 AA   STA $AA    [$00:00AA]   A:0080   X:0000   Y:0029   P:eNvMxdIzC - Store A in AA.
$03/9995   E8    INX   A:0080   X:0000   Y:0029   P:eNvMxdIzC - +1 to X
$03/9996   E0 05 00   CPX #$0005   A:0080   X:0001   Y:0029   P:envMxdIzC - Is X 5?
$03/9999   D0 EC   BNE $EC    [$9987]   A:0080   X:0001   Y:0029   P:eNvMxdIzc - If not loop back to 039987.

Looks for AA (Evasion) and places it in AA. The only thing I can possibly think of what it may have done was supposed to give the player 99% magic evasion, but that's just as equally dumb. Something here was supposed to give the player 99 of something. Whatever it was, it couldn't have been balanced, that's for certain.

To fix this you change...

$03/9987   B5 AD   LDA $AD,x  [$00:00AD]   A:0000   X:0000   Y:0029   P:envMxdIZC - Load A from AD +X.
$03/9989   30 06   BMI $06    [$9991]   A:0080   X:0000   Y:0029   P:eNvMxdIzC  - If minus branch to 039991.

To...

$03/9987   B5 AD   LDA $AD,x  [$00:00AD]   A:0000   X:0000   Y:0029   P:envMxdIZC - Load A from AD +X.
$03/9989   EA    NOP   A:0080   X:0000   Y:0029   P:eNvMxdIzC - NULL
$03/998A   EA    NOP   A:0080   X:0000   Y:0029   P:eNvMxdIzC - NULL

And that's all it takes. This does not cause any issues as far as I could make out and fixes the 99% problem in its entirety. A more clever hacker could utilize this in a more efficient fashion,  actually redirecting the 80 rather than downright avoiding it.

12
Final Fantasy IV Research & Development / Creating an FFIV Randomizer
« on: September 29, 2013, 10:54:50 PM »
I love Roguelikes and random items given from chests (and preferably also from monsters, but that seems quite difficult to program) which is why I am a big fan of the FFV Ancient Cave Hack. I was thinking of making something similar to that for FFIV.

Preferably you would choose your starting party, then set off to random maps, collect random treasure, until you reached certain floor numbers where you would fight bosses. Now a clear and present problem would of course be "So I get the Crystal Sword at game start. Looks like I can just plow through the game." To limit this I plan on implementing a Saga-esque system of Item Durability.  Every weapon you pick up will be a x10 Quantity. So yes, you may get that first chest Crystal Sword, but you'll have to use it sparingly. And as seen recently I managed to fix the Infinite Arrow Bug so that will no longer be a portion of concern. The durability system is A: to prevent people from using only the higher end equipment they may find. B: Prevent people from staying in one area forever to grind.  C: Present a rationing system that was not present at all in the original.

Now this leaves Armor... If the RNG is set from 00-FF you may get Nothing (fine with that), Sort, TrashCans (not fine with those) and you may get Adamant Armor. Game Over. You win. So because great armor in the early game can really imbalance the game Armor of every sort will only be dropped by Monsters, which will ideally not have such a high randomness (as in you won't go from fighting Imps to Gargoyles). And every monster will have their Item Drop from 1 to 2 to increase the likelihood you'll have armor.

So far I have found the "Give Item" Routine and found a cursory 00-FF byte to use, but that's clearly not ideal. The x10 Quantity, the way to equip multiples of an item, the way to fix the Infinite Arrow Glitch. Setting up a room with all Party Members that deactivate when you take them with you (thereby preventing any duplicate party members) is an easy enough event sequence to build.

While Ancient Cave is a lot of fun there aren't that many dungeons and rooms represented. But I'm not even sure how I would go about making it so the maps chosen are valid or if the coordinates will be correct in FFIV. If I can't get that to work I might just have to go for a straight "Dungeon Adventure" (which was recently done for Zelda 64, that too is a very enjoyable hack.) Choose your party, all chests will be randomized. Monsters will drop Armors (possibly healing items as well if I can't get some CMP set up that checks between Items and Weapons). Dungeon Bosses will be at the end of their respective dungeons (Now I might be able to make events have random battles so when you reach the end of the Mist Cave you might not be fighting the Mist Dragon the only possibility). And clearly some classes will need rebalanced. Otherwise there are just some characters people will never use. Why use Dark Knight Cecil, Tellah, Porom, Cid, and Edward when you could use the normal Final Party (which is the best party it seems)?

These are my preliminary ideas, but they are far from perfect. Does anyone have any thoughts on how to proceed with anything I said above, or have any suggestions of their own?





13
Final Fantasy IV Research & Development / Fixing the Infinite Arrow Glitch
« on: September 28, 2013, 10:35:30 AM »
I had thought a topic such as this (bug fixes and the like) deserve their own topics for ease of use for people that are looking purely for the fixes (not to mention fixes in general are a larger deal than disassembling)

Okay, well I finally have the means to fix the Arrow Glitch. Just yesterday I was disassembling the Attack Routines and saw references to Arrows. For our purposes here is the relevant information...

Code: [Select]
03/C972 38 SEC A:0001 X:0008 Y:0000 P:envMxdiZc - Set Carry Flag.
$03/C973 BD DC 32 LDA $32DC,x[$7E:32E4] A:0001 X:0008 Y:0000 P:envMxdiZC - Load A from Right Hand Quantity.
$03/C976 E9 01 SBC #$01 A:0032 X:0008 Y:0000 P:envMxdizC - -1 to A. (-1 Arrow)
$03/C978 D0 0E BNE $0E    [$C988] A:0031 X:0008 Y:0000 P:envMxdizC  - If not 00 branch to 03C988.
----------------------------------------------------------------------------------------------------------
$03/C97A A5 CD LDA $CD    [$00:00CD] A:0000 X:0008 Y:0000 P:envMxdiZC - Load A from CD.
$03/C97C AA TAX A:0001 X:0008 Y:0000 P:envMxdizC - Transfer A to X.
$03/C97D BD DC 38 LDA $38DC,x[$7E:38DD] A:0001 X:0001 Y:0000 P:envMxdizC - Load A from 7E38DD.
$03/C980 1A INC A A:0000 X:0001 Y:0000 P:envMxdiZC - +1 to A.
$03/C981 05 AB ORA $AB    [$00:00AB] A:0001 X:0001 Y:0000 P:envMxdizC - Check it against address AB.
$03/C983 9D DC 38 STA $38DC,x[$7E:38DD] A:0001 X:0001 Y:0000 P:envMxdizC - Store A in 7E38DD. (This will make the game realize next turn to decrement the arrow and quantity to 0)
$03/C986 80 03 BRA $03    [$C98B] A:0001 X:0001 Y:0000 P:envMxdizC - Branch to 03C98B

As can be seen the game goes Out Of Its Way to keep that +1 Arrow in the quantity (this is likely to prevent a reset-byte glitch which would make it 255 Arrows) . But they never had to take this path in the first place. When a character's turn starts the game checks if a 01 Arrow has been used and if it has it erases both Arrow and Quantity in a separate location (7E32XX section). Then it adds 1 to the value at 7E38DX (Dependent on Slot) and if that is 1 erases Arrow and Quantity. A more efficient way to do this would have just been to write a JSR to the erasing value at 03A848. The only problem with this is that the game read the Empty Hand after the damage but before the graphics processing so you will be attacking with Fists, dealing appropriate Weapon Damage, but that's the only glitch associated with this and a lot less gamebreaking if someone wanted to make a Saga Style mod where all weapons have "durability". I'll take a small graphical glitch over that nonsense anyday

To make this work correctly change...

$03/C97A   A5 CD   LDA $CD    [$00:00CD]   A:0000   X:0008   Y:0000   P:envMxdiZC - Load A from CD.
$03/C97C   AA    TAX   A:0001   X:0008   Y:0000   P:envMxdizC - Transfer A to X.

To...

$03/C97A   20 48 A8   JSR $A848  [$03:A848]   A:0000   X:0008   Y:0000   P:envMxdiZC - Jump to Subroutine - Arrow/Quantity Erasing Routine.

The rest of that "wait and see" routine past the 00 Arrow check above is unnecessary if this is taken into account. And can be modified to include anything the hacker would like.

While it's not perfect. It's better than what is in place currently, I would say.





14
Alright, this is something that could be quite game changing and of interest to any FFIV players so I thought I would make a thread for it because something like this was clearly intended to be in the game but due to some ridiculous oversight, it was not.

In the normal game enemies in their data at 29/80 bytes are supposed to have an evasion stat, it is part of their defense code that they should have Defense, Evasion, and Defense Multiplier, now what happens normally is that all of their stats (at least I presume all of their stats. I haven't yet taken a closer look to see if Square was on-the-job with the rest of the Monster Data.) are entered in when battle begins Except for Evasion. The reasoning on why this is, is ridiculous and Square should be ashamed of themselves for not noticing such a thing. (Missing it in code is one thing, but to miss it in testing (and presumably looking at the monster's stats in battle) is another.

Here is the fix.

In LoRom/HiRom...

Normal
$03/90D7   9D 2A 20   STA $202A,x[$7E:22AA]   A:0046   X:0280   Y:0083   P:envMxdIzC


Fixed.
0390D7 9D 29 20 - One byte, one off, and yet Square never caught it.

In ROM this is at...

0192D7 9D 29 20 - One byte, one off, and yet Square never caught it.

What normally happens is that Evasion is written into the Defense Base and then is immediately erased for the Defense Base. Maybe it was intentional? But I mostly doubt it.

15
Table of Contents

1. Spell Routine Offsets

2. Command Routine Offsets

3. Specialty Routine Offsets

4. Event Routine Offsets

5. Bug Fixes

6. Custom Routine Offsets (& Replacements)
A. Commands
B.  Spells
C. Event Instructions
D. Patches

7. Miscellaneous


Well this has been a long time coming, even I'm now having trouble keeping track of all I've found thus far, hehe. So I thought a separate thread to keep everything in a clean manner would make it easier to find and maybe others would be able to track down this information in a more efficient fashion.

I will list the Routine Maps as they appear in the Tower of Babil Docs (thereby ROM) for quick and easy reference (for myself and for others) I will have several links to the Tower of Babil Docs as well, to reference the routines I haven't done because they were completed long ago.

To find any of these values in ROM decrease the amount by 1FE00 (for v1.1) - They are in their LoRom format for efficiency purposes.

 :edit: 1/31/14 Added a Combo Patch which puts all of my released patches into one easy patch.

 :edit: 7/12/15 Finally cleaning this topic a little to put all of my work back into the main part of this topic.

This post is now updated with quick links to all of the available Command Subroutines I've commented on.

Spell Routine Offsets -

00 Damaging Spells- 03D388
01 Damage, Sap - 03D3C2
02 HP Healing - 03D41C
03 Single Digit HP - 03D453
04 Drain - 03D476
05 Psych - 03D498
06 Status - 03D515
07 Immobilizing Status - 03D5B6
08 Add Image - 03D623
09 Reflect - 03D62C
0A Life - 03D65B
0B Heal/Remove All Statuses Except.... - 03D6F8
0C Shape Changing Status - 03D82A
0D Protect - 03D84F
0E Shell - 03D873
0F Slow - 03D897
10 Dispel - 03D8B0
11 Stop - 03D8EE
12 Peep - 03D924
13 Exit - 03D97F
14 Damage Based on Caster's HP - 03D99D
15 MP Recovery - 03D9F9
16 Elixir - 03DA19
17 Damage, Poison - 03DA2B
18 Damage, Status - 03DA73
19 Damage, Immobilizing Status - 03DA8C
1A Sylph - 03DAAE
1B Odin - 03DB5F
1C Count - 03BB5
1D Damage Based on Target's Max HP - 03DBE5
1E Add Calcify - 03DC2B
1F Gaze - 03DC90
20 Blaster - 03DCB0
21 Slap - 03DCCB
22 Mind Blast - 03DCF0
23 Hug - 03DCFB
24 Explode - 03DD12
25 Reaction - 03DD2F
26 Recover 1/10 of Max HP - 03DD4E
27 Damage, Status(Unused?) - 03DD92
28 Spawn Monster - 03DD98
29 Black Hole - 03DDAE
2A Attack Based on Physical Power - 03DDC6
2B Recover 1/3 of Current HP - 03DD62
2C "Trigger A Reaction" - 03DDD9
2D Invincibility Counter-On - 03DDD6
2E Invincibility Counter-Off - 03DDDA
2F Revive Monster - 03DDDE
30 Tradeoff(Suicide, bring in Next Monster) - 03DE31
31 End Battle - 03DFCF
32 Search - 03DFD5
33 Hatch - 03DFE8
34 Rydia Returns - 03E004

Command Routine Offsets

00 Fight - 03C499
01 Damage Routines - 03C924
02 White/Black/Call/Ninja/Spell Item Routines - 03CC46
03 Spell Subroutines (Above)
04 Peep/Study - 03E153
05 Enemy Runs Away - 03E1B2
06 Steal- 03E1CC
07 Salve/Medicine - 03E2DC
08 Throw/Dart - 03E34C
09 Change/Row - 03E3D1
0A Regen - 03E3FA
0B Twin - 03E46F
0C Cover - 03E60F
0D Off - 03E653
0E Gird/Endure - 03E696
0F Kick - 03E6B4
10 Focus/Boost - 03EF70
11 Aim - 03E836
12 Pray - 03E852
13 Hide - 03E876
14 Show - 03E8BB
15 Sing - 03E900
16 Jump - 03E954
17 Parry - 03E9DE
18 Dark Wave - 03E9E9
19 Recall - 03EA1A
1A Bluff/Boast - 03EAC3
1B Cry - 03EAE6
1C Part of Steal Subroutine - 03EB29
1D Item - 03EB9D


Specialty Routine Offsets

Damage Determination - 03C9AF
Grimoire Item - 03EC0D
Out of Battle White Magic - 01B753
Full Disassembly on the Poison Status - 039E45/03A8FD
Full Disassembly on All Status Timers

Event Instruction Offsets
00 Load Some Type of Graphic FC (Actually Nothing) - 000000
01 Repeat XX Times the Following YY Actions EB - 000000(blank because this is looked at in respect to the Movement Patterns)
02 Play Visual Effect FD - 00C17C
03 Show Message from Bank 02 (Event Call) EE - 00E339
04 Open Namingway Screen D9 - 00E344
05 Open Fat Chocobo Screen D4 - 00E351
06 Bring Up Shop XX ED - 00E35E
07 Fade Song XX in EA - 00E379
08 Toggle Music Fade D8 - 00E38B
09 Fight Battle with Enemy Set XX EC - 00E391
0A Toggle Running D7 - 00E54B
0B Play Song XX FA - 00E559
0C Play Sound Effect XX FB - 00E56F
0D Add XX Character to Party E7 - 00E578
0E Remove XX Character from Party E8 - 00E6AF
0F Toggle Screen Tint XX F9 - 00E731
10 Toggle Screen Fade DA - 00E7C4
11 Put in Spell List XX' SpellBook, Spell YY E2 - 00E7D8
12 Restore HP (10 * XX HP) DE - 00E7FF
13 Restore MP (10 * XX MP) DF - 00E85F
14 Add Item XX to Inventory E0 - 00E8BF
15 Remove Item XX from Inventory E1 - 00E8CB
16 Toggle Status Ailments XX DB - 00E90A
17 Remove All Status Ailments but XX E3 - 00E929
18 Add Status Ailments XX E4 - 00E948
19 Add 100 * XX GP to Party E5 - 00E967
1A Subtract 100 * XX GP to Party E6 - 00E97E
1B Change Character Graphic to XX DD - 00E9B6
1C Inn DC - 00E9E6
1D End Event FF - 00EA20
1E Pause XX Cycles E9 - 00EAB5
1F Show Message 1XX (Yes/No Box) F8 - 00EAE9
20 Bring up Item Selection Window F7 - 00EB0E
21 Screen moves up 1 tile and down 1 tile D6 - 00EB65
22 Toggle Screen Shake D0 - 00EB94
23 Screen Flash D1 - 00EB9D
24 Screen blur and unblur D2 - 00EBD4
25 Travel to/from Moon D3 - 00EBEF
26 Open a Door D5 - 00EC17
27 Load Map FE - 00EDB1
28 Show Message from Bank 02 (Map Call) EF - 00EF28
29 Show Message 0XX from Bank 01. F0 - 00EF4E
2A Show Message 1XX from Bank 01. F1 - 00EF5F
2B Show Message XX (from Bank 3) F6 - 00EF70
2C Set Event Flag XX F2 - 00EF81
2D Clear Event Flag XX F3 - 00EF8A
2E Activate NPC XX F4 - 00EF93
2F Deactivate NPC XX F5 - 00EF9C

Visual Effect Offsets





Bug Fixes

Enemy Evasion Fix
Enemy Magic Evasion Fix
Infinite Arrow Fix
99% Evasion through Immune Byte Fix
Lingering x4 Weakness through Immune Byte Fix


Custom Routine Offsets (& Replacements)
Commands
Fight(Broken Calcify Weapon Routine) to Fight(Imbued Weapons)
Peep to Seek
Peep to Geomancy
Cry to FFIV:CC Cry
Cry to Coat Hammer
Steal to Mug
Salve to Item Master
Dart to Draw Out(Katana Soul)l
Twin to W.Meteo/Third Random Spell Twin
Twin to Targeting Dependent Spell Used Twin
Aim to Snipe
Aim to Barrage
Aim to Arrowstorm
Pray to Hunt
(Empty Space) to Hunt Rewards System
(Empty Space) to Hunt Rewards System +
Hide to Advnc (Advance)
Dark Wave to Dark Wave - Zombie Death
Dark Wave to FFIV:DS Darkness
Dark Wave to Dark Wave + Spell Cast
Item to Not 100% Item Accuracy
Sing to Harp-Dependent Sing
(Empty Space) to Magic Weapons
Recall to Dragon Speak
Regen to Will Based Regen
Kick to No Armor-Improved Kick.
Gird to FFI Based Armor-Gird
Boast to Elemental Weapon
(Empty Space) to Seek Remastered

Spells

Healing Spells to Alchemy-Cure
Damaging Spells to Item Lore-Damage
Weak to LOCK
Shell to SLO1
Modify Speed to TMPR
Hug to FAST
Reaction to SLO2
Dispel to SABR
Chillyfeez's Dispel to Aura
Count to HARM
Counte to Elemental Strike/Fancy Flourish
Blink to RUSE
Odin to AFIR,AICE,ALIT,ARUB, WALL, FEAR
Protect to Spell Power Dependent Protect
Blast to Magic Sword
Damage, Sap to Piercing Sight
Search to Taunt
Sylph to Battle Skill
Damage, Status (Unused) to Regen (Command)

Specialty
Auto-Hide to XX Armor = Dark Wave replacing Cover
Redundant Start of Game Code to Storing Commands in RAM!


Patches

Imbued Weapons
Katana Soul
Battle Skills
Geomancy
FF III Style Sing
FFV Style Magic Weapons
Combo Patch of the above 6 Patches

Miscellaneous

Amount of Free Space contained within Banks
Audiovisual Code Breakdown
Outside of Battle Treasure Acquiring
Chance to Drop Money while running and Stat Replacement
Auto-Hide Notes 1
Auto-Hide Notes 2
All Attack Building Formulas
Auto-Cover Notes
Fighting Zeromus without Cecil.
Command Menu Accesses
Back Attack/Ambush/First Strike Code
Level Up Code and Notes
Shadow Slot Procedure
Big Chocobo Coding (some)
Damage Tiles
Disabling Level+Shield Defense Multipliers
Enabling all items to be checked and decremented in the Item Use Event
Enabling Critical Hits for Foes
Stat Changing AI Routines
Bow/Arrow Index Routines 1
Bow/Arrow Index Routines 2

Pages: 1 2 »