pureikyubu 2.0 — заметки о релизе

Октябрь 2026 · предыдущий релиз 1.9.1 (сентябрь 2026) · Версия в Markdown

Версия 2.0 — это релиз периферии, обещанный в заметках к 1.9.1. Периферийные устройства консоли теперь одна подсистема: каждое устройство — контроллер, карта памяти, сетевой адаптер, Game Boy Player, Game Boy Advance на кабеле связи — это модель сама по себе, со своими настройками, своим местом в конфигурации и одним окном, которое их редактирует. Broadband Adapter и Modem Adapter эмулируются целиком со стороны консоли, Game Boy Player достигается через ту самую оконную область ARAM, в которой он и живёт, а карта памяти наконец-то монтируется. На стороне GameCube появляются сохранения состояния, а портативные машины сохраняют свои. Программный конвейер GFX перестал быть экспериментальным: он рисует заставку boot ROM и проигрыватели фильмов, а заголовки, которые он запускает, совпадают с шейдерным бэкендом. Интерфейс получает восемь тем, японские названия в селекторе, текст «один тексель на пиксель» при любом масштабе, окно видеовыхода, которое следует за своим окном, и строку состояния, сообщающую два такта эмуляции. Need for Speed: Carbon, с аварийного останова виртуальной машины которого началась эта работа, загружается.

The Legend of Zelda: The Wind Waker, нарисованная программным конвейером GFX
The Wind Waker.Титульный экран, нарисованный программным конвейером GFX, в собственном окне видеовыхода. Чёрное небо, которое было у заголовка, — это маска записи BP в CP, которой библиотека делит один регистр между двумя возможностями.
Главное окно и селектор игр
Главное окно.Селектор игр перечисляет просканированные образы с их значками, размерами, идентификаторами игр и комментариями из баннеров, а строка состояния сообщает эмулируемую производительность и такты эмуляции.

Главное

Добавлено

Пул периферийных устройств

Два сетевых адаптера

Game Boy Player и кабель связи

Сохранения состояния

Дамп команд GFX

Интерфейс

Изменено

Карта памяти, пересмотренная

Окно настроек — одно окно

Программный конвейер

Gekko, командный процессор и последовательный интерфейс

Портативное ядро

Исправлено

Известные проблемы

Что дальше

Периферия не закончена, и следующий релиз — это тот, где она будет закончена. Двум сетевым адаптерам нужна верхняя половина стека (игра, говорящая на IP, или мост на стороне хоста), Game Boy Player нужна прошивка самого Player — набор команд, видео- и аудиоформат потока кадров, — а кабелю связи нужна передача multi-boot. Game Boy Advance, которым владеет Player или link-устройство, тоже должен путешествовать в состоянии GameCube — это и закрыло бы единственную дыру в формате состояния, которая является состоянием машины, а не настройками.

После этого проект переходит в своё устойчивое состояние: планомерное, методичное улучшение — работа над производительностью и исправление ошибок релиз за релизом, а не очередной рывок возможностей. Архитектура на месте; осталось сделать то, что есть, быстрее, точнее и полнее.

Сборка

Windows. Откройте scripts/VS2026/pureikyubu.sln в Visual Studio 2026 и нажмите Build. Эмулятор — это интерфейс SDL2 в любой конфигурации, решение содержит pureikyubu, SDL2 (статическая библиотека) и портативные цели, собираются и x64, и x86 (Win32), рекомпиляторы следуют за хостом, а проекты нацелены на Windows 7. Цель pureikyubu_headless входит в решение, но не собирается через «Build Solution». EMU_VERSION — 2.0, и именно это сообщают заголовок главного окна, окно About, JDI GetVersion и рукопожатие MCP.

Linux.

sudo apt install libglew-dev libsdl2-dev
git clone https://github.com/emu-russia/pureikyubu.git
cd pureikyubu
git submodule update --init
cd build && cmake .. && make
./pureikyubu pong.dol
cmake -DHEADLESS=ON .. && make          # цель без окна

Тесты.

MSBuild scripts/VS2026/pureikyubu_test.slnx -p:Configuration=Release -p:Platform=x64
vstest.console.exe scripts/VS2026/x64/Release/pureikyubu_test.dll /Platform:x64

У портативных машин собственный стенд — 380 из 380 тестов проходят:

testing/gba_bench/check.sh
testing/gba_bench/get_test_roms.sh     # публичные тестовые ROM и две картинки Acid2

Предыдущие релизы по-прежнему доступны: Заметки о релизе 1.9.1 · Release Notes 1.9.1 · Заметки о релизе 1.9 · Заметки о релизе 1.8 · Заметки о релизе 1.7 · Markdown. Долгая история работы после релиза 1.6 — в дайджесте.