Something to consider: FF1 checks the "strike first" flag during run attempts. If its set, running is 100% guaranteed. So if FF2 does the same, I would argue that not showing it until after the first round of commands is very bug LIKE, in that its not letting the player make an informed decision.
FF2 does not do that (it's one of the things I missed from FF1), but it sounds like a great addition for Restored!
I'd really prefer getting the notification before picking commands.
Yup, I agree, and if that's what you're looking for, the Restored patch will have you covered
Time for some more updates - we have now reached 75 separate bug fixes!
Bug Fix + Restored:
- FIXED: When a character is killed, their battle command and target do not always get not cleared, which means that if the character gets revived before their turn comes up (even in a later round!), they will still try to execute their original battle command.
- FIXED: KO'd entities do not have their ailment bits reset, causing them to revive with any previously inflicted status ailments.
- NEW + AVOIDED: Dead characters can recover from temporary ailments.
- FIXED: Characters' battle poses and status lines frequently do not reflect their current condition (e.g. newly updated statuses take display priority over more severe existing statuses, character-initiated drain effects and suicides do not update that character's pose to KO/critical/OK, etc.).
- FIXED: Monsters that are killed by Poison/Venom have their current HP set to 0 and KO ailment bit set, but are not actually removed from battle; they remain valid targets (you can even cast Life on them to bring them back!) and need to be attacked again in order to remove them from battle.
- NEW + FIXED: If Poison/Venom damage drops an entity into critical HP, their critical HP flag is not set; in the case of characters, this can result in an incorrect battle pose after the ailment is removed.
- FIXED: The code for printing "しょうひＭＰ" (MP Cost) in the battle magic menu doesn't set the memory address used to hold the menu window width before adding the string to the CHR buffer.
- FIXED: Notify the player about pre-emptive attacks before letting them choosing battle commands.
I also noticed a new graphical bug:
- Killing a large monster (e.g. a Fire Gigas) while Leon is dead results in Leon's feet being temporarily cut off.
We've got a few options for dealing with some of the next bugs on the list, and I wanted to solicit some feedback. For the issue where damage values over 999 prevent the " DMG" text from being displayed:
|Option||Sample 1-digit damage||Sample 4-digit damage||Works for|
|Change the message text from 4-tile " DMG" to 3-tile "DMG" and adjust the conditional display logic to check for 10000+ damage instead of 1000+||"1DMG "||"1234DMG"||EN only?|
|Switch the message ID from the 4-tile " DMG" to the 2-tile "HP", write a space between the number and the text, and adjust the conditional display logic to check for 10000+ damage instead of 1000+||"1 HP "||"1234 HP"||EN/JP/probably others|
|Switch the message ID from the 4-tile " DMG" to the 2-tile "HP" and remove the conditional display logic||"1HP "||"1234HP "||EN/JP/probably others|
|Switch the message ID from the 4-tile " DMG" to the 2-tile "HP", right-align the text, and remove the conditional display logic||"1 HP"||"1234 HP"||EN/JP/probably others|
|Expand the message window from 7 tiles to 8 and adjust the conditional display logic to check for 10000+ damage instead of 1000+||"1 DMG "||"1234 DMG"||EN/JP/probably others|
I've been looking at the issues we knew about surrounding characters rejoining the party, namely a) if a character rejoins at 0 HP, they do not have their KO bit set and are considered to be alive and b) the character is forced into the back row when they rejoin, and have noticed several more problems:
- Characters that leave the party are sometimes set to the back row, so we'll have to update that code to only remove them from the party and not also change their row.
- Characters are always set to the back row when they rejoin, so if your top 3 characters are also in the back row at that point, you can bypass the normal restriction on having at least 1 character in the front row and gain full-party immunity to physical attacks (except from your own archers).
- However, if your entire party is in the back row, entering a battle results in a soft lock if any monster chooses to physically attack since the game gets stuck in an infinite loop of trying to target a living front row character when there are no front row characters.
- If all front row characters are killed in battle, all back row characters are moved to the front row, but when you revive the dead front row character, your other characters are not returned to the back row.
- If Firion is killed during a battle while each of your characters is displayed on the map (e.g. the story battle against a Queen Lamia), your party's avatar switches to the next living party member, leading to the same party member appearing twice on the map.
- If your party's avatar is your 4th character when your 4th character departs, your avatar is not immediately updated.
- When Leila departs (this probably also applies to all other departures not triggered by talking to some NPC), if the rest of the party is in the back row and dead, Firion is pushed to the front row and his KO status is cleared, which leaves him alive with 0 HP.
If anybody has a save state just before Josef or Gordon (both times) leaves and can find any other gaps that need to be filled, let me know.
With that in mind, the first few options for dealing with characters rejoining at 0 HP that came to mind were:
- Preserve all of their persistent ailments
- Preserve all of their persistent ailments other than KO
- Continue clearing all of their persistent ailments but set their KO flag if their current HP is 0
- Continue clearing all of their persistent ailments but set their current HP to 1 if it's 0
- Alternately, since the character appears to have spent some of their time away from your party curing their persistent ailments, maybe we can also assume they took a nap at some point and should rejoin at full HP/MP?
Given the issues with having your entire party KO or at 0 HP, I'm strongly leaning toward the last two options, ensuring that your new character is both alive and has more than 0 HP. Gordon was just lounging around the throne room and Leila had set out to storm Fynn castle all by herself, so I think it kind of makes sense for them to be fully rested when they rejoin your party.
Once we've got that sorted out, there's a handy routine in the fixed bank that we can call to ensure somebody is in the front row, so that part should be easy. The annoying part is that there are two duplicate sections of code that need to be modified in bank 3 and bank E, so I'm tempted to consolidate those into a single block, which will require consuming some space in the fixed bank, something I've successfully managed to avoid so far.