1
Game Modification Station / Re: FF6 Improvement Project
« on: June 09, 2012, 01:25:58 PM »
Hey Darkmage, do you have a skype account? I'd like to talk to you a little bit about making the names patch compatible with your project.
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.
Oops, clicked on "modify" instead of "reply."
Anyway, we didn't touch Summon for Pandora's Box. I made a stand-alone patch for it, which is here.Quoteif not @ least point me in the right direction so I can ASM hack it myselfCode: [Select](Change character commands when wearing MagiTek armor or visiting Fanatics' Tower.
Change commands based on relics, such as Fight becoming Jump, or Steal becoming Capture.
Blank or retain certain commands, depending on whether they should be available -- e.g.
no known dances means no Dance command.)
Zero character MP if they have no Lore command, no Magic/X-Magic with at least one spell
learned, and no Magic/X-Magic with an Esper equipped.)
C2/532C: DA PHX
C2/532D: 08 PHP
C2/532E: C2 30 REP #$30 (Set 16-bit A, X, and Y)
C2/5330: BC 10 30 LDY $3010,X (get offset to character info block)
C2/5333: BF 4A 54 C2 LDA $C2544A,X (get address of character's menu)
C2/5337: 8F 81 21 00 STA $002181 (this means that future writes to $00218n in this function
will modify that character's menu?)
C2/533B: B9 16 16 LDA $1616,Y (1st and 2nd menu slots)
C2/533E: 85 FC STA $FC
C2/5340: B9 18 16 LDA $1618,Y (3rd and 4th menu slots)
C2/5343: 85 FE STA $FE
C2/5345: B9 14 16 LDA $1614,Y (out of battle Status Bytes 1 and 2; correspond
to in-battle Status Bytes 1 and 4)
C2/5348: E2 30 SEP #$30 (Set 8-bit A, X, and Y)
C2/534A: 89 08 BIT #$08 (does character have MagiTek?)
C2/534C: D0 06 BNE $5354 (branch if so)
C2/534E: AD BB 3E LDA $3EBB (Fanatics' Tower? must verify this.)
C2/5351: 4A LSR
C2/5352: 90 49 BCC $539D (branch if neither MagiTek nor Fanatics' Tower)
C2/5354: BD D8 3E LDA $3ED8,X (get character index)
C2/5357: EB XBA
C2/5358: A2 03 LDX #$03 (point to 4th menu slot)
C2/535A: B5 FC LDA $FC,X (get command in menu slot)
C2/535C: C9 01 CMP #$01
C2/535E: F0 3A BEQ $539A (if Item, skip to next slot)
C2/5360: C9 12 CMP #$12
C2/5362: F0 36 BEQ $539A (if Mimic, skip to next slot)
C2/5364: EB XBA (retrieve character index)
C2/5365: C9 0B CMP #$0B
C2/5367: D0 08 BNE $5371 (branch if not Gau)
C2/5369: EB XBA (get command again)
C2/536A: C9 10 CMP #$10
C2/536C: D0 02 BNE $5370 (branch if not Rage)
C2/536E: A9 00 LDA #$00 (load Fight command into A so that Gau's Rage will get replaced
by MagiTek too. why not just replace "BNE $5370 / LDA #$00"
with "BEQ formerly_$5376" ?? you got me..)
C2/5370: EB XBA
C2/5371: EB XBA (once more, command is in bottom of A, character index in top)
C2/5372: C9 00 CMP #$00 (Fight?)
C2/5374: D0 04 BNE $537A (branch if not. if it is Fight, we'll replace it with MagiTek)
C2/5376: A9 1D LDA #$1D
C2/5378: 80 06 BRA $5380 (go store MagiTek command in menu slot)
C2/537A: C9 02 CMP #$02
C2/537C: F0 02 BEQ $5380 (if Magic, branch.. which just keeps Magic as command?
rewriting it seems inefficient, unless i'm missing
something.)
C2/537E: A9 FF LDA #$FF (empty command)
C2/5380: 95 FC STA $FC,X (update this menu slot)
C2/5382: AD BB 3E LDA $3EBB (Fanatics' Tower? must verify this.)
C2/5385: 4A LSR
C2/5386: 90 12 BCC $539A (branch if not in the tower)
C2/5388: B5 FC LDA $FC,X (get menu slot again)
C2/538A: C9 02 CMP #$02
C2/538C: F0 08 BEQ $5396 (branch if Magic command, emptying slot.)
C2/538E: C9 1D CMP #$1D (MagiTek? actually, this is former Fight or Gau+Rage.)
C2/5390: D0 06 BNE $5398 (branch if not)
C2/5392: A9 02 LDA #$02
C2/5394: 80 02 BRA $5398 (save Magic as command)
C2/5396: A9 FF LDA #$FF (empty command)
C2/5398: 95 FC STA $FC,X (update menu slot)
C2/539A: CA DEX
C2/539B: 10 BD BPL $535A (loop for all 4 slots)
C2/539D: 7B TDC (clear 16-bit A)
C2/539E: 85 F8 STA $F8
C2/53A0: 8F 83 21 00 STA $002183
C2/53A4: A8 TAY (Y = 0)
C2/53A5: B9 FC 00 LDA $00FC,Y (get command from menu slot)
C2/53A8: A2 04 LDX #$04
C2/53AA: 48 PHA
C2/53AB: A9 04 LDA #$04
C2/53AD: 85 EE STA $EE (start checking Bit 2 of variable $11D6)
C2/53AF: BF 52 54 C2 LDA $C25452,X (commands that can be changed FROM)
C2/53B3: C3 01 CMP $01,S (is current command one of those commands?)
C2/53B5: D0 0D BNE $53C4 (branch if not)
C2/53B7: AD D6 11 LDA $11D6 (check Battle Effects 1 byte.
Bit 2 = Fight -> Jump, Bit 3 = Magic -> X-Magic,
Bit 4 = Sketch -> Control, Bit 5 = Slot -> GP Rain,
Bit 6 = Steal -> Capture)
C2/53BA: 24 EE BIT $EE
C2/53BC: F0 06 BEQ $53C4
C2/53BE: BF 57 54 C2 LDA $C25457,X (commands to change TO)
C2/53C2: 83 01 STA $01,S (replace command on stack)
C2/53C4: 06 EE ASL $EE (will check the next highest bit of $11D6
in our next iteration)
C2/53C6: CA DEX
C2/53C7: 10 E6 BPL $53AF (loop for all 5 possible commands that can be
converted)
I think that's the right code...

3F 00 00 - Remove Terra
3F 01 00 - Remove Locke
45 - Refresh Objects
3F 07 00 - Remove Strago
45 - Refresh Objects
3C 0E FF FF FF - Character in party is only leo
45- Refresh
3F 00 01 - Add Terra
3F 01 01 - Add Locke
45 - Refresh Objects
3F 07 01 - Add Strago
45 - Refresh Objects
3C 0E 00 01 07 - Character in party is Leo, Terra, Locke and Strago
45- Refresh








