| |
The Shadow
Registered: Oct 2007 Posts: 304 |
Active Memory Decrunching
There is a theoretical technique that some crackers have experimented with in the past. It may be useful for such applications as working with a large digitized SID for example. If for instance you have a very large song and you wish to fit it into a demo page, with a large bit of code and some large graphics. Within the memory is a sequence crunched song. Within the memory is a specially designed decruncher. While the music plays, the decruncher decrunches part of the crunched memory into a block or two of open memory and the player only plays what is in the open memory.
Some crackers have experimented with what I have referred to in the past as 'Memory Level Packing'. A game with levels just small enough to be levelcrunched within memory and decrunched into open memory as levels progress. |
|
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
And ?
Are you gonna make a demolinker that will do this ? |
| |
The Shadow
Registered: Oct 2007 Posts: 304 |
No, sequence crunchers are beyond my level of skill. |
| |
doynax Account closed
Registered: Oct 2004 Posts: 212 |
Many games use meta-tiles to compress levels in memory, while trackers allow for reusing old patterns many times within a song, other games use RLE coding for their tilemaps. I'd argue that any of these techniques is an example of in-memory decompression.
For my own game project I use a sliding-window LZ cruncher, and even stream in compressed data from floppy. But such convoluted schemes are only applicable to a very limited set of games as you cannot seek within the data stream, only decrunch forward. |
| |
WVL
Registered: Mar 2002 Posts: 902 |
Quote: Many games use meta-tiles to compress levels in memory, while trackers allow for reusing old patterns many times within a song, other games use RLE coding for their tilemaps. I'd argue that any of these techniques is an example of in-memory decompression.
For my own game project I use a sliding-window LZ cruncher, and even stream in compressed data from floppy. But such convoluted schemes are only applicable to a very limited set of games as you cannot seek within the data stream, only decrunch forward.
This is not 100% true.. I've made a LZW-packer that can decompress from points in the file which you can specify. The result is a packed binary + a pointer list. To handle this, it works a bit different from normal LZW-packers (which refer to already unpacked data while unpacking) by referring to packed data instead. |
| |
The Shadow
Registered: Oct 2007 Posts: 304 |
Equal Character packing, sequence crunching and levelpacking are familiar terms to me. I am unfamiliar with the term LZW. What does it stand for and how does it work? |
| |
doynax Account closed
Registered: Oct 2004 Posts: 212 |
Quote: This is not 100% true.. I've made a LZW-packer that can decompress from points in the file which you can specify. The result is a packed binary + a pointer list. To handle this, it works a bit different from normal LZW-packers (which refer to already unpacked data while unpacking) by referring to packed data instead.
I'd call that static dictionary coding since LZ refers to Ziv and Lempel's discoveries of pratical methods for dynamically building dictionaries, whether for LZ77/LZSS or LZ78/LZW, not dictionary coding itself.
But, yes, there are plenty of compression which allow (more or less) random access at the cost of compression ratio. Huffman coding is another good example.
|
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
Quote: Equal Character packing, sequence crunching and levelpacking are familiar terms to me. I am unfamiliar with the term LZW. What does it stand for and how does it work?
http://en.wikipedia.org/wiki/LZW
http://marknelson.us/1989/10/01/lzw-data-compression/ |
| |
algorithm
Registered: May 2002 Posts: 705 |
Yhe 'Open your eyes' demo uses in memory decrunching to decrunch the codebook/frame data to a buffer while the demo is running. but memory is limited as the buffer area is required and only left with around 30k or so of crunched data to depack when required.
|
| |
The Human Code Machine
Registered: Sep 2005 Posts: 112 |
I used Darksqueezer in memory decompression for the background pictures here: Ikarus |
| |
Mace
Registered: May 2002 Posts: 1799 |
Interesting to see that people start dicussing although The Shadow merely stated something.
There's not a single questionmark in his post :-)
Andy, what is your point? |