Exomizer - decrunch code
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
Exomizer - decrunch code
Czy ktoś mi może powiedzieć dlaczego tu są errory (kompilator Acme),
bo mnie zaraz chińska k**wica strzeli? Niby wszystko OK przecież.
bo mnie zaraz chińska k**wica strzeli? Niby wszystko OK przecież.
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
- Sebaloz/Lepsi.De
- Posty: 3949
- Rejestracja: 14 wrz 2008, 00:02
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
Sebaloz, jak zwykle ratujesz cenną pomocą i spostrzeżeniami.Sebaloz/Lepsi.De pisze:Masz bledy przy kompilacji.
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"
???
- Sebaloz/Lepsi.De
- Posty: 3949
- Rejestracja: 14 wrz 2008, 00:02
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
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.
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.
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:
http://csdb.dk/release/?id=129574
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:
Chyba najnowszym packerem który wszyscy chwalą i który jest użyty w Comalandzie jest Doydynamite aka Doynax LZ:- bongo cruncher (with/without golden seq)
- Doynax
- LZWVL
- Boozer
- Level Crusher
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?
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
Wreszcie sensowna wypowiedź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.
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ą.
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
Zgoda, że Exomizer sprawdza się gorzej jeśli chodzi o depack w runtime.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:Chyba najnowszym packerem który wszyscy chwalą i który jest użyty w Comalandzie jest Doydynamite aka Doynax LZ:- bongo cruncher (with/without golden seq)
- Doynax
- LZWVL
- Boozer
- Level Crusher
http://csdb.dk/release/?id=129574
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ć.
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/
DASM'a obsługuje to IDE:
http://www.wudsn.com/
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
Karmię je zmodyfikowanym kodem pod DASM tak, żeby ACME mogło go obsłużyć (vide zamiana kropek przed "byte" na wykrzykniki).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/
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.
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
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.
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.
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
Wegi, wiem, że muszą być te dwie linie i one są w tym kodziewegi 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)
na początku a mimo to są errory takie jak na screenshocie.
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
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)
;
-
- Posty: 1457
- Rejestracja: 16 wrz 2008, 20:04
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.
i sam spróbuj skompilować pod C64Studio, może coś przeoczyłem.
- Załączniki
-
- exodecrunch.zip
- (2.74 KiB) Pobrany 285 razy