Script Format
Jump to navigation
Jump to search
Scripts are parsed bytewise.
A note about event flags
Event flags are calculated from an u16 value like this:
u16 EventFlag; Flag = (EventFlag & 0xFFF) >> 3; Value = 1 << (EventFlag & 7); IsSet = EventFlag & 0x8000
Commands
Opcode | Function | Length | Arguments | Comments |
---|---|---|---|---|
00 | JumpSetOffset | 4 | ||
01 | JumpOffset | 1 | ||
02 | LoopSetup | 3 | ||
03 | LoopDo | 1 | ||
04 | LoopDoAsync | 1 | ||
05 | WaitOnEventFlag | 3 | ||
06 | JumpAndSetOrigin | 4 | ||
07 | EventFlagModify | 3 | ||
08 | EventFlagCheckJump | 5 | ||
09 | EventFlagCheckMultiple | variable | ||
0A | CheckMapId | 5 | ||
0B | CheckDeathwarpMapId | 5 | ||
0C | TriggerOnAreaAbsolute | 8 | ||
0D | TriggerOnAreaRelative | 8 | ||
0E | TriggerOnAreaAbsolutePixel | 12 | ||
0F | TriggerOnBlockAbsolute | 6 | ||
10 | TriggerOnBlockRelative | 6 | ||
11 | TriggerObjectOnAreaAbsolute | 9 | First parameter is object index, which is multiplied by 40 and added to 1000 to get the object handle,
for which the trigger is checked. Remaining parameters are same as command 0C. | |
12 | TriggerObjectOnAreaRelative | 9 | Broken command.
Supposed to be 0D-counterpart of 11: it should compare the position of the object that is given as first parameter to the position of the object that executes the command, but it uses for both purposes only the object that is given as parameter, which makes it useless. | |
13 | SpriteSetPosition | 4 | ||
14 | PlayerPort | 9 | ||
15 | ||||
16 | ||||
17 | ||||
18 | ||||
19 | RespawnSetLocation | 15 | ||
1A | DialogChoice | x | ||
1B | PrintRelative | 3 | ||
1C | PrintAbsolute | 4 | ||
1D | ||||
1E | ||||
1F | MessageWait | 1 | ||
20 | ||||
21 | Trigger | 3 | ||
22 | ||||
23 | 3 | |||
24 | 4 | |||
25 | Rand | 1 | ||
26 | ||||
27 | ||||
28 | 2 | Set 0x7F2018 to value | ||
29 | 3 | |||
2A | PadDisableButtons | 3 | ||
2B | ||||
2C | ||||
2D | ||||
2E | CallCodeOnMovementMaskSet | 5 | ||
2F | CallCodeOnMovementMaskUnSet | 5 | ||
30 | MusicPlay | 2 | ||
31 | MusicPlayFadeOver | 2 | ||
32 | MusicPlay2 | 2 | This saves the last track played via this command.
When calling it with the value set to 0xFF it plays the last played track again. | |
33 | 1 | |||
34 | ||||
35 | ||||
36 | SoundEffectPlayOnce | 2 | ||
37 | SoundEffectPlay | 2 | ||
38 | SoundEffect? | 3 | ||
39 | SpriteGotoPosition | 4 | ||
3A | 4 | |||
3B | ObjectSetSolid | 1 | ||
3C | 1 | |||
3D | 4 | |||
3E | ||||
3F | ||||
40 | ||||
41 | ||||
42 | ||||
43 | ||||
44 | ||||
45 | ||||
46 | ||||
47 | EventFlagCheck | 5 | ||
48 | EventFlagCheckSkipNext | 3 | ||
49 | 3 | |||
4A | ||||
4B | ||||
4C | ||||
4D | ||||
4E | ||||
4F | ||||
50 | ||||
51 | ||||
52 | ||||
53 | ||||
54 | ItemGive | 4 | ||
55 | ||||
56 | ||||
57 | ||||
58 | ||||
59 | 2 | |||
5A | 6 | |||
5B | ||||
5C | ||||
5D | ||||
5E | ||||
5F | ||||
60 | ||||
61 | ||||
62 | ||||
63 | ||||
64 | ||||
65 | 6 | |||
66 | ||||
67 | ||||
68 | ||||
69 | ||||
6A | ||||
6B | ||||
6C | PrintAbsolute2 | 4 | ||
6D | ||||
6E | UpdateScene | 3 | ||
6F | ||||
70 | ||||
71 | ||||
72 | ||||
73 | 3 | |||
74 | ||||
75 | ||||
76 | ||||
77 | ||||
78 | BackgroundUpdateFade | |||
79 | Unused command | |||
7A | Unused command | |||
7B | Unused command | |||
7C | Unknown Command, Only implemented in JP version, FFFF in German and English | |||
7D | Unused command | |||
7E | Unused command | |||
7F | Unused command | |||
80 | AnimationSetA | 2 | ||
81 | AnimationSetB | 2 | ||
82 | ||||
83 | ||||
84 | ||||
85 | AnimationSetC | 3 | ||
86 | AnimationSetD | 3 | ||
87 | ObjectMove | 4 | ||
88 | ||||
89 | ||||
8A | ||||
8B | ||||
8C | ||||
8D | ||||
8E | AnimationWait | 1 | ||
8F | 1 | |||
90 | ||||
91 | ||||
92 | ||||
93 | ||||
94 | ||||
95 | 1 | |||
96 | 1 | |||
97 | 9 | |||
98 | 11 | |||
99 | 6 | |||
9A | ||||
9B | ||||
9C | ||||
9D | ||||
9E | ||||
9F | ||||
A0 | ||||
A1 | 4 | |||
A2 | 6 | |||
A3 | ||||
A4 | 10 | Same handler as 0xE8 | ||
A5 | ||||
A6 | ||||
A7 | ||||
A8 | ||||
A9 | ||||
AA | 4 | |||
AB | ||||
AC | ||||
AD | ||||
AE | ||||
AF | 2 | |||
B0 | 2 or 4 | |||
B1 | 3 | |||
B2 | 5 | |||
B3 | 5 | |||
B4 | SpriteSetUpsideDown | 1 | ||
B5 | SpriteSetDownsideUp | 1 | ||
B6 | SpriteSetFacingRight | 1 | ||
B7 | SpriteSetFacingLeft | 1 | ||
B8 | SpriteFlipVertical | 1 | ||
B9 | SpriteFlipHorizontal | 1 | ||
BA | 2 | |||
BB | 2 | |||
BC | 1 | |||
BD | 1 | |||
BE | 6 | |||
BF | 4 | |||
C0 | 4 | |||
C1 | Delay | 3 | ||
C2 | ||||
C3 | ||||
C4 | ||||
C5 | ||||
C6 | ||||
C7 | ||||
C8 | ||||
C9 | ||||
CA | ||||
CB | 5 | |||
CC | 6 | |||
CD | ||||
CE | ||||
CF | ||||
D0 | ||||
D1 | ||||
D2 | ||||
D3 | ||||
D4 | 9 | |||
D5 | ||||
D6 | 4 | |||
D7 | 5 | |||
D8 | 4 | |||
D9 | ProjectileSetDamage | 2 | ||
DA | ||||
DB | ||||
DC | 5 | |||
DD | 8 | |||
DE | 2 | |||
DF | 4 | |||
E0 | ||||
E1 | ||||
E2 | ||||
E3 | ||||
E4 | ||||
E5 | ||||
E6 | ||||
E7 | 6 | |||
E8 | 10 | |||
E9 | ||||
EA | ||||
EB | 1 | |||
EC | ||||
ED | 6 | |||
EE | 2 | |||
EF |