3 Stimmen

ZX Spectrum AY-3-8912-Wiedergabe in XNA Game Studio

Gibt es irgendwelche Bibliotheken, Codestücke oder ähnliches, mit denen ich die ZX Spectrum .ay-Dateien in meinen XNA Game Studio-Spielen?

6voto

anonymous Punkte 645

Sie sollten .ay-Dateien zunächst in wav-Dateien umwandeln. Es gibt ein Programm aquí um das zu tun. Es wird auch mit Quellcode geliefert, so dass jemand, der etwas freie Zeit hat, helfen könnte, indem er einen Inhaltsimporteur und -prozessor daraus erstellt :-)

1voto

Spektre Punkte 45051

Wenn Sie es selbst codieren wollen, benötigen Sie:

  1. Zilog Z80A CPU-Emulator

    nicht so einfach zu machen, aber es gibt einige freie C/C++ Quellen dafür. Ich benutze meine eigene.

  2. 3-Kanal AY 8910/8912 PSG Chip-Emulator

    Dies ist viel einfacher als die CPU. Es ist nur Ton-Generator, aber die Dokumentation ist nicht sehr gut für sie, so dass Sie brauchen, um eine Menge zu experimentieren.

  3. 1 Bit digitale Lautsprecheremulation

    *.AY-Dateien verwenden nicht immer den AY-Chip für die Tonausgabe. Einige Spiele kombinieren AY und eingebaute Lautsprecher. Ich bin mir nicht sicher, ob AY auch Unterstützung für Covox hat oder nicht ... Aber wenn ja, dann müssen Sie auch 8/16 bit mono/stereo covox normalerweise auf irgendeinem i8255 Chip enthalten.

  4. Tastatur-Emulation

  5. Unterstützung variabler HW-Architekturen

    *.AY-Dateien speichern Musik für mehrere Architekturen ... es gibt Unterschiede zwischen Sharp, Amstard CPC, ZX48, ZX128, Klonen ... Einige haben unterschiedliche Quarzfrequenzen, einige haben unterschiedliche Kanalmischungen zu den Reproduktionsgeräten, und auch die IO-Adressen können sich unterscheiden, ganz zu schweigen von den Problemen mit der Speicherauslagerung.

  6. Tonausgabe

    Dies ist abhängig von der Zielplattform und da ich XNA nicht verwende, werde ich dieses Thema nicht ansprechen (da es bereits beantwortet/akzeptiert wurde)

Der AY Player sieht folgendermaßen aus:

  1. zuerst den AY-Header laden
  2. die Zielplattform zu erkennen und den Emulator entsprechend zu konfigurieren
  3. Laden der AY-Binärdatei in die Zielspeicherzonen
  4. Setzen der Register und Starten der Emulation

Wenn Sie also einen AY-Player programmieren wollen, werden Sie am Ende einen Z80-Emulator schreiben müssen, da *.AY-Dateien Programme und keine Tonaufnahmen sind. Da viele AY-Dateien Lautsprecher verwendet, dann müssen Sie richtig emulieren die Auseinandersetzung Modell sonst Timing-Probleme auftreten, die vor allem auf Lautsprecher gehört werden kann...

Um die Qualität zu verbessern, können Sie FIR-Filter anwenden, um die PWM -ähnliche Steuerung des Lautsprechers, die viele Effekte nutzen.

0voto

Jesper Blad Jensen Punkte 2711

Wenn Sie Sound in XNA benötigen und XBOX 360-Unterstützung wünschen, müssen Sie die unterstützten Dateiformate verwenden. Sie sind wirklich besser dran, wenn Sie versuchen, die .ay-Dateien in ein Format zu konvertieren, das XNA nativ unterstützt.

Wenn Sie nur Windows unterstützen wollen, dann suchen Sie nach einer .NET-Bibliothek, die sie abspielen kann. Sie wird in XNA unter Windows funktionieren, wenn sie in .NET funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X