Очень интересно было бы почитать (я где то слышал что на профильных форумах обсуждение было) как движок работает.
Я в эмуляторе немного анализировал что в экранной области происходит — как понял основная идея, что пустые области попиксельно никак не обрабатываются, а скроллится только активное содержимое. Но всё равно интересно какие структуры и т.п.
Ибо действительно fps и отзывчивость фантастические для спектрума.
Нет, не стоит. Потому что это всё, во-1, необязательно признак неумелости, а во-2, не настолько большинство, как линейный буфер. Контрпримеры легче найти гораздо, чем примеры с буфером в юлашной раскладке.
Подавляющее большинство игрушек не умеют делать vsync. Подавляющее большинство игрушек обновляют экран раз в 3 фрейма или даже медленнее (offscreen buffer — одна из важных причин этого). Подавляющее большинство игрушек shipped с артефактами изображения. Мне продолжать?
В подавляющем, абсолютном большинстве игрушек линейный буфер, так что и умеющие так делали. Для игродела плюсов в спековской раскладке весьма немного и они только в очень частных случаях проявляются. А вот неудобства намного чаще.
Это очень хороший анекдот. Непонимание раскладки ULA — натурально, бич начинающих кодеров. Она действительно не всегда удобна, но думаю многие со мной согласятся, что с опытом приходит понимание, что она намного эффективнее линейной раскладки.
Нет. У меня сейчас на самом деле денди с маппером MMC3 голова забита если про хобби говорить. Про Next получилось просто что одна предыдущая статья была написана уже давно, а система команд ну очень уж немного и интересно, перевести так и просилось.
Бегло взглянул на zxnDMA сейчас — оно как я понял является даже усечением Z80 DMA и насколько я понял из упрощений только то что раньше количество итераций вбивалось как X+1 (и в режиме совместимости это сохранено), а сейчас можно как X передавать в новом режиме. А в остальном вроде всё такое же, но там уже куча битовых флагов и адресов и перевод уже дело нудненькое.
aa-dav, а планируется ли такая же обзорно-поучительная статья по преимуществам zxnDMA в отличии от Z80DMA? Но на великом и могучем, а не как у них в dev.
xD
Тут явно надо родить анекдот класса «стадии смирения»…
Наподобие такого:
Есть три стадии развития программиста на спектруме:
1. ты не понимаешь как раскладку видеопамяти ULA
2. ты понимаешь раскладку видеопамяти ULA
3. ты не понимаешь раскладки видеопамяти не как в ULA
В Z80N на самом деле в разное время присутствовали еще некоторые команды, о назначении (и полезности?) которых можно лишь догадываЦЦа.
LD_ACC32_DEHL, EXXACC32, LD_DEHL_ACC32, INC_DEHL, DEC_DEHL, ADD_DEHL_A, SUB_DEHL_A, ADD_DEHL_BC, SUB_DEHL_BC, MIRROR_DE, PIXELTOATTR, ATTRTOPIXEL и т.д.
За статью — спасибо. Полезно.
Каждый раз ор и рукалицо с этих костылей. А вы думали, вот что надо сделать, чтоб исправить неудобство адресации оригинальной юлы? Ага, точно — надо «исправлять» другой и самый сложный компонент — процессор, вместо простого. С результатом всё равно неудобнее, чем у старых самопальных компов советских. Вот казалось бы, всё равно со спеком несовместимо, ну запилите вы прозрачную трансляцию адреса. Но нет, эти люди лёгких путей не ищут.
Любые слои могут накладываться, хоть все сразу.
В Layer 2 можно сразу подгрузить 48кб, и вроде как недавно появился на 96кб при 512 цветах. Существует еще теневой экран Layer 2, как понял типа второго спектрумовского экрана, но опять же зачем не понял, так как мерцания в Layer 2 все равно не возможны (на эмуляторе :), железа я не имею).
Любой слой может быть обрезан до нужных размеров Clip регистрами. Это регистры с #18 по #1B. Регистр #1C отвечает за сброс определенного или всех ранее заданых размеров окон.
Я в эмуляторе немного анализировал что в экранной области происходит — как понял основная идея, что пустые области попиксельно никак не обрабатываются, а скроллится только активное содержимое. Но всё равно интересно какие структуры и т.п.
Ибо действительно fps и отзывчивость фантастические для спектрума.
Бегло взглянул на zxnDMA сейчас — оно как я понял является даже усечением Z80 DMA и насколько я понял из упрощений только то что раньше количество итераций вбивалось как X+1 (и в режиме совместимости это сохранено), а сейчас можно как X передавать в новом режиме. А в остальном вроде всё такое же, но там уже куча битовых флагов и адресов и перевод уже дело нудненькое.
Тут явно надо родить анекдот класса «стадии смирения»…
Наподобие такого:
Есть три стадии развития программиста на спектруме:
1. ты не понимаешь как раскладку видеопамяти ULA
2. ты понимаешь раскладку видеопамяти ULA
3. ты не понимаешь раскладки видеопамяти не как в ULA
LD_ACC32_DEHL, EXXACC32, LD_DEHL_ACC32, INC_DEHL, DEC_DEHL, ADD_DEHL_A, SUB_DEHL_A, ADD_DEHL_BC, SUB_DEHL_BC, MIRROR_DE, PIXELTOATTR, ATTRTOPIXEL и т.д.
За статью — спасибо. Полезно.
Тут небольшие дополнения что бы OS эмулировать.
В Layer 2 можно сразу подгрузить 48кб, и вроде как недавно появился на 96кб при 512 цветах. Существует еще теневой экран Layer 2, как понял типа второго спектрумовского экрана, но опять же зачем не понял, так как мерцания в Layer 2 все равно не возможны (на эмуляторе :), железа я не имею).
Любой слой может быть обрезан до нужных размеров Clip регистрами. Это регистры с #18 по #1B. Регистр #1C отвечает за сброс определенного или всех ранее заданых размеров окон.