Легендарный эмулятор SNES ZSNES переписан с нуля с ускорением GPU и без «вайб-кодинга»
ZSNES — легендарный эмулятор Super Nintendo Entertainment System, чьи корни уходят в эпоху DOS. Созданный разработчиками zsKnight и Demo, последний крупный релиз этого эталонного эмулятора, написанного на ассемблере с ручной оптимизацией, вышел почти два десятилетия назад. На этой неделе он возродился как Super ZSNES с «супер-улучшениями», работающими за счет графического процессора вашей системы. Переписанный с нуля той же легендарной командой, Super ZSNES теперь может похвастаться «гораздо более точными ядрами CPU и звука, чем оригинальный ZSNES», а также «ядром PPU на базе GPU».
Ознакомиться с работой Super ZSNES и обсуждением от MVG можно на видео выше. Ретро-ютубер имел доступ к этой возрожденной версии эмулятора в течение нескольких недель.
Прежде чем решиться на этот проект, zsKnight размышлял о том, что можно сделать по-другому для перезапуска. Разработчик рассказал MVG: «Мне пришлось немного подумать, что я могу сделать иначе. Я начал с написания рендерера на GPU, который заменяет большую часть эмуляции PPU SNES рендерингом, выполняемым в основном на GPU через шейдеры».
Главной сложностью была архитектура SNES, основанная на ЭЛТ, в то время как GPU работают с геометрией, но zsKnight с удовольствием преодолевал эти препятствия. В первом релизе Super ZSNES, как подтверждает MVG, такие задачи, как «поиск по палитре, рендеринг тайлов, прозрачность, режим 7, цветовая математика, комбинации основного и дополнительного экранов, мозаичные эффекты — все обрабатывается шейдерами GPU». Эта архитектура открывает некоторые «супер-улучшения» в новом интерфейсе и интригующие возможности для будущих релизов — например, текстуры высокого разрешения.
Еще одним аспектом, делающим этот новый эмулятор «Супер», является его новый «Super Enhancement Engine» (Движок супер-улучшений), и именно здесь, как мы полагаем, новая архитектура на базе GPU также будет часто задействована. Мы свели в таблицу то, что это означает для ваших старых игр SNES.
| Высокое разрешение | Не просто автоматическое масштабирование, а внутренняя программа рисования, которая позволяет вручную прорисовывать детали в высоком разрешении, чтобы они выглядели четко и аккуратно. |
| Текстуры/Карты нормалей | Добавляет приятные детали к фонам, придавая им вид более высокого разрешения. |
| Разгон | В некоторых играх, где часто встречаются замедления, производительность разгоняется. |
| Широкий экран (где доступно) | Мы включаем широкоэкранный режим, когда игра внутренне запрограммирована на поддержку частичного или полного широкоформатного изображения. |
| Замена сжатого звука | Мы подбираем и используем несжатые аудиосэмплы для замены оригинальных сильно сжатых. |
| 3D | В настоящее время поддерживается только для режима 7 в перспективном стиле, заменяет тайлы 3D-данными с картой высот. |
(Image credit: Tom's Hardware)
(Image credit: Tom's Hardware)
(Image credit: Tom's Hardware)
Стоит отметить, что новый Super ZSNES был собран с использованием Unity. Однако разработчики настаивают, что «никакого вайб-кодинга» не было, и вся работа «под капотом» велась «в классическом стиле разработки».
Естественно, поскольку это версия 0.100 нового эмулятора, в ней есть баги, которые нужно исправлять, улучшения, которые нужно внедрять, и будущие дополнения, такие как сетевая игра. Также есть предупреждение: «Это ранняя сборка, поэтому все еще есть ошибки эмуляции, а специальные чипы (DSP1, SuperFX и т.д.) еще не реализованы. Предстоит еще много работы по оптимизации, поэтому производительность может быть немного низкой».
MVG отмечает, что zsKnight подчеркнул важность баланса между работой, жизнью и разработкой ZSNES. Хотя разработчики рады снова взяться за этот проект, и первоначальный прием перезапуска был отличным, более прямая поддержка через такие платформы, как Patreon, возможно, помогла бы «смазать колеса».
Вы можете скачать Super ZSNES сейчас для Windows, Mac, Linux и Android, а версия для iOS «скоро выйдет».
Источник: Tomshardware.com



















0 комментариев