News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

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 - Edea

Pages: [1]
Would anyone happen to know the ROM addresses where the inherent, character-specific stat mods are located (the ones that produce the slight variances in Job stats between characters)? 

Just searching for the values directly (i.e. Bartz's mods should be 04 01 03 01) didn't turn anything up, and a relative search only turned up the 'initial stats' data (which promptly gets overwritten the moment you have any of the characters change Jobs; you can tell that's what's there because Krile doesn't have any data here).

I was mostly wanting to up Bartz's Speed mod.  Any help's greatly appreciated.

I'm using ForteGSOmega's Battle Mechanics FAQ on GameFAQs as a reference, but I can't seem to get a positive hit for the values said to be stored in said growth tables with simple hex searching. The reference probably switched the order of the values around, and the disc image is far too large to try locating smaller sequences.

Does anyone happen to know the addresses at which the two character growth tables are located (as listed in said FAQ, near the bottom of the document), or perhaps the order in which they are stored on the disc image so I can locate them on my own with hex searching?  Thanks in advance to anyone able/willing to help.

EDIT: Got help from the FAQ writer, managed to locate the areas where the tables are stored ($218c8a45 and $219a4d45 are both places where they seem to start, if those addresses are interpretable/useful in some way).  Every eight bytes or so had a '00' after it that I wasn't taking into account, and the entries for each character are not immediately sequential to one another; there's additional data between each one that was obscuring the results.  Problem solved, -but- if anyone wants to add extra info about this I'd definitely appreciate it.

Newcomer's Board / FFTA2 (DS): Requesting Sprite Editing Basics
« on: June 09, 2016, 01:42:31 am »
I have never really edited graphics before; the most I've done in that regard is change the palettes of sprites in the GBA Fire Emblem games.  Just advance warning before shooting an explanation that goes way over my head. 

I've been able to use DeSmuME's Sprite Viewer and Palette Viewer to at least see some of the things I want to manipulate, but I have no real idea how to go about actually executing said sprite edits.  The two most specific things I want to do are:

-change the text on one of the job placards.  This is actually not present in the game in text form, they're pre-drawn.  I have to edit one of these in a tile editor to get it to look the way I want it to.  I've even seen these placards in the sprite viewer, but I don't know how to interpret their location in the ROM from DeSmuME's interface.
-add a battle sprite sequence for Luso that allows him to handle the Doubleshot A-Ability with ranged weapons (normally, if you try to have a non-Sniper/Assassin/Viera Archer use Doubleshot, the game'll hang), and also possibly hand cannons (again, most sprites hang when they try it).  I honestly think this will be little more than a copy-paste affair of existing Luso spirtes, as it's likely that the devs just left that particular segment of his spritesheet blank.  However, I have -no- idea where character sprites are, I couldn't even find them in DeSmuME's sprite viewer.

I think the main thing I really need help with is determining what tile editor/s is/are capable of properly viewing the contents of the FFTA2 ROM, and which codec I need to be using to at least be able to visually detect the sprites (a palette I can figure out later, though I wish DeSmuME's palette viewer had an export function, or if it does I don't know where it is).  I am 95+% sure that the game's graphical data is NOT compressed, which should hopefully make explaining this to me a bit easier.  Once I can actually see what I'm doing I should be fine (I hope...).

Thanks in advance for anyone willing to help me out!

Newcomer's Board / FFTA2 (DS): Live Memory Dump Help
« on: April 17, 2016, 12:28:32 pm »
I am unable to figure out how to get the no$gba debugger to perform a live dump of traced RAM instructions during play; the options presented in the utility just spit out a specified number of sequential bytes while ignoring any calls, jumps, breaks, etc.. in the code (I guess I'd call it a 'dead' dump).

Specifically, I'm trying to analyze the routine responsible for determining whether a unit in FFTA2 has access to a 'special' Job class (such as Adelle having access to the Heritor job), and then locating the area in the game's ROM where this information is stored (so it can be altered, for example giving Luso access to a new Job that a generic Hume or even Adelle lacked). 

This routine's called up when you select 'Change Jobs' for a given unit in the game's Unit Menu, so I know when to start and finish tracing for a live dump of the data; I just need assistance getting the utility to cooperate, and the help file that came with said utility didn't elaborate on how to do this.  If no$gba isn' capable of a live dump, is there another way perhaps that someone on here would use to locate the desired data? 

Thanks in advance to anyone willing to try and help, I'll attempt to provide additional information as requested.

EDIT: Additional, much simpler question: is there a utility that can trace (and dump said trace to .txt) for DS games, at all, period?  no$ and desmume both seem incapable of it (no$'s trace just...does nothing when selected, and desmume doesn't even have the option presented). 

Because my copy of the game has been patched with the 'Press B button to run' hack, the Sprint Shoes are no longer necessary.  I would like to change the Sprint Shoes into a Relic which, when equipped, changes the probably of a weapon's added spell activating during an attack, increasing it from 25% (1 in 4) to 100% (guaranteed).

Here is the relevant routine (C2 block) and what I want to do to it:

Weapon "addition magic" routine  (Source: TeriiSenshi)
Code: [Select]
C2/363E: A5 B5        LDA $B5
C2/3640: C9 16        CMP #$16       (is Command Jump?)
C2/3642: D0 05        BNE $3649      (if not, branch)
C2/3644: AD 70 3A     LDA $3A70      (are there more attacks to do from Offering /
                                      Quadra Slam / Dragon Horn / etc?)
C2/3647: D0 1C        BNE $3665      (if so, exit function)
C2/3649: AD 89 3A     LDA $3A89
C2/364C: 89 40        BIT #$40       (is "cast randomly with fight" bit set in the
                                      weapon spellcast byte?)
C2/364E: F0 15        BEQ $3665      (if not, Exit function)
*(Does the attacker have Item #230 equipped in either Relic slot?)
                *(If so, branch to what is currently C2/3658)

This insertion would bypass the '1 in 4 check' portion of the code
                when that Relic was equipped, making the game always isolate/save
                the spell instead.
C2/3650: EB           XBA
C2/3651: 20 5A 4B     JSR $4B5A      (random #, 0 to 255)
C2/3654: C9 40        CMP #$40
C2/3656: B0 0D        BCS $3665      (if that # is 64 or greater, exit function.  iow, exit
                                      3/4 of time.)
C2/3658: EB           XBA
C2/3659: 29 3F        AND #$3F       (isolate spell # of weapon in bottom 6 bits)
C2/365B: 8D 00 34     STA $3400      (save it)
C2/365E: A9 10        LDA #$10
C2/3660: 14 B2        TRB $B2        (this bit distinguishes traditional "addition magic"
                                      spellcasts from Tempest's Wind Slash in a few ways in
                                     (one is that it'll cause the targeting byte to be set to
                                      only "Cursor start on enemy" for the followup spell.
                                      maybe the goal is to prevent the spell from targeting
                                      multiple enemies..?  but i'm not sure when the spellcast
                                      would even try to target anything other than the target
                                      whacked by the weapon, unless the spell randomizes
                                      targets, which no normal "addition magic" does.)
C2/3662: EE 70 3A     INC $3A70      (increment # of attacks remaining.  since the calling
                                      code will soon decrement this, the addition magic
                                      should be cast with the same # of attacks remaining
                                      as the weapon strike preceding it was.)
C2/3665: 60           RTS

However, there's serious space issues, here.  I don't know where to insert this additional code; it will not 'fit.'  Would anyone with some experience altering the game's code be willing to help me figure out how to either reoptimize or relocate portions of this subroutine so that I'm able to alter Item 230's behavior the way I want, without disrupting other portions of the ROM which are sensitive?

ROM Hacking Discussion / Tactics Ogre PSP Remake Assistance
« on: June 03, 2013, 11:33:53 pm »
What I've found, so far:
Address: $8250A
Start of Class Data.  Stuff like stat modifiers, what magic/skills each class can use, movement types, portrait modifiers, etc.  I edited the Lord class to have 0 RT penalty and all armor equips, Denam's crazy fast now and wearing the Ji'ygla Set.

Address: $8ACD3
Start of Class Names and Descriptions.  There's a lot of text in this file, actually, I managed to edit "Bladur Sword" back to "Baldur Sword" in the shop screen.

What I'm looking for
Help or resources regarding PSP hacking, which I'm aware is asking a lot.  In particular I know that the PSP version of Final Fantasy Tactics has actually been hacked into, but most of it's been done with FFTPatcher and I didn't locate any specifics.  Thankfully it looks like TO is not compressed (and the /USRDIR files are not encrypted in any manner)

The problem is that Tactics Ogre's /USRDIR has 30+ files in it, 03E8 is just one of them, and they're all named in a similar manner so there's no way to tell what kind of data is in each file.  They're all kinds of sizes, some of them over 100 MB.

Has -anyone else- tried snooping around inside this game, yet?  I'm looking for the unique RT modifiers for each character; they're definitely tied to a special ID number of some sort, as Sara and Voltare both have unique RT modifiers even though they do not have unique portraits, sprites, or classes of any kind.   JPCSP has a debugger, but I don't even know where to set the breakpoints at the moment because I dunno where in the RAM that data's stored (it's not with the normal character data). 

Also, I haven't found what controls weapon access, what's in each skill/equipment/magic set (I can change -which- skill/equipment/magic set a class uses, but not what's inside that set), magic/equipment stats, etc..  I was really hoping all of this would also be in 03E8.BIN, but I've been looking for awhile and I'm feeling my head start to spin.

When I looked for this on Google I got the following hi, but didn't find much else: Link

I was wondering if anyone had discovered additional data locations for this game, as I've recently found I am capable of emulating it (my old computer couldn't handle it).  In particular, I'm trying to find where the game stores the data for which characters access which abilities (for example, what controls all the main characters having access to the Auto-(X) Support abilities, etc.), as well as the power/targeting mechanics for the Action abilities (though I suppose that one I can just look for MP costs as I already have the order of abilities the way they're stored in the game).

I tried to find the Support ability allocation on my own, but didn't come up with anything (Vivi, for example, would be 1F 01 00 C3 0D 19 6B 07 if the game simply used bit addition to keep track for each character, but I didn't get any hits upon searching the .bin file).  If anyone else on here has tried hacking into this game and found something I'd be very grateful to hear about it, even if it's not the aforementioned data.

EDIT: Located the spell data (actually I think this was already found by CzarDragon, but I only saw documentation for RAM addresses on GameFAQs).  Really wanting to find how the 'X character has access to Y abilities' data is stored (want to swap around some support abilities), so if anyone is willing to share that post it here.  I don't know if a .bin address location will really help much, but for my NTSC copy of the .bin file of Disc One the spell data starts at $344714).

I...think I found them (non-HP and MP, those are different).  I noticed this wasn't in Geiger's docs, so I was hoping I could get someone to verify these for me.

Location Start:  $CC/25FA is Crono's Power mod, I think (For my headered NA ROM in a Hex Editor, it's $c27fa)


Code: [Select]
        Power  Stamina Speed Hit% Evade Magic M.Def
Crono:   140     165     0    30    38    42   160
Marle:    30      70     0    30    36    90   172
Lucca:    28      80     0    42    32   100   168
Robo:    160     178     0    42    30    52   130
Frog:    130     160     0    32    42    52   163
Ayla:    150     172     0    72    80    30   152
Magus:   120     100     0    78    66   113   175

Crono:  8C A5 00 1E 26 2A A0
Marle:  1E 46 00 1E 24 5A AC
Lucca:  1C 50 00 2A 20 64 A8
Robo:   A0 B2 00 2A 1E 34 82
Frog:   82 A0 00 20 2A 34 A3
Ayla:   96 AC 00 48 50 1E 98
Magus:  78 64 00 4E 42 71 AF

As for how they work, I believe that for every 100 actual points to a stat, you see a 1 point increase to the stat in the Main menu (so the statistically relevant stat gain is 100 points, and anything on that table that accrues at a rate faster than 100 is guaranteed to go up at least 1 point every level, if not more).  Looking at this, it's now a lot easier to explain certain strange level-up behaviors, like Crono's Magic Defense:

Total bonus at level 2: 160 (+1 to Base)
Total bonus at level 3: 320 (+3 to Base)
Total bonus at level 4: 480 (+4 to Base)
Total bonus at level 5: 640 (+6 to Base)
Total bonus at level 6: 800 (+8 to Base)
Total bonus at level 7: 960 (+9 to Base)

To the player this looks like increases of +1/+2/+1/+2/+2/+1, which doesn't look like it follows much of a pattern.  Also, these totals are added to a 'Base' stat (Geiger documented these; go to the 'Character Stats' location in the notes and look for the values immediately proceeding the long chains of $FF.  Those are the Base stats for each character).

HP and MP are incremented with more routine, point-for-point amounts; Crono's level 2 HP increase is at $CC/258B, and his level 2 MP increase is at $CC/25C3.  However, I'm not sure yet exactly how all of those are stored (I couldn't tell you where Marle's HP or MP increases were, for example); if someone else wants to look into that please post the results of your search here.

Apologies if this is already common knowledge; I just couldn't find this information anywhere, so I went rooting around for it myself.  Hopefully someone else finds this useful (assuming it's correct; I -believe- it is, given what I traced).  Also, it does indeed seem like you can make Speed go up with level (though I haven't looked anywhere for that stat cap of 16).

ROM Hacking Discussion / FFTA's Text Data: LZSS Compression assistance
« on: October 08, 2011, 06:16:53 pm »
Code: [Select]
158 85 9E 55 Probably start of string
128 195 80 C3 T
128 209 80 D1 h
128 210 80 D2 i
128 220 80 DC s
64 115 40 73 Space
128 224 80 E0 w
128 216 80 D8 o
128 214 80 D6 m
128 206 80 CE e
128 215 80 D7 n
128 244 80 F4 '
144 15 90 0F go to compression, s + Space
64 219 40 DB r
128 23 80 17 i
64 203 40 CB b
128 1 80 01 b
66 216 42 D8 return to uncompressed text, o
128 215 80 D7 n
144 29 90 1D go to compression, Space + w
64 202 40 CA a
128 17 80 11 r
64 205 40 CD d
128 41 80 29 s
64 110 40 6E Newline
128 39 80 27 o
66 207 42 CF return to uncompressed text, f
128 207 80 CF f
128 49 80 31 Space
68 202 44 CA a
128 213 80 D5 l
128 213 80 D5 l
144 7 90 07 go to compression, Space + a
64 210 40 D2 i
128 9 80 09 l
152 59 98 3B
72 221 48 DD return to uncompressed text, t
128 228 80 E4 .
64 112 40 70 Display "next page" button and wait for button press.
64 99 40 63 Clear dialog box.
128 193 80 C1 R
192 61 C0 3D Compressed, retrieves six characters, "ibbon "
66 110 42 6E Return to uncompressed text, Newline
128 251 80 FB [
128 85 80 55
64 222 40 DE u
136 45 67 88 2D 43
128 252 80 FC ]
128 176 80 B0 A
160 53 A0 35
64 220 40 DC s
128 43 80 2B t
64 202 40 CA a
128 47 80 2F t
64 222 40 DE u
144 125 90 7D
216 67 D8 43
68 220 44 DC s
64 97 40 61 Wait for button press.
64 99 40 63 Clear dialog box.
32 128 20 80
40 24 28 18

Above is the code inside $4db1fd-$4db279 from a Final Fantasy Tactics Advance ROM (GBA, header).  It's an in-menu text description of the Ribbon item (which I've since turned into a gender-neutral accessory):

"This women's ribbon wards
off all ailment. (Page Button)
[null]All status ailments"

The problem here seems simple enough: the description has 'women' in it, and that's not how the item behaves anymore, so it needs to come out.  Since that part of the string is (blessedly) uncompressed, it was relatively simple to put in another 10-byte string (in this case I used the word 'saint').  However, now other parts of the description are incorrect, because the compressed portions of the data are retrieving information from the uncompressed portions (Example: the word 'ailment' is compressed, and retrieves 'men' from 'women'.  Since 'women' is now 'saint', 'ailment' becomes 'ailintt').

Now for the problem: working with these compressed bytes.  I've been trying to use the information on Data Crystal to figure out what the heck the 'commands' are, but every time I attempt to change one of these compressed bytes the whole text box goes haywire.  I'm not really sure where to go at this point; I've tried using Lunar Decompress and gbalzss to...well, decompress...but LD didn't understand LZ77 format and gbalzss requires pcs files (no idea what that is, Google says it's a PICT File Animation o_O).  So I just need some assistance from people who are used to working with that kind of compression so I can get this text edited >_<.  If more info is required to assist I'll try to provide it.

Also, I guess there's an FFTA modding community somewhere on the intarbutts?  I have no idea where they might be or how to find them, but if anyone has info on that I'd greatly appreciate knowing about it (as such a group's probably hacked the text already).  Thank you in advance for any assistance provided.  Also, the notes in the Code section at the top of the page are not 100% verified, quite the opposite.  Feel free to correct.

I've managed to find the data for equipment parameters, abilities, commands/command sets, sprite/gender pointers, and jobs (if anyone wants that stuff).  However, neither the job data nor the sprite/gender pointers hold any information on how the game assigns additional 'special' jobs (such as Bard or Heritor, for anyone who's played the game) or removes jobs (such as preventing certain Moogles from becoming Chocobo Knights) from certain characters while still giving them access to a generic 'job wheel' (such as Moogle or Hume, matching the above example).

I do think the code uses character ID to determine who gets what, since when I changed that byte ($0212B125) from $01 to $03 for Luso in the RAM while playing, not only did he suddenly gain access to the Heritor job, he looked like Adelle (yet kept his name/everything else).  IDs of interest are:

$01: Luso
$02: Cid
$03: Adelle
$04: Hurdy
$05: Vaan
$06: Penelo
$07: Al-Cid
$08: Montblanc
$09: Illua
$30: Frimelda

But this is where I'm having trouble: tracing the routine responsible for this.  I tried using DeSmuME but this is so different from what I'm used to (Geiger's debugger/SNES/65c816)...I don't think it can set breakpoints??  I looked but couldn't find an option for that.  I'm assuming the routine is part of the ARM9 architecture (which, to me, is really complete gobbledegook), but I have no confirmation of that. 

This request probably belongs on the newbie board, but has anyone here run some disassembly for this particular game and/or can they clue me in on the basics so I can find these routines myself (such as SETTING BREAKPOINTS, for chrissakes)?  Google turned up a couple hopeful leads, but that sadly ended in 404s.

This data was recovered from a point in the game where the Exorcist-class unit Presance leveled from 17 to 18.  His Level 17 stats (HP/MP/Str/Int/Agi/Dex/Vit/Men) were 191/148/104/157/100/115/117/121, while his level 18 stats were 197/154/106/166/103/119/122/128.  In hex, these are c5/9a/6a/a6/67/77/7A/80 (these values crop up in the spoiler block below).  Version of the game was 1.2, English patch applied (Aeon Genesis team).

Spoiler:  (I hope this stays up, the data block was too big for one post).

What I'm trying to discover is the location of the character class data in the ROM, and I think that this dump could be used to that effect.  However, I am unfamiliar with ASM or opcodes, so I was wondering if someone else who happens to be familiar with the game (or not, really don't care at this point) would mind taking a little look at it and leaving some tips or comments.  Any help you guys could provide will be greatly appreciated.

March 01, 2011, 09:34:47 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
*Sigh* Well, it seems like everybody's growth parameters are, sadly, in arrays separated by stat instead of class (ugh, thanks to Deathlike for the tip).  I'll post some of the ROM locations later, apologies for the double post (please don't hesitate to contribute whatever you wish to the thread, still need a LOT of help).

Pages: [1]