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

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

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

Soft Эмуляция CGA-палитры на PCI- и AGP-видеокартах

Тема в разделе "Hard & Soft", создана пользователем Revolter, 23 окт 2024.

  1. Revolter

    Revolter

    Регистрация:
    12 июл 2006
    Сообщения:
    2.896
    Известно, что обратная совместимость VGA-видеокарт для шины PCI и AGP со стандартом CGA оставляет желать лучшего: я говорю даже не об утраченной поддежке всевозможных эффектов реальной железки, а просто о выброшенных за борт наиболее приглядных палитрах из стандартного набора (на рисунке это пара Mode 5):

    upload_2024-10-22_23-41-36.png

    В таких играх, как Popcorn (1988, DOS) и Grand Prix Circuit (1988, DOS) в CGA-режиме на любых таких видеокартах (а также в DOSBox'е с настройкой по-умолчанию "machine=svga_s3" вместо правильной "machine=cga") можно наблюдать ядовито-фиолетовый цвет вместо задуманного разработчиками красного:

    [​IMG] awww.myabandonware.com_media_screenshots_p_popcorn_fr_1u3_popcorn_fr_1.gif
    awww.myabandonware.com_media_screenshots_g_grand_prix_circuit_ga_grand_prix_circuit_1.png [​IMG]

    Но это ещё цветочки, потому что чаще всего можно наблюдать даже и близко не подходящую палитру - как, например, в играх BurgerTime (1983, DOS) и Zombi (1990, DOS) :

    acdn.mobygames.com_screenshots_1470940_burgertime_pc_booter_le754dc96fe647c3fa11a9861957cf732e.png acdn.mobygames.com_screenshots_7260582_burgertime_pc_booter_level_1.png
    z1.png z2.png

    Решением этой проблемы была бы принудительная смена выводимых на экран цветов программно, и такая программулина действительно существует - CHGCOLOR 1988 года от некоего Джона Толедо, которая шикарно работает с играми, судя по всему, не переключающими палитру при запуске - но эффект которой игнорируется большинством других (из приведённых игр, она заработала только с Zombi). В последних сообщениях той же темы на VOGONS можно также узнать о её модификации нашим соотечественником TheShich под названием CGACOLOR: она умеет задавать цвета во время игры нажатием комбинации клавиш - причём из всей палитры VGA, а не только из 16-ти EGA'шных, как у первоначальной версии.

    И всё бы замечательно, но вместе с вышеописанным функционалом, CGACOLOR включает в себя несколько других TSR'ок, одна из которых задействует неотключаемое торможение процессора (устраняемое только удержанием клавиш Ctrl и Del), и которые в совокупности вызывают множество проблем и глюков - вплоть до полного отвала клавиатурного ввода в игре или командной строке DOS.

    Поскольку эффективность этого метода вполне доказывает (ограничено) действующая часть CGACOLOR - мне пришла мысль просто дописать в CHGCOLOR функцию задержки в несколько секунд (которых должно хватить для запуска игры через батник) перед первичной сменой палитры - благо автор сопроводил её исходником на ASM.

    Однако для этого нужно знать язык ассемблера... Я уже скачал толстенный фолиант и приступил к изучению)), но, может, кто-то из форумчан уже обладает знаниями, как написать и грамотно внедрить такую функцию?

    Иными словами, прошу помочь с осуществлением этой идеи. Прилагаю обе программы (исходник есть только для оригинальной, но не для модифицированной версии; я уже написал письмо автору CGACOLOR, но пока ответа не было).
     

    Вложения:

    • CHGCOLOR.ZIP
      Размер файла:
      7,7 КБ
      Просмотров:
      8
    • CGACOLOR.zip
      Размер файла:
      2,5 КБ
      Просмотров:
      7
    Последнее редактирование: 23 окт 2024
    AndyFox, Octohum, TakedaSun и 5 другим нравится это.
  2.  
  3. Revolter

    Revolter

    Регистрация:
    12 июл 2006
    Сообщения:
    2.896
    Тем временем удалось выяснить, чем её компилировали в 88-м году: MASM 5.10 (на выходе получается идентичный по размеру и содержимому файл .COM), только я взял LINK.EXE от шестой версии, который понимает ключ /TINY (без него компоновщик ругается при сборке).

    Код:
    masm.exe chgcolor.asm,,,,
    link.exe /TINY chgcolor.obj, chgcolor.com,,,,
     
    AndyFox нравится это.
  4. Revolter

    Revolter

    Регистрация:
    12 июл 2006
    Сообщения:
    2.896
    Представляю временное решение - вариант программы, с которым цвета больше не слетают при запуске некоторых CGA-игр (наример, вышеперечисленных и многих других, которые успел опробовать). К имеющемуся глюку с несовпадающей палитрой при выставлении "умолчаний" (всё-таки программа писалась для EGA-карточек) добавляется ещё несколько (DOS Navigator вот с ума сходит), но если пользоваться командной строкой и перезагрузиться после игровой сессии - то всё норм)) В архив также положил удобную менюшку - просто закиньте оба файла куда-нибудь в PATH и вызывайте по "CGAPAL".

    menu.png

    Доделать не обещаю, потому что этот вариант меня полностью устроил - проблема неправильных CGA-палитр с GeForce2 MX в интересующих меня играх решена :victory:
     

    Вложения:

    • CHGCLRV2.7z
      Размер файла:
      6,7 КБ
      Просмотров:
      12
    Последнее редактирование: 24 окт 2024
    AndyFox, Octohum, Колючий и 6 другим нравится это.
  5. Yuriy_X

    Yuriy_X

    Регистрация:
    27 авг 2018
    Сообщения:
    3.316
    @Revolter, благодарю за изящное решение давней проблемы. Наконец-то я увидел, как должна выглядеть игра Livingstone (слева режим № 3, справа - № 4).

    upload_2024-10-24_19-50-59.png
     
    AndyFox, Octohum, Колючий и 2 другим нравится это.
  6. Revolter

    Revolter

    Регистрация:
    12 июл 2006
    Сообщения:
    2.896
    @Yuriy_X, супер! А на какой видяхе у тебя была неправильная палитра? У меня на жирафе просто четвёртая сразу включается - как на снимках в инете и в DOSBox'е с "machine=cga".
     
  7. Yuriy_X

    Yuriy_X

    Регистрация:
    27 авг 2018
    Сообщения:
    3.316
    @Revolter, конкретно в этой системе у меня Trident TGUI9440-1 (2Мб), она оказалась в ней случайным образом (вставил, чтобы проверить, а потом стало лень менять), но это не особо важно. Игра Livingstone у меня запускалась с палитрой № 4 абсолютно на всех видюхах, включая исашные CL и Trident с активацией режима CGA через их фирменное ПО. Режим № 3 вижу впервые, он вызвал приятное удивление. Правда, не исключаю, что стандартным для Livingstone является режим № 4, просто № 3 мне понравился больше.

    Интересно, что происходит, если игра использует несколько CGA палитр?
     
    Последнее редактирование: 24 окт 2024
  8. Revolter

    Revolter

    Регистрация:
    12 июл 2006
    Сообщения:
    2.896
    Увы, будет задействована только одна - пользовательская: в программе есть блок отслеживания запросов в BIOS по прерыванию 10h на смену цветов - с возвратом пользовательских в случае их обнаружения; так она мешает игре сбросить выбранную палитру при запуске. Собственно, к нему я и "подключился" - просто добавив такой же алгоритм для "Get current video mode")
    --- добавлено 24 окт 2024, предыдущее сообщение размещено: 24 окт 2024 ---
    Можно было бы повесить смену цветов на клавиши, но у вышеупомянутой CGACOLOR этот эффект, почему-то, не срабатывает от игры к игре и даже не всегда в пределах одной и той же... При этом бывают игры, которые так захватывают ввод, что даже Ctrl+Alt+Del не дают выполнить, какие уж тут горячие клавиши %)
    --- добавлено 24 окт 2024 ---
    Да, CGA - это притча во языцах)) Я как раз сейчас пытаюсь "раскрасить" Hurlements (1988, DOS) - в которой либо кислотная "номер 2", либо кустарно приближенная к Amstrad CPC сине-коричневая от французских мододелов, и ни одна из них мне не заходит:

    18062000-hurlements-dos-title-screen.png ltf_resizeimg.png
     
    Yuriy_X, AndyFox и Octohum нравится это.
  9. AndyFox

    AndyFox

    Регистрация:
    22 июл 2009
    Сообщения:
    4.189
    А вот варианты для King's Bounty (1990, DOS)

    kbx_004.png kbx_005.png kbx_006.png kbx_007.png kbx_008.png kbx_009.png

    Да, особенно заметно когда пропадает третья (недокументированная почему-то) палитра, сбрасываясь на первую.
     
    Yuriy_X, Octohum и Revolter нравится это.
  10. Robbo

    Robbo

    Регистрация:
    22 июн 2024
    Сообщения:
    118
    А как всё-таки узнать какая правильная палитра? Ту, которую хотели разработчики? Я понимаю, что играться так можно и цвета менять по вкусу, но какой-то канон разработчики ведь хотели дать? Есть ли возможность это определить? Кроме просмотра скриншотов в журналах. А из самого файла и того, что он ставит?

    Я тоже понятия не имел, что палитра меняется и то, к чему привык, может оказаться фиолетовой ложью.

    Спасибо Вам!
     
    AndyFox нравится это.
  11. Tigoro AI General

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    3.128
    Предполагаю, это сильно зависело от того клона видеокарты, который был доступен разработчику. Особенно, если игра поддерживала не только CGA... Я помню только две палитры в играх, либо "кислотную" как в match3, либо коричневую, как в digger (ниже XT с EGA не пользовался).
     
    Последнее редактирование: 25 окт 2024
    Robbo и AndyFox нравится это.
  12. Revolter

    Revolter

    Регистрация:
    12 июл 2006
    Сообщения:
    2.896
    Мне кажется, самый простой и надёжный способ - запускать достаточно старые игры в эмуляторе с полноценной поддержкой CGA (например, в DOSBox'е за это отвечает настройка "machine=cga" в подгруппе [dosbox]; по-умолчанию там стоит "svga_s3" - т.е. эмулируется VGA-карта и все её проблемы обратной совместимости): любые действия с цветами, которые подразумевали разработчики, по идее сразу раскроются. А ещё существует красивый композитный режим с 16-ю цветами - без эмулятора сейчас такой тоже сложно увидеть.
    --- добавлено 25 окт 2024, предыдущее сообщение размещено: 25 окт 2024 ---
    Кстати о журналах: про PopCorn и его красный цвет я узнал лишь случайно из ролика Old Robot, а номер Game.EXE за декабрь 2000-го меня впервые познакомил угадайте с каким вариантом)

    upload_2024-10-25_7-38-43.png
     
    Robbo и AndyFox нравится это.
  13. AndyFox

    AndyFox

    Регистрация:
    22 июл 2009
    Сообщения:
    4.189
    А вот и Elite (1987, DOS) в интенсивном варианте третьей палитры:

    elite_001.png elite_004.png elite_006.png elite_010.png elite_011.png
     
    Robbo и Revolter нравится это.
  14. Yuriy_X

    Yuriy_X

    Регистрация:
    27 авг 2018
    Сообщения:
    3.316
    Предположу, что эти адские кислотные палитры № 2, 4, 6 (особенно № 2) выглядели не так вырвиглазно на мониторах 1980-х годов, скорее всего имеющих значительно меньшую яркость и контрастность. Было бы интересно увидеть костыль, подобный CHGCLRV2, который бы менял палитры High Intensity на Low Intensity.
     
  15. Robbo

    Robbo

    Регистрация:
    22 июн 2024
    Сообщения:
    118
    А в Goody было две меняющихся, не помните? На улице красно-зеленая, а в канализации фиолетовая.

    Это клон «Город приключений»

    upload_2024-10-25_14-30-17.png

    upload_2024-10-25_14-30-35.png
     
    AndyFox и Tigoro нравится это.
  16. Tigoro AI General

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    3.128
    @Yuriy_X, колесики решали все )
     
    VladimIr V Y и Revolter нравится это.
  17. Robbo

    Robbo

    Регистрация:
    22 июн 2024
    Сообщения:
    118
    Действительно, если менять карту, то палитра меняется, спасибо большое за наводку! Видел, Вы уже писали, теперь 2+2 сложилось.

    А композитный режим можно сделать в SVN-Daum версии? Не пробовали?
     
  18. Revolter

    Revolter

    Регистрация:
    12 июл 2006
    Сообщения:
    2.896
    Не проверял, но он доступен даже в обычном 0.74 и более ранних версиях, так что и в SVN-Daum должно заработать.
     
    Robbo нравится это.
  19. AndyFox

    AndyFox

    Регистрация:
    22 июл 2009
    Сообщения:
    4.189
    Не нашёл в SVN Daum композитного режима, зато в DOSBox-X таковых несколько.
     
    Revolter и Robbo нравится это.
  20. Robbo

    Robbo

    Регистрация:
    22 июн 2024
    Сообщения:
    118
    Да, к сожалению, не получается никак.
     
    AndyFox нравится это.
  21. Yuriy_X

    Yuriy_X

    Регистрация:
    27 авг 2018
    Сообщения:
    3.316
    В Livingstone их тоже минимум две - GRB в самом начале и CMW в ловушках-подземельях.
     
    AndyFox и Robbo нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление