User Tag List

Показано с 1 по 10 из 16

Тема: River Raid на УКНЦ

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    483
    Спасибо Благодарностей отдано 
    139
    Спасибо Благодарностей получено 
    390
    Поблагодарили
    145 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию River Raid на УКНЦ

    Начал "портировать" игру River Raid для УКНЦ.

    Изначально была небольшая тестовая демка со скроллингом 50fps для проверки нормального конвертирования/отображения видеосигнала компьютера на современном видеомониторе/ТВ. Просто фигурки скроллились вниз и проверял плавность отображения.
    Через какое-то время стало занятно сделать рандомные берега "речки" как в игре River Raid. А потом добавил кораблики и т.д...


    Ради истории:
    Оригинал вышел в далеком 1982 году на "приставке" Atari 2600. От игры есть разобранный с комментариями код под вариант процессора MOS 6502 и TIA чип этого Atari. (https://github.com/johnidm/asm-atari.../RiverRaid.asm). Вся игра в оригинале занимает 4 килобайта и довольствуется кажется 128-ю байтами ОЗУ.
    Теоретически ее алгоритм формирования "берега речки" и прочего (кроме отображения/звука/хардварный check collision) можно портировать. Правда это будет некоторый гимор (команды типа SBC байтовые и прочая байтовая арифметика и работа с флагами).
    Я не стал заморачиваться с портом, взял общую концепцию (и своровал некоторые спрайты). Поэтому у меня игра занимает вовсе не 4 килобайта, а целый вагон килобайт (прешифтованные спрайты, тупой код и т.д.)

    Управление:
    В принципе в самое игре описано.
    Из того что не описано - К2 сделает рестарт с показом дебаговых циферок. Левая binary - скан коды кнопок нажатия и отжатия. Две циферки посредине - некоторое значение в у.е. процессорного времени по CPU и PPU которое осталось "лишним" до очередного прерывания вертикальной развертки экрана. Также по К2 самолет перестает "умирать". Можно использовать как тест 50Гц скроллинга пока настраивается телевизор. (еще раз К2 - возврат к "нормальной" игре)

    Игрушка понемногу доделывается и осталось:
    - багов еще добавить
    - ускорение (стрелка вверх)
    - мосты (не знаю важны-ли.. похоже не добавлю)

    Вопросы на которые сразу можно ответить:
    - Почему игра не полноцветная? Даже 8-ми цветов нет! Не то что 128...
    + (для предыдущей игры Krakout то-же самое) Мне лень заморачиваться с фреймбуферами, палитрами на каждую строку и рисовать лишнее в PPU. Бит в плане-0 который рисует только PPU всегда белого цвета чтобы не влиять на планы 1/2. Поэтому кроме белого остается 4 цвета. Я выбрал цвета те .. которые выбрал. 5 цветов (включая белый и черный, увы).
    - Самолет "тормозит" на поворотах, но если держать кнопки и не отпускать - скорость на максимуме
    + "Ориджинал код" уж насколько смог его портировать с переносом байтовых операций. На оригинале атари самолет будет гонзать вправо влево примерно так-же (чуть иначе, но я постарался скопировать поведение). Единственно что не скопировано - даже при самом мелком нажатии вправо/влево на атари - самолет будет двигаться хотя-бы на один пиксель - у меня это нереализовано, поэтому "инерция"
    - Ракеты в ориджинал могли быть "самонаводящиеся" (X-ракеты соответствует X-самолета)
    + Усложнил геймплей на УКНЦ, сделать можно, не вижу смысла, это скорее демо чем игра

    Технически:
    RIV.SAV банальный лоадер который считывает файл RIVBIN.DAT в котором код для двух процессоров. Сначала записывает его в планы ВОЗУ скрыв отображение. Потом раскидывает по двум процессорам и запускает вычистив все что было там до этого. Процессоры общаются между собой через команды CPU -> PPU без использования байтовых каналов обмена и прерываний. Тупо по ячейкам памяти CPU и по ожиданиям в циклах. Видеопамять скидывается на адреса >=100000 CPU (два плана) и >=40000 PPU план 0. Туда они и рисуют немного пожертвовав (сильно пожертвовав) доступным ОЗУ для исполнения кода. (спасибо соседнему треду, не знал что так можно). Но поскольку разрешение 320х288 - то вроде как не сильно критична потеря ОЗУ для исполняемого кода. Тем-более что оригинальное ВОЗУ можно использовать и дальше под прешифт спрайтов on-demand и видеобуфера в этой игре ненужные (игра очень маленькая) и т.д.

    Поведение в эмуляторах:
    UKNCBTL - не слишком парится с vsync и выдает 25 кадров/с (примерно). У вертолета не будет "вращаться винт". Также некоторые ноты музыки звучат "кривовато".
    EmuStudio - в плане vsync получше, хотя странным образом скушало/размножило нижние стро.. UPD: Titus прояснил ситуацию, надо нажать LShift+Del
    (на реальной УКНЦ вроде более-менее)

    Сама игра и ее исходники:
    (для компиляции исходников нужно будет доложить php и rt11.exe которые по понятным причинам я не добавляю. Компиляется последовательно 0_.. 1_.. 2_.. 3_... bat. Думаю программист быстро разберется. За код не ругать плз.)

    uknc_river_src.zip
    Для игры взять оттуда riv.dsk, в нем старт игры прописан в автозагрузке, сама игра это два файла RIV.SAV, RIVBIN.DAT которые внутри riv.dsk находятся.
    Последний раз редактировалось BlaireCas; 20.05.2023 в 15:03.

    Эти 7 пользователя(ей) поблагодарили BlaireCas за это полезное сообщение:

    hobot(20.11.2020), nzeemin(22.11.2020), Oleg N. Cher(22.11.2020), surinm(24.04.2021), svofski(20.11.2020), Titus(20.11.2020), tnt23(22.11.2020)

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

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

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

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

Похожие темы

  1. River raid
    от Ванек в разделе Игры
    Ответов: 6
    Последнее: 29.08.2011, 14:38
  2. river raid on flash
    от daniel в разделе PC Remakes
    Ответов: 4
    Последнее: 01.03.2011, 21:01
  3. Ищу игру River raid и Mounsters под TR-DOS
    от luzanov в разделе Игры
    Ответов: 3
    Последнее: 21.01.2008, 12:32
  4. River Raid
    от Egal в разделе Игры
    Ответов: 9
    Последнее: 30.09.2007, 21:33

Ваши права

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