Hello, Guest the thread was called1k times and contains 26 replays

last post from Rage168 at the

C64 Musik rippen

  • Hallo zusammen,


    für ein Musik Archiv Projekt (zu finden auf Youtube unter dem Channel Namen "Xeen Music") versuche ich von zwei C64-Spielen die Musik zu rippen. Das Ziel des Projektes ist es von den Spielen Might and Magic I-V und King's Bounty Aufnahmen der Spielemusik von der Originalhardware aufzunehmen. Might and Magic I und II, sowie King's Bounty gibt es auch für den Cevi. Das einfachste ist es natürlich, die Spiele anzuschmeißen und dann ingame Aufnahmen zu machen und das habe ich auch gemacht. Im Laufe des Projektes hat "Xeen Music" dann herausgefunden, dass in den C64-Versionen einige Musik Tracks fehlen. Daher kam die Idee die Musik zu rippen um zu sehen, was in den Spieledaten ggf. verborgen ist, was nicht im Spiel genutzt wird.


    Da ich initial keine Ahnung vom Rippen hatte, habe ich mich schlau gemacht und die Anleitung HVSC: Ripping for Dummies versucht nachzuspielen. An den Beispielen hat auch alles wunderbar geklappt, aber nicht an den Spielen selbst, wo es etwas komplizierter ist. Ich habe mich dann, wie in der Anleitung beschrieben, an HVSC gewandt und die haben uns auch beim Rippen des ersten Teils geholfen. Im Endeffekt haben wir so auch die beiden fehlenden Tracks bekommen, die im Spiel nicht verwendet wurden. Nach HVSC-Angaben ist Might and Magic 2 aber komplizierter und bei King's Bounty ist wohl nicht genug Musik drin, als dass sich der Aufwand für HVSC lohnen würde. Jedenfalls habe ich seit einigen Wochen nichts mehr von den Kollegen gehört.


    Ist aber ncht so schlimm, ich habe mich dann selber weiter schlau gemacht und in einem nur noch im Webarchiv verfügbaren Artikel (Ripping sidtunes) weitere Informationen gefunden. Weiterhin haben wir für Might and Magic II, die Speicherbereiche mit der Musik gefunden (ein Teil liegt auf Disk A, ein Teil auf Disk B). Das Problem ist aber, die Identifikation der Abspielroutine im und das Finden der Initialisierung- und der Play-Addresse.


    In der ausführlicheren Anleitung steht etwas davon, die Interruptvektoren zu finden und dem Programmverlauf zur Musikroutine zu folgen. Die Vektoren zu finden ist noch einfach, aber ich verstehe zu wenig von dem was da steht um dem Programmverlauf zu folgen.


    Daher wollte ich mal fragen, ob jemand Erfahrung beim Rippen von C64-Musik hat und / oder einigermaßen was damit anfangen kann, was ich hier geschrieben habe. Ich würde mich gerne mit euch darüber austauschen. Ich werde in einem zweiten Eintrag unsere bisherigen Findings hier posten.


    Ich wäre über jede Rückmeldung dankbar.

  • Danke euch für den Hinweise!


    Ich schreibe mal die bisherigen Erkenntnisse nieder, auch damit ich sie mal gesammelt habe. Ich bin sie sonst jedes Mal am zusammen suchen:


    • Scheinbar gibt es nur eine gecrackte Version, bei der alle (zumindest die im Spiel verfügbaren) Musikstücke abgespielt werden. Bei allen anderen Versionen, die ich gefunden habe wird nur die Titelmusik und der Sound beim Gehen (kurzes Summen) gespielt.
    • Der Speicherbereich, in den sich die Titelmusik von Disk A in dem RAM läd:
    • Die Speicherbereiche, in die sich die übrigen Musikstücke vin Disk B laden:
    Code: Walk Beep
    1. >C:3e00 28 07 ff
    Code: Bump Sound
    1. >C:3e03 2e 06 ff
    Code: Encounter
    1. >C:3e06 3c 03 3c 04 43 03 3c 04 43 02 ff
    Code: Victory
    1. >C:3e11 39 02 3e 0b 40 04 42 0a 42 03 43 03 43 03 42 03
    2. >C:3e21 3e 03 40 01 ff
    Code: Audience with the King
    1. >C:3e26 37 02 3c 0b 3c 04 3c 02 3e 03 40 03 41 03 40 03
    2. >C:3e36 3e 03 3c 03 3e 01 ff
    Code: Getting Treasure
    1. >C:3e3d 3e 03 40 03 41 03 43 03 45 03 43 03 41 03 40 03
    2. >C:3e4d 3e 03 41 03 40 03 3c 03 3e 01 ff
    Code: Member Slain
    1. >C:3e58 3c 02 3b 03 3c 03 3b 03 38 03 39 01 ff
    Code: Party Slain
    1. >C:3e65 41 0a 40 03 3f 03 3e 03 3f 0a 3e 03 3c 03 3e 03
    2. >C:3e75 3a 0a ff
    Code: Enemy Slain
    1. >C:3e78 3a 03 41 03 3e 02 3c 03 3e 03 3a 02 ff
    Code: Teleport Sound
    1. >C:3e85 47 07 48 05 ff
  • Musikstücke

    Hmm... Wenn Du von Musikstücken sprichst, meinst Du wohl eher Soundeffekte.

    Ich gehe mal davon aus, daß "Might & Magic II" auf dem AppleII programmiert wurde, und die C64-Version bezüglich der Tonausgabe nur eine notdürftig gepatchte Version ist. Da der AppleII standardmäßig keinen Interrupt hat, laufen die Soundroutinen auch nicht über einen solchen, sondern werden von einer Schleife erzeugt, die direkt vom Hauptprogramm aus aufgerufen wird. Die Suche nach einem Interruptvektor führt in diesem Fall also zu nichts. Stattdessen kann man sich angucken, an welchen Stellen im Programm auf die von Dir erwähnten Daten zugegriffen wird. Daraus ergibt sich das folgende kleine Programm (abgetippt und nicht ausgetestet!):

    Wie man sieht

    - entnimmt das Programm in einer Schleife die Werte,

    - ermittelt daraus über Tabellen die angepaßten Werte für den C64 bestehend aus Tonhöhe und Tondauer

    - setzt zuerst die Tonhöhe

    - und springt dann in eine Zeitwarteschleife, die mittels Timer realisiert wird (ziemlich ungewöhnlich).

    - Während der Wartezeit wird auf eine vorhandene Taste im Tastaturpuffer getestet.


    Diese Routine ist mehr schlecht als recht. Sie enthält mehrere Unzulänglichkeiten:

    - Ist die Tonausgabe generell ausgeschaltet, wird ein falscher Wert als Tastendruck zurückgegeben.

    - Das Flag für "Frage Taste ab in der Warteschleife" wird nicht wirklich gesetzt (über das Statusregister), sondern ergibt sich aus dem vorhergehenden Programm... irgendwie...

    - Zum Setzen der Wellenform wird der alte Wellenformwert aus dem SID ausgelesen und stückweise mit $10 und $01 verodert. Das Abschalten erfolgt ebenfalls wieder durch Auslesen von $d404. Ich kann mich ja irren, aber ich meine, daß man den SID nicht auslesen kann. Das würde bedeuten, daß das Verfahren hier so nur eher zufällig funktioniert. Für ein sauberes Abspielen sollte man diese Routine erneut patchen:

    - Das Lautstärkeregister $d418 nur einmal setzen.

    - Die Wellenform sollte direkt auf $10 bzw. $11 (zum Einschalten) gesetzt werden. Die Routine zum Tastenlesen kann natürlich auch entfernt werden.


    Hoffe, das hilft ein wenig weiter.


    M. J.

  • Danke euch fürs prüfen.


    @M.J.: Auf der Ebene, die du hier beschreibst, verstehe ich nur ganz grob, was da passiert. Das Einzige womit ich mich in dieser Richtung etwas näher beschäftigt habe sind die beiden Informationsquellen, die ich zum Rippen verlinkt habe.


    Genaugenommen hast du recht, Musikstücke ist wohl etwas übertrieben, es sind kurze Tunes von 1-5 Sekunden (außer der Titelmusik, die hat 20 Sekunden oder sowas).

    Vielleicht hast du recht und die Routine ist Murks. Hast du denn die Version geprüft, die ich oben verlinkt habe? Kurioserweise ist der "Walk Beep", der beim Tastendruck abgespielt wird in fast allen Versionen, der einzige Sound der tatsächlich im Spiel (ab Disk B) gespielt wird. Ich vermute da hat jemand mit dem Crack in dieser Version was an der Abspielroutine verändert hat, da dort alle Tunes bis auf zwei, die wohl generell in keiner der C64 Versionen dieser Spiele (MM1, MM2, Kings Bounty) abgespielt werden.

  • Hast du denn die Version geprüft, die ich oben verlinkt habe?

    Yep.

    Ich vermute da hat jemand mit dem Crack in dieser Version was an der Abspielroutine verändert hat, da dort alle Tunes bis auf zwei, die wohl generell in keiner der C64 Versionen dieser Spiele (MM1, MM2, Kings Bounty) abgespielt werden.

    Nein. Die Routine ist in der von Dir verlinkten Version identisch mit der in einer anderen. Es liegt wohl eher daran, daß die Routine den SID-Chip nicht vollständig bzw. korrekt initialisiert. Je nach dem, welche Werte vom SID-Tune des Crackerintros noch im SID stehen, kann ein anderer oder kein Ton erzeugt werden. Hier mal die Soundroutine im Original auf dem AppleII:

    Die Ähnlichkeit ist nicht zu übersehen. Auch die Werte für Tonhöhe und Tondauer sind identisch. Man sieht, die C64-Routine ist lediglich eine Art Patch. Wer immer den C64-Code geschrieben hat, hat versucht, die Töne des AppleII-Piepers irgendwie auf dem C64 zu imitieren.

    Auf der Ebene, die du hier beschreibst, verstehe ich nur ganz grob, was da passiert. Das Einzige womit ich mich in dieser Richtung etwas näher beschäftigt habe sind die beiden Informationsquellen, die ich zum Rippen verlinkt habe.

    Tut mir leid, aber mehr als einen einigermaßen kommentierten Assemblercode der gerippten Soundroutine kann ich Dir nicht liefern. Mir ist dann allerdings auch nicht ganz klar, was Du genau willst.:gruebel Wie erwähnt laufen die von Dir genannten Informationsquellen ins Leere, da die Soundroutine nicht dem Schema "Sounderzeugung im Interrupt mit zwei Sprungvektoren für Initialisierung und IRQ-Routine" folgt. Das ist bei AppleII-Konvertierungen nicht unüblich. Auch das Adventure "Gruds in Space" verwendet ein ähnliches vom AppleII übernommenes Verfahren zur Erzeugung der Soundeffekte sowie der Musik am Ende des Spiels, und auch für dieses Spiel gibt es keinen Rip in der HVSC. Beschreib doch bitte noch einmal, was genau Deine Absicht ist und was Du mit der Soundroutine machen willst.

  • Im Wesentlichen geht es darum ein .sid file zu erstellen, in dem sowohl die Abspielroutine als auch der Musikcode enthalten ist. Das möchte ich auf dem C64 abspielen und eine Tonaufnahme davon machen. In den Musikdaten stecken mehr Tunes drin, als im Spiel verwendet werden.


    Von HVSC habe ich zu MM2 vor einigen Wochen die Rückmeldung bekommen, dass das rippen bei diesem Spiel viel komplexer als bei anderen Spielen ist, ohne aber weitere Details zu nennen. Wenn die Routine, wie du schreibst nicht korrekt funktioniert, ist das vielleicht auch einfach der Grund. Dann müsste man eine vernünftige Routine dafür schreiben oder funktionierende nutzen. Ich werde mich auf jeden Fall mit dieser Erkenntnis begnügen, denn ich denke weiteren Aufwand ist es nicht wert, außer du kennst noch eine schnelle Lösung, wie man die Musikdaten mit einer anderen Routine verknüpfen kann :)


    Jedenfalls danke, dass du dir die Zeit genommen und da so detailliert reingeschaut und geantwortet hast.

  • Von HVSC habe ich zu MM2 vor einigen Wochen die Rückmeldung bekommen, dass das rippen bei diesem Spiel viel komplexer als bei anderen Spielen ist,

    Äh, ich bitte um Verzeihung, aber das ist ... Quatsch. Die Soundroutine habe ich gestern während einer Pause in ein paar Minuten extrahiert. Prinzipiell funktioniert die auch schon, selbst wenn sie etwas ungünstig geschrieben ist.

    Im Wesentlichen geht es darum ein .sid file zu erstellen, in dem sowohl die Abspielroutine als auch der Musikcode enthalten ist. Das möchte ich auf dem C64 abspielen und eine Tonaufnahme davon machen. In den Musikdaten stecken mehr Tunes drin, als im Spiel verwendet werden.

    Vielleicht hilft Dir ja das hier weiter. Ist kein SID-File, sondern ein normales C64-PRG, aber spielt auch alle Sounds ab. Einfach die Leertaste nacheinander drücken, dann ertönen alle 11 Melodien. Als Bonus gibt es anschließend noch die AppleII-Routine in einer C64-Version mit dazu. ^^ Einziger Nachteil dieses Rips: Die Abspielroutine ist sauberer als die originale. Zwischen den einzelnen Tönen entstehen jetzt keine Knackgeräusche mehr. Falls Du gerne eine Abspielroutine mit Knacksern haben willst, sag bescheid.

  • M. J., Hat super geklappt. Ich traue es fast gar nicht zu fragen, aber könntest du dasselbe auch für King's Bounty und Might and Magic I machen?


    King's Bounty fehlt uns noch gänzlich. Dort hatten wir auch einige Schwierigkeiten alle Musikstücke im RAM zu identifizieren. Die die wie brauchen konnten wir aber identifizieren.


    Wir haben ein .sid file für MM1 aber dort ist die Abspielgeschwindigkeit der einzelnen Tracks unterschieldlich zu den ingame Aufnahmen (das Titellied ist langsamer, die anderen Stücke schneller). Da wir hier zumindest schon was habe, wäre uns King's Bounty auf jeden Fall wichtiger.


    Die Disk images und die vorhandenen Infos, zu den Musikdaten vob KB habe ich angehängt.


    Das sind die letzten Puzzleteile, die uns für die C64 Spiele in diesem Projekt fehlen. Ich würde mich freuen wenn du mir damit nochmal aushelfen kannst.

  • Zunächst ein kleiner Nachtrag zu dem "Knacksen" in MM II:

    Der C64-Port versucht das Verhalten des AppleII dadurch zu imitieren, daß der Wert für den ADSR-Verlauf auf Attack 0, Decay 0, Sustain $f (maximaler Wert) und Release 0 gesetzt wird. Nachdem ein Ton gespielt wurde, wird die Stimme abrupt stumm geschaltet. Die Zeit, die nun vergeht bis zum Neuladen der Werte und erneutem Aktivieren der Stimme ist zu kurz, um als Pause aufgefaßt zu werden, aber zu lang, um ungehört zu bleiben. Das schnelle Aus- und dann wieder Einschalten erzeugt einen teils hörbaren Knackser. Da die umgeschriebene Abspielroutine schneller ist als das Original und nicht unterbrochen wird von Interrupts oder BadLines, wird die Stimme sehr schnell wieder eingeschaltet, so daß die lauten Knackser entfallen. Streng genommen wäre diese Abspielroutine also nicht gleich dem Original, weil sie die Unzulänglichkeit des Originals nicht identisch widerspiegelt. Dies fällt allerdings nur dann auf, wenn die Musik den gleichen Ton nacheinander spielt z. B. in der rhythmisierten Form Taaa-taaa-ta-daaa. Bei der neuen Routine entsteht hier ein Dauerton über alle vier Notenwerte, wohingegen im Original ein Knacksen andeuten kann, daß an dieser Stelle eine neue Note beginnt. Lädt man das neue Soundprogramm und poket vor dem Starten an die Adresse 2460 ($99c) den Wert 25 ($19) für Attack und Decay und an die Adresse 2465 ($9a1) den Wert 0 für Sustain und Release, wird dies beim Abspielen der Titelmusik deutlich, da man nun die Noten deutlich unterscheiden kann. Die ursprüngliche Musikroutine auf dem AppleII hat übrigens das gleiche Manko. Auch hier lassen sich die Noten nur aufgrund des Knackgeräusches unterscheiden, das entsteht, wenn beim Laden des neuen Notenwerts die Membran des Piepers kurzzeitig nicht bewegt wird. Eigentlich müßte man sagen, daß die Komposition unpassend ist für die Musikroutine, da diese aufeinanderfolgende Noten mit gleicher Tonhöhe nicht wirklich unterscheiden kann. (Normalerweise würde man eine deutliche Pause einlegen von mindestens einem Viertel der Notenlänge, um die Noten klar differenzieren zu können.)


    Nun zu King's Bounty:

    Zunächst einmal ist die Routine auf dem AppleII ziemlich identisch mit der aus MM II, sowohl vom Programmcode als auch von den Melodien. Lediglich die Melodien "Audience with the King", "Member Slain" und "Enemy Slain" wurden entfernt und eine neue Melodie hinzugefügt. Die Portierung auf dem C64 sieht hingegen etwas besser aus als bei MM II. Jetzt wurde das Abspielen der Töne in den CIA-Interrupt verlagert. Zu Beginn einer Melodie werden alle Register für den Ton gesetzt, darauf folgen jeweils vier Werte für Tonhöhe ($d400, $d401), Wellenform ($d404) und Tonlänge. Bei der Umsetzung wurden jedoch nicht alle Melodien der AppleII-Version übernommen. Es gibt zwar wie beim AppleII neun logische Melodien, jedoch sind beim C64 die Nummern 0, 3, 4, 5 und 7 identisch (verweisen auf die gleichen Werte). Die "Titelmusik" besteht aus zweimaligen Abspielen der Tonfolge bei Adresse $7a82 (bei Dir "Audience with the King" genannt) gefolgt nach einem Bildwechsel von $7a2e ("Victory"). Besonders schwierig war das Rippen auch hier nicht. Keine Ahnung, was daran so problematisch sein soll. Anbei also ein kleines Soundprogramm für alle Soundeffekte auf dem C64 (inklusive Wiederholung von 3, 4, 5 und 7). Die "Titelmelodie" habe ich als Ganzes mit der Nummer 11 hinten drangehängt.


    Nun würde mich aber mal interessieren, woher Du die Informationen zu den Programmen hast eingeschlossen die englischen Bezeichnungen für die Melodien. Gab es dafür eine bestimmte Quelle oder wie bist Du da drangekommen?

  • Hi M.J. danke auch vielmals dafür.


    Das mit den Knacksern bei MM2 ist uns auch aufgefallen. Die ingame Aufnahmen, die ich vor einigen Wochen gemacht hatte wurden nachträglich bearbeitet, um sie zu entfernen. Danke für die Erläuterung zur Ursache. Ich werde mal mit Xeen Music darüber sprechen, ob wir die Aufnahmen dann mit dem machen, was dein Programm aktuell ausgibt (kontinuierliche Töne ohne Knacksen) oder ob wir die Attack/Decay und Sustain/Release Werte vorher, wie du beschreibst modifizieren. Jedenfalls sind das sehr interessante Informationen, die uns so nicht bekannt waren.


    Die Musikdaten hat Xeen Music selbst aus dem Speicher gelesen. Ich habe ihn mal danach gefragt, woher er weiß, dass er da die Musikdaten hat. Er hat mir folgendes geantwortet:

    Und da kamst du dann ins Spiel :)


    Er arbeitet seit 3 Jahren an diesem Projekt und versucht für die 6 Spiele von allen möglichen Plattformen (was über alle Spiele gesehen vielleicht 15 sind, inklusive Exoten aus z.B. Japan) Aufnahmen zu bekommen um ein komplettes Archiv der Musik zu erstellen. Er hat dabei selbst auch viel in den Spieledaten gesucht um diese Information zusammen zu sammeln. Auf Patreon (auch unter Xeen Music) hat er einige frei zugängliche Informationen zur Musik, sucht zum Teil Unterstützung um seine Datensammlung zu vervollständigen und ist dabei sehr akribisch. Bei den Youtube Videos findet man in den Beschreibungen auch viel Information zu den Stücken.


    Zum Teil arbeitet er auch mit den Komponisten der Musikstücke und den Programmierern zusammen, die ihm originales Quellmaterial zur Verfügung gestellt haben.


    Ich habe ihm vor einigen Wochen angeboten die Aufnahmen auf dem C64 zu machen. Da hat er mir diese Informationen zukommen lassen, in der Hoffnung, dass irgendjemand mit ausreichend Know How gefunden werden kann und hilft die fehlenden Stücke zu finden.

  • Ich werde mal mit Xeen Music darüber sprechen, ob wir die Aufnahmen dann mit dem machen, was dein Programm aktuell ausgibt (kontinuierliche Töne ohne Knacksen) oder ob wir die Attack/Decay und Sustain/Release Werte vorher, wie du beschreibst modifizieren.

    Ich bitte zu beachten, daß die Modifikation der ADSR-Werte nur dem Zweck dienen soll, erkenntlich zu machen, daß die Komposition mehrere Töne gleicher Höhe nacheinander vorsieht, die man in den Original-Abspielroutinen nur schlecht oder gar nicht hören kann. Eine solche Modifikation wäre selbstverständlich nicht mehr original. (Klingt aber besser. ^^ ). Eigentlich wären auch die Knackser "original", sofern ihr Auftreten nicht mehr oder weniger willkürlich wäre hervorgerufen durch suboptimalen Code. Legt man Wert auf möglichst "originalgetreue" Wiedergabe, ergeben sich beim C64 leider weitere Probleme. In Abhängigkeit davon, ob es sich um einen PAL- oder NTSC-Rechner handelt, klingen die Töne tiefer oder höher. Da davon auszugehen ist, daß das Programm in den USA entwickelt wurde auf einem NTSC-C64, müßte man daher eigentlich für eine "Original"-Wiedergabe auf einen NTSC-Rechner zurückgreifen.

    Wir haben ein .sid file für MM1 aber dort ist die Abspielgeschwindigkeit der einzelnen Tracks unterschieldlich zu den ingame Aufnahmen (das Titellied ist langsamer, die anderen Stücke schneller).

    Ich habe mir mal die Routinen von "MM I" angesehen. Im Unterschied zu "MM II" und "King's Bounty" werden hier die Soundeffekte im Rasterinterrupt und nicht im CIA-Interrupt erzeugt. Die Titelmelodie zu Beginn des Spiels läuft jedoch wie gehabt im CIA-Interrupt. Das dürfte die Unterschiede zwischen den Melodien erklären. Inbesondere mit dem Rasterinterrupt geht aber das Problem einher, daß dieser abhängig ist von der Darstellungsnorm, also NTSC oder PAL. Bei einem PAL-C64 wird der Interrupt 50mal pro Sekunde erzeugt, bei einem NTSC-C64 hingegen 60mal. Die Abspielgeschwindigkeit unterscheidet sich dadurch stark. Auf einem NTSC-C64 in den USA mögen daher die Soundeffekte und die Titelmelodie ziemlich gleich schnell geklungen haben (CIA- und Rasterinterrupt jeweils ca. 60mal pro Sekunde). Auf einem PAL-C64 hingegen nicht. Auch hier stellt sich dann die Frage, was "original" wäre, sofern dieser Begriff überhaupt noch Sinn macht. :/


    Die Routinen von "MM I" habe ich ebenfalls extrahiert. Falls Du sie noch gebrauchen kannst, sag bescheid. Ansonsten wäre es vielleicht ganz günstig, wenn es jemanden gäbe, der in der Lage wäre, ein SID-File für den SID-Player zu konstruieren. Falls jemand daran Interesse haben sollte, bitte ich um Rückmeldung. Dann würde ich dafür den disassemblierten Assemblercode gerne zur Verfügung stellen.

    The most common range of notes run from 30(hex) to 4F(hex).

    Das ist natürlich mit Vorsicht zu genießen. Die Daten auf dem C64 bestehen nicht aus Werten im Bereich $30..$4f, sondern aus 2 Bytes für die Frequenz, so wie der SID sie erwartet, einem Byte für die Tonlänge und einem Byte zum Ein- oder Ausschalten des Tons. Dieses Datenformat läßt sich folglich nicht so einfach erkennen. Auch der Bereich $30..$4f ergibt sich nur dadurch, daß der Programmierer aus unbekannten Gründen alle Notenwerte um 40 erhöht hat. (Dieser Wert wird beim Abspielen von den Noten wieder abgezogen.) Er hätte genauso gut einen anderen beliebigen Wert inklusive 0 verwenden können.

    Eine weitere Sache ist ebenfalls nicht ganz geklärt. Die Abspielroutinen sind so gebaut, daß sie neben den fest installierten Klängen auch andere Melodien abspielen können, die irgendwann im Verlaufe des Spiels von Diskette nachgeladen werden. Es wäre also zumindest rein theoretisch denkbar, daß z. B. am Ende des Spiels eine Siegermelodie erklingt und nur zu diesem Zweck gesondert in den Speicher geladen wird. Um dies hundertprozentig auszuschließen, müßte man die Spiele komplett durchgespielt haben.

    von allen möglichen Plattformen

    Hat er denn schon die Aufnahmen von den AppleII-Versionen gemacht? Immerhin sind dies die ursprünglichen Versionen, auf die die diversen Ports zurückgehen.

    Zum Teil arbeitet er auch mit den Komponisten der Musikstücke und den Programmierern zusammen, die ihm originales Quellmaterial zur Verfügung gestellt haben.

    Das ist natürlich toll. Da wünsche ich Euch beiden noch gutes Gelingen und viel Erfolg beim Sammeln.

  • Quote

    Eine solche Modifikation wäre selbstverständlich nicht mehr original.

    Das stimmt, vielleicht machen wir einfach 2 Versionen, eine ohne Knacken, dann sind wir zumindest noch nahe dran und eine mit den ADSR Einstellungen, das wäre dann die "So-hätte-es-möglicherweise-sein-sollen"-Version.


    Quote

    Die Routinen von "MM I" habe ich ebenfalls extrahiert. Falls Du sie noch gebrauchen kannst, sag bescheid.

    Danke gerne :-)


    Quote

    Hat er denn schon die Aufnahmen von den AppleII-Versionen gemacht?

    Nein, die hat er tatsächlich noch nicht. Ich wollte dich daher fragen, ob du solche Routinen auch für die Apple Versionen hinkriegen würdest. Das würde die Aufnahmen ungemein erleichtern, sobald wir jemamden finden, da man ansonsten die Spiele immer ein Stückweit spielen muss. Gerade bei MM1 und 2 dauert das dann schon mal länger bis man alles hat.


    Natürlich nur, wenn es dir damit nicht zu viel wird. Du hast uns schon sehr geholfen und viel Zeit eingespart, wo wir uns alleine vermutlich noch ne ganze Weile gequält hätten.

  • Quote

    Die Titelmelodie zu Beginn des Spiels läuft jedoch wie gehabt im CIA-Interrupt.

    Verstehe ich das richtig, dass beim CIA-Interrupt der Unterschied in den Abspielgeschwindigkeiten durch die CPU-Geschwindigkeit kommt (1,023 MHz bei NTSC und 0,985 MHz bei PAL)? Dort habe ich zwischen der ingame Aufnahme (PAL-C64) und dem Sid-File (lt. Eigenschaften des Files NTSC) einen Unterschied von 4% festgestellt. Hier wundert mich ein wenig, dass die Aufnahme, vom Sid-File, was ich auf meinem PAL-C64 abgespielt habe langsamer als die ingame-Aufnahme ist. Ich hätte erwartet, dass sie gleich schnell sind.


    Mir ist übrigens aufgefallen, dass ich versehentlich im falschen Bereich gepostet habe. Ich wollte eigentlich in den Bereich Musik. Vielleicht kann jemand den verschieben bei Gelegenheit.

  • Ich wollte dich daher fragen, ob du solche Routinen auch für die Apple Versionen hinkriegen würdest.

    Kann ich versuchen, wird aber ein wenig dauern. Ich bitte um etwas Geduld. Wie würdet Ihr die Töne abspielen? Auf Originalhardware oder im Emulator (z. B. AppleWin)?

    Verstehe ich das richtig, dass beim CIA-Interrupt der Unterschied in den Abspielgeschwindigkeiten durch die CPU-Geschwindigkeit kommt (1,023 MHz bei NTSC und 0,985 MHz bei PAL)?

    Was die Geschwindigkeitsunterschiede zwischen NTSC und PAL bei den CIA-Timern anbelangt, bin ich leider überfragt. Ich bezog mich eher auf die unterschiedliche Tonhöhe. Ein PAL-SID spielt einen Ton tiefer ab als ein NTSC-SID. Die größte Diskrepanz in der Abspielgeschwindigkeit resultiert aus der Zeitdifferenz bei einem Rasterinterrupt, was bei MM I der Fall ist. Hier sollte es deutliche Unterschiede geben zwischen der NTSC- und der PAL-Version. Dies betrifft aber nicht die Titelmelodie, sondern die späteren "Soundeffekte".