+343.75
Рейтинг
946.43
Сила
  • avatar aa-dav
  • 0
Тут дело наверное даже не в инерции, а в том, что такие ПК всегда целились на рынок школьных компьютеров, ведь тот же самый BBC Micro из статьи выиграл конкурс на то, чтобы стать общеобразовательным компьютером в Англии. Поэтому имидж бейсика как образовательного языка для начала обучения очень твёрдо закрепил его на пьедестале стараниями Microsoft. Для меня вот было открытием, что изначально бейсик был разработан как компилируемый язык.
  • avatar aa-dav
  • 0
P.S.
А, перечитал еще раз начало и дошло.
  • avatar aa-dav
  • 0
Мультиколор тут подразумевает, что на C64 они как раз выходят за рамки 4 цвета на знакоместо или что?
Для самого C64 клешинг конечно не был такой проблемой, т.к. были и аппаратные спрайты и даже наполовину аппаратный скроллинг, так что это вам не спектрум, конечно, чтобы оно лезло в глаза в почти любой игре.
  • avatar aa-dav
  • 1
Вот просто суперские и проделанная работа и статья!
  • avatar aa-dav
  • 0
И еще — по ссылке выше про «получил такую картинку» на том форуме возникла неопределенность в следующем вопросе — когда ULA генерирует прерывание, то в одних документациях по ZX Spectrum 48 мы видим, что оно генерируется ровно за 64 «виртуальных» строки (каждая — 224 T-state-а) до первой строки изображения с адреса 16384.
Но судя по другим источникам так делают множественные клоны спектрума, а оригинальная модель 48k запаздывала с наступлением прерывания на 16 строк. И даже поэтому в клоны специально апгрейды встраивают в виде схемы задержки наступления прерывания, например тут: zxpress.ru/article.php?id=11847
Странная ситуация когда в разных местах написано разное — а так как multycolor при таких несоответствиях будет просто неправильно работать, то, думаю, не ошибусь если попрошу навести ясность в этой теме.
  • avatar aa-dav
  • 1
"… можно наверное наворотить вообще огого"
Дошло, что я это говорю человеку, который как раз воротит «огого!» и не раз и не два и с такими изощрениями, что «огогого!». :D Что-то как то совсем за всеми этими восторгами от техник забыл выразить своё почтение!
  • avatar aa-dav
  • 1
Воспользовался советами и получил такую картинку.
В принципе весьма прикольно, регулируя область можно выходить и на плавные скроллеры с 50fps. А если рисовать в бэк-буфер и выводить его каждый второй кадр, то в стабильных 25fps можно наверное наворотить вообще огого.
  • avatar aa-dav
  • 0
P.S.
Да, наверное просто включен турбо-режим скорпиона, а где он включен даже и не пойму.
  • avatar aa-dav
  • 1
ну эмуляторы которые хотят тот же мультиколор правильно отобразить таки должны крайне скурпулёзно высчитывать тайминги, поэтому я им весьма доверяю в этом вопросе. в Spectaculator Old Tower точно работает правильно, поэтому ему верю. а вот почему UnrealSpeccy показал в два раза больше для меня неожиданность — подозреваю, что у меня просто выбрана какая то разогнанная модель, но т.к. в нём настройки все и хоткеи более чем неинтуитивны, то даже не могу понять из конфига что именно там выбрано. судя по менюшкам — скорпион какой то, но не очень понятно.
  • avatar aa-dav
  • 1
P.S.
Перепроверил на Spectaculator — тот показал в два раза примерно меньший фпс. Хм, видимо эмулятор Unreal у меня где то в настройках разогнан, так что всё скромнее на самом деле.
  • avatar aa-dav
  • 1
секундомером просто замерил сколько раз зацикленный в двух третях экрана паттерн делает полный проворот за 10 секунд — получилось 10 раз.
  • avatar aa-dav
  • 2
Не смог всё-таки устоять перед искушением и на выходных реализовал технику LD:PUSH+кольцо для плавного скроллинга первых двух третей экрана. На эмуляторе получился фпс близкий к 128, то есть больше, чем период обновления экрана в два раза!

А ведь когда-то я считал, что на спектруме плавный скроллинг физически невозможен.
  • avatar aa-dav
  • 1
я использовал уже GPL-ную (или creative commons, типа того) версию этой гифки в своей статье тут про NES как раз тут. у меня цикл статей тоже «по верхушкам» самых разных систем и техник ранних консолей и ПК.
но, насколько я понимаю, с техникой ldpush, которая быстро перекидывает на экран теневой буфер, для вертикалкьного скроллинга достаточно иметь всего один избыточный сканлайн, который и будет перерисовываться и два экрана не надо. два экрана это нужно было на тайловых чипах где проворачивание удобно привязать к степени двойки. а у вертикалки+лдпуш+кольцо это не требуется, по крайней мере если не связываться с multycolor, иначе не уверен.
  • avatar aa-dav
  • 1
Техника ldpush вообще очень понравилась (безотносительно мультиколора). Спектрум хоть и был первым моим ПК и дал импульс к судьбе программиста, но хардкорным спектрумистом я не стал и плаваю по верхушкам. Так что если она и широко известна в узких кругах, то я лично не знал.
Сейчас чем больше про неё думаю, тем больше нравится — если всё-таки сделать JP NEXT, то можно закольцевать в бесконечную ленту и сделать вертикальный скроллер бесконечным, дорисовывая медленно только одну полоску пикселей на кадр. Интересно еще попробовать всё-таки как то ускорить LD SP,END_OF_LINE, чтобы тоже минимизировать перевычисления в кольце.
  • avatar aa-dav
  • 0
P.S. А, вспомнил, что даже лучше не JR, а JP, JR же хоть и меньше, но дольше выполняется.
  • avatar aa-dav
  • 0
А вообще да — искать базу умножением на 51 надо нечасто: для определения опорной строки раз на кадр и еще для спрайтов по разу. Кроме того таблица должна быть не 128, а 320, рендер ведь идёт в этот бэк-буффер. Тем не менее меня всё-равно смущает фраза «что облегчает нам все вычисления», потому что такое разложение на степени двойки как по мне так ничего не облегчает — четыре члена это почти любое число можно покрыть от 0 до 256, кроме того вставив в концы строк JR можно попросту округлить их до 64 байт, а вот это уже действительно «многое облегчает». В общем послушаем что скажет Денис.
  • avatar aa-dav
  • 0
Таблица 128*2 — 256 байт «всего», что ровно и аккуратно ложится на 8-битные инструкции, а уже одно x*32 это 5 16-битных ADD HL,HL, а еще складывать надо, поэтому и интересно.
  • avatar aa-dav
  • 0
Умножение на 51 табличное или есть какая то хитрая последовательность инструкций?
  • avatar aa-dav
  • 0
P.S.
И, конечно же, вопрос становится совсем непростым, если учитывать армии клонов — с его учётом картина может значительно поменяться.
  • avatar aa-dav
  • 0
«P.S.Попытался нагуглить, сколько где продано C64, но не нагуглилось ничего внятного.»

Вот тут: en.wikipedia.org/wiki/Home_computer можно найти неконкретные, но замечания, что:
1. C64 — самая продаваемая модель компьютера в мире всех времён и народов (17 млн. по всему миру). Имеется ввиду именно конкретная модель с незначительными изменениями типа PAL/NTSC.
2. В Европе, однако, британские ПК чаще всего имели более широкое распространение, чем компьютеры из США