From 701c700d69973b90dab089e8e97b883ac0a31f1c Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Fri, 19 Jan 2024 17:11:51 -0500 Subject: [PATCH] Add library symbols for flic and smack (#461) --- 3rdparty/flic/flic.asm | 77 ++++++++++++++--------------------- 3rdparty/flic/flic.lib | Bin 2876 -> 2940 bytes LEGO1/library_flic.h | 6 +++ LEGO1/library_smack.h | 18 ++++++++ LEGO1/omni/include/mxsmack.h | 9 ---- 5 files changed, 54 insertions(+), 56 deletions(-) create mode 100644 LEGO1/library_flic.h create mode 100644 LEGO1/library_smack.h diff --git a/3rdparty/flic/flic.asm b/3rdparty/flic/flic.asm index ef402a14..44f42086 100644 --- a/3rdparty/flic/flic.asm +++ b/3rdparty/flic/flic.asm @@ -6,7 +6,10 @@ assume fs:nothing public DecodeFLCFrame -.text SEGMENT PARA PUBLIC 'CODE' +; This is so reccmp can detect the end of DecodeFLCFrame +public EndOfSection + +.text SEGMENT BYTE PUBLIC 'CODE' ?_25162 LABEL NEAR mov ax, word ptr [esp+0CH] ; 100BD530 _ 66: 8B. 44 24, 0C @@ -37,10 +40,8 @@ public DecodeFLCFrame ; Filling space: 0DH ; Filler type: INT 3 Debug breakpoint -; db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH -; db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH - -ALIGN 16 + db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH + db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH ?_25164 LABEL NEAR lea eax, [esp+18H] ; 100BD580 _ 8D. 44 24, 18 @@ -89,10 +90,8 @@ ALIGN 16 ; Filling space: 0CH ; Filler type: INT 3 Debug breakpoint -; db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH -; db 0CCH, 0CCH, 0CCH, 0CCH - -ALIGN 16 + db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH + db 0CCH, 0CCH, 0CCH, 0CCH ?_25168 LABEL NEAR mov ecx, dword ptr [esp+8H] ; 100BD600 _ 8B. 4C 24, 08 @@ -149,9 +148,7 @@ ALIGN 16 ; Filling space: 8H ; Filler type: INT 3 Debug breakpoint -; db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH - -ALIGN 16 + db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH ?_25173 LABEL NEAR lea eax, [esp+18H] ; 100BD680 _ 8D. 44 24, 18 @@ -188,10 +185,8 @@ ALIGN 16 ; Filling space: 0AH ; Filler type: INT 3 Debug breakpoint -; db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH -; db 0CCH, 0CCH - -ALIGN 16 + db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH + db 0CCH, 0CCH ?_25176 LABEL NEAR lea eax, [esp+18H] ; 100BD6E0 _ 8D. 44 24, 18 @@ -238,9 +233,7 @@ ALIGN 16 ; Filling space: 3H ; Filler type: INT 3 Debug breakpoint -; db 0CCH, 0CCH, 0CCH - -ALIGN 8 + db 0CCH, 0CCH, 0CCH ?_25180 LABEL NEAR mov eax, dword ptr [esp+18H] ; 100BD760 _ 8B. 44 24, 18 @@ -373,10 +366,8 @@ ALIGN 8 ; Filling space: 0DH ; Filler type: INT 3 Debug breakpoint -; db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH -; db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH - -ALIGN 16 + db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH + db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH ?_25195 LABEL NEAR mov eax, dword ptr [esp+8H] ; 100BD8A0 _ 8B. 44 24, 08 @@ -447,9 +438,7 @@ ALIGN 16 ; Filling space: 8H ; Filler type: INT 3 Debug breakpoint -; db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH - -ALIGN 16 + db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH ?_25202 LABEL NEAR mov eax, dword ptr [esp+8H] ; 100BD940 _ 8B. 44 24, 08 @@ -462,10 +451,8 @@ ALIGN 16 ; Filling space: 0DH ; Filler type: INT 3 Debug breakpoint -; db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH -; db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH - -ALIGN 16 + db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH + db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH ?_25203 LABEL NEAR mov eax, dword ptr [esp+10H] ; 100BD960 _ 8B. 44 24, 10 @@ -539,10 +526,8 @@ ALIGN 16 ; Filling space: 0CH ; Filler type: INT 3 Debug breakpoint -; db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH -; db 0CCH, 0CCH, 0CCH, 0CCH - -ALIGN 16 + db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH + db 0CCH, 0CCH, 0CCH, 0CCH ?_25213 LABEL NEAR mov ecx, dword ptr [esp+0CH] ; 100BDA10 _ 8B. 4C 24, 0C @@ -621,9 +606,7 @@ ALIGN 16 ; Filling space: 3H ; Filler type: INT 3 Debug breakpoint -; db 0CCH, 0CCH, 0CCH - -ALIGN 8 + db 0CCH, 0CCH, 0CCH ?_25220 LABEL NEAR mov edx, dword ptr [esp+10H] ; 100BDAC0 _ 8B. 54 24, 10 @@ -738,9 +721,7 @@ ALIGN 8 ; Filling space: 3H ; Filler type: INT 3 Debug breakpoint -; db 0CCH, 0CCH, 0CCH - -ALIGN 8 + db 0CCH, 0CCH, 0CCH ?_25227 LABEL NEAR mov eax, dword ptr [esp+10H] ; 100BDC00 _ 8B. 44 24, 10 @@ -798,10 +779,8 @@ ALIGN 8 ; Filling space: 0CH ; Filler type: INT 3 Debug breakpoint -; db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH -; db 0CCH, 0CCH, 0CCH, 0CCH - -ALIGN 16 + db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH + db 0CCH, 0CCH, 0CCH, 0CCH ?_25231 LABEL NEAR mov eax, dword ptr [esp+10H] ; 100BDC90 _ 8B. 44 24, 10 @@ -839,9 +818,7 @@ ALIGN 16 ; Filling space: 7H ; Filler type: INT 3 Debug breakpoint -; db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH - -ALIGN 8 + db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH DecodeFLCFrame LABEL NEAR mov ecx, dword ptr [esp+10H] ; 100BDCE0 _ 8B. 4C 24, 10 @@ -863,6 +840,12 @@ DecodeFLCFrame LABEL NEAR add esp, 24 ; 100BDD0A _ 83. C4, 18 ?_25235:ret ; 100BDD0D _ C3 +; Filling space: 2H +; Filler type: INT 3 Debug breakpoint + db 0CCH, 0CCH + +EndOfSection LABEL NEAR + .text ENDS END diff --git a/3rdparty/flic/flic.lib b/3rdparty/flic/flic.lib index 8e297be87d487a9654384afd9f8f2123866a7f60..fea46a2524205492607347c02caac50e1c15f37b 100644 GIT binary patch delta 975 zcmdlZ_D5`jY`vv{xv7x?3NV23OyJ@PTnr2hOh9}CgyUUOlk-zj-F%$giV|~E8RA{@ zQvB0`Q$hLcu)lVm?}760+Y`%g>k_+XUQQ_$JQDF%Pd=dEn|NrJA9EV|2V0!X8)+Id1B9r6TQWUxVfRswSRt9R7 z=?+nmNaNr40%(*_XjnjaV9<+KlOMBbfL+4J9>XX!Ih#F$@#o|#>^_V}yH79W_U24wMrSz17r0GOo* zWC?;WyK$ghl-JDbFL6HbD85OVqxgZ&4V1zO;*vA{08d@5G?FMQD zib6z;8SH>uhzLkO$d)yzx-5(sI)H8mnFG~jVazZOAyN-A+QNik4MGSkV#;s`O~j1h j0-A_9!#y++3x+qSB9;aWzu_WEKByfQYOx^}HnUMkA=(L>7WWD^PESMEAqm3+3?KCtnFf%h#P%tus zc_e|$hmn~c(|Sk60B?tZ9o<$FznbE6qp$pc)%wk^`K}3MI8dz#~Ya%S{i|E0xDx*W`KwoGdKXb z5D}1S79idL)D27+3``I;7DfzRK$n6xK85W?4m@uqEh~$DSvoK{if)E0Wm@!;J c6ESCafF@$W@D5eP(tzPFTto!uJoFp@0QOJ7qW}N^ diff --git a/LEGO1/library_flic.h b/LEGO1/library_flic.h new file mode 100644 index 00000000..1c6a6d8b --- /dev/null +++ b/LEGO1/library_flic.h @@ -0,0 +1,6 @@ +#ifdef 0 + +// LIBRARY: LEGO1 0x100bdce0 +// _DecodeFLCFrame + +#endif diff --git a/LEGO1/library_smack.h b/LEGO1/library_smack.h new file mode 100644 index 00000000..2909ebd3 --- /dev/null +++ b/LEGO1/library_smack.h @@ -0,0 +1,18 @@ +#ifdef 0 + +// LIBRARY: LEGO1 0x100cd782 +// _SmackGetSizeTables + +// LIBRARY: LEGO1 0x100cd7e8 +// _SmackDoTables + +// LIBRARY: LEGO1 0x100cda83 +// _SmackDoFrameToBuffer + +// LIBRARY: LEGO1 0x100d052c +// _SmackGetSizeDeltas + +// LIBRARY: LEGO1 0x100d0543 +// _SmackGetRect + +#endif diff --git a/LEGO1/omni/include/mxsmack.h b/LEGO1/omni/include/mxsmack.h index e0f8c76e..227dbd6d 100644 --- a/LEGO1/omni/include/mxsmack.h +++ b/LEGO1/omni/include/mxsmack.h @@ -12,10 +12,7 @@ // but present in SMACK.LIB and used directly by Mindscape. extern "C" { - // (SMACK.LIB) FUNCTION: LEGO1 0x100cd782 u32 SmackGetSizeTables(); - - // (SMACK.LIB) FUNCTION: LEGO1 0x100cd7e8 void SmackDoTables( u8* p_huffmanTrees, u8* p_huffmanTables, @@ -24,14 +21,8 @@ extern "C" u32 p_detailSize, u32 p_typeSize ); - - // (SMACK.LIB) FUNCTION: LEGO1 0x100cda83 void SmackDoFrameToBuffer(u8* p_source, u8* p_huffmanTables, u8* p_unk0x6b4); - - // (SMACK.LIB) FUNCTION: LEGO1 0x100d052c u32 SmackGetSizeDeltas(u32 p_width, u32 p_height); - - // (SMACK.LIB) FUNCTION: LEGO1 0x100d0543 u8 SmackGetRect(u8* p_unk0x6b4, u32* p_rect); }