Важная информация

User Tag List

Показано с 1 по 3 из 3

Тема: Несовместимость видеоконтроллера с IBM CGA?

  1. #1
    Junior
    Регистрация
    28.09.2015
    Адрес
    г. Новосибирск
    Сообщений
    4
    Благодарностей: 0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Несовместимость видеоконтроллера с IBM CGA?

    Пытаюсь адаптировать игру Boulder Dash к записи и загрузке с кассеты на Поиске, столкнулся с тем, что рендеринг работает на Поиске некорректно.

    В игре есть большое поле, по которому бегает игрок, и по мере прохождения, поле скроллится вертикально или горизонтально. Пока я еще не реверсил игру полностью, но почти уверен что скроллинг реализован путем изменения регистров CRT через порты обращения к видеоконтроллеру, а именно установкой положения вертикальной и горизонтальной синхронизации, что позволяет циклически перемещать изображение по монитору. На поиске картинка выглядит так, будто бы эти смещения не применились и изображение "рвется" посередине. Если описал непонятно, могу позже сделать фото

    По книгам Фроловых, я говорю об этих регистрах: http://www.frolov-lib.ru/books/bsp/v03/ch6_2.htm
    Порты CGA, как здесь написано, 3D4h и 3D5h

    Если кто-то знает, действительно ли в поиске нет таких возможностей, или может они реализованы на других портах?

    Сама игра во вложении...
    b2.zip
    Последний раз редактировалось Vizer; 01.05.2016 в 12:22.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,437
    Благодарностей: 763
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я щаз не могу досконально изучить вопрос, у меня тут развод, свадьба потеря работы, устройство на новую работу, отпуск и еще миллион дел. Но вкратце - конечно нет там сдвигов через порты CRT. Проще всего взять исходник бивиса и там посмотреть - все обращения к портам ловятся программно и программно же обрабатываются. Возможно сдвиги есть с помощью int 10h, не помню уже. Поэтому игруху надо хакать на переход с портовых сдвигов на сдвиги по int 10h. Но это будут тормоза конечно. Либо просто ставить свои call'ы на свои же процедуру сдвигов прям в коде где-нить внизу. Ничего сложного, но я сейчас не могу по вышеописанным обстоятельствам -)
    Работают:
    1) ПЭВМ Поиск-1 512Kb RAM, FDD controller + TEAC 5"25 800Kb, HDD MFM controller + ST-225, Joystick controller + Joystick
    2) XT Super Turbo V, Siemens 8088/NEC V20, 640Kb RAM, MFM Robotron K5504.20, FDD 5,25" MC-5311/MITSUMI D509V3, COM, LPT
    3) ПЭВМ "ДУЭТ" проц: КР1858ВМ1; память 48K РУ5 (клон Spectrum 48K)
    Пока не работают:
    1) ПЭВМ Поиск-1 128Kb RAM (не работает большая часть кнопок на клавиатуре).

  4. Этот пользователь поблагодарил Tronix за это полезное сообщение:
    Vizer (12.05.2016)

  5. #3
    Junior
    Регистрация
    28.09.2015
    Адрес
    г. Новосибирск
    Сообщений
    4
    Благодарностей: 0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Понятно, но раз нет аппаратных сдвигов, то искать в биосе их программную обработку мало смысла, не факт что они там есть, тем более что работать будут убийственно медленно. Так что да, самый разумный вариант - похачить игру, дописать туда свои процедуры скролла, по аналогии со спектрумовской версией, сдвигать пикселов на 10 за один проход. Попробую сделать так, наверное.
    Последний раз редактировалось Vizer; 12.05.2016 в 08:25.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Выбор видеоконтроллера.
    от alex-eller в разделе Разное
    Ответов: 34
    Последнее: 13.05.2015, 11:44
  2. Ответов: 131
    Последнее: 16.02.2009, 19:42

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •