
Hacking Final Fantasy 1 on the NES - enrico50
http://www.walknsqualk.com/post/hacking-final-fantasy-1-on-nes/
======
bbitmaster
I designed and coded the FCEUXD hex editor shown here. I did this back in 2004
when I was a teenager -- built it in C in pure win32 API. It's great to see it
still show up when people are hacking NES games.

I remember on my 1.33Ghz AMD machine at the time, it could not draw all of the
RAM values in real time without causing considerable slowdown. I rewrote the
code so that it only redraws ram values that changed, keeping a buffer of old
values and checking for changes.

I also worked on other parts of FCEUXD including creating code/data logger.
Parasyte coded the debugger.

~~~
gavinlynch
hey bbitmaster :)

i remember when you were creating that debugger, long time no see. (what's it
been, a decade?) Fceuxd was always the best romhacking emulator, gotta love
those conditional break points!

this takes me back to the old days of beta testing, and hanging in #rom-
hacking on irc hope you're well :)

~~~
bbitmaster
Hey Gavin. Of course I remember you, it's been ages but great to hear from
you. I would take this to PM but Hacker News doesn't seem to offer such a
feature. I currently work in the bay area, in Machine Learning (I only mention
it in case you happen to reside in the bay area). Anyway, feel free to e-mail
me at my username at gmail.

Good times :-)

------
aidenn0
The NES Final Fantasy 1 had _gobs_ of bugs. Some of them are very game-
changing:

Major ones to know for playing the game well:

* the index in the weapons table is used rather than the value in the table, making later weapons much more powerful and making Axes (lower %hit, higher critical%) useless.

* No secondary effects of weapons work at all

* Intelligence has no effect on spell effectiveness (yet another reason why red-mages are more powerful than they ought to be)

* All enemies are immune to poison.

Interestingly enough, people have created patches for most of the known bugs!

[https://www.gamefaqs.com/boards/522595-final-
fantasy/4557505...](https://www.gamefaqs.com/boards/522595-final-
fantasy/45575058)

~~~
jerf
Those older JRPGs really could use some unit testing.

Another one of my favorites is from the Gameboy (original) Final Fantasy
Legend. There's a weapon, Saw, which performs an instant kill if it hits. It
was supposed to work if your Strength is higher than the opponent's Defense,
meaning it could take out random mobs in a single hit, i.e., the usual sort of
useless instant kill technique that only instantly kills things that were
already not a threat to you. However, the comparison sense is reversed, so it
only instantly kills opponents whose defense is _higher_ than your strength.

In particular, you can one-hit the final boss with this:
[https://youtu.be/bCyToT8jiJ4?t=1m26s](https://youtu.be/bCyToT8jiJ4?t=1m26s)
As this predates the era of "post-game content" this is supposed to be the
hardest fight in the game.

[http://finalfantasy.wikia.com/wiki/Saw_bug](http://finalfantasy.wikia.com/wiki/Saw_bug)

------
SeanDav
> _" It does make me feel a bit less inclined to play old RPGs now, knowing
> that I’m grinding just to increase a few bytse of memory."_

Superficially, most games can probably be judged the same way, even physical
games like golf etc.

"You mean the main purpose of this game is to get a ball in a hole with as few
hits as possible, why would I want to do that"?

or Idle/incremental games: On the surface the whole point is to play the game,
just to play the games faster.

Of course we all know that there is far more going on here than meets the eye!

~~~
YCode
It's true, games are arbitrary.

Musing a bit though, we tend to convince ourselves there is value in our gold
coins, exp, etc.

When you get right down to it though they only exist as arbitrary values
stored on a computer. If you go in and change them, they can say whatever you
want.

I think this is what he means about grinding.

Maybe subsequently the value of a good game isn't the end resulting Pokemon
team or character build, but the journey to get there.

~~~
srjilarious
That is exactly what I meant.

I love RPGs when they present a new challenge or the story progresses a bit
while you're leveling up.

It's just that some of the old RPGs, in particular, would leave you in a spot
where you needed to gain a few levels fighting the same monsters, hitting
attack over and over, without any real danger to your party, just so you could
proceed to the next quest. That part is harder for me to stomach sitting
through nowadays.

~~~
hdhzy
That's why I like games such as Chrono Trigger: basically no random
encounters, you can see and avoid most enemies my running around etc. Most of
the value of such games comes from the story. You're interested in how it's
going to advance / end. And fights are just a nice addition to see heroes
struggle to the end instead of just being passive spectators.

------
scrame
There's an old program, FFHackster[0] that is made just for editing this game.
I remember poking around through it and being really impressed at how tightly
everything was packed together. Its worth taking a look at because it has a
lot of things like level progression, spell strength, etc, completely unwound.

As mentioned elsewhere, there are a lot of bugs and things that weren't quite
right, but the overall quality and effort to fit all that on a tiny cartridge
is astounding.

[0]
[http://slickproductions.org/ffhackster.php](http://slickproductions.org/ffhackster.php)

------
mathgeek
Reminded me of Game Genie back in the day. It was always amazing to me, at
five years old, that such a device existed.

------
kevinSuttle
This kind of stuff is so interesting. Makes sense when it's all laid out in a
system.

