Всем привет =)
в прошлом году мне в руки попала машинка из моего детства Yamaha 503 она же КУВТ-2,
так как тогда в школе я не очень был по программинга и вообще понимания компьютеров и их архитектуры,
то тут очень уж захотелось разобраться. И уже вникнув немного в архитектуру захотелось закодить что-нибудь простенькое,
а так как до этого был небольшой опыт кодирования для апогея
Bad Apple для Апогей БК-01
то решил создать аналогичную уже на MSX, было строгое ощущение, что уж на MSX получится без значительных упрощений,
прямо намного все проще =) но это оказалось совсем и далеко не так =)
Посмотрев предыдущие демо Bad Apple для MSX - оказалось они ориентированы на ускоренные модифицированные MSX2+ Turbo
(но может плохо искал) и запустить их кроме как в эмуляторе я бы не смог. Решил поработать над вариантом, который могли бы запустить
и остальные владельцы MSX.
Первоначально предполагалось грузить данные из ROM картриджа, как это было реализовано на Апогее, но в итоге оказалось, что
объём видеоданных превышает 256кБ и создать удобный маппер, что бы его могли запустить любые пользователи MSX было бы проблематично.
Мой коллега @vwarlockV настоятельно посоветовал адаптировать демо к дискете, что в итоге было корректным решением, хотя и вызвало
некоторое количество проблем.
Результатом стала дема bad apple для любых (надеюсь) компьютеров MSX, MSX2, MSX2+:
видеорежим G1: (screen1)
ОС: MSX-DOS
видеопамять: 4кБ
требуемая память: 32кБ (16кБ кода, 16кБ буфер, но так же нужен дос, так что думаю минимальный объем памяти машинки 64кБ)
размер видеоданных: 316кБ
размер музыки: 9кБ
музыка: Factor6 - Bad apple (2017) (Forever 2017 - Mad Max - The 8-Bit Road).pt3
pt3 плеер: (c)2004 S.V.Bulba
Приятного просмотра:
диск версии во вложении,
версия "зелёная" - как ностальгия по монохромно зеленым экранам КУВТ-2 =)
bapp60w.zipbapp60g.zip
что под капотом:
1. тайловый режим 32х24, 256 тайлов, видеорежим G1
2. двойная буферизация видео, размер каждого видео экрана 768байт
3. буферизация 16кБ
4. потоковая распаковка данных
5. синхронная с видеоотображением подгрузка с дискеты
(мучительная часть, так как чтение с дискеты требует запрещение прерываний, что тормозит видео и музыку)
6. плеер S.V.Bulba (огромное спасибо), который полностью видит на прерывании
Вся подготовка видео и проверка путем предварительной тассовки данных в матлабе =)
ps: отдельное спасибо группе телеграмм канала World_Of_MSX за подробную консультацию и поддержку.