Beiträge von Sokrates im Thema „Packer gesucht für Bereich $0350-$ffff“

    Hier ist das Ziel, $0200 bis $ffff zu entpacken, oder?

    So hatte ich das auch verstanden: alle genannten Beispiele lassen sich mit exomizer oder auch vielen anderen Packern lösen.

    Interessant wäre es aber schon mal, die $33-$FFFF zu unterbieten :smile: Geht in meinen Augen nur mit RLE. Dabei sollte geklärt werden, wie der Ausgangszustand bei Übergabe sein muss.

    Ich habe mich vielleicht etwas kompliziert ausgedrückt, deshalb nochmal dieser "Nachklapp" mit einem Beispiel.

    Wenn Du das Programm von $0350-$FFFF packst und dann wieder in diesen Bereich entpackst, dann sollte bei allen Packern die das können dasselbe vor dem packen im Speicher stehen wie auch nach dem entpacken. Das kannst Du natürlich auch gerne prüfen, Fehler halte ich hier für sehr unwahrscheinlich.

    Es ist wahrscheinlicher, dass der Fehler entsteht, weil das Programm gewisse Werte oder auch Code im beim packen ausgelassenen Speicherbereich $0000-$034F erwartet.

    Wahrscheinlichstes Beispiel hierbei: eine uninitialisierte Variable. Nimm an das Programm erwartet den Wert 0 in der Speicheradresse $00FE und funktioniert auch nur korrekt, wenn da auch wirklich die 0 drin steht. Der Entpacker verwendet aber genau diese Speicheradresse $00FE für irgendwelche Zähler und nach dem entpacken steht da nicht 0 drin sondern 9. Dann läuft das Programm nicht mehr korrekt. Adressen und Werte sind nur zur Verdeutlichung und können real natürlich anders sein.

    Du könntest also pfüfen, welche Werte im ausgelassenen Bereich $0000-$034F ERST gelesen werden bevor sie GESCHRIEBEN werden (den Stack vielleicht erst mal außen vor lassen).

    Ist wahrscheinlich also eher ein Problem beim Programm selbst als ein Problem bei den Packern.

    Auf dem 2. Platz war exomizer (der aufgrund des Tipps von Sokrates nun auch ging), aber es gab einen Fehler, der beim Eingeben des Namens in einer Highscoreliste das Eingabefeld blockiert. Ansonsten lief alles...

    Das exomizer beim packen/entpacken Fehler generiert halte ich für sehr unwahrscheinlich. Kann es sein, dass das Program in dem nicht gepackten/entpackten Bereich $0000–$Programmbeginn bestimmte Werte erwartet, die aber durch die Entpackerroutine geändert wurden?