+  RHDN Forum Archive
|-+  Romhacking
| |-+  General Romhacking
| | |-+  FFTA: Need assistance locating ability data (ROM/US)
Pages: [1]
Author Topic: FFTA: Need assistance locating ability data (ROM/US)  (Read 1 times)
Edea
Guest
« on: August 12, 2009, 09:03:41 pm »

I S'dTFW already and sadly didn't find much of relevance on Google (used 'final fantasy tactics advance ability data' and 'final fantasy tactics advance rom hacking').  I used the following values in a hex editor (search function) to look for the start of Final Fantasy Tactics Advance's Action/Reaction/Support ability data (US version):

$(06,0A,10,12,0A,14,10,06,06)

These are the MP costs for the game's White Magic spells (which I inferred from the Mechanics guide on GameFAQs and verified with the Command Set data (see below) to be the very first abilities in the game's 'sequence').

This hex editor allows for spaced searches (so (06|??|0A|??|...) works, for example; I've utilized others but none of them seemed to allow this), so I tried spacing the values by 1, 2, 3, 4, 5...up to the search limit for the hex editor.  I get zero hits.

My guesses are that either the number of bytes used for each ability in the ability data exceeds the search limit for this hex editor (oddly it's 26 bytes, so to do any relevant searching the max space in between any two bytes'd be 7), or that there's additional information in the MP bytes for the abilities (such as rogue $80s giving extra instructions) that's screwing up the search regardless of spacing issues.  Nothing's malfunctioning; I'm just having a hard time finding the data.

So, long story short, could someone tell me the location of the ability data if they've already found it?  Or at least recommend a better hex editor with superior searching capabilities XD (right now I use GoldFinger, the sole reason's because it's the only one I've found that's capable of a search with empty spaces in between known bytes)?

==============================================================

As an aside/to show that I really have been trying, so far I've found this other stuff while looking for the Ability data.  Most of it I have not seen posted elsewhere, so please use it if you'd like.  If you need specifics lemme know and I'll try to elaborate.

$521A10: Class data.  The relevant information starts at $521A92; this section controls the starting stat scores, stat increases by level, equipment/ability set used by the class, etc.

$51d1A0: Item data.  I noticed this was also on Data Crystal, so just have one thing to add to it; the 'mystery byte' after the byte which specifies what body slot a given item is equipped to?  That's the availability byte.  Adding $78 to this byte (if it hasn't been added already) will make the item available in shops right from the game start, even if it's normally a rare item that cannot be purchased (tested with the Gale Sword item, it sells for 500 gil). $68 makes it available after the first shop upgrade, $48 after the second shop upgrade.

$51BB70: Command Set data.  This area holds data which controls the abilities that are found in each command set for FFTA's jobs.  Changing these automatically changes the items which normally teach the ability to match the new entry (so if you change Speedbreak to Last Breath, the Silver Sword will be shown in-game to teach Last Breath and still works normally).

$51d0F8: Equipability data.  The class data looks like it references this, though I didn't see any actual pointers (in the class data, the 'equipment usable by class' bytes are in sequence, so that Soldier has $01, Paladin has $02, etc.).  This portion starts with Soldier, and each class uses four bytes.  Setting all of these to FF will enable the job to equip all typed items (so you'll see Paladins wearing Ribbons, for example).
Rolen47
Guest
« Reply #1 on: August 12, 2009, 10:48:12 pm »

Windhex allows you to use * as wildcards in searches.
Edea
Guest
« Reply #2 on: August 12, 2009, 11:23:04 pm »

Search field's still not large enough (actually Windhex's Search function only went up to 14 bytes when I tried it, unless I'm missing something), but thanks for directing me to it (it's clearly superior for things like relative searching or locating Japanese characters, just not as applicable in this given instance).
Knirt
Guest
« Reply #3 on: August 12, 2009, 11:53:44 pm »

I can't help about the data, but I do know one tool that is easily the best relative searcher I've ever seen. It's called Monkey-Moore, based on Boyer-Moore search alghoritm, and the results are usually very precise. Not sure if it will be able to handle your request, as I don't know it's technical limitations (like number of bytes that can be used in the search and such), but I'm sure it allows Wildcards.

Relevant Link: http://www.romhacking.trd.br/index.php?topic=1878.0
Edea
Guest
« Reply #4 on: August 13, 2009, 12:46:05 am »

Whoa, now that one has a hell of a search field limit Cheesy.  Might not help with a 'rogue $80' situation, but Monkey-Moore definitely has the ability to use a larger swathe of data for searching (I'm just using A=06 and performing the search with capital letters, no actual hits yet but it's neat watching this thing work on searches with so many characters).

Thanks!  Let's see if I find something now (if anyone else can help, it's greatly appreciated)...

EDIT: Actually, I just noticed something a bit peculiar...-every- MP cost, for any and all abilities in FFTA, is either zero or even :/.  Maybe they decided to store the data as smaller numbers, then simply have a routine in place that multiplied the base MP cost by 2 unless the Half MP ability was set (or something else to transform an odd number MP cost into an even one)?  Perhaps they wanted to avoid decimals from using Half MP or something; gonna give it a try anyway, even if I'm grasping at straws. I used relative searches with the utility Knirt linked about, going from 0 to 31 wildcards in between the relevant bytes, and STILL got nothing (nice utility, though, and it DID find things that would otherwise match what I was asking for, just that none of them started with $06...).
« Last Edit: August 13, 2009, 01:38:13 am by Edea »
creeperton
Guest
« Reply #5 on: August 13, 2009, 05:09:26 pm »

I'm pretty sure FFTA is compressed or encrypted or something.

http://www.romhacking.net/forum/index.php/topic,8407.0.html

I pray that this guy will someday finish Console Tool.
Tauwasser
Guest
« Reply #6 on: August 13, 2009, 09:49:21 pm »

So do I, it looks fuckawesome without being too overconfident Cheesy

cYa,

Tauwasser
Edea
Guest
« Reply #7 on: August 13, 2009, 10:12:05 pm »

Quote from: creeperton on August 13, 2009, 05:09:26 pm
I'm pretty sure FFTA is compressed or encrypted or something.

I'd be inclined to believe that given my [lack of] search results (tried different MP ranges, cutting the values in half, even tried reported magic power values on gamefaqs; NOTHING).  However, I've found all of these other 'mechanically relevant' pieces of character data which aren't compressed at all* (*see OP).  Barring my missing something very obvious (quite likely), this is truly bizarre :/

Quote from: creeperton on August 13, 2009, 05:09:26 pm
http://www.romhacking.net/forum/index.php/topic,8407.0.html

I pray that this guy will someday finish Console Tool.

+1 on that one, it'd probably help immensely ;_;
Tauwasser
Guest
« Reply #8 on: August 13, 2009, 10:31:03 pm »

Just an idea, but did you try to look for the names of the attacks? I know a half dozen games offhand that will have all of the data related to one attack be in one datastructure.

For instance

[Name (8bytes)][Cost MP (1byte)][Cost HP (1byte)]...

If you look for these names and find some structure, it is likely that the stuff you're looking for is in there. If you only find a table with attack names you're back where you are now, but at least you ruled out something.

cYa,

Tauwasser
Edea
Guest
« Reply #9 on: August 14, 2009, 02:30:53 am »

Actually, though the attack names are indeed only found in a table off on their own, they are not in the same order there as the information in the command set data would indicate.  For example, the order of the fire black magic spells is 'Fire, Firaga, Fira' and not 'Fire, Fira, Firaga'.  I started searching using this alternative order, but I'm still not getting hits >_<.  Keep on trying, I guess (thanks for the pointer).

(EDIT)

OK, finally found it...*sigh*

The starting location is at $551898.  Each ability uses 28 ( o___O ) bytes.  Here's Cure (in hexadecimal notation):

Quote
0B 01 07 0A 06 00 04 00 01 05 01 28 A8 B4 01 01 81 61 10 00 02 00 36 00 00 01 50 00

Tested it by changing '06' to '32', saving the ROM and loading the game.  Cure changed to cost 50 MP instead of 6 MP.

Yeah, my editor would never have been able to handle a gap of 28 bytes as far as searching is concerned.  I'm surprised the relative searcher utility didn't find this, so I must have not used it properly.  I ended up just scanning the whole $500000 manually (I suspected it'd be there because all of the other relevant things I'd found so far were there too), line by line, and stumbled upon this :/.  MY EYES, THEY BURN @_@. 

Thanks to any who responded, I guess if I find anything else I'll post it in here.  Oh, if anyone else looking at this has ANY idea what the other bytes do (or wants to find out), post that in here too XD.
« Last Edit: August 14, 2009, 10:56:51 pm by Edea »
Pages: [1]  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC