touhou-reimpl/research/default.tecl

112 lines
3.3 KiB
Plaintext

#pragma mapfile "utils/th11.eclm"
meta {anim: ["enemy.anm"]}
void Ecl_EtBreak() {
stackAlloc(@nargs=1, @blob="08000000");
pushf(@nargs=1, @blob="00008041");
setf(@mask=0b1, @nargs=1, @blob="00008040");
flagSet(@nargs=1, @blob="20000000");
jmp(@nargs=2, @blob="78000000 01000000");
etCancel(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
+1: // 1
pushi(@nargs=1, @blob="0a000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="00002044");
lessf(@blob="");
jmpNeq(@nargs=2, @blob="68ffffff 00000000");
delete(@blob="");
}
void Ecl_EtBreak2() {
stackAlloc(@nargs=1, @blob="08000000");
pushf(@nargs=1, @blob="00008041");
setf(@mask=0b1, @nargs=1, @blob="00008040");
flagSet(@nargs=1, @blob="20000000");
jmp(@nargs=2, @blob="78000000 01000000");
etCancel(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
+1: // 1
pushi(@nargs=1, @blob="06000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="00002044");
lessf(@blob="");
jmpNeq(@nargs=2, @blob="68ffffff 00000000");
delete(@blob="");
}
void Ecl_EtBreak2_ni() {
stackAlloc(@nargs=1, @blob="08000000");
pushf(@nargs=1, @blob="00008041");
setf(@mask=0b1, @nargs=1, @blob="00008040");
flagSet(@nargs=1, @blob="20000000");
jmp(@nargs=2, @blob="78000000 01000000");
etClear(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
+1: // 1
pushi(@nargs=1, @blob="06000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="00002044");
lessf(@blob="");
jmpNeq(@nargs=2, @blob="68ffffff 00000000");
delete(@blob="");
}
void Ecl_EtBreak_ni() {
stackAlloc(@nargs=1, @blob="08000000");
pushf(@nargs=1, @blob="00008041");
setf(@mask=0b1, @nargs=1, @blob="00008040");
flagSet(@nargs=1, @blob="20000000");
jmp(@nargs=2, @blob="78000000 01000000");
etClear(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
+1: // 1
pushi(@nargs=1, @blob="0a000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="00002044");
lessf(@blob="");
jmpNeq(@nargs=2, @blob="68ffffff 00000000");
delete(@blob="");
}
void et_ofs_r() {
stackAlloc(@nargs=1, @blob="10000000");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
mulf(@blob="");
circlePos(
@mask=0b1111,
@nargs=4,
@blob="00000041 00004041 00381cc6 000080bf",
);
etOffset(@mask=0b111, @nargs=3, @blob="00000000 00000041 00004041");
ret(@blob="");
}
void test() {
stackAlloc(@nargs=1, @blob="08000000");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
negf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
addf(@blob="");
pushi(@nargs=1, @blob="fdffffff");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
ret(@blob="");
}