-
Notifications
You must be signed in to change notification settings - Fork 3
/
scooby_looney.bms
149 lines (130 loc) · 2.96 KB
/
scooby_looney.bms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# WayForward Technologies (DATA and VOL) (script 0.1.2)
# various games of WayForward Technologies like:
# Scooby Doo & Looney Tunes Cartoon Universe: Adventure
# Shantae and the Pirates Curse
# script for QuickBMS http://quickbms.aluigi.org
ComType deflate
get SIGN long
if SIGN == 0x48a6647d
get DUMMY long
get DUMMY1_OFF long
get FILES long
get NAMES_OFF long
get INFO_OFF long
get OFFSETS_OFF long
get DATA_OFF long
goto NAMES_OFF
for i = 0 < FILES
get NAME_OFF long
putarray 0 i NAME_OFF
next i
goto INFO_OFF
for i = 0 < FILES
get CRC long
get ZIP long
get ZSIZE longlong
get SIZE longlong
putarray 1 i ZIP
putarray 2 i ZSIZE
putarray 3 i SIZE
next i
goto OFFSETS_OFF
for i = 0 < FILES
get OFFSET longlong
putarray 4 i OFFSET
next i
for i = 0 < FILES
getarray NAME_OFF 0 i
getarray ZIP 1 i
getarray ZSIZE 2 i
getarray SIZE 3 i
getarray OFFSET 4 i
goto NAME_OFF
get NAME string
string NAME R= "_" "/"
if ZIP == 0
log NAME OFFSET SIZE
else
clog NAME OFFSET ZSIZE SIZE
endif
next i
elif SIGN == 0xb53d32cb
get DUMMY short # 2
get DUMMY short # 0 or 4
get DUMMY long # 0x1c
get FILES long
get INFO_OFF long
get DATA_OFF long
goto INFO_OFF
for i = 0 < FILES
get CRC long
get NAME_OFF long
get OFFSET longlong
get SIZE long
savepos TMP
goto NAME_OFF
get NAME string
goto TMP
string NAME R= "_" "/"
log NAME OFFSET SIZE
next i
elif SIGN == 0x18f32f12
get DUMMY short
get DUMMY short
get DUMMY short
get DUMMY short
get OFFSET1 long
get FILES long
get NAMES_OFF long
get OFFSET2 long
get OFFSET3 long
get OFFSET4 long
get OFFSET5 long
get OFFSET6 long
get BASE_OFF long
goto NAMES_OFF
for i = 0 < FILES
get NAME_OFF long
savepos TMP
goto NAME_OFF
get NAME string
goto TMP
putarray 0 i NAME
next i
goto OFFSET4
for i = 0 < FILES
get ZSIZE longlong
putarray 2 i ZSIZE
next i
goto OFFSET5
for i = 0 < FILES
get SIZE longlong
putarray 3 i SIZE
next i
goto OFFSET6
for i = 0 < FILES
get OFFSET longlong
putarray 1 i OFFSET
next i
goto OFFSET3
for i = 0 < FILES
get ZIP byte
putarray 4 i ZIP
next i
for i = 0 < FILES
getarray NAME 0 i
getarray OFFSET 1 i
getarray ZSIZE 2 i
getarray SIZE 3 i
getarray ZIP 4 i
string NAME R= "_" "/"
if ZIP == 0
log NAME OFFSET SIZE
else
clog NAME OFFSET ZSIZE SIZE
endif
next i
else
print "Error: unsupported file type %SIGN|x%"
cleanexit
endif