Hejka!
Odniosę się jeszcze do tego tematu który poruszyłeś:
qbahusak napisał/a:Z tymi natywnymi pakerami to też uważam to za bezsens. Jest sporo packerów działających DUŻO SZYBCIEJ i kompresujących MOCNIEJ niż te "latające kropki" - np. exomizer. Exomizer rozpakowuje 8kB w nieco ponad sekundę, po prostu nieco dłuższa pauza po wczytaniu gry.
Żeby ukręcić pare kb i czekać kilkanaście - kilkadziesiąt(!) sekund - masakra.
Zgadzam się że obecnie używanie cruncherów z epoki mija się z celem, w pełni zgadzam się z tym exomizer czy też lz4 oraz cała gama nowych wynalazków dostępnych obecnie jest o wiele bardziej efektywna, jednak jak już to pisałem kiedyś ... w czasach kiedy "bawiliśmy" się kompresją nie było nic takiego dostępnego... zatem pojawiały się takie a nie inne rozwiązania, tzn. pakowanie trwało wieki, dekompresja nie była za szybka... może nie trwała kilkadziesiąt sekund a maks kilkanaście (w przypadku Crunchera 5.0 czy też Code3 Crunchera) ... ale chciałem dodać parę słów dlaczego moim zdaniem kompresja w niektórych kręgach się po prostu przyjęła i stała się tak popularna...
W przypadków Cruncher-ów Magnusa (2.69, 4.64, 5.0) czy też Code3 Cruncher-a... potraktowanie "parchatej" wersji pliku tego typu cruncher-em, który tak naprawdę dokonywał kompresji obrazu pamięci zaraz po załadowaniu się gry, można było uporządkować strukturę pliku... po drugie potraktowanie takim cruncher-em powodowało że wszelakie zmiany z zawartości pliku stawały się mocno utrudnione, ponieważ taki plik po kompresji stawał się strumieniem bitów niewyrównanym do granicy bajtów, podglądając taki plik nie było można w nim zaobserwować żadnej sensownej treści... a więc wszyscy "amatorzy" podmiany napisów, ksyw czy nazwisk autorów w takich produkcjach mieli po prostu utrudnione zajęcie, po podmiana treści w skompresowanym strumieni bitów stawała się po prostu bezsensowna i wymagała tak naprawdę dekompresji takiego materiału i skompresowania go ponownie, a jeżeli taki "amator" podpisywania się pod cudzą pracą potrafił już takie rzeczy robić to szybciej było mu po prostu zrobić własnego cracka czy też własną wersję plikową danego programu.
SoTe w pewnym momencie wpadł na pomysł przeorganizowywania danych po kompresji tak aby dane były wyrównane co do bajtów, tzn. wszystkie bitowe dane były trzymane razem, a wszystkie "bajtowe" sekwencje były trzymane wyrównane do granicy bajtów, to powodowało że w przypadku LZSS/LZ77 procedura kopiująca niepowtarzające się dane ze wejściowego strumienia bitów mogła zamiast:
ldx #8
jsr get_bit
sta (dst),y
wykonać po prosu kopiowanie kawałka pamięci:
Tak właśnie powstał "Code3 Cruncher - Fast Depacker" ... z tego co pamiętam to wszystkie artykuły w Barymag #2 były już nim spakowane, przez co dekompresja była o wiele szybsza niż w przypadku wcześniejszej wersji Code3 Crunchera.
Z powstaniem tego Crunchera wiąże się też zabawna historia... mianowicie początkowo wszystkie części Bitter Reality były spakowane tymże packerem, jednak gdy dodaliśmy napis "decrunching" z płonącą świeczką to okazało się że dekompresja trwała zbyt krótko aby można było się "zachwycać" efektem płonej świecy :D ... zdecydowaliśmy więc że wszystko przepakujemy i użyjemy starego i wolnego dekompresora danych.
Użycie kompresji w przypadku dem takich jak Bitter Reality czy Overmind było wręcz niezbędne, założyliśmy że nasze produkcje będą zapisane w gęstoći Enhanced, tak aby posiadacze głych 1050 czy innych stacji bez obsługi gęstości double mogli bez problemu wczytać nasze dema. Bez kompresji Bitter Reality nie zmieściłoby się na jednej stronie dyskietki, a Overmind zajmowałby pewnie o jedną/dwie strony dyskietki więcej.
I jeszcze ostanie słowo o uporczywym pakowaniu wszystkich gier, releasów i innych programów... teraz to nie problem, ale kiedyś człowiek chciał upchnąć jak największą ilość danych i programów na jak najmniejszej liczbie dyskietek. Często i gęsto brakowało z kieszonkowego na dyskietki, więc logicznym stawało się trzymanie wszystkiego w postaci jak najbardziej "kompaktowej". Moja kolekcja oprogramowania wyglądała tak że wszystkie gry i programy które odpalałem były spakowane Code3 Cruncherem czy innymi metodami, natomiast użytki, źródła, etc. których nie potrzebowałem mieć natychmiast pod ręką miałem spakowane w formacie .ARC lub .LHA, lub często archiwum stworzone przy pomocy "Disk Communicator 3".
Wtedy nie przejmowałem się zupełnie tym że dobranie się do takich danych trwa długo... chciałem mieć to upchnięte na jak najmniejszej liczbie dyskietek, gdyby nie to byłbym zmuszony do kasowania danych i dużo rzeczy przepadłoby bezpowrotnie, te rzeczy oczywiście mają jedynie wartość sentymentalną i z punktu widzenia pozostałych ludzi nie mają żadnego znaczenia, ale mi pozwalają sobie przypomnieć jak dużo rzeczy już nie pamiętam że robiłem i jak dużo rzeczy robiłem źle :) Jest to jakiś tam kawałek historii i pewnie większość ludzi z naszego podwórka może dziwić takie podejście do przechowywania danych, jednak dla mnie było zupełnie normalne :)
Jeże dwa słowa o kompresowaniu za pomocą LHA... jak wiadomo na Atari 8-bit nie ma kompresora który generował by pliki LHA, jest natomiast SuperUnLHArc napisany przez Bob-a Puff-a. Zatem wyobraź sobie sytuację w której genrowałem obraz DCM lub archiwum ARC w którym znajdowały się interesujące mnie pliki, nagrywałem to na dyskietkę w formacie IBM PC (FAT-12) za pomocą TOMS-720 biegłem do kumpla który miał jakieś 286/386 i tam używając ARC-a i LHArc-a generowałem sobie archiwum LHA które ponownie nagrywałem na dyskietkę w formacie IBM, aby potem to w domu przenieść na dyskietkę w formacie MyDOS 720kB, na których trzymałem tak zarchiwizowane skarby.
Równie bezsensowne było pakowanie danych na C64 które trwało naprawdę dłuigimi godzinami albo dniami (jeżeli używałem kilku/kilkunastu packerów celem wygenerowania najmniejszego pliku). Potem gdy miałem dostęp do Amigi (kolega dostał w końcu wymarzoną Amigę 500) to mogłem zacząć używać u niego PowerPacker-a, a gdy mieliśmy po '95 roku dostęp do Atari ST, zacząłem używać Ice! Pack-a... to wszystko patrząc z dzisiejszej perspektywy nie miało najmniejszego sensu i być może irytowało niektórych długim czasem dekompresji... ale wiesz ile ja dzięki temu wszystkiemu się nauczyłem o kompresji danych? :) Ile literatury i książek przeczytałem? :) Dla mnie nie był to zmarnowany czas... to był czas bardzo fajnej zabawy i poznawania świata algorytmów, struktur danych i nauki nowych rzeczy. Dzięki temu wszystkiemu nauczyłem się nie tylko asemblera 6502, ale także motoroli 68000, oraz 8086.
I oczywiście gdyby np. nie Magnus i wielu innych ludzi których osiągnięciami i pracą się inspirowałem nie poznałbym tylu fascynujących mnie rzeczy. I pomyśleć że teraz po tylu latach takie niewinne zabawy mogą wywołać taką dyskusję... prawdę mówiąc nie spodziewałem się :)
ps) jeszcze jedna ciekawostka... gdyby nie przygody z tymi wszystkimi programami kompresującymi, nigdy nie byłoby możliwe powstanie wersji plikowej gry "Technus" która oryginalnie zajmowała praktycznie jedną stronę dyskietki... dzięki odrobinie uporu i słowom rzuconym przez nie pamiętam już kogo... "Tego się nie da zrobić!"... udało się jednak tego dokonać: Technus - file version from Clever People.
W tym "release" użytko kliku cruncherów na platformie C64 oraz Amigowskiego Power Packer-a. Dzięki temu udało upakować dane tak, aby koniec gry rezydował cały czas w pamięci podczas normalnej rozgrywki, tak aby mógł zostać on zdekompresowany po zakończeniu gry przez użytkownika. Normalnie koniec gdy doczytywał się z dyskietki. Gra zabierała gro pamięci dla siebie, więc wyłuskanie miejsca skompresowane dane to był jeden z problemów, należało jeszcze bardzo silnie skompresować dane zawierające zakończenie gry... najbardziej efektywnym w tamtym czasie okazał się jeden z programów kompresujących na platformie C64 (nie wiem czy dobrze pamiętam, ale mógł to być X-Rated Power Cruncher).
Take dziś coś co wydaje się zupełnie bezsensownym działaniem, dla nas w tamtym czasie był bardzo ciekawym zagadnieniem i bardzo ekscytującym obszarem do eksploracji. Takie były czasy ... praktycznie zerowy dostęp do literatury... zatem uczyliśmy się od innych, popełnialiśmy masę błędów, brnęliśmy z uporem maniaka w ślepe uliczki, no ale tak to właśnie wyglądało... wyszło co wyszło :)
ps1) Część rzeczy nie ujrzało światła dziennego, ale jak obiecywałem już parę razy... licząc na to że nadejdą niebawem lepsze czasy, i że znajdę więcej czasu na to dziwne hobby jakim jest Atari i wszystko co z nim związane to wyciągnę to z czeluści kartonów leżących w różnych dziwnych miejscach i opublikuję w ramach ciekawostek z przeszłości. Mam nadzieję że wtedy wywołam uśmiech na waszych twarzach i jednocześnie zakończę spór o powolną dekompresję i kompresję :D
ps2) @vlx ... obawiam się że możesz mieć rację... znaczący wpływ na moją psychikę tego dnia którego pisałem ten scroll (coś mi się kojarzy że jednak miałem małą pomoc ;P) mógł mieć "dr wycior", nie wiem czy to był wtorek akurat... ale "III program" polskiego radia ze względu na audycję "Radiokomputer" był częstym gościem grającym w tle. Używałem wtedy tunera i wzmacniacza z serii "Meluzyna", przejąłem go przez zasiedzenie, od mojego wujka który to kupił sobie nowy sprzęt :D