touhou-reimpl/research/stage05boss.tecl

2766 lines
97 KiB
Plaintext

#pragma mapfile "utils/th11.eclm"
meta {}
void BBoss1Girl() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="02000000");
anmSetSprite(@nargs=2, @blob="01000000 2d000000");
pushi(@nargs=1, @blob="6d000000");
seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
call(
@nargs=3,
@blob="0c000000 426f7373 31476972 6c000000 69690000 00000000 69690000 01000000",
);
delete(@blob="");
}
void BBoss2Phantom() {
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="10000000 426f7373 32506861 6e746f6d 00000000 69690000 62000000 69690000 01000000",
);
delete(@blob="");
}
void BBoss3Phantom() {
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="10000000 426f7373 33506861 6e746f6d 00000000 69690000 62000000 69690000 01000000",
);
delete(@blob="");
}
void BBossCard2Phantom() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="00000000");
anmSetSprite(@nargs=2, @blob="01000000 2d000000");
call(
@nargs=3,
@blob="14000000 426f7373 43617264 32506861 6e746f6d 00000000 69690000 62000000 69690000 01000000",
);
delete(@blob="");
}
void BBossCard3Phantom() {
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="14000000 426f7373 43617264 33506861 6e746f6d 00000000 69690000 62000000 69690000 01000000",
);
delete(@blob="");
}
void BBossCard4Phantom() {
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="14000000 426f7373 43617264 34506861 6e746f6d 00000000 69690000 62000000 69690000 01000000",
);
delete(@blob="");
}
void Boss() {
stackAlloc(@nargs=1, @blob="04000000");
playSound(@nargs=1, @blob="35000000");
setBoss(@nargs=1, @blob="00000000");
anmSelect(@nargs=1, @blob="02000000");
anmSetMain(@nargs=2, @blob="00000000 0b000000");
flagSet(@nargs=1, @blob="40000000");
setHurtbox(@nargs=2, @blob="00004042 00004042");
setHitbox(@nargs=2, @blob="00004042 00004042");
setInvuln(@nargs=1, @blob="3c000000");
lifeSet(@nargs=1, @blob="d4300000");
movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
fog(@nargs=2, @blob="00002043 00ff8000");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
setChapter(@nargs=1, @blob="18000000");
+60: // 60
dialogWait(@blob="");
setChapter(@nargs=1, @blob="18000000");
playSound(@nargs=1, @blob="29000000");
anmSetSprite(@nargs=2, @blob="00000000 08000000");
+1: // 61
dialogWait(@blob="");
anmSetMain(@nargs=2, @blob="00000000 00000000");
setChapter(@nargs=1, @blob="18000000");
moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 0000c042");
lifeSet(@nargs=1, @blob="d4300000");
anmSelect(@nargs=1, @blob="00000000");
anmSetSprite(@nargs=2, @blob="01000000 5c000000");
anmSelect(@nargs=1, @blob="02000000");
call(@nargs=1, @blob="08000000 426f7373 31000000");
delete(@blob="");
}
void Boss1() {
stackAlloc(@nargs=1, @blob="00000000");
timerReset(@blob="");
lifeMarker(@nargs=3, @blob="00000000 0080bb44 80a0ffff");
setChapter(@nargs=1, @blob="18000000");
setInterrupt(
@nargs=4,
@blob="00000000 dc050000 b80b0000 0c000000 426f7373 43617264 31000000",
);
setChapter(@nargs=1, @blob="18000000");
stars(@nargs=1, @blob="03000000");
moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00000042");
callAsync(@nargs=1, @blob="0c000000 426f7373 3141744e 65617200");
callAsync(@nargs=1, @blob="0c000000 426f7373 31417432 00000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
playSound(@nargs=1, @blob="29000000");
wait(@nargs=1, @blob="3c000000");
callAsync(
@nargs=3,
@blob="0c000000 426f7373 31417431 00000000 66660000 fdad003d 69690000 06000000",
);
anmSelectedPlay(@nargs=1, @blob="00000000");
wait(@nargs=1, @blob="3c000000");
playSound(@nargs=1, @blob="29000000");
wait(@nargs=1, @blob="3c000000");
callAsync(
@nargs=3,
@blob="0c000000 426f7373 31417431 00000000 66660000 fdad00bd 69690000 0a000000",
);
wait(@nargs=1, @blob="a0000000");
jmp(@nargs=2, @blob="48010000 00000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
playSound(@nargs=1, @blob="29000000");
wait(@nargs=1, @blob="3c000000");
callAsync(
@nargs=3,
@blob="0c000000 426f7373 31417431 00000000 66660000 fdad003d 69690000 06000000",
);
anmSelectedPlay(@nargs=1, @blob="00000000");
wait(@nargs=1, @blob="3c000000");
playSound(@nargs=1, @blob="29000000");
wait(@nargs=1, @blob="3c000000");
callAsync(
@nargs=3,
@blob="0c000000 426f7373 31417431 00000000 66660000 fdad00bd 69690000 0a000000",
);
wait(@nargs=1, @blob="78000000");
moveRand(@nargs=3, @blob="3c000000 04000000 0000803f");
wait(@nargs=1, @blob="3c000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="bcfeffff 00000000");
ret(@blob="");
}
void Boss1At1() {
stackAlloc(@nargs=1, @blob="1c000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@mask=0b100, @nargs=3, @blob="00000000 05000000 04000000");
etCountD(
@nargs=9,
@blob="00000000 18000000 20000000 24000000 30000000 01000000 01000000 01000000 01000000",
);
etAngle(@nargs=3, @blob="00000000 00000000 00000000");
etSpeed(@nargs=3, @blob="00000000 00000000 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 00040000 14000000 c1bdf0ff f02374c9 f02374c9",
);
diffF(
@mask=0b1,
@nargs=5,
@blob="00008041 cdcc4c3d abaaaa3d abaaaa3d abaaaa3d",
);
etEx(
@mask=0b1000000,
@nargs=8,
@blob="00000000 03000000 00000000 04000000 3c000000 c1bdf0ff 00008041 f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00301cc6");
pushi(@nargs=1, @blob="18000000");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
etOffsetAbs(@mask=0b110, @nargs=3, @blob="00000000 000080bf 000080bf");
etProtectRange(@nargs=1, @blob="00004042");
pushi(@nargs=1, @blob="0e000000");
seti(@mask=0b1, @nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="20000000");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00004041");
pushi(@nargs=1, @blob="8c000000");
seti(@mask=0b1, @nargs=1, @blob="18000000");
jmp(@nargs=2, @blob="9c010000 00000000");
etEx(
@mask=0b10000,
@nargs=8,
@blob="00000000 02000000 00000000 00100000 18000000 c1bdf0ff f02374c9 f02374c9",
);
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00004041 00000000");
etDist(@mask=0b10, @nargs=2, @blob="00000000 00000041");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@nargs=1, @blob="00000042");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
pushi(@mask=0b1, @nargs=1, @blob="18000000");
pushi(@nargs=1, @blob="08000000");
subi(@blob="");
seti(@mask=0b1, @nargs=1, @blob="18000000");
validRad(@mask=0b1, @nargs=1, @blob="00004041");
wait(@nargs=1, @blob="03000000");
deci(@mask=0b1, @nargs=1, @blob="14000000");
jmpNeq(@nargs=2, @blob="68feffff 00000000");
ret(@blob="");
}
void Boss1At2() {
stackAlloc(@nargs=1, @blob="08000000");
diffI(
@mask=0b1,
@nargs=5,
@blob="04000000 08000000 10000000 11000000 12000000",
);
pushf(@nargs=1, @blob="db0f4940");
pushi(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="01000000");
subi(@blob="");
divf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="00000000");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
jmp(@nargs=2, @blob="c0000000 00000000");
enmCreate(
@nargs=6,
@blob="0c000000 52426f73 73314769 726c0000 00000000 00000000 64000000 e8030000 02000000",
);
playSound(@nargs=1, @blob="0f000000");
pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
wait(@nargs=1, @blob="03000000");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="44ffffff 00000000");
ret(@blob="");
}
void Boss1AtNear() {
stackAlloc(@nargs=1, @blob="04000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00000000");
wait(@nargs=1, @blob="78000000");
jmp(@nargs=2, @blob="04060000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00601bc6");
pushf(@nargs=1, @blob="0000c042");
lessf(@blob="");
jmpEq(@nargs=2, @blob="8c020000 00000000");
etNew(@nargs=1, @blob="02000000");
etAim(@nargs=2, @blob="02000000 03000000");
etSprite(@nargs=3, @blob="02000000 18000000 06000000");
etCount(@nargs=3, @blob="02000000 01000000 01000000");
etAngle(@nargs=3, @blob="02000000 00000000 00000000");
etSpeed(@nargs=3, @blob="02000000 00000000 0000c03f");
etEx(
@nargs=8,
@blob="02000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00301cc6");
pushi(@nargs=1, @blob="18000000");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
etOffsetAbs(@mask=0b110, @nargs=3, @blob="02000000 000080bf 000080bf");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="20000000");
divf(@blob="");
addf(@blob="");
etAngle(@mask=0b10, @nargs=3, @blob="02000000 000080bf 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="02000000 000080bf 00000000");
etOn(@nargs=1, @blob="02000000");
jmp(@nargs=2, @blob="e0020000 00000000");
etNew(@nargs=1, @blob="02000000");
etAim(@nargs=2, @blob="02000000 03000000");
etSprite(@nargs=3, @blob="02000000 18000000 06000000");
etCount(@nargs=3, @blob="02000000 01000000 01000000");
etAngle(@nargs=3, @blob="02000000 00000000 00000000");
etSpeed(@nargs=3, @blob="02000000 00000000 0000c03f");
etEx(
@nargs=8,
@blob="02000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00301cc6");
pushi(@nargs=1, @blob="18000000");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
etOffsetAbs(@mask=0b110, @nargs=3, @blob="02000000 000080bf 000080bf");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="20000000");
divf(@blob="");
addf(@blob="");
etAngle(@mask=0b10, @nargs=3, @blob="02000000 000080bf 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="02000000 000080bf 00000000");
etOn(@nargs=1, @blob="02000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="a60a063e");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
diffWait(@nargs=4, @blob="03000000 03000000 01000000 01000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="730f493d");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
wait(@nargs=1, @blob="01000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="00faffff 00000000");
ret(@blob="");
}
void Boss1Girl() {
stackAlloc(@nargs=1, @blob="10000000");
ins_278(@nargs=1, @blob="02000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetMain(@mask=0b10, @nargs=2, @blob="00000000 00000000");
flagSet(@nargs=1, @blob="4c040000");
setHurtbox(@nargs=2, @blob="0000c041 0000c041");
setHitbox(@nargs=2, @blob="00008041 00008041");
setInterrupt(
@nargs=4,
@blob="00000000 00000000 ffffffff 10000000 426f7373 31476972 6c446561 64000000",
);
moveVel(@mask=0b1, @nargs=2, @blob="00f41bc6 0000a040");
moveVelTime(@nargs=4, @blob="3c000000 00000000 f02374c9 00000000");
+60: // 60
nop(@blob="");
jmp(@nargs=2, @blob="2c000000 3c000000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 3c000000");
ret(@blob="");
}
void Boss1Girl2() {
stackAlloc(@nargs=1, @blob="08000000");
pushi(@nargs=1, @blob="71000000");
seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
anmSelect(@nargs=1, @blob="01000000");
flagSet(@nargs=1, @blob="03000000");
anmSetSprite(@nargs=2, @blob="02000000 77000000");
wait(@nargs=1, @blob="3c000000");
setInterrupt(
@nargs=4,
@blob="00000000 00000000 ffffffff 10000000 426f7373 31476972 6c446561 64320000",
);
anmSetMain(@nargs=2, @blob="00000000 14000000");
anmSetSprite(@nargs=2, @blob="01000000 30000000");
lifeSet(@nargs=1, @blob="64000000");
flagSet(@nargs=1, @blob="00040000");
flagClear(@nargs=1, @blob="03000000");
setHurtbox(@nargs=2, @blob="0000c041 0000c041");
setHitbox(@nargs=2, @blob="00008041 00008041");
callAsync(@nargs=1, @blob="10000000 426f7373 31476972 6c325f61 74000000");
jmp(@nargs=2, @blob="fc000000 00000000");
pushf(@nargs=1, @blob="0000003f");
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
pushf(@nargs=1, @blob="0000003f");
mulf(@blob="");
addf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="20000000");
divf(@blob="");
addf(@blob="");
moveVel(@mask=0b11, @nargs=2, @blob="000080bf 000080bf");
wait(@nargs=1, @blob="3c000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="08ffffff 00000000");
ret(@blob="");
}
void Boss1Girl2_at() {
stackAlloc(@nargs=1, @blob="00000000");
wait(@nargs=1, @blob="f4010000");
jmp(@nargs=2, @blob="28010000 00000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 00000000");
etSprite(@nargs=3, @blob="00000000 00000000 06000000");
etCount(@nargs=3, @blob="00000000 03000000 01000000");
etAngle(@nargs=3, @blob="00000000 00000000 db0f493e");
etSpeed(@nargs=3, @blob="00000000 0000803f 0000803f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00381cc6 00000000");
etOn(@nargs=1, @blob="00000000");
wait(@nargs=1, @blob="3c000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="dcfeffff 00000000");
ret(@blob="");
}
void Boss1GirlDead() {
stackAlloc(@nargs=1, @blob="00000000");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
moveVelTime(@nargs=4, @blob="01000000 00000000 f02374c9 00000000");
anmReset(@blob="");
anmSetSprite(@mask=0b10, @nargs=2, @blob="00000000 ffd8ffff");
flagSet(@nargs=1, @blob="03040000");
lifeSet(@nargs=1, @blob="a0860100");
anmSetSprite(@nargs=2, @blob="01000000 ffffffff");
pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
pushf(@nargs=1, @blob="db0f4940");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="02000000");
divf(@blob="");
addf(@blob="");
moveVel(@mask=0b1, @nargs=2, @blob="000080bf 00000040");
moveVelTime(@nargs=4, @blob="1e000000 00000000 f02374c9 00000000");
pushi(@nargs=1, @blob="3c000000");
pushi(@mask=0b1, @nargs=1, @blob="f0d8ffff");
pushi(@nargs=1, @blob="5a000000");
modi(@blob="");
addi(@blob="");
wait(@mask=0b1, @nargs=1, @blob="ffffffff");
pushi(@nargs=1, @blob="00000000");
seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
jmp(@nargs=2, @blob="9c000000 00000000");
pushi(@mask=0b1, @nargs=1, @blob="00d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="38000000 00000000");
call(@nargs=1, @blob="0c000000 426f7373 31476972 6c320000");
wait(@nargs=1, @blob="01000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="68ffffff 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 Boss1GirlDead2() {
stackAlloc(@nargs=1, @blob="00000000");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
moveVelTime(@nargs=4, @blob="01000000 00000000 f02374c9 00000000");
anmReset(@blob="");
anmSetSprite(@mask=0b10, @nargs=2, @blob="00000000 ffd8ffff");
flagSet(@nargs=1, @blob="03040000");
lifeSet(@nargs=1, @blob="a0860100");
anmSetSprite(@nargs=2, @blob="01000000 ffffffff");
unknown450(@nargs=1, @blob="e8030000");
pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
pushf(@nargs=1, @blob="db0f4940");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="02000000");
divf(@blob="");
addf(@blob="");
moveVel(@mask=0b1, @nargs=2, @blob="000080bf 00002040");
moveVelTime(@nargs=4, @blob="1e000000 00000000 f02374c9 00000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 08000000");
etSprite(@nargs=3, @blob="00000000 00000000 06000000");
etCountD(
@nargs=9,
@blob="00000000 05000000 0c000000 0c000000 14000000 01000000 01000000 01000000 01000000",
);
etAngle(@nargs=3, @blob="00000000 db0f49c0 db0f4940");
etSpeedD(
@nargs=9,
@blob="00000000 00000040 00000040 00000040 00004040 9a99193f 9a99193f 9a99193f 9a99193f",
);
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etOn(@nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="a0000000");
pushi(@mask=0b1, @nargs=1, @blob="f0d8ffff");
pushi(@nargs=1, @blob="5a000000");
modi(@blob="");
addi(@blob="");
wait(@mask=0b1, @nargs=1, @blob="ffffffff");
pushi(@nargs=1, @blob="00000000");
seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
jmp(@nargs=2, @blob="9c000000 00000000");
pushi(@mask=0b1, @nargs=1, @blob="00d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="38000000 00000000");
call(@nargs=1, @blob="0c000000 426f7373 31476972 6c320000");
wait(@nargs=1, @blob="01000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="68ffffff 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 Boss2() {
stackAlloc(@nargs=1, @blob="00000000");
timerReset(@blob="");
funcCall(@nargs=1, @blob="04000000");
enmKillAll(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="44000000 00000000");
etCancel(@nargs=1, @blob="00002044");
jmp(@nargs=2, @blob="2c000000 00000000");
etClear(@nargs=1, @blob="00002044");
spellEnd(@blob="");
killAllAsync(@blob="");
lifeSet(@nargs=1, @blob="08200000");
setInterrupt(
@nargs=4,
@blob="00000000 98080000 34080000 0c000000 426f7373 43617264 32000000",
);
lifeMarker(@nargs=3, @blob="00000000 00800945 80a0ffff");
setChapter(@nargs=1, @blob="19000000");
stars(@nargs=1, @blob="02000000");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="f8000000 00000000");
setInvuln(@nargs=1, @blob="3c000000");
dropClear(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="2c000000 00000000");
dropMain(@nargs=1, @blob="05000000");
dropExtra(@nargs=2, @blob="01000000 0a000000");
dropExtra(@nargs=2, @blob="02000000 0f000000");
dropArea(@nargs=2, @blob="00004042 00004042");
dropItems(@blob="");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
playSound(@nargs=1, @blob="0f000000");
wait(@nargs=1, @blob="3c000000");
movePosTime(@nargs=4, @blob="3c000000 04000000 0000f042 00000043");
+60: // 60
nop(@blob="");
moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00000042");
jmp(@nargs=2, @blob="28020000 3c000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
callAsync(@nargs=1, @blob="0c000000 426f7373 32417431 00000000");
wait(@nargs=1, @blob="14000000");
movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
wait(@nargs=1, @blob="3c000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
callAsync(
@nargs=3,
@blob="0c000000 426f7373 32417432 00000000 69690000 06000000 66660000 5077d6bc",
);
wait(@nargs=1, @blob="3c000000");
movePosTime(@nargs=4, @blob="3c000000 04000000 000000c3 00000043");
wait(@nargs=1, @blob="3c000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
callAsync(@nargs=1, @blob="0c000000 426f7373 32417431 00000000");
wait(@nargs=1, @blob="14000000");
movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
wait(@nargs=1, @blob="3c000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
callAsync(
@nargs=3,
@blob="0c000000 426f7373 32417432 00000000 69690000 06000000 66660000 5077d63c",
);
wait(@nargs=1, @blob="3c000000");
movePosTime(@nargs=4, @blob="3c000000 04000000 0000f042 00000043");
wait(@nargs=1, @blob="3c000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="dcfdffff 3c000000");
ret(@blob="");
}
void Boss2At1() {
stackAlloc(@nargs=1, @blob="14000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00000041");
diffI(
@mask=0b1,
@nargs=5,
@blob="10000000 05000000 05000000 05000000 09000000",
);
pushf(@nargs=1, @blob="db0fc940");
pushi(@mask=0b1, @nargs=1, @blob="10000000");
divf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
jmp(@nargs=2, @blob="2c010000 00000000");
circlePos(
@mask=0b111,
@nargs=4,
@blob="00000000 00008040 00000041 00004042",
);
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushi(@nargs=1, @blob="18000000");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="16000000");
addf(@blob="");
enmCreate(
@mask=0b110,
@nargs=6,
@blob="10000000 42426f73 73325068 616e746f 6d000000 000080bf 000080bf c8000000 e8030000 02000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
deci(@mask=0b1, @nargs=1, @blob="10000000");
jmpNeq(@nargs=2, @blob="d8feffff 00000000");
ret(@blob="");
}
void Boss2At2() {
stackAlloc(@nargs=1, @blob="18000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@mask=0b100, @nargs=3, @blob="00000000 05000000 00000000");
etCountD(
@nargs=9,
@blob="00000000 0c000000 18000000 20000000 28000000 01000000 01000000 01000000 01000000",
);
etAngle(@nargs=3, @blob="00000000 00000000 00000000");
etSpeed(@nargs=3, @blob="00000000 00000000 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 00040000 14000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 03000000 00000000 04000000 3c000000 c1bdf0ff abaaaa3d f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00301cc6");
pushi(@nargs=1, @blob="18000000");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
etOffsetAbs(@mask=0b110, @nargs=3, @blob="00000000 000080bf 000080bf");
etProtectRange(@nargs=1, @blob="00004042");
pushi(@nargs=1, @blob="0e000000");
seti(@mask=0b1, @nargs=1, @blob="10000000");
pushi(@nargs=1, @blob="20000000");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00004041");
pushi(@nargs=1, @blob="8c000000");
seti(@mask=0b1, @nargs=1, @blob="14000000");
jmp(@nargs=2, @blob="9c010000 00000000");
etEx(
@mask=0b10000,
@nargs=8,
@blob="00000000 02000000 00000000 00100000 14000000 c1bdf0ff f02374c9 f02374c9",
);
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00004041 00000000");
etDist(@mask=0b10, @nargs=2, @blob="00000000 00000041");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@nargs=1, @blob="00008041");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
pushi(@mask=0b1, @nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="08000000");
subi(@blob="");
seti(@mask=0b1, @nargs=1, @blob="14000000");
validRad(@mask=0b1, @nargs=1, @blob="00004041");
wait(@nargs=1, @blob="03000000");
deci(@mask=0b1, @nargs=1, @blob="10000000");
jmpNeq(@nargs=2, @blob="68feffff 00000000");
ret(@blob="");
}
void Boss2Phantom() {
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 426f7373 32506861 6e746f6d 5f617400",
);
moveVel(@mask=0b1, @nargs=2, @blob="00381cc6 00000000");
moveVelTime(@nargs=4, @blob="3c000000 00000000 f02374c9 cdccccbd");
+160: // 160
nop(@blob="");
call(
@nargs=1,
@blob="14000000 426f7373 32506861 6e746f6d 5f617432 00000000",
);
ret(@blob="");
}
void Boss2Phantom_at() {
stackAlloc(@nargs=1, @blob="00000000");
call(
@nargs=1,
@blob="14000000 426f7373 32506861 6e746f6d 5f617442 00000000",
);
dropClear(@blob="");
dropExtra(@nargs=2, @blob="02000000 01000000");
dropArea(@nargs=2, @blob="00004042 00004042");
dropItems(@blob="");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
delete(@blob="");
ret(@blob="");
}
void Boss2Phantom_at2() {
stackAlloc(@nargs=1, @blob="00000000");
call(
@nargs=1,
@blob="14000000 426f7373 32506861 6e746f6d 5f617442 00000000",
);
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
delete(@blob="");
ret(@blob="");
}
void Boss2Phantom_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 10000000 10000000 01000000 03000000 04000000 05000000",
);
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 Boss3() {
stackAlloc(@nargs=1, @blob="04000000");
timerReset(@blob="");
funcCall(@nargs=1, @blob="04000000");
enmKillAll(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="44000000 00000000");
etCancel(@nargs=1, @blob="00002044");
jmp(@nargs=2, @blob="2c000000 00000000");
etClear(@nargs=1, @blob="00002044");
spellEnd(@blob="");
killAllAsync(@blob="");
lifeSet(@nargs=1, @blob="f4330000");
setInterrupt(
@nargs=4,
@blob="00000000 fc080000 34080000 0c000000 426f7373 43617264 33000000",
);
lifeMarker(@nargs=3, @blob="00000000 00c00f45 80a0ffff");
setChapter(@nargs=1, @blob="1a000000");
stars(@nargs=1, @blob="01000000");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="f8000000 00000000");
setInvuln(@nargs=1, @blob="3c000000");
dropClear(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="2c000000 00000000");
dropMain(@nargs=1, @blob="05000000");
dropExtra(@nargs=2, @blob="01000000 0a000000");
dropExtra(@nargs=2, @blob="02000000 0f000000");
dropArea(@nargs=2, @blob="00004042 00004042");
dropItems(@blob="");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
playSound(@nargs=1, @blob="0f000000");
movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
+60: // 60
nop(@blob="");
moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00000042");
jmp(@nargs=2, @blob="b8000000 3c000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="0b000000");
seti(@mask=0b1, @nargs=1, @blob="00000000");
callAsync(@nargs=1, @blob="0c000000 426f7373 33417431 00000000");
wait(@nargs=1, @blob="64000000");
moveRand(@nargs=3, @blob="3c000000 04000000 00000040");
wait(@nargs=1, @blob="46000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="4cffffff 3c000000");
ret(@blob="");
}
void Boss3At1() {
stackAlloc(@nargs=1, @blob="14000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00000041");
diffI(
@mask=0b1,
@nargs=5,
@blob="10000000 03000000 07000000 09000000 0c000000",
);
pushf(@nargs=1, @blob="db0fc940");
pushi(@mask=0b1, @nargs=1, @blob="10000000");
divf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
jmp(@nargs=2, @blob="54010000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
circlePos(
@mask=0b111,
@nargs=4,
@blob="00000000 00008040 00f41bc6 00004042",
);
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushi(@nargs=1, @blob="18000000");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="16000000");
addf(@blob="");
enmCreate(
@mask=0b110,
@nargs=6,
@blob="10000000 42426f73 73335068 616e746f 6d000000 000080bf 000080bf c8000000 e8030000 02000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
deci(@mask=0b1, @nargs=1, @blob="10000000");
jmpNeq(@nargs=2, @blob="b0feffff 00000000");
ret(@blob="");
}
void Boss3At2() {
stackAlloc(@nargs=1, @blob="18000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@mask=0b100, @nargs=3, @blob="00000000 05000000 00000000");
etCountD(
@nargs=9,
@blob="00000000 0c000000 18000000 18000000 18000000 01000000 01000000 01000000 01000000",
);
etAngle(@nargs=3, @blob="00000000 00000000 00000000");
etSpeed(@nargs=3, @blob="00000000 00000000 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 00040000 14000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 03000000 00000000 04000000 3c000000 c1bdf0ff 8988883c f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00301cc6");
pushi(@nargs=1, @blob="18000000");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
etOffsetAbs(@mask=0b110, @nargs=3, @blob="00000000 000080bf 000080bf");
etProtectRange(@nargs=1, @blob="00004042");
pushi(@nargs=1, @blob="0e000000");
seti(@mask=0b1, @nargs=1, @blob="10000000");
pushi(@nargs=1, @blob="20000000");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00004041");
pushi(@nargs=1, @blob="8c000000");
seti(@mask=0b1, @nargs=1, @blob="14000000");
jmp(@nargs=2, @blob="9c010000 00000000");
etEx(
@mask=0b10000,
@nargs=8,
@blob="00000000 02000000 00000000 00100000 14000000 c1bdf0ff f02374c9 f02374c9",
);
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00004041 00000000");
etDist(@mask=0b10, @nargs=2, @blob="00000000 00000041");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@nargs=1, @blob="00008041");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
pushi(@mask=0b1, @nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="08000000");
subi(@blob="");
seti(@mask=0b1, @nargs=1, @blob="14000000");
validRad(@mask=0b1, @nargs=1, @blob="00004041");
wait(@nargs=1, @blob="03000000");
deci(@mask=0b1, @nargs=1, @blob="10000000");
jmpNeq(@nargs=2, @blob="68feffff 00000000");
ret(@blob="");
}
void Boss3Phantom() {
stackAlloc(@nargs=1, @blob="08000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@mask=0b10, @nargs=2, @blob="00000000 00000000");
flagSet(@nargs=1, @blob="0d020000");
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");
moveVel(@mask=0b1, @nargs=2, @blob="00f41bc6 00000000");
callAsync(@nargs=1, @blob="10000000 426f7373 33506861 6e746f6d 5f617400");
moveVelTime(@nargs=4, @blob="1e000000 00000000 f02374c9 cdcc8c3f");
wait(@nargs=1, @blob="a0000000");
delete(@blob="");
ret(@blob="");
}
void Boss3Phantom_at() {
stackAlloc(@nargs=1, @blob="0c000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@nargs=3, @blob="00000000 02000000 06000000");
etCount(@nargs=3, @blob="00000000 07000000 01000000");
etAngle(@mask=0b110, @nargs=3, @blob="00000000 00f41bc6 00f41bc6");
etSpeed(@nargs=3, @blob="00000000 0000803f 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 04000000 3c000000 c1bdf0ff 8988083d f02374c9",
);
jmp(@nargs=2, @blob="40000000 00000000");
etOn(@nargs=1, @blob="00000000");
wait(@nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="c4ffffff 00000000");
ret(@blob="");
}
void BossCard1() {
stackAlloc(@nargs=1, @blob="10000000");
etProtectRange(@nargs=1, @blob="00000000");
enmKillAll(@blob="");
spellEnd(@blob="");
killAllAsync(@blob="");
funcSet(@nargs=1, @blob="00000000");
laserCancel(@blob="");
playSound(@nargs=1, @blob="0f000000");
enmCreate(
@nargs=6,
@blob="0c000000 45636c5f 45744272 65616b00 00000000 00000000 0f270000 00000000 00000000",
);
setInvuln(@nargs=1, @blob="3c000000");
setInterrupt(
@nargs=4,
@blob="00000000 00000000 100e0000 08000000 426f7373 32000000",
);
{"014567"}: spell(
@nargs=4,
@blob="7a000000 100e0000 20a10700 1c000000 f98a0504 724f12a5 ec650e46 68c60a36 e42f0626 6271009e 5fe67d24",
);
{"234567"}: spell(
@nargs=4,
@blob="7a000000 100e0000 20a10700 18000000 f98a0504 724f187d f81a11eb 63791e14 f7d604da e32a81e8",
);
setChapter(@nargs=1, @blob="2b000000");
killAllAsync(@blob="");
movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00002043");
moveLimit(@nargs=4, @blob="00000000 00000043 0000c043 00008043");
pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="3c000000 00000000");
dropMain(@nargs=1, @blob="05000000");
dropItems(@blob="");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
funcCall(@nargs=1, @blob="02000000");
+60: // 60
anmPlay(@nargs=2, @blob="00000000 83000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
+60: // 120
funcSet(@nargs=1, @blob="03000000");
anmPlay(@nargs=2, @blob="00000000 b0000000");
+30: // 150
nop(@blob="");
callAsync(@nargs=1, @blob="0c000000 426f7373 43617264 31417400");
jmp(@nargs=2, @blob="2c000000 96000000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 96000000");
ret(@blob="");
}
void BossCard1At() {
stackAlloc(@nargs=1, @blob="04000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00000000");
wait(@nargs=1, @blob="78000000");
jmp(@nargs=2, @blob="70030000 00000000");
etNew(@nargs=1, @blob="02000000");
etAim(@nargs=2, @blob="02000000 03000000");
etSprite(@nargs=3, @blob="02000000 01000000 06000000");
etCountD(
@nargs=9,
@blob="02000000 01000000 01000000 02000000 03000000 01000000 01000000 01000000 01000000",
);
etAngle(@nargs=3, @blob="02000000 00000000 00000000");
etSpeed(@nargs=3, @blob="02000000 00000000 0000c03f");
etEx(
@nargs=8,
@blob="02000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00301cc6");
pushi(@nargs=1, @blob="18000000");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
etOffsetAbs(@mask=0b110, @nargs=3, @blob="02000000 000080bf 000080bf");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="20000000");
divf(@blob="");
addf(@blob="");
etAngle(@mask=0b10, @nargs=3, @blob="02000000 000080bf 00000000");
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
pushf(@nargs=1, @blob="0000003f");
mulf(@blob="");
pushf(@nargs=1, @blob="9a99993f");
addf(@blob="");
etSpeed(@mask=0b10, @nargs=3, @blob="02000000 000080bf 00000000");
{"34567"}: pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
{"34567"}: pushf(@nargs=1, @blob="0000003f");
{"34567"}: mulf(@blob="");
{"34567"}: pushf(@nargs=1, @blob="cdcc0c40");
{"34567"}: addf(@blob="");
{"34567"}: etSpeed(
@mask=0b10,
@nargs=3,
@blob="02000000 000080bf 00000000",
);
etOn(@nargs=1, @blob="02000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="a60a063e");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
diffWait(@nargs=4, @blob="06000000 03000000 03000000 03000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="94fcffff 00000000");
ret(@blob="");
}
void BossCard2() {
stackAlloc(@nargs=1, @blob="04000000");
{"014567"}: spell(
@nargs=4,
@blob="7e000000 b80b0000 20a10700 1c000000 fad80250 724f12a0 ec800ebe 6ae90ae3 e42d04f7 607400b3 de907d24",
);
{"234567"}: spell(
@nargs=4,
@blob="7e000000 b80b0000 20a10700 14000000 f90c0250 724f01b0 ff9a04b1 7c5e0806 676e85ac",
);
setInterrupt(
@nargs=4,
@blob="00000000 00000000 b80b0000 08000000 426f7373 33000000",
);
enmKillAll(@blob="");
killAllAsync(@blob="");
movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
setInvuln(@nargs=1, @blob="3c000000");
playSound(@nargs=1, @blob="07000000");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="64000000 00000000");
enmCreate(
@nargs=6,
@blob="0c000000 45636c5f 45744272 65616b00 00000000 00000000 0f270000 00000000 00000000",
);
jmp(@nargs=2, @blob="50000000 00000000");
enmCreate(
@nargs=6,
@blob="10000000 45636c5f 45744272 65616b5f 6e690000 00000000 00000000 0f270000 00000000 00000000",
);
pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="3c000000 00000000");
dropMain(@nargs=1, @blob="05000000");
dropItems(@blob="");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
setChapter(@nargs=1, @blob="2c000000");
+120: // 120
nop(@blob="");
jmp(@nargs=2, @blob="a0000000 78000000");
call(@nargs=1, @blob="10000000 426f7373 43617264 325f6174 00000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
wait(@nargs=1, @blob="3c000000");
moveRand(@nargs=3, @blob="3c000000 00000000 0000c03f");
diffWait(@nargs=4, @blob="54010000 54010000 f0000000 a0000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="64ffffff 78000000");
ret(@blob="");
}
void BossCard2Phantom() {
stackAlloc(@nargs=1, @blob="10000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@mask=0b10, @nargs=2, @blob="00000000 00000000");
flagSet(@nargs=1, @blob="0f000000");
flagSet(@nargs=1, @blob="00020000");
moveCircle(
@mask=0b11,
@nargs=4,
@blob="00f41bc6 00f01bc6 00000043 00000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
pushi(@nargs=1, @blob="04000000");
divf(@blob="");
moveCircleTime(
@mask=0b100,
@nargs=5,
@blob="3c000000 04000000 000080bf 00004043 f02374c9",
);
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");
callAsync(
@nargs=1,
@blob="14000000 426f7373 43617264 32506861 6e746f6d 5f617400",
);
wait(@nargs=1, @blob="3c000000");
pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
pushi(@nargs=1, @blob="04000000");
divf(@blob="");
moveCircleTime(
@mask=0b100,
@nargs=5,
@blob="f0000000 01000000 000080bf 000080c1 f02374c9",
);
+240: // 240
nop(@blob="");
flagSet(@nargs=1, @blob="01000000");
movePos(@mask=0b11, @nargs=2, @blob="00341cc6 00301cc6");
anmSelect(@nargs=1, @blob="00000000");
anmSetSprite(@nargs=2, @blob="01000000 b2000000");
+20: // 260
anmSetSprite(@nargs=2, @blob="00000000 ffffffff");
playSound(@nargs=1, @blob="36000000");
flagSet(@nargs=1, @blob="00020000");
pushi(@nargs=1, @blob="04000000");
setf(@mask=0b1, @nargs=1, @blob="00004041");
pushi(@nargs=1, @blob="0a000000");
seti(@mask=0b1, @nargs=1, @blob="08000000");
jmp(@nargs=2, @blob="90000000 04010000");
setHitbox(@mask=0b11, @nargs=2, @blob="00004041 00004041");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
pushi(@nargs=1, @blob="08000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
wait(@nargs=1, @blob="01000000");
deci(@mask=0b1, @nargs=1, @blob="08000000");
jmpNeq(@nargs=2, @blob="74ffffff 04010000");
pushi(@nargs=1, @blob="2d000000");
seti(@mask=0b1, @nargs=1, @blob="08000000");
jmp(@nargs=2, @blob="90000000 04010000");
setHitbox(@mask=0b11, @nargs=2, @blob="00004041 00004041");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
pushf(@nargs=1, @blob="9a99993e");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
wait(@nargs=1, @blob="01000000");
deci(@mask=0b1, @nargs=1, @blob="08000000");
jmpNeq(@nargs=2, @blob="74ffffff 04010000");
flagSet(@nargs=1, @blob="03000000");
wait(@nargs=1, @blob="28000000");
delete(@blob="");
ret(@blob="");
}
void BossCard2Phantom_at() {
stackAlloc(@nargs=1, @blob="0c000000");
pushi(@mask=0b1, @nargs=1, @blob="19d9ffff");
pushi(@nargs=1, @blob="01000000");
leqi(@blob="");
jmpEq(@nargs=2, @blob="cc000000 00000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@nargs=3, @blob="00000000 03000000 06000000");
etCount(@nargs=3, @blob="00000000 01000000 01000000");
etAngle(@nargs=3, @blob="00000000 00000000 00000000");
etSpeed(@nargs=3, @blob="00000000 00000000 0000c03f");
jmp(@nargs=2, @blob="b4000000 00000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@nargs=3, @blob="00000000 05000000 02000000");
etCount(@nargs=3, @blob="00000000 01000000 01000000");
etAngle(@nargs=3, @blob="00000000 00000000 00000000");
etSpeed(@nargs=3, @blob="00000000 00000000 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 00000000 00040000 90010000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 00100000 b4000000 c1bdf0ff f02374c9 f02374c9",
);
diffF(
@mask=0b1,
@nargs=5,
@blob="00008040 8988083c 8988083c 8988883c cdcccc3c",
);
etEx(
@mask=0b1000000,
@nargs=8,
@blob="00000000 02000000 00000000 04000000 78000000 c1bdf0ff 00008040 f02374c9",
);
pushi(@mask=0b1, @nargs=1, @blob="19d9ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="78000000 00000000");
etEx(
@nargs=8,
@blob="00000000 03000000 00000000 00100000 28000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 04000000 00000000 00200000 c1bdf0ff c1bdf0ff f02374c9 f02374c9",
);
pushi(@nargs=1, @blob="28000000");
seti(@mask=0b1, @nargs=1, @blob="08000000");
jmp(@nargs=2, @blob="94000000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00cc1bc6");
pushf(@nargs=1, @blob="db0f4940");
addf(@blob="");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 000080bf 00000000");
etOn(@nargs=1, @blob="00000000");
wait(@nargs=1, @blob="02000000");
deci(@mask=0b1, @nargs=1, @blob="08000000");
jmpNeq(@nargs=2, @blob="70ffffff 00000000");
ret(@blob="");
}
void BossCard2Phantom_at2() {
stackAlloc(@nargs=1, @blob="0c000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 02000000");
etSprite(@nargs=3, @blob="00000000 02000000 06000000");
etCount(@nargs=3, @blob="00000000 10000000 03000000");
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",
);
etOn(@nargs=1, @blob="00000000");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
delete(@blob="");
ret(@blob="");
}
void BossCard2_at() {
stackAlloc(@nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="08000000");
seti(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
pushf(@nargs=1, @blob="7077563d");
setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
jmp(@nargs=2, @blob="a0000000 00000000");
enmCreateA(
@mask=0b110,
@nargs=6,
@blob="14000000 47426f73 73436172 64325068 616e746f 6d000000 00b41bc6 00b01bc6 c8000000 e8030000 02000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
pushf(@nargs=1, @blob="d80f493f");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
deci(@mask=0b1, @nargs=1, @blob="00000000");
jmpNeq(@nargs=2, @blob="64ffffff 00000000");
ret(@blob="");
}
void BossCard3() {
stackAlloc(@nargs=1, @blob="08000000");
setInvuln(@nargs=1, @blob="64000000");
enmKillAll(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="44000000 00000000");
etCancel(@nargs=1, @blob="00002044");
jmp(@nargs=2, @blob="2c000000 00000000");
etClear(@nargs=1, @blob="00002044");
spellEnd(@blob="");
killAllAsync(@blob="");
setInterrupt(
@nargs=4,
@blob="00000000 00000000 b80b0000 0c000000 426f7373 43617264 34000000",
);
setChapter(@nargs=1, @blob="2d000000");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="f8000000 00000000");
setInvuln(@nargs=1, @blob="3c000000");
dropClear(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="2c000000 00000000");
dropMain(@nargs=1, @blob="05000000");
dropExtra(@nargs=2, @blob="01000000 0a000000");
dropExtra(@nargs=2, @blob="02000000 05000000");
dropArea(@nargs=2, @blob="00004042 00004042");
dropItems(@blob="");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
playSound(@nargs=1, @blob="0f000000");
{"014567"}: spell(
@nargs=4,
@blob="82000000 b80b0000 20a10700 18000000 91a21863 724f1a74 fd9800a2 697e191a e93c04da e32a81e8",
);
{"234567"}: spell(
@nargs=4,
@blob="82000000 b80b0000 20a10700 20000000 91a21863 724f0134 e1680ff8 7bd80bb6 f5a70706 61c3086d c80afc52 dba27960",
);
anmSelectedPlay(@nargs=1, @blob="00000000");
movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
+60: // 60
nop(@blob="");
moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00000042");
jmp(@nargs=2, @blob="58030000 3c000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
diffI(
@mask=0b1,
@nargs=5,
@blob="04000000 04000000 07000000 07000000 07000000",
);
pushf(@nargs=1, @blob="db0f4940");
pushi(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="01000000");
subi(@blob="");
divf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
pushf(@nargs=1, @blob="db0fc93f");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
pushf(@nargs=1, @blob="f90f493e");
setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
jmp(@nargs=2, @blob="e8000000 3c000000");
callAsync(@nargs=1, @blob="10000000 426f7373 43617264 33417431 00000000");
wait(@nargs=1, @blob="05000000");
pushf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
pushi(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="1cffffff 3c000000");
diffWait(@nargs=4, @blob="64000000 64000000 50000000 3c000000");
{"014567"}: callAsync(
@nargs=3,
@blob="10000000 426f7373 43617264 33417432 00000000 69690000 04000000 66660000 db0fc93d",
);
{"234567"}: callAsync(
@nargs=3,
@blob="10000000 426f7373 43617264 33417432 00000000 69690000 02000000 66660000 db0fc93d",
);
diffWait(@nargs=4, @blob="64000000 64000000 50000000 3c000000");
{"014567"}: callAsync(
@nargs=3,
@blob="10000000 426f7373 43617264 33417432 00000000 69690000 03000000 66660000 db0fc9bd",
);
{"234567"}: callAsync(
@nargs=3,
@blob="10000000 426f7373 43617264 33417432 00000000 69690000 01000000 66660000 db0fc9bd",
);
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="acfcffff 3c000000");
ret(@blob="");
}
void BossCard3At1() {
stackAlloc(@nargs=1, @blob="10000000");
pushi(@nargs=1, @blob="05000000");
seti(@mask=0b1, @nargs=1, @blob="0c000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00000041");
jmp(@nargs=2, @blob="c8000000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
enmCreate(
@nargs=6,
@blob="14000000 42426f73 73436172 64335068 616e746f 6d000000 0000b041 0000c0c1 c8000000 e8030000 02000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@nargs=1, @blob="7bd9a03f");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
deci(@mask=0b1, @nargs=1, @blob="0c000000");
jmpNeq(@nargs=2, @blob="3cffffff 00000000");
ret(@blob="");
}
void BossCard3At2() {
stackAlloc(@nargs=1, @blob="1c000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@mask=0b100, @nargs=3, @blob="00000000 05000000 00000000");
etCountD(
@nargs=9,
@blob="00000000 12000000 14000000 18000000 18000000 01000000 01000000 01000000 01000000",
);
etAngle(@nargs=3, @blob="00000000 00000000 00000000");
etSpeed(@nargs=3, @blob="00000000 00000000 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 00040000 14000000 c1bdf0ff f02374c9 f02374c9",
);
diffF(
@mask=0b1,
@nargs=5,
@blob="00008041 8988883c 8988883c cdcccc3c 8988083d",
);
etEx(
@mask=0b1000000,
@nargs=8,
@blob="00000000 03000000 00000000 04000000 3c000000 c1bdf0ff 00008041 f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00301cc6");
pushi(@nargs=1, @blob="18000000");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
etOffsetAbs(@mask=0b110, @nargs=3, @blob="00000000 000080bf 000080bf");
etProtectRange(@nargs=1, @blob="00004042");
pushi(@nargs=1, @blob="0e000000");
seti(@mask=0b1, @nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="20000000");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00004041");
pushi(@nargs=1, @blob="8c000000");
seti(@mask=0b1, @nargs=1, @blob="18000000");
jmp(@nargs=2, @blob="9c010000 00000000");
etEx(
@mask=0b10000,
@nargs=8,
@blob="00000000 02000000 00000000 00100000 18000000 c1bdf0ff f02374c9 f02374c9",
);
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00004041 00000000");
etDist(@mask=0b10, @nargs=2, @blob="00000000 00000041");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@nargs=1, @blob="00008041");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
pushi(@mask=0b1, @nargs=1, @blob="18000000");
pushi(@nargs=1, @blob="08000000");
subi(@blob="");
seti(@mask=0b1, @nargs=1, @blob="18000000");
validRad(@mask=0b1, @nargs=1, @blob="00004041");
wait(@nargs=1, @blob="03000000");
deci(@mask=0b1, @nargs=1, @blob="14000000");
jmpNeq(@nargs=2, @blob="68feffff 00000000");
ret(@blob="");
}
void BossCard3Phantom() {
stackAlloc(@nargs=1, @blob="08000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@mask=0b10, @nargs=2, @blob="00000000 00000000");
flagSet(@nargs=1, @blob="0d020000");
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");
moveVel(@mask=0b1, @nargs=2, @blob="00ec1bc6 00000000");
moveVelTime(@nargs=4, @blob="2c010000 00000000 f02374c9 00008040");
moveCircleRel(
@mask=0b11,
@nargs=4,
@blob="00f41bc6 00f01bc6 00000000 00000000",
);
moveCircleRelTime(
@mask=0b100,
@nargs=5,
@blob="3c000000 01000000 00f01bc6 00004042 00000000",
);
wait(@nargs=1, @blob="f0000000");
delete(@blob="");
ret(@blob="");
}
void BossCard3Phantom_at() {
stackAlloc(@nargs=1, @blob="0c000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 02000000");
etSprite(@nargs=3, @blob="00000000 02000000 06000000");
etCount(@nargs=3, @blob="00000000 10000000 03000000");
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",
);
etOn(@nargs=1, @blob="00000000");
dropClear(@blob="");
dropExtra(@nargs=2, @blob="02000000 01000000");
dropArea(@nargs=2, @blob="00004042 00004042");
dropItems(@blob="");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
delete(@blob="");
ret(@blob="");
}
void BossCard3Phantom_at2() {
stackAlloc(@nargs=1, @blob="0c000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 02000000");
etSprite(@nargs=3, @blob="00000000 02000000 06000000");
etCount(@nargs=3, @blob="00000000 10000000 03000000");
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",
);
etOn(@nargs=1, @blob="00000000");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
delete(@blob="");
ret(@blob="");
}
void BossCard4() {
stackAlloc(@nargs=1, @blob="04000000");
timerReset(@blob="");
enmKillAll(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="44000000 00000000");
etCancel(@nargs=1, @blob="00002044");
jmp(@nargs=2, @blob="2c000000 00000000");
etClear(@nargs=1, @blob="00002044");
spellEnd(@blob="");
killAllAsync(@blob="");
setInvuln(@nargs=1, @blob="a0000000");
lifeSet(@nargs=1, @blob="dc050000");
setInterrupt(
@nargs=4,
@blob="00000000 00000000 100e0000 0c000000 426f7373 44656164 00000000",
);
lifeMarker(@nargs=3, @blob="00000000 0080bb44 80a0ffff");
setChapter(@nargs=1, @blob="1b000000");
stars(@nargs=1, @blob="00000000");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="f8000000 00000000");
setInvuln(@nargs=1, @blob="3c000000");
dropClear(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="2c000000 00000000");
dropMain(@nargs=1, @blob="05000000");
dropExtra(@nargs=2, @blob="01000000 0a000000");
dropExtra(@nargs=2, @blob="02000000 0f000000");
dropArea(@nargs=2, @blob="00004042 00004042");
dropItems(@blob="");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
playSound(@nargs=1, @blob="0f000000");
flagSet(@nargs=1, @blob="02000000");
moveLimit(@nargs=4, @blob="00000000 00006043 00008c43 0000a043");
movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00006043");
+60: // 60
nop(@blob="");
{"014567"}: spell(
@nargs=4,
@blob="86000000 100e0000 20a10700 10000000 f60b1b3c 797e0464 fba40c42 ebb28970",
);
{"234567"}: spell(
@nargs=4,
@blob="86000000 100e0000 20a10700 14000000 f60b1a10 7b910614 fa6a07bc 690b0bc5 e61885ac",
);
setChapter(@nargs=1, @blob="2e000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
callAsync(@nargs=1, @blob="10000000 426f7373 43617264 34417431 00000000");
wait(@nargs=1, @blob="78000000");
playSound(@nargs=1, @blob="29000000");
anmPlay(@nargs=2, @blob="00000000 b0000000");
wait(@nargs=1, @blob="3c000000");
funcCall(@nargs=1, @blob="02000000");
funcSet(@nargs=1, @blob="03000000");
{"1234567"}: callAsync(
@nargs=1,
@blob="0c000000 426f7373 43617264 35417400",
);
jmp(@nargs=2, @blob="2c000000 3c000000");
wait(@nargs=1, @blob="64000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 3c000000");
ret(@blob="");
}
void BossCard4At1() {
stackAlloc(@nargs=1, @blob="10000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushi(@nargs=1, @blob="08000000");
seti(@mask=0b1, @nargs=1, @blob="0c000000");
pushi(@nargs=1, @blob="c0010000");
setf(@mask=0b1, @nargs=1, @blob="00008040");
jmp(@nargs=2, @blob="1c020000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
pushi(@nargs=1, @blob="40ffffff");
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
pushi(@nargs=1, @blob="20000000");
mulf(@blob="");
addf(@blob="");
enmCreateA(
@mask=0b110,
@nargs=6,
@blob="14000000 42426f73 73436172 64345068 616e746f 6d000000 000080bf 00008040 204e0000 e8030000 02000000",
);
pushi(@nargs=1, @blob="c0000000");
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
pushi(@nargs=1, @blob="20000000");
mulf(@blob="");
subf(@blob="");
enmCreateA(
@mask=0b110,
@nargs=6,
@blob="14000000 42426f73 73436172 64345068 616e746f 6d000000 000080bf 00008040 204e0000 e8030000 02000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@nargs=1, @blob="7bd9a03f");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushi(@nargs=1, @blob="40000000");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
wait(@nargs=1, @blob="08000000");
deci(@mask=0b1, @nargs=1, @blob="0c000000");
jmpNeq(@nargs=2, @blob="e8fdffff 00000000");
ret(@blob="");
}
void BossCard4At2() {
stackAlloc(@nargs=1, @blob="18000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@mask=0b100, @nargs=3, @blob="00000000 05000000 00000000");
etCount(@nargs=3, @blob="00000000 18000000 01000000");
etAngle(@nargs=3, @blob="00000000 00000000 00000000");
etSpeed(@nargs=3, @blob="00000000 00000000 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 00040000 14000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 03000000 00000000 04000000 3c000000 c1bdf0ff 8988883c f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00301cc6");
pushi(@nargs=1, @blob="18000000");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
etOffsetAbs(@mask=0b110, @nargs=3, @blob="00000000 000080bf 000080bf");
etProtectRange(@nargs=1, @blob="00004042");
pushi(@nargs=1, @blob="0e000000");
seti(@mask=0b1, @nargs=1, @blob="10000000");
pushi(@nargs=1, @blob="20000000");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00004041");
pushi(@nargs=1, @blob="8c000000");
seti(@mask=0b1, @nargs=1, @blob="14000000");
jmp(@nargs=2, @blob="9c010000 00000000");
etEx(
@mask=0b10000,
@nargs=8,
@blob="00000000 02000000 00000000 00100000 14000000 c1bdf0ff f02374c9 f02374c9",
);
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00004041 00000000");
etDist(@mask=0b10, @nargs=2, @blob="00000000 00000041");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@nargs=1, @blob="00008041");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
pushi(@mask=0b1, @nargs=1, @blob="14000000");
pushi(@nargs=1, @blob="08000000");
subi(@blob="");
seti(@mask=0b1, @nargs=1, @blob="14000000");
validRad(@mask=0b1, @nargs=1, @blob="00004041");
wait(@nargs=1, @blob="03000000");
deci(@mask=0b1, @nargs=1, @blob="10000000");
jmpNeq(@nargs=2, @blob="68feffff 00000000");
ret(@blob="");
}
void BossCard4Girl() {
stackAlloc(@nargs=1, @blob="0c000000");
pushi(@nargs=1, @blob="71000000");
seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
anmSelect(@nargs=1, @blob="01000000");
flagSet(@nargs=1, @blob="03000000");
anmSetSprite(@nargs=2, @blob="02000000 77000000");
wait(@nargs=1, @blob="3c000000");
setInterrupt(
@nargs=4,
@blob="00000000 00000000 ffffffff 14000000 426f7373 43617264 34476972 6c446561 64320000",
);
anmSetMain(@nargs=2, @blob="00000000 14000000");
anmSetSprite(@nargs=2, @blob="01000000 30000000");
lifeSet(@nargs=1, @blob="c8000000");
flagSet(@nargs=1, @blob="00040000");
flagClear(@nargs=1, @blob="03000000");
setHurtbox(@nargs=2, @blob="0000c041 0000c041");
setHitbox(@nargs=2, @blob="00008041 00008041");
callAsync(
@nargs=1,
@blob="14000000 426f7373 43617264 34476972 6c5f6174 00000000",
);
pushi(@nargs=1, @blob="00000000");
seti(@mask=0b1, @nargs=1, @blob="08000000");
jmp(@nargs=2, @blob="f8060000 00000000");
pushi(@mask=0b1, @nargs=1, @blob="08000000");
pushi(@nargs=1, @blob="02000000");
lessi(@blob="");
jmpEq(@nargs=2, @blob="d0050000 00000000");
pushi(@mask=0b1, @nargs=1, @blob="08000000");
pushi(@nargs=1, @blob="01000000");
lessi(@blob="");
jmpEq(@nargs=2, @blob="58000000 00000000");
pushi(@nargs=1, @blob="12000000");
seti(@mask=0b1, @nargs=1, @blob="01d9ffff");
jmp(@nargs=2, @blob="40000000 00000000");
pushi(@nargs=1, @blob="19000000");
seti(@mask=0b1, @nargs=1, @blob="01d9ffff");
pushf(@mask=0b1, @nargs=1, @blob="00601bc6");
pushi(@nargs=1, @blob="00010000");
greaterf(@blob="");
jmpEq(@nargs=2, @blob="1c010000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00b01bc6");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="20000000");
mulf(@blob="");
addf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00b41bc6");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="20000000");
mulf(@blob="");
addf(@blob="");
movePosTime(
@mask=0b1100,
@nargs=4,
@blob="c8000000 00000000 000080bf 000080bf",
);
wait(@nargs=1, @blob="f0000000");
jmp(@nargs=2, @blob="ac030000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00601bc6");
pushi(@nargs=1, @blob="c0000000");
greaterf(@blob="");
jmpEq(@nargs=2, @blob="1c010000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00b01bc6");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="20000000");
mulf(@blob="");
addf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00b41bc6");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="20000000");
mulf(@blob="");
addf(@blob="");
movePosTime(
@mask=0b1100,
@nargs=4,
@blob="96000000 00000000 000080bf 000080bf",
);
wait(@nargs=1, @blob="be000000");
jmp(@nargs=2, @blob="58020000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00601bc6");
pushi(@nargs=1, @blob="80000000");
greaterf(@blob="");
jmpEq(@nargs=2, @blob="1c010000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00b01bc6");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="20000000");
mulf(@blob="");
addf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00b41bc6");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="20000000");
mulf(@blob="");
addf(@blob="");
movePosTime(
@mask=0b1100,
@nargs=4,
@blob="64000000 00000000 000080bf 000080bf",
);
wait(@nargs=1, @blob="8c000000");
jmp(@nargs=2, @blob="04010000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00b01bc6");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="20000000");
mulf(@blob="");
addf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00b41bc6");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="20000000");
mulf(@blob="");
addf(@blob="");
movePosTime(
@mask=0b1100,
@nargs=4,
@blob="3c000000 00000000 000080bf 000080bf",
);
wait(@nargs=1, @blob="28000000");
jmp(@nargs=2, @blob="90000000 00000000");
pushi(@nargs=1, @blob="12000000");
seti(@mask=0b1, @nargs=1, @blob="01d9ffff");
call(
@nargs=1,
@blob="14000000 426f7373 43617264 34476972 6c5f6174 32000000",
);
pushi(@nargs=1, @blob="ffffffff");
seti(@mask=0b1, @nargs=1, @blob="08000000");
pushi(@mask=0b1, @nargs=1, @blob="08000000");
pushi(@nargs=1, @blob="01000000");
addi(@blob="");
seti(@mask=0b1, @nargs=1, @blob="08000000");
wait(@nargs=1, @blob="01000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="0cf9ffff 00000000");
ret(@blob="");
}
void BossCard4GirlDead() {
stackAlloc(@nargs=1, @blob="00000000");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
moveVelTime(@nargs=4, @blob="01000000 00000000 f02374c9 00000000");
anmReset(@blob="");
anmSetSprite(@nargs=2, @blob="00000000 6d000000");
flagSet(@nargs=1, @blob="03040000");
lifeSet(@nargs=1, @blob="a0860100");
anmSetSprite(@nargs=2, @blob="01000000 ffffffff");
pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
pushf(@nargs=1, @blob="db0f4940");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="02000000");
divf(@blob="");
addf(@blob="");
moveVel(@mask=0b1, @nargs=2, @blob="000080bf 00000040");
pushi(@nargs=1, @blob="00000000");
seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
jmp(@nargs=2, @blob="a0000000 00000000");
pushi(@mask=0b1, @nargs=1, @blob="00d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="3c000000 00000000");
call(@nargs=1, @blob="10000000 426f7373 43617264 34476972 6c000000");
wait(@nargs=1, @blob="01000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="64ffffff 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 BossCard4GirlDead2() {
stackAlloc(@nargs=1, @blob="00000000");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
movePosTime(
@mask=0b1100,
@nargs=4,
@blob="01000000 00000000 00341cc6 00301cc6",
);
anmReset(@blob="");
anmSetSprite(@nargs=2, @blob="00000000 71000000");
flagSet(@nargs=1, @blob="03040000");
lifeSet(@nargs=1, @blob="a0860100");
anmSetSprite(@nargs=2, @blob="01000000 ffffffff");
pushi(@mask=0b1, @nargs=1, @blob="f0d8ffff");
pushi(@nargs=1, @blob="02000000");
modi(@blob="");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="24010000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
pushf(@nargs=1, @blob="00008040");
mulf(@blob="");
pushf(@nargs=1, @blob="00008040");
addf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
pushf(@nargs=1, @blob="db0fc93f");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="08000000");
divf(@blob="");
addf(@blob="");
moveVel(@mask=0b11, @nargs=2, @blob="000080bf 000080bf");
jmp(@nargs=2, @blob="0c010000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
pushf(@nargs=1, @blob="00008040");
mulf(@blob="");
pushf(@nargs=1, @blob="00008040");
addf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
pushf(@nargs=1, @blob="db0fc93f");
addf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="08000000");
divf(@blob="");
addf(@blob="");
moveVel(@mask=0b11, @nargs=2, @blob="000080bf 000080bf");
moveVelTime(@nargs=4, @blob="1e000000 00000000 f02374c9 00000000");
pushi(@nargs=1, @blob="78000000");
pushi(@mask=0b1, @nargs=1, @blob="f0d8ffff");
pushi(@nargs=1, @blob="5a000000");
modi(@blob="");
addi(@blob="");
wait(@mask=0b1, @nargs=1, @blob="ffffffff");
pushi(@nargs=1, @blob="00000000");
seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
jmp(@nargs=2, @blob="a0000000 00000000");
pushi(@mask=0b1, @nargs=1, @blob="00d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="3c000000 00000000");
call(@nargs=1, @blob="10000000 426f7373 43617264 34476972 6c000000");
wait(@nargs=1, @blob="01000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="64ffffff 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 BossCard4Girl_at() {
stackAlloc(@nargs=1, @blob="08000000");
pushi(@nargs=1, @blob="5a000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
pushf(@nargs=1, @blob="0000803f");
setf(@mask=0b1, @nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="28030000 00000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@mask=0b10, @nargs=3, @blob="00000000 01d9ffff 00000000");
etCountD(
@nargs=9,
@blob="00000000 01000000 01000000 02000000 04000000 01000000 01000000 01000000 01000000",
);
etAngle(@nargs=3, @blob="00000000 db0fc93f db0f493e");
etSpeed(@nargs=3, @blob="00000000 0ad7233c 0000803f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 00100000 1e000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 02000000 00000000 04000000 3c000000 c1bdf0ff 8988883c f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00b01bc6");
pushf(@mask=0b1, @nargs=1, @blob="00301cc6");
lessf(@blob="");
jmpEq(@nargs=2, @blob="34000000 00000000");
etAngle(@nargs=3, @blob="00000000 db0fc9bf 00000000");
etOn(@nargs=1, @blob="00000000");
wait(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="28000000");
greateri(@blob="");
jmpEq(@nargs=2, @blob="64000000 00000000");
pushi(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="01000000");
subi(@blob="");
seti(@mask=0b1, @nargs=1, @blob="04000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="00004040");
lessf(@blob="");
jmpEq(@nargs=2, @blob="64000000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="cdcc4c3e");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="dcfcffff 00000000");
ret(@blob="");
}
void BossCard4Girl_at2() {
stackAlloc(@nargs=1, @blob="04000000");
etNew(@nargs=1, @blob="01000000");
etAim(@nargs=2, @blob="01000000 03000000");
etSprite(@nargs=3, @blob="01000000 11000000 00000000");
etCountD(
@nargs=9,
@blob="01000000 04000000 06000000 09000000 07000000 01000000 01000000 01000000 01000000",
);
etAngle(@mask=0b10, @nargs=3, @blob="01000000 00381cc6 db0f493e");
etSpeedD(
@nargs=9,
@blob="01000000 6666a63f cdcccc3f 66662640 66662640 0000803f 0000803f 0000803f 0000803f",
);
etEx(
@nargs=8,
@blob="01000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etAngle(@mask=0b10, @nargs=3, @blob="01000000 00381cc6 00000000");
etOn(@nargs=1, @blob="01000000");
wait(@nargs=1, @blob="c8000000");
ret(@blob="");
}
void BossCard4Phantom() {
stackAlloc(@nargs=1, @blob="08000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@mask=0b10, @nargs=2, @blob="00000000 00000000");
flagSet(@nargs=1, @blob="0d040000");
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 14000000 426f7373 43617264 34476972 6c446561 64000000",
);
jmp(@nargs=2, @blob="2c000000 00000000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 00000000");
moveVel(@mask=0b1, @nargs=2, @blob="00ec1bc6 00000000");
moveVelTime(@nargs=4, @blob="2c010000 00000000 f02374c9 00008040");
moveCircleRel(
@mask=0b11,
@nargs=4,
@blob="00f41bc6 00f01bc6 00000000 00000000",
);
moveCircleRelTime(
@mask=0b100,
@nargs=5,
@blob="3c000000 01000000 00f01bc6 00004042 00000000",
);
wait(@nargs=1, @blob="f0000000");
delete(@blob="");
ret(@blob="");
}
void BossCard4Phantom_at() {
stackAlloc(@nargs=1, @blob="0c000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 02000000");
etSprite(@nargs=3, @blob="00000000 02000000 06000000");
etCount(@nargs=3, @blob="00000000 10000000 03000000");
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",
);
etOn(@nargs=1, @blob="00000000");
dropClear(@blob="");
dropExtra(@nargs=2, @blob="02000000 01000000");
dropArea(@nargs=2, @blob="00004042 00004042");
dropItems(@blob="");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
delete(@blob="");
ret(@blob="");
}
void BossCard4Phantom_at2() {
stackAlloc(@nargs=1, @blob="0c000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 02000000");
etSprite(@nargs=3, @blob="00000000 02000000 06000000");
etCount(@nargs=3, @blob="00000000 10000000 03000000");
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",
);
etOn(@nargs=1, @blob="00000000");
anmPlay(@nargs=2, @blob="00000000 4e000000");
playSound(@nargs=1, @blob="02000000");
delete(@blob="");
ret(@blob="");
}
void BossCard5At() {
stackAlloc(@nargs=1, @blob="04000000");
pushf(@nargs=1, @blob="00000000");
setf(@mask=0b1, @nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="ec020000 00000000");
etNew(@nargs=1, @blob="02000000");
etAim(@nargs=2, @blob="02000000 03000000");
etSprite(@nargs=3, @blob="02000000 18000000 06000000");
etCount(@nargs=3, @blob="02000000 02000000 01000000");
etAngle(@nargs=3, @blob="02000000 00000000 00000000");
etSpeed(@nargs=3, @blob="02000000 00000000 0000c03f");
etEx(
@nargs=8,
@blob="02000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00301cc6");
pushi(@nargs=1, @blob="18000000");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
etOffsetAbs(@mask=0b110, @nargs=3, @blob="02000000 000080bf 000080bf");
etDist(@nargs=2, @blob="00000000 00000042");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="20000000");
divf(@blob="");
addf(@blob="");
etAngle(@mask=0b10, @nargs=3, @blob="02000000 000080bf 00000000");
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
pushf(@nargs=1, @blob="9a99993f");
mulf(@blob="");
pushf(@nargs=1, @blob="cdcc4c3f");
addf(@blob="");
etSpeed(@mask=0b10, @nargs=3, @blob="02000000 000080bf 00000000");
etOn(@nargs=1, @blob="02000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="66f7e43d");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
wait(@nargs=1, @blob="0a000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="18fdffff 00000000");
ret(@blob="");
}
void BossDead() {
stackAlloc(@nargs=1, @blob="04000000");
flagSet(@nargs=1, @blob="8c000000");
anmPlay(@nargs=2, @blob="00000000 4c000000");
playSound(@nargs=1, @blob="12000000");
anmPlay(@nargs=2, @blob="00000000 8d000000");
moveVel(@mask=0b1, @nargs=2, @blob="00381cc6 cdcccc3e");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="68000000 00000000");
enmCreate(
@nargs=6,
@blob="10000000 45636c5f 45744272 65616b32 00000000 00000000 00000000 0f270000 00000000 00000000",
);
jmp(@nargs=2, @blob="50000000 00000000");
enmCreate(
@nargs=6,
@blob="10000000 45636c5f 45744272 65616b32 5f6e6900 00000000 00000000 0f270000 00000000 00000000",
);
+60: // 60
etClearAll(@blob="");
spellEnd(@blob="");
funcCall(@nargs=1, @blob="04000000");
enmKillAll(@blob="");
dropMain(@nargs=1, @blob="00000000");
dropClear(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="2c000000 3c000000");
dropMain(@nargs=1, @blob="05000000");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
dropExtra(@nargs=2, @blob="01000000 08000000");
dropExtra(@nargs=2, @blob="02000000 08000000");
dropArea(@nargs=2, @blob="00004042 00004042");
dropItems(@blob="");
setScreenShake(@nargs=3, @blob="1e000000 0c000000 00000000");
anmPlay(@nargs=2, @blob="00000000 4c000000");
anmPlay(@nargs=2, @blob="00000000 8e000000");
playSound(@nargs=1, @blob="12000000");
setBoss(@nargs=1, @blob="ffffffff");
delete(@blob="");
delete(@blob="");
}
void GBoss1Girl() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="03000000");
anmSetSprite(@nargs=2, @blob="01000000 2f000000");
pushi(@nargs=1, @blob="6f000000");
seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
call(
@nargs=3,
@blob="0c000000 426f7373 31476972 6c000000 69690000 0a000000 69690000 01000000",
);
delete(@blob="");
}
void GBoss2Phantom() {
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="10000000 426f7373 32506861 6e746f6d 00000000 69690000 60000000 69690000 01000000",
);
delete(@blob="");
}
void GBoss3Phantom() {
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="10000000 426f7373 33506861 6e746f6d 00000000 69690000 60000000 69690000 01000000",
);
delete(@blob="");
}
void GBossCard2Phantom() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="00000000");
anmSetSprite(@nargs=2, @blob="01000000 2f000000");
call(
@nargs=3,
@blob="14000000 426f7373 43617264 32506861 6e746f6d 00000000 69690000 60000000 69690000 01000000",
);
delete(@blob="");
}
void GBossCard3Phantom() {
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="14000000 426f7373 43617264 33506861 6e746f6d 00000000 69690000 60000000 69690000 01000000",
);
delete(@blob="");
}
void GBossCard4Phantom() {
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="14000000 426f7373 43617264 34506861 6e746f6d 00000000 69690000 60000000 69690000 01000000",
);
delete(@blob="");
}
void RBoss1Girl() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@nargs=2, @blob="01000000 2e000000");
dropMain(@nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="6e000000");
seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
call(
@nargs=3,
@blob="0c000000 426f7373 31476972 6c000000 69690000 05000000 69690000 01000000",
);
delete(@blob="");
}
void RBoss1Girl_at() {
stackAlloc(@nargs=1, @blob="1c000000");
diffI(
@mask=0b1,
@nargs=5,
@blob="04000000 08000000 08000000 08000000 08000000",
);
pushi(@nargs=1, @blob="12000000");
seti(@mask=0b1, @nargs=1, @blob="08000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@nargs=3, @blob="00000000 06000000 0a000000");
etCountD(
@nargs=9,
@blob="00000000 01000000 01000000 01000000 01000000 01000000 01000000 01000000 01000000",
);
etAngle(@nargs=3, @blob="00000000 00000000 920a863f");
etSpeedD(
@nargs=9,
@blob="00000000 cdcccc3f 00000040 66668640 66668640 00000040 00000040 00000040 00000040",
);
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 00100000 28000000 c1bdf0ff f02374c9 f02374c9",
);
pushf(@nargs=1, @blob="d731e23f");
setf(@mask=0b1, @nargs=1, @blob="0000a041");
pushf(@nargs=1, @blob="e1edaf3f");
setf(@mask=0b1, @nargs=1, @blob="0000c041");
jmp(@nargs=2, @blob="7c060000 00000000");
pushf(@nargs=1, @blob="c092ab3b");
setf(@mask=0b1, @nargs=1, @blob="00008041");
pushi(@nargs=1, @blob="06000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
pushf(@mask=0b1, @nargs=1, @blob="00008041");
pushi(@mask=0b1, @nargs=1, @blob="04000000");
mulf(@blob="");
pushi(@nargs=1, @blob="02000000");
divf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 0000a041 00000000");
pushi(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="01000000");
addi(@blob="");
seti(@mask=0b1, @nargs=1, @blob="04000000");
jmp(@nargs=2, @blob="74010000 00000000");
etEx(
@mask=0b10000000,
@nargs=8,
@blob="00000000 02000000 00000000 08000000 3c000000 c1bdf0ff 00000000 00004041",
);
etOn(@nargs=1, @blob="00000000");
etEx(
@mask=0b10000000,
@nargs=8,
@blob="00000000 02000000 00000000 08000000 3c000000 c1bdf0ff 4260e5bb 00004041",
);
etOn(@nargs=1, @blob="00000000");
etEx(
@mask=0b10000000,
@nargs=8,
@blob="00000000 02000000 00000000 08000000 3c000000 c1bdf0ff 8fc275bd 00004041",
);
etOn(@nargs=1, @blob="00000000");
etEx(
@mask=0b10000000,
@nargs=8,
@blob="00000000 02000000 00000000 08000000 3c000000 c1bdf0ff 0ad7a3bd 00004041",
);
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
pushf(@mask=0b1, @nargs=1, @blob="00008041");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="90feffff 00000000");
pushf(@nargs=1, @blob="c092ab3b");
setf(@mask=0b1, @nargs=1, @blob="00008041");
pushi(@nargs=1, @blob="06000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
pushf(@mask=0b1, @nargs=1, @blob="00008041");
pushi(@mask=0b1, @nargs=1, @blob="04000000");
mulf(@blob="");
pushi(@nargs=1, @blob="02000000");
divf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 0000c041 00000000");
pushi(@mask=0b1, @nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="01000000");
addi(@blob="");
seti(@mask=0b1, @nargs=1, @blob="04000000");
jmp(@nargs=2, @blob="74010000 00000000");
etEx(
@mask=0b10000000,
@nargs=8,
@blob="00000000 02000000 00000000 08000000 3c000000 c1bdf0ff 00000000 00004041",
);
etOn(@nargs=1, @blob="00000000");
etEx(
@mask=0b10000000,
@nargs=8,
@blob="00000000 02000000 00000000 08000000 3c000000 c1bdf0ff 4260e5bb 00004041",
);
etOn(@nargs=1, @blob="00000000");
etEx(
@mask=0b10000000,
@nargs=8,
@blob="00000000 02000000 00000000 08000000 3c000000 c1bdf0ff 8fc275bd 00004041",
);
etOn(@nargs=1, @blob="00000000");
etEx(
@mask=0b10000000,
@nargs=8,
@blob="00000000 02000000 00000000 08000000 3c000000 c1bdf0ff 0ad7a3bd 00004041",
);
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
pushf(@mask=0b1, @nargs=1, @blob="00008041");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="90feffff 00000000");
pushf(@mask=0b1, @nargs=1, @blob="0000a041");
pushf(@nargs=1, @blob="850a863e");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="0000a041");
validRad(@mask=0b1, @nargs=1, @blob="0000a041");
pushf(@mask=0b1, @nargs=1, @blob="0000c041");
pushf(@nargs=1, @blob="850a863e");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="0000c041");
validRad(@mask=0b1, @nargs=1, @blob="0000c041");
wait(@nargs=1, @blob="0a000000");
deci(@mask=0b1, @nargs=1, @blob="08000000");
jmpNeq(@nargs=2, @blob="88f9ffff 00000000");
ret(@blob="");
}
void RBoss2Phantom() {
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="10000000 426f7373 32506861 6e746f6d 00000000 69690000 5e000000 69690000 01000000",
);
delete(@blob="");
}
void RBoss3Phantom() {
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="10000000 426f7373 33506861 6e746f6d 00000000 69690000 5e000000 69690000 01000000",
);
delete(@blob="");
}
void RBossCard2Phantom() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="00000000");
dropMain(@nargs=1, @blob="01000000");
call(
@nargs=3,
@blob="14000000 426f7373 43617264 32506861 6e746f6d 00000000 69690000 5e000000 69690000 01000000",
);
delete(@blob="");
}
void RBossCard3Phantom() {
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="14000000 426f7373 43617264 33506861 6e746f6d 00000000 69690000 5e000000 69690000 01000000",
);
delete(@blob="");
}
void RBossCard4Phantom() {
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="14000000 426f7373 43617264 34506861 6e746f6d 00000000 69690000 5e000000 69690000 01000000",
);
delete(@blob="");
}
void YBoss1Girl() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@nargs=2, @blob="01000000 30000000");
pushi(@nargs=1, @blob="70000000");
seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
call(
@nargs=3,
@blob="0c000000 426f7373 31476972 6c000000 69690000 0f000000 69690000 01000000",
);
delete(@blob="");
}
void YBoss2Phantom() {
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="10000000 426f7373 32506861 6e746f6d 00000000 69690000 64000000 69690000 01000000",
);
delete(@blob="");
}
void YBoss3Phantom() {
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="10000000 426f7373 33506861 6e746f6d 00000000 69690000 64000000 69690000 01000000",
);
delete(@blob="");
}
void YBossCard2Phantom() {
stackAlloc(@nargs=1, @blob="04000000");
anmSelect(@nargs=1, @blob="01000000");
dropMain(@nargs=1, @blob="00000000");
anmSetSprite(@nargs=2, @blob="01000000 30000000");
call(
@nargs=3,
@blob="14000000 426f7373 43617264 32506861 6e746f6d 00000000 69690000 64000000 69690000 01000000",
);
delete(@blob="");
}
void YBossCard3Phantom() {
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="14000000 426f7373 43617264 33506861 6e746f6d 00000000 69690000 64000000 69690000 01000000",
);
delete(@blob="");
}
void YBossCard4Phantom() {
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="14000000 426f7373 43617264 34506861 6e746f6d 00000000 69690000 64000000 69690000 01000000",
);
delete(@blob="");
}