User Tag List

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

Тема: Edge Grinder для ZS GMX

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

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

    Регистрация
    23.04.2020
    Адрес
    г. Тотьма
    Сообщений
    901
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    338
    Поблагодарили
    181 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Edge Grinder для ZS GMX

    Edge Grinder - игра для Commodore C64,
    есть порты на Amstrad CPC 128, Evo Base conf, Evo TS conf.

    Решил сделать порт на ZS Scorpion GMX.
    Потому что:
    - не во что играть
    - игра почти полностью подходит по системным требованиям
    - можно использовать интересный ход как на Evo: область пикселей заполняется вертикальными полосами,
    а потом меняется только область атрибутов, что экономит такты
    - интересно посмотреть, как Z80 будет справляться с экраном 16К байт
    - интересно проверить свои силы и заодно освоить ассемблер sjasm

    Портирование производилось методом правки исходников для Amstrad CPC 128, то есть это порт порта.
    Поскольку как программист я не программист, наверное, мой код можно оптимизировать раза в два.
    Свои правки я старался отмечать комментариями на русском.

    Что получилось:
    - Графика сконвертирована в 8 цветов
    - Музыка на таблице частот от MSX
    - Работает в режиме 7Мгц
    - Работает с двумя экранами
    - Выжимает 16 кадров/сек
    - Скрол побайтно, то есть по два "пикселя" за раз
    - Память: слот 0 - основной код и музыка, 1- Загрузчик и доп. код, 2 - Страницы доп. кода и графика, 3- Экраны
    - Вся карта перед началом игры отрисовывается в память, для скорости (около 30 страниц, ждать 15 секунд)

    Подробнее:

    Скрытый текст

    На сайте конкурса есть исходники для Commodore и Amstrad.
    http://formatwar.net/view_article.ph...llabortition_1
    Доступны через веб-архив (в архиве выбрать дату 2011.12.06.)

    Commodore C64:
    - есть исходники
    - но незнакомый мне процессор и ассемблер

    Evo Base conf:
    - похожий экран, но другая структура
    - используются все 4 окна памяти (а в GMX есть только 2.5 окна)
    - нет исходников

    Amstrad CPC 128:
    - тот же процессор Z80
    - похожий графический режим, но другая структура. Видео режим Amstrad 160*200 точек похож на 640*200 "с полосками" на GMX, но 16 цветов из палитры 27 и есть аппаратный горизонтальный скрол, а в GMX только вертикальный
    - похожее переключение банков памяти (но используется в основном окно #4000)
    - тот же музыкальный чип AY8912

    Подготовка порта на ZS GMX.
    Задачи портирования:
    - Определить с какой машины проще сделать порт (c Amstrad, есть исходники и похожа архитектура)
    - Найти исходники (в веб архиве)
    - Определить на каком ассемблере написаны (встроен в эмулятор WinAPE20B2)
    - Попробовать собрать и запустить в эмуляторе (успешно, пришлось ещё скачать код плеера)
    - Скопировать файлы на ZX (подошёл SteinBlume. CP/M Disk Image Explorer)
    - Поправить исходный текст для sjasm

    Адаптировать:
    - Загрузчик
    - Переключение страниц и расположение кода в памяти
    - Вывод на экран
    - Графику
    - Опрос клавиатуры и джоев
    - Прерывания
    - Плеер музыки

    Трудности перевода:
    - Так как используется страница 0 вместо ПЗУ, в sjasm не создать снимок SNA для быстрой проверки (или я не знаю как), но можно создать диск TRD и автоматом грузиться с него
    - На реальном железе теневой монитор не работает со страницей 0 вместо ПЗУ и с расширенными экранами, поэтому не отладить код
    - Нет аппаратного горизонтального скрола как в Amstrad.
    Вывод фона 160*78 байт по ldir занимает больше всего времени. Удалось немного ускорить вывод за счёт перехода на ldi.
    Но всё равно игра движется медленнее оригинала. Хотя, мне это даже нравится.
    Очевидно, можно ещё значительно ускорить.
    Но правильнее будет для ZS адаптировать игры с вертикальным скролом.
    [свернуть]


    Спасибо авторам игры и всем причастным, спасибо за исходный код.

    Похоже, это первая игра в истории для расширенного экрана ZS!

    Нажмите на изображение для увеличения. 

Название:	EGGMX.png 
Просмотров:	402 
Размер:	15.7 Кб 
ID:	75796

    Игра:
    EGGMX_20210707.ZIP

    Эмулятор (F3 для выбора дискетки):
    https://cloud.mail.ru/public/UbmH/dqVvcRWzm

    Исходники и новые версии здесь:
    https://cloud.mail.ru/public/XwnA/Wnii3D4Hj

    Копия:
    https://drive.google.com/drive/folde...2I?usp=sharing

    Видео:
    Последний раз редактировалось izzx; 25.09.2021 в 21:16.

    Скрытый текст


    https://drive.google.com/drive/folde...xZ83juCuaBe32I

    Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
    Leningrad 1/Sega Joy Adapter
    DivGMX
    ZX Spectrum +2A
    ZX Evolution rev. C

    TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
    [свернуть]

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

    Cooper(18.08.2021), Digitizer(03.08.2021), Evgeny Muchkin(09.07.2021), Grand(18.07.2021), Lethargeek(07.07.2021), OMu4(16.07.2021), shadwork(07.07.2021), USERHOME(07.11.2021), Uzix(07.07.2021), Максагор(18.08.2021)

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

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

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

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

Похожие темы

  1. EYEACHE2 и Across The Edge на GMX
    от Evgeny Muchkin в разделе Демо
    Ответов: 1
    Последнее: 12.08.2019, 21:23
  2. Ответов: 0
    Последнее: 24.11.2017, 03:24
  3. ZX BUS EDGE!
    от ZXFanat в разделе Устройства ввода
    Ответов: 10
    Последнее: 15.07.2013, 19:16

Ваши права

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