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

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

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

Смена разрешения экрана у игры в Hex

Тема в разделе "Мастерская", создана пользователем Angel Of Nemesis, 13 окт 2020.

  1. Angel Of Nemesis

    Angel Of Nemesis

    Регистрация:
    4 июл 2019
    Сообщения:
    662
    Идея пришла в голову давно, когда в сети нашёл System Shock Portable. Вот там были exe, в которых разрешение экрана 640x480, 800x600 и 1024x768 и мне стало интересно каким образом там изменили разрешение.
    Сличив, получил изменённые байты:
    0B5100 00 FD FF BA [80 02] 00 00 BB [90 01] 00 00 31 C0 E8
    0B5110 13 00 FD FF BA [80 02] 00 00 BB [E0 01] 00 00 31 C0
    ...
    13F088 08 [80 02] [90 01] 08 [80 02] [E0 01] 08 20 03 58 02

    тут нужно воспользоваться конвертером, например в Hex Workshop:
    Выставляем:
    Byte Order: intel, Data Type: unsigned long

    1024= 00 04 768= 00 03
    800= 20 03 600= 58 02
    640= 80 02 480= E0 01
    400= 90 01
    Видим, что изменённые байты это разрешение экрана:
    80 02= 640 90 01= 400
    80 02= 640 E0 01= 480

    И изменённый exe 1024x768 будет выглядеть так:
    0B5100 00 FD FF BA [00 04] 00 00 BB [00 03] 00 00 31 C0 E8
    0B5110 13 00 FD FF BA [00 04] 00 00 BB [00 03] 00 00 31 C0
    ...
    13F088 08 [00 04] [00 03] 08 [00 04] [00 03] 08 20 03 58 02

    Далее начал экспериментировать сам, вот несколько игр, где сменить разрешение оказалось несложным:
    Turok: Dinosaur Hunter
    Video_D3D.dll
    00AC8 50 98 01 10 [20 03] 00 00 C7 05 58 98 01 10 [58 02]
    ...
    01190 0C [20 03] 00 00 75 0F 81 78 08 [58 02] 00 00 75 06

    Unreal Beta
    Unreal.exe
    0C050 68 [58 02] 00 00 68 [20 03] 00 00 8B CE E8 0F CA FF

    Croc: Legend of the Gobbos
    Crocrun.exe
    01228 45 F0 [20 03] 00 00 C7 45 E4 [58 02] 00 00 EB 5E C7

    MageSlayer
    Mageslay.exe
    01A110 02 00 00 74 0C 3D [20 03] 00 00 75 48 F6 C1 02 74
    ...
    01A138 74 0C 3D [58 02] 00 00 75 23F6 C1 02 74 1E 53 E8

    А вот посложнеее:
    Win Descent 2
    DescentW.exe
    4E760 00 4F 00 [80 02] 7C 47 66 81 3D 36 00 4F 00 [E0 01] 7C
    ...
    4E790 [E0 01] 00 00 BA 30 00 4F 00 B8 30 BB 65 00 68 [80 02]
    ...
    4E7A8 64 B8 03 00 EB 36 B9 [E0 01] 00 00 BB [80 02] 00 00
    ...
    4E7C0 D4 68 03 00 6B [E0 01] 00 00 B9 [80 02] 00 00 B8 30
    ...
    6А908 01 00 BA [E0 01] 00 00 B8 [80 02] 00 00 E8 77 A5 01
    ...
    83438 01 00 00 6B [E0 01] 00 00 68 [80 02] 00 00 EB 15 57
    ...
    83C38 00 6B E0 01 00 00 68 [E0 01] 00 00 68 [80 02] 00 00
    ...
    8A3B8 [E0 01] 00 00 A1 98 03 4E 00 68 [80 02] 00 00 8B 10
    ...
    8A568 5E 5A 59 C3 BE [80 02] 00 00 BF [E0 01] 00 00 8A 25
    ...
    8B118 08 8B 76 54 81 FB [80 02] 00 00 75 17 81 F9 [E0 01]
    ...
    C6E78 [80 02][E0 01] 00 00 0C 00 04 00 00 00 80 02 90 01

    Pax Corpus
    Pax.exe
    02110 54 B1 4B 00 3D [80 02] 00 00 75 0C 81 3D 58 B1 4B
    02120 00 [E0 01] 00 00 74 1F 8B 0D 30 CB 5C 00 6A 10 68
    ...
    02898 B1 4B 00 3D [80 02] 00 00 75 0C 81 3D 58 B1 4B 00
    028A8 [E0 01] 00 00 74 1F 8B 0D 30 CB 5C 00 6A 10 68 E0
    ...
    02E38 4B 00 3D [80 02] 00 00 75 0C 81 3D 58 B1 4B 00 [E0
    02E48 01] 00 00 74 1F 8B 0D 30 CB 5C 00 6A 10 68 E0 01
    ...
    0BE90 00 [80 02] 00 00 C7 05 FC BD 4B 00 [E0 01] 00 00 33
    ...
    0EAE8 4C 00 [80 02] 00 00 C7 05 14 27 4C 00 [E0 01] 00 00
    ...
    0F000 [80 02] 00 00 75 1B 81 FB [E0 01] 00 00 75 13 53 57
    ...
    0F120 05 A8 B7 4B 00 [80 02] 00 00 C7 05 Ac B7 4B 00 [EB
    0F130 01] 00 00 C7 05 B0 B7 4B 00 10 00 00 00 E8 BE 40
    ...
    60408 81 FE [80 02] 00 00 0F 87 98 00 00 00 81 79 08 [E0
    60418 01] 99 99 9F 87 8B 00 00 00 83 79 54 10 0F 87 81
    ...
    72ED8 [80 02] 00 00 75 0C 81 3D 58 B1 4B 00 [E0 01] 00 00
    ...
    73320 FF 8B 4C 24 4C B8 [80 02] 00 00 2B C1 99 2B C2 D1
    ...
    73340 [E0 01] 00 00 2B C1 99 2B C2 D1 F8 89 44 24 20 03
    ...
    B6838 [80 02] 00 00 [E0 01] 00 00 00 00 00 00 00 00 00

    Zanzarah: The Hidden Portal
    Zanthp.exe
    1A6930 [00 04] 00 00 [00 03] 00 00
    ...
    1A6950 20 00 00 00 [00 04] 00 00 [00 03] 00 00
    ...
    1A6C88 [00 04] 00 00 [00 03] 00 00
    ...
    1A6CA8 20 00 00 00 [00 04] 00 00 [00 03] 00 00
    ...
    1A6CD8 [00 04] 00 00 [00 03] 00 00
    ...
    1A6CF8 20 00 00 00 [00 04] 00 00 [00 03] 00 00
    В этой игре я поставил 1280x1024 вместо 1024x768
    1280= 00 05
    1024= 00 04

    Outcast (Незаконченный/Неправильный патч)
    Loader.exe
    Игра запускается в разрешении 1024х768, но с чёрными рамками.
    00E8E8 17 3D [00 02] 00 00 75 15 81 79 08 [80 01] 00 00 75
    ...
    00E998 41 0C 3D [00 02] 00 00 76 28 8B 51 08 81 FA [80 01]
    ...
    012460 0F BD [00 02] 00 00 C7 44 24 24 [80 01] 00 00 EB 0D
    ...
    0DEF40 01 00 00 F6 [00 02] 74 54 8B 8B 88 01 00 00 8B 98
    0DEF50 84 01 00 00 8B 83 [80 01] 00 00 0B CA 0B C8 74 3C
    ...
    12D2A8 [00 02][80 01] 00 00 80 02 E0 01 00 00 04 00 00 00

    Игра использует разрешение 512x384
    512= 00 02
    384= 80 01
     
    Последнее редактирование: 24 окт 2020
    ZaRR, GreenEyesMan, AndyFox и 2 другим нравится это.
  2.  
  3. s0nought I click buttons

    s0nought

    Хелпер

    Регистрация:
    16 ноя 2015
    Сообщения:
    529
    Offtop
    Интересно, спасибо! Добавил в закладки :)
     
  4. ThePafic

    ThePafic

    Регистрация:
    20 мар 2010
    Сообщения:
    271
    Да, всё здорово, сам страдал, пока не нашел людей, которые занимаются хаками разрешений годами: https://www.wsgf.org/
     
    Ygol и AndyFox нравится это.
  5. netsky2004

    netsky2004

    Регистрация:
    31 янв 2007
    Сообщения:
    1.434
    Для современных мониторов максимальное разрешение старых игр 1440х1080 какой для него код чтобы заменить 640х480? Картинка то размывается на современных ЖК при низких разрешениях
     
  6. Angel Of Nemesis

    Angel Of Nemesis

    Регистрация:
    4 июл 2019
    Сообщения:
    662
    @netsky2004, В какой игре нужно поменять разрешение?
     
  7. netsky2004

    netsky2004

    Регистрация:
    31 янв 2007
    Сообщения:
    1.434
    @Angel Of Nemesis, в самом старом Half-Life - Day One - когда еще его перед выодом рекламировали и бесплатно раздавали его первые эпизоды
     
  8. Angel Of Nemesis

    Angel Of Nemesis

    Регистрация:
    4 июл 2019
    Сообщения:
    662
    @netsky2004, в этой версии разрешение и битность цветовой гаммы прописывается в реестре по пути [HKEY_CURRENT_USER\Software\Valve\Half-Life\Settings]
    "SelectedProfile"="Player"
    "LauncherBPP"=dword:00000010
    "LauncherWidth"=dword:00000280
    "LauncherHeight"=dword:000001e0
    "EngineStartMap"="c0a0"
    "EngineTraining"="t0a0"
    "EngineGLDriver"="Default"
    "EngineD3DDevice"="Default"
    "EngineType"=dword:00000002
    "EngineMode"=dword:00000004
    "EngineModeW"=dword:00000500
    "EngineModeH"=dword:000003c0
    "EngineModeBPP"=dword:00000010
    "EngineModeWindowed"=dword:00000000
    "EngineModeCaptured"=dword:00000001

    Теперь про ключи:
    "LauncherBPP"=dword:00000010 - 16 битный цвет в меню (меняем на 20)
    "EngineModeBPP"=dword:00000010 - 16 битный цвет в игре. (меняем на 20)

    "LauncherWidth"=dword:00000280 - байты в обратной последовательности: 80 02 = 640 (меняем на 07 80 = 1920)
    "EngineModeW"=dword:00000500 - байты в обратной последовательности: 00 05 = 1280 (меняем на 07 80 = 1920)

    "LauncherHeight"=dword:000001e0 - байты в обратной последовательности: e0 01 = 480 (меняем на 04 38 = 1080)
    "EngineModeH"=dword:000003c0 - байты в обратной последовательности: с0 03 = 960 (меняем на 04 38 = 1080)

    Пробуй, у меня что-то косячит игра после такой модификации.

    Как вариант, можно скачать 3dfx MiniGL 3dfx MiniGL Files версии 1.47 кинуть в папку gldrv, установить nGlide и выбрать там разрешение.
    ---
    PS
    Не, похоже движок не поддерживает такие разрешения, у меня nGlide не смог справиться (разрешение ставил по экрану), по краям чёрные области и максимально возможное разрешение - 1280x960.
     
    Последнее редактирование: 26 ноя 2020
    AndyFox нравится это.
  9. s0nought I click buttons

    s0nought

    Хелпер

    Регистрация:
    16 ноя 2015
    Сообщения:
    529
    Offtop

    И в поздней - тоже. Много лет назад указывал на эти ключи одному человеку, когда у него в игре залочились настройки видео (так и не поняли как именно это произошло :))
     
  10. Angel Of Nemesis

    Angel Of Nemesis

    Регистрация:
    4 июл 2019
    Сообщения:
    662
    @netsky2004, Ну в Uplink получилось 32 bit Hi-resolution завести с помощью nGlide в режиме 3DFX minigl, я думаю, что и Day One тоже так же.
     
  11. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    129
    Да, круто уметь ковыряться на низком уровне в ресурсах игр. Сам когда-то таким баловался. Сейчас в этом смысла особого не вижу, потому что под все старые игры есть порты/фиксы. Ну, а нормальные игры, хранящие настройки в ini-файлах, вообще не нуждаются в низкоуровневом ковырянии (сделанные на Unreal Engine, в частности). Кроме того, как ответил ThePafic, любой из возможных путей уже кто-то прошёл до нас и, возможно, лучше. :)
     
  12. Angel Of Nemesis

    Angel Of Nemesis

    Регистрация:
    4 июл 2019
    Сообщения:
    662
    MageSlayer
    Версии 1.0
    смещение: 0x1A2AF старое значение: 80 02 новое: 00 04
    смещение: 0x1A2D4 старое значение: E0 01 новое: 00 03
    Даст 1024x768 вместо 800x600, можно любое другое выставить по этим адресам.
    Например 1920x1080 будет 80 07 и 38 04 (в игре не проверял).
     
  13. SamVick

    SamVick

    Регистрация:
    6 мар 2023
    Сообщения:
    4
    Уважаемый! Могу попросить Вас помочь мне с разрешением в игре Hot Rod: American Street Drag?
    По дефолту варианты разрешений там: 800х600х16, 1024х768х16, 800х600х32 и 1024х768х32
    Хотелось бы чего-то вроде (1920х1080, ну или 1600х900)

    exe-шник прикрепил (пароль: 432)
    Если понадобятся какие-то другие библиотеки - могу дозалить.
    ОЧЕНЬ прошу! Всю голову уже себе сломал :(
     

    Вложения:

    • HotRod.7z
      Размер файла:
      179,2 КБ
      Просмотров:
      11
    Последнее редактирование: 6 мар 2023
  14. Angel Of Nemesis

    Angel Of Nemesis

    Регистрация:
    4 июл 2019
    Сообщения:
    662
    SamVick нравится это.
  15. SamVick

    SamVick

    Регистрация:
    6 мар 2023
    Сообщения:
    4
    Да! Спасибо огромное за эту чудесную программу! Я о такой и не слышал даже! :clapping:
    Но, к сожалению, это не решает моей проблемы. Возможно я некорректно задал вопрос...
    Мне нужно правильное соотношение сторон при высоком разрешении. Чтобы картинка не была "Stretch" или как говорится в простонародье "без чёрных полос по бокам".
    ...А Voodoo просто растягивает установленное в меню разрешение на весь экран.

    Пускай даже если 2D текстуры игрового меню будут тянутся, но если 3D картинка будет сохранять соотношение (при увеличенном разрешении) - то уже можно будет сказать, что увидел свет WideScreen-Patch для этой игры.
    В Voodoo я выбрал: Stretched (keep Aspect Ratio) - не помогло. Я уже пробовал и HEX-ить, и Cheat Engine, и ArtMoney, и конфиги колупал - в бестолку :(
    Посему меня и заинтересовала эта тема здесь. Как бы так ковырнуть .exe-шник или исполняемые библиотеки и найти "значения резолюции" для последующего изменения их значений и создания своего рода Loader-а для их игры?
     
    Последнее редактирование: 6 мар 2023
  16. Angel Of Nemesis

    Angel Of Nemesis

    Регистрация:
    4 июл 2019
    Сообщения:
    662
    Разрешение экрана и формат экрана - это разные значения. Если ковырнуть разрешение, формат не изменится.
    Форматы экрана кодируются следующим образом:
    5:4 --- 0000A03F
    25:16 --- 0000C83F
    16:10 --- CDCCCC3F
    15:9 --- 5555D53F
    16:9 --- 398EE33F
    ~21:9 --- 26B41740
    32:9 --- 398E6340

    Попробуйте поискать значение 5:4 и заменить на значение 16:9.
     
    AndyFox нравится это.
  17. SamVick

    SamVick

    Регистрация:
    6 мар 2023
    Сообщения:
    4
    Нашёл значение, заменил... Эффекта не возымело :(
    скрины
    И почему кстати 5:4? :blink: Может надо поискать 4:3?
    Под форматом Вы подразумеваете соотношение сторон? Кстати, судя по всему Вуду не меняет разрешение, а всего лишь "стрейчит", растягивает изображение в рамках экрана.
    Утверждать не буду. Это видно исключительно визуально, "на глаз", т.к. пиксельных точек не добавляется. Качество картинки как было убогим, так и остаётся.
    Дополню...
    4:3 1.33 AB AA AA 3F -
    это значение не находит :(
    Пробую дальше изменить разрешение "ручками" в соответствии с таблицей
    Common HEX Values:
    1024 0x400 0004
    768 0x300 0003

    1920 0x780 8007
    1080 0x438 3804

    Заменил 00 04 на 80 07, 00 03 на 38 04 непосредственно в самом .exe-шнике, а также в файлах SETTINGS.CFG, ProfileMaster.cfg и gameoptions.ini.
    В атрибутах файлов (после внесения изменений) отметил "Только чтение".

    Результат = 0. Игра запускается без всяких ошибок, но разрешение остаётся прежним.
     
    Последнее редактирование: 9 мар 2023
  18. SamVick

    SamVick

    Регистрация:
    6 мар 2023
    Сообщения:
    4
  19. rusty_dragon

    rusty_dragon

    Регистрация:
    17 ноя 2007
    Сообщения:
    5.557
    Offtop
    Для Uplink есть вот такой мод, если что.
    Uplink OS mod
     
  20. Angel Of Nemesis

    Angel Of Nemesis

    Регистрация:
    4 июл 2019
    Сообщения:
    662
    @rusty_dragon, речь про Half-Life: Uplink.
    @SamVick, Я просмотрел exe, там разрешение экрана кодируется не в явном виде.
    Так что нужно искать именно эмулятор, способный перехватить и выставить нужное. Но судя по тому, что dgVoodoo2 не справляется с этим, не факт, что у другого это выйдет. Советую написать разработчику dgVoodoo2.
    Что касается соотношения сторон, я особо не вникаю в эту тему, т.к. у меня монитор может переключаться на необходиные соотношения, есть кнопка переключения и в классическом режиме просто по бокам чёрные прямоугольники.
    Если хочется дальше копать эту тему, то рекомендую почитать форум https://www.wsgf.org/ или обратиться за помощью к ним.
     
    SamVick нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление