acidcode Posted February 22, 2006 Report Share Posted February 22, 2006 Huhu :)Ich hab keinen Plan ob das evtl. hier schon mal diskutiert wurde, aber ich hab hier was durch Zufall entdeckt:http://staff.washington.edu/rrcc/uwweb/C64C/250469BR.GIFIn diesem C64 Schaltplan steht, dass beim SID 8580 der Widerstand R8 (bei der MBSID ist das der R2) nicht verwendet wird. Und komischerweise sind dort für den 8580 auch 2,2nF statt 6,8nF als Filter-Caps angegeben ???.GrußMatze Quote Link to comment Share on other sites More sharing options...
Dr_Nick Posted February 22, 2006 Report Share Posted February 22, 2006 Tach Matze!Ich habe vor ein paar Wochen eine SID-Umschaltplatine für meinen alten C64 gebastelt (ursprünglich 8580, jetzt umschaltbar auf 6581...) und habe da folgende Erfahrungen gemacht:-wenn man beim 8580 den Widerstand R8 in die Ausgangsschaltung einbaut, dann wird er leiser. Könnte mir vorstellen, das der 6581 mit seinen 12V Analog-Versorgungsspannung ein größeres Ausgangssignal liefert und das dieses reduziert wurde, um irgendwelchen Spezifikationen zu genügen. Wenn man beim 8580 den Widerstand rausläßt und beim 6581 nicht, dann ist das Ausgangssignal in etwa gleich laut.-für den SID 8580 sind in allen neuen C64 die 2,2nF Filterkondensatoren eingebaut. Thorsten hat in dem Originaldatenblatt des 8580 für die Caps einen Wert von 6,8nF gefunden und nach einigen Tests bei Verwendung in einer MIDIbox SID keinen größeren Unterschied gehört. Da die meisten hier wohl 6,8nF-Kondensatoren verwenden werden die veröffentlichten Patches auch mit diesen Kondensatoren am besten und bei allen sehr ähnlich klingen.Ich hatte zum Test im C64 auch mal Kurz 6,8nF für den 8580 eingebaut. Wenn man dort dann SID-Musikstücke hört, dann klingen die Filter sehr, sehr deutlich anders. Das stimmt dann hinten und vorne nicht mehr und klingt nur noch Schlimm.Bei meinem SID-Modul habe ich allerdings noch nicht ausprobiert, ob der Widerstand und die Kondensatoren einen merklichen Lautstärke- bzw. Klangunterschied machen... Quote Link to comment Share on other sites More sharing options...
acidcode Posted February 23, 2006 Author Report Share Posted February 23, 2006 Danke für Deine Infos!Ach, jau! Das mit dem Datenblatt hab ich ganz vergessen, hatte ich doch schon mal irgendwo hier gelesen.Ja mit dem Widerstand könnte wohl tatsächlich für den ein oder anderen 8580-User interessant sein...Ich bastel mir nämlich gerade mit dem USB-Pic18F4550 und ner MMC-Karte einen SID Player, um die 31.000 SID-Tracks von der HVSC immer parat zu haben (lol), deshalb isses da schon ne gute Info zu wissen das die Orig. C64 Stücke mit den 6n8 u.U. anders klingen. Werd' also am besten die 2n2 verbauen.GrußMatze Quote Link to comment Share on other sites More sharing options...
TK. Posted February 23, 2006 Report Share Posted February 23, 2006 Wagst Du Dich also nun doch an den .sid Player? Ich habe Dir ja mal geschrieben, dass ich das nicht fuer moeglich halte, doch mittlerweile (bzw. nachdem ich mit "siddump" herumgespielt habe), habe ich gelernt, dass die meisten Tunes mit einem Update Cycle von 20 mS - oder auch 200k PIC Zyklen - auskommen. Da ist was drin, und nebenher klappt dann auch noch der Zugriff auf ein MMC Device.Egal ob 6n8 oder 2n2, die meisten Tunes werden nicht akkurat erklingen, da sie fuer den 6581 geschrieben wurden.Gruss, Thorsten. Quote Link to comment Share on other sites More sharing options...
acidcode Posted February 23, 2006 Author Report Share Posted February 23, 2006 Hi Tk,es gibt im Netz schon ein paar Leute die den C64 Core im PIC18F + externem RAM erfolgreich emuliert haben um damit SID Tunes direkt abzuspielen (einer hat sogar gleich den komplettenSID emuliert mit einem übertakteten ATMEL uC *lol*! --> Google: "Swinsid").Aber soweit will ich ja gar nicht gehen, den kompletten C64 Core im PIC zu emulieren wäre zwar theoretisch denkbar, aber allein schon bei der Vorstellung das ganze Zyklen-genau hinzubekommen komme ich ins rotieren :P. Also portiere ich gerade einen SID Player nach Visual Basic der einfach die Register-Änderugen im 20ms Raster in eine Datei schreibt, diese per einfacher RLE packt und quasi als eigenes Dateiformat speichert. Somit braucht der PIC die Daten einfach nur von der Flashkarte lesen, entpacken und an den SID streamen.Diese Methode hat natürlich Nachteile: es können nur IRQ-basierte Stücke wiedergegeben werden (also die, die mit 20ms Takt laufen), Stücke mit Sampling-Voices sind also leider nicht möglich wiederzugegeben. Und die Dateien werden natürlich wesentlich größer (aber bei den heutigen MMC Preisen ist das gar kein Problem). Und man muß von vorneherein schon bei der Konvertierung angeben wie lang das Stück maximal läuft... GrußMatze Quote Link to comment Share on other sites More sharing options...
acidcode Posted February 23, 2006 Author Report Share Posted February 23, 2006 Apropos: öhm, wie kommst Du auf die 200 Zyklen :oDer PIC18F4550 macht 12 MIPS = 12.000.000 Zyklen je Sekunde1/20mS = 50 IRQ's je Sekunde12.000.000 / 50 = 240.000 Zyklen je IRQOder steh ich auf'm Schlauch, mach mich nicht schwach ??? Quote Link to comment Share on other sites More sharing options...
acidcode Posted February 23, 2006 Author Report Share Posted February 23, 2006 Hey cooler Hinweis mit dem SidDump, das Tool macht ja schon ziemlich genau das was ich brauche ;D ;D Quote Link to comment Share on other sites More sharing options...
TK. Posted February 23, 2006 Report Share Posted February 23, 2006 Ich habe 200k Zyklen angegeben (fuer 40 MHz, weil fuer mich das Rechnen mit 48 MHz noch zu ungewohnt ist ;-))Ja, siddump ist schon ein feines Prograemmchen, und die Sourcen sind ebenfalls verfuegbar. Du musst also kein neues VB Programm aufsetzen, sondern kannst das Format einfach so rausschreiben, wie Du es brauchst (vielleicht laesst es sich ein wenig komprimieren). Oder optional den .c Code assembleroptimiert auf den PIC umsetzen, das sollte auch nicht zu schwierig sein. :)Gruss, Thorsten. Quote Link to comment Share on other sites More sharing options...
acidcode Posted February 23, 2006 Author Report Share Posted February 23, 2006 Ach Mist, ich hab das "k" in Deinem Beitrag hinter der 200 überlesen ;D.Hab schon mit Siddump rumexperimentiert und das ganze versucht mit VB zu "packen", wenn man einzelne Chunks bildet je Voice und davon ausgeht das es max. 65536 Chunks (=1 Word) je Voice gibt dann ist die Komprimierungsrate gar nicht mal so übel. Bin von einem 326k Dump auf ~ 10k gekommen, aber das variiert natürlich je Song mehr oder weniger stark. Mal sehen was mir noch einfällt... Quote Link to comment Share on other sites More sharing options...
acidcode Posted February 23, 2006 Author Report Share Posted February 23, 2006 Oder optional den .c Code assembleroptimiert auf den PIC umsetzen, das sollte auch nicht zu schwierig sein. :)Öh.. jetzt fällt der Groschen. Wer sagt denn das der PIC die C64 CPU in Realtime emulieren muss... der kann ja auch erstmal in ein externes RAM Dumpen und von dort in den SID streamen... wieder ne ganz neue Idee. Da bräuchte man ja überhaupt keine Komprimierung... Quote Link to comment Share on other sites More sharing options...
TK. Posted February 23, 2006 Report Share Posted February 23, 2006 Ich vermute, dass sich die SID Daten sogar in Echtzeit berechnen lassen - unter Echtzeit verstehe ich hier bis zum naechsten Timer Tick, der alle 20 mS stattfindet. Die 6502/6510 CPU selbst ist ja ziemlich lahm verglichen zum PIC (die meisten Befehle benoetigten mehrere Zyklen), und die Soundroutinen sind meistens so ausgelegt, dass sie innerhalb weniger "Rasterzeilen" (so hat man damals auf dem C64 Performance gemessen) abgearbeitet werden, so dass noch genuegend "Raster" fuer das eigentliche Spiel uebrigbleiben. Problematisch wird es lediglich bei den Digitunes, deren Sampleausgabe per NMI gesteuert ist. Die verlangen nach wesentlich mehr Performance... aber es gibt vergleichsweise nur wenige .sid Files (zu erkennen an dem _PSID), die mit 4bit Samples arbeiten. Im Grunde ist das nur etwas fuer Galway Fetischisten ;-)Nachdem mir das damals klar wurde, wollte ich Dir eigentlich nochmal eine Mail schreiben, habe es aber irgendwie verpennt. Nunja, so weisst Du nun ueber diesen Weg bescheid :)Gruss, Thorsten. Quote Link to comment Share on other sites More sharing options...
acidcode Posted February 23, 2006 Author Report Share Posted February 23, 2006 Der Typ hier hat das auch in Realtime auf dem PIC18F452 gemacht, sogar mit 2 SID's:http://www.tripoint.org/kevtris/Projects/sid/sidman_final.html Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.