Вопрос

Есть ли какие-либо библиотеки, фрагменты кода или что-то подобное, что позволит мне играть ZX Спектр .есть ли файлы в моих играх XNA Game Studio?

Это было полезно?

Решение

Если вам нужен звук в XNA и требуется поддержка XBOX 360, вам необходимо использовать поддерживаемые форматы файлов.Вы значительно улучшите ситуацию, попытавшись преобразовать файлы .ay в формат, который изначально поддерживает XNA.

Если вы хотите поддерживать только Windows, то найдите библиотеку .NET, которая может их воспроизводить, она будет работать в XNA в Windows, если она работает в .NET.

Другие советы

Сначала вам следует конвертировать файлы .ay в wav.Есть такая программа здесь чтобы сделать это.Он также поставляется с исходным кодом, так что кто-нибудь, у кого есть немного свободного времени, мог бы помочь, создав из него импортера и обработчика контента?:-)

Если вы хотите закодировать его самостоятельно, вам нужно:

  1. Эмулятор процессора Zilog Z80A

    сделать это не так-то просто, но для этого есть несколько бесплатных исходников на C / C ++.Я пользуюсь своим собственным.

  2. 3-канальный эмулятор чипа AY 8910/8912 PSG

    это намного проще, чем с процессором.это всего лишь генератор сигналов, но документация для него не очень хороша, поэтому вам нужно много экспериментировать.

  3. Эмуляция 1-битного цифрового динамика

    * Файлы .AY не всегда используют AY-chip для вывода звука.Некоторые игры сочетают в себе AY и встроенный динамик.Теперь я не уверен , есть ли у вас также поддержка covox или нет ...Но если да, то вам нужно включить также 8/16-битный моно / стерео covox, обычно на каком-нибудь чипе i8255.

  4. эмуляция клавиатуры

  5. поддержка переменной архитектуры HW

    * Файлы.AY хранят музыку для других архитектур ...существуют различия между клонами Sharp, Amstard CPC, ZX48, ZX128...У некоторых из них разные частоты кристаллов, у некоторых разное микширование каналов с репродукторами, а также адреса ввода-вывода могут отличаться, не говоря уже о проблемах с подкачкой памяти.

  6. Выход звука

    Это зависит от целевой платформы, и поскольку я не использую XNA, не буду затрагивать эту тему (поскольку на нее уже дан ответ / принято)

Игрок AY выглядит следующим образом:

  1. сначала загрузите заголовок AY
  2. определите целевую платформу и настройте свой эмулятор в соответствии с ней
  3. загрузите двоичный файл AY в целевые зоны памяти
  4. установите регистры и запустите эмуляцию

Таким образом, если вы хотите закодировать AY player, вы в конечном итоге напишете эмулятор Z80, поскольку файлы *.AY - это программы, а не звукозаписи.Поскольку многие файлы AY используют speaker, вам нужно будет правильно эмулировать модель конкуренции, иначе возникнут проблемы с синхронизацией, которые особенно хорошо слышны на динамике...

Чтобы улучшить качество, вы можете применить КИХ-фильтры для имитации ШИМ-например, управление динамиком, которое используют многие эффекты.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top