Hello, Guest the thread was called1.1k times and contains 5 replays

last post from whylee at the

Sourcecode für ressourcenschonenden SID-Emulator gesucht

  • Hi Leute,


    Ich möchte demnächst etwas in Richtung RetroVGS-Konsole entwickeln und dieses Retro-VGS-Teil beinhaltet eine SID-Hardwareemulation und auch einen "eigenen SID" mit 4 Stimmen ähnlich denen im Original SID.


    Jetzt gibt es diese Konsole noch nicht, das wird auch noch dauern (in zwei Wochen gibts mal den Lauch der Kickstarterkampagne). Und deshalb möchte ich schon mal auf PC-Basis (SDL-Library plus Audiocore) im Vorhinein entwickeln.
    Aus diesem Grund wäre es fein, wenn ich einen Sourcecode einer einfachen SID-Emulation in die Finger bekommen könnte. Ich brauch hierfür keinen CPU-Ressourcenfresser, der dann sämtliches Atmen und eigentümliche Sonderlichkeiten des SID nachemuliert, sondern im Prinzip alle Funktionen halbwegs korrekt.


    Hat da jemand einen Tipp in welche Richtung ich schauen soll (Playersoftware, Teil eines gesamten C64-Emulators etc.) wo ich mir den Sourcecode der SID-Emulation rauslösen kann? Da ich die ganze Welt der C64-Emulatoren und speziell der SID-Emulation nicht so genau kenne möchte ich die Leute hier mit Produkterfahrung fragen, was für Player und C-64-Emulationen sie denn so am PC verwenden und sich halbwegs authentisch anhört und die CPU nicht gleich zum Schmelzen bringt.


    Schon mal Danke im Voraus!
    WhyLee.

  • Mag sein. Eignet sich vielleicht als Basis für eine eigene Lösung. Und wenn nicht: Google spuckt noch unter besagtem Suchbegriff noch mehr aus, etwa eine SID-lib für den Arduino. Die _muss_ ja mehr oder minder ressourcenschonend sein.

    ja, das mit dem reSID hab ich schon rausgefunden - und eben, daß das so ziemlich die prozessorlastigste version ist (wenn auch sehr genau).
    drum hab ich hier nach expertenwissen gefragt. der hinweis mit der sid-lib für den arduino scheint schon mal recht brauchbar. muß ich mir mal reinziehen.
    thanks!
    ich lass dann feedback hier, wenn ich erfolgreich war :-)

  • ich hab mir jetzt mal den sourcecode vom arduino reingezogen.
    was ich aber so auf die schnelle rausgelesen habe, ist, daß diese library ziemlich basic ist.
    es sind im prinzip nur die drei stimmen mit den unteschiedlichen waveforms (dreieck, sägezahn, rechteck, rauschen) mit attack decay susain release drin. ok, pulseweite für rechteck ist auch drin.
    vom ringmodulator hab ich nichts gesehen, die filter sind leider auch nicht nicht drin.
    (und etwas seltsam für die anwendung programmiert)
    da das ganze am pc nicht wert für wert über interrupt generiert werden kann muß man das wohl in blockhäppchen (z.b. 128 samplewerte pro berechnung) generieren, wo dann von block zu block änderungen an den registern berücksichtigt werden.


    wäre fürs erste vielleicht ok, aber was ich so mitbekommen hab sind die filter nicht so unwichtig. und was mit dem ringmodulator in der praxis so gemacht wird, kann ich jetzt auch nicht sagen.


    naja, irgendwo ist mir der sidplay2 im netz untergekommen, der anscheinend auf eine der ersten reSID-Versionen basieren soll, die noch nicht so viel CPU-Leistung brauchen. Prinzipiell kann man den ganzen Scheiß - auch mit digitalen Filtern halbwegs effizient implementieren.
    Ich komm wohl nicht drum rum die älteren Versionen vom reSID anzusehen.
    Hmm - viel Arbeit.