Hallo Besucher, der Thread wurde 1,6k mal aufgerufen und enthält 10 Antworten

letzter Beitrag von Vernunftmensch am

prg2sid

  • Ja, ich habe mich mit SIDs ein wenig beschäftigt. Auch schon einen SID-Player geschrieben und im Forum an anderer Stelle gepostet. Mir ist klar, daß der nicht alle SIDs kann, aber gutmütige und erfahrungsmäßig nach Ausprobieren die meisten funktionieren.


    Am liebsten würde ich mir machen, wenn ich schon wüßte wie, eine SID mit Play-Adresse $0000 und Initadresse beliebig erreicht durch Verwendung ausschließlich relativer Sprünge wenn überhaupt. Dann bis zu 256 Stück von Soundeffekten möglichst kultig, wobei die gewünschte Sache über Akku auch an Initadresse übergeben wird, ganz nach Konvention. Im Copyright dann mein Name mit der Bemerkung, daß ich die Soundsammlungs-SID selbst nur zusammengesucht habe.


    Für andere Ideen, die besser sind, habe ich selbstverständlich ein offenes Ohr. Wenn man beispielsweise ein anderes Format hat oder so und einen Player braucht, dann wäre auch noch eine Abspielroutine drin...

  • Am liebsten würde ich mir machen, wenn ich schon wüßte wie, eine SID mit Play-Adresse $0000 und Initadresse beliebig erreicht durch Verwendung ausschließlich relativer Sprünge wenn überhaupt.


    Was auch immer Du mit diesem Satz sagen wolltest: es gibt keine SID-Tunes mit Play-Adresse $0000. Allerhöchstens gibt es welche, die keine Play-Adresse haben. Ich zitiere:


    Code
    1. +0C WORD playAddress
    2. The start address of the machine code subroutine that can be called frequently
    3. to produce a continuous sound. 0 means the initialization subroutine is
    4. expected to install an interrupt handler, which then calls the music player at
    5. some place. This must always be true for RSID files.


    aus: SID_file_format.txt


    Wenn so eine Soundsammlung irgendeinen Nutzen (sprich: die Verwendung in einem Programm und nicht nur zum Anhören im Sidplayer) haben soll, wäre es schlau einfach $1000/$1003 Play/Init oder $9000/$9003 zu benutzen. Dieses Verfahren hat sich ja gerade deswegen "durchgesetzt", weil ein Programmierer sich nicht noch mit einem fremden Interrupthandler herumschlagen, sondern lediglich die Playroutine einmal pro Frame in seinem eigenen Interrupt aufrufen muss.

  • Natürlich rennt so ein Soundripper einfach durch wenn im Speicher nichts gefunden wird.


    Wenn du einen SID-Player geschrieben hast, sollte dir auch klar sein wie eine Soundroutine grundsätzlich funktioniert und die Frage nach geklauten Sound FX, relocated und in das Mega-SID gepackt stellt sich gar nicht.

  • Danke für die netten Antworten.


    Zitat

    $0000


    Mein SID-Player ist ja irgendwo hier im Forum gepostet. Wenn im SID $000 angegeben ist, ist keine Adresse gemeint, wißt ihr ja auch.


    Zitat

    $1000/$1003 Play/Init oder $9000/$9003


    Ja, schöner ist von SID-Geräusch zu SID-Geräusch immer einen rel. Sprung zu machen und alles ab Initadresse frei wählen zu können, ohne sich irgendwie sich festlegen zu müssen. Der Einfachkeithalber sollte man sich sonst aber an solche Konventionen halten.


    Die Frage, die sich da noch stellt ist, ob man eine Playadresse benutzt, damit man das Abspielen der Geräusche auch im Spielhintergrund ablaufen lassen kann. Mein Problem ist ja nicht, daß ich einiges hinkriegen würde, sondern daß ich nur die Lösung bisher kenne, den NMI-Playervon CodeBase als Playroutine einzurichten, die 4-bit gesampeltes aus dem Rest einer SID brav abzuspielen. Mir mißfällt das nur, 1. weil ich fleißig schon Sounds hingekriegt habe, für die ich aber noch keine Verwendung finde und 2. weil die Qualität niedrig und die Datenmenge dabei riesig ist.


    Zitat

    Wenn du einen SID-Player geschrieben hast, sollte dir auch klar sein wie eine Soundroutine grundsätzlich funktioniert und die Frage nach geklauten Sound FX, relocated und in das Mega-SID gepackt stellt sich gar nicht.


    Mein Problem ist nicht die Weiterverarbeitung, so sehe ich das, sondern, daß ich an die Soundcodes in den Tresoren von BoulderDashmachern und Turricanprogrammieren a) nicht drankomme b) die bisherigen Soundripper höchstens die Musikschleife finden.


    Zitat

    Ein Sid File in ein Programm einbinden bedeutet nicht, dass man einen eigenen Sid-Player geschrieben hat ;) Der Player an sich ist im Sid-File enthalten.


    Mein SID-Player sucht sich selbst die Datenstelle des SIDs, legt es und sich im Speicher geeignet ab und lädt pro Frame die Playadresse, gibt es eine, nach der Initialisierungsadresse. Damit spielt mein SID-Player SIDs ab. Ich sehe das also mit der Bezeichnung Player anders. In Deinem Sinne hast Du selbstverständlich Recht. :-)


    Mit Kumpels zusammen machen wir ein Spiel und ich setze das auf dem C64er um, quasi eine Wette, die zu sehr meinen Ehrgeiz weckt, als daß ich mich blamieren möchte nach dem Motto, schönes Brummen und nette seltsame Geräusche, die Du neben der Musik abspielst. Aber unter C64 vermissen wir die typischen Soundeingebungen...