• Topic Archived
You're browsing the GameFAQs Message Boards as a guest. Sign Up for free (or Log In if you already have an account) to be able to post messages, change how messages are displayed, and view media in posts.
  1. Boards
  2. Final Fantasy
  3. Dynamic Action Selection Enhancement

User Info: CaptainMuscles

7 years ago#1
Been trying to come up with a mod to help me get back in the groove of things. Here is what I came up with:

; Dynamic Action Selection

; This modification alters the combat action selection sequence. Instead of selecting all warriors' actions at the beginning of each round, each individual warrior's action is selected when their turn comes up in the battle sequence. The action will then be executed immediately.

; First strike for monsters and the player share the same flag now
; -1 (255) -> player first
; 0 -> normal round
; 1 -> monsters first

; 313e4
93d4: d0 47 BNE +$47 [$941d]

; 31414
9404: 98 TYA
9405: c9 15 CMP #$15 ; Total > 21 -> normal
9407: b0 14 BCS +$14 [$941d]
9409: c9 0b CMP #$0a ; Total > 10 -> monster strikes first
940b: b0 08 BCS +$08 [$9415]
940d: a9 22 LDA #$22 ; set player strike first
940f: ce ae 6b DEC $6bae
9412: 4c 1a 94 JMP $941a
9415: a9 23 LDA #$23 ; set monster strike first
9417: ee ae 6b INC $6bae
941a: 20 07 aa JSR $aa07
941d: 4c 52 94 JMP $9452

; 31430
; 9420 <---------------insert new bytes here, pushing existing code forward
9420: 48 PHA ; push warrior index onto stack
9421: ad ae 6b LDA $6bae
9424: c9 01 CMP #$01 ; check for monster strike first flag
9426: f0 23 BEQ +$23

; 31451
9441: 68 PLA ; borrow previously saved warrior index
9442: 48 PHA
9443: 20 77 94 JSR $9477 ; get action selection
9446: a9 02 LDA #$02 ; clean-up warrior action menu
9448: 20 0f f2 JSR $f20f
944b: 68 PLA ; retrieve stored warrior index
944c: 85 88 STA $88 ; original code from a359, overwritten by call to this function
944e: 0a ASL
944f: 0a ASL
9450: a8 TAY
9451: 60 RTS

; 31462
; 9452 <--------------delete extra bytes here untill the code that was originally here is back at the correct spot (20 69 a1 ...)

; 31468
9458: 4c 52 94 JMP $9452

; 321cc
a1bc: 30 0a BMI +$0a

; 32369
a359: 20 20 94 JSR $9420 ; go make action selection
a35c: ea NOP
a35d: ea NOP

; 323f3
a3e3: 30 3d BMI +3d

I know this won't suit everyone's play style, but I freakin' love it. I have no idea at this moment if it conflicts with any existing mods. I plan on checking on that tomorrow. I'll post this in the bug enhancement thread when I'm certain I don't have any more tweaks, but I figured I would go ahead and throw it out for discussion.

User Info: CaptainMuscles

7 years ago#2

I just discovered some very strange code from Anomie's notes which I think might actually be memory addresses used when you press b to go back and change a previous warrior's action. That's when I realized with great embarrassment that I hadn't accounted for that option.

Quick fix:

; 3147f
946f: 41 94 .DW $9441
9471: 41 94 .DW $9441
9473: 41 94 .DW $9441
9475: 41 94 .DW $9441

Also, monsters strike first seems to be broken, but at least that doesn't crash and burn, it just lies to you. I'll worry about that in the morning.

User Info: aeepahzieoi

7 years ago#3
Wow! I remember that something like this was being discussed a bunch of months ago... it seemed like nobody thought it would be possible. So it sounds like you have just done the impossible. Good job!

I am definitely going to try this.

User Info: robertebalmer

7 years ago#4
Awesome. Yeah, even though I kinda prefer the original method, this is still an amazing hack. Wish I could try it out, but I don't know what all those letters and numbers mean, or how to use them.....

User Info: beege_man

7 years ago#5
Holy crap man, you actually DID it?!?! That's amazing! How in the heck did you figure out a way to do it?
203/230 3/0/0/0/0/0/2 H0 P2
HDCEA: 40/18/4/69/17 Int/MDef: 45/60

User Info: CaptainMuscles

7 years ago#6
@robertebalmer: I'll try to put it in a more usable format once I tie up the loose ends. I was excited when I (thought I) got it working completely so I threw my working notes up here.

@aeepahzieoi & beege_man: I probably wouldn't have had the patience to actually do this without Anomie's and Disch's notes. There were a few commented variables and speculative notes that directed me to where to get started. I also hope to post updates to the related areas in Anomie's notes and Disch's disassembly once I finish up the loose ends.

@anyone: The versions of Anomie's and Disch's notes that I have are over 1 & 1/2 years old. Have there been any updates or new, similar resources released since?

User Info: CaptainMuscles

7 years ago#7
Loose end #1:

Monster strike first actually seems to be working fine so far using the value in my notes. It seems I just entered a wrong value when applying the change to the game :P.

User Info: aeepahzieoi

7 years ago#8
I got it to work! It's great! It changes the flow of the game for real, guys. I hope this sparks off some more discussion, because this would make a fun twist for Final Fantasy.

I tried four fighters, and it actually was quite a blast (for a change) to only have to hold 'A' during battle after battle, to rapidly gain gold and experience.
  1. Boards
  2. Final Fantasy
  3. Dynamic Action Selection Enhancement
  • Topic Archived