~~NOTOC~~ ===== Battle Formation Event Command ===== [[ff3:ff3us:patches:madsiur|{{ff3:ff3us:patches:madsiur:madbutton.png}}]] ==== Patch data ==== |Name |Battle Formation Event Command 1.0 | |Author |madsiur | |Link |{{ff3:ff3us:patches:madsiur:battleform.zip|Download}} | ==== Rom data ==== |ROM Name |Final Fantasy III (USA) 1.0 | |ROM SHA-1 |4F37E4274AC3B2EA1BEDB08AA149D8FC5BB676E7 | |Header |No | |ROM Name |Final Fantasy III (USA) 1.1 | |ROM SHA-1 |057ADA1C641E3E0B3CA34E6E4F4EB1B05A87143A | |Header |No | ==== Description ==== This hack is inspired by the work of [[http://s8fp98fd5k.blog105.fc2.com/|Shall]] on FF6-G (which ASM code is [[http://ux.getuploader.com/shalldif/|public]]) but his code has been adapted to FF3us and modified in order to behave exactly like command $4D and not like the original $C0A5A7 battle calling code, which resulted in weird behavior with the party position after a battle called with an event trigger. This event command fill a gap in FF3us by letting you call a battle directly with a formation. Normally as an example command $4D will call a pack with ID between $100 and $1FF, which can be somehow limited for extensive hacks with a lot of battle called this way. This command $69 behave in a identical way of command $4D, except of a pack number a formation ID is provided. The format is the following: 69 AA BB CC Battle with formation BBAA with battle background CC CC AND $3F = Background ID, map default if CC equals $3F CC AND $80 = Disable battle blur CC AND $40 = No battle sound As an example, 69 22 01 12 will trigger a battle with formation $0122 with battle background $12 with battle blur and battle sound. 69 22 01 3F would use the map default background and 69 22 01 FF the default background with no battle blur and no battle sound. As always, you need to provide the good event context after battle in order to see this fully working (same for command $4D). An example would be: 69 22 01 12 ; Call battle B2 A9 5E 00 ; Check for game over (subroutine $CA5EA9) 96 ; Restore screen from fade FE ; Return If you want to move the code, you can assemble the ASM file you need with xkas 0.06. ==== Offsets ==== |$C0992C - $C0992D |Event Command Pointer Table (both implementations) | |$C0D613 - $C0D65E |Bank $C0 Implementation: Command Code | |$C0D613 - $C0D616 |Bank $F2 Implementation: JML to Command Code | |$F20000 - $F2004B |Bank $F2 Implementation: Command Code | ==== Code ==== Bank $C0 Implementation org $C0992C ; Jump table edit dw cmd69 org $C0D613 ; Change to relocate command in bank $C0 cmd69: ; Requires $4B bytes of free space REP #$20 ; 16-Bit Accumulator LDA $EB ; Battle formation STA $0011E0 ; Store as battle formation TDC ; Clear Accumulator SEP #$20 ; 8-Bit Accumulator LDA $ED ; Battle intro effects and background AND #$C0 ; Isolate battle blur and battle sound effect disabling STA $078A ; Save value in RAM LDA $ED ; Battle intro effects and background AND #$3F ; Isolate bits 0-5 (battle background ID, max #$3F) CMP #$3F ; Check if equal to #$3F BNE lblA ; If not, set as background LDA $0522 ; Load $0522 (#$7F = battle background ID) AND #$7F ; Isolate bits 0-6 (battle background ID, max #$7F) lblA: STA $0011E2 ; Store as battle background ID TDC ; Clear Accumulator STA $0011E3 ; ??? LDA $1ED7 ; AND #$10 ; Continue music during battle? LSR ; STA $0011E4 ; Set to continue current music LDA #$01 ; STA $56 ; Enable battle LDX $0541 ; BG1 X,Y Center Coordinate STX $1F66 ; Store as Field XY Scroll Position LDX $00AF ; Party's X,Y Position STX $1FC0 ; Set as Party XY Position LDA #$E0 ; STA $11FA ; enable startup event, disable fade-in, no update on map load LDA #$04 ; Number of bytes: 4 JMP $9B70 ; Advance the event queue of 4 bytes ==== Links ==== [[http://www.ff6hacking.com/forums/showthread.php?tid=3393|Forum Thread]]\\ [[http://ux.getuploader.com/shalldif/|FF6-G Uploader]]\\ [[http://s8fp98fd5k.blog105.fc2.com/|Shall's Blog]]\\ [[https://www.youtube.com/channel/UCUnyxLM-Sdl7OtKxRHzuSZQ|Shall's Youtube Channel]]\\ ==== Screenshots ==== {{gallery>ff3:ff3us:patches:madsiur:battle_form:?128x128&lightbox}} [[ff3:ff3us:patches:madsiur|{{ff3:ff3us:patches:madsiur:madbutton.png}}]]