76

@xxl: A czym tego PackFire można kompresować na PC? Najfajniej gdyby było na unixoidy.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

77

pod koniec strony masz linki do binarek - windows na pewno

https://xxl.atari.pl/packfire-decompressor/

http://atari.pl/hsc/ad.php?i=1.

78

ZX02

https://github.com/dmsc/zx02

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

79 Ostatnio edytowany przez mono (2022-05-29 19:39:37)

$ zx02 infile outfile

  7680 conan.gfx
  1629 conan.gfx.zx02
30653 Landscape.xex
13546 Landscape.xex.zx02
  8192 RiverRaid.rom
  6312 RiverRaid.rom.zx02

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

80

@xxl, fajnie byłoby, gdybyś do każdego kompresora np. robił taką binarkę, co dekompresuje Conan.img. Wtedy widać, ile zajmuje i jak szybko działa. I np. wypisać wynik w ilości scanlines po naciśnięciu przycisku.

Jak już się ma 20 dekompresorów - to kluczowe jest jak wybrać ten idealny do potrzeb.

81

Dodałbym do takiego zestawienia jeszcze ile zajmuje kod dekompresora i BUFORY potrzebne do działania algorytmu. Bo czasem się okazuje, że dekompresor jest krótki i ładny, ale za to wymaga 13 stron na bufory... I cały zysk z dobrej kompresji idzie w maliny.
I czy da się wyjmować bajt po bajcie, czy trzeba mieć miejsce na cały zdekompresowany blok. I czy dekompresowany blok się może nadpisywać, i czy wprzód czy nazad :)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

82

to do dzieła... macie tyle dobrych pomysłów

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

83

@tebe - to głównie xxl robi te dekompresory - więc najlepiej by było, gdyby on to zrobił, wtedy będzie w jednym miejscu i spójnie. Co z tego, że ktoś inny to zrobi, jak zniknie to w bezmiarach internetu.

84 Ostatnio edytowany przez xxl (2022-07-19 14:41:26)

przeciez wszystko jest na stronie np: https://xxl.atari.pl/zx0-decompressor/

najmocniejszy jest shrinkler ktory miazdzy konkurencje, wymagania ma ale rozsadne, bufor mozna umiescic np. w pamieci ekranu... poza tym pare dni temu wyszla nowa wersja kompresora :D

pozostale tez maja podane wymagania i przyklady uzycia... obecnie proponuje zerknac na ZX0 i ZX5 - krotkie i bez bufora poza tym bardzo dobra kompresja i szybki dekompresor.

jesli ktos faktycznie walczy o bajty to i tak musi wykonac probe ktory kompresor jest najlepszy dla jego danych...

wszystkie te dekompresory moga dekompresowac z pamieci ale lepszym rozwiazaniem jest dekompresja z pliku albo z ramdysku... przestaje miec znaczenie dekompresja w przod czy w tyl... mozna tez rozwazyc dekompresje ze wspolnym slownikiem dla kilku plikow... sa rozne pomysly... zwracalbym tez uwage na dekompresowy ktore nie musza miec podanych ilosci danych do dekompresji - te wydaja mi sie kompletne.

http://atari.pl/hsc/ad.php?i=1.

85 Ostatnio edytowany przez mono (2022-07-19 21:31:37)

tebe napisał/a:

to do dzieła... macie tyle dobrych pomysłów

Ja to mogę się podzielić swoim Makefilem który zrobiłem do automatycznego generowania skompresowanych pliczków, co ułatwiło mi dobór kompresora do moich potrzeb.

Żeby dodać nowy kompresor trzeba:
1. Zdefiniować kompresor i rozszerzenie (jak poniżej zx02 i .zx02)

ZX02 = zx02
ZX02S = $(SOURCES:=.zx02)

2. Zdefiniować reguły dla nowego kompresora (zx02) i skompresowanych plików (%.zx02)

zx02: $(ZX02S)

%.zx02: %
        $(ZX02) $< $@

3. Dodać nowy kompresor (zx02) do .PHONY, all i clean:

all: exomizer2 exomizer3 chrust shrinkler bitbusterx deflater zx02 aplib packfiretinyw packfirelargew

clean:
        $(RM) $(EXO2S) $(EXO3S) $(CHRS) $(SHRS) $(BBXS) $(DFLS) $(ZX02S) $(APLS) $(PFTS) $(PFLS)

.PHONY: all clean exomizer2 exomizer3 chrust shrinkler bitbusterx deflater zx02 aplib packfiretinyw packfirelargew

Trzeba do tego mieć pliczki do skompresowania:

SOURCES = conan.gfx Landscape.xex RiverRaid.rom

no i poinstalowane kompresory:
- exomizer
- exomizer3
- chrust
- shrinkler
- bitbuster_extreme
- PackFire
- deflater
- zx0
- zx02
- zx5
- zx7mini
- appack
- arj
- lz4

Edit: Uzupełniłem plik o wszystkie packery które są na stronie xxla. A poniżej wyniki:

7680 conan.gfx
1739 conan.gfx.apl
2107 conan.gfx.arj
1770 conan.gfx.bbx
1893 conan.gfx.chr
1671 conan.gfx.dfl
1566 conan.gfx.ex2
1561 conan.gfx.ex3
2232 conan.gfx.lz4
1452 conan.gfx.pfl
1581 conan.gfx.pft
1440 conan.gfx.shr
1625 conan.gfx.zx0
1629 conan.gfx.zx02
1532 conan.gfx.zx5
1864 conan.gfx.zx7

30653 Landscape.xex
14028 Landscape.xex.apl
15949 Landscape.xex.arj
14587 Landscape.xex.bbx
14529 Landscape.xex.chr
14491 Landscape.xex.dfl
13771 Landscape.xex.ex2
13604 Landscape.xex.ex3
16983 Landscape.xex.lz4
12761 Landscape.xex.pfl
13823 Landscape.xex.pft
12921 Landscape.xex.shr
13530 Landscape.xex.zx0
13546 Landscape.xex.zx02
13459 Landscape.xex.zx5
15769 Landscape.xex.zx7

8192 RiverRaid.rom
6440 RiverRaid.rom.apl
7293 RiverRaid.rom.arj
6614 RiverRaid.rom.bbx
6525 RiverRaid.rom.chr
6292 RiverRaid.rom.dfl
6284 RiverRaid.rom.ex2
6199 RiverRaid.rom.ex3
7419 RiverRaid.rom.lz4
6006 RiverRaid.rom.pfl
6284 RiverRaid.rom.pft
6068 RiverRaid.rom.shr
6313 RiverRaid.rom.zx0
6312 RiverRaid.rom.zx02
6334 RiverRaid.rom.zx5
7156 RiverRaid.rom.zx7

Post's attachments

Makefile 1.75 kb, liczba pobrań: 4 (od 2022-07-19) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

86 Ostatnio edytowany przez qbahusak (2022-07-20 09:23:07)

conan spakowany exomizerem 2.0.6. Rozpakowuje się domyślnie od końca, czyli można ładować niemal w miejsce docelowe, kilka bajtów niżej i lecieć z dekompresją. Natomiast nie jest tak szybki jak zx5, a to jeden z najszybszych dekompresorów.

Post's attachments

conan_exo2.xex 1.92 kb, liczba pobrań: 1 (od 2022-07-20) 

Tylko zalogowani mogą pobierać załączniki.

87

Za to kompresuje z 5 minut te 8K. Szkoda że nie potrafi milionem rdzeni.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

88 Ostatnio edytowany przez qbahusak (2022-07-20 09:39:05)

Exo do kilobajtów jest git. A jaki masz komputer???? :P U mnie kompresuje sekundę conana. Fakt, że w przeliczeniu na bajt jest to wolno, ale do przełknięcia.

89

Asus ROG STRIX SCAR 2. Ale widzę że wszystko jedzie na jednym rdzeniu. Mówię o zx5. Exomizer śmiga.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

90

jak to jest z tym exo? trzeba podawac podczas kompresji adresy pamieci gdzie maja byc dane dekompresowane?

chodzi o to, ze nie wiem gdzie bede depakowal dane czy mozna w takim wariancie uzywac exo?

http://atari.pl/hsc/ad.php?i=1.

91 Ostatnio edytowany przez qbahusak (2022-07-20 11:04:50)

Zawsze miałem problem z linią wywołań exomizera, więc nie wiem.

A co myślisz o tym:

ZX1 is a simpler but faster version of ZX0 that sacrifices about 1.5% compression to run about 15% faster.
https://github.com/einar-saukas/ZX1

W sumie jak jest zx0 to zx1 będzie łatwo. W sumie w grze niemal zawsze chodzi o szybkość, więc może warto.

92

jest gra ktora do zmian komnat uzywa dekompresora zx0 i nie widac zadnego spowolnienia :-)


zerkne w nocy na tego zx1

http://atari.pl/hsc/ad.php?i=1.

93

xxl napisał/a:

jak to jest z tym exo? trzeba podawac podczas kompresji adresy pamieci gdzie maja byc dane dekompresowane?

On tam ma kilka trybów pracy - z grubsza:
- sfx - selft-extract generuje xexa który rozpakowuje się na siebie
- mem - do rozpakowania w konkretnej lokacji pamięci - wtedy adres docelowy zaszyty jest w wyniku
- raw - do dekopresji gdziekolwiek - również dekompresji strumieniowej

$ exomizer raw -c -o file.exo file

Parametrem -m można określić jeszcze wielkość bufora jakiego dekompresor będzie używał - ma to wpływ na wielkość wyniku

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

94

w tabelce jest wynik wersji raw? a jak to wyglada dla bufora 1 bajtowego? czy ten dekompresor musi miec podana ilosc danych do dekompresji albo adres koncowy?

tak dopytuje bo juz nie pamietam ale kilka razy probowalem sie przekonac do exo i za kazdym razem cos mi nie gralo i za kazdym razem inne ograniczenie. zreszta jego wniki sa takie ze raczej do devloperki to bym go nie uzyl ;-)

http://atari.pl/hsc/ad.php?i=1.

95

exomizer jest już w wersji 3.1.1, używacie starych programów

https://bitbucket.org/magli143/exomizer/wiki/Home

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

96

tebe napisał/a:

exomizer jest już w wersji 3.1.1, używacie starych programów

Poniekąd, ponieważ do nowej wersji nie ma jeszcze dekompresora strumieniowego. Do innych celów używamy nowego, dlatego w mojej liście masz dwa exomizery.

xxl napisał/a:

w tabelce jest wynik wersji raw?

%.ex2: %
    $(EXO2) mem -f -l none -o $@ $<@0x4000
 
%.ex3: %
    $(EXO3) mem -f -l none -o $@ $<@0x4000

Zachęcam do eksperymentowania.

xxl napisał/a:

a jak to wyglada dla bufora 1 bajtowego?

Nie sprawdzałem, ale rozmiar bufora dla exostreamdecr1.s podaje się w pełnych stronach i dla moich celów dobrze działa $300 - mniejsze generowały już nieakceptowalny wynik.

xxl napisał/a:

czy ten dekompresor musi miec podana ilosc danych do dekompresji albo adres koncowy?

Nic mi o tym nie wiadomo.

Exomizer3 ma za to ciekawą opcję - umożliwa wygenerowanie jednego ciągu enkodującego dla całej grupy plików (parametry -E i e) co pozwala usunąć tenże ciąg z danych skompresowanych. To jest kilkadziesiąt bajtów, ale jeśli mamy kilkadziesiąt skompresowanych pliczków to już robi się z tego kilka czy kilkanaście stron. Wtedy przed dekompresją każdorazowo inicjalizuje się bufor dekompresji tymże ciągiem kodującym, po czym odpala się już docelową dekompresję.
Nie zawsze się to oczywiście opłaca, ale to kwestia sprawdzenia co będzie mniejsze.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

97 Ostatnio edytowany przez xxl (2022-07-20 17:56:51)

mono napisał/a:

możliwa wygenerowanie jednego ciągu enkodującego dla całej grupy plików

czyli slownik zewnetrzny. juz lz4 ma taka mozliwosc.

http://atari.pl/hsc/ad.php?i=1.

98

ZX1 nie jest zly, szybszy moze z 10% od ZX5 ale gdzie mu do niego ;-)

ZX0: 1625
ZX1: 1671
ZX5: 1532

zrodla umieszcze wkrotce na stronie

Post's attachments

zx1-gfx.obx 1.94 kb, liczba pobrań: 3 (od 2022-07-20) 

Tylko zalogowani mogą pobierać załączniki.
http://atari.pl/hsc/ad.php?i=1.

99

done: http://xxl.atari.pl/zx1-decompressor/

http://atari.pl/hsc/ad.php?i=1.

100

Dzięki!