PicoGUS, известный своими передовыми решениями в эмуляции звуковых карт Sound Blaster и других аудиоустройств для ретро-компьютеров, сделал важный шаг вперёд в обновлении собственной функциональности. В выпуске версии 3.0.0 разработчики представили долгожданную эмуляцию CD-ROM. Благодаря этому устройству теперь можно не только наслаждаться классическими звуковыми эффектами и музыкой, но и запускать CD-образы с USB-накопителей, тем самым превращая PicoGUS практически в оптический дисковый привод — ODE (Optical Drive Emulator).
Нововведение уже прошло тестирование в DOS и Windows 9x, и включает полноценную поддержку воспроизведения CD-аудио, что особенно важно для многих ретро-геймеров и энтузиастов компьютерной музыки.Эмуляция CD-ROM в PicoGUS реализована посредством имитации интерфейса Panasonic/MKE, а также самого привода, использующегося в устройствах того времени. Для использования новой функции необходимо подключить USB-накопитель с CD-образами в форматах ISO или BIN/CUE непосредственно к порту USB на устройстве PicoGUS. Это практически устраняет необходимость поиска и подключения физического оптического привода, значительно упрощая процесс запуска старинных игр и воспроизведения аудиодисков.Одной из ключевых особенностей эмуляции является её доступность в двух режимах: Sound Blaster и USB.
Режим Sound Blaster демонстрирует потрясающую производительность, несмотря на ресурсоёмкость для микроконтроллера RP2040, так как он одновременно смешивает аудио с CD, SB DSP и OPL, а также поддерживает данные CD и эмуляцию MIDI-порта MPU-401. Скорость эмуллированного привода при работе в Sound Blaster режиме составляет примерно 2x, что вполне достаточно для большинства применений, тогда как в USB режиме скорость возрастает до 3-4x, что обеспечивает ещё большую гибкость и производительность.Инновационное решение позволяет менять образы компакт-дисков прямо во время работы системы с помощью утилиты pgusinit. Это особенно актуально для игр с несколькими дисками, где просто достаточно извлечь и вставить USB-накопитель снова для переключения на следующий образ. Такой подход обеспечивает удобство и максимально приближает работу PicoGUS к оригинальному опыту использования дисковода, при этом обходя многие физические ограничения оптических приводов.
Важным историческим и техническим моментом в разработке этого функционала стал вклад Кевина Moonlight (известного под ником yyzkevin). Именно он занимался реверс-инжинирингом интерфейса Panasonic/MKE и внёс основной объём кода, обеспечивающего работу эмуляции CD-ROM. Кроме того, команда rppicomidi существенно ускорила работу с USB-массивом для RP2040 через TinyUSB, что стало критически важным для обработки скоростных потоков данных и обеспечения плавной работы CD-эмуляции. Artem Vasilev (wbcbz7) внёс дополнительные исправления и помог интегрировать изменения в современную версию репозитория, что позволило создать устойчивую и быстродействующую реализацию.Появление CD-ROM эмуляции в PicoGUS — это не просто добавление новой функции, но и результат значительной технической работы по оптимизации железа и программного обеспечения.
RP2040 (микроконтроллер, используемый в PicoGUS) традиционно обладает ограниченными ресурсами, и одновременное выполнение аудиообработки, управления эмуляцией MPU-401 и обработка потоков CD-данных — большое испытание. Именно поэтому в Sound Blaster режиме для воспроизведения аудио используется FIFO буфер, что, несмотря на возможные мелкие проблемы и задержки, обеспечивает стабильную работу даже в самых ресурсоёмких сценариях.Есть некоторые известные ограничения, в частности, режим Direct DAC, применяемый в старых играх, пока не поддерживается в новой версии прошивки. Однако все ключевые сценарии использования, включая воспроизведение аудиодисков и запуск игр с поддержкой CD-ROM, работают корректно. Пользователи частично теряют сохранённые настройки при обновлении прошивки до версии 3.
0.0 из-за добавления новых параметров, но это не является критической проблемой и компенсируется расширенными возможностями нового функционала.Вместе с поддержкой CD-ROM эмуляции обновилась и структура звуковых режимов. Режимы Tandy и CMS объединены в новый программируемый генератор звука (PSG), что не только уменьшает размер прошивки, но и создаёт базу для поддержки других звуковых чипов, таких как AY-3, использующийся в классической звуковой плате Mindscape Music Board. Несмотря на изменение, для обратной совместимости сохранились старые режимы.
Для полной настройки и управления функциональностью PicoGUS доступна утилита pgusinit, которая позволяет гибко выбирать режимы работы, загружать образы дисков, менять текущие образы и многое другое. Благодаря ей, новые возможности CD-ROM эмуляции легко интегрируются в существующие настройки пользователей и не требуют сложных манипуляций с устройством.Развитие PicoGUS и реализация эмуляции CD-ROM подчёркивают растущий интерес к ретро-компьютерам и сохранению классического игрового и музыкального наследия. Многие энтузиасты ценят возможность вновь испытать атмосферу 90-х годов, когда CD-ROM приводы только начали становиться массовыми, а музыка и игры на них имели своё неповторимое звучание и стиль. Новая версия PicoGUS обеспечивает не просто техническое удобство, но и глубокое погружение в эпоху, позволяя наслаждаться всеми нюансами оригинального звучания и опыта взаимодействия с компьютерными системами того времени.