zajc information 59 glöps
- general:
- level: user
- personal:
- first name: Marin
- last name: Saric
- portals:
- demozoo: profile
- demotool Windows Atari ST Amiga AGA Atari STe Amiga OCS/ECS Atari TT 030 L-Packer by Oxygene [web]
- Leonard says:
Quote:Any other algorithm suggestion?
Maybe try writing your own.
I learned a lot from Blueberry's masterpiece, who I think learned a lot from Igor Pavlov's code, then:
- developed an incredibly efficient context model for 68k
(parity coding)
- developed a super efficient relocation compression model
- built a very sophisticated Amiga Hunk parser that even automacally strips symbols(!!!)
and then fused all this with absolute world-class 68000 sizecoding mastery to produce what we all casually use.
As a humble student of great masters, I developed a completely different entropy coder and try to build upon a lot of tricks, to maintain the same ratio as shrinkler but constantly average 5K/sec depack speeds on Amiga 500, so roughly 80% faster.
Leonard says:
Quote:Yes, nothing could beat arithmetic coder of shrinkler (or STrinkler on atari).
I also have experimental modifications that depending on your data can net you another 0.5% to 1%... but Blueberry probably developed a ton of these in the meantime and everyone who spends some quality time on compression can probably think of their own tricks.
Blueberry says:
Quote:- At the 64k size target, decrunching while loading doesn't make that much of a speed difference relative to just having a fast decruncher, so it makes sense to avoid the complexity (and thus size overhead) of decrunching while loading.
Or you can be a fool like me and sacrifice about 100 extra bytes to get the realtime loading going on a 40k intro... if I finish it, I'll show you at Gerp.. The intro starts before a normal 40k can even load. All the while using compression ratios virtually identical to Shrinkler :) - isokadded on the 2026-01-16 11:54:14
- demotool Windows Atari ST Amiga AGA Atari STe Amiga OCS/ECS Atari TT 030 L-Packer by Oxygene [web]
- Thanks for the clarifications, just my 5 cents here.
Coda by Abyss is written in (well optimized) C and does indeed have close to a thousand relocs. As I mentioned this is the only case I imagine in which things will take 30 seconds.
I just want to correct the record here about the reason Shrinkler is so good and if you evaluate it against bzip2, bzip3, zstd, etc. you will see that there's more to it than "just" arithmetic coding.
- it uses bit-by-bit adaptive probabilistic modeling like Matt Mahoney's FPAQ,etc.
- it creates a super efficient adaptive probabilstic model for Elias Gamma coded LZ backreferences and lengths
- it improves the LZ codestream to allow for reusing the previous backreference
and
(and here's the bit of why Abyss Coda takes so long)
it also employs a special Elias Gamma probabilistic context for decoding the delta packed relocs. This is not a part of the easy-to-read data decompression routine that you ported.
If you try adding that to your ST port of Shrinkler, you will likely see the executables get even smaller.
That all of this fits in so few bytes of decompression routine is an absolute masterpiece. What's even better the clock per clock instruction usage is actually pretty well tuned for 68000 and the tradeoffs made are such that there is no obvious way to substantially improve the performance.
For instance, the actual arithmetic decoding is a masterpiece. It uses high precision range coding, incredibly well tuned for 68000. The "slowdown" among other things come from adaptive probabilistic context.
What can be ported over from, say, ZX0 is using interlaced Elias Gamma coding as this could get you some more wins in the decompression routine size (as if Shrinkler is not in a league of its own already).
And I haven't even begun talking about the cruncher, which tries to find LZ Optimal encoding, which, for adaptive entropy coding is an open research problem.. - isokadded on the 2025-12-07 18:40:33
- demotool Windows Atari ST Amiga AGA Atari STe Amiga OCS/ECS Atari TT 030 L-Packer by Oxygene [web]
- +1 for continuing to mess with packers :)
Some remarks and questions, summary:
- Shrinkler depack time is overstated by (at least) 15%
- Licensing
- Charts, I love charts:
- Including shrinkler file size in the chart
- Including depack time in the chart
- Including depacker disk overhead in bytes for Amiga and Atari
- Including depacker mem overhead in bytes for Amiga and Atari
- Including the pareto front, a simple log log chart with:
- X axis speed (KB/s) vs Y axis size (bytes)
It would be nice to see some more algorithms (Titanics, PowerPacker, PackFire, Doynamite, lha) in the charts.
Can you clarify how does the license apply to code packed with L-Packer? Do you have expectations of being credited in the prods using it?
As far as shrinkler goes, Shrinkler decompression routine does around 350 clocks per compressed bit on an Amiga 500. With standard 2bpl hires DMA interference, we're looking at around 2.5KB/s, so 26 seconds, unless you are having something like 1000 relocs in your hunks (but why do that in a 64k intro?). Probably more than 10% faster on Atari ST, so 23 seconds, but I don't know Atari..
If you have a 64k file that takes 30 secs with shrinkler, please lmk, I'd love to take a look at it..
Thanks for continuing to innovate, I love seeing your work pop up everywhere :) - rulezadded on the 2025-12-04 13:44:17
- demo Amiga OCS/ECS Game On
- I love it when old school coders who have done prods since the early 1990s come back. I would also love it if something that was done by an oldschool coder, such as Existenz that pushes the envelope and shows of never seen stuff, gets more upvotes than an AMOS prod with nice bitmaps and music.
However, this does not look like it works yet. On my Kick 1.3, 1MB Chip Amiga 500 (Rev 6), it flickers so much that my eyes feel like they will bleed.
I will give an upvote if someone, anyone, can show me this works on an Amiga 500 with no fantasy hardware (accelerators, Fast RAM, etc).
In the meantime, hoping from more releases from tarnow, who coded major prods for both OCS and AGA (3d engines!!!) - isokadded on the 2025-12-04 12:58:27
- dentro Amiga AGA Dust and Rust by Binary
- Missed a chance to meet the legendary Amigo in Sisak :(
Sweet trolling by Amigo, runs on a decent framerate on my stock Amiga 1200!
Also loved Joe's music comeback, so 1990s to remix Snap's Exterminate!
Ahhhh memories!
There was a Croatian musician that "did" exterminate (basically ran the key parts through his digitizer), but I think that was Nino/ITM/Lizard, can't find it anymore
The effect in itself is solid solid stuff for stock A1200, probably flies on 68060 but I don't do fantasy AGA machines either.. - rulezadded on the 2025-11-24 13:35:08
- demo Amiga OCS/ECS Move Any Mountain by Lazy Bones
- I just want to remind people that this is by far the earliest implementation of Voxelspace that runs on an Amiga 500+ .
re: break, at that time Commodore just shipped whatever they happen to have in stock so sometimes you would get Amiga 500 with 500+ hardware, sometimes it would be badged as an Amiga 500.
In 1993, Coyote lived in a village in rural Croatia, population 184 people, with no access to Internet or a modem to dial a BBS.
Given that, hardly suprising he did not release something super compatible as he basically bruteforced the registers to learn about Amiga capabilities. In the process discovered the "illegal" 7 bitplane HAM trick, used recently by Inside the Machine by Desire. Checkout the Anniversary 40k intro for more info.
But guys, IMHO first voxelspace on Amiga 500, probably the only one for the next 20+ years, if you don't count the parallax voxel that came out in the awesome Rampage by TEK a full year later.
For all that, he got a 3 thumbs up and a few piggies and for the 7 bitplane trick the only thumb up was from me. Such is the life of a coder sometimes. Literally a technological breakthrough on old school Amigas and people do not really notice. - rulezadded on the 2025-11-24 13:04:45
- demo Amiga OCS/ECS Deep by Destruction
- Very cool OCS production that runs great on 512K+512K KS 1.3 Amiga 500
Includes a unique intereference/metaball looking effect that I have not seen since or before. Everything runs in one frame.
Thumbing up, because I think it just got lost in the whole AGA + Blizzard madness of mid 1990s. - rulezadded on the 2025-11-18 10:06:15
- demo Amiga OCS/ECS Existenz by Existenz
- Amazingly innovative A500 code, very very original stuff. Thoroughly impressive and definitely a lot of never (or very rarely) seen before on A500 in this pixel format.
Maybe it was second place at Boom, but it is a first in every Amiga coder's heart, that's for sure.
The high fps 2D motion, lower fps 3D object rendering trick reminds me of similar in Nexus 7, also when showing shaded object. But that was stock Amiga 1200 and this is stock Amiga 500.
Genuine Amiga 500 coderporn, thank you for this! Also well packaged, nice music and graphics, good work! .. and hoping the reference to the Cronenberg movie is intentional :) - rulezadded on the 2025-08-01 04:57:36
- demo Amiga OCS/ECS Flame by New Generation Crew
- Has to be a record-holding OCS prod for the longest singing voice. I am a sucker for boundary-pushing prods. Very creative. Trackloading IMHO is the lost art that the new generation of sceners is trying to revive. It's going to be tough to approach something like the Sanity Operating System (https://aminet.net/package/dev/asm/SanityOperationSystem).. or even the trackloader in Desert Dream (works on all machines, detects floppy swaps and will load off of an external drive)
- rulezadded on the 2024-11-27 01:31:10
- demo Amiga OCS/ECS Inside the Machine by Desire [web]
- Now works on A500 with a floppy, I have no real explanation why. There'a a daemon in the trackloading code here, anyway, as I said, love how much this prod pushes the OCS platform
- isokadded on the 2024-10-08 16:22:12
account created on the 2022-11-12 13:58:18
