Posts by Rage168

    Hey M.J. danke vielmals für die Unterstützung und darüber hinaus die ganzen Hintergrundinfos.


    Ich habe mittlerweile die Aufnahmen für MM1 gemacht und es hat wieder alles geklappt.


    Für MM1 und MM2 haben wir somit gute Aufnahmen (inkl. ADSR modifizierter Version von MM2) mit insgesamt 3 zusätzlichen Tracks, die in den Spiel so nicht gespielt werden.


    Wegen King's Bounty: Ich bin nicht sicher, inwieweit wir uns da auf die Suche nach weiterer Musik begeben werden. In meiner Naivität dachte ich anfangs, dass man es sich "einfach" irgendwie aus den Spieledaten herausziehen könnte, aber so einfach ist es nicht, wenn man erst an die Punkte spielen muss, wo weitere Musik geladen wird. Das kann viel Zeit in Anspruch nehmen und die Gefahr besteht, dass am Ende gar nichts dabei rum kommt. Jedenfalls haben wir momentan keine konkreten Hinweise darauf, dass wir etwas finden würden.


    Auf jeden Fall danke ich dir vielmals, für die ganze Zeit, die du in dieses Thema gesteckt hast. Uns hat das auf jeden Fall weiter gebracht und schlauer gemacht.

    Hm, wenn ich das richtig verstehe, wäre das Maximum, was wir damit kriegen könnten all das, was wir eh schon haben, nämlich alle Tracks, die im Spiel selbst aufgerufen werden, aber keine, die im Spiel eigentlich nicht aufgerufen werden, denn darauf dürfte der Jump Vektor wohl nie zeigen, oder?

    Würdest du mir vielleicht noch deine fertige Routine von MM1 schicken?

    Hab's noch nicht vergessen. Sorry, es dauert noch ein bißchen, da ich in den letzten Tagen zu beschäftigt war. King's Bounty guck ich mir noch einmal an.

    Sorry, ich hätte mich genauer ausdrücken sollen. Ich meinte damit dein früheres Angebot zur C64 Version:


    Quote

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

    Die Apple II Routinen sind wie gesagt nicht so dringend, da wir noch keinen haben, der es aufnimmt.

    Hi M.J.


    ich habe vom MM2 PRG file Aufnahmen gemacht und es hat super geklappt und war alles drin, was wir brauchten. Auch den Track, der ingame nicht genutzt wird haben wir jetzt dank deiner Routine.


    Würdest du mir vielleicht noch deine fertige Routine von MM1 schicken? Ich würde davon gern auch eine Aufnahme machen, da unsere Aufnahme vom HVSC SID-File speed- und pitch-technisch weder NTSC noch PAL sind.


    Ich habe eine Aufnahme von der King's Bounty routine gemacht und festgestellt, dass einer mehr drin war, aber auch einer fehlte, den ich vorher ingame aufgenommen hatte.


    ich finde folgende Reihenfolge:


    0. Walk Beep

    1. Bump Sound

    2. Encounter

    3. Walk Beep

    4. Walk Beep

    5. Walk Beep

    6. Death

    7. Walk Beep

    8. diesen Sound Effekt kannten wir noch nicht

    9. Victory

    10. Audience with the King

    11. Title Screen (2xKing, 1xVictory)


    Was wir ingame noch hatten, war ein weiteres Stück namens "Get Treasure", was in deiner Routine nicht abgespielt wird. Ich habe das Wave File mal angehängt.


    Würdest du vielleicht nochmal nachschauen, ob die Rountine von King's Bounty korrigiert werden kann? Ich möchte sicher gehen, dass wir alles haben, was da drin steckt.


    FYI:


    Auf deine Ausführungen über Tempo und Pitch-Unterschiede bei Musik auf PAL-C64 und NTSC-C64 haben wir beschlossen unsere PAL-Aufnahmen so zu modifizieren, dass sie exakt so klingen, als kämen sie von einem NTSC-C64. Das klappt mit folgenden Modifikationen, die ich an der MM1 Musik, die ich ingame mit VICE einmal in PAL und einmal in NTSC Einstellung gemacht habe:


    Quote

    so after making test recordings of NTSC and PAL game music for MM1, I found how to convert music from PAL machines to sound exactly like NTSC music.

    For CIA interrupt music the pitch needs to be increased by 3.804%. If I do this to my first in game recording of the MM1 title music you’ll get an NTSC original version. The 3.804% come from the CPU speed difference of the NTSC / PAL systems (1022727 cycles per second (NTSC) / 985248 cycles per second (PAL) = 1,03804016… I tested this with NTSC and PAL recordings from VICE today.

    For raster interrupt music the speed needs to be increased for PAL recordings by 19.019 % and after that the pitch needs to be increased by 3.804%. With those two changes I managed to make the recording of the PAL version of "victory fanfare" (9.850s) sound exactly like the NTSC recording (8.276s). The 19.019% were calculated from those play times.

    This fixes all other music pieces from my ingame recording from MM1. (Encounter, Enemy slain, Party member slain, Party slain, Victory Fanfare)

    Quote

    Wie würdet Ihr die Töne abspielen?

    Das kann ich noch nicht mal sagen. Ich kenne mich mit dem AppleII nicht aus. Ich werde Xeen Music mal fragen wie er sich das gedacht hat.

    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.

    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.

    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.

    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.

    Files

    • KBc64.zip

      (242.31 kB, downloaded 9 times, last: )

    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.

    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.

    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

    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.

    Ich habe noch ein wenig weiter getestet. Konnte keine offensichtlichen Auffälligkeiten mehr feststellen. Da ich bis auf ein Anzeigegerät noch überhaupt keine Peripherie habe, kann ich natürlich noch nicht alles probieren.


    Hab den SID und den VIC, sowie den "neuen" CIA vorsichtlhalber mal mit Kühlkörpern bestückt. Federstahlklammern nach Vorbild von GMP sind aus eigener Herstellung :D



    Damit möchte ich diesen Thread dann auch abschließen. Danke an alle für die vielen Tipps, besonders an Tulan, für den tatkräftigen Beistand und bis zur nächsten OP!

    Nachdem diese Woche die Arbeit wieder angefangen hat, musste ich etwas Pause machen, aber ich hab gestern den "neuen" CIA, so wie du vorgeschlagen hast im Doppelfederkontaktsockel eingesetzt. Das Ergebnis waren zuerst einige Fehlermeldungen in der Check64-Diagnose (hatte die echte Tastatur angeschlossen):



    Nach einem Reset des C64 sah es dann so aus:



    Ich habe ein paarmal probiert durch Reset des Cevi und des Check64-Moduls die Fehlermeldungen zu reproduzieren, das hat aber nicht funktioniert. Es war danach immer alles OK.


    Aber als ich das Check64-Modul abgezogen und neu eingesteckt habe, bekam ich wieder Fehlermeldungen. Diesmal wurde statt dem SID aber der U1 als fehlerhaft erkannt:



    Ein Reset des Check64 brachte das selbe Ergebnis. Nach dem Reset des C64 waren dann wieder keine Fehlermeldungen mehr. Nach weiteren Resets des C64 und des Check64 war das Ergebnis immer OK.


    Wie muss man das jetzt verstehen? Braucht Check64 einen Einschaltzyklus zum initialisieren oder sowas, oder hab ich noch ein Problem? Ich hab mal bei Google und im Forum erstmal nichts dazu gefunden.


    Gestern habe ich die Tastatur und den SID getestet. Ging soweit ich das sagen kann, außer als ich ein kurzes Musikstück aus dem C64-Handbuch versucht habe einzuprogrammieren, bekam ich seltsame Geräusche gemischt mit einigen Tönen, als würde der SID sich kurz hintereinander neu initialisieren. Vielleicht habe ich einen Fehler im Programm gemacht. Einfache Tests mit dem SID waren erfolgreich.


    Vielleicht hat noch jemand eine Idee zum oben angesprochenen Phänomen.

    Ich konnte jetzt ca. 100mV herausholen indem ich den Adapter zwischen dem Netzteil und dem DIN-Stecker entfernt habe. Ich wollte ursprünglich maximale Wiederverwendbarkeit für die beiden Netzteile haben. Habe sie jetzt direkt in den Stecker eingelötet und bin nun bei 4,93V ohne CIA. Das ist doch schon um einiges besser. :thumbsup:


    Jetzt muss nur noch der neue CIA ankommen...

    Mit Mut hat das nichts zu tun, eher mit einem Mangel an Alternativen durch fehlendes Equipment. Naja, wie gesagt, ich hab noch nicht so viel Ahnung von allem hier, aber ich habe schon viel gelernt. Vielleicht kriege ich ihn doch noch zum Laufen.


    Habe Check64 mit dem Akkupack durchlaufen lassen.


    Einmal mit vermeintlich defektem CIA (U1):



    und einmal ohne:



    Damit läuft Check64 auch endlich komplett durch. Es lässt hoffen. Hoffentlich verschwindet das Bad beim U2, wenn ich den Ersatz für den U1 eingesetzt habe, sonst muss ich den auch tauschen. Da der U1 scheinbar mit allen Schnittstellen verbunden ist, scheint es auch logisch, dass diese alle als Bad angezeigt werden.


    Hier die heutigen Daten mit dem Betrieb des Cevi mit Akkupack für die 5V Versorgung.


    Leerlauf: 5,29V
    mit C64 an: 4,99V (ohne CIA (U1)


    Das entspricht wiederum in etwa dem Spannungsabfall, den ich mit dem Netzteil ohne den CIA hatte: 5,17V (leer) zu 4,82V (C64 an).


    Zum Thema Restwelligkeit: Ich habe eine Frequenzmessung mit meinem Multimeter gemacht. Bei Frequenzen < 100kHz soll es Amplituden von 100mVrms auflösen können. Es zeigt aber 0 Hz an. Daraus schließe ich, dass die Restwelligkeit keinen besonders hohen Einfluss haben sollte. Ich würds dennoch lieber nochmal mit nem Oszi messen.


    Was ist eigentlich eine übliche Leerlaufspanung bei einem originalen Netzteil für den C64II? Hat das mal jemand gemessen?

    Hab den Cevi mal mit einem Akkupack betrieben. Leerlaufspannung 5,53V, bei eingeschaltetem Cevi am Versorgungspin des U2 5,35V. Der Spannungsabfall (0,18V) ist viel geringer als mit dem Netzteil (>0,4V). Vielleicht ist es tatsächlich nicht geeeignet...