Difference between revisions of "Script Format"
Jump to navigation
Jump to search
(commands 05, 06, 09-11 (Triggers)) |
(commands: 1A, 26, 2B, 2C, 2E, 2F, 46-49, 76) |
||
Line 209: | Line 209: | ||
|- | |- | ||
|1A | |1A | ||
| | | DialogSwitchChoice | ||
| | | 4 | ||
| | | | ||
| | | | ||
Line 293: | Line 293: | ||
|- | |- | ||
|26 | |26 | ||
| | | RandomMoveInArea | ||
| | | 5 | ||
| | | | ||
| | | | ||
Line 328: | Line 328: | ||
|- | |- | ||
|2B | |2B | ||
| | | PadCheckAllButtonsPressed2 | ||
| | | 5 | ||
| | | | ||
| | | | ||
Line 335: | Line 335: | ||
|- | |- | ||
|2C | |2C | ||
| | | PadCheckNoButtonPressed2 | ||
| | | 5 | ||
| | | | ||
| | | | ||
Line 349: | Line 349: | ||
|- | |- | ||
|2E | |2E | ||
| | | PadCheckAnyButtonPressed | ||
| 5 | | 5 | ||
| | | | ||
Line 356: | Line 356: | ||
|- | |- | ||
|2F | |2F | ||
| | | PadCheckNoButtonPressed | ||
| 5 | | 5 | ||
| | | | ||
Line 518: | Line 518: | ||
|- | |- | ||
|46 | |46 | ||
| | | MapCopyRect | ||
| | | 8 | ||
| | | | ||
| | | | ||
Line 525: | Line 525: | ||
|- | |- | ||
|47 | |47 | ||
| | | ObjectDeleteIfEventFlags | ||
| | | variable | ||
| | | | ||
| | | | ||
Line 532: | Line 532: | ||
|- | |- | ||
|48 | |48 | ||
| | | ObjectDeleteIfEventFlag | ||
| 3 | | 3 | ||
| | | | ||
Line 539: | Line 539: | ||
|- | |- | ||
|49 | |49 | ||
| | | ObjectDeleteIfMapId | ||
| 3 | | 3 | ||
| | | | ||
Line 854: | Line 854: | ||
|- | |- | ||
|76 | |76 | ||
| | | WriteSystemRegister | ||
| | | 3 | ||
| | | | ||
| | | |
Revision as of 17:51, 12 February 2016
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 | DialogSwitchChoice | 4 | ||
1B | PrintRelative | 3 | ||
1C | PrintAbsolute | 4 | ||
1D | ||||
1E | ||||
1F | MessageWait | 1 | ||
20 | ||||
21 | Trigger | 3 | ||
22 | ||||
23 | 3 | |||
24 | 4 | |||
25 | Rand | 1 | ||
26 | RandomMoveInArea | 5 | ||
27 | ||||
28 | 2 | Set 0x7F2018 to value | ||
29 | 3 | |||
2A | PadDisableButtons | 3 | ||
2B | PadCheckAllButtonsPressed2 | 5 | ||
2C | PadCheckNoButtonPressed2 | 5 | ||
2D | ||||
2E | PadCheckAnyButtonPressed | 5 | ||
2F | PadCheckNoButtonPressed | 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 | MapCopyRect | 8 | ||
47 | ObjectDeleteIfEventFlags | variable | ||
48 | ObjectDeleteIfEventFlag | 3 | ||
49 | ObjectDeleteIfMapId | 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 | WriteSystemRegister | 3 | ||
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 |