By Aali, myst6re and Shard.

The language

The field script language in ff8 is a simple assembly language with a stack. Here is an example:

stack = []

PSHM_W       1024      # push var1024 onto the stack (stack = [var1024])
PSHN_L       6         # push number 6 onto the stack (stack = [6 ; var1024])
CAL          EQ        # compare the two numbers at the top of the stack, pop this numbers, and push the result (1 or 0) into the stack (stack = [1 or 0]) 
JPF          LABEL1    # if the popped top of the stack is 0, jump to LABEL1 (stack = [])
PSHN_L       0         # push 0 at the top of the stack (stack = [0])
POPM_W       1024      # pop the top of the stack into var1024 (stack = [])
JMP          LABEL2    # goto LABEL2
LABEL1
PSHN_L       1         # push 1 at the top of the stack (stack = [1])
POPM_W       1024      # pop the top of the stack into var1024 (stack = [])
LABEL2
...

In standard code, it’s equivalent to:

if(var1024 == 6) {
    var1024 = 0;
} else {
    var1024 = 1;
}

Reading Documentation

Each Opcode’s page lists all the parameters for that function in the order you would put them on the stack before the function call. The inline argument is listed separately, if the function requires one. For example, on the page for SET3, the parameters are listed like this:

XCoord

YCoord

ZCoord

SET3

Which means when you call SET3, the ZCoord is the top item on the stack, YCoord is under it, and XCoord is under that, for example

PSHN_L      402   (XCoord)
PSHN_L      -381  (YCoord)
PSHN_L      20    (ZCoord)
SET3        17    (walkmesh triangle ID)

Opcode list

Opcode Name Function Type
000 000 NOP* Script Processing
001 001 CAL Script Processing
002 002 JMP Script Processing
003 003 JPF Script Processing
004 004 GJMP* Script Processing
005 005 LBL Script Processing
006 006 RET Script Processing
007 007 PSHN_L Memory
008 008 PSHI_L Memory
009 009 POPI_L Memory
00A 00A PSHM_B Memory
00B 00B POPM_B Memory
00C 00C PSHM_W Memory
00D 00D POPM_W Memory
00E 00E PSHM_L Memory
00F 00F POPM_L Memory
010 010 PSHSM_B Memory
011 011 PSHSM_W Memory
012 012 PSHSM_L Memory
013 013 PSHAC Memory
014 014 REQ Script Processing
015 015 REQSW Script Processing
016 016 REQEW Script Processing
017 017 PREQ Script Processing
018 018 PREQSW Script Processing
019 019 PREQEW Script Processing
01A 01A UNUSE Entity
01B 01B DEBUG*  
01C 01C HALT Script Processing
01D 01D SET Entity
01E 01E SET3 Entity
01F 01F IDLOCK Field related
020 020 IDUNLOCK Field related
021 021 EFFECTPLAY2 Music and Sound
022 022 FOOTSTEP  
023 023 JUMP Entity
024 024 JUMP3 Entity
025 025 LADDERUP Entity
026 026 LADDERDOWN Entity
027 027 LADDERUP2 Entity
028 028 LADDERDOWN2 Entity
029 029 MAPJUMP Field related
02A 02A MAPJUMP3 Field related
02B 02B SETMODEL Entity
02C 02C BASEANIME Animation
02D 02D ANIME Animation
02E 02E ANIMEKEEP Animation
02F 02F CANIME Animation
030 030 CANIMEKEEP Animation
031 031 RANIME Animation
032 032 RANIMEKEEP Animation
033 033 RCANIME Animation
034 034 RCANIMEKEEP Animation
035 035 RANIMELOOP Animation
036 036 RCANIMELOOP Animation
037 037 LADDERANIME Animation
038 038 DISCJUMP Field related
039 039 SETLINE Entity
03A 03A LINEON Entity
03B 03B LINEOFF Entity
03C 03C WAIT Script Processing
03D 03D MSPEED  
03E 03E MOVE Entity
03F 03F MOVEA  
040 040 PMOVEA  
041 041 CMOVE  
042 042 FMOVE  
043 043 PJUMPA  
044 044 ANIMESYNC Script Processing
045 045 ANIMESTOP Animation
046 046 MESW*  
047 047 MES Message
048 048 MESSYNC Script Processing
049 049 MESVAR Message
04A 04A ASK Message
04B 04B WINSIZE Message
04C 04C WINCLOSE Message
04D 04D UCON Misc
04E 04E UCOFF Misc
04F 04F MOVIE Movie
050 050 MOVIESYNC Script Processing
051 051 SETPC Party management
052 052 DIR Entity
053 053 DIRP  
054 054 DIRA  
055 055 PDIRA  
056 056 SPUREADY Timer
057 057 TALKON Entity
058 058 TALKOFF Entity
059 059 PUSHON Entity
05A 05A PUSHOFF Entity
05B 05B ISTOUCH  
05C 05C MAPJUMPO Field related
05D 05D MAPJUMPON Field related
05E 05E MAPJUMPOFF Field related
05F 05F SETMESSPEED Message
060 060 SHOW Entity
061 061 HIDE Entity
062 062 TALKRADIUS Entity
063 063 PUSHRADIUS Entity
064 064 AMESW Message
065 065 AMES Message
066 066 GETINFO  
067 067 THROUGHON Entity
068 068 THROUGHOFF Entity
069 069 BATTLE Battle
06A 06A BATTLERESULT Battle
06B 06B BATTLEON Field related
06C 06C BATTLEOFF Field related
06D 06D KEYSCAN Input
06E 06E KEYON Input
06F 06F AASK Message
070 070 PGETINFO  
071 071 DSCROLL  
072 072 LSCROLL  
073 073 CSCROLL  
074 074 DSCROLLA  
075 075 LSCROLLA  
076 076 CSCROLLA  
077 077 SCROLLSYNC Script Processing
078 078 RMOVE  
079 079 RMOVEA  
07A 07A RPMOVEA  
07B 07B RCMOVE  
07C 07C RFMOVE  
07D 07D MOVESYNC Script Processing
07E 07E CLEAR Field related
07F 07F DSCROLLP  
080 080 LSCROLLP  
081 081 CSCROLLP  
082 082 LTURNR  
083 083 LTURNL  
084 084 CTURNR  
085 085 CTURNL  
086 086 ADDPARTY Party Management
087 087 SUBPARTY Party Management
088 088 CHANGEPARTY Party Management
089 089 REFRESHPARTY Party Management
08A 08A SETPARTY Party Management
08B 08B ISPARTY Party Management
08C 08C ADDMEMBER Party Management
08D 08D SUBMEMBER Party Management
08E 08E ISMEMBER* Party Management
08F 08F LTURN  
090 090 CTURN  
091 091 PLTURN  
092 092 PCTURN  
093 093 JOIN Entity
094 094 MESFORCUS*  
095 095 BGANIME Field related
096 096 RBGANIME Field related
097 097 RBGANIMELOOP Field related
098 098 BGANIMESYNC Field related
099 099 BGDRAW Field related
09A 09A BGOFF Field related
09B 09B BGANIMESPEED Field related
09C 09C SETTIMER Timer
09D 09D DISPTIMER Timer
09E 09E SHADETIMER*  
09F 09F SETGETA  
0A0 0A0 SETROOTTRANS  
0A1 0A1 SETVIBRATE  
0A2 0A2 STOPVIBRATE*  
0A3 0A3 MOVIEREADY Movie
0A4 0A4 GETTIMER Timer
0A5 0A5 FADEIN Field related
0A6 0A6 FADEOUT Field related
0A7 0A7 FADESYNC Script Processing
0A8 0A8 SHAKE Field related
0A9 0A9 SHAKEOFF Field related
0AA 0AA FADEBLACK Field related
0AB 0AB FOLLOWOFF  
0AC 0AC FOLLOWON  
0AD 0AD GAMEOVER Field related
0AE 0AE ENDING*  
0AF 0AF SHADELEVEL  
0B0 0B0 SHADEFORM  
0B1 0B1 FMOVEA  
0B2 0B2 FMOVEP  
0B3 0B3 SHADESET  
0B4 0B4 MUSICCHANGE Music and Sound
0B5 0B5 MUSICLOAD Music and Sound
0B6 0B6 FADENONE  
0B7 0B7 POLYCOLOR  
0B8 0B8 POLYCOLORALL  
0B9 0B9 KILLTIMER Timer
0BA 0BA CROSSMUSIC  
0BB 0BB DUALMUSIC  
0BC 0BC EFFECTPLAY Music and Sound
0BD 0BD EFFECTLOAD Music and Sound
0BE 0BE LOADSYNC  
0BF 0BF MUSICSTOP Music and Sound
0C0 0C0 MUSICVOL Music and Sound
0C1 0C1 MUSICVOLTRANS Music and Sound
0C2 0C2 MUSICVOLFADE Music and Sound
0C3 0C3 ALLSEVOL Music and Sound
0C4 0C4 ALLSEVOLTRANS Music and Sound
0C5 0C5 ALLSEPOS* Music and Sound
0C6 0C6 ALLSEPOSTRANS Music and Sound
0C7 0C7 SEVOL Music and Sound
0C8 0C8 SEVOLTRANS Music and Sound
0C9 0C9 SEPOS Music and Sound
0CA 0CA SEPOSTRANS Music and Sound
0CB 0CB SETBATTLEMUSIC Music and Sound
0CC 0CC BATTLEMODE Battle
0CD 0CD SESTOP Music and Sound
0CE 0CE BGANIMEFLAG*  
0CF 0CF INITSOUND  
0D0 0D0 BGSHADE  
0D1 0D1 BGSHADESTOP  
0D2 0D2 RBGSHADELOOP  
0D3 0D3 DSCROLL2  
0D4 0D4 LSCROLL2  
0D5 0D5 CSCROLL2  
0D6 0D6 DSCROLLA2  
0D7 0D7 LSCROLLA2*  
0D8 0D8 CSCROLLA2  
0D9 0D9 DSCROLLP2*  
0DA 0DA LSCROLLP2*  
0DB 0DB CSCROLLP2*  
0DC 0DC SCROLLSYNC2  
0DD 0DD SCROLLMODE2  
0DE 0DE MENUENABLE Menus
0DF 0DF MENUDISABLE Menus
0E0 0E0 FOOTSTEPON  
0E1 0E1 FOOTSTEPOFF  
0E2 0E2 FOOTSTEPOFFALL  
0E3 0E3 FOOTSTEPCUT  
0E4 0E4 PREMAPJUMP  
0E5 0E5 USE Entity
0E6 0E6 SPLIT Entity
0E7 0E7 ANIMESPEED Animation
0E8 0E8 RND  
0E9 0E9 DCOLADD  
0EA 0EA DCOLSUB  
0EB 0EB TCOLADD  
0EC 0EC TCOLSUB  
0ED 0ED FCOLADD Field related
0EE 0EE FCOLSUB Field related
0EF 0EF COLSYNC Script processing
0F0 0F0 DOFFSET  
0F1 0F1 LOFFSETS  
0F2 0F2 COFFSETS  
0F3 0F3 LOFFSET  
0F4 0F4 COFFSET  
0F5 0F5 OFFSETSYNC  
0F6 0F6 RUNENABLE Entity
0F7 0F7 RUNDISABLE Entity
0F8 0F8 MAPFADEOFF Field related
0F9 0F9 MAPFADEON Field related
0FA 0FA INITTRACE  
0FB 0FB SETDRESS Entity
0FC 0FC GETDRESS* Entity
0FD 0FD FACEDIR Entity
0FE 0FE FACEDIRA  
0FF 0FF FACEDIRP  
100 100 FACEDIRLIMIT  
101 101 FACEDIROFF  
102 102 SARALYOFF  
103 103 SARALYON  
104 104 SARALYDISPOFF  
105 105 SARALYDISPON  
106 106 MESMODE Message
107 107 FACEDIRINIT  
108 108 FACEDIRI  
109 109 JUNCTION Party Management
10A 10A SETCAMERA Field related
10B 10B BATTLECUT  
10C 10C FOOTSTEPCOPY  
10D 10D WORLDMAPJUMP Field related
10E 10E RFACEDIRI*  
10F 10F RFACEDIR  
110 110 RFACEDIRA  
111 111 RFACEDIRP  
112 112 RFACEDIROFF  
113 113 FACEDIRSYNC  
114 114 COPYINFO  
115 115 PCOPYINFO*  
116 116 RAMESW Message
117 117 BGSHADEOFF Field related
118 118 AXIS  
119 119 AXISSYNC*  
11A 11A MENUNORMAL Menus
11B 11B MENUPHS Menus
11C 11C BGCLEAR  
11D 11D GETPARTY Party Management
11E 11E MENUSHOP Menus
11F 11F DISC Field related
120 120 DSCROLL3*  
121 121 LSCROLL3  
122 122 CSCROLL3  
123 123 MACCEL  
124 124 MLIMIT  
125 125 ADDITEM Item/Magic/Card/GF
126 126 SETWITCH  
127 127 SETODIN  
128 128 RESETGF  
129 129 MENUNAME Menus
12A 12A REST  
12B 12B MOVECANCEL  
12C 12C PMOVECANCEL*  
12D 12D ACTORMODE  
12E 12E MENUSAVE Menus
12F 12F SAVEENABLE Menus
130 130 PHSENABLE Menus
131 131 HOLD Party Management
132 132 MOVIECUT  
133 133 SETPLACE  
134 134 SETDCAMERA  
135 135 CHOICEMUSIC  
136 136 GETCARD  
137 137 DRAWPOINT Menus
138 138 PHSPOWER  
139 139 KEY  
13A 13A CARDGAME Menus
13B 13B SETBAR  
13C 13C DISPBAR  
13D 13D KILLBAR  
13E 13E SCROLLRATIO2  
13F 13F WHOAMI  
140 140 MUSICSTATUS  
141 141 MUSICREPLAY  
142 142 DOORLINEOFF Entity
143 143 DOORLINEON Entity
144 144 MUSICSKIP  
145 145 DYING Party Management
146 146 SETHP Party Management
147 147 GETHP* Party Management
148 148 MOVEFLUSH  
149 149 MUSICVOLSYNC  
14A 14A PUSHANIME  
14B 14B POPANIME  
14C 14C KEYSCAN2 Input
14D 14D KEYON2* Input
14E 14E PARTICLEON  
14F 14F PARTICLEOFF  
150 150 KEYSIGHNCHANGE  
151 151 ADDGIL Item/Magic/Card/GF
152 152 ADDPASTGIL Item/Magic/Card/GF
153 153 ADDSEEDLEVEL Item/Magic/Card/GF
154 154 PARTICLESET  
155 155 SETDRAWPOINT  
156 156 MENUTIPS Menus
157 157 LASTIN  
158 158 LASTOUT  
159 159 SEALEDOFF  
15A 15A MENUTUTO Menus
15B 15B OPENEYES*  
15C 15C CLOSEEYES  
15D 15D BLINKEYES*  
15E 15E SETCARD Item/Magic/Card/GF
15F 15F HOWMANYCARD Item/Magic/Card/GF
160 160 WHERECARD Item/Magic/Card/GF
161 161 ADDMAGIC Item/Magic/Card/GF
162 162 SWAP  
163 163 SETPARTY2*  
164 164 SPUSYNC Timer
165 165 BROKEN  
166 166 UNKNOWN1  
167 167 UNKNOWN2  
168 168 UNKNOWN3  
169 169 UNKNOWN4  
170 170 UNKNOWN5 Item/Magic/Card/GF
171 171 UNKNOWN6 Animation
172 172 UNKNOWN7 Animation
173 173 UNKNOWN8 Animation
174 174 UNKNOWN9 Animation
175 175 UNKNOWN10  
176 176 UNKNOWN11  
177 177 UNKNOWN12  
178 178 UNKNOWN13 Music and Sound
179 179 UNKNOWN14 Music and Sound
180 180 UNKNOWN15  
181 181 UNKNOWN16 Field related
182 182 UNKNOWN17 Field related
183 183 UNKNOWN18 Menus