1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Dark Rift

Тема в разделе "Установка и запуск игр", создана пользователем bosmer, 19 янв 2014.

  1. bosmer

    bosmer

    Регистрация:
    23 фев 2009
    Сообщения:
    814
    Игра нормально запускается при цветопередаче в 16 bit и совместимости win95,но текстуры выглядят вот так [​IMG].C подсказки Alexxul'a пробовал отключать "ускорение DirectDraw" - текстуры в норме но скорость игры значительно увеличивается,а при отключении "ускорение Direct3D" наоборот уменьшается в два раза.Пробовал "отключение текстур AGP" -ничего не меняется,текстуры как на скриншоте.Как выпрямить текстуры и чтобы при этом скорость игры осталась нормальной?
     
  2.  
  3. bosmer

    bosmer

    Регистрация:
    23 фев 2009
    Сообщения:
    814
    Я вот тут даже видео умудрился сделать,играя в замедленном темпе.А затем ускорив его в мувимейкере.Получилось что то вроде шоу-шепелявых.Но в таком виде вроде как не стоит отсылать на премодерацию? Что же всё таки с игрой то делать?Есть какой нибудь способ исправить?
    PC game - Dark Rift.:worthy:
     
  4. wastler

    wastler

    Регистрация:
    25 фев 2012
    Сообщения:
    937
    Здравствуйте!

    Игра 1997 года. Может на Windows 98 пойдёт нормально?

    Должна пойти.
     
  5. bosmer

    bosmer

    Регистрация:
    23 фев 2009
    Сообщения:
    814
    Изначально игра была выпущена на Nintendo 64,и только потом портирована на PC.
    Может в этом дело? Что то напортачили когда портировали?
     
  6. wastler

    wastler

    Регистрация:
    25 фев 2012
    Сообщения:
    937
    Да, вероятно.
    Лучше бы делали сразу несколько версий: для консолей и компьютеров.
     
  7. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Драйверы? DirectX? На 64-разрядной Windows 7 и Radeon 7750 работает нормально.
     
    Val07og нравится это.
  8. xttx

    xttx

    Регистрация:
    12 дек 2015
    Сообщения:
    25
    Прошу прощения, за воскрешение темы, но есть ли какая ни будь возможность запустить это под win 10?
    Десятка не поддерживает 16и битный цвет, и я упираюсь в "This program requires 16 bit colors to run".
    - Comptibility reduced color mode - то же самое сообщение.
    - DxWnd, со всеми возможными галочками, имеющими отношение к 16и битному цвету - то же самое.
    - WineD3d на хосте - то же самое.
    - WineD3d в виртуалке (xp x32) - не находит функцию в gdi32.dll
    - Wine в виртуалке (kubuntu) - вообще ничего не делает, никаких сообщений, просто закрывается.
    - В PCem и dosbox - ошибка с надписью "dr?" которую невозможно закрыть (потому что voodoo, а ему надо d3d в оконном режиме, и вудушки этого не умеют - в ридми написано).
     
  9. kreol Старший офицер Чёрной Гвардии

    kreol

    Администратор

    Регистрация:
    2 июл 2007
    Сообщения:
    115.067
    Не нужно извиняться. Нет ни единой причины для этого.

    DgVoodoo 2 не пробовали? Если не помогает даже PCem - то это, боюсь, единственный шанс. Если и он не поможет - то остаётся предложить только сменить ОС.

    Игра весьма капризна, поэтому запуск её на 10 наверняка крайне проблематичен.
     
  10. xttx

    xttx

    Регистрация:
    12 дек 2015
    Сообщения:
    25
    Спасибо, но dgVoodoo не помог :(

    В апи мониторе видно, что GetDeviceCaps с аргументом BITSPIXEL возвращает 0x20 (32 в десятичной).
    apreview.ibb.co_ci2cmQ_1a.jpg
    Если в свойствах файла поставить флаг совместимости "использовать 16бит цвет" - абсолютно ничего не меняется! Какого лешего??!!! Этот флаг вообще что ни будь полезное делает? Или как это вообще работает?

    Далее, открыл его в дебагере, и нашёл момент, в который он перескакивает на ошибку:
    aimage.ibb.co_mChz0k_2a.jpg
    Я очень поверхностно знаком с дебаггингом, и вижу только что в этой строчке что-то проверяется, и если получается некий результат - переход на окно с ошибкой. Не уверен даже что проверяется именно битность цвета, т.к. проверяться может миллион вещей, но всё же... Такого адреса (755DC2D3) в файле, естественно нет. Как найти нужный адрес в самом файле, что бы попробовать убрать этот переход?
     
  11. xttx

    xttx

    Регистрация:
    12 дек 2015
    Сообщения:
    25
    Проверку на 16и битный цвет я победил (прикладываю екзешник, если кому-то нужен). Только этого оказалось мало... Теперь можно видеть сообщение:
    "The operation requires the application to have exclusive mode, but the application does not have exclusive mode."

    В интернетах пишут, что это связано с некорректной инициализацией direct3d. На directx 3 это работало, а сейчас - вот это сообщение. DgVoodoo тоже не помогает (хотя уж тут, вроде бы должен был).

    Может кто ни будь знает, как это можно побороть? :unknw:
     

    Вложения:

    • dr.7z
      Размер файла:
      175,5 КБ
      Просмотров:
      30
  12. beha_r

    beha_r

    Хелпер

    Регистрация:
    29 янв 2009
    Сообщения:
    1.203
    Запуск игры под PCem:
    - В PCem должна быть установлена видеокарта Voodoo или Voodoo 2
    - Установить игру на жесткий диск, ни в коем случае не выбирать запуск игры с CD
    - В настройках установить 16 битный цвет
    - Если видеокарта Voodoo, в ее настройках нужно снять галочку напротив "Enable Direct3D Acceleration"
    - Играть

    На моей машине производительность игры под PCem оставляет желать лучшего.


    Данная игра жестко зависит от производительности процессора, в коде отсутствуют вызовы Sleep(), timeGetTime(), GetTickCount(), QueryPerformanceFrequency(), QueryPerformanceCounter(), rdtsc. Функцию IDirectDrawSurface::Flip() игра также не использует. Ограничение кадров с помощью драйверов \ DXWnd \ ddwrapper естественно не работает. Даже не знаю как такое по-нормальному исправить.

    На моей машине с Widows 98 игра летает раз так в 5 быстрее. На машине с windows 7 - в 15 раз быстрее (выдает 600-1600 fps), также напрочь отсутствует фон, видны только бойцы.
     
    Последнее редактирование: 20 май 2017
    Gerhalt, kreol и Alexxul нравится это.
  13. xttx

    xttx

    Регистрация:
    12 дек 2015
    Сообщения:
    25
    Не вышло...
    - В PCem пишет два раза "No Hardware Blitter" затём вылетает сам PCem. Что с включённым ускорением, что с выключенным. Пробовал вообще voodoo вынимать - тоже самое.
    - В XP x32 (VMware), теперь показывает меню, затем картинку "кто-то vs кто-то", затем вылетает.
    - В хосте (win10) не знаю как отключить ускорение, но если оно так завязано на проц, это всё равно будет неиграбельно.
    Да и в VMware это тоже будет слишком быстро.
    В PCem, попробую винду переустановить, наверное запущу, но думаю, когда весь рендер ляжет на проц, играть, как минимум, будет не комфортно. Да и вообще, без 3d не интересно :)

    Капризная, однако... Слишком высокую скорость, может быть можно было бы вылечить, воткнув sleep() после вывода кадра на экран (чем там оно его выводит без флипа? Не сразу же на экран?). Я почти не знаю асм, но внешним хуком может быть и смог бы это сделать, и считать там сколько нужно спать, что бы держать постоянный фреймрейт.
    То, что фона нет - это плохо. С dgVoodoo его тоже нет?

    Добавлено:
    Сейчас ещё попробовал на хосте подсунуть ей dgVoodoo с картой без 3д ускорения, и получил то же самое сообщение про "exclusive mode".
     
    Последнее редактирование: 20 май 2017
  14. beha_r

    beha_r

    Хелпер

    Регистрация:
    29 янв 2009
    Сообщения:
    1.203
    А драйвера на Vodoo какие стоят? Я запускал на 3.01.00 для Voodoo и 3.02.02 для Voodoo 2. На всякий случай добавлю свой конфиг:
    pcem.cfg

    Тоже сижу над этим голову ломаю. В Api Monitor'е видно только вызовы Blt, BltFast, GetBltStatus. Не выходит запустить игру в окне, чтобы побегать по ней с отладчиком. DXWnd тоже помогать не хочет.

    С врапперами она не дружит - ошибками сыпет. Только с DXWnd, запукается, но такое ощущение, что он ей бесполезен, его опции мало на что влияют. В окне, опять же, не стартует.
    --- добавлено 20 май 2017, предыдущее сообщение размещено: 20 май 2017 ---
    В общем, получилось походить с отладчиком. Странное приложение, окно не создает, хотя вызов CreateWindowExA в коде присутствует, но не используется. Запустил так:
    Код:
    Проверка глубины цвета:
    0043029F   .  83F8 10       CMP EAX,10
    004302A2   .  73 16         JAE SHORT 004302BA
    
    Убрал флаг DDSCL_FULLSCREEN для IDirectDraw::SetCooperativeLevel ( NULL, DDSCL_FULLSCREEN | DDSCL_NORMAL )
    00432B5E      6A 08         PUSH 8
    
    Изменил параметры IDirectDraw::SetDisplayMode ( 0x00000280, 0x000001e0, 0x00000010 ) на параметры моего рабочего стола.
    00432BC8      6A 20         PUSH 20
    00432BCA      68 38040000   PUSH 438
    00432BCF      68 80070000   PUSH 780
    
    Изображение присутствует в верхнем левом углу монитора. Что интересно, игра вполне себя нормально работает с 32 цветом. Смена глубины цвета позволила мне запустить игру под win98 на VMware. Скорость там оказалась как раз той что надо, но беда с клавиатурой...

    По адресу 0x00431110 находится главный цикл, Sleep можно встроить прямо в него. За смену кадра отвечает IDirectDrawSurface::Blt по адресу 0x00434868.
     
    Последнее редактирование: 20 май 2017
  15. xttx

    xttx

    Регистрация:
    12 дек 2015
    Сообщения:
    25
    Кажется оно меня ненавидит...
    - PCem, с вашим конфигом (версии драйверов такие же, Windows 95 OSR 2.ver.4.00.950 B.Eng, directx 3, с его родного диска, но dx7a тоже пробовал) - проигралось видео, в верхней левой четверти экрана и застряло на последнем кадре. Но сам эмулятор работал, и тыкая на кнопки, я слышал звуки, т.е. оно работало, но картинка рисовалась на втором, вудушном экране, который эмулятор, почему-то решил мне не показывать. Тогда я вытащил вуду, и всё заработало. С 0.001fps. Т.е таймер, на экране выбора персонажа одну секунду мотал где-то пару минут реального времени, и я физически видел, как он рисовался обновляясь, при стабильной скорости эмуляции 100-101%.
    - Потом я добавил модификации выше, и попробовал на хосте. И, вот, ничего не поменялось. Всё тоже "application does not have exclusive mode".
    Я, на всякий случай, приложу екзешник. Если я нигде не напортачил (а я, вообще-то мог), то может для кого то он будет полезным, раз на win7 оно идёт в таком виде...

    Но и это ещё не всё: на хосте оно запускается, только когда само того захочет. То есть иногда оно показывает мне свои ошибки и крешится, а иногда не делает ничего. Совсем. Процесс не висит, если и запускается - то на долю секунды, ни рестарт системы ни переустановка игры не помогают. APIMonitor - девственно чист. А потом, спустя час, оно опять начинает работать. Самое странное, что в WinXP, в VMware ведёт себя точно так же! Что оригинальный екзешник, что можифицированный - один чёрт.

    Значит, видимо, не судьба... слишком уж оно кривое, для современных систем. :(
    Огромное спасибо за помощь!!!
     

    Вложения:

    • dr.v2.7z
      Размер файла:
      175,4 КБ
      Просмотров:
      37
  16. beha_r

    beha_r

    Хелпер

    Регистрация:
    29 янв 2009
    Сообщения:
    1.203
    Это патчи для возможности отладить игру в процессе ее работы. Для обычног запуска на семерке необходим только первый и можно еще оставить смену глубины цвета с 16 на 32 бита (00432BC8 6A 20 PUSH 20). А вот менять разрешение экрана на 1920x1080 для обычных пользователей уж точно не нужно, не у всех такой крупный монитор, да и выглядит это некрасиво.

    Не должно быть окон с заголовками начинающимися с "Dark Rift" без кавычек. Как только установил игру столкнулся с этим. Это проверка на запущенные экземпляры в игре такая. К примеру активная вкладка этой темы в браузере не дает ей запуститься.

    Похоже фон не отрисовывается из-за d3dim.dll. Пробовал подкидывать в папку с игрой от разных NT версий Windows - не помогает.
     
    Последнее редактирование: 20 май 2017
  17. xttx

    xttx

    Регистрация:
    12 дек 2015
    Сообщения:
    25
    Охренеть! У меня папка называется "Dark Rift", и соответственно заголовок эксплорера. Запустил через win+r - заработало!!
    Фоны вроде на месте.
    apreview.ibb.co_fdxQQv_screen.jpg
    Судя по пикселявости d3d ускорение не активно, что странно. Или это я с глайдом к билинейке привык, а тут, типа, так и должно быть?

    Екзешник выше я заменю сегодня, чуть позже. Уберу из него SetDisplayMode, а если пойму как сопоставлять адреса в асм с оффсетом в самом файле (я реально, совсем нуб ассемблере) - можно было бы сделать менялку разрешений. :) (немного уже начинает бесить, все иконки по местам расставлять после этого 640х480...)
    Со скоростью тоже попробую решить хуком IDirectDrawSurface::Blt.
    Ещё раз, огромное спасибо за помощь!
     
    kreol нравится это.
  18. beha_r

    beha_r

    Хелпер

    Регистрация:
    29 янв 2009
    Сообщения:
    1.203
    Вот оно даже как. Я попался на том, что сохранил образ в папке с таким названием, устанавливал игру в папку по умолчанию - "DarkRift". Наверное стоит прибить эту проверку, пусть лучше будет случайно запущено больше одного экземпляра игры, чем получить такое... По адресу 0x00430092 нужно условный переход заменить на безусловный.

    Повезло, у меня их нет.

    У меня на реальной машине с win98 выглядит примерно также, что на Voodoo 2 SLI, что на GeForce 4 MX440.

    Хукать глобально IDirectDrawSurface::Blt не стоит, т.к. за один кадр эта функция вызывается не один раз, разве только адрес возврата проверять (нужный нам равен 0x0043486 и вызывается только раз за кадр). Но лучше, наверное, в главный цикл Sleep воткнуть, например после вызова функции смены кадра (0x00431335).

    Не выйдет, размер отрисованного поля всегда равен 640x480, картинка не растягивается на весь экран.

    Трудновато объяснить, нужно знать формат PE файлов. Те адреса, что я указывал, VA - адреса относительно начала виртуальной памяти, еще есть RVA - адреса относительно того места, куда был загружен модуль. VA = RVA + ImageBase (для exe файлов ImageBase почти всегда равен 0x0040000). Но физический адрес в файле не обязательно равен RVA. Нужно смотреть поля Virtual Offset и Raw Offset в секции. К примеру, для этой этой игры, ImageBase = 0x00400000, Virtual Offset = 00001000, а Raw Offset = 0x00000400, тогда адрес (VA) 0x00430092 будет соответствовать оффсету (0x00430092 - 0x00400000 - (00001000 - 0x00000400)) т.е. равен 0x0002F492. ImageBase, Virtual Offset секции, Raw Offset секции, и еще много чего можно посмотреть (и отредактировать) в PE Tools, CFF Explorer и других подобных программах. На тему формата PE есть вот такая статья.
     
    Последнее редактирование: 20 май 2017
    Gerhalt и kreol нравится это.
  19. kreol Старший офицер Чёрной Гвардии

    kreol

    Администратор

    Регистрация:
    2 июл 2007
    Сообщения:
    115.067
    @beha_r, может быть, стоит хотя бы такой вариант патча выложить на сайте? Или есть надежда, что получится его улучшить?
     
  20. xttx

    xttx

    Регистрация:
    12 дек 2015
    Сообщения:
    25
    Ну, я как раз и планировал в хуке скейлить картинку. Вызывается несколько раз, да, ну и что? Мощностей хватит. Естественно, буду проверять, что в данный момент происходит. Я поэкспериментирую, может и получится. С видео только не выйдет, т.к. оно рисуется маленькими прямоугольничками...

    Про адреса - спасибо за информацию, это полезно знать. Ну а патчер я сделал уже, работает по классическому принципу - search pattern. Только он бесполезен, т.к. при высоком разрешении картинка просто будет в углу.

    Если вдруг захотите, то вот, пропатченый по методу beha_r, с разрешением 640х480х32. Только поиграть не получится - слишком быстро.
     

    Вложения:

    • dr.v3.7z
      Размер файла:
      175,7 КБ
      Просмотров:
      31
    Последнее редактирование: 20 май 2017
  21. kreol Старший офицер Чёрной Гвардии

    kreol

    Администратор

    Регистрация:
    2 июл 2007
    Сообщения:
    115.067
    Это плохо, да.

    @beha_r, к чему именно привязана скорость игры? Есть для неё какие-нибудь пороги?
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление