Комментарии 86
Круто, но почему всё игры да игры? Для ZX Spectrum и текстовые/графические редакторы, и электронные таблицы, и т.п. есть.
А софт — устарел и никакой практической ценности не имеет.
В игры можно играть. С софтом нельзя делать ничего.
Формат plain text на всех платформах одинаков, кодировки легко преобразуются. Спектрумовская графика легко переводится в современные форматы, то же и с музыкой.
На пятидюймовом смартфоне в горизонтальном режиме очень удобно с текстом работать, хотя половину экрана занимает клавиатура. На пятидюймовом телевизоре — то же самое, только под текст отведён весь экран.
поэтому там на экране можно разместить довольно много читабельного текста,
а на телевизоре, подключенном к спектруму (не помню — 40*25 у него, или сколько?) сильно много текста не поместится.
У ZX Spectrum разрешение было 32*24, что легко подсчитать, если вспомнить, что цвета задавались по знакоместам размером 8*8. Разного рода текстовые редакторы с собственными знакогенераторами и «ручным» выводом текста на экран, сокращая ширину символа до 6 точек, добивались 42 знакомест в строке. Кажется, попадались варианты с шириной знакоместа 5 точек, но это было уже что-то на грани читаемости текста, хотя и позволяло увеличить строку до 51 символа.
Нигде не было авторизации. Везде welcome>_
На этих BBS были книги в cp 866 кодировке кажется. Спектрум их не мог отображать. Пришлось на бейсике писать конвертор текста. Отображение экрана занимало секунд 10 при перелистовании страницы. В 1994 году это было круто, учитывая то что знакомые по 20 лет стояли в очереди на подключение стационарного телефона. А тут общайся со всем миром.
ZX Spectrum был первый мой компьютер в жизни. У меня их было много разных потом. Но ничего подобного я не испытывал к другим компам. Это было чудо, amazing! Иногда аж хочется купить Спектрум. Хотя прекрасно понимаю, что прошлого не вернешь. И такого кайфа не получу уже. Как говорят американцы, что лучше быть первым, чем лучшим.
Во как — даже не звонком прямо на модем BBS своего города, что тогда чаще делали, а звонком провайдеру, а оттуда на разные IP? А как PPP на спектруме был реализован?
Соединение происходило по ax.25, скорость 1200 бод, контроллер пакетной связи TNC-2, который через RS-232 подключался к ZX Spectrum.
Но в вашем комментарии упомянуты IP-адреса, а не фидошные.
Ax.25 это протокол в беспроводной связи, к фидонету отношения не имеет. Я написал это в общем плане, что имелось из сервисов которые подключались по телефону. Про ррр тогда я даже и не знал. Подключение происходило через радиостанции.
Я заходил на узел. Писал telnet xx.xx.xx.xx и коннектился. На узле операцонка Unix была.
Это была та самая пакетная радиосвязь, о которой тогда так много писали? Та радиостанция, с которой вы связывались, была подключена к чему-то вроде сервера, и там вы получали shell-аккаунт, а сервер, в свою очередь, был соединён с интернетом? И в теории, вместо telnet можно было бы набрать lynx, если бы он на сервере был? А он там мог быть, ибо существует с 1992 года.
И я ещё кассетный магнитофон заказал, внукам покажу загрузку компьютера с магнитофона
У эмулятора на STM есть преимущество перед например, расперри или пс, он имеет маленький лаг, не больше одного фрейма (при желании можно сделать еще меньше) и мгновенное включение(можно сделать меньше 200 мсек).
Чтение с реального мага еще не писал(только с tap файлов). Нужно добавить запись состояния какой либо свободной ножки на сигнал с магнитофона (с разделительным конденсатором даже не придется усиливать сигнал с одного до 3.3 вольта)или запустить встроенный ADC(не хотелось бы, он прожорливый)
На видеовходе телевизора по идее согласующий резистор 75 Ом просаживает сигнал, иначе был бы белый экран.
Снимать можно было бы на плату видеозахвата, но не было бы той тёплой телевизионной ламповости.
Можно, кстати, использовать кинескопный видеодомофон — эмулятор поместится в корпус, а клавиатуру телефона можно скоммутировать на i/o и управлять играми с её помощью.
за проделанную работу респект… но не греет (во всех смыслах) как спек на рассыпухе…
Что у этого хорошего эмулятора со звуком? На видео в первой же игре (Cauldron II) вместо музыки непонятный набор звуков напоминающий оригинал весьма отдаленно.
Я подумаю что нужно сделать.
Вот лог эвентов предполеднее число — кол-во изменений состояния спикера за 20 мсек.
t=25 36 90 0
tt=22 36 729 0
tt=20 36 766 0
tt=25 36 90 0
tt=22 36 729 0
tt=20 36 710 0
tt=24 36 90 0
это на секундочку 700*50 = 35 килогерц. Подумаю как приостанавливать испонение до конца интервала в 20 мсек, пока буфер звука не освободится
И да, спасибо, не обратил внимания.
soundEvents(100);
{
//z80_interrupt();
for(int tt = 0;tt<SINCLAIR_FLAGS.T69888;tt+=500)
{
z80_run(tt);
procKeyb();
// new lines prevent sound buffer overflow
if(aSOUND_EVENTS_size()>SOUND_EVENT_ARRAY_SIZE/2)
{
proccesSoundEvents_time();
soundEvents(100);
}
}
z80_run(SINCLAIR_FLAGS.T69888);
}
setTapeSpeedImp();
uint32_t cputime = HAL_GetTick() - tickstart;
uint32_t sound_events = aSOUND_EVENTS_size();
proccesSoundEvents_time();
в пентагон, балтик и т.п. — прошитые определенным образом пзу РТ4/РЕ3
у термина «эмулятор» есть четкое определение — компьютерная ПРОГРАММА, позволяющая эмулировать (имитировать) другую программу или устройство.
В тоже самое время «клон» (в отношении аппаратных средств) означает полную или почти полную идентичность и наличие СОВМЕСТИМОСТИ.
1.Добавить Low pass filter c с частотой среза в пару тройку мегагерц и делитель до одного вольта с трех вольт.Скорее всего поможет. Хотя бы просто резистор на 100 Ом последовательно и конденсатор 1 нано параллельно. Или катушечку небольшую последовательно.
2.Если ничего не помогает поиграть с уровнями в файле main.cpp
#define MAX_LEVEL 7
#define ZERO_LEVEL 0
#define BASE_LEVEL 3 < 2 до 4
#define SYNC_LEVEL 0 < 0 до 1
файл /BLta.c генерится с помощью rlib/makeTable.c (константы должны быть те же, не успел поправить)
cd rlib
gcc -c makeTable.c -o makeTable
./makeTable >../Src/BLta.c
Но проблема врядли с этим просто сигнал очень шумит на высоких частотах. Старым телевизорам это пофиг, а вот новым нет
Столбцы плывут, если точнее. Это хорошо видно на экранах с вертикальными полосами.
1 сам телевизор немного плывет. Он и с расберри плывет чуток У меня нет принципиальной схемы да и день искать поплывший конденсатор.
2. Есть небольшое подёргивание тимингов начала строк. Это может быть наложение. DMA звука и видео. С этим особо нечего делать. Большой ЛСД Телевизор их игнорирует (у него нет инерции развертки ) и работает нормально.
3. Может где нибудь ошибся. Но мой скоп не злопамятный (маленький буфер истории ) и посмотреть детально не получается.
Большой ЛСД Телевизор… работает нормально.Пробовали? Поздние кинескопные даже при ускоренном воспроизведении с видеомагнитофона уходят в синий экран (зараза!), что сильно мешает при работе с видеокассетами.
Это я про композитный сигнал. А для трех отдельных каналов, я подумаю. У меня на двух, при включении USB каналы разъезжались, даже на одном таймере. И все равно будут нужны дополнительные резисторы.
Нужно еще и соблюсти временные интервалы начала строк.
А на три отдельных канала проблема с их синхронизацией и свободными пинами. Посмотрите вот здесь (это не мое) github.com/abelykh0/stm32f407-z80emu
В большинстве игр для Sinclair поддерживалось управление, например с Kempston Joystick, достаточно всего несколько ног.
Такой эмулятор может быть полезен для обучения детей из беднейших стран
Наверно. Если подарить им телевизор и USB клавиатуру.
Самый дешевый будет все таки в районе $10. Что то типа stm32f103 +2.8 inch ili9341 с тачем + механический или солнечный генератор + sd card. И тоже с эмуляцией спекки. Для него много программ и компиляторов. Типа этого habr.com/ru/post/412325
ведь там получалось до 16 градаций
15 -два черных было.А пятнадцать получить можно, если поднять частоту до 96MHz.
Самый высокий приоритет не гарантирует равномерность. Допустим сработало прерывание, мк лезет в таблицу векторов, я так понимаю она во флеше, т.е. добавляются такты ожидания, затем то же самое происходит при переходе к самому обработчику, но у мк есть ART и он может все нужные данные закешировать, т.е. тайминги могут отличаться на весьма значительное количество тактов. Далее, если прерывание сработало сразу вслед за предыдущим, то может не потребоваться сохранять на стеке регистры, они там уже есть — это минус 6 тактов. Помимо этого есть атомарные операции, например, невыровненный доступ или bit banding, если DMA пытается читать из памяти, то проц может занять шину сразу на несколько тактов и тоже будет небольшая задержка. В идеале видеобуфер должен быть в другой SRAM к которой проц во время вывода не обращается, а у F401 она только одна. То же самое с портами, опрос единственной кнопки будет временами тормозить вывод данных в порт и т.д… Тут нужен или QSPI, или сразу брать мк с LTDC, типа относительно дешевого H750, на нем можно выделить буфер для 800x600 и еще на спектрум-512 RAM останется.
Не будет оно нормально выглядеть, даже если на ПК делать...
Принцип какой? Если просто удваивать один из пикселей, то получается жуть, а что еще можно сделать при таком количестве цветов?
Ладно. Каждые 2х2 дают 16 комбинаций. Для каждой из них сделан предрасчет, какой из 3 цветов ( ф, б, или интерполированный) использовать, для каждой позиции в 3х3. И это будет практически корректная линейная интерполяция. И клешинг тут играет на руку
Ясно, если добавляются не спектрумовские цвета, то это нужно видеть, но если брать популярные алгоритмы типа hqx, то там даже при большем увеличении и большем количестве цветов все равно картинка получается мутноватая.
8 оттенков серого, или ZX Spectrum48 за $3