Introduction
Compatibility
The Editors' Features
Pointer Manipulation
Changing pointers by hand
Delete Slot
New Slot
Creating New Shops
Editing Level Ups
Map Editor Features
Magic Outside of Battle
For the "HEAL" family
For the "CURE" family
Credits!
Histroy
    It all started long ago. I had been into emulation for a while... and FF1 was always one of my favorite games. Me and Jones (a good buddy of mine) used to have contests; we'd bet $5 that we could beat FF1 quicker. We'd try different parties each time... and it was pretty fun. Needless to say... I became very familiar with the game. If anyone out there would like to help out with it or make a webpage that doesn't totally suck... e-mail me at disch_@yahoo.com
    See that was an intersting story wasn't it?
Contact
E-mail Disch - disch_@yahoo.com
    Final Fantasy Hackster is a ROM editor for the American release of the FF1 ROM. It started as a half-assed program to make using the data in YDD's FFBytes documents easier. However, after it's initial release, many people contributed their own knowledge, and the result is quite a powerful program that edits nearly every aspect of the game (excluding the engine).
    This readme is mainly for those who've never used the program before, but those who have used previous versions should still read through it... as many of the editors have changed since previous releases.
    To get started you will need the following:
all but the last two are included in this archive. The ROM is illegal to download, and I will not distribute them... so don't ask... but in all honesty, FF1 is a popular game, and millions of sites out there have the ROM for download.
    FFHackster was built under Windows 2000, so it should work under Win95, 98, NT 4.0, 2000, ME, and possilby XP, however I make no guarantees.
    The original Hackster (v0.8) worked under most systems, but in later versions people were experiencing "missing DLL" errors. The DLL files in question have now been built into the program itself (thus the significatly larger file size), so those errors shouldn't occur anymore.
    FFHackster data files previous to version 0.995 are UNSUPPORTED. Do not try to use them, because they won't work. 995 data files, WILL work.
    FFHackster is broken into several different editors. Most of them are very simple and self-explanitory... but a few have extra features that may take some explanation:
    (It is highly recommended that you have a firm understanding of NES pointers before editing the pointers by hand. And at least a slight understanding to use the Slot features)
    In the Shop and Text editors, you'll see a Pointer Field, a "Change Pointer" button, a "New Slot" button, and a "Delete Slot" button. These all deal with pointer manipulation. Usually, they're only used to conserve space and free up KAB, so if you're planning on making a serious hack (or a semi-serious hack), chances are, you'll have to use them at least once.
    This is exactly the same as doing it in a Hex editor... only easier (because you don't have to worry about byte swapping and adding $10, etc). Just put in the pointer you want, then CLICK CHANGE POINTER. If you put in a pointer and don't click the button, your change will be ignored. This is a safty precaution.
    If you've never used a Hex editor and are scared to death of them and just want to know what the hell pointers are good for... here's a crash course:
Text in ROMs are (usually) stored in big chunks. For example, in the FF1 ROM, there's a chunk of text that's used for the enemies:
IMP\GrIMP\WOLF\...
In order to retrieve the right text out of that big fat chunk, each enemy has a pointer... which (simply enough) "points" to the desired text.
*   *     *    *
IMP\GrIMP\WOLF\...
The asterisks above are the pointers. See how they point to the start of each enemy name? You can mess with them and changed them like so:
*    *    *    *
IMP\GrIMP\WOLF\...
Now, whenever you fight a GrIMP... the text will say "rIMP" instead.
That's all I'm explaining for now :P
    Delete Slot is useful because it frees up KAB. When you click it, it goes through the ROM (starting at the current pointer) until the next break, and erases every byte. Then all the pointers are adjusted. Example:
    *    *    *      *      *
...\KARY\KARY\KRAKEN\KRAKEN\TIAMAT\...
              ^
If you go to the first "KRAKEN" and delete the slot... the first "KRAKEN" will be erased, freeing up space, and everything else will move over to accomidate:
              *
    *    *    *      *
...\KARY\KARY\KRAKEN\TIAMAT\...
              ^
As you can see... both "KRAKEN"s are now combined, thus freeing up 7 KAB.
    New Slot doesn't really create anything "new". All it does is change the pointer so that it points to the end of the current text (it takes at least 1 KAB to perform, however). It's really only useful for undoing "delete slot"s and creating new shops. Here's an example:
 *
 *      *
\TIAMAT\CHAOS\\\\\\\\
 ^           (end of text, start of KAB)
Pushing "New Slot" at "TIAMAT" will change the pointer like so:
 *      *     *
\TIAMAT\CHAOS\\\\\\\\
              ^
The two "TIAMAT"s no longer share text.
    There are 7 of each type of shop (Weapon, Armor, White Magic, Black Magic, Clinic, Inn, and Item), and you can have up to 10 of each type of shop... making 70 shops total. Not all of these shops were used in the original FF, but they are still present in the ROM. To take advantage and create a new shop, simply go to the shop you want to add, push "New Slot", then put the items you want. If you don't push New Slot, ALL of the unused shops will be affected.
    On the bottom half of the class editor in FFHackster, you'll find the level up editor. This takes a little special notice because how it gets the stats is not 100% obvious. In the "Stat" column, there are checkboxes for Strength, Intelligence, Vitality, Agility, and Luck. Having those boxes checked UNSURES that the stat will increase by 1 at level up. If the box is unchecked... there is still a 50% chance of the stat going up.
    At each level up... your character gains (Vitality / 4) + 1 HP. If the level up is strong (note the "Strong" column), and extra bonus is added to their HP (the bonus is a random number inside the "HP Range").
    Note that ALL stats for leveling up are for UNPROMOTED classes. Promoted classes share their level-up stats with their non-promoted counterparts.
    The Map editors are without a doubt the most complex editors in Hackster. The data is all self-explanitory, but there are a few added features you should know about:
The rest is self explanitory, so you should be able to figure it all out ;)
    Magic outside of battles behaves VERY strangly. It is somewhat editable... however, due to the data being hardcoded, it is still very limited. Here's how it works: There's 13 Spell effects, CURE, CUR2, CUR3, CUR4, HEAL, HEL2, HEL3, PURE, SOFT, EXIT, WARP, LIFE, and LIF2. The effects are NOT EDITABLE.. so CURE will always recover HP, PURE will always remove poison, etc. What you CAN do... is shift the effects around to other spells (so FOG (the spell) could have PURE's effect). However... no two spells can have the same effect... so if you assign PURE (the effect) to FOG (the spell)... PURE (the spell) will no longer be able to be used outside of battle.
    Additionally, you can change the strength of the Heal/Cure spells. There are some rules, you should follow, otherwise you'll get strange results (for below examples, B is the Base, and R is the Range):
    The HEAL family is very simple. A random number from 0 to R is added to B to get the total amount of HP gain. However, the total should NEVER be above 255.
    The CURE family is more complex. Instead of simply finding a random number and adding... it finds random bits, then combines them using a bitwise-or operator. Here's an example of the CURE spell (T is the maximum total):
B = 16  00010000
R = 15  00001111
T = 31  00011111
    You won't find any difference here... but if you changed it like so:
B = 16  00010000
R = 28  00011100
T = 28  00011100
The Range is much higher... but the Total is the lower. Also, this is much less random.. because there are only 4 possible outcomes:
16 - 00010000
20 - 00010100
24 - 00011000
28 - 00011100
If you don't know anything about binary numbers, and/or you just don't want to deal with this... you can select the values from the drop down lists, and keep the Base higher than the Range. This will ensure accurate, randomized outcomes.
    Credits go to the following (in no particular order). I originally intended to get everyone's name on here... but due to a computer crash... most of the names were lost >_<. So besides this big fat list... MANY, MANY others also deserve acknoledgement.
    I wrote up this section because I figured people might be interested in the background of Hackster. Most of you couldn't give a rat's ass and probably didn't even look at the readme.. you just dove into the program. Anyway, I thought it was interesting, so read it if you want.
    So one day I was by myself browsing Zophar's Domain when I saw a section called "Rom Hacks". Curiously, I checked it out, and saw a couple that caught my eye. FFHardtype and FFEpica. I tried Hardtype first (because the original seemed far too easy) and I thought it was great! How did he make it harder? What's going on here? I was totally stoked. However.. I was disappointed when the hack stopped very early in the game. So then I tried Epica. My jaw dropped and I played it nonstop for days. Different maps, different colors, different text, different everything. How was this possible? Inspired, I set out to make my own FF1 hack... but didn't know where to start. I was a stupid newbie that had no idea what he was doing. Within an hour, I gave up and went back to just playing the ROM hacks.
    So a few days later, Jones stops by and I show him Epica. His draw drops. He hops on the other computer (I had two computers in the office at the time), he plays it. He gets inspired. He tries to make his own hack.... but wait... he didn't give up! He got FFImprovment and started tweaking the maps... got Thingy and tweaked the text... got TLP and tweaked the graphics. Sweet! He's still not very satisfied, though. After having seen Hardtype... he knows that enemy stats MUST be editable, so he sets out on a search for information. I don't remember how long it took him... but he found a magical site called "FF Bytes".
    "Hey, [Disch], look at this". I turn around, and see a dummy's guide to hacking FF1! Not only did it tell us how to change enemy info, but it also told us how to change shops, armor, weapons, magic, items, and so much more. I quickly get reinspired.. break out a hex editor and start making a hack. My inspiration never lasts, though. Within a half hour, I've grown EXTREMELY tired of flipping between hex editor, FFBytes, emulator, hex editor (chaning the offset), FFBytes, hex editor, emulator... just to change the price of a HEAL potion. If only there was an easier way.
    Well... if your a programmer (even an amateur one), if you can't find an easier way... you make an easier way. I whipped up a crappy little program that automated the process of FFBytes. It was inefficient, buggy, awkward to use, and ugly... but (most of the time) it got the job done. I needed a name... so combining the base (FFBytes) with a revolutionary program (Napster) with what your essetially doing (hacking), I came up with Final Fantasy Bytes-Hackster, or FFBHackster. It was intened just for me and Jones' use. And that's all it was used for.
    A couple of days later, I'm crusing on Zophar's once again... this time I'm looking closer at the Rom Hacking Utilities section. There were a lot of map editors... but it seemed to be lacking in statistic editors. "What the hell", I thought. Zophar's has always been a helpful site... why not try to contribute something. I take a look at FFBHackster... and DAMN was it sloppy. There's no way I could release it. So I rewrite the whole thing, and everything is peachy...except for the shop editor.. because it involved pointers... and I knew nothing about nothing. Less bugs, better look, MUCH cleaner, and all around a decent program. I chopped off the B if FFBHackster because it clashed immensly and labeled it version 0.8. With shop support, it was to be 1.0. Automation of everything FFBytes had to offer (except music).
    So I slap up a crappy page at Geocities consiting of basically the following:
    I submit some news to Zophar's about a new FF1 Hacking utility, and go to bed.
    The next day (or a few days later... can't remember) I check the Zophar's to see if they posted it yet. They did! I was stoked. My name was on Zophar's... SWEET! I check my mail and saw like 6 new messages. 1 was "Thank you for signing up with Geocities", and the rest were all about Hackster!
    "Cool program", "Very nice", "I could send you some offsets if you'd like", "I'm not the only one who found those FFBytes docs, huh.", "I could make a webpage for you". JESUS! This was the last thing I expected. Maybe 1 or 2 e-mails during the life of the program... but MAN! The three notable ones that e-mailed me were Goongyae, Zero Soul, and Tzar. Goongyae generously offered to provide offsets and programming assistance. I turned him down on the programming side... because I didn't want to open source the program until I was done with it. Zero Soul gave praise... he might also have offered some offsets... but I can't remember. Tzar was the man with the webpage! I quickly took him up on his offer and he shot up a page for me. By the time it was finished, FFHackster 0.9 was out... which added a little more than Shop editing... but that's it.
    I check my mail once again. More praise! Plus another e-mail from Goongyae. I open it up and find PAGES and PAGES of info! Odd stuff, too... like level up stats, shifting black belt abilities, assigning Magic to anyone, etc. I was blown away! I checked another e-mail from Gilgamesh that read something like "I have the Overworld Map compression data. If your interested I could send you a copy." I didn't know what to think. Without trying to sound immensly stupid, I replyed "har, har, yeah! That would be slick, har, har, would ya, he, he".
    Then came the updates:
    Right after v0.99, I declared that the next release would be the FINAL 1.0. Offical FFHackster would come to an end, but the source would be realeased, so others could build off it. I had had enough.. and it was time to get out.
    I worked and worked and worked on 1.0, but there was a lot I wanted to add before stopping. The weeks passed (which was unusual... previous versions were coming out every couple of days). E-mails were coming in. "When's the new Hackster coming out?", "What's taking so long?", "Did you drop the project?". By now I'd stopped answering all of them. Just as I get close to 1.0... Zero Soul sends an E-mail LOADED with offsets. It was all important things, too, so I had to put them in. Ugh.. but if I delay the closing of the project any more I'm going to go crazy!
    So I released a version (which turned out to be very good for being a half-finished 1.0).. and labeled it v0.995. I backed up the source on a zip disk and dropped the project for about 2 months.
    Ahh... that break was just what I needed. I go up to the office to do some serious programming when... THE COMPUTER'S MISSING! What the hell?!? I talk to my dad... he tells me it crashed when he was installing new software or something. Great. We still had the other computer, but I never really used it, so the Hackster source wasn't on it. Plus... there's no Zip Drive on it... so I couldn't get to the Hackster Source. Frustrated... but still in a programming mood... I occupy myself with FF3Hackster... which was just a baby program that edits the overworld maps of FF3j.
    When the computer comes back from the shop... I try it out, but the Zip Drive keeps giving me errors. Fearing it was the disk, I tried multiple disks... but none of them worked. So my dad takes it out, but he doesn't get a new one for a couple weeks.
    Right around this time, Tzar e-mails me offering hosting on his server, OPgaming. I decline him at first, but after realizing that free websites are shitty, I take the offer. He sets me up an account and I design a new layout for the page. Before I could get hosted, though... the OPGaming.com was in the middle of an update or upgrade or something... so I had to wait a while.
    While I was waiting for the new page... the new Zip Drive comes in! Yay! I check out my 995 source and start adding Zero Soul's info to make it 1.0. It was really hard, though... there was really no room to put anything new. I decided that the only way to make 1.0 efficient, was to do a full scale rewrite. So I set the dismantled 995 aside and start a new 1.0 from scratch.
    The rest of the story is boring. Basically, I put the new site up... got my own forums... finished the 1.0 rewrite and released it. What happened after that I don't know yet (because as I'm typing this... it hasn't been released yet :P )
The official FFHackster page - http://hackster.opgaming.com