Author Topic: SCI0: SCI0 Interpreter with added PKWare DCL Implode compression (comp_method=3)  (Read 136 times)

0 Members and 2 Guests are viewing this topic.

Offline robbo007

Hi guys,
On my quest to save hard disk space for my project after many hours of pulling my hair out I've managed to get a working version of the SCI0 Interpreter with added PKWare DCL Implode compression (comp_method=3) and only using a 6kb of memory footprint. Maybe someone else could do this better using less memory?

### Memory footprint (decompressor in SCIV.EXE)

4096-byte dictionary window : 4096 bytes
Fixed decode tables         : ~1800 bytes (compile-time constants)
State overhead              :  ~200 bytes
TOTAL                       : ~6096 bytes (~6KB)

I've also written a makevols.exe that compresses each resource with DCL Implode. Both are attached if anyone wants to test them.







Offline lskovlun

How much of this memory footprint is in heap, and how much is in hunk?

Offline Kawa

How much of this memory footprint is in heap, and how much is in hunk?
I don't think I understand the question. The decompressor is not itself a resource, and once uncompressed for use the resources are as big as always. Right?

Offline lskovlun

How much of this memory footprint is in heap, and how much is in hunk?
I don't think I understand the question. The decompressor is not itself a resource, and once uncompressed for use the resources are as big as always. Right?
The buffers can be allocated near (= in the data segment, preventing that space from being used for the heap) or far (= hunk).

Offline robbo007

Hi guys,
The patch costs the game zero heap and about 6KB of hunk, which matches how Sierra's own SCI16 engine handles this (it keeps the whole DCL work buffer in a far hunk Handle with zero near-heap use).
Hope that helps.


SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.026 seconds with 21 queries.