Burstnibbler

  • markusC64 schrieb:

    OK. Kleiner Ausflug zum Kopierschutz von Burstnibbler 1.5 / 1.9: Burstnibbler 1.9 hat den selben Kopierschutz wie die Version 1.5.

    Nun denn, machen wir es doch etwas ausführlicher: Turbonibbler 2.2 hat keinen Kopierschutz.

    Burstnibbler 1.5/1.9 hat einen Autostart. Nach dem Programmstart wird Track 2 Sektor 0 gescuht. Nach dem Erkennen des Blockheaders wird die Geschwindigkeit auf 0 umgestellt und der Datenblock gelesen. Dabei wird geprüft, ob die Sync-Länge genügeng lang ist und ob dabei kein Lesefehler auftritt. Ist beides erfüllt, wird von einem Original ausgegangen.
    Ein Test auf zu langer Sync findet nur implizit statt: Wenn es einen Overflow bei der Messung gibt und dann ein zu kleienr Wert rauskommt, ist das Messergebnis hal: Sync zu kurz.

    Bei Turbonibbler 4.0 st der Kopierschutz ähnlich, aber anders implementiert: Die Datei selbst ist nur 1 Block lang und startet per Autostart den Mini-Lader.
    Letzterer führt per "B-E" den Block 18/4 (bzw. 18/3) aus. Dort drin versteckt ist eine Laderoutine, die den eigentlichen Turbonibbler 4.0 zum C64 überträgt, beginnend ab einen fest einkodierten Block. Kommt er beim Verfolgen der Blockchain auf Track 10 an, so wird das gleiche Verfahren zum Laden des Blocks genutzt wir bei Kopierschutz von Burstnibbler 1.5/1.9: Datenblock in Speed 0, Synclängenprüfung (wieder ohne explizite Obergrenze), und zwar während der Übertragung zum C64.
    So kommt es, dass Turbonibbler 4.0 nach dem Laden im C64 ohne weiteren Kopierschutz zu finden ist.

    Von meiner D64 von Burstnibbler 1.9 weiß ich, dass Filemaster den gleichen Kopierschutz wie Turbonibbler 4.0 hat, besitze aber den Inhalt der Sektoren mit falscher Schreibgeschwindigkeit nicht.

    Auffällig ist bei der BN 1.5-Diskette:
    Bei den Tracks 2 bis 10 fehlen jeweils die Sektoren 1, 6 und 11. Dafür sind die Sektoren 0, 5 und 10 jeweils mit falscher Schreibgeshwindigkeit geschrieben und verbrauchen so mehr Platz.
    Dadurch, dass jene Tracks relativ leer sind (im Vergleich zu normal), kann es passieren, dass eine Kopie dann zu große Lücken zwischen den Sektoren hat (wenn die nicht gleichverteilt werden über den Track), so dass de DOS-Routine, welche den nächsten Sync abwartet, aufgibt (jene hat ein Timeout von 20ms).

    Nachtrag: Eine Kopie kann also an 3 Dingen scheitern:
    (1) Mehrere Speeds pro Track
    (2) Synclängenprüfung
    (3) Verteilung der Lücken
    Danke für die Info.
    Ich glabe, dass stand sogar in der Burst Nibbler Anleitung,
    dass genaue Synclängenprüfung nicht kopiert werden kann.
  • Gibt es hier jemanden, der ein Original Burstnibbler 1.9 und eine 1541 Ultimate besitzt?

    Wenn ja, würde ich denjenigen bitten, damit einen Dump anzufertigen, in dem die Sektoren, die eine andere Schreibgeschwindigkeit haben, auch korrekt enthalten sind. Laufen wird der Dump nicht, er ist aber reparierbar.

    PS: Bitte nicht darauf losdumpen, sondern vorher melden. Ulticopy und Burstnibbler sind bspw. ungeeignet, da beide mit der falschen Schreibgeschwindigkeit nicht klarkommen.

    Nachtrag: Ich bin kurz davor, Burstnibbler zurückschreiben zu können, so dass er von einr Kopie, wo im Nachhinein der Kopierschutz wiederaufgetragen worden ist, gestartet werden kann.
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • Keiner? Ich weiß doch von mindestems einen Forenmitglied, dass es ein Burstnibbler 1.9 Original und eine Ultimate hat...

    Im Gegenzug gibt es auch eine fertige Anleitung, wie man Burstnibbler mittels PC, Zoomfloppy, C64/128 und Diskettenlaufwerk vervielfältigt - und dabei die Kopierschutzabfragen intakt lässt und den Kopierschutz neu aufbringt.
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • Nochmals vielen Dank an @tokra.

    Hier wie versprochen die Anleitung, wie man eine Kopie von Burstnibbler anfertigt. Als erstes brauchte ich einen besseren Dump von der Originaldiskette. Die Schwierigkeit dabei ist, dass viele Sektoren mit einer falschen Schreibgeschwindigkeit auf der Originaliskette gespeichert sind, was das Auslesen erschwert.

    Da es neben Version 1.5 und 1.9 auch noch andere Burstnibblerversionen gibt, schreibe ich die Anleitung zum Dumpen hier mal nieder:

    1. Alles nicht benötigte von der Ultimate ausschalten (macht sich sehr oft gut)
    2. Mittlere Taste der Ultimate drücken
    3. Im Filebrowser an einer Stelle navigieren, wo das Image gespeichert werden darf
    4. F5, "Create G64", Namen eingeben.
    5. Ultimate verlaseen
    6. Burstnibbler 1.x-Diskette einlegen
    7. Turbonibbler 4 von der Diskette starten.
    8. Mindestens die Tracks 1 bis 35 von Laufwerk 8 auf Laufwerk 9 kopieren lassen, also von der Originaldisk auf die Ultimate.
    9. Mittlere Taste der Ultimate drücken
    10. F5, "Remove Disk from Drive A"

    Dabei sind die Speedinformationen verlorengegangen.

    Ich habe bereits den Dump mittels "nibconv -$ bnib.g64 bnib.d64" in ein d64 umgewandelt.

    Aus der Beschreibung Burstnibbler des verwendeten Kopierschutzes geht hervor, dass jetzt "nur" noch die Daten auf Diskette geschrieben werden müssen. Dabei sind auf den Tracks 2 bis 10 einige Sektoren nicht vorhanden und andere mit einer verlängerten Syncmarkierung und abweichender Schreibgeschwindigkeit zu schreiben.

    Dieses d64 (ist im Anhang enthalten) habe ich per

    $ perl burstnibbler-gen-template.pl 7692 > bnib.txt
    $ g64conv.pl bnib.txt bnib19.g64 bnib19.d64
    $ g64conv.pl bnib19.g64 bnib19.reu

    in die im Zip enthaltenen .g64 und .reu umgewandelt. Beide sind für eine Floppy vorgesehen, die 7692 Bytes pro Track schreibt (Burstnibbler und nibwrite zeigen die Bytes pro Track an, die eine Floppy auf Grund der Umdrehungsgeschwindigkeit schreibt). Schreibt die Floppy geringfügig mehr Bytes pro Track, so ist das kein Problem. Schreibt sie dagegen weniger Bytes pro Track, so ist ein neues .g64 bzw. .reu zu erstellen.

    Dieses ist jetzt auf eine Diskette zurückzuschreiben. Dazu gibt es zwei Möglilchkeiten:

    1. Unter Verwendung von Zoomfloppy und nibwrite. Wer eine solche Hardware hat, wird wissen, wie man das .g64 aus der bnib19.zip zurückschreibt.

    2. Mit "Burstnibbler 1.9r+" und der 1541 Ultimate. Erstgenannte ist in diesem Thread verfügbar.
    Dazu:

    * In der Ultimate die REU aktivieren und mindestens 512k Größe einstellen
    * Burstnibbler 1.9r+ laden.
    * In den Filebrowser der Ultimate mit der mittleren Taste wechseln und die bnib19.reu einladen.
    * Burstnibbler 1.9r+ den REU-Inhalt mit der Funktion "Write DIsk" schreiben lassen.

    Wie bekannt sein dürfte, kann Burstnibbler und die nibtools Burstnibbler jedoch nicht kopieren. Deswegen ist es jetzt notwendig, den Kopierschutz noch aufzutragen. Dazu dient das C64 Programm "burstnibbler-write-copyprot.prg", welches beim Start ohne Nachfrage mit der Arbeit loslegt (und ohne Verify und Fehlerprüfung).
    Ist dieses auch durchgelaufen, so hat man eine funktionierende Burstnibblerkopie. Auch Turbonibbler und Filemaster funktionieren von der Kopie.

    Ein Kopieren der Kopie ist ebenso schwierig wie beim Original.


    Nachtrag: Und da es so schön ist, noch etwas zum technischen Hintergrund: In der erzeugten .g64 bzw. .reu sind alle Sektoren genauso wie beim Original bereits enthalten, jedoch mit der normalen Schreibgeschwindigkeit. Die Abstände zwischen den Sektoren sind so optimiert, dass die gleichmäßig auf den Track verteilt sind und anderseits genügend Platz da ist, um den nachfolgenden Schritt zu machen:
    Das Kopierschutzauftrageprogramm liest die Sektoren, die in der falschen Geschwindigkeit geschrieben werden müssen ein und schreibt die erneut mit passender Synclänge.


    Nachtrag: Da wir jetzt wissen, wie man die Burstnibbleroriginale richtig dumped, stellt sich die Frage, ob wer noch andere Versionen außer 1.5 und 1.9 hat. In der größten Not kann man auch ohne Ultimate per Turbonibbler und Freezer (bspw. Action Replay) die Daten übergabefertig speichern.
    Dateien
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von markusC64 ()

  • markusC64 schrieb:

    Ich weiß doch von mindestems einen Forenmitglied, dass es ein Burstnibbler 1.9 Original und eine Ultimate hat...
    Unteranderem wäre ich dies, hab zwar eine U2+.
    Geh mal davon aus, dass dies keine Rolle spielt.

    Irgendwie sehe ich aber grade im Wald ?(

    Willst Du das G64, welches entsteht wenn man Deiner Anleitung folgt?

    markusC64 schrieb:

    1. Alles nicht benötigte von der Ultimate ausschalten (macht sich sehr oft gut)
    2. Mittlere Taste der Ultimate drücken
    3. Im Filebrowser an einer Stelle navigieren, wo das Image gespeichert werden darf
    4. F5, "Create G64", Namen eingeben.
    5. Ultimate verlaseen
    6. Burstnibbler 1.x-Diskette einlegen
    7. Turbonibbler 4 von der Diskette starten.
    8. Mindestens die Tracks 1 bis 35 von Laufwerk 8 auf Laufwerk 9 kopieren lassen, also von der Originaldisk auf die Ultimate.
    9. Mittlere Taste der Ultimate drücken
    10. F5, "Remove Disk from Drive A"

    Oder wird dies nicht mehr benötigt, weil Du schon die Möglichkeit hast den Kopierschutz wieder Aufzug tragen ("burstnibbler-write-copyprot.prg")?



    markusC64 schrieb:

    ob wer noch andere Versionen außer 1.5 und 1.9 hat.
    Hab nur die 1.9 Diskette, dort ist zwar auch eine Version für den C128 drauf.
    Keine Ahnung ob die von Interesse ist.



    Gruss C=Mac.
  • C=Mac schrieb:

    Willst Du das G64, welches entsteht wenn man Deiner Anleitung folgt?
    Nicht mehr nötig, hat tokra schon gemacht.

    Kannst also bei "Dieses ist jetzt auf eine Diskette zurückzuschreiben. Dazu gibt es zwei Möglilchkeiten" einsteigen und Dir eine Sicherheitskopie anfertigen (sofern Deine Floppy nicht zu schnell dreht. Ansonten ist halt aus der d64 im Archiv eine neue .g64 bzw. ein neues .reu zu erstellen).


    In kürze gibt es hier auch den Dump von Burstnibbler 1.5 als ZIP. Die Hilfsprogramme zum Kopierschutzaufbrungen bleiben die selben.


    Ja, die Version für den C128 ist im Dump enthalten. Daneben Turbonibbler in den Versionen 2.2 und 4.0 sowie File Master 1.0.
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • Wie versprochen hier noch der Dump für Burstnibbler 1.5. Anleitung und Hilfsprogramme siehe Post 125.
    Dateien
    • bnib15.zip

      (93,88 kB, 13 mal heruntergeladen, zuletzt: )
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • Ich glaube, die Firmware ist hinreichend egal. Muss aber zugeben, dass ich mit alten Firmwareversionen kaum getestet habe. Vielleicht sollte ich das mal mit meiner Ultimate I testen...
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • markusC64 schrieb:

    Ich glaube, die Firmware ist hinreichend egal. Muss aber zugeben, dass ich mit alten Firmwareversionen kaum getestet habe. Vielleicht sollte ich das mal mit meiner Ultimate I testen...
    Also ich nutze bei meiner U2 noch die alte 2.6 Version. Passt das oder muss ich zumindest da ein Update machen? Welche hast du denn im Einsatz?
    READY
  • v3.1_475+_v1 auf der U2+ und 3.0e_452+_v6 auf der U2.

    Zum Zurückschreiben wird es jede Frmware tun, da es nur auf die REU und die Möglichkeit, den REU-Inhalt einzuladen, ankommt.

    Zum Dumpen erwarte ich eigentlich, dass es die 2.6k auch tut... aber da kommt es wirklich auf die Laufwerksemulation an.
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • Ja. Die Dual Drive emuliert zwei Laufwerke, aber keinen Dual-SID. Und die Audio-Version halt nur eine 1541, aber dafür einen Dual-SID.

    Und frag nicht wegen dem Dual SID, damit habe ich mich noch nicht beschäftigt.
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • markusC64 schrieb:

    Zum Dumpen erwarte ich eigentlich, dass es die 2.6k auch tut... aber da kommt es wirklich auf die Laufwerksemulation an.
    Hallo, ich hab jetzt mit deinem Burstnibbler :thumbup: auch mal ein paar Originale nach g64 konvertiert. Funktionierte so weit ganz gut.

    Das einzige was bei mir war (mit alten Ultimate1541-II und noch 2.6k) das wenn ich den REU-Inhalt nur einmal ins Ultimate-Verzeichnis übertragen habe.
    Dass das File "New Disk.g64" oder so ähnlich, dann noch nicht angezeigt wird. Erst immer bei einer 2. Übertragung.

    So weit ist das aber kein großer Beinbruch, denke aber das die Ultimate hier nur einen Refresh bräuchte, damit der aktuelle Inhalt gleich danach im Verzeichnis angezeigt würde? Ist das so schon bekannt und eventuell ja bei einer deiner Firmware schon behoben? Wollte diesbezüglich nur mal Feedback hier geben, dass das bei der Offiziellen Ver2.6K so ist, aber das auslesen so weit damit wunderbar funktioniert.
    Deine Burstnibbler Version, ist jetzt mein bestes Werkzeug um Sicherungen zu erstellen. Danke für deine Arbeit dazu :winke:


    Des weiteren aber auch noch schnell eine Frage zu deinem "g64conv" dazu.
    Zurück schreiben habe ich noch nicht probiert, aber reicht es normaler Weise, wenn ich dann aus einer vorhandenen g64 Sicherung,
    mit dem Konverter (ganz ohne weitere Schalter) nur eine REU Datei erstellen lasse?
    Oder ist der richtige Konvertierungsvorgang um die Abbilder dann auch wieder zurück schreiben zu können, dann schon eine Ecke aufwendiger?
    Hebt man den Blick, so sieht man keine Grenzen
  • Wenn es kklappt mit g64conv, dann ohne Parameter. Ich habe damit jedoch öfter Pech gehabt.

    Allerdings muss ich zur Ehrenrettung von g64conv dazusagen: So ein Pech habe ich auch mit dem original Burstnibbler: Ich habe zwei original Exemplare von Geos 2.0. Eine bekommt er kopiert, das andere nicht... Ursache sind berschiedene Tracklängen.

    Ansonsten: Man kann per Ultimate sich den REU Inhalt abspeichern lassen (bevor man nach g64 speichert). Die Sicherung ist dann problemlos zurückschreibbar, wenn das Kopieren klappt. Man wird zeitlich dann ja direkt zurückbersetzt nach dem Einlesen.
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki