NKC Forum
Registrieren | FAQ | Suche | Wer ist online? | Mitgliederliste | Heutige Beiträge | Einloggen



Autor Thema: Besserer Sound für den NKC
cerker68k
Ist öfters hier
**
ID # 219


  Erstellt am 20. November 2021 16:44 (#1)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

seit ich jetzt auch meinen NKC hatte, war er mir schon immer zu still. Es gibt natürlich eine Soundkarte, aber der einfache Rechteckpiepser AY-3-8190/92 bzw. YM2149 war mir nicht gut genug.

In einem anderen System an dem ich seit Jahren bastle (6809 Eigenbau meines Vaters) hab ich gute Erfahrungen mit dem YM2608 gemacht. Das schöne daran ist, dass er den YM2149 als Subset enthält und vollständig SW-kompatibel ist, alle bestehenden Sound-Routinen und die Spiele von smed funktionieren also weiter.

Er hat jedoch zusätzlich:

  • 6 Stimmen FM-Synthese, jeweils 4 Operatoren
  • ADPCM-Samples, entweder direkt oder aus externem Speicher
  • Schlagzeugeinheit

Er ist auch auf eBay noch zu bekommen, natürlich mit dem Risiko eines Fakes, meine funktionieren aber.

Hier findet man ein paar Klangbeispiele, habe gerade keine brauchbaren realen greifbar:
https://www.youtube.com/playlist?list=PLM98E7f5OROZ8_SqWOMNnvzWR2Mt68WTE

Ich habe eine Platine entworfen, diese enthält den YM2608, den zugehörigen DA-Wandler YM3016, 256KB DRAM für die Sampleeinheit, die nötige Glue-Logic (inkl. der vom der FLO3 übernommenen Waitstate-Logik, der YM2608 will RD/WR von mindestens 380ns) und den Analogteil. Dazu ein LM386 Verstärker für direkten Lautsprecheranschluss, aber nur in Mono. Auf die IO-Ports und die Möglichkeit der Aufnahme habe ich aus Platzgründen zunächst verzichtet.

Die 5V für den Analogteil werden mit einem 7805 aus der 12V Schiene getrennt erzeugt, da die "digitalen" +5V mit ziemlicher Sicherheit zu störverseucht sind. Sollte jemand keine +12V im System haben, kann jedoch mit einem Jumper auf die normalen +5V umgestellt werden. Der NF-Verstärker will jedoch +12V.

Die Adresse ist per Jumper zwischen 40h und 50h auswählbar.




Eine Schwierigkeit bestand darin, dass die Datenblattlage sehr dünne ist, vieles gibts nur auf japanisch und selbst dann gibts nicht wirklich ausführliche Appnotes etc., was bedeutet, dass ich mir die Schaltung aus kleinen Hinweisen zusammenreimen musste. Auch damals schon.

Ich habe soeben 3 Prototypenplatinen bei AISLER bestellt, die sollten Mitte nächster Woche ankommen. Die Teile hab ich fast alle da.

Wenn das so klappt, stelle ich die Unterlagen natürlich zur Verfügung, vielleicht kann Rene/Creep sie ja in seine Produktionsverteilung aufnehmen ;).

Ich habs mir mal erlaubt schonmal SOUND4 draufzuschreiben :cool:

Gruß,
Christian

Beiträge: 21 | Mitglied seit: Oktober 2021 | IP-Adresse: nicht gespeichert
Creep
Voll in Gange
***
ID # 169


  Erstellt am 23. November 2021 10:22 (#2)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Christian,

ich finde die Idee sehr gut! Eine bessere Soundkarte für den NKC (oder auch mehrere) sind eine sinnvolle Erweiterung. Vor allem, weil man den NKC ja mit nahezu allen wichtigen Prozessoren konfigurieren und Cross oder direkt programmieren kann.

Es wäre natürlich toll, wenn Du dann auch Beispielcode für die neuen Funktionen/Stimmen zur Verfügung stellen könntest.

Was kostet sowas bei Aisler? Ich bestelle ja meist bei JLCPCB, wo ich dann bei ~10€ für 5 Platinen in der Größe liege.

Gruß, Rene

Beiträge: 567 | Mitglied seit: Januar 2017 | IP-Adresse: nicht gespeichert
cerker68k
Ist öfters hier
**
ID # 219


  Erstellt am 23. November 2021 12:50 (#3)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Nur kurz bevor ich die Mittagspause auf Arbeit beende .. ;)

Bei Aisler habe ich jetzt 13€ pro Platine bezahlt, allerdings auch mit Expressfertigung. Sonst wären es 6€ (+ einer 6€ "Job-Fee") .. ist eben teurer, dafür hat man es schneller ;). Man muss da immer in 3er Vielfachen bestellen.

Zur Ansteuerung:
Ich habe meistens einen Tracker auf dem PC verwendet. Passend dafür wäre der "BambooTracker":

https://bambootracker.github.io/BambooTracker/

Der kann dann das VGM (Video Game Music)-Format exportieren, das ist ein universelles Format für viele Soundchips und besteht aus einer Kette von Befehlen wie:

  • Setze Register X auf Y
  • Warte X Ticks
  • Schreibe Daten ins Sample-RAM
  • Datenblock dafür
  • etc.

https://vgmrips.net/wiki/VGM_Specification

Ansonsten, Dokumentation ist sehr dünne, es gibt aber ein maschinell übersetztes "Application Manual" zum YM2608, dass zumindest die Programmierung recht gut erläutert und bis auf 2-3 Stellen auch gut verständlich ist:

http://www.vgmpf.com/Wiki/images/d/de/YM2608_Manual_%28Translated%29.pdf

Daheim habe ich noch ein Datenblatt zum YM2203 (äh sorry meine das total spezielle Böhm-Orgel-Custom-IC #213 *hust*) welches ein paar Standardparametersätze hat. Die FM-Einheiten vom YM2203 und 2608 sind identisch, der 2608 hat bloss 2 davon.

Das ganze funktioniert so, dass er 4 IO-Ports belegt, bei A1=0 sind:

  • Register $00-$0F die 16 Register des alten PSG (YM2149, AY-3-819x etc.),
  • Register $10-$1F die Schlagzeugeinheit
  • Register $20-$B6 die ersten 3 FM-Stimmen (und generelles zur FM-Einheit)

Bei A1=1 sind:
  • Register $00-$10 die Samplingeinheit
  • Register $20-$B6 die zweiten 3 FM-Stimmen

A0 ist wie übliche Adress- und Datenregisterauswahl.

Aber ja Beispielcode kann ich dann liefern.
Einen kleinen VGM-Player, ein bisschen was zur Schlagzeugansteuerung etc.

Wenns soweit ist, können wir ja alles auf dein Github packen, aber erst soll der Prototyp laufen.

Gruß,
Christian

Beiträge: 21 | Mitglied seit: Oktober 2021 | IP-Adresse: nicht gespeichert
smed
Kennt sich schon aus
**
ID # 114


  Erstellt am 23. November 2021 20:52 (#4)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hi cerker68k,
super, neue Hardware fuer den NKC ist immer willkommen. Zum schnellen testen der Sound4 (im AY-3-8190 Modus) bietet sich dies hier an: https://hschuetz.selfhost.eu/forumdrc/index.php?mode=viewthread&forum_id=4&thread=51&z=0&#post1 passt auch saisonal ganz gut.

Gruss
smed

-----------------------
NKC'ler und RDK Fan seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,FLO2,PROMER,CENT,SER,SOUND,CAS,4xBUS2,3xPOW5V,2xTAST..und neuerdings einen Arduino mit auf dem BUS. Und eine selbstgebastelte MEM960k. UHR, IDE und COL256 noch nicht gebastelt.

NKC - OpenSource since 1983

Beiträge: 148 | Mitglied seit: Januar 2011 | IP-Adresse: nicht gespeichert
cerker68k
Ist öfters hier
**
ID # 219


  Erstellt am 24. November 2021 12:13 (#5)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

die Prototypen-Platinen haben den E-Test bestanden und sind gerade verschickt worden. Mit etwas Glück kann ich Freitag/am Wochenende eine bestücken und testen.

Den vorgefertigen C-Compiler muss ich mir auch mal ansehen ;)

Gruß,
Christian

Beiträge: 21 | Mitglied seit: Oktober 2021 | IP-Adresse: nicht gespeichert
cerker68k
Ist öfters hier
**
ID # 219


  Erstellt am 26. November 2021 22:14 (#6)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

so ich habe den ersten SOUND4-Prototypen aufgebaut. Es raucht nix, das System startet noch damit und wenn man ihn richtig anspricht macht er auch Krach (zumindest auf FM, SSG und Schlagzeug .. die Samples teste ich gleich noch).



Die Cinchbuchsen werden noch geliefert .. und vermutlich muss ich die Balance der einzelnen Soundquellen noch mit Hilfe der Mischwiderstände optimieren.

Auch musste ich etwas improvisieren weil meine 20pin IC-Fassungen schon wieder alle waren :mad:.

Aber sie funktioniert soweit schon einmal.

.. okay, erstes Problem, wenn ich von der Karte lesen versuche kommt immer ein 0x00 zurück.

Ja, und das gehört so, man kann nur die Statusregister lesen (die aber im Ruhezustand 0x00 sind) und die SSG-Register. Die FM und ADPCM sind WriteOnly und liefern spezifiziert 0x00 zurück ..

Ja, Samples abspielen funktioniert auch.. auch wenn ichs vorerst einfach per Statuspolling aus dem Speicher "gestreamed" habe. Das RAM auf der Karte muss noch getestet werden..

Gruß,
Christian

Beiträge: 21 | Mitglied seit: Oktober 2021 | IP-Adresse: nicht gespeichert
cerker68k
Ist öfters hier
**
ID # 219


  Erstellt am 27. November 2021 18:33 (#7)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

so das RAM auf der Karte kann ich auch beschreiben und lesen .. nachdem ich einen Tag damit vergeudet habe.

Im Endeffekt muss man 51425 6 verwenden, nur diese kommen mit dem dreifach gemultiplexten Speicherbus des YM2608 zurecht. 51425 8, die ich zuerst verbaut habe, wollen die Spaltenadresse beim Schreiben weiterhin anliegen haben.

Weiterhin sind die Leitungen DM0-DM7 offenbar Open-Drain und brauchen Pullups, auch wenn das nirgendwo explizit beschrieben ist.

Ein weiterer Bug: Ich habe die Waitstate-Jumper falschherum beschriftet ;)

Gruß,
Christian

Beiträge: 21 | Mitglied seit: Oktober 2021 | IP-Adresse: nicht gespeichert



| NDR Computer | Boardregeln


Tritanium Bulletin Board 1.6
© 2010–2016 Tritanium Scripts


Seite in 1,766799 Sekunden erstellt
17 Dateien verarbeitet
gzip Komprimierung ausgeschaltet
973,09 KiB Speichernutzung