Skrypt forum został zaktualizowany
Wszelakie błędy, pytania oraz prośby o nową funkcjonalność zgłaszajcie w tym wątku

Exomizer - decrunch code

Szukasz drobnej pomocy przy kodowaniu, albo chcesz przedstawić światu swoją gotową lub w trakcie realizacji produkcję? To właściwy dział.
Wiadomość
Autor
splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

Exomizer - decrunch code

#1 Postautor: splatterpunk » czw maja 07, 2015 5:00 pm

Czy ktoś mi może powiedzieć dlaczego tu są errory (kompilator Acme),
bo mnie zaraz chińska k**wica strzeli? Niby wszystko OK przecież.


Obrazek

splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

#2 Postautor: splatterpunk » czw maja 07, 2015 5:04 pm

Albo inaczej: czy ktoś ma source code exodecrunchera dla kompilatora Acme?
Bo to co na górze wziąłem z kodu dla DASM i zamieniłem tylko
kropki przed "byte" na wykrzykniki i powinno, kurna, działać.
A czemu są syntax errory??

Awatar użytkownika
Sebaloz/Lepsi.De
Posty: 3543
Rejestracja: ndz wrz 14, 2008 12:02 am

#3 Postautor: Sebaloz/Lepsi.De » czw maja 07, 2015 7:30 pm

Masz bledy przy kompilacji. Probowales jeszcze raz, juz na spokojnie?
__________________________
Socjopatyczna Legia Commodore

splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

#4 Postautor: splatterpunk » pt maja 08, 2015 10:54 am

Sebaloz/Lepsi.De pisze:Masz bledy przy kompilacji.

Sebaloz, jak zwykle ratujesz cenną pomocą i spostrzeżeniami.

Nie próbuje na spokojnie, czekam aż samo się naprawi.
Zresztą już wcześniej próbowałem paru sztuczek.
Nie mam pojęcia dlaczego np dla linii gdzie jest

!byte 2, 4, 4

jest "Syntax Error 2, 4, 4"

???

Awatar użytkownika
Sebaloz/Lepsi.De
Posty: 3543
Rejestracja: ndz wrz 14, 2008 12:02 am

#5 Postautor: Sebaloz/Lepsi.De » pt maja 08, 2015 4:54 pm

Chcialem pomoc, ale jak widac sam wolisz sie meczyc :)

ps. wyslij mi plik zrodlowy to skompiluje i odesle binarke.
__________________________

Socjopatyczna Legia Commodore

splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

#6 Postautor: splatterpunk » sob maja 09, 2015 12:26 pm

Cały kod źródłowy mojego dema? :)

Eee, lepiej podeślij mi DASMa, nie mogę znaleźć nigdzie.
Sam sobie skompiluję DASMem tą procedurę decrunchingu
i po prostu załączę jako plik binarny do mojego projektu.

Potem pozostaje tylko okiełznanie co gdzie należy dać,
mam na myśli to, żeby to co mam spakowane rozpakowało
się tam gdzie chcę, no i jeszcze te komórki strony zerowej,
żeby się nie skłóciły.

Awatar użytkownika
Nitro
Posty: 1180
Rejestracja: śr wrz 03, 2008 8:23 pm
Grupa: Black Sun

#7 Postautor: Nitro » sob maja 09, 2015 12:31 pm

Spróbuj może ręcznie przepisać jedna z tych linijek, jak będzie działać to znaczy, że są jakieś problemy z kodowaniem - w pliku są jakieś specjalne znaki[które np pojawiły się przy copy paste] i się o nie kompilator pluje.
Chyba już kiedyś ktoś miał podobny problem tutaj.
P.S. Exomizer imo nadaje się tylko do pakowania pierwszego pliku wykonywalnego, potem podczas depacku w runtime, loadingu to zainteresuj się innymi, szybszymi cruncherami:
- bongo cruncher (with/without golden seq)
- Doynax
- LZWVL
- Boozer
- Level Crusher

Chyba najnowszym packerem który wszyscy chwalą i który jest użyty w Comalandzie jest Doydynamite aka Doynax LZ:
http://csdb.dk/release/?id=129574

krill
I have just finished adding Doynax LZ to my loader. (Yes, it's FAST! And it seems to be between Exomizer and Pucrunch in pack ratio. New gold standard default demo packer hands down.) I'd like to release it with all packer fixes. When can i expect to see an official Doynax-approved patch? :)

splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

#8 Postautor: splatterpunk » sob maja 09, 2015 12:47 pm

OK, mam już tego DASMa. Można go pobrać tutaj:

http://sourceforge.net/projects/dasm-dillon/

splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

#9 Postautor: splatterpunk » sob maja 09, 2015 12:56 pm

Nitro pisze:Spróbuj może ręcznie przepisać jedna z tych linijek, jak będzie działać to znaczy, że są jakieś problemy z kodowaniem - w pliku są jakieś specjalne znaki[które np pojawiły się przy copy paste] i się o nie kompilator pluje.
Chyba już kiedyś ktoś miał podobny problem tutaj.

Wreszcie sensowna wypowiedź :)
Ale... próbowałem tego o czym piszesz Nitro.
Wpisywałem linię ręcznie albo wpisywałem jedną linię do notatnika
i potem przeklejałem do C64Studio - zawsze to samo.

Rzeczywiście, myślę że coś może być na rzeczy, tak jak piszesz copy/paste.
Przypomnę, że source code wziąłem z pakietu Exomizera
(konkretnie z \exodecrs\dasm\exodecrunch.s) - przekleiłem go
do C64Studio a następnie tam zamieniałem kropki przed "byte"
na wykrzykniki. Ale pomimo przedsięwziętych dodatkowych
kroków błędy kompilatora nadal występują.

splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

#10 Postautor: splatterpunk » sob maja 09, 2015 1:11 pm

Nitro pisze:P.S. Exomizer imo nadaje się tylko do pakowania pierwszego pliku wykonywalnego, potem podczas depacku w runtime, loadingu to zainteresuj się innymi, szybszymi cruncherami:
- bongo cruncher (with/without golden seq)
- Doynax
- LZWVL
- Boozer
- Level Crusher

Chyba najnowszym packerem który wszyscy chwalą i który jest użyty w Comalandzie jest Doydynamite aka Doynax LZ:
http://csdb.dk/release/?id=129574


Zgoda, że Exomizer sprawdza się gorzej jeśli chodzi o depack w runtime.
Pewnie się zainteresuję innymi cruncherami w swoim czasie ale do tego co chcę zrobić
teraz Exomizer będzie OK a jak już zacząłem to chcę to rozkminić.

Awatar użytkownika
Nitro
Posty: 1180
Rejestracja: śr wrz 03, 2008 8:23 pm
Grupa: Black Sun

#11 Postautor: Nitro » sob maja 09, 2015 4:32 pm

C64studio używa składni ACME, ty je karmisz DASM'em, coś innego się pewnie nie zgadza.
DASM'a obsługuje to IDE:
http://www.wudsn.com/

splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

#12 Postautor: splatterpunk » sob maja 09, 2015 5:37 pm

Nitro pisze:C64studio używa składni ACME, ty je karmisz DASM'em, coś innego się pewnie nie zgadza.
DASM'a obsługuje to IDE:
http://www.wudsn.com/

Karmię je zmodyfikowanym kodem pod DASM tak, żeby ACME mogło go obsłużyć (vide zamiana kropek przed "byte" na wykrzykniki).

Anyways, właśnie skompilowałem kod decrunchingu przy użyciu DASM, bez IDE.
Po prostu podłączę to pod mój kod w C64Studio jako plik binarny, no i JSR ****. Dam znać jak się z tym uporam.

Awatar użytkownika
wegi
Posty: 380
Rejestracja: wt lip 14, 2009 1:17 am
Grupa: ESM
Kontaktowanie:

#13 Postautor: wegi » sob cze 13, 2015 8:48 pm

Pierwsza linia (zgaduję)
!to "decruncher.prg" , CBM

Druga linia
*= $0200 ;przykładowo

wybór kompilatora, w założeniu zgodny powinien być z Acme, do końca zgodny nie jest. Za to możliwości debugu C64studio przebijają wszystko.

splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

#14 Postautor: splatterpunk » wt cze 23, 2015 5:18 pm

wegi pisze:wybór kompilatora, w założeniu zgodny powinien być z Acme, do końca zgodny nie jest.

C64Studio jest zgodny z ACME za wyjątkiem obsługi niektórych makr (z tego co wiem).

splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

#15 Postautor: splatterpunk » wt cze 23, 2015 5:23 pm

Wegi, screenshot z kodu wyżej: tylko w tym konkretnym przypadku
miałem taki problem, czyli Syntax Error dla "!byte 0, 0, 0" itp.
W pozostałych moich źródłach wszystko gra więc naprawdę jest to dziwne.

Anyways, zrezygnowałem na razie z depackingu w runtime bo udało
mi się jakoś pokawałkować i upchnąć w RAMie wszystko to co było trzeba.
Pełna wersja "Shadows of the Cyberspace" wykorzystuje prawie całą
dostępną pamięć RAM. Release wkrótce.

splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

#16 Postautor: splatterpunk » pt cze 26, 2015 11:22 pm


Awatar użytkownika
wegi
Posty: 380
Rejestracja: wt lip 14, 2009 1:17 am
Grupa: ESM
Kontaktowanie:

#17 Postautor: wegi » ndz cze 28, 2015 4:50 pm

Musi być ta pierwsza linia z nazwą pliku do utworzenia i " , CBM", żeby był to ACME bo inaczej on domyślnie pod coś innego się ustawia i wywala takie syntax'y jak masz. (musi być też druga linia ze start address'em)

Btw - przeliczone wierzchołki raczej kiepsko się pakują.

splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

#18 Postautor: splatterpunk » ndz cze 28, 2015 5:34 pm

wegi pisze:Musi być ta pierwsza linia z nazwą pliku do utworzenia i " , CBM", żeby był to ACME bo inaczej on domyślnie pod coś innego się ustawia i wywala takie syntax'y jak masz. (musi być też druga linia ze start address'em)


Wegi, wiem, że muszą być te dwie linie i one są w tym kodzie
na początku a mimo to są errory takie jak na screenshocie.

splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

#19 Postautor: splatterpunk » ndz cze 28, 2015 5:37 pm

Kod: Zaznacz cały

!to "exo_decrunch.prg",cbm


;
; Copyright (c) 2002 - 2005 Magnus Lind.
;
; This software is provided 'as-is', without any express or implied warranty.
; In no event will the authors be held liable for any damages arising from
; the use of this software.
;
; Permission is granted to anyone to use this software for any purpose,
; including commercial applications, and to alter it and redistribute it
; freely, subject to the following restrictions:
;
;   1. The origin of this software must not be misrepresented; you must not
;   claim that you wrote the original software. If you use this software in a
;   product, an acknowledgment in the product documentation would be
;   appreciated but is not required.
;
;   2. Altered source versions must be plainly marked as such, and must not
;   be misrepresented as being the original software.
;
;   3. This notice may not be removed or altered from any distribution.
;
;   4. The names of this software and/or it's copyright holders may not be
;   used to endorse or promote products derived from this software without
;   specific prior written permission.
;
; -------------------------------------------------------------------
; The decruncher jsr:s to the get_crunched_byte address when it wants to
; read a crunched byte. This subroutine has to preserve x and y register
; and must not modify the state of the carry flag.
; -------------------------------------------------------------------
; -------------------------------------------------------------------
; this function is the heart of the decruncher.
; It initializes the decruncher zeropage locations and precalculates the
; decrunch tables and decrunches the data
; This function will not change the interrupt status bit and it will not
; modify the memory configuration.
; -------------------------------------------------------------------
; -------------------------------------------------------------------
; if literal sequences is not used (the data was crunched with the -c
; flag) then the following line can be uncommented for shorter code.
;EXOD_LITERAL_SEQUENCES_NOT_USED = 1
; -------------------------------------------------------------------
; zero page addresses used
; -------------------------------------------------------------------
exod_zp_len_lo = $a7

exod_zp_src_lo  = $ae
exod_zp_src_hi  = exod_zp_src_lo + 1

exod_zp_bits_hi = $fc

exod_zp_bitbuf  = $fd
exod_zp_dest_lo = exod_zp_bitbuf + 1   ; dest addr lo
exod_zp_dest_hi = exod_zp_bitbuf + 2   ; dest addr hi

exod_tabl_bi = exod_decrunch_table
exod_tabl_lo = exod_decrunch_table + 52
exod_tabl_hi = exod_decrunch_table + 104

; -------------------------------------------------------------------
; no code below this comment has to be modified in order to generate
; a working decruncher of this source file.
; However, you may want to relocate the tables last in the file to a
; more suitable address.
; -------------------------------------------------------------------

*=$c000

; -------------------------------------------------------------------
; jsr this label to decrunch, it will in turn init the tables and
; call the decruncher
; no constraints on register content, however the
; decimal flag has to be #0 (it almost always is, otherwise do a cld)
exod_decrunch:
; -------------------------------------------------------------------
; init zeropage, x and y regs. (12 bytes)
;


(...) i tak dalej.

splatterpunk
Posty: 1442
Rejestracja: wt wrz 16, 2008 8:04 pm

#20 Postautor: splatterpunk » ndz cze 28, 2015 5:46 pm

Wegi, jak masz chwilę, to ściągnij plik exodecrunch.asm który załączyłem
i sam spróbuj skompilować pod C64Studio, może coś przeoczyłem.
Załączniki
exodecrunch.zip
(2.74 KiB) Pobrany 115 razy


Wróć do „Programowanie & Produkcje”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości