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

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

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

SVGA/VESA mode

Тема в разделе "Мастерская", создана пользователем Nil, 31 май 2007.

  1. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.678
    У меня два вопроса - откуда брать игру (то что на сайте подойдет?), и тестировали ли под чистым досом (кроме c.imp'а)?
    dos32a насколько я помню пока неполностью эмулирует dos4gw. А вообще это имеет смысл если как сказал iunnamed он уже в экзешник вделан?
     
  2. iunnamed

    iunnamed

    Хелпер

    Регистрация:
    15 янв 2007
    Сообщения:
    1.202
    2 Dimouse:
    Было бы очень хорошо, если бы ещё кто-нибудь протестировал, а то я от Nil не могу внятного изложения событий добиться.
    Итак:
    1. Насчёт игры на сайте - не знаю. Моя версия (уже не помню где брал) занимает столько же как и на сайте, даже, судя по комментариям, там же установленна была (Install.dat, C:\SKYNET).

    2. Под чистым DOS'ом не тестировал, поэтому тоже было бы это неплохо проверить. skynet2, skynet3 тестировал под DOSBox - вроде, всё как обычно.

    3. Очень хотелось бы, чтобы кто-нибудь тоже проверил игру "всухую", т.е. возможность ей запуститься под Windows XP/2003 без всяких примочек (собственно, для этого патч и делался - у тех у кого DOS, тому этот патч не нужен). Может быть игра только у меня виснет при загрузке, а у всех остальных всё нормально.

    По поводу различия skynet2 / skynet3 - skynet2 это версия пропатченная способом описанным выше. В skynet3 кусок кода начиная с "xor ebx, ebx" до "jnz" включительно был заменён на вот такой:
    Код:
    xor al, al
    mov ecx, 00300h
    cld
    mov edx, 003C7h
    out dx, al
    rep insb
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    Код был взят и переделан отсюда. Если что-то неверно - поправьте меня.


    Что ещё интересно - если в оригинальной версии вместо трёх вызовов:
    Код:
    ins byte ptr es:[edi], dx
    поставить три nop'а, то всё опять будет работать, даже цикл ломать не нужно (jnz -> nop). Т.е. программа встаёт колом на каком-то N+1 вызове этой инструкции (если бы вставала на первом - тогда бы jnz -> nop замена не помогла бы, т.к. инструкция один раз, но выполняется до jnz).

    Пробовал крутить по всякому - даже на цикл loop заменить и прятать ecx (push/pop) в начале/конце цикла - всё-равно виснет.

    Если кто-нибудь знает из-за чего это и как это можно разрулить более грамотно - с удовольствием выслушаю.
     
  3. Nil Любимый цвет — голубой

    Nil

    Регистрация:
    30 апр 2007
    Сообщения:
    1.974
    Я не могу ничего запускать под досом. уж слишком новое железо.
    Под DosBox ничего не меняется.
    Под XP SP2 :
    1) битая палитра(у меня во всех играх под SVGA/VESA такая
    2) Изображение есть только узкой(1/6 экранной ширины) полоской вверху экрана.
    Под DGVESA и SolVBE тёмная палитра
    что не понятно???
     
  4. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.678
    Потестил немного. Под XP просто без всяких свга - виснет на поиске GPU, если skynet3.exe - то работает отлично в VGA. Правда в конце концов подвисло, после довольно долгой беготни по первому уровню.

    Под досбоксом - работает skynet.exe, в "svga" досбоксовском, даже почти не тормозит, но тоже подвисло после того как я из ящика вылез, чтобы через забор пробраться.

    Завтра попробую под досом. Может там будет что-нибудь интересное.
    Еще надо посмотреть полную версию, сравнить экзешники. У меня вроде валялась где-то.

    Добавлено через 32 минуты
    Кстати еще интересное наблюдение - если запускать под XP с UniVBE, то работает и skynet.exe (правда все равно в самой игре частенько виснет), но если пробовать 640x480 - то изображение только в узкой полоске сверху, причем битое.
     
    Последнее редактирование: 6 июн 2007
  5. Nil Любимый цвет — голубой

    Nil

    Регистрация:
    30 апр 2007
    Сообщения:
    1.974
    Dimouse, я говорил то же самое! у меня в 320x200 тоже глюков нет и не было! тут про SVGA/VESA разговор идёт.
     
  6. iunnamed

    iunnamed

    Хелпер

    Регистрация:
    15 янв 2007
    Сообщения:
    1.202
    2 Nil:
    Не горячись. Меня интересовала возможность нормально работать хотя бы в 320x200. В предыдущих постах ты об этом ни словом не обмолвился.


    2 Dimouse:
    skynet2.exe тоже виснет? Кстати, у меня skynet2.exe/skynet3.exe вообще вылетает после "долгой беготни". Так что приходится сохраняться часто.


    У меня в DOSBox все версии skynet подвисают либо вообще вылетают закрывая попутно и сам DOSBox (0.70).


    Было бы очень хорошо.

    Вообще, я так понял, skynet очень нестабильная игра - либо вылетает (под чистым XP), либо ещё может зависать (DOSBox).
     
  7. Nil Любимый цвет — голубой

    Nil

    Регистрация:
    30 апр 2007
    Сообщения:
    1.974
    её ж besheda делала. daggerfall эта игуха превзошла точно. итак, какие есть предложения по починке палитры в SVGA?
     
  8. iunnamed

    iunnamed

    Хелпер

    Регистрация:
    15 янв 2007
    Сообщения:
    1.202
    2 Nil:
    Нужно искать способ обмануть игру (эмулятор/враппер) под Windows.

    Был бы очень благодарен модераторам, если бы отделили котлеты от мух и всё что касается запуска SkyNet под XP (начиная с этого поста и до конца темы + ещё бы мой пост #7 прихватить - он тоже не в тему) вынесли бы в отдельную тему, оставив тут только обсуждение SVGA/VESA. Вот, вполне подходящая тема (в которой SnAIper, судя по ошибкам, с путями в "Install.dat" не справился).

    Кстати, при поиске по слову SkyNet нашлось еще пара тем, которые, ИМХО, можно спокойно удалить: раз, два.
     
  9. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.678
    iunnamed,
    skynet2.exe не пробовал. Завтра попробую. Но третий точно нормально работает.
    У меня минут 10 работал в 640x480, в 320 на 200 не пробовал.
    Поиграл под досом (в рип версию - полную не нашел, хотя помню что у меня лет 10 назад она была). Довольно интересные наблюдения. Игра запускается без univbe вообще и даже запускается в 640 на 480! Но этот режим работает очень нестабильно, иногда вместо изображения показывается черный экран, причем сама игра при этом работает (слышны звуки при нажатии клавиш, стрельба и т.д.), особенно часто это бывает после вызова меню (оно в 320 на 200, поэтому происходит переключение видео-режимов). Сама игра работает очень стабильно, несколько часов играл, прошел до третьего уровня - городского. Правда в конце первого уровня (когда запускаешь ядерную боеголовку и переносишься наружу) поглючилась вся палитра на игровом ланшафте (3д моделей врагов это не коснулось), после чего я перезапустил игру уже с univbe (на всякий случай, хотя проблема очевидно была не в этом).

    Выводы которые как мне кажется можно заключить - игра глючит под XP не из-за своих собственных глюков, а скорее всего либо из-за кривой поддержки доса в XP SP2 (постоянные подвисания), либо из-за новой видеокарты (подвисание при загрузке на тестировании FPU скорее всего из-за этого).
     
  10. Nil Любимый цвет — голубой

    Nil

    Регистрация:
    30 апр 2007
    Сообщения:
    1.974
    Я её в 320x200 прощел в XP до уровня 8. былеты только по повторному вхождению в один и тот жн дом. Как я говорил, у меня в досе проблем больше, чем в XP :) Ладно, со Skynet разобрались, какие игры ЕШЁ у вас глючат с высоким расширением? может, решив более простую задачу, мы научимся лечить и всё остальное?
     
  11. iunnamed

    iunnamed

    Хелпер

    Регистрация:
    15 янв 2007
    Сообщения:
    1.202
    Понятно, спасибо.

    Давайте будем отталкиваться от утверждения, что корректно написанная игра должная работать одинаково как под чистым DOS, так и под эмуляторами/виртуальными машинами. Таких игр очень много - можно взять тот же Duke Nukem 3D, который, к слову сказать, поддерживает разрешения большие нежели 640x480. DN3D замечательно работает и в 640x480 в связке с DGVESA.COM + dgVoodoo (проверено только что). Почему SkyNet так не может? Сколько мне приходилось играть в DN3D в Windows 9x/XP без всяких эмуляторов и он ни разу не вываливался сам по себе и не зависал.
    Я полностью согласен с тем, что в DOS - всё идеально, но не нужно забывать о том, что он совершенно апатично относится к тому, что творят запускаемые там программы, до тех пор, пока они не начали портить само ядро системы или таблицу векторов прерывания. В любом другом случае - можно хоть на голове стоять. Самая частая ошибка - запись в память, которая тебе не принадлежит (выделили 10 Кб, а пишут туда все 100). В DOS - всё будет нормально (при условии, что после конца выделенного блока идёт неиспользуемая память). В виртуальной машине/эмуляторе, при попытке проделать такой трюк, система может справедливо возмутиться и либо повеситься, либо застрелиться. Возможно, это не показательный пример, но я думаю, что общую мысль все уловили.

    Теперь, что касается 640x480. Насколько мне известно, в 320x200 256 цветов можно перейти как минимум ещё одним способом помимо используемого всеми de facto через mov ax,13h / int 10h.
    Я, как любитель, а не профессионал, не даю гарантию, что не существует ещё одного способа это сделать.
    И это только самый простой режим - с 640x480 всё гораздо замороченнее. И какой недокументированный трюк используют программисты из Bethesda я не знаю, потому что если бы они делали "всё как все" - мы имели бы результат как и в DN3D - всё работает, всё прекрасно.

    И, наконец, что касается виртуальных машин и эмуляторов - они все, в основном, рассчитаны на корректную работу программ. В лучшем случае поддерживается пара извращений, которые очень часто используются. Так что, пожалуй, возьму свои слова, высказанные парой постов выше, назад - это не вина виртуальной машины XP. Или, скажем так, частично не её вина, потому что качественного эмулятора DOS, помимо самого DOS, ещё не придумали.


    Мысль правильная. Но среди тех игр, в которые я играл, SkyNet первая такая капризная.
     
  12. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.678
    Попробовал slynet2.exe. Игра запустилась, подвисаний не было (играл минут 10-15), но после того как вышел увидел следующее окошко:
    C:\skynet\Skynet2.exe
    Le processeur NTVDM a recontre une instruction non autorisee.
    CS:e411 IP:00f3 OP:ff 7a 7c 7a 7a Choisissez 'Fermer' pour mettre fin a l'application.
     
    iunnamed нравится это.
  13. iunnamed

    iunnamed

    Хелпер

    Регистрация:
    15 янв 2007
    Сообщения:
    1.202
    Спасибо большое. Видимо, даже единичное применение инструкции "ins byte ptr es:[edi], dx" в виртуальной машине недопустимо.

    Тогда давайте сделаем так: вообще не будем выполнять эту подпрограмму. У меня такое чувство, что вызывается она всего один раз при запуске игры, вроде, и без неё всё работает.

    Пускай при входе в неё будем сразу выходить, ничего не выполняя.
    Удалил "skynet2.exe" и изменил свой пост.

    Dimouse!
    Ты не мог бы проделать описанные там изменения на любой доступной тебе версии SkyNet (skynet2.exe / skynet3.exe) и сообщить о результатах? Заранее благодарю.

    Сразу оговорюсь, что эта подпрограмма отвечает за работу с палитрой, так что её закрытие никак не должно отразиться на стабильности работы игры. Худшее, что может случиться - будут проблемы с палитрой. Не более.
     
  14. TAPAKAH

    TAPAKAH

    Регистрация:
    24 июн 2005
    Сообщения:
    232
    Хи... Вспоминаю юность. Около 10 лет назад написал программу Vesa Test. Вот она. Использут тот же самый int 10h. Работает даже под досбоксом. Но почемуто, не совсем корректо в разрешениях 1024+. Так же не совсем корректно работает в 24-битном цвете. Можно запустить с параметром /?.
     

    Вложения:

    • VESATEST.rar
      Размер файла:
      9,2 КБ
      Просмотров:
      79
    Каинхару, Nil и iunnamed нравится это.
  15. дядя Лёша

    дядя Лёша

    Регистрация:
    27 фев 2006
    Сообщения:
    3.285
    Напомню ещё раз - рип скайнета виснет, куда чаще оригинала из-за возможно кривого отучения от CD. Для начала возьмите оригинал.
    Во вторых, не лишним будет пропатчить до версии 1.01. Чёрт его знает, какие баги он фиксит и фиксит ли, но мысль думаю ясна?

    Вобщем, получите для начала максимально КОРРЕКТНУЮ, НЕПОЛОМАННУЮ, ПОСЛЕДНЮЮ версию игры, а потом уже ройте дальше. Bethesda и в самом деле никогда не славилась системоустойчивыми продуктами.
     
  16. Nil Любимый цвет — голубой

    Nil

    Регистрация:
    30 апр 2007
    Сообщения:
    1.974
    TAPAKAH, твой VESATEST у меня работает просто идеально! У меня везде битая палитра, у тебя всё тип-топ. все разрешения и все режимы работают :) Разработчикам надо руки оторвать.
     
  17. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.678
    Ты имеешь в виду - заменить байт 53 на C3? Заменил во всех трех версиях, все нормально работает в 320x200, кроме skynet2, которая все равно после выхода выдает ошибку. Skynet.exe тоже работает, с палитрой вроде ничего не случилось.

    Вообще логично. Я уже практически скачал полную версию, утром докачается.
     
  18. iunnamed

    iunnamed

    Хелпер

    Регистрация:
    15 янв 2007
    Сообщения:
    1.202
    2 TAPAKAH:
    Здорово сделано. Если бы все так программы писали...


    2 c.imp:
    Думаю, что отучение от CD не должно (ИМХО) как-то особенно влиять на работоспособность. Но, попробуем, спасибо за совет.


    2 Dimouse:
    Спасибо за проверку.
    Насчёт версии skynet2.exe - мистика да и только. Потому как вызов подпрограммы вообще закрыт. Больше я в exe-файле ничего не менял.
    В общем-то, эта версия (skynet2.exe) и не нужна, т.к. 53 на C3 - это то что нужно.

    Можно тебя попросить выложить оригинальный skynet.exe, как у тебя будет полная версия? И ещё было бы неплохо файл skynet.exe после установленного патча 1.01, о котором упоминал c.imp - патч можно взять, например, тут (если после патча skynet.exe не отличается от непропатченной версии (т.е. патч вносит изменения только в ресурсы игры), то тогда файл skynet.exe после патча не нужен).
     
  19. дядя Лёша

    дядя Лёша

    Регистрация:
    27 фев 2006
    Сообщения:
    3.285
    iunnamed, практика показывает, что в некоторых случаях очень даже влияет. Некоторые мнительные, дотошные разработчики процедуру защиты не вставляют особнячком гдето с хорошо обозначенными точками входа, а переплетают код copy-protect непосредственно с движком игры, иногда даже распихивая его участки по файлам ресурсов. Пример - Prehistorik 2 и всем известный кривой взлом этой игры.

    Патч влияет на три файла, в том числе и екзешник. Патч сделан с помощью rtpatch, следовательно ключи работают. Просмотреть список изменяемых файлов можешь: "файл патча.exe -list"
     
    Последнее редактирование: 10 июн 2007
    iunnamed нравится это.
  20. Nil Любимый цвет — голубой

    Nil

    Регистрация:
    30 апр 2007
    Сообщения:
    1.974
    Нет, я думаю, что это не защита от копирования и взлома. Если бы это была защита, то skynet3.exe не работал бы. может, попробуем палитру починить руками, т.е перетасовать цвета? вынести процедуру вида
    mov "Адресс палитры+смещение1" "Цвет1";
    mov "Адресс палитры+смещение2" "Цвет2";
    mov "Адресс палитры+смещение3" "Цвет3";
    и cаll в нее при загрузке сделать?

    Добавлено через 1 минуту
    ака я говорил, у меня нет 16bit инструментария, поэтому я не могу:(
     
    Последнее редактирование: 10 июн 2007
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление