touhou-reimpl/research/stage05.tecl

1749 lines
56 KiB
Plaintext
Raw Normal View History

#pragma mapfile "utils/th11.eclm"
meta {
anim: ["enemy.anm", "stgenm05.anm"],
ecli: ["default.ecl", "stage05mboss.ecl", "stage05boss.ecl"],
}
void BCir00() {
stackAlloc(@nargs=1, @blob="04000000");
anmSetSprite(@nargs=2, @blob="01000000 2d000000");
call(
@nargs=4,
@blob="08000000 43697230 30000000 69690000 57000000 69690000 2d000000 69690000 01000000",
);
delete(@blob="");
}
void BCir01() {
stackAlloc(@nargs=1, @blob="04000000");
anmSetSprite(@nargs=2, @blob="01000000 2d000000");
call(
@nargs=4,
@blob="08000000 43697230 31000000 69690000 57000000 69690000 2d000000 69690000 01000000",
);
delete(@blob="");
}
void BCir02() {
stackAlloc(@nargs=1, @blob="04000000");
anmSetSprite(@nargs=2, @blob="01000000 2d000000");
call(
@nargs=4,
@blob="08000000 43697230 32000000 69690000 4b000000 69690000 2d000000 69690000 01000000",
);
delete(@blob="");
}
void BPhantom00() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="02000000");
anmSetSprite(@nargs=2, @blob="01000000 2d000000");
call(
@nargs=3,
@blob="0c000000 5068616e 746f6d30 30000000 69690000 62000000 69690000 01000000",
);
delete(@blob="");
}
void BPhantom01() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="02000000");
anmSetSprite(@nargs=2, @blob="01000000 2d000000");
call(
@nargs=3,
@blob="0c000000 5068616e 746f6d30 31000000 69690000 62000000 69690000 01000000",
);
delete(@blob="");
}
void BPhantom02() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="02000000");
anmSetSprite(@nargs=2, @blob="01000000 2d000000");
call(
@nargs=3,
@blob="0c000000 5068616e 746f6d30 32000000 69690000 62000000 69690000 01000000",
);
delete(@blob="");
}
void Cir00() {
stackAlloc(@nargs=1, @blob="18000000");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="14000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@mask=0b10, @nargs=2, @blob="00000000 00000000");
flagSet(@nargs=1, @blob="0f000000");
setHurtbox(@nargs=2, @blob="0000c041 0000c041");
setHitbox(@nargs=2, @blob="00008041 00008041");
playSound(@nargs=1, @blob="22000000");
dropClear(@blob="");
dropExtra(@nargs=2, @blob="01000000 01000000");
dropExtra(@nargs=2, @blob="02000000 04000000");
dropArea(@nargs=2, @blob="00004042 00004042");
moveCircle(
@mask=0b1,
@nargs=4,
@blob="00381cc6 db0fc93d 00009042 000080bf",
);
moveVelRel(@nargs=2, @blob="db0fc9bf 0000803f");
moveVelRelTime(@nargs=4, @blob="3c000000 04000000 f02374c9 00000000");
+60: // 60
flagClear(@nargs=1, @blob="0f000000");
anmSetSprite(@nargs=2, @blob="01000000 2d000000");
moveCircle(@nargs=4, @blob="f02374c9 f02374c9 f02374c9 00000000");
callAsync(@nargs=1, @blob="0c000000 52436972 30305f61 74000000");
+120: // 180
moveVelRel(@nargs=2, @blob="db0fc93f 00000000");
moveVelRelTime(@nargs=4, @blob="3c000000 04000000 f02374c9 0000803f");
wait(@nargs=1, @blob="3c000000");
moveVelRelTime(@nargs=4, @blob="78000000 01000000 f02374c9 000080bf");
jmp(@nargs=2, @blob="2c000000 b4000000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff b4000000");
ret(@blob="");
}
void Cir01() {
stackAlloc(@nargs=1, @blob="18000000");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="14000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@mask=0b10, @nargs=2, @blob="00000000 00000000");
flagSet(@nargs=1, @blob="0f000000");
setHurtbox(@nargs=2, @blob="0000c041 0000c041");
setHitbox(@nargs=2, @blob="00008041 00008041");
playSound(@nargs=1, @blob="22000000");
dropClear(@blob="");
dropExtra(@nargs=2, @blob="01000000 0a000000");
dropExtra(@nargs=2, @blob="02000000 0a000000");
dropArea(@nargs=2, @blob="00004042 00004042");
moveCircle(
@mask=0b1,
@nargs=4,
@blob="00381cc6 db0fc93d 00009042 000080bf",
);
moveVelRel(@nargs=2, @blob="db0fc9bf 0000803f");
moveVelRelTime(@nargs=4, @blob="3c000000 04000000 f02374c9 00000000");
+60: // 60
flagClear(@nargs=1, @blob="0f000000");
anmSetSprite(@nargs=2, @blob="01000000 2d000000");
moveCircle(@nargs=4, @blob="f02374c9 f02374c9 f02374c9 00000000");
callAsync(@nargs=1, @blob="0c000000 52436972 30315f61 74000000");
+500: // 560
moveVelRel(@nargs=2, @blob="db0fc9bf 00000000");
moveVelRelTime(@nargs=4, @blob="78000000 01000000 f02374c9 0000803f");
jmp(@nargs=2, @blob="2c000000 30020000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 30020000");
ret(@blob="");
}
void Cir02() {
stackAlloc(@nargs=1, @blob="18000000");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="14000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@mask=0b10, @nargs=2, @blob="00000000 00000000");
setHurtbox(@nargs=2, @blob="0000c041 0000c041");
setHitbox(@nargs=2, @blob="00008041 00008041");
dropClear(@blob="");
dropExtra(@nargs=2, @blob="01000000 01000000");
dropExtra(@nargs=2, @blob="02000000 02000000");
dropArea(@nargs=2, @blob="00004042 00004042");
anmSetSprite(@nargs=2, @blob="01000000 2d000000");
callAsync(@nargs=1, @blob="0c000000 52436972 30325f61 74000000");
moveVel(@nargs=2, @blob="db0fc93f 00004040");
wait(@nargs=1, @blob="3c000000");
moveVelTime(@nargs=4, @blob="3c000000 00000000 00000000 f02374c9");
wait(@nargs=1, @blob="3c000000");
moveVelTime(@nargs=4, @blob="3c000000 00000000 db0fc93f f02374c9");
jmp(@nargs=2, @blob="2c000000 00000000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 00000000");
ret(@blob="");
}
void GCir00() {
stackAlloc(@nargs=1, @blob="04000000");
dropMain(@nargs=1, @blob="03000000");
call(
@nargs=4,
@blob="08000000 43697230 30000000 69690000 54000000 69690000 2f000000 69690000 01000000",
);
delete(@blob="");
}
void GCir01() {
stackAlloc(@nargs=1, @blob="04000000");
dropMain(@nargs=1, @blob="03000000");
call(
@nargs=4,
@blob="08000000 43697230 31000000 69690000 54000000 69690000 2f000000 69690000 01000000",
);
delete(@blob="");
}
void GCir02() {
stackAlloc(@nargs=1, @blob="04000000");
dropMain(@nargs=1, @blob="03000000");
call(
@nargs=4,
@blob="08000000 43697230 32000000 69690000 48000000 69690000 2f000000 69690000 01000000",
);
delete(@blob="");
}
void GPhantom00() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="02000000");
anmSetSprite(@nargs=2, @blob="01000000 2f000000");
call(
@nargs=3,
@blob="0c000000 5068616e 746f6d30 30000000 69690000 60000000 69690000 01000000",
);
delete(@blob="");
}
void GPhantom01() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="02000000");
anmSetSprite(@nargs=2, @blob="01000000 2f000000");
call(
@nargs=3,
@blob="0c000000 5068616e 746f6d30 31000000 69690000 60000000 69690000 01000000",
);
delete(@blob="");
}
void GPhantom02() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="03000000");
anmSetSprite(@nargs=2, @blob="01000000 2f000000");
call(
@nargs=3,
@blob="0c000000 5068616e 746f6d30 32000000 69690000 60000000 69690000 01000000",
);
delete(@blob="");
}
void MainBossDebug() {
stackAlloc(@nargs=1, @blob="00000000");
+60: // 60
dialogRead(@nargs=1, @blob="ffffffff");
dialogWait(@blob="");
enmCreateA(
@nargs=6,
@blob="08000000 426f7373 00000000 00005843 00008042 28000000 e8030000 01000000",
);
ins_500(@nargs=1, @blob="64000000");
dialogWait(@blob="");
deathWait(@blob="");
+60: // 120
dialogRead(@nargs=1, @blob="01000000");
dialogWait(@blob="");
ret(@blob="");
ret(@blob="");
}
void MainMBossDebug() {
stackAlloc(@nargs=1, @blob="00000000");
enmCreateA(
@nargs=6,
@blob="08000000 4d426f73 73000000 00004043 000000c2 28000000 10270000 01000000",
);
jmp(@nargs=2, @blob="2c000000 00000000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 00000000");
ret(@blob="");
}
void MainMsgDebug() {
stackAlloc(@nargs=1, @blob="00000000");
ins_500(@nargs=1, @blob="64000000");
+120: // 120
dialogRead(@nargs=1, @blob="01000000");
dialogWait(@blob="");
+1: // 121
dialogWait(@blob="");
+60: // 181
dialogRead(@nargs=1, @blob="01000000");
dialogWait(@blob="");
jmp(@nargs=2, @blob="28000000 55100000");
+4000: // 4181
nop(@blob="");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="dcffffff b5000000");
ret(@blob="");
}
void MainSub00() {
stackAlloc(@nargs=1, @blob="10000000");
pushi(@nargs=1, @blob="10000000");
seti(@mask=0b1, @nargs=1, @blob="0c000000");
pushi(@nargs=1, @blob="60ffffff");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="00000000");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushi(@nargs=1, @blob="60000000");
setf(@mask=0b1, @nargs=1, @blob="00008040");
jmp(@nargs=2, @blob="a0010000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
mulf(@blob="");
addf(@blob="");
enmCreate(
@mask=0b110,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30300000 00000000 000080bf 32000000 e8030000 02000000",
);
wait(@nargs=1, @blob="05000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushi(@nargs=1, @blob="04000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushi(@nargs=1, @blob="04000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
deci(@mask=0b1, @nargs=1, @blob="0c000000");
jmpNeq(@nargs=2, @blob="64feffff 00000000");
wait(@nargs=1, @blob="e6000000");
pushi(@nargs=1, @blob="10000000");
seti(@mask=0b1, @nargs=1, @blob="0c000000");
pushi(@nargs=1, @blob="a0000000");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="10000000");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushi(@nargs=1, @blob="80000000");
setf(@mask=0b1, @nargs=1, @blob="00008040");
jmp(@nargs=2, @blob="a0010000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
mulf(@blob="");
addf(@blob="");
enmCreate(
@mask=0b110,
@nargs=6,
@blob="0c000000 52506861 6e746f6d 30300000 00000000 000080bf 32000000 e8030000 02000000",
);
wait(@nargs=1, @blob="05000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="14000000");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushi(@nargs=1, @blob="04000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushi(@nargs=1, @blob="06000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
deci(@mask=0b1, @nargs=1, @blob="0c000000");
jmpNeq(@nargs=2, @blob="64feffff 00000000");
wait(@nargs=1, @blob="f0000000");
pushi(@nargs=1, @blob="08000000");
seti(@mask=0b1, @nargs=1, @blob="0c000000");
pushi(@nargs=1, @blob="60ffffff");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="10000000");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushi(@nargs=1, @blob="a0000000");
setf(@mask=0b1, @nargs=1, @blob="00008040");
jmp(@nargs=2, @blob="7c020000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
mulf(@blob="");
addf(@blob="");
enmCreate(
@mask=0b110,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30300000 00000000 000080bf 32000000 e8030000 02000000",
);
wait(@nargs=1, @blob="05000000");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
mulf(@blob="");
addf(@blob="");
pushi(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
subf(@blob="");
enmCreate(
@mask=0b110,
@nargs=6,
@blob="0c000000 52506861 6e746f6d 30300000 000080bf 000080bf 32000000 e8030000 02000000",
);
wait(@nargs=1, @blob="05000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushi(@nargs=1, @blob="04000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushi(@nargs=1, @blob="06000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
deci(@mask=0b1, @nargs=1, @blob="0c000000");
jmpNeq(@nargs=2, @blob="88fdffff 00000000");
ret(@blob="");
}
void MainSub00b() {
stackAlloc(@nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="06000000");
seti(@mask=0b1, @nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="58010000 00000000");
pushi(@nargs=1, @blob="20000000");
pushi(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="20000000");
muli(@blob="");
addi(@blob="");
enmCreateM(
@mask=0b100,
@nargs=6,
@blob="08000000 52436972 30300000 00008042 000080bf 64000000 e8030000 02000000",
);
wait(@nargs=1, @blob="05000000");
pushi(@nargs=1, @blob="20000000");
pushi(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="20000000");
muli(@blob="");
addi(@blob="");
enmCreateM(
@mask=0b100,
@nargs=6,
@blob="08000000 52436972 30300000 00008043 000080bf 64000000 e8030000 02000000",
);
wait(@nargs=1, @blob="05000000");
deci(@mask=0b1, @nargs=1, @blob="00000000");
jmpNeq(@nargs=2, @blob="acfeffff 00000000");
ret(@blob="");
}
void MainSub01() {
stackAlloc(@nargs=1, @blob="00000000");
wait(@nargs=1, @blob="3c000000");
enmCreateA(
@nargs=6,
@blob="08000000 42436972 30300000 0000c0c2 00000043 e8030000 e8030000 02000000",
);
enmCreateA(
@nargs=6,
@blob="08000000 42436972 30300000 0000c042 00000043 e8030000 e8030000 02000000",
);
wait(@nargs=1, @blob="a0000000");
enmCreateA(
@nargs=6,
@blob="08000000 42436972 30300000 00000000 00000043 e8030000 e8030000 02000000",
);
wait(@nargs=1, @blob="a0000000");
enmCreateA(
@nargs=6,
@blob="08000000 42436972 30300000 00000043 00000043 bc020000 e8030000 02000000",
);
wait(@nargs=1, @blob="a0000000");
enmCreateA(
@nargs=6,
@blob="08000000 42436972 30300000 000000c3 00000043 bc020000 e8030000 02000000",
);
wait(@nargs=1, @blob="aa000000");
enmCreateA(
@nargs=6,
@blob="08000000 42436972 30300000 00007042 00000043 bc020000 e8030000 02000000",
);
wait(@nargs=1, @blob="a0000000");
enmCreateA(
@nargs=6,
@blob="08000000 42436972 30300000 000070c2 00000043 bc020000 e8030000 02000000",
);
wait(@nargs=1, @blob="a0000000");
enmCreateA(
@nargs=6,
@blob="08000000 42436972 30300000 00000000 00000043 bc020000 e8030000 02000000",
);
wait(@nargs=1, @blob="b4000000");
enmCreateA(
@nargs=6,
@blob="08000000 42436972 30300000 0000c0c2 00000043 58020000 e8030000 02000000",
);
enmCreateA(
@nargs=6,
@blob="08000000 42436972 30300000 0000c042 00000043 58020000 e8030000 02000000",
);
ret(@blob="");
}
void MainSub02() {
stackAlloc(@nargs=1, @blob="04000000");
wait(@nargs=1, @blob="3c000000");
enmCreateA(
@nargs=6,
@blob="08000000 42436972 30310000 00000000 00000043 a00f0000 e8030000 02000000",
);
callAsync(@nargs=1, @blob="0c000000 4d61696e 53756230 32620000");
pushi(@nargs=1, @blob="06000000");
seti(@mask=0b1, @nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="4c030000 00000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateA(
@mask=0b100,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30310000 000060c3 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateA(
@mask=0b100,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30310000 000060c3 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateA(
@mask=0b100,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30310000 000060c3 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateA(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30310000 000060c3 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateA(
@mask=0b100,
@nargs=6,
@blob="0c000000 52506861 6e746f6d 30310000 000060c3 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
deci(@mask=0b1, @nargs=1, @blob="00000000");
jmpNeq(@nargs=2, @blob="b8fcffff 00000000");
ret(@blob="");
}
void MainSub02b() {
stackAlloc(@nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="06000000");
seti(@mask=0b1, @nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="4c030000 00000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAM(
@mask=0b100,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30310000 00006043 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAM(
@mask=0b100,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30310000 00006043 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAM(
@mask=0b100,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30310000 00006043 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAM(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30310000 00006043 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAM(
@mask=0b100,
@nargs=6,
@blob="0c000000 52506861 6e746f6d 30310000 00006043 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
deci(@mask=0b1, @nargs=1, @blob="00000000");
jmpNeq(@nargs=2, @blob="b8fcffff 00000000");
ret(@blob="");
}
void MainSub03() {
stackAlloc(@nargs=1, @blob="00000000");
playSound(@nargs=1, @blob="35000000");
wait(@nargs=1, @blob="3c000000");
enmCreateA(
@nargs=6,
@blob="08000000 4d426f73 73000000 00004043 000000c2 b80b0000 e8030000 02000000",
);
ret(@blob="");
}
void MainSub04() {
stackAlloc(@nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="28000000");
seti(@mask=0b1, @nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="60010000 00000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAMF(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30320000 00006043 000080bf 64000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAF(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30320000 000060c3 000080bf 64000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
deci(@mask=0b1, @nargs=1, @blob="00000000");
jmpNeq(@nargs=2, @blob="a4feffff 00000000");
ret(@blob="");
}
void MainSub05() {
stackAlloc(@nargs=1, @blob="08000000");
pushi(@nargs=1, @blob="08000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="60ffffff");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAMF(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30320000 00006043 000080bf 64000000 e8030000 02000000",
);
jmp(@nargs=2, @blob="a8000000 00000000");
enmCreateAF(
@mask=0b10,
@nargs=6,
@blob="08000000 42436972 30320000 00000000 000000c2 50000000 e8030000 02000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="10000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
wait(@nargs=1, @blob="14000000");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="5cffffff 00000000");
pushi(@nargs=1, @blob="08000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="a0000000");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAF(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30320000 000060c3 000080bf 64000000 e8030000 02000000",
);
jmp(@nargs=2, @blob="a8000000 00000000");
enmCreateAMF(
@mask=0b10,
@nargs=6,
@blob="08000000 42436972 30320000 00000000 000000c2 50000000 e8030000 02000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="10000000");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
wait(@nargs=1, @blob="14000000");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="5cffffff 00000000");
pushi(@nargs=1, @blob="08000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="e0ffffff");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAMF(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30320000 00006043 000080bf 64000000 e8030000 02000000",
);
jmp(@nargs=2, @blob="a8000000 00000000");
enmCreateAMF(
@mask=0b10,
@nargs=6,
@blob="08000000 42436972 30320000 00000000 000000c2 50000000 e8030000 02000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="10000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
wait(@nargs=1, @blob="14000000");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="5cffffff 00000000");
pushi(@nargs=1, @blob="08000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="20000000");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAF(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30320000 000060c3 000080bf 64000000 e8030000 02000000",
);
jmp(@nargs=2, @blob="a8000000 00000000");
enmCreateAF(
@mask=0b10,
@nargs=6,
@blob="08000000 42436972 30320000 00000000 000000c2 50000000 e8030000 02000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="10000000");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
wait(@nargs=1, @blob="14000000");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="5cffffff 00000000");
pushi(@nargs=1, @blob="08000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="60ffffff");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAMF(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30320000 00006043 000080bf 64000000 e8030000 02000000",
);
jmp(@nargs=2, @blob="a8000000 00000000");
enmCreateAF(
@mask=0b10,
@nargs=6,
@blob="08000000 42436972 30320000 00000000 000000c2 50000000 e8030000 02000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="10000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
wait(@nargs=1, @blob="14000000");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="5cffffff 00000000");
pushi(@nargs=1, @blob="08000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="a0000000");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAF(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30320000 000060c3 000080bf 64000000 e8030000 02000000",
);
jmp(@nargs=2, @blob="a8000000 00000000");
enmCreateAMF(
@mask=0b10,
@nargs=6,
@blob="08000000 42436972 30320000 00000000 000000c2 50000000 e8030000 02000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="10000000");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
wait(@nargs=1, @blob="14000000");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="5cffffff 00000000");
pushi(@nargs=1, @blob="04000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="e0ffffff");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAMF(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30320000 00006043 000080bf 64000000 e8030000 02000000",
);
jmp(@nargs=2, @blob="a8000000 00000000");
enmCreateAMF(
@mask=0b10,
@nargs=6,
@blob="08000000 42436972 30320000 00000000 000000c2 50000000 e8030000 02000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="10000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
wait(@nargs=1, @blob="14000000");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="5cffffff 00000000");
pushi(@nargs=1, @blob="04000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="20000000");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAF(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30320000 000060c3 000080bf 64000000 e8030000 02000000",
);
jmp(@nargs=2, @blob="a8000000 00000000");
enmCreateAF(
@mask=0b10,
@nargs=6,
@blob="08000000 42436972 30320000 00000000 000000c2 50000000 e8030000 02000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="10000000");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
wait(@nargs=1, @blob="14000000");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="5cffffff 00000000");
ret(@blob="");
}
void MainSub06() {
stackAlloc(@nargs=1, @blob="04000000");
callAsync(@nargs=1, @blob="0c000000 4d61696e 53756230 36620000");
callAsync(@nargs=1, @blob="0c000000 4d61696e 53756230 36630000");
pushi(@nargs=1, @blob="08000000");
seti(@mask=0b1, @nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="4c030000 00000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateA(
@mask=0b100,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30310000 000060c3 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateA(
@mask=0b100,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30310000 000060c3 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateA(
@mask=0b100,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30310000 000060c3 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateA(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30310000 000060c3 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateA(
@mask=0b100,
@nargs=6,
@blob="0c000000 52506861 6e746f6d 30310000 000060c3 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
deci(@mask=0b1, @nargs=1, @blob="00000000");
jmpNeq(@nargs=2, @blob="b8fcffff 00000000");
ret(@blob="");
}
void MainSub06b() {
stackAlloc(@nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="06000000");
seti(@mask=0b1, @nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="4c030000 00000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAM(
@mask=0b100,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30310000 00006043 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAM(
@mask=0b100,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30310000 00006043 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAM(
@mask=0b100,
@nargs=6,
@blob="0c000000 42506861 6e746f6d 30310000 00006043 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAM(
@mask=0b100,
@nargs=6,
@blob="0c000000 47506861 6e746f6d 30310000 00006043 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="80000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="40000000");
mulf(@blob="");
addf(@blob="");
enmCreateAM(
@mask=0b100,
@nargs=6,
@blob="0c000000 52506861 6e746f6d 30310000 00006043 000080bf 1e000000 e8030000 02000000",
);
wait(@nargs=1, @blob="14000000");
deci(@mask=0b1, @nargs=1, @blob="00000000");
jmpNeq(@nargs=2, @blob="b8fcffff 00000000");
ret(@blob="");
}
void MainSub06c() {
stackAlloc(@nargs=1, @blob="00000000");
enmCreateA(
@nargs=6,
@blob="08000000 42436972 30310000 00000000 00000043 b80b0000 e8030000 02000000",
);
wait(@nargs=1, @blob="90010000");
enmCreateA(
@nargs=6,
@blob="08000000 42436972 30310000 00000000 00000043 a00f0000 e8030000 02000000",
);
ret(@blob="");
}
void MapleEnemy() {
stackAlloc(@nargs=1, @blob="04000000");
flagSet(@nargs=1, @blob="20000000");
anmPlayAbs(@nargs=2, @blob="00000000 ab000000");
+3: // 3
jmp(@nargs=2, @blob="e8ffffff 00000000");
delete(@blob="");
}
void PCir00() {
stackAlloc(@nargs=1, @blob="04000000");
call(
@nargs=4,
@blob="08000000 43697230 30000000 69690000 5a000000 69690000 30000000 69690000 01000000",
);
delete(@blob="");
}
void PCir01() {
stackAlloc(@nargs=1, @blob="04000000");
call(
@nargs=4,
@blob="08000000 43697230 31000000 69690000 5a000000 69690000 30000000 69690000 01000000",
);
delete(@blob="");
}
void PCir02() {
stackAlloc(@nargs=1, @blob="04000000");
call(
@nargs=4,
@blob="08000000 43697230 32000000 69690000 4e000000 69690000 30000000 69690000 01000000",
);
delete(@blob="");
}
void Phantom00() {
stackAlloc(@nargs=1, @blob="08000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@mask=0b10, @nargs=2, @blob="00000000 00000000");
flagSet(@nargs=1, @blob="03000000");
playSound(@nargs=1, @blob="2e000000");
setHurtbox(@nargs=2, @blob="0000c041 0000c041");
setHitbox(@nargs=2, @blob="00008041 00008041");
wait(@nargs=1, @blob="0c000000");
flagSet(@nargs=1, @blob="40000000");
flagClear(@nargs=1, @blob="03000000");
setInterrupt(
@nargs=4,
@blob="00000000 00000000 ffffffff 10000000 5068616e 746f6d30 305f6174 00000000",
);
moveVel(@mask=0b1, @nargs=2, @blob="00381cc6 00000000");
moveVelTime(@nargs=4, @blob="3c000000 00000000 f02374c9 cdccccbd");
+160: // 160
nop(@blob="");
call(@nargs=1, @blob="10000000 5068616e 746f6d30 305f6174 32000000");
ret(@blob="");
}
void Phantom00_at() {
stackAlloc(@nargs=1, @blob="00000000");
call(@nargs=1, @blob="10000000 5068616e 746f6d30 305f6174 42000000");
dropClear(@blob="");
dropExtra(@nargs=2, @blob="02000000 02000000");
dropArea(@nargs=2, @blob="00004042 00004042");
dropItems(@blob="");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
delete(@blob="");
ret(@blob="");
}
void Phantom00_at2() {
stackAlloc(@nargs=1, @blob="00000000");
call(@nargs=1, @blob="10000000 5068616e 746f6d30 305f6174 42000000");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
delete(@blob="");
ret(@blob="");
}
void Phantom00_atB() {
stackAlloc(@nargs=1, @blob="00000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 02000000");
etSprite(@nargs=3, @blob="00000000 02000000 06000000");
etCountD(
@nargs=9,
@blob="00000000 0c000000 10000000 14000000 18000000 01000000 03000000 06000000 08000000",
);
etAngle(@nargs=3, @blob="00000000 00000000 00000000");
etSpeedD(
@nargs=9,
@blob="00000000 00004040 00004040 00008040 0000a040 0000c03f 0000c03f 0000c03f 0000c03f",
);
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 01000000 01000000 c1bdf0ff c1bdf0ff f02374c9 f02374c9",
);
etOn(@nargs=1, @blob="00000000");
ret(@blob="");
}
void Phantom01() {
stackAlloc(@nargs=1, @blob="0c000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@mask=0b10, @nargs=2, @blob="00000000 00000000");
flagSet(@nargs=1, @blob="03000000");
setHurtbox(@nargs=2, @blob="0000c041 0000c041");
setHitbox(@nargs=2, @blob="00008041 00008041");
wait(@nargs=1, @blob="0c000000");
flagSet(@nargs=1, @blob="40000000");
flagClear(@nargs=1, @blob="03000000");
setInterrupt(
@nargs=4,
@blob="00000000 00000000 ffffffff 10000000 5068616e 746f6d30 315f6174 00000000",
);
pushf(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="20000000");
divf(@blob="");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
moveVelRel(@mask=0b1, @nargs=2, @blob="00000041 0000803f");
moveEllipse(
@mask=0b10001,
@nargs=6,
@blob="00381cc6 5077563d 00000000 0000803e 00000041 00000000",
);
jmp(@nargs=2, @blob="2c000000 00000000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 00000000");
ret(@blob="");
}
void Phantom01_at() {
stackAlloc(@nargs=1, @blob="00000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 00000000");
etSprite(@nargs=3, @blob="00000000 02000000 06000000");
etCountD(
@nargs=9,
@blob="00000000 01000000 01000000 03000000 03000000 01000000 03000000 05000000 05000000",
);
etAngle(@nargs=3, @blob="00000000 00000000 920a863f");
etSpeedD(
@nargs=9,
@blob="00000000 66660640 66660640 66664640 33338340 9a99d93f 9a99d93f 9a99d93f 9a99d93f",
);
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 01000000 01000000 c1bdf0ff c1bdf0ff f02374c9 f02374c9",
);
etOn(@nargs=1, @blob="00000000");
dropItems(@blob="");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
delete(@blob="");
ret(@blob="");
}
void Phantom01_at2() {
stackAlloc(@nargs=1, @blob="00000000");
call(@nargs=1, @blob="10000000 5068616e 746f6d30 315f6174 42000000");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
delete(@blob="");
ret(@blob="");
}
void Phantom01_atB() {
stackAlloc(@nargs=1, @blob="00000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 02000000");
etSprite(@nargs=3, @blob="00000000 02000000 06000000");
etCount(@nargs=3, @blob="00000000 01000000 03000000");
etAngle(@nargs=3, @blob="00000000 00000000 00000000");
etSpeed(@nargs=3, @blob="00000000 66660640 9a99d93f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 01000000 01000000 c1bdf0ff c1bdf0ff f02374c9 f02374c9",
);
etOn(@nargs=1, @blob="00000000");
ret(@blob="");
}
void Phantom02() {
stackAlloc(@nargs=1, @blob="0c000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@mask=0b10, @nargs=2, @blob="00000000 00000000");
flagSet(@nargs=1, @blob="03000000");
setHurtbox(@nargs=2, @blob="0000c041 0000c041");
setHitbox(@nargs=2, @blob="00008041 00008041");
wait(@nargs=1, @blob="0c000000");
flagSet(@nargs=1, @blob="40000000");
flagClear(@nargs=1, @blob="03000000");
setInterrupt(
@nargs=4,
@blob="00000000 00000000 ffffffff 10000000 5068616e 746f6d30 325f6174 00000000",
);
pushf(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="20000000");
divf(@blob="");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
moveVelRel(@mask=0b1, @nargs=2, @blob="00000041 0000c03f");
moveEllipse(
@mask=0b10001,
@nargs=6,
@blob="00381cc6 5077563d 00000000 0000803e 00000041 00000000",
);
callAsync(@nargs=1, @blob="10000000 5068616e 746f6d30 325f6174 32000000");
jmp(@nargs=2, @blob="2c000000 00000000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 00000000");
ret(@blob="");
}
void Phantom02_at() {
stackAlloc(@nargs=1, @blob="0c000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 00000000");
etSprite(@nargs=3, @blob="00000000 02000000 06000000");
etCountD(
@nargs=9,
@blob="00000000 01000000 01000000 03000000 05000000 01000000 03000000 05000000 05000000",
);
etAngle(@nargs=3, @blob="00000000 00000000 920a863f");
etSpeedD(
@nargs=9,
@blob="00000000 66660640 66660640 66664640 33338340 9a99d93f 9a99d93f 9a99d93f 9a99d93f",
);
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 01000000 01000000 c1bdf0ff c1bdf0ff f02374c9 f02374c9",
);
etOn(@nargs=1, @blob="00000000");
dropItems(@blob="");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
delete(@blob="");
ret(@blob="");
}
void Phantom02_at2() {
stackAlloc(@nargs=1, @blob="0c000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 02000000");
etSprite(@nargs=3, @blob="00000000 18000000 0f000000");
etCount(@nargs=3, @blob="00000000 01000000 01000000");
etAngle(@nargs=3, @blob="00000000 00000000 00000000");
etSpeed(@nargs=3, @blob="00000000 00004040 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 01000000 01000000 c1bdf0ff c1bdf0ff f02374c9 f02374c9",
);
pushi(@mask=0b1, @nargs=1, @blob="f0d8ffff");
pushi(@nargs=1, @blob="3c000000");
modi(@blob="");
wait(@mask=0b1, @nargs=1, @blob="ffffffff");
jmp(@nargs=2, @blob="d0010000 00000000");
diffI(
@mask=0b1,
@nargs=5,
@blob="08000000 10000000 10000000 18000000 20000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="20010000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
pushf(@nargs=1, @blob="0000803f");
mulf(@blob="");
pushf(@nargs=1, @blob="0000003f");
addf(@blob="");
etSpeed(@mask=0b10, @nargs=3, @blob="00000000 000080bf 00000000");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00000000 00000000");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="d80fc93e");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
validRad(@mask=0b1, @nargs=1, @blob="00000000");
deci(@mask=0b1, @nargs=1, @blob="08000000");
jmpNeq(@nargs=2, @blob="e4feffff 00000000");
diffWait(@nargs=4, @blob="f0000000 3c000000 3c000000 3c000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="34feffff 00000000");
delete(@blob="");
ret(@blob="");
}
void RCir00() {
stackAlloc(@nargs=1, @blob="04000000");
dropMain(@nargs=1, @blob="01000000");
call(
@nargs=4,
@blob="08000000 43697230 30000000 69690000 51000000 69690000 2e000000 69690000 01000000",
);
delete(@blob="");
}
void RCir00_at() {
stackAlloc(@nargs=1, @blob="0c000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 05000000");
etSprite(@nargs=3, @blob="00000000 0c000000 03000000");
etCountD(
@nargs=9,
@blob="00000000 10000000 10000000 10000000 10000000 01000000 01000000 01000000 01000000",
);
etAngle(@nargs=3, @blob="00000000 db0fc93f 5077563d");
etSpeedD(
@nargs=9,
@blob="00000000 00004040 00004040 00004040 00004040 0000803f 0000803f 0000803f 0000803f",
);
etSound(@nargs=3, @blob="00000000 07000000 ffffffff");
etDist(@nargs=2, @blob="00000000 00000042");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etNew(@nargs=1, @blob="01000000");
etAim(@nargs=2, @blob="01000000 00000000");
etSprite(@nargs=3, @blob="01000000 02000000 02000000");
etCount(@nargs=3, @blob="01000000 02000000 02000000");
etAngle(@nargs=3, @blob="01000000 00000000 db0fc93f");
etSpeed(@nargs=3, @blob="01000000 00000040 0000803f");
etEx(
@nargs=8,
@blob="01000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
diffF(
@mask=0b1,
@nargs=5,
@blob="00008040 0000803f 9a99993f 00000040 00004040",
);
etEx(
@mask=0b10000000,
@nargs=8,
@blob="01000000 01000000 00000000 20000000 5a000000 01000000 00000000 00008040",
);
callAsync(@nargs=1, @blob="0c000000 52436972 30305f61 74320000");
diffI(
@mask=0b1,
@nargs=5,
@blob="08000000 03000000 64000000 14000000 14000000",
);
jmp(@nargs=2, @blob="4c000000 00000000");
etOn(@nargs=1, @blob="00000000");
diffWait(@nargs=4, @blob="78000000 3c000000 1e000000 14000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="b8ffffff 00000000");
ret(@blob="");
}
void RCir00_at2() {
stackAlloc(@nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="4c000000 00000000");
etOn(@nargs=1, @blob="01000000");
diffWait(@nargs=4, @blob="78000000 50000000 1e000000 1e000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="b8ffffff 00000000");
ret(@blob="");
}
void RCir01() {
stackAlloc(@nargs=1, @blob="04000000");
dropMain(@nargs=1, @blob="01000000");
call(
@nargs=4,
@blob="08000000 43697230 31000000 69690000 51000000 69690000 2e000000 69690000 01000000",
);
delete(@blob="");
}
void RCir01_at() {
stackAlloc(@nargs=1, @blob="0c000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 05000000");
etSprite(@nargs=3, @blob="00000000 0c000000 03000000");
etCountD(
@nargs=9,
@blob="00000000 10000000 10000000 14000000 14000000 01000000 01000000 01000000 01000000",
);
etAngle(@nargs=3, @blob="00000000 db0fc93f 5077563d");
etSpeedD(
@nargs=9,
@blob="00000000 00004040 00004040 00008040 0000a040 0000803f 0000803f 0000803f 0000803f",
);
etSound(@nargs=3, @blob="00000000 07000000 ffffffff");
etDist(@nargs=2, @blob="00000000 00000042");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etNew(@nargs=1, @blob="01000000");
etAim(@nargs=2, @blob="01000000 00000000");
etSprite(@nargs=3, @blob="01000000 02000000 02000000");
etCount(@nargs=3, @blob="01000000 02000000 02000000");
etAngle(@nargs=3, @blob="01000000 00000000 db0fc93f");
etSpeed(@nargs=3, @blob="01000000 00000040 0000803f");
etEx(
@nargs=8,
@blob="01000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="01000000 01000000 00000000 20000000 5a000000 01000000 00000000 00000040",
);
diffI(
@mask=0b1,
@nargs=5,
@blob="08000000 03000000 64000000 14000000 14000000",
);
jmp(@nargs=2, @blob="4c000000 00000000");
etOn(@nargs=1, @blob="00000000");
diffWait(@nargs=4, @blob="3c000000 0f000000 0a000000 0f000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="b8ffffff 00000000");
ret(@blob="");
}
void RCir01_at2() {
stackAlloc(@nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="4c000000 00000000");
etOn(@nargs=1, @blob="01000000");
diffWait(@nargs=4, @blob="3c000000 1e000000 0f000000 0f000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="b8ffffff 00000000");
ret(@blob="");
}
void RCir02() {
stackAlloc(@nargs=1, @blob="04000000");
dropMain(@nargs=1, @blob="01000000");
call(
@nargs=4,
@blob="08000000 43697230 32000000 69690000 45000000 69690000 2e000000 69690000 01000000",
);
delete(@blob="");
}
void RCir02_at() {
stackAlloc(@nargs=1, @blob="0c000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 00000000");
etSprite(@nargs=3, @blob="00000000 03000000 06000000");
etCountD(
@nargs=9,
@blob="00000000 03000000 05000000 05000000 05000000 01000000 01000000 01000000 01000000",
);
etAngle(@nargs=3, @blob="00000000 00000000 35fa8e3c");
etSpeedD(
@nargs=9,
@blob="00000000 00000040 00004040 00008040 00008040 0000003f 0000003f 0000003f 0000003f",
);
etSound(@nargs=3, @blob="00000000 07000000 ffffffff");
etDist(@nargs=2, @blob="00000000 00000042");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etNew(@nargs=1, @blob="01000000");
etAim(@nargs=2, @blob="01000000 00000000");
etSprite(@nargs=3, @blob="01000000 03000000 0a000000");
etCountD(
@nargs=9,
@blob="01000000 03000000 05000000 05000000 05000000 01000000 01000000 01000000 01000000",
);
etAngle(@nargs=3, @blob="01000000 00000000 35fa8e3c");
etSpeedD(
@nargs=9,
@blob="01000000 0000803f 0000803f 0000803f 0000803f 0000003f 0000003f 0000003f 0000003f",
);
etSound(@nargs=3, @blob="01000000 07000000 ffffffff");
etDist(@nargs=2, @blob="01000000 00000042");
etEx(
@nargs=8,
@blob="01000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
diffI(
@mask=0b1,
@nargs=5,
@blob="08000000 03000000 06000000 09000000 0c000000",
);
jmp(@nargs=2, @blob="ac000000 00000000");
etOn(@nargs=1, @blob="00000000");
etAngle(@nargs=3, @blob="01000000 db0fc93f 35fa8e3c");
etOn(@nargs=1, @blob="01000000");
etAngle(@nargs=3, @blob="01000000 db0fc9bf 35fa8e3c");
etOn(@nargs=1, @blob="01000000");
diffWait(@nargs=4, @blob="3c000000 1e000000 14000000 0f000000");
deci(@mask=0b1, @nargs=1, @blob="08000000");
jmpNeq(@nargs=2, @blob="58ffffff 00000000");
ret(@blob="");
}
void RCir02_at2() {
stackAlloc(@nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="4c000000 00000000");
etOn(@nargs=1, @blob="01000000");
diffWait(@nargs=4, @blob="3c000000 1e000000 0f000000 0f000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="b8ffffff 00000000");
ret(@blob="");
}
void RPhantom00() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@nargs=2, @blob="01000000 2e000000");
dropMain(@nargs=1, @blob="01000000");
call(
@nargs=3,
@blob="0c000000 5068616e 746f6d30 30000000 69690000 5e000000 69690000 01000000",
);
delete(@blob="");
}
void RPhantom01() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@nargs=2, @blob="01000000 2e000000");
dropMain(@nargs=1, @blob="01000000");
call(
@nargs=3,
@blob="0c000000 5068616e 746f6d30 31000000 69690000 5e000000 69690000 01000000",
);
delete(@blob="");
}
void RPhantom02() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@nargs=2, @blob="01000000 2e000000");
dropMain(@nargs=1, @blob="01000000");
call(
@nargs=3,
@blob="0c000000 5068616e 746f6d30 32000000 69690000 5e000000 69690000 01000000",
);
delete(@blob="");
}
void YPhantom00() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="02000000");
anmSetSprite(@nargs=2, @blob="01000000 30000000");
call(
@nargs=3,
@blob="0c000000 5068616e 746f6d30 30000000 69690000 64000000 69690000 01000000",
);
delete(@blob="");
}
void YPhantom01() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="02000000");
anmSetSprite(@nargs=2, @blob="01000000 30000000");
call(
@nargs=3,
@blob="0c000000 5068616e 746f6d30 31000000 69690000 64000000 69690000 01000000",
);
delete(@blob="");
}
void YPhantom02() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="02000000");
anmSetSprite(@nargs=2, @blob="01000000 30000000");
call(
@nargs=3,
@blob="0c000000 5068616e 746f6d30 32000000 69690000 64000000 69690000 01000000",
);
delete(@blob="");
}
void main() {
stackAlloc(@nargs=1, @blob="0c000000");
flagSet(@nargs=1, @blob="20000000");
enmCreateA(
@nargs=6,
@blob="0c000000 4d61706c 65456e65 6d790000 00000000 000080c1 14000000 e8030000 02000000",
);
wait(@nargs=1, @blob="3c000000");
wait(@nargs=1, @blob="5a000000");
call(@nargs=1, @blob="0c000000 4d61696e 53756230 30000000");
wait(@nargs=1, @blob="f4010000");
call(@nargs=1, @blob="0c000000 4d61696e 53756230 31000000");
wait(@nargs=1, @blob="90010000");
call(@nargs=1, @blob="0c000000 4d61696e 53756230 32000000");
wait(@nargs=1, @blob="a0000000");
call(@nargs=1, @blob="0c000000 4d61696e 53756230 33000000");
wait(@nargs=1, @blob="08070000");
call(@nargs=1, @blob="0c000000 4d61696e 53756230 34000000");
wait(@nargs=1, @blob="f0000000");
call(@nargs=1, @blob="0c000000 4d61696e 53756230 35000000");
wait(@nargs=1, @blob="64000000");
call(@nargs=1, @blob="0c000000 4d61696e 53756230 36000000");
wait(@nargs=1, @blob="c8000000");
call(@nargs=1, @blob="0c000000 4d61696e 53756230 30000000");
wait(@nargs=1, @blob="f0000000");
dialogRead(@nargs=1, @blob="00000000");
dialogWait(@blob="");
enmCreateA(
@nargs=6,
@blob="08000000 426f7373 00000000 00005843 00008042 28000000 e8030000 01000000",
);
deathWait(@blob="");
dialogRead(@nargs=1, @blob="01000000");
dialogWait(@blob="");
jmp(@nargs=2, @blob="2c000000 00000000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 00000000");
+40000: // 40000
nop(@blob="");
delete(@blob="");
}