Fragen zu Exomizer

Es gibt 169 Antworten in diesem Thema, welches 46.660 mal aufgerufen wurde. Der letzte Beitrag (29. Januar 2022 um 12:38) ist von InsertDisk2.

  • Finde Exomizer generell gut, auch wenn das Manual mir nicht wirklich alle Fragen beantwortet. Vielleicht bin ich ja auch wieder zu doof. Aber das wäre ja nix Neues. Ich frage also einfach hier mal:
    1.) Kann ich Exomizer zwingen, etwas im Output File in einem bestimmten Speicherbereich abzulegen durch Angabe der gewünschten Startadresse?
    Die Verlegung nach $0810 in allen Ehren, aber vielleicht will ich diesen Speicherbereich ja nunmal für was anderes nutzen.
    2.) Muss das Outputfile unbedingt eine Basic-Zeile (SYS) haben?
    Ist ja nett gemeint, sogar für dieses ansonsten ja nicht gerade DAU-freundliche Programm ein toller Service. Würde ich aber manchmal auch gern drauf verzichten.
    3.) Falls 1.) oder 2.) möglich: Könnte mir jemand ein Beispiel für die Syntax in der Batch geben?

    Danke! :winke:

    EDIT/remaxx: Thread aufgeräumt !


  • 1.) Kann ich Exomizer zwingen, etwas im Output File in einem bestimmten Speicherbereich abzulegen durch Angabe der gewünschten Startadresse?
    Die Verlegung nach $0810 in allen Ehren, aber vielleicht will ich diesen Speicherbereich ja nunmal für was anderes nutzen.


    Klar geht das, Du brauchst dann nur eine eigene Entpackroutine. Das wird hauptsächlich für Loadersysteme genutzt

    Mit

    Code
    exomizer.exe level

    packt er Dir Deine Files die beim laden entpackt werden können. Er nimmt dann die ladeadresse der original datei

    Code
    exomizer.exe mem -l <ladeadresse>

    packt er Dir Deine Files, die beim entpacken schon komplett im speicher liegen müssen, an die <ladeadresse>

    ...aber Du brauchst für beide eine eigene Entpackroutine liegt als source dabei glaube ich)


    2.) Muss das Outputfile unbedingt eine Basic-Zeile (SYS) haben?

    Nein, siehe 1.


    3.) Falls 1.) oder 2.) möglich: Könnte mir jemand ein Beispiel für die Syntax in der Batch geben?

    Code
    exomizer.exe level meinprogramm.prg -o meinprogramm.exo

    So nutze ich das momentan für's Loadersystem


  • ...aber Du brauchst für beide eine eigene Entpackroutine liegt als source dabei glaube ich)


    Ah, jetzt, ja! Hmh. Schade, dass ich die Entpackroutine dafür brauche. Stimmt aber, Source liegt bei.

    Danke für die Info. Ich hatte mit dem Befehl schon geliebäugelt/rumgemacht, aber natürlich ohne Entpacker nix mit dem Produkt anfangen können.

  • TheRyk:
    Ich schätze mal, Du fragst wegen dem Cracktro-Projekt. Wenn Du faul bist und Dich nicht noch um die Entpackroutine kümmern willst, mach es so wie meine Wenigkeit:
    Ich hab einfach erstmal den Code mit Auswertung des Trainermenüs und das Spiel zusammengelinkt (bzw. eben einfach in ACME mit !bin Befehl) und dann den ganzen Kladderadatsch im Exomizer ohne Basiczeile gepackt:

    Code
    exomizer sfx $c600 spiel.prg -ospielohnebasiczeile.prg -x1 -Di_load_addr=$080d

    Das packt erstmal das Ganze nach $080d (so dass davor noch Platz ist für eine spätere Basiczeile) und startet dann nach dem Entpacken bei $c600.

    Dann habe ich mein Cracktro genommen und ebenfalls in ACME das vorher gepackte Teil mit !bin Befehl zusammengelinkt. Bei mir war das Cracktro bei $8000, ist aber ja erstmal wurscht, ob man Intro oder Hauptprogramm zuerst im Speicher liegen hat. Am Ende vom Intro einfach ein JMP $080d (also eben in meinem Beispiel) und das Hauptprogramm wird entpackt.
    Am Ende das dann nochmals durch den Exomizer gejagt.

    Code
    exomizer sfx $8000 introplusspiel.prg -ointroplusspielgepackt.prg -x3

    Das ist zwar nicht die ganz "edle" Variante, weil man dann halt zweimal eine Entpackroutine im Speicher hat, aber zumindest muss man sich dann nicht mehr selbst darum kümmern, dass man die korrekten Werte übergibt und vorallem, dass die nicht überschrieben wird.

  • Zitat

    Das ist zwar nicht die ganz "edle" Variante,


    .... aber die durchaus gängige :) wenn das game nicht grade ein sehr kurzes ist bleibt einem meisstens eh nichts andres übrig.

  • *Thread ausbuddel*

    Hätte da mal ne Frage an die Profis....
    wenn ich oben genannte Syntax benutze

    Code
    exomizer level koalabild.prg -o koalaviewer.exo

    oder gar die von codebase64

    Code
    exomizer sfx $1000 koalabild.prg -o koalaview.prg -n

    funktioniert das zwar ganz prächtig, haut mir aber immer den Basic-Start wieder raus.
    Hintergrund ist, dass ich mir hier für eines meiner Koala Bilder ne ASM Routine geschrieben habe, die mir das Bild anzeigt. Das ganze ist danach aber 91blocks groß.... (da gibts sicher massig optimierung, tut aber erstmal nichts zur Sache)....

    Mein Programmstart liegt bei $1000, ich starte also normalerweise mit SYS4096, hatte mir aber folgendes noch reingebaut:

    Code
    *=$0800
    !byte $00,$0b,$08,$0a,$00,$9e,$34,$30,$39,$36,$00,$00,$00 ;so kann man spaeter mit run starten


    damit man das Bild/Programm später einfach mit RUN: starten kann.

    Packe ich nach obigen beiden Methoden, muss ich wieder manuell SYS4096 eingeben.....
    Was läuft da falsch?
    Muss dazu sagen, dass das packen mit Exomizer für mich absolutes Neuland ist und ich vorher noch nie auf dem PC gepackt habe.

    Falls es hilft oder nötig ist:
    Betriebssystem ist Ubuntu 9.04

    Exomizer Version ist die beta20v7 aus der csdb.

    Vielen Dank schon einmal im Vorraus! :)

  • 1. dein program (wie es sich für ein basic program gehört) bei $0801 anfangen
    2. exomizer sfx sys in.prg -o out.prg

  • Hat soweit geklappt. Mein Fehler war wohl, $1000 zu schreiben, anstatt 4096.


    uh, ja ... ist mir ganz entgangen :) "sys" ist aber allgemein praktischer wenn du eh schon nen basic start hast, dann sucht er sich die adresse selber aus dem sys raus.

  • ... exomizer .... echt und mich fragt niemand *g*

    schau dir das Tutorial von mir auch an, oder es gibt PackBytes :)
    So gehts dann automatisch mit makefile und Kindern. Schützt Dich nebenbei sogar vor "4096" != "1024", hehe. Der war gut. Danke:)
    aah und automatisch die optimale lowadd ... Naja, schau rein, ich fabulier da auch ein wenig wie sich so eine entpackroutine fuehlt ;o)

    Hoffe es hilft in einsamen Stunden, Gruss, Jed.

  • @Jed: Klingt ja erstmal gut, aber: Häh? Dein Attach sieht aus wie ein kompletter Exomizer gezippt?! Wo versteckt sich denn da das TUT?

  • Selbst wenn der Mensch mal ein TUT geschrieben hätte, macht er aufgrund seiner bisherigen Postings nicht den Eindruck, dass es lesenswert sein könnte. Es scheint sich um einen Spaßvogel-Troll zu handeln. Vielleicht belehrt er uns ja eines besseren und lädt tatsächlich nochmal was Sinnvolles hoch.

  • Wie ist eigentlich so die Kompressionsrate bei Musik...? Klar: so "je nach dem". Aber als Tendenz - lohnt sich das doll?

  • Um die Frage selbst zu beantworten: So berauschend wie bei Text oder Grafiken sind die Resultate leider - wie eigentlich auch zu erwarten war - nicht. Erziele im Idealfall eine Kompressionsrate von um die 60:100, also aus 16K kann man um die 10K machen. Für meine aktuellen Zwecke wäre <50:100 schöner gewesen.

  • die patterndaten zb sind bei den meissten playern schon "gepackt" - da holt man dann eben nicht mehr so viel raus :)

  • Zitat

    eine Kompressionsrate von um die 60:100, also aus 16K kann man um die 10K machen


    Haha, schoene Beispielrechnung :wink:

    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.

  • Ich komm einfach nicht drauf, wie man ein prg exomized was z. B. bei $0820 beginnt und auch gestartet wird. Hab schon mehrere Sachen ausprobiert, aber die Anleitung ist schwer zu verstehen. Ein Tipp würde mir sehr helfen.

    Edit: Hat sich erledigt. Ich hab die Adresse hexadezimal angegeben statt dezimal. Lag wohl daran das alle Beispiele in diesem Tread auch mit hexadezimal-Adressen sind.