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.


Messages - Edea

Pages: [1] 2
1
...I found it, and then discovering that, for some reason, Bartz's Strength modifier had been changed from 04 to 05 (I'd been trying to find it with Bartz's original stat mods; I tried Krile's instead and located it immediately).  I don't remember ever going in there and altering that, but regardless the location's at offset $155F98 (if anyone else finds that useful).

2
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.

3
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.

4
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!

5
Newcomer's Board / Re: FFTA2 (DS): Live Memory Dump Help
« on: April 17, 2016, 06:18:52 pm »
Thank you so much for the fast reply! 

I actually discovered that nocash does NOT have a trace logger yet, and people were clamoring for it as of the 2.7 (or 2.07, don't have it in front of me) release, which is very recent.  The other two emulators don't even come close to nocash in that regard (as you've indicated), so -for the moment- I'm up a crick.  No-one's fault, fairly certain what I'm looking for can't be helped at the moment.

Right now I'm resigning myself to a manually created tracelog, and woooow is it going slow, hahaha.  I might have to resort to static disassembly of a full data block if this drives me too far up the wall.

April 19, 2016, 09:19:58 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Normally I would edit instead of double-post, but this felt bump-worthy: I found the data I was looking for!  It had to be manually traced, though; a trace logger would've saved a lot of headache on this one.

The requested data starts at offset $0540018c when looking at the ROM in a hex editor (I'm not sure how to put that in proper notation, apologies).  The space occupied is filled exactly; there's no room to add new Jobs unless someone manages to expand a DS ROM (not likely at this time), but the jobs that are already there can be manipulated pretty easily.  Note that the Job's Race byte (located elsewhere, in the $0522CAAB area) must be set to match the unit's, or the Job still won't show up on their list.

Each entry is 12 bytes long.
Code: [Select]
Byte 00: Order the job will appear in on any given unit's Job List should they qualify.
Byte 01: Actual Job ID.
Bytes 02-03: You can specify up to two unique sprites here; only units with those sprites will have the Job show up
     on their List, even if the unit otherwise belongs to the correct race.
Bytes 04-09: A-Ability mastery requirements from up to three different Jobs.
Bytes 0A-0B: Quest completion prerequisite.

6
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). 

7
Alright, looks like it can just be NOP'd...I'll give it a shot once I've got a good save for testing it.  Thank you!

8
I'll just ask this in here as it's another ASM question...

Would anyone know what code I need to look at to prevent the White Dragon battle in the Fanatic's Tower from spitting a Holy Lance at you after you've returned to the dungeon screen?

I'm reorganizing the Veldt encounters, and White Dragon (being a Boss) is being moved to the post-255 range, so there's no longer a need for this; I just want it to drop its stuff normally like the other seven dragons, during the 'finished battle' screen sequence. 

THAT part I can do just fine, but preventing the "Got Pearl Lance!" event from occuring, afterward, that I'm unsure about (as it still needs to tell you how many dragons are left, and it needs to send you into the correct encounter when you speak to the sprite).  Is it possible to do this using just the Map Editor?

9
Oh, thank heavens, I was hoping you'd see this.

I'll do my best implementing those and report back in a few days, hopefully.  This is definitely what I needed; mostly I need to make sure I don't mess up one of the '?' entries I've already used for something else (I think it was for allowing Atlas Armlet's effect to stack?  Ugh, need to review my item changes first).

THANK you, again.

EDIT: It works!  Here's the completed code, if anyone cares to try it.  Works with Genji Glove, turned off by Offering, just like normal 'weapon spell' activation.  Tested it a lot with a Fire Rod; relic on, it always cast Fire 2, relic off, did it about 25% of the time.  In the FF3usME item editor, this is the upper '?' in the lower right box to the far right of the screen.

Code: [Select]
(2383e)
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)
C2/3650: EB           XBA
C2/3651: 20 5A A6     JSR $A65A (JSR to new routine elsewhere with free space in C2)
C2/3654: EA           NOP
C2/3655: EA           NOP
C2/3656: B0 0D        BCS $3665  (branch if spell proc is unsuccessful, either due to no buff or no good RNG roll)
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    (prevent followup spell from hitting random target;
                                  it can only hit the one whacked by the weapon.)
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


(2a85a)
C2/A65A: 18       CLC
C2/A65B: AD D9 11     LDA $11D9 (used this one because I'm also using the Atlas Armlet stack mod)
C2/A65E: 89 20        BIT #$20
C2/A660: D0 05        BNE (in other words, if it's equipped, go here)
C2/A662: 20 5A 4B     JSR $4B5A  (the RNG, rolls 0-255)
C2/A664: C9 40        CMP #$40
C2/A666: 60           RTS

10
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)
----------------------------
   WHAT I WANT TO INSERT:
----------------------------
*(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
                                      C2/37EB.)
                                     (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?

11
ROM Hacking Discussion / Re: Tactics Ogre PSP Remake Assistance
« on: June 14, 2013, 04:34:17 am »
Ohh, they helped alright, thanks for the link.  I've found all kinds of stuff by this point.  Class stats, unique character stats, equipment parameters, spell/finisher/skill parameters, description text, menu text, game dialogue, etc.  If someone needs a piece of data for some reason I'll post it up, but yeah I've made numerous 'perma-edits' to my copy of the game by this point.  Denam with a -20 RT modifier and access to Meditate and Wizard-type gear in his Lord class; finally I have him the way I want him...

12
ROM Hacking Discussion / Tactics Ogre PSP Remake Assistance
« on: June 03, 2013, 11:33:53 pm »
What I've found, so far:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
File: USRDIR/03E8.BIN
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.

File: USRDIR/03E8.BIN
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.

13
ROM Hacking Discussion / Re: Hacking and documenting Final Fantasy IX
« on: January 23, 2013, 02:35:40 pm »
I've been using CDmage to extract and import data from disc images for this game.  If you go to download it, make sure the version's up to date (1.02.1).

This guy's found a fair amount of mechanical data, and I found some additional info (but I don't have it organized yet).

I asked about something similar myself on here not too long ago, but didn't get any responses (ended up finding the data on my own, so there was no need to bump it).  Unfortunately I don't know how text pointers work in 9, and I'm not even interested in graphics hacking (that's going to be an interesting experience).

14
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).

15
LOL, it's just raw data.  I didn't go through any of it, other than to indicate the addresses at which the data was located.  It's certainly not formatted for other people to look at.

Also, Et copied the lines in a different order; rows 12 and 13 were originally rows 1 and 2, and they just hold the title for the section (you should see it upon scrolling all the way up and to the left).

16
Yeah, I'm used to the Location editor in the most recent release now, it's all good XD

17
Thank you!  ^____^  I did suspect that any of the 'unknowns' would remain as such without just going in there and digging around ourselves.  And I just so happened to have edited some of the treasures in my ROM copy, put a couple new ones in (also I found it interesting that the 'sealed' chests actually operate in a similar manner to NPC objects, though I understand it).

Also yeah, one of the other things was altering Techs; Mauron's been working on a plugin for it (can't wait for that to be finished), but it's definitely not as easy as just reassigning a byte here or there, so I've been hesitant to do much with it (ended up turning Lucca's Protect spell into Haste, but the sprites loaded were still for Protect, and the spell would glitch -unless- Marle used her Haste tech first, so there's some sort of routine that preloads the animation data which isn't accounted for yet).

18
Alright, here's the other basic attack routines, along with Ayla's substitute weapon values (this is how she gains AtkPwr upon levelling up).


Code: [Select]
---------------------------------------------------------------------------------------------------------------------------
ROUTINE TWO: THE SHOOTERS (Marle, Lucca)
FORMULA: (2*(Weapon Power + Hit))/3
CODE:
---------------------------------------------------------------------------------------------------------------------------
$C2/91AD AD 90 9A    LDA $9A90  [$7E:9A90]   A:0014 X:00FF Y:0000 D:0000 DB:7E S:0A74 P:eNvMXdizc HC:0344 VC:253 FC:15 I:00
$C2/91B0 29 07       AND #$07                A:0002 X:00FF Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0376 VC:253 FC:15 I:00
$C2/91B2 0A          ASL A                   A:0002 X:00FF Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0394 VC:253 FC:15 I:00
$C2/91B3 AA          TAX                     A:0004 X:00FF Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0412 VC:253 FC:15 I:00
$C2/91B4 FC DB 91    JSR ($91DB,x)[$C2:9223] A:0004 X:0004 Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0430 VC:253 FC:15 I:00
(*This JSR goes to an array located at C2/91DB, 2 byte pointers for each character.  If the result of the LDA instruction
  at the top is 1 or 2, you'll get the pointer pair "23 92," leading to the code for Routine 2.)

$C2/9223 64 01       STZ $01    [$00:0001]   A:0004 X:0004 Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0482 VC:253 FC:15 I:00
$C2/9225 AD B5 0D    LDA $0DB5  [$7E:0DB5]   A:0004 X:0004 Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0508 VC:253 FC:15 I:00
$C2/9228 85 00       STA $00    [$00:0000]   A:00FA X:0004 Y:0000 D:0000 DB:7E S:0A72 P:eNvMXdizc HC:0540 VC:253 FC:15 I:00
$C2/922A 7B          TDC                     A:00FA X:0004 Y:0000 D:0000 DB:7E S:0A72 P:eNvMXdizc HC:0606 VC:253 FC:15 I:00
$C2/922B AD 20 9B    LDA $9B20  [$7E:9B20]   A:0000 X:0004 Y:0000 D:0000 DB:7E S:0A72 P:envMXdiZc HC:0624 VC:253 FC:15 I:00
$C2/922E C2 21       REP #$21                A:0063 X:0004 Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0656 VC:253 FC:15 I:00
$C2/9230 65 00       ADC $00    [$00:0000]   A:0063 X:0004 Y:0000 D:0000 DB:7E S:0A72 P:envmXdizc HC:0680 VC:253 FC:15 I:00
$C2/9232 0A          ASL A                   A:015D X:0004 Y:0000 D:0000 DB:7E S:0A72 P:envmXdizc HC:0714 VC:253 FC:15 I:00
$C2/9233 8F 04 42 00 STA $004204[$00:4204]   A:02BA X:0004 Y:0000 D:0000 DB:7E S:0A72 P:envmXdizc HC:0732 VC:253 FC:15 I:00
$C2/9237 E2 20       SEP #$20                A:02BA X:0004 Y:0000 D:0000 DB:7E S:0A72 P:envmXdizc HC:0774 VC:253 FC:15 I:00
$C2/9239 A9 03       LDA #$03                A:02BA X:0004 Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0798 VC:253 FC:15 I:00
$C2/923B 60          RTS                     A:0203 X:0004 Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0816 VC:253 FC:15 I:00
(**This is the core function of Routine 2.  After loading Weapon Power and the character's Hit score, it performs an
 ASL instruction (doubling the result), storing this, and loading 3 into the accumulator.  25 bytes.)

$C2/91B7 8F 06 42 00 STA $004206[$00:4206]   A:0203 X:0004 Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0862 VC:253 FC:15 I:00
$C2/91BB AD 1D 9B    LDA $9B1D  [$7E:9B1D]   A:0203 X:0004 Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0898 VC:253 FC:15 I:00
$C2/91BE 18          CLC                     A:0250 X:0004 Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0930 VC:253 FC:15 I:00
$C2/91BF 6D B6 0D    ADC $0DB6  [$7E:0DB6]   A:0250 X:0004 Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0948 VC:253 FC:15 I:00
$C2/91C2 90 02       BCC $02    [$91C6]      A:02C3 X:0004 Y:0000 D:0000 DB:7E S:0A74 P:eNVMXdizc HC:0980 VC:253 FC:15 I:00
$C2/91C6 8D 24 9B    STA $9B24  [$7E:9B24]   A:02C3 X:0004 Y:0000 D:0000 DB:7E S:0A74 P:eNVMXdizc HC:1004 VC:253 FC:15 I:00
$C2/91C9 AF 14 42 00 LDA $004214[$00:4214]   A:02C3 X:0004 Y:0000 D:0000 DB:7E S:0A74 P:eNVMXdizc HC:1036 VC:253 FC:15 I:00
$C2/91CD AA          TAX                     A:02E8 X:0004 Y:0000 D:0000 DB:7E S:0A74 P:eNVMXdizc HC:1072 VC:253 FC:15 I:00
(*Here, 3 is assigned as a divisor.  After a small check to make sure there's no overflow, the final result of the
  calculation is put into the accumulator and transferred to X for future storage/reference.)

Code: [Select]
---------------------------------------------------------------------------------------------------------------------------
ROUTINE THREE: CRAZY LADY (Ayla)
FORMULA: ((16*Power)+(a 2-byte reference value based on Level))/9
CODE:
---------------------------------------------------------------------------------------------------------------------------
$C2/91AD AD 90 9A    LDA $9A90  [$7E:9A90]   A:0014 X:00FF Y:0000 D:0000 DB:7E S:0A74 P:eNvMXdizc HC:0344 VC:253 FC:15 I:00
$C2/91B0 29 07       AND #$07                A:0005 X:00FF Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0376 VC:253 FC:15 I:00
$C2/91B2 0A          ASL A                   A:0005 X:00FF Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0394 VC:253 FC:15 I:00
$C2/91B3 AA          TAX                     A:000A X:00FF Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0412 VC:253 FC:15 I:00
$C2/91B4 FC DB 91    JSR ($91DB,x)[$C2:923C] A:000A X:000A Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0430 VC:253 FC:15 I:00
(*This JSR goes to an array located at C2/91DB, 2 byte pointers for each character.  If the result of the LDA instruction
  at the top is 5, you'll get the pointer pair "3C 92," leading to the code for Routine 3.  Not easy to see normally, since
  Ayla cannot weapon switch for obvious reasons.)

$C2/923C A9 10       LDA #$10                A:000A X:000A Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0424 VC:253 FC:25 I:00
$C2/923E 8F 02 42 00 STA $004202[$00:4202]   A:0010 X:000A Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0442 VC:253 FC:25 I:00
$C2/9242 AD 1C 9B    LDA $9B1C  [$7E:9B1C]   A:0010 X:000A Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0478 VC:253 FC:25 I:00
$C2/9245 8F 03 42 00 STA $004203[$00:4203]   A:0063 X:000A Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0510 VC:253 FC:25 I:00
$C2/9249 AD A2 9A    LDA $9AA2  [$7E:9AA2]   A:0063 X:000A Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0586 VC:253 FC:25 I:00
$C2/924C 0A          ASL A                   A:0038 X:000A Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0618 VC:253 FC:25 I:00
$C2/924D AA          TAX                     A:0070 X:000A Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0636 VC:253 FC:25 I:00
$C2/924E C2 21       REP #$21                A:0070 X:0070 Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0654 VC:253 FC:25 I:00
$C2/9250 BF 69 2D CC LDA $CC2D69,x[$CC:2DD9] A:0070 X:0070 Y:0000 D:0000 DB:7E S:0A72 P:envmXdizc HC:0678 VC:253 FC:25 I:00
$C2/9254 6F 16 42 00 ADC $004216[$00:4216]   A:0273 X:0070 Y:0000 D:0000 DB:7E S:0A72 P:envmXdizc HC:0720 VC:253 FC:25 I:00
$C2/9258 8F 04 42 00 STA $004204[$00:4204]   A:08A3 X:0070 Y:0000 D:0000 DB:7E S:0A72 P:envmXdizc HC:0762 VC:253 FC:25 I:00
$C2/925C E2 20       SEP #$20                A:08A3 X:0070 Y:0000 D:0000 DB:7E S:0A72 P:envmXdizc HC:0804 VC:253 FC:25 I:00
$C2/925E A9 09       LDA #$09                A:08A3 X:0070 Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0828 VC:253 FC:25 I:00
$C2/9260 60          RTS                     A:0809 X:0070 Y:0000 D:0000 DB:7E S:0A72 P:envMXdizc HC:0846 VC:253 FC:25 I:00
(*This is the core function of Routine 3.  It takes 16 as a multiplicand and Ayla's Power as a multiplier. Then things
  get interesting!  This routine takes Ayla's level, doubles it, and then transfers this to X for use as pointer for
  a load routine.  Each of these pointers describes two bytes, which are then loaded and added to the product of
  (16*Ayla's Power).  THAT is stored, and then the rest of this is similar to Routine 1.  37 bytes.)

$C2/91B7 8F 06 42 00 STA $004206[$00:4206]   A:0809 X:0070 Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0892 VC:253 FC:25 I:00
$C2/91BB AD 1D 9B    LDA $9B1D  [$7E:9B1D]   A:0809 X:0070 Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0928 VC:253 FC:25 I:00
$C2/91BE 18          CLC                     A:0863 X:0070 Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0960 VC:253 FC:25 I:00
$C2/91BF 6D B6 0D    ADC $0DB6  [$7E:0DB6]   A:0863 X:0070 Y:0000 D:0000 DB:7E S:0A74 P:envMXdizc HC:0978 VC:253 FC:25 I:00
$C2/91C2 90 02       BCC $02    [$91C6]      A:08D6 X:0070 Y:0000 D:0000 DB:7E S:0A74 P:eNVMXdizc HC:1010 VC:253 FC:25 I:00
$C2/91C6 8D 24 9B    STA $9B24  [$7E:9B24]   A:08D6 X:0070 Y:0000 D:0000 DB:7E S:0A74 P:eNVMXdizc HC:1034 VC:253 FC:25 I:00
$C2/91C9 AF 14 42 00 LDA $004214[$00:4214]   A:08D6 X:0070 Y:0000 D:0000 DB:7E S:0A74 P:eNVMXdizc HC:1066 VC:253 FC:25 I:00
$C2/91CD AA          TAX                     A:08F5 X:0070 Y:0000 D:0000 DB:7E S:0A74 P:eNVMXdizc HC:1102 VC:253 FC:25 I:00
(*Here, 9 is assigned as a divisor.  After a small check to make sure there's no overflow, the final result of the
  calculation is put into the accumulator and transferred to X for future storage/reference.)

Ayla's table is a bit long, so I have it spoilered...

Spoiler:
Code: [Select]
Ayla's Level Up Load Values (used for LDA $CC2D69,x)
---------------------------------------------------------------------------------------------------------------------------
Level LwrBt   UprBt Decimal
1 00 00 0
2 00 00 0
3 01 00 1
4 03 00 3
5 05 00 5
6 07 00 7
7 09 00 9
8 0C 00 12
9 10 00 16
10 14 00 20
11 18 00 24
12 1C 00 28
13 21 00 33
14 27 00 39
15 2D 00 45
16 33 00 51
17 39 00 57
18 40 00 64
19 48 00 72
20 50 00 80
21 58 00 88
22 60 00 96
23 69 00 105
24 73 00 115
25 7D 00 125
26 87 00 135
27 91 00 145
28 9C 00 156
29 A8 00 168
30 B4 00 180
31 C0 00 192
32 CC 00 204
33 D9 00 217
34 E7 00 231
35 F5 00 245
36 03 01 259
37 11 01 273
38 20 01 288
39 30 01 304
40 40 01 320
41 50 01 336
42 60 01 352
43 71 01 369
44 83 01 387
45 95 01 405
46 A7 01 423
47 B9 01 441
48 CC 01 460
49 E0 01 480
50 F4 01 500
51 08 02 520
52 1C 02 540
53 31 02 561
54 47 02 583
55 5D 02 605
56 73 02 627
57 89 02 649
58 A0 02 672
59 B8 02 696
60 D0 02 720
61 E8 02 744
62 00 03 768
63 19 03 793
64 33 03 819
65 4D 03 845
66 67 03 871
67 81 03 897
68 9C 03 924
69 B8 03 952
70 D4 03 980
71 F0 03 1008
72 0C 04 1036
73 29 04 1065
74 47 04 1095
75 65 04 1125
76 83 04 1155
77 A1 04 1185
78 C0 04 1216
79 E0 04 1248
80 00 05 1280
81 20 05 1312
82 40 05 1344
83 61 05 1377
84 83 05 1411
85 A5 05 1445
86 C7 05 1479
87 E9 05 1513
88 0C 06 1548
89 30 06 1584
90 54 06 1620
91 78 06 1656
92 9C 06 1692
93 C1 06 1729
94 E7 06 1767
95 0D 07 1805
96 33 07 1843
97 59 07 1881
98 80 07 1920
99 A8 07 1960

19
Personal Projects / Re: Marvelous ~ mou hitotsu no takarajima
« on: June 01, 2012, 06:06:03 am »
It's for the solar system. 

All hail to the glory of our Sun, that we might bask in Her radiance, for She is the sole reason we have angry fishes who want to start fights with the dwarves.

20
Aaaahh...so you open up the location map where the text is encountered, record the event number for that map, then go to location events and type that in for 'packet number' and you can access the dialogue you want.  Thanks for the heads up, now I can edit that particular set of strings with either of them.

Really looking forward to the release!  Until then I'll just wait as far as tech swapping is concerned (not really comfortable enough with the data to just go into the ROM with a hex editor and debugger for things like this).

Pages: [1] 2