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

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

Что нового?


  • Адекватная поддержка широкоформатных и больших разрешений. Игра без проблем работает на 1920?1200 и других разрешениях без искажения пропорций изображения.
  • Улучшена графика машин. На максимальных настройках у других машин текстуры в 2 раза лучшего качества, всегда крутятся колёса, никогда не исчезают зеркала и другие элементы (это происходило из-за отображения худших моделей при наличии более двух машин в кадре).
  • Увеличена дальность отрисовки в зеркале заднего вида. На максимальных настройках теперь объекты не исчезают так рано как раньше.
  • Потрясный эффект тумана и лучи света из фар теперь работают и при отрисовке через Direct3D 6. В оригинальной игре эти эффекты работали только на видеокартах 3dfx Voodoo через Glide API или при использовании эмуляции Glide API при помощи врапперов.
  • Улучшена поддержка 3dfx Voodoo / Glide API. Glide API в принципе не позволял использовать широкоформатные разрешения, и чтобы обойти это ограничение, Glide API было расширено совместно с автором враппера nGlide, в архив включён nGlide 1.04.2 с поддержкой этого расширения.
  • Переносимость. Игра больше не лезет в реестр за настройками, все системные настройки хранятся в ini-файле рядом с исполняемым файлом игры (он должен иметь такое же имя как и запускаемый exe-файл).
  • Добавлено несколько оптимизаций. Например, игра не делает копию музыкальных файлов при каждом старте и читает их сразу их исходного каталога, что экономит время и 10 мегабайт ресурса вашего SSD на каждый старт.
  • Исправлено несколько десятков ошибок и недоработок оригинальной версии. Например, индикация загрузки теперь намного более плавная.
  • Устранены многие проблемы совместимости с современными Windows, мешающие работе игры. Добавлены новые системные настройки.
  • Более сотни изменений в целом. Смотрите подробности в файле readme.

Ручная установка


  1. Скопируйте каталоги FEDATA и GAMEDATA с оригинального диска в новый пустой каталог.
  2. Извлеките содержимое архива nfs3_modern_patch.7z (1.3МБ) в этот же каталог, с заменой файлов.
  3. Готово!

Готовая сборка


Да простят меня издатели за раздачу игры 1998 года, я собрал весь оригинальный контент из всех официальных изданий, и сделал сборку с предустановленным патчем. Скачать можно либо на Рутрекере, либо по публичному torrent-файлу (а лучше стать на раздачу и там и там).

Скриншоты


Было и стало: у машин других игроков не исчезают зеркала и лучше текстуры




Было и стало: даже машинам трафика не удалось избежать улучшений




1280?720, без тумана




1280?720, с туманом




1280?720, ночь, туман...


Комментарии (53)


  1. Riod
    11.06.2015 19:52
    +9

    С учетом возраста игры намного более инересной и полезной была бы статья о том как вы всего этого добились. Список изменений крутой, но игра уже давно не привлекает.


    1. VEG Автор
      11.06.2015 20:19
      +17

      Графика в этой игре, конечно же, по современным меркам уже устаревшая. Но я эту игру помню и люблю за весьма заводной сплитскрин, особенно в режиме с полицейскими, когда ты догоняешь и штрафуешь друга. Я купил в Steam несколько разных гонок со сплитскрином (к сожалению, это уже необязательная функция, поэтому выбор ограничен), но ничего толком не зацепило. А недавно вот у меня товарищ в гостях был — мы попробовали несколько раз сыграть в NFS3, и таки азарт был. Так что и старые игры могут на отлично выполнять свою развлекательную функцию.

      Что касается методов разработки патча — несколько лет назад я писал статью о патчинге Age of Empires II. С тех пор мало что изменилось, методы применяются те же :)


      1. disinvis
        15.06.2015 09:42
        +1

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

        Помню как-то на серпантине запрятался, что он меня не мог найти. Видел мой экран, но не мог угадать место. Море позитива.

        Хотя не уверен, что сейчас было бы интересно… Ещё играли в Ignition на одном экране. Тоже заводная вещь.


    1. foxmuldercp
      11.06.2015 20:27
      +9

      Не стоит говорить за всех.
      У меня несколько знакомых до сих пор держат компьютеры и ОС тех времен для теплых ламповых посиделок в DooM, NFS, Heroes, Warcraft, CimCity, Keen, Fox, C&C, Elite и другие шедевры игростроя 1980-90-2000х.


      1. webkumo
        11.06.2015 21:06

        А зачем держать отдельные компьютеры/ОСи? Почти всё из этого прекрасно работает под DosBox (в том смысле что некоторые вещи я лично запускал и проблем особо не испытывал… хотя для Гоблинов пришлось поплясать с бубном… вот виндовые игрушки — те да, сложнее запускать)…


        1. megahertz
          12.06.2015 00:19
          +2

          Так теплый ламповый гймплей)


        1. anloop
          12.06.2015 23:17
          +2

          Внезапно DosBox позволяет запустить Win98?
          ДОСявые игрища — не вопрос. Но, например, тот же нативный МК3 имеет ощутимый лаг, между нажатием клавиши и реакции персонажа. Страшный момент «почти». У меня для этого «почти» — стоит системник с двумя падами от PS1 (один зацеплен от LPT-порта, второй зацеплен от COM-порта. Оригинальные от PS1). Ибо на современных системах просто некуда цеплять их.
          Ну и всё-же на тему МК. Ну просто на не оригинальном 6-кнопочном паде набрать тот же brutality — невозможно. Я про тот самый МК3U с SMD.
          Ну а если по теме — NFS3 был одной из моих любимых игр. Я, в принципе, перепаивал свой ЕДИНСТВЕННЫЙ геймпад от PS1 для компа только для того, чтоб удобней было играть в НФС3 )
          И с друганом зарубались, вот как сейчас помню: Атлантика. Ламбо Диабло.ДЕСЯТЫЕ доли секунды)


      1. Riod
        12.06.2015 14:00

        Я не против, да и сам таким занимаюсь, чтобы поиграть в Constructor. Но все же…


  1. b3nd3r
    11.06.2015 20:12
    +6

    Вообще было бы прекрасно, если бы разработчики публиковали исходные тексты старых игр или программ, как это делала id Software. Ведь они кем-то могут использоваться, причем лицензионные версии, а поддерживать это уже никто не хочет и не будет.

    Замечательная работа, но и правда была бы очень интересна статья о том, как вы всего этого добились, какие-то самые интересные вещи, т. к. 100 патчей описать в одной статье может и не получится.


    1. VEG Автор
      11.06.2015 21:08
      +3

      Публикация исходных кодов было бы идеальным решением для игр «на пенсии». Хотя вот Microsoft спустя 12 лет отсутствия обновлений внезапно слегка обновила Age of Empires II и теперь успешно её продаёт в Steam. А ведь казалось, что игра уже давно на пенсии…

      Что касается описания процесса патчинга, даже понятное описание небольших изменений — весьма трудоёмкая задача. В этой статье 2009 года я описал 3 небольших изменения, и то объём вышел достаточно большим. Хотя кое-какие статьи на эту тему я всё же планирую написать для Хабрахабра.

      100 патчей описать в одной статье может и не получится.
      Для этого пришлось бы привести все 8000+ строк фрагментов ассемблерного кода и в несколько раз больше текста с описанием :)


      1. KindDragon
        14.06.2015 21:22

        Хотя вот Microsoft спустя 12 лет отсутствия обновлений внезапно слегка обновила Age of Empires II и теперь успешно её продаёт в Steam.

        И неплохо продается steamspy.com/app/221380


  1. Lerg
    11.06.2015 21:15
    +7

    Мне она настолько нравилась, что я даже записывал её на кассету, а с кассеты потом обратно на компьютер, при помощи стандартной «Звукозаписи». Это единственное что я тогда смог придумать.

    А мы купили проводок Jack-Jack 3.5mm и соединяли им выход и вход звуковой карты, включали игру, включали звукозапись, работало достаточно хорошо!


  1. Rumlin
    11.06.2015 21:16

    Спасибо! Игра запустилась. Под Windows 8 не работала.


  1. DarkPreacher
    11.06.2015 21:43

    Отличный подарок перед праздниками! Без проблем запустилось на win8.1 с драйвером dgVoodoo, с dx6 картинки не было, а второй монитор начал часто мигать. Много часов было накатано в детстве на PS1… Играть, спустя столько лет, с геймпадом от PS4 — ностальгично и приятно ?


    1. VEG Автор
      11.06.2015 21:48

      Попробуйте ещё драйвер nGlide. Он менее требовательный к ресурсам.


      1. DarkPreacher
        11.06.2015 22:08

        Да, с nGlide тоже запустилось без проблем, субъективно — картинка более плавная, хотя вполне возможно, что это моё воображение.


  1. white_panda
    11.06.2015 23:38

    Прекрасно запустилось под Wine. Вот оно, детство! Спасибо большое.


    1. VEG Автор
      12.06.2015 09:16

      Под Wine (по отзывам) игра лучше всего идёт с thrash-драйвером nGlide. С драйвером DX6 (что идёт по умолчанию) почему-то нет тумана и вместо него испорченный (слишком яркий) горизонт.


  1. MTonly
    12.06.2015 00:10

    Устранены ли периодические рывки оригинальной NFS3 при работе через D3D (равно как и через Glide-wrapper’ы типа nGlide, работающие через тот же D3D)?


    1. VEG Автор
      12.06.2015 09:14

      Зависит от вашей системы и используемого thrash-драйвера (просто попробуйте разные варианты, я специально в комплект включил несколько штук). Потеря кадров может быть из-за того, что игра вынуждена работать на одном ядре. Скорее всего при использовании DX6 или DX8 будет всё плавно, правда в DX8 не поддерживаются некоторые эффекты. По крайней мере у меня на двух системах нет никаких рывков при использовании этих драйверов, а при выводе через nGlide подёргивания есть, и они исчезают при отключении SingleProcAffinity (привязка процесса к одному ядру) — на одном из компьютеров игра не зависает в таком виде примерно в половине случаев, поэтому и смог протестировать.


  1. r0g3r
    12.06.2015 10:17

    Ох, весьма вас благодарю! Вы просто чудо-человек! :)


  1. kreatiff
    12.06.2015 11:13

    Lenovo Yoga 2 11 и Windows 10 — игра пошла на ура с разрешением Full HD через nGlide. Встал на раздачу на рутрекере.


  1. Arilas
    12.06.2015 11:18

    Обожаю Hot Pursuit 2 старый, у него и графика была интересной


  1. VEG Автор
    12.06.2015 13:00
    +1


    Попался на глаза неплохой современный обзор этой игры :)


  1. Nolex
    12.06.2015 13:00

    Спасибо!!! Скачал поиграл на Win7, все работает.
    Никогда не смотрел Credits, а вот сейчас посмотрел. Очень прикольно оформлено + имеются фотки 360° команды разработчиков.

    Одна из игр, втянувшая меня в модостроение) Эх, сколько было радости, когда получилось в этот NFS впихнуть свою машинку из 3dsmax.


  1. xforce
    12.06.2015 13:22

    Вопрос такой, а в этой версии TCP/IP мультиплеер работает? Как только ни пробовал, доходит до появления… вместо empty и потом отваливается назад. Даже если два компьютера в одной сети находятся.


    1. VEG Автор
      12.06.2015 13:30

      Должно работать так же, как и в оригинальной игре (код мультиплеера не изменялся в патче). Знаю что в NFS3/NFS4 есть проблема, когда после выбора типа соединения ничего не происходит, то есть не появляется главный экран игры со списком участников, чатом и т.д. и её обычно фиксят перезагрузкой компьютера. Я сам по сети не играю вообще, поэтому эту часть игры не тестировал, и не знаю как оно там работает.

      Так, для информации, какая у вас ОС? Системный фаервол не мешает игре? Может, нужно какие-то порты открыть для NFS3? :)


      1. xforce
        12.06.2015 13:58

        Win7 на обоих машинах. Судя по всему игра использует 1030 TCP, оно открыто и даже соединение есть. Все возможные фаерволы выключены, на клиенте вообще не видно, что что-то происходит, на хосте только появляется… и потом обратно в empty. Когда-то давно это работало :)


        1. VEG Автор
          15.06.2015 08:21

          Ivan_83 был более настойчивым и выявил, что в оригинальной игре работало, а с патчем — нет. Я уже исправил проблему в последней бете, скоро войдёт в релиз. Сейчас жду ответа автора nGlide по поводу проблем с этим враппером, которые мешают ему стать идеальным вариантом для NFS3. Надеюсь, следующее обновление будет всё же «финальным», то есть готовым к использованию в ближайшие годы, а то надоело уже пользователей мучать еженедельными обновлениями :)


  1. Starnger
    12.06.2015 13:37
    +3

    Ох, вспоминаю, мы с дядей в прятки играли в этой игре в split-screen. Один игрок уходил на пятнадцать минут, а второй за это время искал дырку в карте и прятался в текстурах, после чего второй его искал.


  1. Temych
    12.06.2015 14:19

    Платформа: Windows XP, 7, 8
    Системные требования: Pentium 200 МГц, 32 МБ ОЗУ, 700 мегабайт свободного пространства на диске.

    Ээээ… Вы уверены, что винда XP, 7, 8 пойдет на пне с 32 метрами оперативки? )


    1. VEG Автор
      12.06.2015 14:21

      Ну если вы запустите игру на Windows 98 на компьютере с 32 мегабайтами RAM, то она должна работать. Я старался писать код так, чтобы не ломать совместимость со старыми ОС (хотя я не тестировал патч на старых компьютерах).


      1. Temych
        12.06.2015 14:25
        +1

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


  1. franzose
    12.06.2015 18:53

    Эх, моя самая первая собственная игра на ПК!


  1. Ivan_83
    13.06.2015 21:05
    +1

    Сейчас играю под wine (ехе почти оригинальный), пришлось плясать с бубном запуская принудительно в однопоточном режиме.
    К сожалению идёт только в 640х480 — особенность вайна + нвидии под фрёй: не получается переключать разрешение в полноэкранном режиме (вайн).
    Кроме патченного ехе (ноцд) у меня ещё стоит куча машин дополнительно (как официальные так и любительские), и ещё куча машин которые я поставить не могу тк в игре лимит в 50 машин (там кажется слоты/статический массив). Все дополнительных машин у меня >50 лежит.
    Ещё есть трассы (с деясток), но честно говоря не вставляют, по сравнению с официальными.
    Есть варианты локализации: англ, рус-фаргус и ещё два каких то русских. (хранится дифами: только изменённые файлы).
    Ещё там куча утилит для работы с игрой, но думаю они уже не актуальны.
    Сам я накорябал патчер который умеет:
    — ноцд (не моё, просто посмотрел как другие сделали),
    — патчит функции для доступа к реестру заменяя ALL_ACCESS на READ (до этого приходилось руками давать полные права в реестре на раздел где игра держит свои данные)
    — GetFreeDiskSpace() — раньше игра чекала свободное место и офигивала когда было больше 4гб :)

    Ещё редактор был, который позволял менять места, музыку, демки которые крутятся (там собственно названия в ехе).

    Если надо, могу выложить: архив 180 метров.

    У меня только один вопрос: почему не nfs4? :)


    1. VEG Автор
      13.06.2015 21:26
      +1

      Я кстати вчера вечером нашёл и исправил этот баг, из-за которого игра зависает при работе на многих ядрах. Немножко поспешил со статьёй :) Включу в следующее обновление. Для машин там действительно лимит в 50 штук, по крайней мере под строки названий машин выделено ровно столько айдишников (там в UI для каждой строки есть уникальный ID, и машинам там отведён какой-то диапазон). Если задаться целью, то конечно можно расширить этот лимит, но мне кажется так много машин это уже слегка перебор :) Запишу в список идей. Но там у меня под сотню позиций и так. Например, в игре есть куча куда более неприятного хардкода касательно трасс — нужно немало кода переписать и изменить структуру файлов, чтобы реализовать полноценную возможность добавления трасс (например, 3D модели всех трасс для меню хранятся в одном общем файле, а не в каталоге с трассой). Я думаю сейчас только пофиксить ещё несколько багов и хватит. И так много времени на патч потратил. На пенсии остальным займусь :)

      У меня есть трассы из этого пака: nfs3expansionpack.webs.com/nfs3ep-track-list. Правда, я ничего не пробовал, просто скачал и лежит без дела. В детстве помню качал какую-то трассу с городом и она вроде неплохой была :)

      NFS4 никогда вживую не видел, на скриншотах не нравится интерфейс и боюсь, что если возьмусь за патч этой части, то не удержусь от того, чтобы его не переделать :) NFS5 в детстве не понравилась. А вот NFS3 в душу запала, поэтому и занялся ей. На сколько я знаю, часть из решённых проблем здесь есть и в NFS4/NFS5. Может под настроение как-нибудь исправлю и в них хотя бы основные баги.


      1. VEG Автор
        13.06.2015 21:40

        К слову, в игре был такой же лимит на количество разрешений — им было выделено всего 20 позиций. Я это переделал (новый диапазон, новые буферы подходящих размеров, плюс все соответствующие правки) и теперь игра может видеть до 100 разрешений :)


  1. wdmaster
    15.06.2015 00:03

    Недавно тоже пытался запустить эту игру на Win8. Как-то вроде получилось даже, но графика была, откровенно говоря, остой. Скачал вашу сборку — это потрясающе! Спасибо за проделанную работу и за возможность окунуться в прошлое.


    1. wdmaster
      15.06.2015 00:11

      PS Есть ли у вас такая же сборка игры Nightmare Creatures? ))


  1. Skovarodker
    15.06.2015 19:35

    Может быть, вы посмотрите, как хотя бы баг с определением 3Д-карты в Дальнобойщиках-2 устранить?
    За сборку ОГРОМНОЕ спасибо, это просто очень замечательно!


    1. VEG Автор
      15.06.2015 20:33
      +1

      Увы, но у меня было слишком много ассемблера в последнее время, и ещё несколько игр ждут своего часа… Однако, если вы программист, вы можете попробовать открыть для себя новое направление :) Я сам когда-то начал этим заниматься из-за того, что мне хотелось исправить один небольшой недостаток в Age of Empires II, а потом пошло-поехало. Общий процесс патчинга я описывал здесь.


      1. Skovarodker
        17.06.2015 12:30

        Программистом я себя назвать могу с большим трудом.
        Спасибо за ссылку, постараюсь изучить её, всё же.


    1. zabuldon
      16.06.2015 01:00

      а что за баг такой, если не секрет?


      1. Skovarodker
        17.06.2015 12:26

        На картах Nvidia (на моей GTX670, в частности) игра не запускается, потому что не видит 3D-акселлератора. Много чего делал, но не помогает ничего. Кажется, действительно придется копаться в дебаггере, чтобы как-то это обойти.
        И еще, на некоторых других компьютерах не контроллируется частота кадров — и игра идет, как будто она под ускоряющими сознание веществами.


  1. zerbino
    17.06.2015 14:14

    Автор просто умница. Всегда радовали увлеченные люди. Особенно в программерстве, наверное потому что самому icq и выдержки не хватило самообучиться до такого уровня.


  1. iago
    17.06.2015 17:51

    Эх, помню как я хранил порно в папке Fedata, а сестра все равно нашла…


    1. dewil
      18.06.2015 00:15
      +1

      и в какую папку она его переложила? :)


      1. iago
        18.06.2015 10:47

        Просто сдала родокам, а они показательно вздыхали и отчитывали сынишку, говорили что так нельзя и провели беседу на тему откуда берутся дети… ага, 14-летнему пацану, у которого уже 3 года есть интернет :)


    1. vlivyur
      19.06.2015 16:52
      +1

      Надо было в $Recycler прятать, там мало кто способен найти.


      1. iago
        19.06.2015 17:25
        +1

        Я нашел еще один способ — класть в zip архив и переименовывать его в .dll, чтобы Windows Commander его не открывал как папку :) только долго было разархивировать видос, поэтому туда попадали только избранные, скачанные по дешевому диалапу с 5 до 8 утра, а после школы просматривались :)