Когда автор проекта заявил, что не будет заниматься поддержкой Direct3D 3, это казалось окончательным приговором для целого пласта игр. Но сообщество сказало своё слово: @CkNoSFeRaTU добровольно взялся за реализацию execute buffers и довёл дело до конца. В результате D7VK v1.5 закрывает последний «тёмный угол» в мире Direct3D, добавляя поддержку D3D3 и исправляя множество проблем в более высоких версиях API.
Главное достижение: поддержка D3D3 и execute buffers
Execute buffers — это архаичный механизм, использовавшийся в ранних версиях Direct3D (вплоть до D3D5) для передачи команд рендеринга. Он был сложен в использовании, и игры, полагавшиеся на него, долгое время оставались недоступны в современных трансляторах. Теперь это в прошлом:
- Direct3D 3: Полноценная поддержка игр, использующих execute buffers.
- Direct3D 5: Исправлены игры, которые также зависели от этого механизма, включая Incoming, O.D.T.: Escape... Or Die Trying, Star Wars: Shadows of the Empire.
Запись обратно в back buffer и depth stencil
Многие игры полагались на возможность чтения данных из back buffer и depth stencil после завершения отрисовки кадра — например, для создания скриншотов сохранений или рендеринга меню. Из-за особенностей трансляции через DDraw эти данные оставались пустыми. В версии 1.5 эта проблема решена:
- Drakan: Order of the Flame: Теперь корректно отображаются фоны меню паузы и скриншоты сохранений.
- SimCity 4, Total Club Manager 2003, Nocturne, The Mystery of the Druids, Gorky 17, Delta Force 2 и другие игры, зависевшие от этой функциональности, теперь работают правильно.
Другие важные исправления
- Корректные значения viewport depth: Выявлены и исправлены ситуации, когда игры передавали некорректные значения глубины вьюпорта. Это затронуло Summoner, Empire of the Ants (2000) и Urban Chaos.
- Фильтрация текстур: Исправлено несоответствие типов фильтров, вызывавшее проблемы в Knight Rider и потенциально снижавшее качество мип-фильтрации в других играх.
- Begin/Vertex/End буферы: Добавлена поддержка этих потоков в D3D5/6, что потребовалось для Frogger (1997). Игра теперь полностью проходима.
- Старые демо ATI: Исправлена потеря геометрии в технодемках Radeon's Ark и Rage Dawning.
- Ground Control: Исправлена ошибка, не позволявшая выбрать 32-битные цветовые режимы.
- Need For Speed 3/4 (modern patch): Восстановлены отсутствовавшие арты на экранах загрузки.
- Wing Commander: Prophecy: Исправлена проблема с прозрачностью по цветовому ключу (color key transparency).
Небольшая выставка: игры на D3D3, которые теперь работают
Разработчики отмечают, что execute buffers были сложны в использовании, поэтому игр, полагавшихся на этот механизм, не так много. Но для ценителей ретро-гейминга их достаточно:
- Moto Racer 2
- Outlaws
- Star Wars: Shadows of the Empire
- Star Wars: Jedi Knight: Dark Forces II
- Take No Prisoners
- Venom. Codename: Outbreak
- Incoming
- O.D.T.: Escape... Or Die Trying
Как всегда, разработчики напоминают: в эпоху D3D3/5 королём был Glide, и если игра предлагает выбор, лучше предпочесть Glide-рендерер. Но теперь, благодаря D7VK v1.5, у вас есть достойная альтернатива для ностальгических путешествий в прошлое 3D-графики.
Релиз уже доступен на GitHub-странице проекта. Приятного погружения в историю!