Практическая некромантия на примере игры Gulf War: Operation Desert Hammer (1999г)

от автора

Добрый всем!
Всё началось со шкафа со старыми играми. Лет 10 назад взял у друга игру, положил её в тумбочку и вспомнил о ней через 10 лет. Заинтересовался, что за игра такая, мне неизвестная. Оказалось что это танковая аркада 1999 года, от фирмы 3DO, о похождениях супер-американского танка во время войны в заливе.



Гугление и ютубирование показало, что об игре известно мало. Один обзор на нашем сайте и один на зарубежном.
Требования из readme.txt
Windows 95/98, Pentium 166 / 32M Ram / 150M Hard Drive space / 4x CD-ROM / Direct X 6.1 / Microsoft Compatible Mouse

Попробовал поставить её под Windows 7 x86/x64 — черный экран, вылет и тишина. Под XP SP3 тоже самое. Игры с совместимостью не помогли.
Поиграв в виртуалками решил что там всё уныло. DOSBOX svn daum с эмулятором Glide и WIndows98SE IF под ней были очень и очень печальны. И я был печален. Потратил в итоге неделю на различные настройки. Итогом удалось один раз на секунд 10 запустить игру в Glide режиме, успел записать видео и в очередной раз dosbox падает. Софт режим удалось запустить через VirtualPC 2007 и Windows 98. С мышкой были какие-то проблемы, было неиграбельно, хотелось из спортивного интереса Glide/D3D.

Решил попробовать разобраться, вдруг не всё так плохо и это нежелание работать на NT системах вызвано только человеческим фактором. Мне уже были известны два случая подобного безобразия — это стратегия Myth2 с надписью при запуске «дай минимум 32 МБ озу», но прекрасно запустившийся в итоге на 16 МБ озу и Descent Freespace с той же проблемой.

Был сделан патч на запуск (ехе взломаный от изначальной защиты, пиратский), выставлен режим совместимости с «Windows 98/Windows ME» и игра запустилась на Win7 x86/x64, предварительно выдав надпись “Gulf War is only designed for Win95. Not NT.”

image

В software режиме, можно изменять дальность прорисовки в более широких пределах (20-600), чем в настройках (70-300).
При дальности прорисовки 20 не видно вообще ничего, врагов видно буквально подъехав к ним на пару метров, чистый хардкор и Silent Hill, а при максимальной дальности становится видно сразу всю карту )))
Файл \settings\settings.cfg
смещение 0x0C и 0x0D, младший байт идет первый по адресу 0x0C.

Минимум для софт режиме — 20. Получается чистый Silent Hill.
image

Максимум для софт режиме — 600.
image

Превышение значения дальности рвет все шаблоны. Glide — 350
image

Direct3D с бустом до 350.
image

И Direct3D — 250 максимально возможное из настроек игры.
image

Затем начал играть с разрешением:
d3d в 1024×768, HUD остался в 640×480

файл d3d_r.exe
было
0048A5F4 BE 80020000 MOV ESI,280 (640)
0048A5F9 BA E0010000 MOV EDX,1E0 (480)

патчим на
0048A5F4 BE 00040000 MOV ESI,400 (1024)
0048A5F9 BA 00030000 MOV EDX,300 (768)

image

Некоторые файлы пожаты простейшим RLE сжатием, файл поделен на группы по 2 байта, первый — количество повторений второго байта. В таблице файлов указаны 2 размера, сжатое и распакованное.

Исходники и путь на форуме old-games.ru

ссылка на оригинал статьи http://habrahabr.ru/post/170603/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *