Oznámení

Sbalit
Aktuálně žádná oznámení.

Amiga 500 - komprese dát - assembler

Sbalit
X
 
  • Filtr
  • Čas
  • Zobrazit
Vymazat vše
new posts

    Amiga 500 - komprese dát - assembler

    Co použít pro komprimaci dát aby to bylo použitelný v assemblery na Amize a stíhala to i Amiga 500 v základní výbavě? Bojuji s velikostí hudebního formátu MOD (s velikostí samplů v MODu).

    Na 1 disketu toho moc nedám.

    Další možností je udělat pouze HDD verzi, ale nevím jestli jít tímhle směrem. V asm zatím vše dávám do paměti a to by zvyšovalo paměťovou náročnost, ale je to alternativa, udělat to tak, aby to běželo na 2 MB RAM, ale v rámci Amigy 500 se mi to zdá bít zbytečně veliké omezení, udělat to takhle paměťově náročné.

    Nevím, kterým směrem se vybrat, aby jsem neztrácel čas s příliš špatným výběrem.

    Dotaz dám i na Oldcomp.​
    Amiga - PMD 85

    #2
    Jestli se ti nevejde MOD na disketu, tak to podle me delas spatne, takhle velky by MOD byt nemel.

    Komentovat


      #3
      Autorem citovaného textu je Doda Přejít na původní příspěvek
      Jestli se ti nevejde MOD na disketu, tak to podle me delas spatne, takhle velky by MOD byt nemel.
      Chci dát na disketu více skladeb
      Amiga - PMD 85

      Komentovat


        #4
        Tak jsem se dnes hral s PowerPackerem. Na netu jsem se docetl, ze posledni verze by mela byt 4.0a. Vyssi verze stazitelne z netu jsou nejake pouze opatchovane starsi verze. Tak jsem si stahnul 4.0a.

        Je verze pro Amiga ROM 1.3 a pro ROM 2.04.

        1.3 verze by mela bezet i pro 2.04, udelat stejnou sluzbu jako verze 2.04. Na zacatku je pouze hlaska, ze mate vyssi ROM pokud spustite verzi pro 1.3 a mate ROM 2.04 a vyssi.

        Pri ukonceni programu PowerPacker se mi ve Workbechi nezavira okno oznamujici pocet otevrenych oken, tak z PowerPackeru emulaci rovnou restartuji, aby mi nabehl Workbench bez tohohle okna.

        Má hudebni rutina by mela mit po kompilaci kolem 4 KB. Program pro praci s textem na obrazovce rozsahove v kodu neni delsi nez hudebni rutina. Muj udhad byl, ze by oba programy nemeli presahovat 10 KB. Ale presahuji, litá mi tam vzduchem nejakych 15 KB, mozna ze ma prace s textem s Copperem vetsi rezii na velikost dat, cert vi, ale to ted neni podstatny, jen jsem si toho vsiml.

        Par udaju pro prehled o kolik PowerPacker 4.0a snizi velikost samplů v konkretni skladbe a budu zaokrouhlovat, nehraju se ted na drobne.

        Puvodni velikost vsech samplu v skladbe: 220 KB
        Zdrojovy kod zkompilovany bez nacteni samplů: 22 KB
        Zdrojovy kod zkompilovany bez nacteni samplů - PowerPacker: 5 KB
        Zdrojovy kod zkompilovany s nactenim samplů pro 1 skladbu: 247 KB
        Zdrojovy kod zkompilovany s nactenim samplů pro 1 skladbu - PowerPacker: 174 KB

        Pokud se tedy budeme bavit o 1 skladbe s/bez PowerPackeru tak je to:
        174-5 vůči 247-22 KB,
        tedy 169 KB vůči 225 KB
        ve vysledku uspora pro 1 skladbu kolem 56 KB
        a tedy je 1 skladba s PowerPackerem 4.0a o 1/4 mensi na velikost dat vuci jeji puvodni velikosti.

        Pokud si odmyslime z 247 KB zdrojovy kod 22 KB, tak se muzeme bavit o tom, ze 1 skladba ma v exe souboru nejakych 225 KB, jen pro zajimavost MOD ma nejakych 222 KB, nicmene opet v mem exe je nejaka rezie navic, protoze vseobecne muj hudebni format je min narocny na velikost dat, nez je hudebni format MOD. Tim nerikam, ze je muj hudebni format lepsi, MOD je opravdu dobre navrzeny. Má vyhodu v konstantnejsi narocnosti pri hrani skladby na samotný CPU, protoze jeho rozvrzeni je vyvazenejsi. Já to na odlehcenejsich mistech pro CPU v me hudebni rutine umele pribrzduji a zatim to funguje.

        Posledne pokud mel 1 pattern v MODu 1 KB, můj pattern mel kolem 0,7 KB

        A posledni vec, ktere jsem si vsiml. Muj zkompilovany kod bez PowerPackeru s velikosti 247 KB by mel bezet na Amize 500 s 512 KB RAM. Zkompilovany kod s PowerPackerem o velikosti 174 KB se rozbehne az kdyz v emulaci WinUAE k 512 KB CHIP RAM pridam alespon 512 KB SLOW RAM. Tedy pouziti PowerPackeru i kdyz je exe mensi velikosti zvysuje pametovou narocnost!
        Naposledy upravil Lisiak; 07.09.2023, 10:46:03.
        Amiga - PMD 85

        Komentovat


          #5
          Ja jsem v davnych dobach disket pouzival take PowerPacker dokonce i na ty MODy a trochu se to pakovalo. Vsechny soubory jsem musel rucne zapakovat a mel jsem nejakou knihovnu, ktera je pri nacitani z diskety (jakekoliv zapakovane soubory pomoci PP) sama rozpakovalo na pozadi, takze to bylo uplne transparentni.

          Nedavno jsem se u toho vztekal, protoze jsem vzal nejake soubory ze stare zalohy a na PC jsem to nijak nedokazal rozpakovat.

          Komentovat


            #6
            Před chvilí jsem reagoval na jeden Poison-ův starší příspěvek na Oldcompu, kde jsem našel plugin Power Packeru pro Total Commander. Nemám odzkoušeno.

            Code:
            http://totalcmd.net/plugring/powerpacker.html
            Naposledy upravil Lisiak; 07.09.2023, 12:28:02.
            Amiga - PMD 85

            Komentovat


              #7
              Editováno o Titanics-Cruncher 1.2, který na OC doporučil Antony/DTA

              Vysledné velikosti exe pro 1 skladbu:

              velikost bez pakování: 247 KB
              Titanics-Cruncher 1.2: 191 KB (ze zde uvedených packerů jediný běží se základní 512 CHIP RAM!)
              PowerPacker 4.0a: 175 KB
              Imploder 4.0: 154 KB
              StoneCracker 4.10.3: 148 KB

              Jeste jsem četl dobré reference na RNC ProPack, ale ten je ciste konzolovy s prepinaci a na to ja jsem neni. Miminalne ne ted... .

              PowerPacker je efektní, při rozpakovavani blíká kurzor šipky.​
              Naposledy upravil Lisiak; 07.09.2023, 18:17:16.
              Amiga - PMD 85

              Komentovat


                #8
                Autorem citovaného textu je Lisiak Přejít na původní příspěvek
                Editováno o Titanics-Cruncher 1.2, který na OC doporučil Antony/DTA

                Vysledné velikosti exe pro 1 skladbu:

                velikost bez pakování: 247 KB
                Titanics-Cruncher 1.2: 191 KB (ze zde uvedených packerů jediný běží se základní 512 CHIP RAM!)
                PowerPacker 4.0a: 175 KB
                Imploder 4.0: 154 KB
                StoneCracker 4.10.3: 148 KB

                Jeste jsem četl dobré reference na RNC ProPack, ale ten je ciste konzolovy s prepinaci a na to ja jsem neni. Miminalne ne ted... .

                PowerPacker je efektní, při rozpakovavani blíká kurzor šipky.​
                Áno existuje veľa cruncherov a každý je špecificky na iný typ súboru.

                Asi pred rokom som pracoval s powerpackerem 4 a ten sa mi aj zapáčil a zmenšoval som s ním hlavne exace.

                Mimochodom , vieš si myslím vybrať, že či ti bude blikať kurzor, pozadie, okno, atd… 👍
                Powerbook G4 A1138, MOS 3.18, MACOSX Tiger + LubuntuPPC 16.04
                Mkr. Tower Inf. II, Amiga 1200, BPPC603e+/210MHz/060/50MHz, 256MB Ram, BVision, SCSI 2.5" 80GB, AOS3.2,MOS,AOS4.1FE
                E/Box Tower, Amiga 1200, Blizzard 1260/50MHz, 128MB Ram, Mediator 1200TX, Voodoo 3 2000, SB128, Fast ETH, CF 8GB, AOS3.9
                Amiga 600, X601, Furia EC020, SMC PCMCIA WiFi Network Card
                AmigaCD32 + TF330 64MB RAM, Paravision_SX1, 8MB Ram


                registered on https://amigamap.com/amiga-slovak_republic.html

                Komentovat


                  #9
                  Autorem citovaného textu je Falcon_11 Přejít na původní příspěvek

                  Áno existuje veľa cruncherov a každý je špecificky na iný typ súboru.

                  Asi pred rokom som pracoval s powerpackerem 4 a ten sa mi aj zapáčil a zmenšoval som s ním hlavne exace.

                  Mimochodom , vieš si myslím vybrať, že či ti bude blikať kurzor, pozadie, okno, atd… 👍
                  Ano, aj Antony/DTA ma na OC upozornil, ze ten efekt tam ma viac moznosti
                  Naposledy upravil Lisiak; 07.09.2023, 20:43:41.
                  Amiga - PMD 85

                  Komentovat


                    #10
                    DJM mě kdysi upozornil na Shrinkler, balil jsem s ním něco pro použití na disketě. Účinnost super (mnohem lepší než PowerPacker nebo podobné), ale je to vykoupeno časem dekomprese. Jestli jede na A500 nevím.
                    Amiga OCS, ECS, AGA, CGX, PPC
                    -----------------------------------------------
                    Líbí se mi Retropolis

                    Komentovat


                      #11
                      Na kompresi EXE používám Cranker. Je hodně oblíbený. Autorem je Bifat/TEK, takže je velmi kvalitní.

                      Je oblíbený i proto, že podobně jako legendární Titanics pracuje "on the fly", tedy načítá a hned průběžně rozbaluje a potřebuje k tomu jen nevelký buffer. Proto ti bude fungovat i na holé A500.
                      Pak je tady Shrinkler.
                      demotool for Linux / Windows / Amiga AGA / Amiga OCS/ECS / MacOSX Intel, released in january 2014

                      Je asi nejlepší (nejlepší kompresní poměr), co je momentálně k dispozici, ale je to vykoupeno dlouhou dobou dekomprese. Je oblíbený mezi autory 4kB a 64kB produkcí - proč asi?
                      Myslím, že nemá moc smysl se v současnosti zaobírat PowerPackerem, Imploderem, StoneCrackrem a podobnými. Všechny potřebují k dekompresi nejdřív data načíst, takže chtějí víc paměti a na holé A500 je asi nevyužiješ. Takže mají snad použití jen pro ten retro efekt s barevnými řádky, který je, uznávám, cool.

                      Pokud by sis chtěl data rozbalovat sám přímo v programu, pak doporučuji kompresní algoritmy LZ4 a NRV2. Data se kompresují na PC (lz4.exe, resp. nrv2.exe+upx.exe), dekompresní rutiny jsou pro Amigu na internetu. Pro LZ4 někde na githubu, pro nrv2 jsou někde na EAB (autorem je Ross z EAB). LZ4 je velmi rychlý. NRV2 je o něco pomalejší, ale zato má lepší kompresi.

                      Komentovat


                        #12
                        Zkusil jsem "v rychlosti" zatim Shrinkler, soubor mi dal z 247 KB na 120 KB a zaroven mu staci pouze zakladni 500 KB CHIP RAM. Nacitani z HDD rychlostne na A1200 je kolem 35 vterin. Z diskety je to kolem 50 vterin. Bez komprese je nacitani z diskety kolem 20 vterin. Z HDD je pak spusteni okamzite. To je pri prednastavenem poctu kompresovani dat 3 krat po sobe. Pri pouze 1 kompresy mel exe 126 KB (o 6 KB vice), ale nacitani se nejak vyrazne nezrychlilo. Shrinkler chce hodne pameti pro beh a hodne rychlou Amigu (pouze pro pakování dat, běží na Amize 500 s 512 KB CHIP RAM) 4 / 8 MB RAM mu je malo a kompresy nedokonci. Já jsem mu pak v emulaci dal 128 MB RAM.
                        Naposledy upravil Lisiak; 11.09.2023, 08:19:46.
                        Amiga - PMD 85

                        Komentovat


                          #13



                          Tak jsem zkusil Cranker 0.66., jak mi doporučil Defor. Na kompresní poměr je opravdu rychlý. Disketu s mým exe souborem s ním zpakovanou načte rychleji, než kdyby jste na ní měli stejná data nezpakované. Její načítání o přibližné délce 20 vteřin se zkrátilo na 15 vteřin (Shrinkler 4.7 - 50 vteřin). Další jeho výhodou je možnost uvést si svůj text, který bude vypsaný v čase nahrávání programu. Tu možnost jsem hned ze startu zkusil. Můžete zadat i odkaz na textový soubor, ze kterého se tenhle text načte a dokonce má i možnost zobrazení obrázku v čase nahrávání programu. Druhý nejlepší kompresní poměr a tyhle výhody, takhle se nekvalitní program opravdu nedělá

                          Vysledné velikosti exe pro 1 skladbu:

                          velikost bez pakování: 247 KB
                          Titanics-Cruncher 1.2: 191 KB (běží se základní 512 KB CHIP RAM)
                          PowerPacker 4.0a: 175 KB
                          Imploder 4.0: 154 KB
                          StoneCracker 4.10.3: 148 KB
                          Cranker 0.66: 146 KB​ (běží se základní 512 KB CHIP RAM)
                          Shrinkler 4.7: 120 KB (běží se základní 512 KB CHIP RAM)
                          Naposledy upravil Lisiak; 11.09.2023, 08:21:29.
                          Amiga - PMD 85

                          Komentovat


                            #14
                            S vyse zminenym Cranker-em jsem zaznamenal 1 nechtene chovani. Pokud se zpakuje soubor vetsi nez je velikost diskety a diky Crankeru se pak na disketu vleze a to s celkem dobrou rezervou, pokud se exe spusti na Amize s 1 MB CHIP RAM mimo systém, ja v emulaci WB 1.3 nemam nainstalovane, tak pri prvnim spusteni mi Amiga hlasi chybu 103 co je málo paměti, ale pri dalsim resetu Amigy se program jiz spusti. Takhle se to chova vzdy a ne nahodne. Pokud jsem Crankerem spakoval mensi soubor, neco kolem 600 KB, tak se exe spusti napoprve. Bavim se porad o spusteni programu z diskety v emulaci a na Amize s 1 MB CHIP RAM. Jsem rad, ze je tohle chovani Cranker-em a ne nekde jinde v ramci meho programu v assembleru... . Tedy alespon mne se to takhle potvrdilo.
                            Bavim se zde napriklad o ADF maleho music disku, ktere jsem zde publikoval, to se mi takhle napriklad chova.
                            Amiga - PMD 85

                            Komentovat


                              #15
                              Napsal jsem dnes autorovi packeru Cranker muj report, tak uvidm. Dival jsem se na alternativy, ale text o tehle delce se spustenim na 1 MB CHIP RAM z těch co znám, neumí žádný, tak nechávám. Anglicky moc neumím, používam zpětné překlady, tedy si kontroluji jak zni prekladacem preklad zpet do cestiny, aby to nebyla uplná blbost. Dal jsem mu tam i me pravé jméno a podařilo se mi schomolit jeho prezdivku a nevsiml jsem si ze tam mam navic na nakonci jeste "e". No jo.

                              Ahoj Bifat,

                              byl mi doporučený tvuj packer (Cranker 0.66). Mám malý problém. Pokud chci exe spustit (v emulaci WinUAE) na Amiga 500 s 1 MB CHIP RAM, exe soubor se mi spusti vždy až na druhý reset (z diskety ADF format). Při prvním spuštění mi to hlásí hybu 103 co je málo paměti. Ale po dalším resetu Amigy se program spustí. Zvláštní chování. Nastavení max. overhead (-mo) jsem zkusil s nastavením i na 8 bajtů. Toto nepomohlo.

                              Soubor exe tvoří 4 hudby v MOD formate s moji jednoduchou hudebni rutinou napsanou v assembleru. Exe soubor před zpakovaním má 936 KB, po zpakovaní má 653 KB. Zjistil jsem, že když vynechám 1 hudbu MOD a je exe soubor tedy menší velikosti a pouziju tvůj packer, program se z ADF pod emulaci WinUAE na Amize 500 s 1 MB CHIP RAM spusti správně při prvním spuštění (bez chyby 103 - málo paměti).

                              Pokud má Amiga 2 MB CHIP RAM, tato chyba se neprojevuje.

                              Děkuji za reakci a měj se hezky.

                              Lisiak
                              Česká republika


                              Poslal jsem mu anglickou verzi:

                              Hi Bifat,

                              I was recommended your packer (Cranker 0.66). I have a small problem. If I want to run an exe (in WinUAE emulation) on an Amiga 500 with 1 MB CHIP RAM, the exe file will only run on the second reset (from the ADF format diskette). When I start it for the first time, it gives me a 103 message that there is not enough memory. But after another reset of the Amiga, the program starts. Strange behavior. I tried setting the max. overhead (-mo) to 8 bytes. This didn't help.

                              The exe file consists of 4 pieces of music in MOD format with my simple music routine written in assembler. The exe file before repacking is 936 KB, after repacking it is 653 KB. I found that if I leave out 1 MOD music and the exe file is therefore smaller in size and use your packer, the program runs correctly from ADF under WinUAE emulation on an Amiga 500 with 1 MB CHIP RAM on the first run (without error 103 - low memory).

                              If the Amiga has 2MB of CHIP RAM, this error does not appear.

                              Thanks for the response and have a good time.

                              Lisiak
                              Czech Republic
                              ​​
                              Amiga - PMD 85

                              Komentovat

                              Zpracovávám...
                              X