#pragma mapfile "utils/th11.eclm" meta { anim: ["enemy.anm", "stgenm06.anm"], ecli: ["default.ecl", "stage06mboss.ecl", "stage06boss.ecl"], } 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"); anmSetSprite(@nargs=2, @blob="01000000 2d000000"); call( @nargs=3, @blob="0c000000 5068616e 746f6d30 31000000 69690000 62000000 69690000 01000000", ); delete(@blob=""); } void Crow00() { stackAlloc(@nargs=1, @blob="04000000"); anmSelect(@nargs=1, @blob="01000000"); anmSetSprite(@nargs=2, @blob="01000000 2e000000"); anmSelect(@nargs=1, @blob="02000000"); anmSetMain(@nargs=2, @blob="00000000 0c000000"); setHurtbox(@nargs=2, @blob="0000c041 0000c041"); setHitbox(@nargs=2, @blob="00008041 00008041"); pushf(@nargs=1, @blob="00004040"); pushf(@mask=0b1, @nargs=1, @blob="003c1cc6"); pushf(@nargs=1, @blob="00000040"); mulf(@blob=""); addf(@blob=""); pushf(@nargs=1, @blob="00000000"); pushf(@mask=0b1, @nargs=1, @blob="00381cc6"); pushi(@nargs=1, @blob="20000000"); divf(@blob=""); addf(@blob=""); moveVel(@mask=0b11, @nargs=2, @blob="000080bf 000080bf"); pushf(@nargs=1, @blob="00004040"); pushf(@mask=0b1, @nargs=1, @blob="003c1cc6"); pushf(@nargs=1, @blob="00000040"); mulf(@blob=""); addf(@blob=""); moveVelTime( @mask=0b1000, @nargs=4, @blob="3c000000 00000000 f02374c9 000080bf", ); callAsync(@nargs=1, @blob="0c000000 43726f77 30305f61 74000000"); +600: // 600 nop(@blob=""); jmp(@nargs=2, @blob="2c000000 58020000"); wait(@nargs=1, @blob="e8030000"); pushi(@nargs=1, @blob="01000000"); jmpNeq(@nargs=2, @blob="d8ffffff 58020000"); delete(@blob=""); } void Crow00_at() { stackAlloc(@nargs=1, @blob="0c000000"); etNew(@nargs=1, @blob="00000000"); etAim(@nargs=2, @blob="00000000 02000000"); etSprite(@nargs=3, @blob="00000000 01000000 06000000"); etCountD( @nargs=9, @blob="00000000 01000000 01000000 01000000 01000000 01000000 02000000 03000000 04000000", ); etAngle(@nargs=3, @blob="00000000 00000000 00000000"); etSpeedD( @nargs=9, @blob="00000000 00000040 00004040 00008040 0000a040 0000c03f 0000c03f 0000c03f 0000c03f", ); etEx( @nargs=8, @blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9", ); pushi(@mask=0b1, @nargs=1, @blob="f0d8ffff"); pushi(@nargs=1, @blob="1e000000"); modi(@blob=""); wait(@mask=0b1, @nargs=1, @blob="ffffffff"); 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 Crow01() { stackAlloc(@nargs=1, @blob="04000000"); anmSelect(@nargs=1, @blob="01000000"); anmSetSprite(@nargs=2, @blob="01000000 2e000000"); anmSelect(@nargs=1, @blob="02000000"); anmSetMain(@nargs=2, @blob="00000000 0c000000"); setHurtbox(@nargs=2, @blob="0000c041 0000c041"); setHitbox(@nargs=2, @blob="00008041 00008041"); dropClear(@blob=""); dropExtra(@nargs=2, @blob="03000000 02000000"); dropExtra(@nargs=2, @blob="02000000 05000000"); dropArea(@nargs=2, @blob="00004042 00004042"); pushf(@nargs=1, @blob="00000000"); pushf(@mask=0b1, @nargs=1, @blob="00381cc6"); pushi(@nargs=1, @blob="20000000"); divf(@blob=""); addf(@blob=""); moveVel(@mask=0b1, @nargs=2, @blob="000080bf 00008040"); pushi(@nargs=1, @blob="0a000000"); pushi(@mask=0b1, @nargs=1, @blob="f0d8ffff"); pushi(@nargs=1, @blob="1e000000"); modi(@blob=""); addi(@blob=""); wait(@mask=0b1, @nargs=1, @blob="ffffffff"); moveVelTime(@nargs=4, @blob="32000000 00000000 f02374c9 00000000"); wait(@nargs=1, @blob="32000000"); callAsync(@nargs=1, @blob="0c000000 43726f77 30315f61 74000000"); wait(@nargs=1, @blob="c8000000"); moveVelTime(@nargs=4, @blob="3c000000 00000000 f02374c9 00008040"); +600: // 600 nop(@blob=""); jmp(@nargs=2, @blob="2c000000 58020000"); wait(@nargs=1, @blob="e8030000"); pushi(@nargs=1, @blob="01000000"); jmpNeq(@nargs=2, @blob="d8ffffff 58020000"); delete(@blob=""); } void Crow01_at() { stackAlloc(@nargs=1, @blob="0c000000"); etNew(@nargs=1, @blob="00000000"); etAim(@nargs=2, @blob="00000000 03000000"); etSprite(@nargs=3, @blob="00000000 04000000 06000000"); etCountD( @nargs=9, @blob="00000000 05000000 05000000 05000000 05000000 01000000 01000000 01000000 01000000", ); etAngle(@nargs=3, @blob="00000000 db0fc93f 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", ); jmp(@nargs=2, @blob="4c000000 00000000"); etOn(@nargs=1, @blob="00000000"); diffWait(@nargs=4, @blob="0c000000 06000000 05000000 04000000"); pushi(@nargs=1, @blob="01000000"); jmpNeq(@nargs=2, @blob="b8ffffff 00000000"); ret(@blob=""); } void Crow02() { stackAlloc(@nargs=1, @blob="04000000"); anmSelect(@nargs=1, @blob="01000000"); anmSetSprite(@nargs=2, @blob="01000000 2e000000"); anmSelect(@nargs=1, @blob="02000000"); anmSetMain(@nargs=2, @blob="00000000 0c000000"); setHurtbox(@nargs=2, @blob="0000c041 0000c041"); setHitbox(@nargs=2, @blob="00008041 00008041"); dropClear(@blob=""); dropExtra(@nargs=2, @blob="03000000 08000000"); dropExtra(@nargs=2, @blob="02000000 05000000"); dropArea(@nargs=2, @blob="00004042 00004042"); pushf(@nargs=1, @blob="00000000"); pushf(@mask=0b1, @nargs=1, @blob="00381cc6"); pushi(@nargs=1, @blob="20000000"); divf(@blob=""); addf(@blob=""); moveVel(@mask=0b1, @nargs=2, @blob="000080bf 00008040"); pushi(@nargs=1, @blob="0a000000"); pushi(@mask=0b1, @nargs=1, @blob="f0d8ffff"); pushi(@nargs=1, @blob="1e000000"); modi(@blob=""); addi(@blob=""); wait(@mask=0b1, @nargs=1, @blob="ffffffff"); moveVelTime(@nargs=4, @blob="32000000 00000000 f02374c9 00000000"); wait(@nargs=1, @blob="32000000"); callAsync(@nargs=1, @blob="0c000000 43726f77 30325f61 74000000"); wait(@nargs=1, @blob="c8000000"); moveVelTime(@nargs=4, @blob="3c000000 00000000 f02374c9 00008040"); +600: // 600 nop(@blob=""); jmp(@nargs=2, @blob="2c000000 58020000"); wait(@nargs=1, @blob="e8030000"); pushi(@nargs=1, @blob="01000000"); jmpNeq(@nargs=2, @blob="d8ffffff 58020000"); delete(@blob=""); } void Crow02_at() { stackAlloc(@nargs=1, @blob="0c000000"); etNew(@nargs=1, @blob="00000000"); etAim(@nargs=2, @blob="00000000 03000000"); etSprite(@nargs=3, @blob="00000000 04000000 06000000"); etCountD( @nargs=9, @blob="00000000 05000000 05000000 05000000 05000000 01000000 01000000 01000000 01000000", ); etAngle(@nargs=3, @blob="00000000 db0fc93f 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", ); jmp(@nargs=2, @blob="4c000000 00000000"); etOn(@nargs=1, @blob="00000000"); diffWait(@nargs=4, @blob="0c000000 06000000 05000000 04000000"); pushi(@nargs=1, @blob="01000000"); jmpNeq(@nargs=2, @blob="b8ffffff 00000000"); ret(@blob=""); } void Crow03() { stackAlloc(@nargs=1, @blob="04000000"); anmSelect(@nargs=1, @blob="01000000"); anmSetSprite(@nargs=2, @blob="01000000 2e000000"); anmSelect(@nargs=1, @blob="02000000"); anmSetMain(@nargs=2, @blob="00000000 0c000000"); setHurtbox(@nargs=2, @blob="0000c041 0000c041"); setHitbox(@nargs=2, @blob="00008041 00008041"); pushf(@nargs=1, @blob="00004040"); pushf(@mask=0b1, @nargs=1, @blob="003c1cc6"); pushf(@nargs=1, @blob="00000040"); mulf(@blob=""); addf(@blob=""); pushf(@nargs=1, @blob="00000000"); pushf(@mask=0b1, @nargs=1, @blob="00381cc6"); pushi(@nargs=1, @blob="20000000"); divf(@blob=""); addf(@blob=""); moveVel(@mask=0b11, @nargs=2, @blob="000080bf 000080bf"); pushf(@nargs=1, @blob="00004040"); pushf(@mask=0b1, @nargs=1, @blob="003c1cc6"); pushf(@nargs=1, @blob="00000040"); mulf(@blob=""); addf(@blob=""); moveVelTime( @mask=0b1000, @nargs=4, @blob="3c000000 00000000 f02374c9 000080bf", ); callAsync(@nargs=1, @blob="0c000000 43726f77 30335f61 74000000"); +600: // 600 nop(@blob=""); jmp(@nargs=2, @blob="2c000000 58020000"); wait(@nargs=1, @blob="e8030000"); pushi(@nargs=1, @blob="01000000"); jmpNeq(@nargs=2, @blob="d8ffffff 58020000"); delete(@blob=""); } void Crow03_at() { stackAlloc(@nargs=1, @blob="0c000000"); etNew(@nargs=1, @blob="00000000"); etAim(@nargs=2, @blob="00000000 02000000"); etSprite(@nargs=3, @blob="00000000 0c000000 03000000"); etCount(@nargs=3, @blob="00000000 01000000 01000000"); etAngle(@mask=0b10, @nargs=3, @blob="00000000 00381cc6 00000000"); etSpeed(@nargs=3, @blob="00000000 cdcccc3d 0000c03f"); etEx( @nargs=8, @blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9", ); etEx( @nargs=8, @blob="00000000 01000000 00000000 04000000 78000000 c1bdf0ff 8988083d db0fc93f", ); pushi(@mask=0b1, @nargs=1, @blob="f0d8ffff"); pushi(@nargs=1, @blob="1e000000"); modi(@blob=""); wait(@mask=0b1, @nargs=1, @blob="ffffffff"); jmp(@nargs=2, @blob="4c000000 00000000"); etOn(@nargs=1, @blob="00000000"); diffWait(@nargs=4, @blob="3c000000 1e000000 14000000 0a000000"); pushi(@nargs=1, @blob="01000000"); jmpNeq(@nargs=2, @blob="b8ffffff 00000000"); ret(@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"); anmSetSprite(@nargs=2, @blob="01000000 2f000000"); call( @nargs=3, @blob="0c000000 5068616e 746f6d30 31000000 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"); playSound(@nargs=1, @blob="35000000"); dialogRead(@nargs=1, @blob="02000000"); 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="00000000"); 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"); callAsync(@nargs=1, @blob="0c000000 4d61696e 53756230 30620000"); jmp(@nargs=2, @blob="b8000000 00000000"); pushi(@nargs=1, @blob="40000000"); pushi(@mask=0b1, @nargs=1, @blob="0c000000"); pushi(@nargs=1, @blob="08000000"); muli(@blob=""); addi(@blob=""); enmCreate( @mask=0b100, @nargs=6, @blob="08000000 43726f77 30300000 000060c3 000080bf 32000000 e8030000 01000000", ); wait(@nargs=1, @blob="0a000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="4cffffff 00000000"); ret(@blob=""); } void MainSub00b() { stackAlloc(@nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="10000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b8000000 00000000"); pushi(@nargs=1, @blob="40000000"); pushi(@mask=0b1, @nargs=1, @blob="0c000000"); pushi(@nargs=1, @blob="08000000"); muli(@blob=""); addi(@blob=""); enmCreateM( @mask=0b100, @nargs=6, @blob="08000000 43726f77 30300000 00006043 000080bf 32000000 e8030000 01000000", ); wait(@nargs=1, @blob="0a000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="4cffffff 00000000"); ret(@blob=""); } void MainSub01() { stackAlloc(@nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="06000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); callAsync(@nargs=1, @blob="0c000000 4d61696e 53756230 31620000"); jmp(@nargs=2, @blob="b8000000 00000000"); pushi(@nargs=1, @blob="80000000"); pushf(@mask=0b1, @nargs=1, @blob="000c1cc6"); pushi(@nargs=1, @blob="40000000"); mulf(@blob=""); addf(@blob=""); enmCreate( @mask=0b100, @nargs=6, @blob="08000000 43726f77 30310000 000060c3 000080bf c8000000 e8030000 02000000", ); wait(@nargs=1, @blob="28000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="4cffffff 00000000"); ret(@blob=""); } void MainSub01b() { stackAlloc(@nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="06000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b8000000 00000000"); pushi(@nargs=1, @blob="80000000"); pushf(@mask=0b1, @nargs=1, @blob="000c1cc6"); pushi(@nargs=1, @blob="40000000"); mulf(@blob=""); addf(@blob=""); enmCreateM( @mask=0b100, @nargs=6, @blob="08000000 43726f77 30310000 00006043 000080bf c8000000 e8030000 02000000", ); wait(@nargs=1, @blob="28000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="4cffffff 00000000"); ret(@blob=""); } void MainSub02() { stackAlloc(@nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); callAsync(@nargs=1, @blob="0c000000 4d61696e 53756230 32620000"); jmp(@nargs=2, @blob="b0000000 00000000"); pushf(@nargs=1, @blob="00000000"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushf(@nargs=1, @blob="dc0f4940"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 42506861 6e746f6d 30300000 00006043 00000043 64000000 e8030000 02000000", ); wait(@nargs=1, @blob="14000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="54ffffff 00000000"); wait(@nargs=1, @blob="f0000000"); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b0000000 00000000"); pushf(@nargs=1, @blob="00000000"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushf(@nargs=1, @blob="d80fc93f"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 42506861 6e746f6d 30300000 00008042 000000c2 64000000 e8030000 02000000", ); wait(@nargs=1, @blob="14000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="54ffffff 00000000"); wait(@nargs=1, @blob="78000000"); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b0000000 00000000"); pushf(@nargs=1, @blob="dc0f4940"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushf(@nargs=1, @blob="00000000"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 42506861 6e746f6d 30300000 000060c3 00000043 32000000 e8030000 02000000", ); wait(@nargs=1, @blob="14000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="54ffffff 00000000"); wait(@nargs=1, @blob="3c000000"); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b0000000 00000000"); pushf(@nargs=1, @blob="dc0f4940"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushf(@nargs=1, @blob="d80fc93f"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 42506861 6e746f6d 30300000 000080c2 000000c2 32000000 e8030000 02000000", ); wait(@nargs=1, @blob="14000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="54ffffff 00000000"); wait(@nargs=1, @blob="3c000000"); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b0000000 00000000"); pushf(@nargs=1, @blob="00000000"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushf(@nargs=1, @blob="dc0f4940"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 42506861 6e746f6d 30300000 00006043 00000043 32000000 e8030000 02000000", ); wait(@nargs=1, @blob="14000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="54ffffff 00000000"); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b0000000 00000000"); pushf(@nargs=1, @blob="00000000"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushf(@nargs=1, @blob="d80fc93f"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 42506861 6e746f6d 30300000 00008042 000000c2 32000000 e8030000 02000000", ); wait(@nargs=1, @blob="14000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="54ffffff 00000000"); ret(@blob=""); } void MainSub02b() { stackAlloc(@nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); wait(@nargs=1, @blob="f0000000"); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b0000000 00000000"); pushf(@nargs=1, @blob="dc0f4940"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushf(@nargs=1, @blob="00000000"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 42506861 6e746f6d 30300000 000060c3 00000043 64000000 e8030000 02000000", ); wait(@nargs=1, @blob="14000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="54ffffff 00000000"); wait(@nargs=1, @blob="f0000000"); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b0000000 00000000"); pushf(@nargs=1, @blob="dc0f4940"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushf(@nargs=1, @blob="d80fc93f"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 42506861 6e746f6d 30300000 000080c2 000000c2 64000000 e8030000 02000000", ); wait(@nargs=1, @blob="14000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="54ffffff 00000000"); wait(@nargs=1, @blob="3c000000"); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b0000000 00000000"); pushf(@nargs=1, @blob="00000000"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushf(@nargs=1, @blob="dc0f4940"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 42506861 6e746f6d 30300000 00006043 00000043 32000000 e8030000 02000000", ); wait(@nargs=1, @blob="14000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="54ffffff 00000000"); wait(@nargs=1, @blob="3c000000"); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b0000000 00000000"); pushf(@nargs=1, @blob="00000000"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushf(@nargs=1, @blob="d80fc93f"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 42506861 6e746f6d 30300000 00008042 000000c2 32000000 e8030000 02000000", ); wait(@nargs=1, @blob="14000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="54ffffff 00000000"); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b0000000 00000000"); pushf(@nargs=1, @blob="dc0f4940"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushf(@nargs=1, @blob="00000000"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 42506861 6e746f6d 30300000 000060c3 00000043 32000000 e8030000 02000000", ); wait(@nargs=1, @blob="14000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="54ffffff 00000000"); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b0000000 00000000"); pushf(@nargs=1, @blob="dc0f4940"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushf(@nargs=1, @blob="d80fc93f"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 42506861 6e746f6d 30300000 000080c2 000000c2 32000000 e8030000 02000000", ); wait(@nargs=1, @blob="14000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="54ffffff 00000000"); ret(@blob=""); } void MainSub03() { stackAlloc(@nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="0a000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); callAsync(@nargs=1, @blob="0c000000 4d61696e 53756230 33620000"); jmp(@nargs=2, @blob="b8000000 00000000"); pushi(@nargs=1, @blob="80000000"); pushf(@mask=0b1, @nargs=1, @blob="000c1cc6"); pushi(@nargs=1, @blob="40000000"); mulf(@blob=""); addf(@blob=""); enmCreateF( @mask=0b100, @nargs=6, @blob="08000000 43726f77 30320000 000060c3 000080bf c8000000 e8030000 02000000", ); wait(@nargs=1, @blob="28000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="4cffffff 00000000"); ret(@blob=""); } void MainSub03b() { stackAlloc(@nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="0a000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b8000000 00000000"); pushi(@nargs=1, @blob="80000000"); pushf(@mask=0b1, @nargs=1, @blob="000c1cc6"); pushi(@nargs=1, @blob="40000000"); mulf(@blob=""); addf(@blob=""); enmCreateMF( @mask=0b100, @nargs=6, @blob="08000000 43726f77 30320000 00006043 000080bf c8000000 e8030000 02000000", ); wait(@nargs=1, @blob="28000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="4cffffff 00000000"); ret(@blob=""); } void MainSub04() { stackAlloc(@nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="20000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); callAsync(@nargs=1, @blob="0c000000 4d61696e 53756230 34620000"); jmp(@nargs=2, @blob="b8000000 00000000"); pushi(@nargs=1, @blob="60000000"); pushf(@mask=0b1, @nargs=1, @blob="000c1cc6"); pushi(@nargs=1, @blob="60000000"); mulf(@blob=""); addf(@blob=""); enmCreateF( @mask=0b100, @nargs=6, @blob="08000000 43726f77 30330000 000060c3 000080bf 32000000 e8030000 02000000", ); wait(@nargs=1, @blob="0a000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="4cffffff 00000000"); ret(@blob=""); } void MainSub04b() { stackAlloc(@nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="20000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); jmp(@nargs=2, @blob="b8000000 00000000"); pushi(@nargs=1, @blob="60000000"); pushf(@mask=0b1, @nargs=1, @blob="000c1cc6"); pushi(@nargs=1, @blob="60000000"); mulf(@blob=""); addf(@blob=""); enmCreateMF( @mask=0b100, @nargs=6, @blob="08000000 43726f77 30330000 00006043 000080bf 32000000 e8030000 02000000", ); wait(@nargs=1, @blob="0a000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="4cffffff 00000000"); ret(@blob=""); } void MainSub05() { stackAlloc(@nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="40000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); pushf(@nargs=1, @blob="a0e1cd3b"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 52506861 6e746f6d 30310000 00000000 000000c2 70170000 e8030000 00000000", ); wait(@nargs=1, @blob="08020000"); pushf(@nargs=1, @blob="a0e14dbc"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); enmCreate( @nargs=6, @blob="0c000000 52506861 6e746f6d 30310000 00000000 000000c2 70170000 e8030000 00000000", ); wait(@nargs=1, @blob="c2010000"); ret(@blob=""); } void MapleEnemy() { stackAlloc(@nargs=1, @blob="04000000"); flagSet(@nargs=1, @blob="20000000"); anmPlayAbs(@nargs=2, @blob="00000000 b3000000"); +3: // 3 jmp(@nargs=2, @blob="e8ffffff 00000000"); delete(@blob=""); } void Phantom00() { 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"); callAsync(@nargs=1, @blob="10000000 5068616e 746f6d30 305f6174 00000000"); pushf(@mask=0b1, @nargs=1, @blob="00f41bc6"); setf(@mask=0b1, @nargs=1, @blob="00000041"); moveVelRel(@mask=0b1, @nargs=2, @blob="00000041 0000c03f"); moveEllipse( @mask=0b10001, @nargs=6, @blob="00f01bc6 5077d63c 00008042 00000000 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 Phantom00_at() { stackAlloc(@nargs=1, @blob="0c000000"); etNew(@nargs=1, @blob="00000000"); etAim(@nargs=2, @blob="00000000 02000000"); etSprite(@nargs=3, @blob="00000000 01000000 04000000"); etCountD( @nargs=9, @blob="00000000 01000000 01000000 01000000 01000000 01000000 01000000 01000000 01000000", ); etAngle(@nargs=3, @blob="00000000 00000000 00000000"); etSpeedD( @nargs=9, @blob="00000000 00006040 00008040 00009040 0000a040 9a99d93f 9a99d93f 9a99d93f 9a99d93f", ); etEx( @nargs=8, @blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9", ); pushi(@mask=0b1, @nargs=1, @blob="f0d8ffff"); pushi(@nargs=1, @blob="14000000"); modi(@blob=""); wait(@mask=0b1, @nargs=1, @blob="ffffffff"); jmp(@nargs=2, @blob="9c000000 00000000"); pushf(@mask=0b1, @nargs=1, @blob="00301cc6"); pushi(@nargs=1, @blob="62010000"); lessf(@blob=""); jmpEq(@nargs=2, @blob="2c000000 00000000"); etOn(@nargs=1, @blob="00000000"); diffWait(@nargs=4, @blob="46000000 23000000 1e000000 12000000"); pushi(@nargs=1, @blob="01000000"); jmpNeq(@nargs=2, @blob="68ffffff 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"); dropClear(@blob=""); dropExtra(@nargs=2, @blob="01000000 14000000"); dropExtra(@nargs=2, @blob="02000000 14000000"); dropArea(@nargs=2, @blob="00004042 00004042"); 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"); pushf(@mask=0b1, @nargs=1, @blob="00f41bc6"); setf(@mask=0b1, @nargs=1, @blob="00000041"); moveVel(@nargs=2, @blob="db0fc93f 00004040"); moveVelTime(@nargs=4, @blob="78000000 00000000 f02374c9 00000000"); +120: // 120 callAsync(@nargs=1, @blob="10000000 5068616e 746f6d30 315f6174 00000000"); +600: // 720 moveVel(@nargs=2, @blob="db0fc9bf 00000000"); moveVelTime(@nargs=4, @blob="c8000000 00000000 f02374c9 00000040"); killAllAsync(@blob=""); jmp(@nargs=2, @blob="2c000000 d0020000"); wait(@nargs=1, @blob="e8030000"); pushi(@nargs=1, @blob="01000000"); jmpNeq(@nargs=2, @blob="d8ffffff d0020000"); ret(@blob=""); } void Phantom01_at() { stackAlloc(@nargs=1, @blob="10000000"); etNew(@nargs=1, @blob="00000000"); etAim(@nargs=2, @blob="00000000 05000000"); etSprite(@nargs=3, @blob="00000000 03000000 03000000"); etCountD( @nargs=9, @blob="00000000 03000000 06000000 06000000 09000000 01000000 01000000 01000000 01000000", ); etAngle(@nargs=3, @blob="00000000 00000000 00000000"); etSpeedD( @nargs=9, @blob="00000000 6666e63f 00000040 00004040 00004040 9a99d93f 9a99d93f 9a99d93f 9a99d93f", ); etEx( @nargs=8, @blob="00000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9", ); pushi(@mask=0b1, @nargs=1, @blob="f0d8ffff"); pushi(@nargs=1, @blob="14000000"); modi(@blob=""); wait(@mask=0b1, @nargs=1, @blob="ffffffff"); pushf(@mask=0b1, @nargs=1, @blob="00141cc6"); setf(@mask=0b1, @nargs=1, @blob="00000000"); pushf(@nargs=1, @blob="7077d63c"); setf(@mask=0b1, @nargs=1, @blob="00008040"); pushi(@nargs=1, @blob="40000000"); setf(@mask=0b1, @nargs=1, @blob="00000041"); jmp(@nargs=2, @blob="d0010000 00000000"); etDist(@mask=0b10, @nargs=2, @blob="00000000 00000041"); etAngle(@mask=0b10, @nargs=3, @blob="00000000 00000000 00000000"); etOn(@nargs=1, @blob="00000000"); pushf(@mask=0b1, @nargs=1, @blob="00000000"); pushf(@mask=0b1, @nargs=1, @blob="00008040"); subf(@blob=""); setf(@mask=0b1, @nargs=1, @blob="00000000"); pushf(@mask=0b1, @nargs=1, @blob="00008040"); pushf(@mask=0b1, @nargs=1, @blob="00f41bc6"); addf(@blob=""); setf(@mask=0b1, @nargs=1, @blob="00008040"); pushf(@mask=0b1, @nargs=1, @blob="00000041"); pushi(@nargs=1, @blob="00000000"); greaterf(@blob=""); jmpEq(@nargs=2, @blob="64000000 00000000"); pushf(@mask=0b1, @nargs=1, @blob="00000041"); pushf(@nargs=1, @blob="0000003f"); subf(@blob=""); setf(@mask=0b1, @nargs=1, @blob="00000041"); validRad(@mask=0b1, @nargs=1, @blob="00000000"); validRad(@mask=0b1, @nargs=1, @blob="00008040"); wait(@nargs=1, @blob="02000000"); pushi(@nargs=1, @blob="01000000"); jmpNeq(@nargs=2, @blob="34feffff 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"); call( @nargs=3, @blob="0c000000 5068616e 746f6d30 31000000 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"); anmSetSprite(@nargs=2, @blob="01000000 30000000"); call( @nargs=3, @blob="0c000000 5068616e 746f6d30 31000000 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="18010000"); call(@nargs=1, @blob="0c000000 4d61696e 53756230 31000000"); wait(@nargs=1, @blob="c8000000"); call(@nargs=1, @blob="0c000000 4d61696e 53756230 32000000"); wait(@nargs=1, @blob="d2000000"); playSound(@nargs=1, @blob="35000000"); dialogRead(@nargs=1, @blob="02000000"); enmCreateA( @nargs=6, @blob="08000000 4d426f73 73000000 00004043 000000c2 28000000 10270000 01000000", ); dialogWait(@blob=""); wait(@nargs=1, @blob="e8030000"); call(@nargs=1, @blob="0c000000 4d61696e 53756230 33000000"); wait(@nargs=1, @blob="c8000000"); call(@nargs=1, @blob="0c000000 4d61696e 53756230 34000000"); wait(@nargs=1, @blob="c8000000"); call(@nargs=1, @blob="0c000000 4d61696e 53756230 35000000"); wait(@nargs=1, @blob="68010000"); dialogRead(@nargs=1, @blob="00000000"); dialogWait(@blob=""); enmCreateA( @nargs=6, @blob="08000000 426f7373 00000000 000058c3 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=""); }