Add library symbols for flic and smack (#461)

This commit is contained in:
Christian Semmler 2024-01-19 17:11:51 -05:00 committed by GitHub
parent 1c4f772a82
commit 701c700d69
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 54 additions and 56 deletions

View file

@ -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

BIN
3rdparty/flic/flic.lib vendored

Binary file not shown.

6
LEGO1/library_flic.h Normal file
View file

@ -0,0 +1,6 @@
#ifdef 0
// LIBRARY: LEGO1 0x100bdce0
// _DecodeFLCFrame
#endif

18
LEGO1/library_smack.h Normal file
View file

@ -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

View file

@ -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);
}