#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=""); }