Очень интересно было бы почитать (я где то слышал что на профильных форумах обсуждение было) как движок работает.
Я в эмуляторе немного анализировал что в экранной области происходит — как понял основная идея, что пустые области попиксельно никак не обрабатываются, а скроллится только активное содержимое. Но всё равно интересно какие структуры и т.п.
Ибо действительно 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 и т.д.
За статью — спасибо. Полезно.
Каждый раз ор и рукалицо с этих костылей. А вы думали, вот что надо сделать, чтоб исправить неудобство адресации оригинальной юлы? Ага, точно — надо «исправлять» другой и самый сложный компонент — процессор, вместо простого. С результатом всё равно неудобнее, чем у старых самопальных компов советских. Вот казалось бы, всё равно со спеком несовместимо, ну запилите вы прозрачную трансляцию адреса. Но нет, эти люди лёгких путей не ищут.
  • avatar VBI
  • 0
Лайфхак автору: Прочти ещё хотя-бы раз статью, после размещения.
Ну и вот это вот всё тоже пригодится :)
CSpect
Тут небольшие дополнения что бы OS эмулировать.
А какой эмулятор используете? Тоже хочу это дело пощупать так сказать…
Любые слои могут накладываться, хоть все сразу.
В Layer 2 можно сразу подгрузить 48кб, и вроде как недавно появился на 96кб при 512 цветах. Существует еще теневой экран Layer 2, как понял типа второго спектрумовского экрана, но опять же зачем не понял, так как мерцания в Layer 2 все равно не возможны (на эмуляторе :), железа я не имею).

Любой слой может быть обрезан до нужных размеров Clip регистрами. Это регистры с #18 по #1B. Регистр #1C отвечает за сброс определенного или всех ранее заданых размеров окон.
Ааа, вон оно что. Забавно. Надо ознакомиться…