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 - 13375K31C43R

Pages: 1 2 3 4 5 6 7 »
1
In FF6 Advance, there's an extra bit of code that checks if a spell affecting Imp status without the "lift status" bit set is cast on a target that is immune to Imp status and, if so, makes the spell fail completely regardless of other effects. This check does not exist in the SNES version of the game.

This check seems unnecessary to me, and in fact it creates a bug with those spells. Specifically, the spells it affects are: Bad Breath/Sour Mouth, Rippler, Mind Blast, Diabolic Whistle/Evil Toot and Disaster. Those spells inflict statuses other than Imp, but don't do anything in the Advance version as long as the target is immune to Imp. Note that in the case of Rippler, the caster being immune to Imp does not matter, just the target. I can't think of any good reason why Square Enix would add this to the game.

2
Game Modification Station / GBA LV reset glitch
« on: February 25, 2018, 06:49:50 PM »
I've been investigating a fix to the "level reset glitch" in the Advance version of the game. By my understanding, there's a variable in both the SNES and GBA versions that tracks which save file was most recently loaded or saved. However, in the SNES version, the only way to return to the title screen is by using the Reset button; in the GBA version, there's a new Quicksave feature that lets you save (in a special slot) and quit your game and return to the title screen. You can then resume your game using the Continue option.

There's a glitch here that players on the GBA version can exploit. If you save your game in one of the three slots and then Quicksave, then start a new game and get annihilated without ever saving, the game will reload the previously saved game, but your characters (that you found in the new game) will have the same amount of Exp. that they had when you died. This essentially means that you can revert your level 99 characters in Dragons' Den to level 10 or so.

What's interesting is that when you start a new game, the Quicksave data gets erased. My guess is that somehow the "recent save" variable doesn't get cleared properly; however, my efforts to find the cause of the problem in the code have been fruitless. If anyone knows where to find the Quicksave and/or New Game functions, please let me know!

On a side note, I also discovered that the Chain of Command Bug (which I have fixed for SNES) also exists in the GBA version, but I cannot find the relevant code for that either. For that matter, I can't make sense of any of the menu code in the GBA ROM and trying to comparing it to the SNES version is not of much help.

3
Game Modification Station / Patch renamed: Stone Cold Bug fix
« on: February 20, 2018, 11:17:17 PM »
Hi! In case you weren't aware, I renamed my "Stone Zombie" patch to "Stone Cold". I've also added a few other changes, such as rewriting the patch to no longer use free space; however, this also required "addendum patches" to address conflicts with Imzogelmo's "Carve Stone" patch and Master ZED's "Invert Damage if Undead" patch. Best of all, this patch also has a GBA port now!

User jonasan-san pointed out that this "new and improved" patch caused a crash; however, I have now fixed that error.

4
General Discussion / State of the Sketcher
« on: January 16, 2018, 01:59:04 AM »
Hi everyone! Time for a bit of a serious discussion.

It's now 2018, which means this year will see my third anniversary of FF6 hacking! I don't know yet whether I will release a new Anniversary Pack as I have done the past two anniversaries, mainly because I've only released four new patches since my most recent anniversary (five if you include Count Monsters for FF5). But I'm not here to anticipate or look ahead; this is instead a time for reflection. My FF6 hacking portfolio shows that I have made a total of 70 patches, and out of those all 70 are applicable to the SNES version, 68 are applicable to the SFC version, 26 to the GBA version and 14 to the PS1 version! I have to say I'm very proud of myself for all the work I've done so far and I am so grateful to my supporters and contributors for all the help you've given me! Thank you all very much! :childish:

On a more serious note, however, I anticipate that I will be much less active this year because I have to focus hard on school and work, and I will have little to no time available for hacking. To give some context, I just finished making a small but important update to Dead in the Air, which in turn affected Soul Saved, and I decided that it would be a convenient opportunity to port those two patches to GBA as well. It ended up being a successful and positive accomplishment, but far from convenient. I wanted to have the ports finished before New Year's, but it took me two weeks longer than I expected.

GBA hacking is much different than SNES hacking when it comes to this game. While the GBA version does its best to align its RAM in the same manner as the SNES version to maintain some semblance of recognition and similarity, the ARM Thumb assembly language that makes up the code of the GBA version is entirely different than the SNES assembly language. It requires multiple ARM instructions to simulate one SNES instruction, making GBA hacking much more arduous and time-consuming. To give some perspective, the non-headered SNES fix patch for Dead in the Air is 504 bytes; its US GBA equivalent is a staggering 2.43 kilobytes!

I would love to port as many of my patches to GBA as possible this year, but unfortunately I can only do as much as my busy schedule will allow. Don't be surprised this year to experience gaps between updates that are several months long. If a flaw exists in one of my already-existing patches, you may still feel free to send me a message and I will fix it ASAP, but as far as my own agenda goes, it's going to be a long and slow climb to that higher peak. Here are some of my patches that I would most love to port as soon as I get the opportunity:

  • Caravaggio
  • Game Over
  • Half Knife
  • Imp's Call
  • Imp's Retort
  • Item/Magic Counter
  • Stone Zombie
  • Throwback
  • Ultimate Damage Fix

If anyone feels like helping me out with these ports, I will be so thankful to you and I will continue to appreciate every bit of support and assistance that comes my way! Here's to a successful and enjoyable 2018!

5
Game Modification Station / New patch: Color Wheel tweak
« on: October 05, 2017, 06:59:07 AM »
Hey-o! Here's an interesting new tweak patch: a rotation system for the outline colour-changing statuses in battle. Normally, if a party member possesses multiple statuses that would change their outline colour, the game only shows one of those colours. Now, with this patch applied, the outline colours will rotate.

This patch allocates a new location in RAM, so I'm sure someone will tell me it's already taken by some other patch. Maybe someone will even tell me it conflicts with another patch. But until that day comes, this patch is free for anyone to use.

:edit: October 5, 2017
Holy cow, there were a bunch of errors in both patches! They are now fixed.

:edit: October 6, 2017
It suddenly occurred to me that if a party member starts a battle with Poison or Zombie status along with one of the outline colour statuses, the game only changes skin colours for Poison or Zombie and skips the outline colours altogether, meaning the "wait" bit will not be cleared. This update corrects that oversight. BTW, an alternative would be to not have the game skip the outline colour changes; all that's required is to change the branches (see the included code documents) to branch to the start of the outline colour check function instead of the end.

:edit: October 15, 2017
Xenovant reported a crash bug that occurs when one of those characters receives Vanish status. This has now been fixed.

:edit: October 15, 2017
Fixed a bad byte that caused the free space to be added in the wrong place. Please apply the reverse patch to fix this error before applying the updated tweak patch.

:edit: October 15, 2017
Fixed ANOTHER bug (sigh): characters posing as enemies would still show up in the party lineup.

6
Game Modification Station / New patch: Solar Wind Glitch fix
« on: October 03, 2017, 02:57:36 PM »
Boy, is it good to have Slick up and running again! I stumbled across another glitch reported here, which causes W Wind's graphics to get messed up if Quasar is cast beforehand. The reason is that Quasar's animation utilizes the HDMA scroll window but forgets to reset it afterwards, which affects some other spells that use the scroll window, like W Wind and, as I found out via further testing, Spiraler. This patch adds a command to Quasar's animation forcing it to reset the scroll window after it is done using it.

A bug-fixer's work is never done... This game truly has such a cacophony of bugs, just when you think you're done you find another one...

7
Game Modification Station / New patch: Walk This Way Bug fix
« on: August 02, 2017, 12:09:14 AM »
Here's a patch I wrote a few months ago to replace Lenophis and Assassin's Fancy Walking patch, which has a problem mentioned here. It allows a player to throw the camera way off by talking to the kid in Tzen that's playing on the stairs, while ascending the stairs yourself. This patch fixes the problem using a similar method to Lenophis's situation, except that it removes the code that checks to see if you're talking to an NPC. What this means is that you can't do the quick-pass conversation with him that allows the camera to go AWOL, which is not much of a loss because you can still talk to him when stopped.

There are a couple of reasons why I didn't release this patch before now. One is that I wasn't sure whether or not I wanted to keep the ability to talk to the kid while moving, but modify it to stop the camera moving, but I concluded that given how difficult it is to talk to an NPC while moving on flat ground, it doesn't make any appreciable difference to remove it on the stairs. The other is, well, I just didn't want to show Lenophis and Assassin up with a patch that merely does their fix the right way. Therefore, I've added in a secondary bug fix to differentiate my patch more: the bug of Terra taking an extra step in the presence of the falling ceiling in Zone Eater Cave.

8
Game Modification Station / New patch: Trigger Happy Bug fix
« on: July 31, 2017, 04:31:43 PM »
I gotta say, I'm not sure whether it's more exciting to upgrade an existing patch or release a new one. My primary reason for releasing these patches is to fix bugs, and of course a new patch means a new bug gets fixed, whereas an upgrade to a patch is usually either because there was a problem with the patch or because I'm porting it to GBA or PlayStation, not to mention that upgrades are much more frequent than new releases, so you'd think releasing a new patch would clearly be more fun. The flipside is that not only is it more work to make a new patch and release it, but also now that I've already released so many patches, adding one more seems so insignificant by comparison. It was certainly more exciting back when I was just starting. Plus, being able to port to GBA and PlayStation does add something new: accessibility. It seems the early highs of excitement from a new hobby have worn off. :sad:

But nonetheless, I'm still here, still writing new patches, and I've now fixed a rather substantial bug that affects the falling ceiling room in Zone Eater Cave. It fixes the bug that prevents tile-based event scripts from triggering if they are superseded by timer-based event scripts, which causes things to happen like dying even though you should've been safe, or (possibly) surviving even though you should've been crushed, or also the anomaly that allows Terra to defy the laws of physics by bypassing the exit tiles.

9
Game Modification Station / Zone Eater event bug
« on: July 29, 2017, 01:33:58 AM »
I want to address the event bug shown here. Looking at the event code for the ceiling drop, it's set to an invisible timer that expires after a couple of seconds and calls an event subroutine upon expiry that makes the ceiling fall. Looking at the assembly code, the subroutine is called at the bottom of the event stack, and the event stack pointer is set there. That tells me that we might have a threading issue here; the event code that is supposed to run when the player steps on the exit tile either gets ignored because the ceiling fall routine is called first, or is interrupted by the timer thread and its place in the event stack is overwritten by the ceiling fall event.

One idea I have to address this is, instead of calling a timer-expiry routine at the bottom event stack, push it to the top and run it before finishing the currently running event. If that were the case, then I would expect the same scenario as shown in the video to still show the ceiling falling, but then the player moves to the other room as expected (by the event trigger that is placed there; it's not an exit tile, I already tried replacing the event trigger with an exit and it didn't fix the problem). The only problem that might cause is, some events are probably meant to be interrupted by a timer-trigger event and it might break the game if they are not (e.g. the Opera House). I can't think of any that are definitely contingent upon this, but I want to get some input from my peers about this.

10
Final Fantasy V Research & Development / Restoring monster count
« on: June 25, 2017, 11:27:03 AM »
The monsters in FF2SNES have names of eight characters or less, which leaves room for a convenient count of each monster type. In FF5, translated by RPGe, the monster names are expanded to a window-filling ten characters, eliminating the monster counts. The same goes for FF3SNES, but right now I'm only interested in FF5 (and I think it'd be harder to shorten the monster names there).

Suppose I managed to shorten every monster's name in FF5 to eight characters or less. What code would I need to modify to be able to add the counts back in?

11
Game Modification Station / FF6 PlayStation editing
« on: June 14, 2017, 01:11:58 PM »
I've found a way to port some of my patches to the PS1 version of FF6, namely the ones that edit things in data, like event scripts and animation scripts and things like that. However, the BIN file I obtained contains two copies of the event scripts. Any idea why there would need to be two copies? Why they are used? Should I edit just one, or both?

12
Final Fantasy V Research & Development / Speeding up shield animation
« on: June 04, 2017, 06:58:36 AM »
I just managed to fix my problem with the death animation, now I'm looking to shorten the shield animation; namely, the length of time spent standing with a shield up. I think I have found the relevant code, so if anyone wants to try fiddling around with that, go ahead.

13
Game Modification Station / Rapid Save/Reset glitch?
« on: May 13, 2017, 07:11:58 PM »
Gi Nattak referred me to this glitch a short while back. From what I gather, the reason it works seems to be because somehow the data from two save files are getting mixed together into one. Specifically, what seems to happen is, when the game saves, the X and Y index registers are set to point to the start of the save slot and the start of the current saveable game data, respectively, and iterate through until 2,560 bytes are copied. Despite this, somehow in the alternating reset-interrupted copy iterations of slots 1 and 3 into 2, what's getting saved is a chunk of slot 1, then a chunk of slot 3, then a chunk of slot 1 etc. when these chunks should be overwriting each other.

This doesn't make sense to me because slots 1 and 3 don't seem to be getting affected in any way, and the index registers are always supposed to start at the beginning, therefore the chunks should be overwriting each other in slot 2. Anyone have any idea what's really going on here?

14
Game Modification Station / New patch: Caravaggio Bug fix
« on: April 20, 2017, 01:06:06 PM »
Hi! This bug was reported to me by Gi Nattak: it is possible to cast Roulette via the Rage and Sketch commands (e.g. Veteran), but casting it this way means that only the enemies are valid targets, and instead of giving you the finger it just picks a target. This patch puts Roulette, as cast via Sketch or Rage, more in line with the actual spell by making it mimic the enemy version of the spell, which adds a rotating finger as part of the casting animation (in contrast with the Lore, which has it as part of the selection of the spell itself).

A few things to note: I wasn't entirely sure at first that this really qualified as a bug, but what had me convinced was that only enemies are valid targets. Also, I was careful to ensure that there was no loss of compatibility with Mimic.

:edit: September 25, 2017
Thanks to Assassin for pointing out the minor bug that made it possible for Gogo to Mimic the wrong command. This has now been fixed.

:edit: November 2, 2017
Found a much more major bug: a neglected JMP within the Control code into the edited Sketch command. It makes weird things happen when the game tries to execute a command from the enemy's menu. I have now corrected this.

:edit: February 6, 2018
Added GBA port!

15
Game Modification Station / New patch: Bird Bars Glitch fix
« on: April 10, 2017, 11:30:01 PM »
Hey! Here's one for all of you: this patch fixes both of the "Setzer Hates Birds" bugs as found in Master ZED's Bug FAQ. One of those bugs makes Setzer take an extra step forward when Summoning Phoenix via the three-BAR Slot combo (and, tangentially, makes living party members not put up their shields). The other bug makes Setzer land in the wrong place after Summoning Palidor from Slot, so he ends up too far back. The way I fixed this is by replacing the random Summon with a Magicite usage, which does the same thing with correct animations. I also created a new flag to ensure the Esper Summon still gets displayed properly at the top of the screen instead of the word "Magicite". And don't worry, just because Setzer's using Magicite doesn't mean your stock is getting depleted! :wink:

With this fix, the glitch is actually still feasible, but only if you hack the Slot commands to explicitly Summon either Palidor or Phoenix. The "correct" fix would probably have been to actually fix the Slot animation code, but I went the Magicite route because it was easier. If I wanted to fix the animation code, I'd have to spend weeks debugging and analyzing what's going on. That said, I might change the fix in a future update, but that would be for another time.

Pages: 1 2 3 4 5 6 7 »