CodeAlles anzeigenADD_FILE_EXTENSION_AND_MORE_sub_258E2(arg_0=0x0001, arg_2=0xFFFF, filename="MNUCHR18", extension_type=0x0003) extension: .LIB SOMETHING_WITH_FILENAME_OPEN_ETC_sub_1C56E("MNUCHR18.LIB",some_buffer(0x7147:0x000A) => 0x0007147A),file_read_buffer(0x4122:0x000E => 0x0004122E),unknown_buffer(0x397B:0x0000 => 0x000397B0),0x00) DOS_OpenFile: file: MNUCHR18.LIB, handle: 5 DOS_ReadFile: name: BLUEBYTE\HL\MNUCHR18.LIB, handle: 5, toread: 8, at-pos: 0 => ds:dx(0x2DCF:0x0484) => 0x0002E174 read: 8 000000: 18 3D 00 00 49 4E 46 4F .=..INFO DOS_SeekFile: name: BLUEBYTE\HL\MNUCHR18.LIB, handle: 5, pos: 0 DOS_ReadFile: name: BLUEBYTE\HL\MNUCHR18.LIB, handle: 5, toread: 65526, at-pos: 0 => ds:dx(0x7147:0x000A) => 0x0007147A read: 16204 000000: 18 3D 00 00 49 4E 46 4F 49 4C 42 4D FF 55 00 00 .=..INFOILBM.U.. 000010: 00 00 0E 00 12 00 5B 5B 5B 5B 5C 13 5D 5C 5C 11 ......[[[[\.]\\. 000020: 13 5C 5C 1E 15 5C 5C 1E 1E 5C 13 1E 1E 5D 13 1E .\\..\\..\...].. 000030: 1E 5E 13 1E 1E 5E 13 1E 1E 5E 13 1E 1E 5E 13 1E .^...^...^...^.. 000040: 1E 5E 13 1E 1E 5E 13 1E 1E 5E 5C 1E 1E 5D 5C 1E .^...^...^\..]\. 000050: 1A 5C 5C 1A 1A 5C 5C 1A 5E 5C 1C 1C 5E 1C 5B 5B .\\..\\.^\..^.[[ 000060: 5B 5B 5C 13 5C 5C 5C 11 15 5C 13 1E 17 5C 13 1E [[\.\\\..\...\.. 000070: 18 5C 13 1A 18 5C 11 1A 1E 5C 11 1A 1E 5C 11 1A .\...\...\...\.. 000080: 1E 5C 11 1A 1E 5C 11 1A 1E 5C 11 1A 1E 5C 13 19 .\...\...\...\.. 000090: 19 5C 13 1E 1A 5C 17 1E 1A 5C 5C 1A 1A 5C 5C 1A .\...\...\\..\\. 0000A0: 1C 5C 1C 5E 1C 1C 5B 5B 5B 5C 13 5C 13 11 5D 13 .\.^..[[[\.\..].
jetzt kann man auch schön sehen das der 2. Parameter der SOMETHING_WITH_FILENAME_OPEN_ETC_sub_1C56E von mir liebevoll "some_buffer" getauft
der Puffer ist für den ungepackten Dateiinhalt, der file_read_buffer ist dann wohl nur der Zwischenspeicher zum entpacken
Auffällig finde ich hier, dass auch hier zunächst 8 Byte gelsen werden und anschließend dann der Rest in großen Blöcken.
In der out.txt, die du kürzlich hier eingestellt hast, sah man das ja auch sehr gut z.B. bei der NEWCHAR6.DAT. Da liest er ebenfalls zunächst 8 Byte ein und den Rest dann in 4 KB Blöcken. Die 8 Bytes passen dort perfekt für eine Abfrage, ob die Datei komprimiert ist und dürften also in eine entsprechende Prüffunktion gehen. Passt ja genau mit dem ID String "TPWM" + 4 Bytes für die unkomprimierte Größe.
Zum Aufbau der LIB-Dateien hatte ich ja schon herausgefunden, dass die ersten vier Byte das Offset zu einem Block mit IDs/Bezeichnungen der enthaltenen Grafiken und den jeweiligen Offsets bilden. Er liest also diesen Offset und den String "INFO".