Release URL: http://x11.s11.xrea.com/ff5_bugfixes.zip Last Modified on: 8 July 2010 Inu Translated by Xardas Final Fantasy V (SFC*) Bugfix Patch Collection *SFC = Super Famicom (The Japanese SNES) ------- Preface ------- This is a collection of ips patches which aim to fix every bug or error in the SFC-version of FF5. All patches must be applied on a headerless original Japanese FF5 ROM. The patch collection is free to use and alterate. There is no guarantee provided within the codes and patches - use them on your own risk. -------- Contents -------- The zip archive should contain the following folders and files. asm/ This directory contains the sourcecode. base/ This directory contains patch files used for expansion. bugfix/ This directory contains bugfix patches. improve/ This directory contains improvements which do not fix something considered as bugs directly. uninstall/ This directory contains ips files which remove applied patches. updates/ This directory contains older versions of the core and ext patches. BUG-LIST.txt This file shows all bugs (fixed and unfixed) of the SFC, PS and GBA versions. CHANGES.txt This is the changelog. NEWS.txt This file informs about the contents of updates. README.txt You are reading this right now. ----------- Explanation ----------- A detailed explanation of all patches. * Some patches only work properly when another specific patch (usually ff5_core.ips or ff5_ext.ips) is already applied in before. In that case, the required patch is mentioned in the explanation. If the required patch is changed/updated, you must uninstall all patches which require that file, apply the new version, and then re-install the patches which required said patch. * Beware of conflicting patches. If some patches conflict, you can only choose one. Conflicts are also pointed out in the patches' explanation. * Pay attention to the footnotes provided at some patch explanations. ff5_core-*.ips General changes: - You can now target the enemy on slot 8. - Changes on enemy names and parameters: o The enemy numbers are stored on a higher order, but should work properly. o Enemy numbers are now treated as 0x00FF instead of 0xFF (= are now changed into 16 bit values (?)) - Stalker/Wendigo behavior/script is now possible for formations with less than 4 enemies. - It is now possible for the battle messages shown after using a spell to make them display different text, dependant on if it is being used by an ally, or an enemy (*1) - The upper limit for max. MP is now the value set in the monster data, rather than 9999 (*2) - Changes on status ailments: o After the infliction of some status effects, the rest of the pattern will not be executed. (?) (This will fix the "White Hole Bug") o Bug fixed where some items or special attacks did not display reflect status as supposed. (?) - Character (as in kanji or letter) code 0x11 (item name) expanded to 9. - Character (as in kanji or letter) code 0x12 (magic name) expanded to 6. - Sometimes a character who is not supposed to gets the first turn in a battle. This error is fixed. (?) - When enemies sing a status increasing song, it now increases the enemies' stats instead of the allies'. - The high byte of enemy formation branching is now checked correctly. - When Libra/Scan is reflected, the first message is now shown properly. - The MP healing overflow bug is fixed. - The calculation of collected treasures is fixed. - When using the spell Return/Reset, the allies' gil is now being reset as well. - At the beginning of the battle, a character's image place is now reset. (?) - Goliath Tonic Bug fixed (If Goliath Tonic was used in battle on a character who leveled up at that battle, HP did not grow.) - Program optimized. Note 1: Messages shown when an ally uses a spell are stored at $D129E0~$D129EF Enemy messages are stored at $D129F0~$D129FF Note 2: This change can be opted out by changing $C23FE8: 90 -> 80 For sake of compatibility, the lowest possible MP cap will be 9999. ff5_ext-*.ips A summarization of common sets and unused area/offsets (?) This patch is necessary for the following patches to work properly: - ff5_condemned.ips - ff5_item_evade.ips - ff5_item_weight.ips - ff5_mimic_blank.ips - ff5_mimic_weapon.ips - ff5_powerdrink.ips - ff5_reapply_item_element.ips - ff5_reapply_item_state.ips - ff5_swdslap.ips ff5_ability_menu.ips This patch makes it possible to set abilities for the Mime job, even if no ability is learned yet (as in the GBA version). Still, the solution of the GBA version is more sophisticated, as when you change into another job, the game checks if you learned an ability. (?) ff5_dash_ps.ips ff5_dash_gba.ips This patch introduces B-button dash. You can choose between PS or GBA version pace. ff5_fast_nothing.ips The execution of the enemy action "Nothing" is faster now. Note: This works with "Nothing" (0xAA), "No Damage" (0xAC) and the appearance of new mosnters during a battle (0xEE). (?) Required patch: ff5_core.ips ff5_item_menu.ips As in the GBA version, Tent, Cottage and Teleport (Exit) are written in grey letters as long as you are in an area where you cannot use those. ff5_kiss_of_blessing.ips Kiss of Blesseing is now treated differently for monsters.It is now treated as "Status Ailment 2" (04: Silence, 08: Berserk, 10: Muddle, 20: Paralyze, 40: Sleep). Now, it can be set tohave no effect on certain monsters. To do so, you have to change bit 6 (0x40) of byte 25 in Monster Data in order to set the immunity. Monster parameters (with this patch) 25: All flags * bit0-2: (unused) * bit3: "Catch" immunity * bit4: "Control" immunity * bit5: (unused) [if ff5_lv5_death.ips is applied: "Lv.5 Death" immunity] * bit6: "Kiss of Blessing" immunity * bit7: "HP scan" immunity ff5_lv5_death.ips This patch makes it possible to set an immunity for "Lv.5 Death". Bit 5 (0x20) of byte 25 in Monster Data now handles "Lv.5 Death" immunity. Monster parameters (with this patch) 25: All flags * bit0-2: (unused) * bit3: "Catch" immunity * bit4: "Control" immunity * bit5: "Lv.5 Death" immunity * bit6: (unused) [if ff5_kiss_of_blessing.ips is applied: "Kiss of Blessing" immunity] * bit7: "HP scan" immunity ff5_player_name.ips When choosing the main character's name, you can now choose a "default" name. The default name is stored at offsets $D15500~$D15505. The default is $20,$BC,$82,$FF,$FF,$FF: (バッツ) [Battsu]. ff5_sort.ips The algorithm used of item sort has been improved. The order is set at offset $C2E096 and can be changed furthermore. Default order (with this patch): org $C2E096 db $FD ; Normal Items (0xE0~0xFF) db $E7 ; Knives db $E3 ; Swords db $E8 ; Spears db $E9 ; Axes and Hammers db $EA ; Katanas db $EB ; Rods db $EC ; Staves db $ED ; Bows db $EE ; Harps db $EF ; Whips db $F0 ; Bells db $FF ; Miscellaneous Weapons: Twin Lance, Moonring Blade, Rising Sun, ; Shuriken, Fuma Shuriken, Soot db $F1 ; Shields db $F2 ; Helmets and Hats db $F3 ; Armor and Robes db $F4 ; Accessory db $00 ; (eof) ff5_atomos_wormhole.ips When a character in muddle state dies during the battle with Athmos, it would be treated differently. This patch fixes said bug. ff5_auto_jump.ips When a berserked character jumps, the time needed for his actions to be made is calculated wrongly. This bug is fixed. Note: This fix is practically not necessary. ff5_berserk_jump.ips When a berserked character should jump, he now jumps insted of attacking normally. When a berserked character hides, he now automatically appears nack into battle. Note: This fix is practically not necessary. ff5_butz_blue_mage_gfx.ips This patch fixed the graphical error which occurs when Butz attacks with his left hand. ff5_chemist_ending.ips If you use a Chemist for the last battle, the game crashes during the ending "battles", where the character's abilities etc. are showcased. This patch prevents the crash. ff5_condemned.ips This one fixes the "Condemned Bug". - The cap for the countdown is now 99 (relevant if Slow is inflicted) - Bug fixed where the countdown (and Death Sentence status) of a zombified character did not disappear and remained zero. Required patch: ff5_ext.ips ff5_counter.ips As in the GBA version, berserked characters cannot execute Counter or Magiwall anymore. ff5_damage_overflow.ips If damage exceeded 65535, it would have caused an overflow. This patch fixes the overflow bug. ff5_damage_overflow_mp.ips When using an action ledaing to MP absorption, if (Attack - Defense) leads into a negative value, the damage overflows. This patch fixes this overflow bug and caps the damage at 9999. Required patch: ff5_damage_overflow.ips ff5_darkbow.ips As in the GBA version, if you attack with the Darkness Bow, the screen flashes. ff5_dead_aegis_shield.ips If a dead character has Aegis shield and Bone Mail equipped, and you try to revive him, the Aegis Shield block animation is shown. This bug is now fixed. ff5_escape.ips As in the GBA version, it is now possible to successfully flee before the first actions. Furthermore, Berserkers can flee now. Therefore, the Berserker Chicken Knife bug is fixed. ff5_evade_animation.ips The appropriate block/evasion enimation is now always used. - When a monster attacks physically or magically, the animations of shields and Golem are executed properly. - When a monster attacks physically or magically, the animation of aegis shield is executed properly. - When a complex magical attack (C5 xx yy) is made、the animation of aegis shield is executed properly. - When more than one character uses the Aegis Shield block at the same time, all block animations are executed properly. Warning: When a complex magical attack is blocked by Aegis Shield, and the effect of the attack changes, this might lead into bugs. In detail, if any of the following apells are used as multi-target attacks, more then one effect will trigger at the same time. (?) Complex spells: No. Name Effect ------------------------------------------ 022: Holy 0x07F & 0x018 033: Flare 0x01D & 0x073 & 0x074 046: Quick 0x076 & 0x0A9 067: Demon's Eye 0x0A5 & 0x024 083: Roulette 0x0C4 & 0x0F9 0A6: Grand Cross 0x102 & 0x103 & 0x104 0B0: Reaper's Sword 0x0B3 & 0x01F 146: Shadow Flare 0x0FA & 0x0FB & 0x074 ff5_evade_overflow.ips Evasion overflow (eg. created by high level + singing status songs) is fixed. ff5_gaiahammer.ips If a character is dual-wielding, and having a Gaia Hammer, Earth Bell or Wind Sword equipped on his left hand, the weapon spell always fails. This bug is fixed. ff5_giantdrink_enemy.ips Goliath Tonic now works properly when used on an enemy (HP cap is 65535). It can be used multiple times. Required patch: ff5_core.ips ff5_golem.ips Golem sometimes did not block if an enemy performs 3 or more attacks in a row. This bug is fixed. ff5_hide_escape.ips When characters are hidden, and the only remaining characters are zombified, the battle will now be escaped from. ff5_hide_reveal.ips Some bugs regarding the commands Hide, Appear, Catch and Release are fixed. Also, when a character is hidden, you always get the Appear command, never Hide again. ff5_hp_leak_counter.ips If an ally who should counter runs out of HP (due to HP leak) just before the counter should be executed, the battle freezes. This bug is fixed. ff5_hp_leak_down.ips When an ally runs out of HP (due to HP leak) while choosing an action, the battle stops for a short time. This stop is prevented now. ff5_ineffective.ips A bug where attacks became ineffective due to targets jumping or hiding is fixed. Furthermore, when a multi-target action is executed with no targets, the items in slots ($27C6~$27CC) are not deleted anymore. ff5_infinite_items.ips The maximum amount of any item being carried is now set to 99. ff5_item_delay.ips A bug where the use of an item in battle leads to an unexpected value, between the command and the execution of the item, has been fixed. (?) ff5_item_evade.ips The evade values of helmets, armor and accessory are now taken into acount. Required patch: ff5_ext.ips ff5_item_stat_bonus.ips The underflow of character stats, which can be done by using equipment which drops a stat below 0, is now prevented. ff5_item_transform.ips The item transformation bug is fixed. ff5_item_weight.ips When changing the equipment during a battle, the appropriate equip weight is now recalculated. Required patch: ff5_ext.ips ff5_learning.ips It is now possible to learn more than 8 Blue spells during a single battle. ff5_magical_weapon.ips When attacking with weapons which use the magic stat for damage (e.g. Judgement Staff, Luminous Staff) while multitargetting, the damage multiplier and the hit rate are halved. This bug is fixed. ff5_magicshell.ips If the character already is in Shell status, Magiwall won't trigger anymore. ff5_magicshell_fast.ips Magiwall is now treted as a counterattack, and therefore the action is executed faster. Required patch: ff5_magicshell.ips ff5_magicshell_group.ips If more than one character drops in critical state at the same time, every of those characters (who has Magiwall equipped or innate) now gets Magiwall, instead of just one. Required patch: ff5_magicshell.ips ff5_magicshell_reflect.ips Magiwall now trggers also when the character in question is in Reflect/Wall status. Required patch: ff5_magicshell.ips ff5_mimic_blank.ips If you mimic an action where someone used an empty spot (weapon) as an item in battle, the character who used mimic will just use "Magic Sword Fire". This behavior is fixed with that patch. Required patch: ff5_ext.ips Conflict with: ff5_mimic_weapon.ips ff5_mimic_meteor.ips The mimickry of the Meteor spell does not consume MP anymore. ff5_mimic_weapon.ips This patch makes it possible to mimic someone who used a weapon as an item. Required patch: ff5_ext.ips Conflict with: ff5_mimic_blank.ips ff5_mini_and_toad.ips Berserk and Protect/Safe now work properly on entities with Mini or Toad status. ff5_multi_se.ips Bug fixed where multicontrol and sound option were mixed up. ff5_check.ips The Observe command now exposes the enemies' weakness as it should. ff5_old.ips The Old status underflow bug is fixed. The enemies' stats now also decrease when aged. Furthermore, the enemies' battle power decreases until it reaches 0, while the other stats are reduced to 1. This is the same behavior as in the GBA version. ff5_old_timer.ips Paralyze and Mute now last the appropriate time on aging targets. ff5_possess.ips Characters which were taken away from battle by "Possess" cannot be targeted anymore. ff5_powerdrink.ips The Power Drink does work now. In order to work, $2045 is designated as the amount Power Drink raises the Battle Power, while $2044 is the sum of the Battle Power in both hands. If the sum of both hands' power would exceed 255, it is set to 255 insted. The damage of Goblin Punch is also newly adjusted. Required patch: ff5_ext.ips ff5_react_against_all_target.ips A counter option where actions which targeted all enemies are countered. This also works for multi-target attacks where the target is designated automatically (e.g. Magic Lamp, Call/Conjure, Release). ff5_react_against_reflect.ips When an enemy's multi-target spell is only partially reflected, the counter for that condition now triggers as it should. Warning: Due to the priority changes, the allies' Magiwall will not trigger in this situation. ff5_reapply_item_element.ips A bug where elements of magic are reset by changing equipment is fixed. (?) Required patch: ff5_ext.ips ff5_reapply_item_immunity.ips Problems with elemental resistance by changing equipment are fixed. (?) Required patch: ff5_core.ips ff5_reapply_item_state.ips Changing equipment does not reset statuses given by equipment like the Mirage Vest. Required patch: ff5_ext.ips ff5_remedy_petrified.ips The Remedy Mix now cures petrify. ff5_remember.ips Choosing an item that got its order changed just before being used now keeps its new place. ff5_return.ips The return/reset spell does not crash anymore if used on a target with invincible status. ff5_return_se.ips The music does not become silent for a short time anymore when using return/reset. ff5_roulette.ips A bug which triggered when using Roulette with a controlled mosnter is fixed. ff5_sandworm.ips The Sandworm battle mechanic is now reworked to behave like the Stalker/Wendigo battle. - Holes cannot die/disappear anymore. - The strage behavior of up to 7 mosnter die animations is corrected. Now only the Sandowrm dies, and just once. Note: There is no item drop in this battle. Due to the possibility that up to 7 mosnters might die, up to 7 drops would have been possible. When using this patch, ($C2569A~$C256A6) will become unused and therefore can be overwritten with something else. ff5_song.ips This is a fix for song related bugs. - When a singing character was inflicted mute, he would have stopped singing, but the stats kept raising. Now, the stat rising is aborted too. - When using Mute/Silence or Void on certain timings, singing characters might have become unable to act. This bug is fixed. - When a song is mimicked, the timer of the song would have been set to whatever the originally singing character is at. This bug is fixed. (?) Note: The first mentioned bug only triggered on characters on slot 2, 3 and 4. ff5_specialty.ips Special attacks of monsters can now inflict all status ailments properly. ff5_spellblade_osmose.ips The damage cap for Asper/Osmose Sword is now 9999. Note: If you use ff5_damage_overflow_mp.ips too, you must use ff5_spellblade_osmose_for_ff5_damage_overflow_mp.ips instead. ff5_stuck_bug.ips This patch fixes the vehicle/chocobo bugs regarding Ghido's Cave and the Elder Tree. Note: The Map Tile for Ghido's Cave has its properties set to 9A, which therefore does not allow the landing of Hiryuu and Airship. As for the elder tree, on special tiles ((55, 120), (57, 122)) landing has been made impossible too. This special treatment of those area is hardcoded and can be found at offset $C007EE. The PS and GBA versions handled this the same way. ff5_stuck_teleport.ips By using Teleport/Exit in some specific screens, you cannot continue the game properly. - When being in the Ancient Library in World 3 for the first time, the Teleport flag is now set correctly and does not send you back to Ghido's Cave anymore. - To prevent being stuck somewhere, Exit has been disabled in the following screens: 243(0F3): Castle Exdeath 7F 259(103): Underwater Cavern 260(104): Undervater Cavern 281(119): Kelb 282(11A): Kelgar's House 1F 283(11B): Kelgar's House 2F 284(11C): Kelb Inn 285(11D): Kelb Weapon/Armor Shop 286(11E): Kelb Magic Shop 358(166): Mogry Cave 362(16A): The Great forest of Moore 364(16C): Elder Tree 366(16E): The Great Forest of Moore ff5_swdslap.ips Mineuchi now inflicts paralyze as described, as long as you wield a katana. Required patch: ff5_ext.ips ff5_target_meteor.ips When there are no targetable enemies at the moment of execution, Meteor does not hit your allies anymore. ff5_three_images.ips This patch makes it possible to create 3 images. ff5_twinlance.ips This patch fixes some issues with the Twin Lacne. - When attacking with the Twin lance equipped on the left hand, the enemies' counter attacks are not triggered twice anymore. Note: Despite of the following 2 bugs being known, it is not currently planned to work on a fix. - If the first strike of the Twin Lance misses, the action is not treated as a physical attack. - If the first strike of the Twin Lance misses, the appropriate enemy counter is not triggered. ff5_two_handed.ips On damage calculation, it is checked in the used weapon's data it it can be double gripped. The double grip flag is checked on all weapons. Note: This patch makes it possible for double grip to work properly on weapons like knives or lances. If you do not intend them to be double gripped, you do not need this patch. ff5_unequip_freeze.ips If you use Steal or Mug while having no more space in your inventory, and then try to change the equipment in battle, the game does not freeze anymore. ff5_uptempo_freeze.ips When there is a coundown (e.g. Karnak Castle), and the countdown reaches zero while winning or losing a battle (while the appropriate soundtrack is playing), the speed of the music is increased while the game freezes. This bug is fixed. ff5_weak_category.ips If you hit an enemy with a weapon effective against it, the damage is doubled appropriately. ff5_weapon_change_counter.ips If a character counters while getting his equipment changed, the effects of the new weapons trigger. This bug is fixed. (?) Note: If you replace a weapon with a shield, the game will try to use the shield as a weapon, which leads into the game freezing. ff5_x-redirect.ips The targeting bug regarding Mix and X-Magic is fixed. ff5_zombie_breath.ips Zombie Breath did not inflict Zombie on certain circumstances. This is fixed now. Note: This is about Characters not becoming zombies, even though they were killed by Zombie Breath. ff5_zombie_catch.ips Some problems regarding catching enemies which have zombie status are fixed. ff5_zombie_freeze.ips The game does not freeze anymore if a zombified character tries to Jump or Hide. ff5_zombie_powder.ips Hidden characters connot be targeted by Zombie Powder or Dance of the Dead anymore. Required patch: ff5_zombie_freeze.ips