ATTACK.OUT

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search

ATTACK.OUT is a file within Final Fantasy Tactics that holds information about battles.

Map Order in Attack.out

Loading Maps

   First line:
   0x10938: 0100 3E00 0033 3400 0100 0000 0000 0000 0100 0000 0000 0000
            AAAA BBCC DDEE FFGG GGHH HHII II          ZZ xxxx xxxx JJJJ
   
   Last line:
   0x10950: 0200 3E00 0033 3400 0100 0000 0000 0000 0100 0300 8100 0000
                 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx KKKK LL   xxxx
   
   
   x = duplicate, ignored data
   A = Scenario number: 1
       (Just an index for this list, apparently.
       Also, whichever event is numbered "1" always plays first.)
   B = Map number: 0x3e
       (MAP/MAP062.GNS)
   C = Weather: 0
       (Doesn't influence whether the rain animations are used)
   D = Day/Night: 0
       0 = Day
       1 = Night
   E = First Music file: 0x33
       (SOUND/MUSIC_51.SMD)
   F = Second Music file: 0x34
       (SOUND/MUSIC_52.SMD)
   G = ENTD entry: 0x0100
       (Looks like this matches the "Game Events" list.)
   H = Character placement grid, 1st Squad
       (Placement grids are found in ATTACK.OUT at 0xbbd4)
       (For first scenario, using this makes the placement screen garbled.)
   I = Character placement grid, 2nd Squad
   J = Event script: 0
       (Scenario 1 seems to be a special case because Event Script 0
       plays just fine. Using Event Script 0 on scenario 3 causes wrong
       text to display.)
       (Also seems to control which scenario block the "next scenario"
       byte is read from)
   K = Next scenario: 3
       (As indexed by A)
   L = 0x80 = World map follows this scenario
       0x81 = Another event follows this scenario (K)
       0x82 = Game reset follows this scenario (side effect, or intneded?)
   Z = Not sure yet, but setting it to 1 makes Ramza mandatory on
       character placement screen
                                                                     -gomtuu


Battle Formation

Offset 0xbbd4:

   4218 2300 0401 0003 0401 0100
   AAAA AAAA BBCC xxDE FFGG HHHH
   
   A = 5x5 bitmap
       (ffffff01 is solid)
       (a9d62a01 is an S)
   B = X coordinate of center of 5x5 square relative to map's (0,0) square
       (signed)
   C = Z coordinate of center of 5x5 square relative to map's (0,0) square
       (signed)
   x = Padding
       (Always 0x00)
   D = Orientation
       (0x00 = W)
       (0x01 = S)
       (0x02 = E)
       (0x03 = N)
   E = Orientation, with bitmap rotated
       (Same as D, but also rotates the 5x5 bitmap)
   F = Number of characters allowed in squad
       (1 - 5 are valid. Making this 6 and adding a 6th character crashes ePSXe.)
   G = Map number
       (Just for reference?)
   H = Placement ID number
                                                                        -gomtuu