diff --git a/.gitignore b/.gitignore index f7c4e9e2..a4960ad2 100644 --- a/.gitignore +++ b/.gitignore @@ -62,7 +62,6 @@ types_*.taghl !calcrom.pl !sound/programmable_wave_samples/*.pcm _Deparsed_XSubs.pm -*.py *.sna __pycache__ .vscode/settings.json diff --git a/asm/macros/script.inc b/asm/macros/script.inc index ba693547..314edf4c 100644 --- a/asm/macros/script.inc +++ b/asm/macros/script.inc @@ -1,285 +1,682 @@ @ All the macro functions for scripts @ Generated by disassemble_script.py .macro SCRIPT_START name - .globl \name - .section .text + .globl \name + .section .text \name: .endm .macro SCRIPT_END - .short 0xffff + .short 0xffff .endm -.macro nullsub_507 - .short 0x0400 +.macro ScriptCommandNop + .short 0x0400 .endm -.macro sub_0807E004 - .short 0x0401 +.macro StartScript + .short 0x0401 .endm -.macro sub_0807E014 - .short 0x0402 +.macro StopScript + .short 0x0402 .endm -.macro sub_0807E024 s - .short 0x0803 - .short \s +.macro Jump s + .short 0x0803 + .short \s .endm -.macro sub_0807E050 s - .short 0x0804 - .short \s +.macro JumpIf s + .short 0x0804 + .short \s .endm -.macro sub_0807E064 s - .short 0x0805 - .short \s +.macro JumpIfNot s + .short 0x0805 + .short \s .endm -.macro sub_0807E078 s - .short 0x0806 - .short \s +.macro _0807E078 s + .short 0x0806 + .short \s .endm -.macro sub_0807E0A0 w - .short 0x0c07 - .word \w +.macro JumpAbsolute w + .short 0x0c07 + .word \w .endm -.macro sub_0807E0B8 w - .short 0x0c08 - .word \w +.macro JumpAbsoluteIf w + .short 0x0c08 + .word \w .endm -.macro sub_0807E0CC w - .short 0x0c09 - .word \w +.macro JumpAbsoluteIfNot w + .short 0x0c09 + .word \w .endm -.macro sub_0807E0E0 w - .short 0x0c0a - .word \w +.macro _0807E0E0 w + .short 0x0c0a + .word \w .endm -.macro sub_0807E10C w - .short 0x0c0b - .word \w +.macro Call w + .short 0x0c0b + .word \w .endm -.macro sub_0807E124 a,b - .short 0x140c - .word \a - .word \b +.macro CallWithArg a,b + .short 0x140c + .word \a + .word \b .endm -.macro sub_0807E148 w - .short 0x0c0d - .word \w +.macro LoadRoomEntityList w + .short 0x0c0d + .word \w .endm -.macro sub_0807E158 w - .short 0x0c0e - .word \w +.macro TestBit w + .short 0x0c0e + .word \w .endm -.macro sub_0807E188 s - .short 0x080f - .short \s +.macro CheckInventory1 s + .short 0x080f + .short \s .endm -.macro sub_0807E1D8 s - .short 0x0810 - .short \s +.macro CheckInventory2 s + .short 0x0810 + .short \s .endm -.macro sub_0807E4AC s - .short 0x0811 - .short \s +.macro HasRoomItemForSale s + .short 0x0811 + .short \s .endm -.macro sub_0807E260 s - .short 0x0815 - .short \s +.macro CheckLocalFlag s + .short 0x0812 + .short \s .endm -.macro sub_0807E2A8 s - .short 0x0817 - .short \s +.macro CheckLocalFlagByOffset a,b + .short 0x0c13 + .short \a + .short \b .endm -.macro sub_0807E2E4 - .short 0x0418 +.macro CheckGlobalFlag s + .short 0x0814 + .short \s .endm -.macro sub_0807E30C - .short 0x0419 +.macro CheckRoomFlag s + .short 0x0815 + .short \s .endm -.macro sub_0807E40C s - .short 0x081d - .short \s +.macro CheckPlayerInRegion a,b,c + .short 0x1016 + .short \a + .short \b + .short \c .endm -.macro sub_0807E5F8 w - .short 0x0c28 - .word \w +.macro CheckPlayerInRegion2 s + .short 0x0817 + .short \s .endm -.macro sub_0807E650 s - .short 0x082d - .short \s +.macro CheckEntityInteractType + .short 0x0418 .endm -.macro sub_0807E680 s - .short 0x0831 - .short \s +.macro _0807E30C + .short 0x0419 .endm -.macro sub_0807E6AC w - .short 0x0c33 - .word \w +.macro HasRupees s + .short 0x081a + .short \s .endm -.macro sub_0807E6DC - .short 0x0434 +.macro _0807E3BC s + .short 0x081b + .short \s .endm -.macro sub_0807E864 - .short 0x0443 +.macro _0807E3E8 + .short 0x041c .endm -.macro sub_0807E878 - .short 0x0444 +.macro CheckKinstoneFused s + .short 0x081d + .short \s .endm -.macro sub_0807E8C4 w - .short 0x0c47 - .word \w +.macro BuyItem a,b + .short 0x0c1e + .short \a + .short \b .endm -.macro sub_0807E8E4_0 - .short 0x0449 +.macro _0807E48C s + .short 0x081f + .short \s .endm -.macro sub_0807E8E4_1 - .short 0x044a +.macro _0807E4CC w + .short 0x0c20 + .word \w .endm -.macro sub_0807E8E4_2 - .short 0x044b +.macro _0807E4EC w + .short 0x0c21 + .word \w .endm -.macro sub_0807E8E4_3 - .short 0x044c +.macro _0807E51 s + .short 0x0822 + .short \s .endm -.macro sub_0807E930 s - .short 0x0850 - .short \s +.macro CheckPlayerFlags w + .short 0x0c23 + .word \w .endm -.macro sub_0807E944 - .short 0x0451 +.macro _0807E564 + .short 0x0424 .endm -.macro sub_0807E9D4 - .short 0x0453 +.macro EntityHasHeight + .short 0x0425 .endm -.macro sub_0807E9DC - .short 0x0454 +.macro ComparePlayerAction s + .short 0x0826 + .short \s .endm -.macro sub_0807E9F0 - .short 0x0456 +.macro ComparePlayerAnimationState s + .short 0x0827 + .short \s .endm -.macro sub_0807EA4C - .short 0x0457 +.macro _0807E5F8 w + .short 0x0c28 + .word \w .endm -.macro sub_0807EA94 - .short 0x0459 +.macro _0807E610 w + .short 0x0c29 + .word \w .endm -.macro sub_0807EAB4 s - .short 0x085a - .short \s +.macro SetLocalFlag s + .short 0x082a + .short \s .endm -.macro sub_0807EAD0 a,b - .short 0x0c5c - .short \a - .short \b +.macro SetLocalFlagByOffset a,b + .short 0x0c2b + .short \a + .short \b .endm -.macro sub_0807EB28 s - .short 0x085f - .short \s +.macro ClearLocalFlag s + .short 0x082c + .short \s .endm -.macro sub_0807EB44 s - .short 0x0861 - .short \s +.macro SetGlobalFlag s + .short 0x082d + .short \s .endm -.macro sub_0807EB74 - .short 0x0463 +.macro ClearGlobalFlag s + .short 0x082e + .short \s .endm -.macro sub_0807EB8C - .short 0x0464 +.macro SetRoomFlag s + .short 0x082f + .short \s .endm -.macro sub_0807EBC0 s - .short 0x0867 - .short \s +.macro ClearRoomFlag s + .short 0x0830 + .short \s .endm -.macro sub_0807EC1C s - .short 0x086d - .short \s +.macro Wait s + .short 0x0831 + .short \s .endm -.macro sub_0807ECF4 s - .short 0x0871 - .short \s +.macro WaitForSomething w + .short 0x0c32 + .word \w .endm -.macro sub_0807EDD4 a,b - .short 0x0c73 - .short \a - .short \b +.macro WaitForSomething2 w + .short 0x0c33 + .word \w .endm -.macro sub_0807EE30 - .short 0x0475 +.macro WaitPlayerAction8 + .short 0x0434 .endm -.macro sub_0807EF80 s - .short 0x0879 - .short \s +.macro WaitForPlayerAction0x17 + .short 0x0435 .endm -.macro sub_0807EFAC s - .short 0x087c - .short \s +.macro WaitFor_1 + .short 0x0436 .endm -.macro sub_0807EFE4 - .short 0x047e +.macro WaitFor_2 + .short 0x0437 .endm -.macro sub_0807F034 s - .short 0x0882 - .short \s +.macro _0807E778 s + .short 0x0838 + .short \s .endm -.macro sub_0807F098 - .short 0x0487 +.macro _0807E788 w + .short 0x0c39 + .word \w .endm -.macro sub_0807F0B4 s - .short 0x0889 - .short \s -.endm \ No newline at end of file +.macro _0807E79C + .short 0x043a +.endm + +.macro ScriptCommandNop2 s + .short 0x083b + .short \s +.endm + +.macro DoFade4 + .short 0x043c +.endm + +.macro DoFade5 + .short 0x043d +.endm + +.macro DoFade6 + .short 0x043e +.endm + +.macro DoFade7 + .short 0x043f +.endm + +.macro _0807E800 w + .short 0x0c40 + .word \w +.endm + +.macro _0807E80C w + .short 0x0c41 + .word \w +.endm + +.macro _0807E858 s + .short 0x0842 + .short \s +.endm + +.macro _0807E864 + .short 0x0443 +.endm + +.macro _0807E878 + .short 0x0444 +.endm + +.macro _0807E888 + .short 0x0445 +.endm + +.macro SetPlayerAction w + .short 0x0c46 + .word \w +.endm + +.macro StartPlayerScript w + .short 0x0c47 + .word \w +.endm + +.macro _0807E8D4 s + .short 0x0848 + .short \s +.endm + +.macro _0807E8E4_0 + .short 0x0449 +.endm + +.macro _0807E8E4_1 + .short 0x044a +.endm + +.macro _0807E8E4_2 + .short 0x044b +.endm + +.macro _0807E8E4_3 + .short 0x044c +.endm + +.macro _0807E908 s + .short 0x084d + .short \s +.endm + +.macro _0807E914 w + .short 0x0c4e + .word \w +.endm + +.macro _0807E924 + .short 0x044f +.endm + +.macro _0807E930 s + .short 0x0850 + .short \s +.endm + +.macro _0807E944 + .short 0x0451 +.endm + +.macro _0807E974 s + .short 0x0852 + .short \s +.endm + +.macro _0807E9D4 + .short 0x0453 +.endm + +.macro _0807E9DC + .short 0x0454 +.endm + +.macro _0807E9E4 s + .short 0x0855 + .short \s +.endm + +.macro _0807E9F0 + .short 0x0456 +.endm + +.macro _0807EA4C + .short 0x0457 +.endm + +.macro _0807EA88 s + .short 0x0858 + .short \s +.endm + +.macro _0807EA94 + .short 0x0459 +.endm + +.macro TextboxNoOverlapFollow s + .short 0x085a + .short \s +.endm + +.macro TextboxNoOverlap s + .short 0x085b + .short \s +.endm + +.macro TextboxNoOverlapFollowPos a,b + .short 0x0c5c + .short \a + .short \b +.endm + +.macro _0807EAF0 w + .short 0x0c5d + .word \w +.endm + +.macro TextboxNoOverlapVar + .short 0x045e +.endm + +.macro _0807EB28 s + .short 0x085f + .short \s +.endm + +.macro _0807EB38 + .short 0x0460 +.endm + +.macro _0807EB44 s + .short 0x0861 + .short \s +.endm + +.macro _0807EB4C a,b + .short 0x0c62 + .short \a + .short \b +.endm + +.macro _0807EB74 + .short 0x0463 +.endm + +.macro _0807EB8C + .short 0x0464 +.endm + +.macro SetEntityDirection s + .short 0x0865 + .short \s +.endm + +.macro SetEntityDirectionWithAnimationState s + .short 0x0866 + .short \s +.endm + +.macro SetEntityNonPlanarMovement s + .short 0x0867 + .short \s +.endm + +.macro SetEntity0x20 w + .short 0x0c68 + .word \w +.endm + +.macro SetEntityPositionRelative w + .short 0x0c69 + .word \w +.endm + +.macro SetEntityPosition a,b + .short 0x0c6a + .short \a + .short \b +.endm + +.macro MoveEntityToPlayer + .short 0x046b +.endm + +.macro ScriptCommandNop3 + .short 0x046c +.endm + +.macro _0807EC1C s + .short 0x086d + .short \s +.endm + +.macro _0807EC64 s + .short 0x086e + .short \s +.endm + +.macro _0807EC94 s + .short 0x086f + .short \s +.endm + +.macro _0807ECC4 s + .short 0x0870 + .short \s +.endm + +.macro _0807ECF4 s + .short 0x0871 + .short \s +.endm + +.macro _0807ED24 a,b,c + .short 0x1072 + .short \a + .short \b + .short \c +.endm + +.macro _0807EDD4 a,b + .short 0x0c73 + .short \a + .short \b +.endm + +.macro _0807EE04 a,b + .short 0x0c74 + .short \a + .short \b +.endm + +.macro _0807EE30 + .short 0x0475 +.endm + +.macro _0807EEB4 + .short 0x0476 +.endm + +.macro _0807EEF4 a,b + .short 0x0c77 + .short \a + .short \b +.endm + +.macro _0807EF3C a,b + .short 0x0c78 + .short \a + .short \b +.endm + +.macro _0807EF80 s + .short 0x0879 + .short \s +.endm + +.macro _0807EF90 s + .short 0x087a + .short \s +.endm + +.macro SoundReq s + .short 0x087b + .short \s +.endm + +.macro SoundReq2 s + .short 0x087c + .short \s +.endm + +.macro SoundReq3 w + .short 0x0c7d + .word \w +.endm + +.macro SoundReq0x80100000 + .short 0x047e +.endm + +.macro ModRupees s + .short 0x087f + .short \s +.endm + +.macro ModHealth s + .short 0x0880 + .short \s +.endm + +.macro IncreaseMaxHealth s + .short 0x0881 + .short \s +.endm + +.macro _0807F034 s + .short 0x0882 + .short \s +.endm + +.macro _0807F050 s + .short 0x0883 + .short \s +.endm + +.macro GetInventoryValue s + .short 0x0884 + .short \s +.endm + +.macro _0807F078 a,b + .short 0x0c85 + .short \a + .short \b +.endm + +.macro _0807F088 s + .short 0x0886 + .short \s +.endm + +.macro CameraTargetEntity + .short 0x0487 +.endm + +.macro CameraTargetPlayer + .short 0x0488 +.endm + +.macro _0807F0B4 s + .short 0x0889 + .short \s +.endm + +.macro _0807F0C8 a,b + .short 0x0c8a + .short \a + .short \b +.endm + + diff --git a/data/scripts/ezlo_angry.inc b/data/scripts/ezlo_angry.inc index d7a8a893..fac9d78b 100644 --- a/data/scripts/ezlo_angry.inc +++ b/data/scripts/ezlo_angry.inc @@ -1,231 +1,231 @@ SCRIPT_START gUnk_080126FC -sub_0807E004 -sub_0807EBC0 0x0040 -sub_0807EF80 0x0007 -sub_0807E014 -sub_0807E930 0x0020 -sub_0807E6AC 0x00000004 -sub_0807E930 0x0022 -sub_0807E10C sub_0807F3C8 -sub_0807EAD0 0x1102, 0x000c -sub_0807EA94 -sub_0807E930 0x0020 -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807E930 0x0021 -sub_0807E10C sub_0807F3C8 -sub_0807EAD0 0x1103,0x000c -sub_0807EA94 -sub_0807E930 0x0020 -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807EF80 0x0004 -sub_0807E680 0x003c -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807EF80 0x0011 -sub_0807E930 0x001c -sub_0807EAD0 0x1105,0x000c -sub_0807EA94 -sub_0807E930 0x0020 -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807E930 0x0022 -sub_0807E10C sub_0807F3C8 -sub_0807EAD0 0x1106,0x000c -sub_0807EA94 -sub_0807E930 0x001c -sub_0807E10C sub_0806D96C // Ezlo Angry FX -sub_0807EAD0 0x1107,0x000c -sub_0807EA94 -sub_0807E930 0x0020 -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807E930 0x0021 -sub_0807E10C sub_0807F3C8 // Ezlo Angry FX -sub_0807EAD0 0x1108,0x000c -sub_0807EA94 -sub_0807E930 0x001c -sub_0807E10C sub_0806D96C// Ezlo Angry FX -sub_0807EAD0 0x1109,0x000c -sub_0807EA94 -sub_0807E930 0x0020 -sub_0807EF80 0x000a -sub_0807E9D4 -sub_0807E5F8 0x00000008 -sub_0807E014 -sub_0807E004 -sub_0807E260 0x0000 -sub_0807E050 0x0028 -sub_0807E2E4 -sub_0807E064 0xfff0 -sub_0807E014 -sub_0807E864 -sub_0807E10C sub_0806D944 // Ezlo look at player -sub_0807E930 0x0010 -sub_0807EAD0 0x1114,0x000c -sub_0807EA94 -sub_0807E930 0x0020 -sub_0807E878 -sub_0807E024 0xffd0 -sub_0807E864 -sub_0807E9DC -sub_0807E124 sub_0807F5B0,0x0000003c -sub_0807E10C sub_080791D0 -sub_0807E014 -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807EF80 0x000b -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807E10C sub_0806D944// Ezlo look at player -sub_0807E930 0x0010 -sub_0807EAD0 0x110a,0x000c -sub_0807EA94 -sub_0807E930 0x001f -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807E930 0x0010 -sub_0807EAD0 0x110b,0x000c -sub_0807EA94 -sub_0807E930 0x001f -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807EF80 0x0004 -sub_0807E680 0x003c -sub_0807E930 0x0010 -sub_0807EAD0 0x110c,0x000c -sub_0807EA94 -sub_0807E930 0x001f -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807E930 0x0010 -sub_0807EAD0 0x110d,0x000c -sub_0807EA94 -sub_0807E930 0x001f -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807E930 0x0010 -sub_0807EAD0 0x110e,0x000c -sub_0807EA94 -sub_0807E930 0x0018 -sub_0807EBC0 0x0080 -sub_0807E10C sub_0806D908 -sub_0807EC1C 0x0010 -sub_0807EF80 0x000a -sub_0807E9D4 -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807E014 -sub_0807E004 -sub_0807E10C sub_0806D944 // Ezlo look at player -sub_0807E2E4 -sub_0807E050 0x000e -sub_0807E2A8 0x3030 -sub_0807E064 0x0020 -sub_0807E024 0xffe6 -sub_0807E864 -sub_0807E930 0x0010 -sub_0807E014 -sub_0807EAD0 0x1115,0x000c -sub_0807EA94 -sub_0807E930 0x0018 -sub_0807E878 -sub_0807E024 0xffcc -sub_0807E014 -sub_0807E864 -sub_0807E10C sub_0807F9A4 -sub_0807E10C sub_0807DF28 -sub_0807EB8C -sub_0807E10C sub_0806D944 // Ezlo look at player -sub_0807E930 0x0010 -sub_0807EAD0 0x110f,0x000c -sub_0807E930 0x0018 -sub_0807EBC0 0x0080 -sub_0807E10C sub_0806D908 -sub_0807EC1C 0x0050 -sub_0807EA94 -sub_0807E10C sub_0807DF50 -sub_0807E878 -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807E014 -sub_0807E004 -sub_0807E10C sub_0806D944 // Ezlo look at player -sub_0807E2E4 -sub_0807E050 0x000e -sub_0807E2A8 0x3030 -sub_0807E064 0x0020 -sub_0807E024 0xffe6 -sub_0807E864 -sub_0807E930 0x0010 -sub_0807E014 -sub_0807EAD0 0x1115,0x000c -sub_0807EA94 -sub_0807E930 0x0018 -sub_0807E878 -sub_0807E024 0xffcc -sub_0807E014 -sub_0807E864 -sub_0807E10C sub_0807F9A4 -sub_0807E10C sub_0807DF28 -sub_0807EB8C -sub_0807E10C sub_0806D944 // Ezlo look at player -sub_0807E930 0x0010 -sub_0807EAD0 0x1110,0x000c -sub_0807E930 0x0018 -sub_0807EBC0 0x0080 -sub_0807E10C sub_0806D908 -sub_0807EC1C 0x0050 -sub_0807E930 0x0018 -sub_0807EA94 -sub_0807E10C sub_0807DF50 -sub_0807E878 -sub_0807E5F8 0x00000008 -sub_0807E6AC 0x00000004 -sub_0807E014 -sub_0807E004 -sub_0807E10C sub_0806D944 // Ezlo look at player -sub_0807E2E4 -sub_0807E050 0x000e -sub_0807E2A8 0x3030 -sub_0807E064 0x0020 -sub_0807E024 0xffe6 -sub_0807E864 -sub_0807E930 0x0010 -sub_0807E014 -sub_0807EAD0 0x1115,0x000c -sub_0807EA94 -sub_0807E930 0x0018 -sub_0807E878 -sub_0807E024 0xffcc -sub_0807E014 -sub_0807E864 -sub_0807E10C sub_0807F9A4 -sub_0807E10C sub_0807DF28 -sub_0807EFE4 -sub_0807EF80 0x000b -sub_0807EB8C -sub_0807E10C sub_0806D944 // Ezlo look at player -sub_0807E930 0x0010 -sub_0807EAD0 0x1111,0x000c -sub_0807E930 0x0018 -sub_0807EBC0 0x0080 -sub_0807E10C sub_0806D8A0 -sub_0807EE30 -sub_0807E064 0xfffc -sub_0807E930 0x001f -sub_0807EA94 -sub_0807E8C4 0x08012b18 -sub_0807E10C sub_0806D9A4 -sub_0807EF80 0x0008 -sub_0807E680 0x0078 -sub_0807EFAC 0x000e -sub_0807E004 -sub_0807E8E4_2 -sub_0807EB28 0x1112 -sub_0807E014 -sub_0807EA94 -sub_0807E5F8 0x00000008 -sub_0807EF80 0x0006 +StartScript +SetEntityNonPlanarMovement 0x0040 +_0807EF80 0x0007 +StopScript +_0807E930 0x0020 +WaitForSomething2 0x00000004 +_0807E930 0x0022 +Call sub_0807F3C8 +TextboxNoOverlapFollowPos 0x1102, 0x000c +_0807EA94 +_0807E930 0x0020 +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +_0807E930 0x0021 +Call sub_0807F3C8 +TextboxNoOverlapFollowPos 0x1103,0x000c +_0807EA94 +_0807E930 0x0020 +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +_0807EF80 0x0004 +Wait 0x003c +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +_0807EF80 0x0011 +_0807E930 0x001c +TextboxNoOverlapFollowPos 0x1105,0x000c +_0807EA94 +_0807E930 0x0020 +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +_0807E930 0x0022 +Call sub_0807F3C8 +TextboxNoOverlapFollowPos 0x1106,0x000c +_0807EA94 +_0807E930 0x001c +Call sub_0806D96C // Ezlo Angry FX +TextboxNoOverlapFollowPos 0x1107,0x000c +_0807EA94 +_0807E930 0x0020 +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +_0807E930 0x0021 +Call sub_0807F3C8 // Ezlo Angry FX +TextboxNoOverlapFollowPos 0x1108,0x000c +_0807EA94 +_0807E930 0x001c +Call sub_0806D96C// Ezlo Angry FX +TextboxNoOverlapFollowPos 0x1109,0x000c +_0807EA94 +_0807E930 0x0020 +_0807EF80 0x000a +_0807E9D4 +_0807E5F8 0x00000008 +StopScript +StartScript +CheckRoomFlag 0x0000 +JumpIf 0x0028 +CheckEntityInteractType +JumpIfNot 0xfff0 +StopScript +_0807E864 +Call sub_0806D944 // Ezlo look at player +_0807E930 0x0010 +TextboxNoOverlapFollowPos 0x1114,0x000c +_0807EA94 +_0807E930 0x0020 +_0807E878 +Jump 0xffd0 +_0807E864 +_0807E9DC +CallWithArg sub_0807F5B0,0x0000003c +Call sub_080791D0 +StopScript +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +_0807EF80 0x000b +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +Call sub_0806D944// Ezlo look at player +_0807E930 0x0010 +TextboxNoOverlapFollowPos 0x110a,0x000c +_0807EA94 +_0807E930 0x001f +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +_0807E930 0x0010 +TextboxNoOverlapFollowPos 0x110b,0x000c +_0807EA94 +_0807E930 0x001f +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +_0807EF80 0x0004 +Wait 0x003c +_0807E930 0x0010 +TextboxNoOverlapFollowPos 0x110c,0x000c +_0807EA94 +_0807E930 0x001f +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +_0807E930 0x0010 +TextboxNoOverlapFollowPos 0x110d,0x000c +_0807EA94 +_0807E930 0x001f +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +_0807E930 0x0010 +TextboxNoOverlapFollowPos 0x110e,0x000c +_0807EA94 +_0807E930 0x0018 +SetEntityNonPlanarMovement 0x0080 +Call sub_0806D908 +_0807EC1C 0x0010 +_0807EF80 0x000a +_0807E9D4 +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +StopScript +StartScript +Call sub_0806D944 // Ezlo look at player +CheckEntityInteractType +JumpIf 0x000e +CheckPlayerInRegion2 0x3030 +JumpIfNot 0x0020 +Jump 0xffe6 +_0807E864 +_0807E930 0x0010 +StopScript +TextboxNoOverlapFollowPos 0x1115,0x000c +_0807EA94 +_0807E930 0x0018 +_0807E878 +Jump 0xffcc +StopScript +_0807E864 +Call sub_0807F9A4 +Call sub_0807DF28 +_0807EB8C +Call sub_0806D944 // Ezlo look at player +_0807E930 0x0010 +TextboxNoOverlapFollowPos 0x110f,0x000c +_0807E930 0x0018 +SetEntityNonPlanarMovement 0x0080 +Call sub_0806D908 +_0807EC1C 0x0050 +_0807EA94 +Call sub_0807DF50 +_0807E878 +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +StopScript +StartScript +Call sub_0806D944 // Ezlo look at player +CheckEntityInteractType +JumpIf 0x000e +CheckPlayerInRegion2 0x3030 +JumpIfNot 0x0020 +Jump 0xffe6 +_0807E864 +_0807E930 0x0010 +StopScript +TextboxNoOverlapFollowPos 0x1115,0x000c +_0807EA94 +_0807E930 0x0018 +_0807E878 +Jump 0xffcc +StopScript +_0807E864 +Call sub_0807F9A4 +Call sub_0807DF28 +_0807EB8C +Call sub_0806D944 // Ezlo look at player +_0807E930 0x0010 +TextboxNoOverlapFollowPos 0x1110,0x000c +_0807E930 0x0018 +SetEntityNonPlanarMovement 0x0080 +Call sub_0806D908 +_0807EC1C 0x0050 +_0807E930 0x0018 +_0807EA94 +Call sub_0807DF50 +_0807E878 +_0807E5F8 0x00000008 +WaitForSomething2 0x00000004 +StopScript +StartScript +Call sub_0806D944 // Ezlo look at player +CheckEntityInteractType +JumpIf 0x000e +CheckPlayerInRegion2 0x3030 +JumpIfNot 0x0020 +Jump 0xffe6 +_0807E864 +_0807E930 0x0010 +StopScript +TextboxNoOverlapFollowPos 0x1115,0x000c +_0807EA94 +_0807E930 0x0018 +_0807E878 +Jump 0xffcc +StopScript +_0807E864 +Call sub_0807F9A4 +Call sub_0807DF28 +SoundReq0x80100000 +_0807EF80 0x000b +_0807EB8C +Call sub_0806D944 // Ezlo look at player +_0807E930 0x0010 +TextboxNoOverlapFollowPos 0x1111,0x000c +_0807E930 0x0018 +SetEntityNonPlanarMovement 0x0080 +Call sub_0806D8A0 +_0807EE30 +JumpIfNot 0xfffc +_0807E930 0x001f +_0807EA94 +StartPlayerScript 0x08012b18 +Call sub_0806D9A4 +_0807EF80 0x0008 +Wait 0x0078 +SoundReq2 0x000e +StartScript +_0807E8E4_2 +_0807EB28 0x1112 +StopScript +_0807EA94 +_0807E5F8 0x00000008 +_0807EF80 0x0006 SCRIPT_END \ No newline at end of file diff --git a/data/scripts/gUnk_0800A8D4.inc b/data/scripts/gUnk_0800A8D4.inc index df47f574..e9b22a64 100644 --- a/data/scripts/gUnk_0800A8D4.inc +++ b/data/scripts/gUnk_0800A8D4.inc @@ -1,14 +1,14 @@ -sub_0807E004 -sub_0807EF80 0x0007 -sub_0807EB44 0x0004 -sub_0807E930 0x0008 -sub_0807E014 -sub_0807E690 0x00000001 -sub_0807EF80 0x0000 -sub_0807E6AC 0x00000020 -sub_0807EF80 0x0004 -sub_0807E680 0x003c -sub_0807EB44 0x0002 -sub_0807E680 0x000f +ScriptCommand_StartScript +ScriptCommand_0807EF80 0x0007 +ScriptCommand_0807EB44 0x0004 +ScriptCommand_0807E930 0x0008 +ScriptCommand_StopScript +ScriptCommand_WaitForSomething 0x00000001 +ScriptCommand_0807EF80 0x0000 +ScriptCommand_WaitForSomething2 0x00000020 +ScriptCommand_0807EF80 0x0004 +ScriptCommand_Wait 0x003c +ScriptCommand_0807EB44 0x0002 +ScriptCommand_Wait 0x000f .short 0x0861 .short 0x0006 diff --git a/data/scripts/npc4e_fusion.inc b/data/scripts/npc4e_fusion.inc index 68262d0e..6a21fd23 100644 --- a/data/scripts/npc4e_fusion.inc +++ b/data/scripts/npc4e_fusion.inc @@ -1,16 +1,16 @@ SCRIPT_START gUnk_08016030 -sub_0807E004 -sub_0807E40C 0x0009 -sub_0807E050 0x002a -sub_0807E014 -sub_0807E6AC 0x00000001 -sub_0807EF80 0x0010 -sub_0807E680 0x003c -sub_0807EBC0 0x0020 -sub_0807ECF4 0x0080 -sub_0807E680 0x001e -sub_0807EF80 0x0010 -sub_0807E5F8 0x0000008 +StartScript +CheckKinstoneFused 0x0009 +JumpIf 0x002a +StopScript +WaitForSomething2 0x00000001 +_0807EF80 0x0010 +Wait 0x003c +SetEntityNonPlanarMovement 0x0020 +_0807ECF4 0x0080 +Wait 0x001e +_0807EF80 0x0010 +_0807E5F8 0x0000008 .short 0xffff .short 0x0c6a .short 0xfff0 diff --git a/include/scriptMacros.h b/include/scriptMacros.h deleted file mode 100644 index fabc19f9..00000000 --- a/include/scriptMacros.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef SCRIPT_MACROS_H -#define SCRIPT_MACROS_H -// Generated by disassemble_script.py -#define START_SCRIPT(name) asm(".globl "#name); asm(".section .rodata"); asm(#name":"); -#define END_SCRIPT() asm(".short 0xffff"); - -#define nullsub_507() asm(".short 0x0400"); -#define sub_0807E004() asm(".short 0x0401"); -#define sub_0807E014() asm(".short 0x0402"); -#define sub_0807E024(s) asm(".short 0x0803");asm(".short " #s); -#define sub_0807E050(s) asm(".short 0x0804");asm(".short " #s); -#define sub_0807E064(s) asm(".short 0x0805");asm(".short " #s); -#define sub_0807E078(s) asm(".short 0x0806");asm(".short " #s); -#define sub_0807E0A0(w) asm(".short 0x0c07");asm(".word " #w); -#define sub_0807E0B8(w) asm(".short 0x0c08");asm(".word " #w); -#define sub_0807E0CC(w) asm(".short 0x0c09");asm(".word " #w); -#define sub_0807E0E0(w) asm(".short 0x0c0a");asm(".word " #w); -#define sub_0807E10C(w) asm(".short 0x0c0b");asm(".word " #w); -#define sub_0807E124(a,b) asm(".short 0x140c");asm(".word " #a);asm(".word " #b); -#define sub_0807E148(w) asm(".short 0x0c0d");asm(".word " #w); -#define sub_0807E158(w) asm(".short 0x0c0e");asm(".word " #w); -#define sub_0807E188(s) asm(".short 0x080f");asm(".short " #s); -#define sub_0807E1D8(s) asm(".short 0x0810");asm(".short " #s); -#define sub_0807E4AC(s) asm(".short 0x0811");asm(".short " #s); -#define sub_0807E260(s) asm(".short 0x0815");asm(".short " #s); -#define sub_0807E2A8(s) asm(".short 0x0817");asm(".short " #s); -#define sub_0807E2E4() asm(".short 0x0418"); -#define sub_0807E5F8(w) asm(".short 0x0c28");asm(".word " #w); -#define sub_0807E680(s) asm(".short 0x0831");asm(".short " #s); -#define sub_0807E6AC(w) asm(".short 0x0c33");asm(".word " #w); -#define sub_0807E864() asm(".short 0x0443"); -#define sub_0807E878() asm(".short 0x0444"); -#define sub_0807E8C4(w) asm(".short 0x0c47");asm(".word " #w); -#define sub_0807E8E4_0() asm(".short 0x0449"); -#define sub_0807E8E4_1() asm(".short 0x044a"); -#define sub_0807E8E4_2() asm(".short 0x044b"); -#define sub_0807E8E4_3() asm(".short 0x044c"); -#define sub_0807E930(s) asm(".short 0x0850");asm(".short " #s); -#define sub_0807E9D4() asm(".short 0x0453"); -#define sub_0807E9DC() asm(".short 0x0454"); -#define sub_0807EA94() asm(".short 0x0459"); -#define sub_0807EAD0(a,b) asm(".short 0x0c5c");asm(".short " #a);asm(".short " #b); -#define sub_0807EB28(s) asm(".short 0x085f");asm(".short " #s); -#define sub_0807EB8C() asm(".short 0x0464"); -#define sub_0807EBC0(s) asm(".short 0x0867");asm(".short " #s); -#define sub_0807EC1C(s) asm(".short 0x086d");asm(".short " #s); -#define sub_0807EE30() asm(".short 0x0475"); -#define sub_0807EF80(s) asm(".short 0x0879");asm(".short " #s); -#define sub_0807EFAC(s) asm(".short 0x087c");asm(".short " #s); -#define sub_0807EFE4() asm(".short 0x047e"); -#endif \ No newline at end of file diff --git a/tools/script_disassembler/script_disassembler.py b/tools/script_disassembler/script_disassembler.py index b73afd61..f0926e68 100644 --- a/tools/script_disassembler/script_disassembler.py +++ b/tools/script_disassembler/script_disassembler.py @@ -32,145 +32,145 @@ def get_pointer(barray): return 'sub_' + (struct.pack('>I', integers[0]-1).hex()).upper() commands = [ - {'fun': 'nullsub_507', 'params': ''}, - {'fun': 'sub_0807E004', 'params': '', 'name': 'start executing scripts'}, - {'fun': 'sub_0807E014', 'params': '', 'name': 'stop executing scripts'}, - {'fun': 'sub_0807E024', 'params': 's', 'name': 'jump by offset'}, - {'fun': 'sub_0807E050', 'params': 's', 'name': 'jump if'}, - {'fun': 'sub_0807E064', 'params': 's', 'name': 'jump if not'}, - {'fun': 'sub_0807E078', 'params': 's'}, - {'fun': 'sub_0807E0A0', 'params': 'w','name': 'abs jump' }, - {'fun': 'sub_0807E0B8', 'params': 'w', 'name': 'abs jump if'}, - {'fun': 'sub_0807E0CC', 'params': 'w', 'name': 'abs jump if not'}, - {'fun': 'sub_0807E0E0', 'params': 'w'}, - {'fun': 'sub_0807E10C', 'params':'p', 'name': 'Execute function via pointer'},# 'exec': sub_0807E10C}, - {'fun': 'sub_0807E124', 'params': 'pw'}, - {'fun': 'sub_0807E148', 'params': 'w'}, - {'fun': 'sub_0807E158', 'params': 'w'}, - {'fun': 'sub_0807E188', 'params': 's'}, - {'fun': 'sub_0807E1D8', 'params': 's'}, - {'fun': 'sub_0807E4AC', 'params': 's'}, - {'fun': 'sub_0807E200', 'params': 's'}, - {'fun': 'sub_0807E220', 'params': 'ss'}, - {'fun': 'sub_0807E240', 'params': 's'}, - {'fun': 'sub_0807E260', 'params': 's'}, - {'fun': 'sub_0807E280', 'params': 'sss'}, - {'fun': 'sub_0807E2A8', 'params': 's'}, - {'fun': 'sub_0807E2E4', 'params': ''}, - {'fun': 'sub_0807E30C', 'params': ''}, - {'fun': 'sub_0807E390', 'params': 's'}, - {'fun': 'sub_0807E3BC', 'params': 's'}, - {'fun': 'sub_0807E3E8', 'params': ''}, - {'fun': 'sub_0807E40C', 'params': 's'}, - {'fun': 'sub_0807E42C', 'params': 'ss'}, - {'fun': 'sub_0807E48C', 'params': 's'}, - {'fun': 'sub_0807E4CC', 'params': 'w'}, - {'fun': 'sub_0807E4EC', 'params': 'w'}, - {'fun': 'sub_0807E514', 'params': 's'}, - {'fun': 'sub_0807E538', 'params':'w'}, - {'fun': 'sub_0807E564', 'params': ''}, - {'fun': 'sub_0807E584', 'params': ''}, - {'fun': 'sub_0807E5A0', 'params': 's'}, - {'fun': 'sub_0807E5CC', 'params': 's'}, - {'fun': 'sub_0807E5F8', 'params': 'w'},# 'exec': sub_0807E5F8}, - {'fun': 'sub_0807E610', 'params': 'w'}, - {'fun': 'sub_0807E628', 'params': 's'}, - {'fun': 'sub_0807E634', 'params': 'ss'}, - {'fun': 'sub_0807E644', 'params': 's'}, - {'fun': 'sub_0807E650', 'params': 's'}, - {'fun': 'sub_0807E65C', 'params': 's'}, - {'fun': 'sub_0807E668', 'params': 's'}, - {'fun': 'sub_0807E674', 'params': 's'}, - {'fun': 'sub_0807E680', 'params': 's'}, - {'fun': 'sub_0807E690', 'params': 'w'}, - {'fun': 'sub_0807E6AC', 'params': 'w'}, - {'fun': 'sub_0807E6DC', 'params': ''}, - {'fun': 'sub_0807E700', 'params': ''}, - {'fun': 'sub_0807E72C', 'params': ''}, - {'fun': 'sub_0807E75C', 'params': ''}, - {'fun': 'sub_0807E778', 'params': 's'}, - {'fun': 'sub_0807E788', 'params': 'w'}, - {'fun': 'sub_0807E79C', 'params': ''}, - {'fun': 'nullsub_508', 'params': 's'}, - {'fun': 'sub_0807E7B0', 'params': ''}, - {'fun': 'sub_0807E7C4', 'params': ''}, - {'fun': 'sub_0807E7D8', 'params': ''}, - {'fun': 'sub_0807E7EC', 'params': ''}, - {'fun': 'sub_0807E800', 'params': 'w'}, - {'fun': 'sub_0807E80C', 'params': 'w'}, - {'fun': 'sub_0807E858', 'params': 's'}, - {'fun': 'sub_0807E864', 'params': ''}, - {'fun': 'sub_0807E878', 'params': ''}, - {'fun': 'sub_0807E888', 'params': ''}, - {'fun': 'sub_0807E898', 'params': 'w'}, - {'fun': 'sub_0807E8C4', 'params': 'w'}, - {'fun': 'sub_0807E8D4', 'params': 's'}, - {'fun': 'sub_0807E8E4_0', 'params': ''}, # duplicate - {'fun': 'sub_0807E8E4_1', 'params': ''}, # duplicate - {'fun': 'sub_0807E8E4_2', 'params': ''}, # duplicate - {'fun': 'sub_0807E8E4_3', 'params': ''}, # duplicate - {'fun': 'sub_0807E908', 'params': 's'}, - {'fun': 'sub_0807E914', 'params': 'w'}, - {'fun': 'sub_0807E924', 'params': ''}, - {'fun': 'sub_0807E930', 'params': 's'}, - {'fun': 'sub_0807E944', 'params': ''}, - {'fun': 'sub_0807E974', 'params': 's'}, - {'fun': 'sub_0807E9D4', 'params': ''}, - {'fun': 'sub_0807E9DC', 'params': ''}, - {'fun': 'sub_0807E9E4', 'params': 's'}, - {'fun': 'sub_0807E9F0', 'params': ''}, - {'fun': 'sub_0807EA4C', 'params': ''}, - {'fun': 'sub_0807EA88', 'params': 's'}, - {'fun': 'sub_0807EA94', 'params': ''}, - {'fun': 'sub_0807EAB4', 'params': 's'}, - {'fun': 'sub_0807EAC0', 'params': 's'}, - {'fun': 'sub_0807EAD0', 'params': 'ss'}, - {'fun': 'sub_0807EAF0', 'params': 'w'}, - {'fun': 'sub_0807EB18', 'params': ''}, - {'fun': 'sub_0807EB28', 'params': 's'}, - {'fun': 'sub_0807EB38', 'params': ''}, - {'fun': 'sub_0807EB44', 'params': 's'}, - {'fun': 'sub_0807EB4C', 'params': 'ss'}, - {'fun': 'sub_0807EB74', 'params': ''}, - {'fun': 'sub_0807EB8C', 'params': ''}, - {'fun': 'sub_0807EBA8', 'params': 's'}, - {'fun': 'sub_0807EBB0', 'params': 's'}, - {'fun': 'sub_0807EBC0', 'params': 's'}, - {'fun': 'sub_0807EBC8', 'params': 'w'}, - {'fun': 'sub_0807EBD8', 'params': 'w'}, - {'fun': 'sub_0807EBF4', 'params': 'ss'}, - {'fun': 'sub_0807EC08', 'params': ''}, - {'fun': 'nullsub_509', 'params': ''}, - {'fun': 'sub_0807EC1C', 'params': 's'}, - {'fun': 'sub_0807EC64', 'params': 's'}, - {'fun': 'sub_0807EC94', 'params': 's'}, - {'fun': 'sub_0807ECC4', 'params': 's'}, - {'fun': 'sub_0807ECF4', 'params': 's'}, - {'fun': 'sub_0807ED24', 'params': 'sss'}, - {'fun': 'sub_0807EDD4', 'params': 'ss'}, - {'fun': 'sub_0807EE04', 'params': 'ss'}, - {'fun': 'sub_0807EE30', 'params': ''}, - {'fun': 'sub_0807EEB4', 'params': ''}, - {'fun': 'sub_0807EEF4', 'params': 'ss'}, - {'fun': 'sub_0807EF3C', 'params': 'ss'}, - {'fun': 'sub_0807EF80', 'params': 's'}, - {'fun': 'sub_0807EF90', 'params': 's'}, - {'fun': 'sub_0807EFA0', 'params': 's'}, - {'fun': 'sub_0807EFAC', 'params': 's'}, - {'fun': 'sub_0807EFD4', 'params': 'w'}, - {'fun': 'sub_0807EFE4', 'params': ''}, - {'fun': 'sub_0807EFF4', 'params': 's'}, - {'fun': 'sub_0807F004', 'params': 's'}, - {'fun': 'sub_0807F010', 'params': 's'}, - {'fun': 'sub_0807F034', 'params': 's'}, - {'fun': 'sub_0807F050', 'params': 's'}, - {'fun': 'sub_0807F060', 'params': 's'}, - {'fun': 'sub_0807F078', 'params': 'ss'}, - {'fun': 'sub_0807F088', 'params': 's'}, - {'fun': 'sub_0807F098', 'params': ''}, - {'fun': 'sub_0807F0A4', 'params': ''}, - {'fun': 'sub_0807F0B4', 'params': 's'}, - {'fun': 'sub_0807F0C8', 'params': 'ss'} + {'fun': 'ScriptCommandNop', 'params': ''}, + {'fun': 'ScriptCommand_StartScript', 'params': '', 'name': 'start executing scripts'}, + {'fun': 'ScriptCommand_StopScript', 'params': '', 'name': 'stop executing scripts'}, + {'fun': 'ScriptCommand_Jump', 'params': 's', 'name': 'jump by offset'}, + {'fun': 'ScriptCommand_JumpIf', 'params': 's', 'name': 'jump if'}, + {'fun': 'ScriptCommand_JumpIfNot', 'params': 's', 'name': 'jump if not'}, + {'fun': 'ScriptCommand_0807E078', 'params': 's'}, + {'fun': 'ScriptCommand_JumpAbsolute', 'params': 'w','name': 'abs jump' }, + {'fun': 'ScriptCommand_JumpAbsoluteIf', 'params': 'w', 'name': 'abs jump if'}, + {'fun': 'ScriptCommand_JumpAbsoluteIfNot', 'params': 'w', 'name': 'abs jump if not'}, + {'fun': 'ScriptCommand_0807E0E0', 'params': 'w'}, + {'fun': 'ScriptCommand_Call', 'params':'p', 'name': 'Execute function via pointer'},# 'exec': ScriptCommand_Call}, + {'fun': 'ScriptCommand_CallWithArg', 'params': 'pw'}, + {'fun': 'ScriptCommand_LoadRoomEntityList', 'params': 'w'}, + {'fun': 'ScriptCommand_TestBit', 'params': 'w'}, + {'fun': 'ScriptCommand_CheckInventory1', 'params': 's'}, + {'fun': 'ScriptCommand_CheckInventory2', 'params': 's'}, + {'fun': 'ScriptCommand_HasRoomItemForSale', 'params': 's'}, + {'fun': 'ScriptCommand_CheckLocalFlag', 'params': 's'}, + {'fun': 'ScriptCommand_CheckLocalFlagByOffset', 'params': 'ss'}, + {'fun': 'ScriptCommand_CheckGlobalFlag', 'params': 's'}, + {'fun': 'ScriptCommand_CheckRoomFlag', 'params': 's'}, + {'fun': 'ScriptCommand_CheckPlayerInRegion', 'params': 'sss'}, + {'fun': 'ScriptCommand_CheckPlayerInRegion2', 'params': 's'}, + {'fun': 'ScriptCommand_CheckEntityInteractType', 'params': ''}, + {'fun': 'ScriptCommand_0807E30C', 'params': ''}, + {'fun': 'ScriptCommand_HasRupees', 'params': 's'}, + {'fun': 'ScriptCommand_0807E3BC', 'params': 's'}, + {'fun': 'ScriptCommand_0807E3E8', 'params': ''}, + {'fun': 'ScriptCommand_CheckKinstoneFused', 'params': 's'}, + {'fun': 'ScriptCommand_BuyItem', 'params': 'ss'}, + {'fun': 'ScriptCommand_0807E48C', 'params': 's'}, + {'fun': 'ScriptCommand_0807E4CC', 'params': 'w'}, + {'fun': 'ScriptCommand_0807E4EC', 'params': 'w'}, + {'fun': 'ScriptCommand_0807E51', 'params': 's'}, + {'fun': 'ScriptCommand_CheckPlayerFlags', 'params':'w'}, + {'fun': 'ScriptCommand_0807E564', 'params': ''}, + {'fun': 'ScriptCommand_EntityHasHeight', 'params': ''}, + {'fun': 'ScriptCommand_ComparePlayerAction', 'params': 's'}, + {'fun': 'ScriptCommand_ComparePlayerAnimationState', 'params': 's'}, + {'fun': 'ScriptCommand_0807E5F8', 'params': 'w'},# 'exec': ScriptCommand_0807E5F8}, + {'fun': 'ScriptCommand_0807E610', 'params': 'w'}, + {'fun': 'ScriptCommand_SetLocalFlag', 'params': 's'}, + {'fun': 'ScriptCommand_SetLocalFlagByOffset', 'params': 'ss'}, + {'fun': 'ScriptCommand_ClearLocalFlag', 'params': 's'}, + {'fun': 'ScriptCommand_SetGlobalFlag', 'params': 's'}, + {'fun': 'ScriptCommand_ClearGlobalFlag', 'params': 's'}, + {'fun': 'ScriptCommand_SetRoomFlag', 'params': 's'}, + {'fun': 'ScriptCommand_ClearRoomFlag', 'params': 's'}, + {'fun': 'ScriptCommand_Wait', 'params': 's'}, + {'fun': 'ScriptCommand_WaitForSomething', 'params': 'w'}, + {'fun': 'ScriptCommand_WaitForSomething2', 'params': 'w'}, + {'fun': 'ScriptCommand_WaitPlayerAction8', 'params': ''}, + {'fun': 'ScriptCommand_WaitForPlayerAction0x17', 'params': ''}, + {'fun': 'ScriptCommand_WaitFor_1', 'params': ''}, + {'fun': 'ScriptCommand_WaitFor_2', 'params': ''}, + {'fun': 'ScriptCommand_0807E778', 'params': 's'}, + {'fun': 'ScriptCommand_0807E788', 'params': 'w'}, + {'fun': 'ScriptCommand_0807E79C', 'params': ''}, + {'fun': 'ScriptCommandNop2', 'params': 's'}, + {'fun': 'ScriptCommand_DoFade4', 'params': ''}, + {'fun': 'ScriptCommand_DoFade5', 'params': ''}, + {'fun': 'ScriptCommand_DoFade6', 'params': ''}, + {'fun': 'ScriptCommand_DoFade7', 'params': ''}, + {'fun': 'ScriptCommand_0807E800', 'params': 'w'}, + {'fun': 'ScriptCommand_0807E80C', 'params': 'w'}, + {'fun': 'ScriptCommand_0807E858', 'params': 's'}, + {'fun': 'ScriptCommand_0807E864', 'params': ''}, + {'fun': 'ScriptCommand_0807E878', 'params': ''}, + {'fun': 'ScriptCommand_0807E888', 'params': ''}, + {'fun': 'ScriptCommand_SetPlayerAction', 'params': 'w'}, + {'fun': 'ScriptCommand_StartPlayerScript', 'params': 'w'}, + {'fun': 'ScriptCommand_0807E8D4', 'params': 's'}, + {'fun': 'ScriptCommand_0807E8E4_0', 'params': ''}, # duplicate + {'fun': 'ScriptCommand_0807E8E4_1', 'params': ''}, # duplicate + {'fun': 'ScriptCommand_0807E8E4_2', 'params': ''}, # duplicate + {'fun': 'ScriptCommand_0807E8E4_3', 'params': ''}, # duplicate + {'fun': 'ScriptCommand_0807E908', 'params': 's'}, + {'fun': 'ScriptCommand_0807E914', 'params': 'w'}, + {'fun': 'ScriptCommand_0807E924', 'params': ''}, + {'fun': 'ScriptCommand_0807E930', 'params': 's'}, + {'fun': 'ScriptCommand_0807E944', 'params': ''}, + {'fun': 'ScriptCommand_0807E974', 'params': 's'}, + {'fun': 'ScriptCommand_0807E9D4', 'params': ''}, + {'fun': 'ScriptCommand_0807E9DC', 'params': ''}, + {'fun': 'ScriptCommand_0807E9E4', 'params': 's'}, + {'fun': 'ScriptCommand_0807E9F0', 'params': ''}, + {'fun': 'ScriptCommand_0807EA4C', 'params': ''}, + {'fun': 'ScriptCommand_0807EA88', 'params': 's'}, + {'fun': 'ScriptCommand_0807EA94', 'params': ''}, + {'fun': 'ScriptCommand_TextboxNoOverlapFollow', 'params': 's'}, + {'fun': 'ScriptCommand_TextboxNoOverlap', 'params': 's'}, + {'fun': 'ScriptCommand_TextboxNoOverlapFollowPos', 'params': 'ss'}, + {'fun': 'ScriptCommand_0807EAF0', 'params': 'w'}, + {'fun': 'ScriptCommand_TextboxNoOverlapVar', 'params': ''}, + {'fun': 'ScriptCommand_0807EB28', 'params': 's'}, + {'fun': 'ScriptCommand_0807EB38', 'params': ''}, + {'fun': 'ScriptCommand_0807EB44', 'params': 's'}, + {'fun': 'ScriptCommand_0807EB4C', 'params': 'ss'}, + {'fun': 'ScriptCommand_0807EB74', 'params': ''}, + {'fun': 'ScriptCommand_0807EB8C', 'params': ''}, + {'fun': 'ScriptCommand_SetEntityDirection', 'params': 's'}, + {'fun': 'ScriptCommand_SetEntityDirectionWithAnimationState', 'params': 's'}, + {'fun': 'ScriptCommand_SetEntityNonPlanarMovement', 'params': 's'}, + {'fun': 'ScriptCommand_SetEntity0x20', 'params': 'w'}, + {'fun': 'ScriptCommand_SetEntityPositionRelative', 'params': 'w'}, + {'fun': 'ScriptCommand_SetEntityPosition', 'params': 'ss'}, + {'fun': 'ScriptCommand_MoveEntityToPlayer', 'params': ''}, + {'fun': 'ScriptCommandNop3', 'params': ''}, + {'fun': 'ScriptCommand_0807EC1C', 'params': 's'}, + {'fun': 'ScriptCommand_0807EC64', 'params': 's'}, + {'fun': 'ScriptCommand_0807EC94', 'params': 's'}, + {'fun': 'ScriptCommand_0807ECC4', 'params': 's'}, + {'fun': 'ScriptCommand_0807ECF4', 'params': 's'}, + {'fun': 'ScriptCommand_0807ED24', 'params': 'sss'}, + {'fun': 'ScriptCommand_0807EDD4', 'params': 'ss'}, + {'fun': 'ScriptCommand_0807EE04', 'params': 'ss'}, + {'fun': 'ScriptCommand_0807EE30', 'params': ''}, + {'fun': 'ScriptCommand_0807EEB4', 'params': ''}, + {'fun': 'ScriptCommand_0807EEF4', 'params': 'ss'}, + {'fun': 'ScriptCommand_0807EF3C', 'params': 'ss'}, + {'fun': 'ScriptCommand_0807EF80', 'params': 's'}, + {'fun': 'ScriptCommand_0807EF90', 'params': 's'}, + {'fun': 'ScriptCommand_SoundReq', 'params': 's'}, + {'fun': 'ScriptCommand_SoundReq2', 'params': 's'}, + {'fun': 'ScriptCommand_SoundReq3', 'params': 'w'}, + {'fun': 'ScriptCommand_SoundReq0x80100000', 'params': ''}, + {'fun': 'ScriptCommand_ModRupees', 'params': 's'}, + {'fun': 'ScriptCommand_ModHealth', 'params': 's'}, + {'fun': 'ScriptCommand_IncreaseMaxHealth', 'params': 's'}, + {'fun': 'ScriptCommand_0807F034', 'params': 's'}, + {'fun': 'ScriptCommand_0807F050', 'params': 's'}, + {'fun': 'ScriptCommand_GetInventoryValue', 'params': 's'}, + {'fun': 'ScriptCommand_0807F078', 'params': 'ss'}, + {'fun': 'ScriptCommand_0807F088', 'params': 's'}, + {'fun': 'ScriptCommand_CameraTargetEntity', 'params': ''}, + {'fun': 'ScriptCommand_CameraTargetPlayer', 'params': ''}, + {'fun': 'ScriptCommand_0807F0B4', 'params': 's'}, + {'fun': 'ScriptCommand_0807F0C8', 'params': 'ss'} ] # definitions for parameters @@ -225,6 +225,11 @@ parameters = { }, } +def build_script_command(name: str): + name = name.replace("ScriptCommand_", "") + if name[0].isdigit(): + return '_' + name + return name def ExecuteScriptCommandSet(ctx: Context): cmd = struct.unpack('H', ctx.data[ctx.ptr:ctx.ptr+2])[0] @@ -268,7 +273,7 @@ def ExecuteScriptCommandSet(ctx: Context): #ctx.ptr += unk_06*2 #return 1 - print(command['fun'] + ' ' + params['read'](ctx)) + print(build_script_command(command['fun']) + ' ' + params['read'](ctx)) # Execute script ctx.ptr += unk_06*2 @@ -319,7 +324,7 @@ def generate_macros(): params = parameters[command['params']] id = ((params['length']+1) << 0xA) + num - print(f'.macro {command["fun"]} {params["param"]}') + print(f'.macro {build_script_command(command["fun"])} {params["param"]}') print(f' .short {u16_to_hex(id)}') if params['expr'] != '': print(params['expr'])