-
Вложений: 2
Bad Apple для MSX/MSX2
Всем привет =)
в прошлом году мне в руки попала машинка из моего детства 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
Приятного просмотра:
https://youtu.be/q_xUqLV2EKE
диск версии во вложении,
версия "зелёная" - как ностальгия по монохромно зеленым экранам КУВТ-2 =)
Вложение 75354Вложение 75353
что под капотом:
1. тайловый режим 32х24, 256 тайлов, видеорежим G1
2. двойная буферизация видео, размер каждого видео экрана 768байт
3. буферизация 16кБ
4. потоковая распаковка данных
5. синхронная с видеоотображением подгрузка с дискеты
(мучительная часть, так как чтение с дискеты требует запрещение прерываний, что тормозит видео и музыку)
6. плеер S.V.Bulba (огромное спасибо), который полностью видит на прерывании
Вся подготовка видео и проверка путем предварительной тассовки данных в матлабе =)
ps: отдельное спасибо группе телеграмм канала World_Of_MSX за подробную консультацию и поддержку.
-
-
Цитата:
Сообщение от
goodboy
Самое интересное в Bad Apple это ее объем. Имея быстрый накопитель неограниченного объема, стримить видео с него не так чтоб очень сложно. В разрешении 32*24*1 я упаковывал видео приблизительно в 110 килобайт банальной RLE и полными кадрами. Половину ее можно было загрузить в 64 килобайтный SBC на 8085 и смотреть в терминале, что само по себе выглядело интересно =)
Так-то можно вспомнить и Time Gal на ZX-Spectrum =)
-
"В разрешении 32*24*1 я упаковывал видео приблизительно в 110 килобайт"
да, тут реальное разрешение 128х48, с небольшим сглаживание при переходе от сабблока 4x2 к блоку тайла 8х8 =)
но влезло на стандартную дискетку, а так полностью соглашусь, что при наличии неограниченного накопителя стримить не проблема
(ну то есть не совсем не проблема, так как дальше все упирается в пропускную способность шины =)
ps: ну и проблема bad apple варианта на видео goodboy, что никто (большинство) не сможет его запустить на своей msx, в данной версии, я
постарался адаптировать и под MSX-1, но проверить MSX-1 смог только на эмуляторе.
-
Буквально месяц назад искал Bad Apple!! под MSX2, и вот Вы прямо меня обрадовали!
Тоже нашёл версию для MSX2+ и расстроился, что под "классические" модели версий не было :( Хотя, казалось бы — как можно обойтись без японского мема на японской же машине?
По поводу сжатия кадров можете перенять опыт у сценеров, которые сделали версию для "разогнанного" ZX Spectrum: https://hype.retroscene.org/blog/360.html
Было бы круто и на MSX2 выжать большее разрешение, но уже сейчас я рад, что появился такой порт. Завтра же побегу запускать на реальной машине! :D
UPD:
Запустил на реальной машине, всё работает! :v2_thumb: Проверил на машинах двух поколений (503-е "Ямахи" из состава КУВТ1 и КУВТ2) с картриджем Canivore2, подтверждаю работоспособность на MSX первого поколения!
Единственное пожелание — хотелось бы за-loop-ить демку или организовать выход в DOS по клавише Esc, а то сейчас приходится ресетить машину. Но в остальном всё супер, спасибо!
https://pic.maxiol.com/thumbs2/16225...9.dscf0653.jpg