[#391] Re: Electroman dla Amigi

@Don_Adan, post #390

A czym pakować jeśli chodzi o crunchmanie? Blitz ma tylko komendy depakujące więc chyba jakiś zewnętrzny paker tu będzie potrzebny.

Ostatnia aktualizacja: 08.12.2023 00:40:29 przez tukinem
[#392] Re: Electroman dla Amigi

@tukinem, post #391

Tutaj masz:

link
1
[#393] Re: Electroman dla Amigi

@tukinem, post #391

jeszcze raz:
ja używam RNC propack tego:
github: https://github.com/tobiasvl/rnc_propack
albo aminet: https://aminet.net/package/util/pack/RNC_ProPack
procedurę depakującą skompilowałem sobie vasm'em i wklejam ją incbinem do kodu w BB
paker, ten z githuba powyżej działa i na macu i na windowsie. ale jak chcesz to ten z aminetu działa na amidze.

ten paker był używany np przez Team 17 w latach kiedy robili gierki. ogólnie był chyba dość mocno używany komercyjnie.
1
[#394] Re: Electroman dla Amigi

@c64portal, post #393

O ile pamietam to ProPack pakuje bardzo podobnie do Crunchmanii jesli chodzi o efektywnosc, za to sporo wolniej na Amidze z 68000.No ale moze zle pamietam, trzeba by sprawdzic, moze jednak jest lepszy. Ale zdaje sie, ze tez uzywa jakiegos algorytmu Huffmana. Crunchmanii nie polecam do pakowania exekow, bo nie radzi sobie z cache'em na 68040/68060, ale do pakowania danych jest OK. Team 17 uzywal prawie zawsze ATN!, czyli przerobki Implodera. Zdaje sie ze tylko w Alien Breed 3D, uzywal lha6 (?).
1
[#395] Re: Electroman dla Amigi

@Don_Adan, post #394

@Don_adan
RNC ma 2 warianty. 1) dla małych rozmiarów plików 2) dla szybszego depakowania. Fajna sprawa. binarki na moim maku pakują tak szybko że nawet nie wiem kiedy mam pliki spakowane. w moich skryptach budujących jest to fajne ułatwienie. Do execa użyję ostatecznie, albo Shirnklera albo poczciwego Titanica.
W pakerach nie jestem expertem wziąłem i zacząłem używać tego co znalazłem i o czym ludzie pisali na forach.
Wcześniej (2017) użyłem w moim demku Alien Apparat StoceCrackera i też oddzielnej procedurki w .asm, ale teraz widzę że RNC ma lepsze wyniki, w warianty i paker na nowoczesnej platformie na czym mi najbardziej zależało.

Co do T17 to wydawało mi się że gdzie o tym czytałem (EAB?) ale w takim razie to inna grupa/firma tego używała w produkcjach.
1
[#396] Re: Electroman dla Amigi

@c64portal, post #393

Szkoda że te wszystkie pakery nie mają też procedur pakujących, jak np w Amosie PPSave, czy w Blitzu Implode od Implodera. Chcąc przykładowo sobie zapisać tablicę z danymi trzeba by ręcznie poprzez BSave zapisywać, a dopiero następnie ręcznie pakować plik. Piszę to dlatego, że często mając taki plik z mapą gry, zrobimy drobną poprawkę, a wtedy trzeba znowu zapisać / spakować. W Tonym, Electromanie i innej grze (narazie nieważne w jakiej) od razu pakowanie tablicy Imploderem i zapis na dysk.

Spróbuję Crunchmanii. Bibliotekę rozpakowującą mam w Blitzu ponieważ używam Ultimate Blitz Basic CD 2.1 a ru prakrycznie jest 90% bibliotek z AmiBlitz 3.9.

Ech... gdyby PED był taki dobry jak TED, to orzeszedłbym już dawno na AmiBlitz
[#397] Re: Electroman dla Amigi

@tukinem, post #396

W opisie Crunchmanii masz:
"Crunch-Mania V1.91t, a executable, data and address cruncher with a crunch ratio which is at least as good as the one LhA produces."
Czyli powinienes osiagnac okolo 800KB po spakowaniu danych, a to powinno Ci wystarczyc, jeszcze jakis zapas na dyskietce powinien byc. Do pakowania exeka uzyj StoneCrackera.

Amigowy ProPack to jest paker liniowy z CLI, wiec jego bys pewnie mogl podczepic pod Blitza o ile Blitz ma taka opcje.
[#398] Re: Electroman dla Amigi

@Don_Adan, post #397

wstępnie przetestowałem i oto wnioski:

LZ-Huffman - spakowało moduł 154KB do 91KB, odtwarzało, ale po zakończeniu programu był GURU
CrM-Normal - spakowało do 94KB, odtwarzało i ładnie zakończyło program bez błędów

Dla porównania ten sam moduł Imploder spakował do 115KB, więc jest dobrze :)

Zastanawiają mnie jeszcze inne parametry pakowania (np. Library / Normal / Simple):


Dziwne jest też miejsce zapisu rozmiaru pliku po wypakowaniu. W Imploderze to był drugi LONG, czyli kolejne 4 bajty licząc od 4 bajtu początku pliku. Tu ta wartość jest w 6 bajcie, czyli to wygląda tak:
A.l = AllocMem(10,0)    ; zaalokowanie pamieci w fast ramie
BLoad plik$,A,10       ; zaladowanie pierwszych 10 bajtow pliku
SIZE.l = Peek.l(A+6)   ; odczyt rozmiaru pliku po wypakowaniu

InitBank(0,SIZE,2)   ; zaalokowanie banku dla modulu
BLoad plik$,Bank(0)  ; zaladowanie spakowanego modulu
CrMDecrunch Bank(0)   ; wypakowanie pliku

MTInit 0,0
MTPlay On                  ; odtwarzanie modulu


Ostatnia aktualizacja: 08.12.2023 19:09:02 przez tukinem
[#399] Re: Electroman dla Amigi

@tukinem, post #398

decruncher library to pewnie musisz miec dodatkowo biblioteke CrM.library do rozpakowywania

Ostatnia aktualizacja: 08.12.2023 19:05:38 przez michal_zukowski
[#400] Re: Electroman dla Amigi

@tukinem, post #398

Jeszcze takie pytanie odnośnie współpracy z 68000.

Jak większość wie, odczyt worda z nieparzystego adresu spowoduje GURU. A co jeśli tak, jak w tym przykładzie odczytuję LONG od połowy drugiego LONGU? Niby odczyt jest z parzystego adresu, ale odczytuję 4 bajty od 6 bajtu, więc tak trochę dziwnie...
1
[#401] Re: Electroman dla Amigi

@tukinem, post #398

Z tego co pamietam to do pakowania plikow danych wystarczy tylko wybrac "Data" klikajac pomiedzy Auto a Address. Do tego Algorithm, tam bodaj byl wybor Crunchmania i Huffman. I jezeli dobrze pamietam to w gornym Menu (RMB?) byla mozliwosc wyboru Sample Mode, czyli teoretycznie specjalnego/lepszego algorytmu do pakowania sampli.

Tamte parametry dotycza exekow, jak chcesz to sobie popakuj i zobaczysz roznice. Library to na pewno potrzebuje crm.library w libs:. Normal to zwykle pakowanie exeka, a Simple to nie pamietam, moze dotyczy plikow depakowanych pod adres absolutny.

GURU nie powinno byc, moze miales pecha akurat. Albo jakis blad w tej wersji jest.
Co do dodatkowych bajtow na poczatku to o ile pamietam to jest bufor bezpieczenstwa, zeby nie nadpisac rozpakowywanego pliku przez rozpakowywane dane. Jesli depakuje sie metoda "in place", czyli w miejscu gdzie spakowany plik jest ladowany i rozpakowany. Depakery zawsze maja mozliwosc depakowania z jednego miejsca w drugie miejsce pamieci. Ale te lepsze potrafia same na siebie depakowac. Czyli alokujesz pamiec tylko dla pliku zdepakowanego. Plik spakowany ladujesz w ten obszar (zwykle poczatek lub jego koniec, zalezy od depakera) i go depakujesz.
Zaleta tej metody jest mniejsze zuzycie pamieci i mniejsza fragmentacja pamieci.
[#402] Re: Electroman dla Amigi

@tukinem, post #400

Mozesz odczytywac LONG od polowy drugiego LONG-u. Nie ma to znaczenia dla 68000, jest tylko troche wolniejsze dla 68020. Nieparzyste adresy/offsety to wszystkie konczace sie na 1,3,5,7,9 wszystkie inne sa parzyste.
[#403] Re: Electroman dla Amigi

@Don_Adan, post #402

Pytam dlatego, bo chcę też crunchmanię zastosować przy Tonym bo bardzo ładnie pakuje. Stąd pytanie o 68000. Przerobiłem kod, popakowałem i działa ładnie, tylko troszkę dłużej wczytuje.

Najpierw się przejechałem i używałem pakowania Huffman, co przy wypakowaniu działało, lecz powodowało błędy przekroczenia pamięci, nawet gdy przydzielałem o wiele więcej niż trzeba było. Po przełączeniu na CrM Normal jest ok. Co do innych parametrów to LIBRARY zmieniłem na NORMAL i bootując z ADFa nie potrzeba biblioteki w LIBS. Może Blitz Basic po kompilacji już dodaje do kodu gry bibliotekę, która jest potrzebna.

Tu w Electromanie nie ma muzyki do każdego levelu, jak przy Tonym, więc może faktycznie uda się pomieścić wszystko w 1 ADFie, tylko będę musiał zmienić sposób trzymania grafiki dla bobów. Skoro nie mogę pakować banku shapów, to będę musiał napisać wycinanie grafik "w locie", a bitmapy z grafikami spakować. Taki sposób myślę, że będzie pamięcio - oszczędny, tylko może spowodować długie wczytywanie poziomu.
[#404] Re: Electroman dla Amigi

@tukinem, post #403

PowerPacker jednak lepiej crunchuje :)
[#405] Re: Electroman dla Amigi

@Cezarykl, post #404

Hehe nie kuś Blitz też ma obsługę PowerPackera wiem że jest dobry bo pamiętam, jak wszystko pakowałem przy Farmidze w Amosie i radził sobie super. Jedynie brak mu pakowania MODów i przy wypakowywaniu były migające kolorki na ekranie.
[#406] Re: Electroman dla Amigi

@tukinem, post #403

Nie powinienes miec bledow przekroczenia pamieci. Ja jak mialem jakies problemy z pamiecia to alokowalem sobie wiekszy obszar powiedzmy o 2x10000. Wypelnialem ten obszar ID, u mnie to bylo "WTWT". I depakowalem pod adres + 10000. Potem zapisywalem caly ten obszar/bufor. I pod FileMasterem przegladalem, gdzie moje ID zostalo zasmiecone, na poczatku czy na koncu i o ile. Z tego co pamietam to Crunchmania jako komentarz do kazdego spakowanego pliku, podawala offset (przesuniecie) , zeby sie nie nadpisywac.
[#407] Re: Electroman dla Amigi

@Don_Adan, post #406

Aha, to może trzeba Huffmana ładować z przesunięciem do przodu... zwykły CrM-Normal tak rozpakowuję, że wczytuję sobie pierwsze 10 bajtów, odczytuję z tego 4 ostatnie bajty żeby znać rozmiar pliku po wypakowaniu, następnie przydzielam idealnie tą wartość do alokacji pamięci i ładuję plik zaczynając od pierwszego bajtu zaalokowanej pamięci. Idealnie działa.
[#408] Re: Electroman dla Amigi

@tukinem, post #407

Mozliwe, ze trzeba z przesunieciem ladowac. W docu Crunchmanii powinno napisane, albo w zrodlach asemblerowych depakera.

Edit. Nie pamietam juz czy czasem to przesuniecie nie jest podane jako wartosc (word) na offsecie 4 lub 14 spakowanego pliku.

Ostatnia aktualizacja: 09.12.2023 00:40:48 przez Don_Adan
[#409] Re: Electroman dla Amigi

@Don_Adan, post #408

Ciężko będzie zmieścić Electromana na 1 dyskietce, ale już jest dobrze. Teraz zajmuje 1,27MB cała gra, a jestem w stanie jeszcze zjechać w dół. Jedyne, co może być konieczne, to usunięcie tego levelu 0 na starcie, bo jednak on też swoje zajmuje. Postaram się jutro zjechać maksymalnie pliki o nazwie shapes2.shp, bo one zajmują po 60KB na level, a praktycznie to są puste banki shapów. Nie dbałem o to pisząc grę, tylko chciałem jak najszybciej i jak najprościej sobie napisać, dlatego miałem takie przeskoki w bankach, bo przykładowo:

0-199 to kafle pierwszej warstwy
200-299 to kafle drugiej warstwy
300+ to grafiki bobów i inne

Zapisując cały bank grafik 0-600 bo niestety uzbierało się przez różnorodność obiektów i ich animację, to tak to zajmowało miejsce właśnie. A jeszcze wycinając kafle do każdego poziomu miałem po prostu pętlę która cięła całą bitmapę na kafelki i zapisywała, nawet jeśli były puste. Nie sądziłem że będę w stanie aż tak spakować grę.

Jedyne, co jeszcze sporo zajmuje, to dźwięki IFF 8SVX. Wiem, że paker da radę, ale ja nie dam rady tego później wypakować, bo komenda LoadSound tworzy bank dźwięku, ładuje i zapisuje w pamięci. Nie znam struktury Sound i nie będę się w sumie w to babrać :) pewnie jest podobnie jak z bitmapą, gdzie żeby wypakować plik RAW, to muszę taki kod postawić:
Bitmap 0,320,256,6   ; tworze bitmape
;LoadBitmap 0,"plik.iff"  - tak wyglada ladowanie IFF do bitmapy i bitplanow
BPL.l = Peek.l(Addr Bitmap(0) + 4) ; wskaznik poczatku 1 bitplanu
BLoad plik$,BPL   ; ladowanie spakowanego pliku RAW
CrMDecrunch BPL ; wypakowanie pliku

Podobnie do LoadBitmap działa pewnie LoadSound, tylko tam już dodatkowo mamy takie dane, jak period / lenght / repeat, więc nie będę się z tym babrać.
[#410] Re: Electroman dla Amigi

@tukinem, post #409

Dlatego pisalem, ze najprostszy sposob to zrobic tak jak jest w Legion.
1. Pakujesz wszystkie pliki z danymi Crunchmania.
2. Dodajesz pliki RTDD i CrM.library (do Libs:) na dyskietke. Oba sa w tym archiwum z
pakerem.
3. W s-s przed urudomiemniem gry, uruchamiasz RTDD.

Nic sam nie musisz depakowac, wszystko zrobi RTDD, czyli Run Time Data Decruncher, o ile dobrze pamietam nazwe.
[#411] Re: Electroman dla Amigi

@Don_Adan, post #410

Chyba tak będę musiał zrobić.

Popakowałem wszystko, zmieściło się na dyskietkę, ale już SFXy nie weszły, a to jest 200 KB. Nawet pakowanie ich nie pomoże.

OK, więc będzie tak:
1 ADF - cała gra bez dźięków
2 ADF - same dźwięki + ewentualny instalator HDD

Moim zdaniem to najlepsze rozwiązanie.

Pakowanie SFXów nie zadziała, bo Crunchmania wypluwa błędy.

Ostatnia aktualizacja: 09.12.2023 13:08:01 przez tukinem

Ostatnia aktualizacja: 09.12.2023 13:08:34 przez tukinem
1
[#412] Re: Electroman dla Amigi

@tukinem, post #411

Mamy instalator:




Przeczytałem kawałek tego samouczka, lecz to mnie przerosło nie jestem aż tak zaawansowany

Taka ciekawostka. Sam instalator jest napisany w Blitz Basicu, ale musiałem sobie napisać kod, który mi wypisze wszystkie pliki potrzebne do instalacji, a do tego musiałem użyć AmiBlitz 3.9, który ma tą samą bibliotekę Elmore DOS Library, co Blitz Basic. W Blitzu ten kod nie wyświetlił mi kompletnie nic, za to AmiBlitz pięknie stworzył listę potrzebnych plików do kopiowania.

Wiem wiem... zaraz usłyszę, że mogłem się bardziej postarać, stworzyć ładny Ekran, okienka itp, jak np. właśnie ekran Crunchmanii, ale systemowe pisanie mnie denerwuje, a do trybu BLITZ musiałbym znowu utworzyć grafiki dla ekranu, czcionki itp. Myślę, że taka prostota wystarczy. Instalator jest na drugim ADFie, który nie jest bootowalny.

Odpalamy plik INSTALL, wybieramy ścieżkę, gdzie ma zostać utworzony katalog "ElectroMAN" i się kopiują najpierw dźwięki, a później prosi o wymianę na 1 dyskietkę i kopiuje całą resztę. Jak widać zainstalowałem w RamDisk'u.

Co dalej? Zostało umieścić grę w ADF-ach na itch.io, a wersję LHA na Aminecie. Jeśli ktoś chce wersję box, to będzie się musiał znaleźć ktoś, kto się tym zajmie. Ja nie zajmuję się ani projektowaniem grafik pudełkowych, ani nie wydrukuję instrukcji, a tymbardziej fizycznych nośników nie nagram nikomu Gotekiem... Może się znajdzie ktoś, kto zechce wydać oficjalnie grę.

Postaram się dzisiaj jeszcze albo jutro wrzucić gotową grę na profil gry i do Aminetu.
4
[#413] Re: Electroman dla Amigi

@tukinem, post #412

Gratulacje.

Oficjalnie grę to wydasz na itch.io i na Aminecie. A na oficjalne wydanie fizyczne ktoś się znajdzie.
4
[#414] Re: Electroman dla Amigi

@tukinem, post #412

O wydaniu fizycznym pogadaj z Juenem. Trochę swoich wypocin wydał, może coś Ci podpowie/zaoferuje.
1
[#415] Re: Electroman dla Amigi

@teh_KaiN, post #414

Pogadam, bo skoro polska gra, to wypadałoby żeby był polski wydawca i instrukcja po polsku.
[#416] Re: Electroman dla Amigi

@tukinem, post #415

Duddie z Retronics ma licencję na wydawanie Electro Body z PC, może dałoby się Electromana?

P.S.
Jest już gdzieś do ściągnięcia najnowsza wersja?

Ostatnia aktualizacja: 10.12.2023 15:56:51 przez Jacques
[#417] Re: Electroman dla Amigi

@Jacques, post #416

Narazie nie publikuję najnowszej wersji, bo jest szansa, że ZZAP wyda, chociaż nie za bardzo za granicą chciałbym wydawać. To polska gra i wolałbym, żeby tak zostało.
[#418] Re: Electroman dla Amigi

@tukinem, post #417

Czyli ostateczna będzie to ściągnięcia czy nie? Bo chyba się pogubiłem albo coś się zmieniło
[#419] Re: Electroman dla Amigi

@Jacques, post #418

Skoro niektórzy chcą wydania pudełkowego, to postaram się, aby było.

Napisałem do Retronics i zobaczymy.

Juenowi również napisałem. Zależy mi na polskim wydawcy, skoro już ma być BOX, bo gra jest polska.

Istnieje też możliwość, że ZZAP wyda grę, ale oni mają taki warunek, że nie można nigdzie wcześniej publikować ostatecznej wersji przed ich wydaniem.

Mnie w sumie nie zależy na zarabianiu, ani na wydaniu fizycznym gry, ale liczę się z każdym. Są chętni na posiadanie wersji pudełkowej. Gra posiada darmową licencję i na pewno ją opublikuję też na Aminecie w LHA oraz na itch.io w ostatecznej wersji (LHA + ADFy). Narazie czekam aż ktoś odpisze. No chyba, że nikt nie odpisze, to wtedy wrzucę na internet swoje wypociny i nie będzie wersji BOX.
3
[#420] Re: Electroman dla Amigi

@tukinem, post #419

Spoko OK
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem