ИГРЫ И НЕ ТОЛЬКО

Dreamcart: картридер для Dreamcast запускает игры с N64, SNES и Sega Genesis

Энтузиаст Throaty Mumbo представил самодельный картридер Dreamcart, который через порт контроллера Dreamcast позволяет запускать оригинальные картриджи от Nintendo 64, Super Nintendo и Sega Genesis. Проект с открытым исходным кодом уже доступен на GitHub.

Dreamcart: картридер для Dreamcast запускает игры с N64, SNES и Sega Genesis

Энтузиаст и автор канала Throaty Mumbo представил самодельный картридер Dreamcart, позволяющий запускать оригинальные картриджи от Nintendo 64, Super Nintendo и Sega Genesis на консоли Sega Dreamcast. Устройство подключается к стандартному порту контроллера через интерфейс Maple Bus, а исходный код прошивки уже появился на GitHub под лицензией GPL-3. 0. Новую разработку моддер в описании проекта с иронией объяснил желанием вернуть то самое чувство ностальгии от постоянного продувания старого пожелтевшего пластика.

Dreamcart 64: конструкция и возможности

В основе главной версии устройства под названием Dreamcart 64 лежит снятый с материнской платы Nintendo 64 разъем для картриджей, кастомная печатная плата и напечатанный на 3D-принтере белый корпус. За обмен данными отвечает компактный модуль Pimoroni PGA2350 на базе микроконтроллера RP2350B с 2 ядрами ARM Cortex-M33, 8 МБ памяти PSRAM и 16 МБ флеш-памяти. Схема включает регулятор напряжения с 5 В до 3. 3 В, защитные диоды от обратного тока и слот microSD для кэширования. Благодаря управлению питанием картриджи можно менять на горячую прямо через встроенное меню BIOS без перезагрузки приставки.

Главным препятствием при работе с играми от Nintendo 64 стала нехватка вычислительной мощности Dreamcast для полноценной эмуляции. Попытка задействовать старый порт эмулятора Daedalus привела к слайд-шоу с частотой 1 кадр в секунду, отсутствию звука и искажению текстур. Даже после оптимизации инструкций SH4 и внедрения кэширования Super Mario 64 выдавала лишь около 9 кадров в секунду, а Mario Kart 64 вовсе вылетала с критической ошибкой при запуске.

Модификация готовых нативных портов, созданных фанатами на базе декомпиляций игр вроде Super Mario 64 и Mario Kart 64 от разработчика jnmartin84, обеспечила плавную работу при чтении ресурсов и сохранений EEPROM напрямую с картриджа. Однако такой способ ограничивался лишь немногими перенесенными вручную проектами. Чтобы охватить остальную библиотеку, Throaty Mumbo написал собственный динамический рекомпилятор с реализацией библиотеки libultra под Dreamcast и сохранением переведенного кода на карту памяти.

С помощью рекомпилятора с физических картриджей удалось запустить Kirby 64: The Crystal Shards и Rayman 2: The Great Escape, причем последняя использовала карту VMU вместо оригинального аксессуара Memory Pak. Тем не менее стабильность оказалась далека от идеальной. В Rayman 2: The Great Escape на стартовом уровне текстура неба перекрыла весь экран, а Donkey Kong 64 отказалась стартовать из-за требования расширителя памяти Expansion Pak. «Почти каждая непроверенная игра сразу приводила к вылету, превращая добавление поддержки графических и звуковых микрокодов в бесконечную охоту на кротов», — признался Throaty Mumbo.

Помимо версии для Nintendo 64, энтузиаст собрал аналогичные адаптеры Super Dreamcart для Super Nintendo и Mega Dreamcart для Sega Genesis. Они не требуют рекомпиляции и транслируют данные с картриджей напрямую в эмуляторы Super Famicast и Genesis Plus DC. В ходе тестов Donkey Kong Country показала стабильную картинку при искаженном звуке, а Mortal Kombat II заработала без серьезных проблем со звуком и управлением. Исходники динамического рекомпилятора для Nintendo 64 автор планирует привести в порядок и опубликовать отдельно.

Как тебе материал?

0 реакций
Как тебе материал?0 реакций
Комментарии

Обсуждение

Загружаем обсуждение…