Войти
ФлеймФорумПроЭкты

Spectrum style по-современному [исследовательский проект] (22 стр)

Страницы: 117 18 19 20 21 22
#315
11:09, 26 мая 2018

Кто-нибудь может объяснить что как именно работает инструкция PAGE X в JsAsmPlus когда включен допустим DEVICE ZXSPECTRUM128? Как работает переключение банков в нём я уже знаю - пытаюсь фигачить код исходя из представления, что сия инструкция просто как бы делает assume, что эта указанная страница памяти выбрана сейчас в $C000-$FFFF - всё зависает и нифига не работает. Правда вообще складывается ощущение, что загрузка образа 128 из .sna подключивает...


#316
8:46, 27 мая 2018

Мдя, вечер убил на выяснение вопроса выше. Но таки разобрался.
А кто-нибудь знает хорошую книгу по программированию на ZX 128 в ассемблерном плане?
Пока разбирался с вопросом выше перековырял половину интернета - все сведения какие то или обрывочные или не про то.

#317
9:24, 27 мая 2018

=A=L=X=
А в чем особенность программирования 128 по сравнению с 48? Все то же самое. Переключение банков памяти и второй экран - это один порт, #7ffd, книга по одному порту - это чересчур :)
Ну возможно больше портов если учитывать всякие наши клоны.
карта портов
Или ты имеешь в виду уже готовые стандартные менеджеры памяти которые между страницами перекидывают? Не думаю что такие есть - там все просто, и зачастую в каждом отдельном случае раскладка данных по страницам- просто хардкодилась.

sjasm этот лично я считаю так себе ассемблером. А по поводу sjasmplus я еще в 2005 году на zx-pk написал про forward reference, как дела в текущей версии обстоят - не вкурсе. Для своего проекта использую rasm (до этого использовал z80asm).

#318
10:55, 27 мая 2018

Dexus
> Переключение банков памяти и второй экран - это один порт

Вечер убил сперва на то чтобы понять, что *.sna-образ который создаётся SjASMPlus не содержит корректно заполненых таблиц ZX 128 system vars и что там вообще неправильно всё заполнено, отчего все сквозные примеры как правильно переключать страницы грохались на вылет. Для этого сперва надо было узнать как всё должно быть правильно. А потом уже поняв - еще час потратить на то, чтобы портировать файлы под нормальный образ с нуля запущенного ZX 128 - хочется не напарываться на такие косяки, а чтобы было всё по полочкам разложено и обзорно и подробно как где и чего ожидать.
А то получается, что наполовину то как работает вообще ZX 128 узнавал не из литературы, а долбясь в отладчик эмулятора.

#319
11:00, 27 мая 2018

Dexus
> Или ты имеешь в виду уже готовые стандартные менеджеры памяти которые между
> страницами перекидывают? Не думаю что такие есть

Как раз есть - в том что в модели ZX 48 было 256 байтами буфера принтера у ZX 128 располагаются его системные переменные, а конкретно по адресу $5B00 - процедура свопа банков ПЗУ для вызова процедур из старого бейсика.
То есть он работает как switch - Basic 128 на самом деле 90% работ делегирует в ПЗУ Basic 48 через этот мостик. В частности ПЗУ Spectrum 128 маскируемые прерывания переправляет через этот мостик в ПЗУ 48, отчего у меня всё благополучно грохалось раз двести. Но были и другие причины.

#320
11:06, 27 мая 2018

Я вообще оказывается раньше не понимал толком что такое ZX 128 и с чем его едят.
Так, например, большая часть дополнительного по сравнению с ZX 48 ОЗУ по факту использована не для расширения программ basic, а для RAMDisk. Правда этот RAMDisk как раз можно использовать для быстрой выгрузки-загрузки блоков программ и данных, но сам принцип именно таков.
Или то, что basic-128 на деле работает поверх basic-48 и там постоянно свопаются банки ПЗУ - на каждый чих.

#321
19:27, 27 мая 2018

Хех, никогда не нравилось что при листинге допустим в бейсике построчный скролл экрана довольно долго прокручивал текст. При этом всегда видно, что экран почти мгновенно наполняется строками пока он пустой, но как только доходит до скроллинга - понятное дело всё становится медленно и печально.
Решил сделать эксперимент - скроллить экран не на одну строку в базовой процедуре print_char, а на одну треть, чтобы скролл срабатывал только на каждые 8 новых строк. Результат - примерно 100 выводимых строк в секунду, хотя там еще тратится время на построение номера строки в hex.

#322
19:41, 27 мая 2018

=A=L=X=
> но как только доходит до скроллинга
Я писал на заказ редактор текста (использовал бейсик+асм), так я сделал там страницы, каждую страницу он печатает быстро и перелистывание тоже быстрое, никакого скроллинга. Взял символическую сумму в 100 руб., потому как работа доставляла.

#323
20:04, 27 мая 2018

=A=L=X=
Плавный скроллинг на ZX возможен:

#324
3:44, 28 мая 2018

gamedevfor

Сперва подумал, что это розыгрыш, т.к. атрибуты игрока не клашились с монстрами, но потом понял, что игрок всегда находится в одной центральной позиции на экране и всё норм.
Почитал описание как работает по ссылке из описания на ютубе - жесть конечно, расширить до игры конечно не получится.

+ Показать

#325
14:14, 28 мая 2018

=A=L=X=
> Ну и плавный != быстрый.

Быстрый и плавный на ZX наверное не сделаешь.
Если быстрый то только так:

#326
16:21, 26 сен. 2018

Была тут картинка без клэшинга:

+ Показать

Добавил (в Фотошопе) автоматический клэшинг:

cybergirl-clashing | Spectrum style по-современному [исследовательский проект]
#327
17:52, 26 сен. 2018

Virtex

Есть реальный материал сравнительно свежий в похожей стилистике: http://hype.retroscene.org/blog/825.html

+ Показать

#328
17:18, 27 сен. 2018

=A=L=X=
> Есть реальный материал сравнительно свежий в похожей стилистике:

Там ручная рисовка.

А я попытался представить, как будут выглядеть, например, динамичные 3D модели в тру спектрумовском стиле.

И выглядят они с клэшингом, очевидно, не очень. :)

Так что дилемма: либо рендерить без клэшинга, но клевые цветные модельки; либо двуцветное лоу-поли как было на Спектруме... Что из этого понравится игрокам меньше? :)

Страницы: 117 18 19 20 21 22
ФлеймФорумПроЭкты

Тема в архиве.