View Full Version : Need Final Fantasy advice (Should be easy for someone)

10-30-2004, 03:26 AM
Greetings. I could use an assist from someone who just knows Final Fantasy the first inside and out. Ive been using FFhackster and a hex editor to do a fairly massive amount of changing to the game, but it seems Ive reached an impass. I wish to make it so that the first time the player steps on the bridge, they do NOT activate the opening credits and intro plot. I just want them to be able to cross the bridge as if this had already happened. It seems to me like it should be a simple matter of setting a flag somewhere, but I have NO idea where to go about looking. Does anyone know the game well enough to offer me any idea of how I might accomplish this, either via hex or other means? (please dont suggest I learn 6502. We all know that's unreasonable.)

<P ID="signature"></P>

10-30-2004, 04:41 AM
> (please dont suggest I learn 6502. We all know that's unreasonable.)

On the contrary. If you seek to do minor hacks like this, it really is the best alternative.

But to really answer your question:

offset $3C150 should be "AD 16 60". Replace that with "A9 00 EA"

It seemed to work for me, but I didn't test it extensively... so it might cause weird oddities later. If it does you can always undo it by putting the original values back in.

<P ID="signature"></P>

10-30-2004, 04:52 AM
well, because Disch is a big jerk and likes to steal my thunder and beat me to it (although i was about to hit Submit, until he mentioned in IRC that he posted, whateve dish <img src=smilies/cry.gif>), i don't get the fun of solving this hack, but i can offer a little bit of an explination.

It's a very simple matter indeed. And come on now, learning 6502 isn't such a horrible task to set before yourself, it's really not as complicated as people make it out to be.

As for you hack, some quick ASM debugging lead me to this.

$C140: LDA $6016
$C143: BEQ $C15F

This is a fairly simple find. This code just so happens to load the value at $6016, which is the byte that determines whether or not the bridge scene screen should be loaded. If the value loaded into the accumulator is equal to zero, then skip the following code which executes the bridge sequence.

So what can we do to fix this?

Change the LDA $6016 (which an SRAM value) from loading a value from another area in the ROM to loading a value directly.

LDA $6016 becomes LDA #$0000 so the bridge code is never executed. the original hex representation of the code was this: AD,16,60, and the new code is this: A9,00,EA

A9,00 loads Zero into the accumulator, but the operation is only two bytes long, so we take on EA, which translates into a No OPeration command (NOP).

Also, if you are interested in testing this hack out right away, change the value at 0x3026 in the rom to 01 which would normally bring up the bridge scene as soon as the world map is loaded.

<P ID="signature"><center>I'm just a Paranoid Android watching through my superb crystal viewing glass

.::http://gavin.panicus.orgGavin.Panicus.org</a> ::.</center></P>

10-30-2004, 04:55 AM
I love you, Disch.

It worked perfectly. Thank you so much. You're aweesome. I cant praise you enough.

<P ID="signature"></P>

10-30-2004, 05:02 AM
I meant awesome, not aweesome. Sorry. I cant stand typos.

<P ID="signature"></P>