Архив за год: 2015

Need For Speed III Modern Patch v1.3.1

Оказалось, что кто-то пробовал использовать пропатченную игру на Windows 98, но Modern Patch не поддерживал эту ОС, поэтому небольшое обновление.

  • Вернулась поддержка Windows 98/Me (рекомендуется использовать thrash-драйвер DX6 на этой версии ОС).
  • Улучшено поведение при поочерёдном запуске игры на мониторах с разным максимальным разрешением.
  • Пара незначительных оптимизаций.

Помимо этого, проект обзавёлся собственной страничкой, где всегда можно будет скачать последнюю версию и прочитать актуальную информацию о патче.

Страница проекта →

Need For Speed III Modern Patch v1.3.0

nfs3_coverФинальная версия в череде обновлений для Need For Speed III. Этот релиз посвящён исправлению наиболее неприятных багов игры, поэтому обновление настоятельно рекомендуется.

  • Игра научилась корректно использовать все ядра процессора, что значительно повысило плавность nGlide и dgVoodoo. Старый костыль SingleProcAffinity больше не нужен.
  • Исправлена ошибка оригинальной игры, из-за которой игра могла неожиданно закрыться в самом конце загрузки геймплея.
  • Драйвер nGlide теперь корректно поддерживает сворачивание и разворачивание игры.
  • Исправлена ошибка, приводящая к невозможности начать сетевую игру.
  • Другие незначительные изменения, за подробностями обращайтесь к файлу readme.

Внимание!

Если ранее у вас был установлен оригинальный NFS3, наверняка в вашей системе остались патчи совместимости, которые будут мешать нормальной работе Modern Patch. Дело в том, что патчи совместимости устанавливаются глобально и влияют на все установленные копии NFS3. Чаще всего в таких патчах присутствует фикс, заставляющий работать игру только на одном ядре, чего требует оригинальная игра. Если не удалить эти патчи, то Modern версия не сможет использовать все ядра и работать максимально плавно — вы получите игру с производительностью обычной NFS3. Для удаления патчей совместимости, скачайте и установите Microsoft Application Compatibility Toolkit, затем запустите Compatibility Administrator (32-bit) и посмотрите что у вас установлено в Installed Databases. Если увидите что-то касательно NFS3 — смело удаляйте.

Страница проекта →

Need For Speed III Modern Patch v1.2.0

NFS3 CDВ моём первом компьютере была видеокарта Gigabyte GA-660 Plus (на основе Nvidia Riva TNT2 Pro). Она без проблем тянула все игры в 2000 году. Вместе с ней в подарок шёл диск с Need For Speed III. И вот годы спустя, буквально пару месяцев назад, я узнал, что эта игра раскрывалась на всю катушку только при использовании видеокарт 3dfx Voodoo и Glide API. При работе через обычный DirectX в игре отсутствовал потрясный эффект тумана и лучи света из фар. Кто знал о существовании такого эффекта — прибегал к использованию эмуляторов Glide API (nGlide, dgVoodoo и др.), которые могут немного замедлять игру или делать её менее стабильной. Теперь в этом нет необходимости, поскольку с новым Modern Patch эти эффекты работают и в родном Direct3D 6 режиме.

За основу нового драйвера DX6 был взят файл d3da.dll из демо-версии NFS4. Как оказалось, он обладает всё ещё совместимым с NFS3 API (а вот в релизе NFS4 совместимость сломали). Но он не работал на современных ОС из-за нескольких ошибок, которые были благополучно исправлены. Теперь всё работает и это рекомендуемый драйвер.

Помимо этого было сделано и множество других изменений. Повторно изменилась структура thrash-драйверов. Теперь у каждого драйвера есть отдельный подкаталог в каталоге drivers, а также свой файл настроек thrash.ini, где задаётся тип драйвера и его способности (поддерживает ли туман и т.д.). Новая структура позволяет одновременно хранить несколько эмуляторов Glide API, поэтому драйвер Voodoo2+nGlide теперь называется просто nglide, кроме того был добавлен эмулятор dgVoodoo (тоже с поддержкой расширенного API разрешений) с соответствующим названием драйвера.

За подробностями о множестве других изменений обращайтесь к файлу readme.

Страница проекта →

Need For Speed III Widescreen Patch v1.1.0

Небольшое обновление. Как оказалось, на Windows 8.1+ стандартный D3D thrash-драйвер, работающий на DirectX 5, не работает. По этой причине в комплект был добавлен также thrash-драйвер DX8 (работает на DirectX 8), позаимствованный из игры Motor City Online и немного пропатченный для Need For Speed III. Игровой процесс с новым драйвером в некоторых деталях выглядит даже лучше оригинального DX5 (например, лучше смешиваются блики фар на асфальте с тенью машины). Поскольку игра не рассчитывалась на использование совместно с другими thrash-драйверами, не обошлось без проблем: небольшое искажение цветов в меню и неработающее стартовое видео. Проблема с цветами была быстро исправлена, а вот на изучение проблемы с видео уже нет времени, поэтому в релиз вошло как есть. В любом случае игра лучше всего выглядит с использованием thrash-драйвера voodoo2 из-за наличия эффекта тумана. Было бы хорошо реализовать этот эффект и для драйверов DX5/DX8, поскольку они более стабильны, но на исследования в этом направлении на данный момент уже нет времени.

Для того, чтобы удобно переключаться между разными thrash-драйверами, настройка VideoDriver в ini-файле сделана более гибкой: теперь она принимает не одно из заранее предопределённых значений, а просто имя dll-файла thrash-драйвера (можно без «.dll» в конце). В дополнение к этому вместо старых параметров командной строки был добавлен один универсальный параметр -driver=, который также может установить произвольный thrash-драйвер и он имеет большую силу, чем настройка в ini-файле. Например, для временного запуска игры с драйвером Voodoo2 используйте параметр -driver=voodoo2 вместо старого -voodoo2. Имена файлов thrash-драйверов были изменены: d3da.dll переименован в dx5.dll (для единообразия с новым dx8.dll), а в voodoo2a.dll и softtria.dll была убрана не несущая смысла буква «a» в конце.

В стандартный комплект включено 4 thrash-видеодрайвера, поскольку у каждого из них есть свои преимущества и недостатки:

  • Voodoo2+nGlide хорошо совместим с современными ОС и поддерживает эффект тумана, что на данный момент не поддерживается в других драйверах.
  • Однако, эта связка работает немного медленнее и не очень стабильно (игра во время загрузки может неожиданно закрыться без каких-либо ошибок).
  • DX8 хорошо совместим с современными ОС, в некоторых деталях он выглядит лучше Voodoo2 и DX5 (например, блики от фар на мокром асфальте смешиваются с тенью машины без артефактов).
  • Однако, он не отображает видео (в случае использования DX8 рекомендуется отключить видео параметром NoMovie).
  • DX5 основан на оригинальном thrash-видеодрайвере NFS3, отображает видео, умеет хорошо работать в 16-разрядном цвете.
  • Однако, он хуже совместим с современными ОС и в некоторых деталях выглядит хуже DX8, особенно заметен артефакт при большом количестве брызг или пыли из-под колёс.
  • SoftTri не использует аппаратное ускорение и предсказуемо выглядит хуже всех. Оставлен для любопытных.

Страница проекта →

Need For Speed III Widescreen Patch v1.0.0

Когда я впервые увидел Need For Speed III, от изумления я даже присел. Это была первая трёхмерная игра в моей жизни, и до этого момента я совершенно не подозревал, что графика в играх может быть настолько потрясающей. Это был далёкий 2000 год. Не счесть количество часов, потраченных на игру в сплитскрине за одной клавиатурой с моим двоюродным братом... Музыке — отдельное слово. Мне она настолько нравилась, что я даже записывал её на кассету, а с кассеты потом обратно на компьютер, при помощи стандартной «Звукозаписи». Это единственное что я тогда смог придумать. Слушал я эти записи по кругу по много часов подряд. MP3? Что это за странные буквы? Только WAV, только хардкор! :)

И вот, годы спустя, мне захотелось поиграть в эту игру. Но она не захотела работать на современном железе. Пришлось разбираться. В процессе захотелось ещё и поддержку широкоформатных разрешений... и понеслась! Немного увлёкся этим делом, и в результате получился внушительный патч. Более 6000 строк на ассемблере, исписано 14 листов А4, длинный список изменений...

Не буду описывать здесь все изменения, поскольку их слишком много. Опишу лишь основные тезисы. За подробностями обращайтесь к файлу readme.txt.

Что нового?

  • Адекватная поддержка широкоформатных и больших разрешений — игра без проблем работает на 1920×1200 и других разрешениях без искажения пропорций изображения.
  • Улучшена графика машин — на максимальных настройках у других машин текстуры в 2 раза лучшего качества, всегда крутятся колёса, никогда не исчезают зеркала и другие элементы (это происходило из-за отображения худших моделей при наличии более двух машин в кадре).
  • Увеличена дальность отрисовки в зеркале заднего вида — на максимальных настройках теперь объекты не исчезают так рано как раньше.
  • Улучшена поддержка Voodoo2/Glide — в этом режиме в игре доступен эффект тумана (которого нет в обычном D3D режиме), но Glide API в принципе не позволял использовать широкоформатные разрешения, и чтобы обойти это ограничение, Glide API было расширено совместно с автором враппера nGlide, в архив включён nGlide 1.04.1 с поддержкой этого расширения.
  • Переносимость — игра больше не лезет в реестр за настройками, все системные настройки хранятся в ini-файле рядом с исполняемым файлом игры (он должен иметь такое же имя как и запускаемый exe-файл).
  • Добавлено несколько оптимизаций. Например, игра не делает копию музыкальных файлов при каждом старте и читает их сразу их исходного каталога, что экономит время и 10 мегабайт ресурса вашего SSD на каждый старт.
  • Исправлено несколько десятков ошибок и недоработок оригинальной версии. Например, индикация загрузки теперь намного более плавная.

Читать далее

Unchained Nostalgia v1.2 — обновление демки для Dendy

Сегодня 14 февраля, и это отличный повод для обновления Unchained Nostalgia. Это демка для Dendy (или NES), основанная на меню легендарного картриджа Super HIK 300-in-1.

Что нового

  • Автоматическое переключение сцен в такт музыке (каждые 4 удара)
  • Для включения этого режима нужно нажать Start, для выключения — любую другую кнопку (включено по умолчанию)
  • При удержании одной из кнопок направления, сцены меняются в такт музыке (каждый удар) в выбранном направлении
  • Улучшена палитра в сценах 4, 5, 6 и 7
  • Добавлены две новые сцены, в ночных сценах улучшено звёздное небо
  • Мелодия не замедляется во время переключения сцены
  • Парочка секретных фишечек =)

Скачать: unchained_nostalgia.zip (13КБ). Страница проекта →

Сборка ICO файла с иконками в формате PNG при помощи FASM

Иногда я пишу небольшие программы на C++, и часто выходит так, что иконка программы «весит» больше, чем собственно сама программа. Так же вышло и при написании Sound Keeper: программа — 14КБ, иконка 16×16 + 32×32 + 48×48 пикселей — 15КБ. Какое расточительство! К счастью оказалось, что Windows (начиная с Vista) поддерживает PNG внутри ICO. Это как раз то, что нужно! Но почему-то не нашлось программы, которая бы позволила самому оптимизировать файлы PNG и собрать из них файл ICO. Поскольку у файлов ICO очень простой формат, соберём его при помощи FASM. Это нестандартное использование «плоского» ассемблера показывает, что его можно применять в самых неожиданных ситуациях, и это работает!

Читать далее