Обсуждаем цифровые устройства...
Ответить

Re: Zx spectrum из современных микросхем

Сб окт 16, 2021 00:40:58

Вроде мне по AY всё понятно в первом приближении: 3 канала + шумовой, управляются через регистры. Но пока не пойму как он должен звучать вживую, заэмулировать нормально не получится. Сейчас воткнул реализацию AY из другого проекта эмулятора, но там без шумового канала, Запустил пару демок. Даже играет что-то. Звук немного грязноват как по мне, но может так и надо :) . Видимо шумовой канал должен был сглаживать переходы, создавать звуковой фон и задавать ритм. Поищу, может кто ещё озадачился эмуляцией AY. Ну и на компьютере какой нибудь эмулятор запущу, послушаю. Может что получится.

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

UPD/ Если с генератором шума всё понятно.( Он работает независимо, но его присутствие в одном из 3 выходных каналов задаётся соответствующими битами в регистре миксера) , то с огибающей не очень ясно. Как изменяется её форма при программировании соответсутвующего регистра? Даташит тоже не очень то объясняет, так как я в объяснение на русском не могу въехать, а уж по английски.... Реальная железка решит все вопросы разом. Правда что китайцы пришлют загадка. Помимо AY-3-8910 / AY-3-8912 есть вроде ещё какие-то аналоги.

Re: Zx spectrum из современных микросхем

Вс окт 17, 2021 15:33:02

А вам хочется просто самому написать эмулятор спектрума?
А то есть уже очень интересные проекты с открытыми исходниками, подумал может вам такое будет интересно.
Вот один из них
https://habr.com/ru/post/558954/

Re: Zx spectrum из современных микросхем

Вс окт 17, 2021 17:46:49

Пока задача стоит сделать эмулятор максимально повторяющий функционал настоящего zx spectrum128 с чипом AY со следующими изменениями:
1.Подключение к монитору по D-SUB, а не к телевизору, как в оригинале.
2.Использование стандартной клавиатуры, чтобы не колхозить

Остальные функции (напр.загрузка-выгрузка программ со звуковых файлов(или кассет)) должны работать как в оригинале.

Есть парочка открытых проектов на эту тему, но не совсем идеально мне подходят, вот и колхожу своё, оттолкнувшись от готового.

Цель пока просто поспектрумировать-понастальгировать. Реальное железо нынче дорого, да и не нужно оно мне в том состоянии в котором его продают. Это я уже выяснил на своём опыте.

Re: Zx spectrum из современных микросхем

Вс окт 17, 2021 19:27:01

подозреваю, что этот регистрисвязан с кадровой разверткой...

У Z80 был регистр регенерации памяти для работы с динамическим ОЗУ. Посмотрите в его сторону.

Re: Zx spectrum из современных микросхем

Вс окт 17, 2021 21:53:19

в спектруме этот механизм не использовался, и он по скоростям скорее соответствует строчной развертке ;)

Re: Zx spectrum из современных микросхем

Вс окт 17, 2021 22:13:30

tonyk писал(а):У Z80 был регистр регенерации памяти для работы с динамическим ОЗУ. Посмотрите в его сторону.


Думаю, что для программы этот механизм почти прозрачен. Не знаю как там точно реализовано, но программы, которые на это бы расчитывали были бы не очень совместимы. Да и влияние регенерации на скорость работы равномерна и не более 1-2%, скорее всего. Так что такие тонкости пока для меня не актуальны. Я вот пытаюсь найти какую нибудь программу для мультиколора, чтобы понять как он коряво работает на моём неправильном железе, но это прямо проблема. Таких программ мало, а чтобы ещё без танцев с бубном переводились в wav для загрузки(.TZX,.TAP) ,таких по пальцам одной руки неаккуратного токаря пересчитать.

Re: Zx spectrum из современных микросхем

Чт окт 21, 2021 19:56:33

Ещё одно дополнение, вдруг кто-то будет сам разбираться в работе zx spectrum. Информация размазана по огромному количеству сайтов, но я ещё напишу здесь, вдруг кто-то наступит на те же грабли. Помимо того, что корректно должна обрабатываться команда HALT ещё важно вместе с сигналом прерывания посылать состояние шины для спектрума 255(0xff), некоторые программы это используют, так как в определённом режиме прерывания данные на шине это инструкция для процессора. Я долго не понимал почему некоторые программы после загрузки перезапускаются. И снова как с инструкцией HALT они ждут прерывания, но с параметром 0xff, если он равен 0, то рестарт. Иногда, правда, на шине данных может быть и не oxff, вроде как, но такое могут провернуть лишь специальные устройства. В большинстве случаев - не используется и процнессор вместе с сигналом IRQ получает 0xff.

Если у Вас есть ещё какие нибудь фишки архитектуры zx spectrum, очень буду благодарен, если поделитесь, а то отлавливать все особенности в отладчике в эмуляторе(который, наверное, тоже не лишён глюков) слегка муторно. На реальном железе было бы интереснее, но его пока нет. Вот жду от китайцев чип AY, чтобы понять как же работает режим огибающей.

Re: Zx spectrum из современных микросхем

Вс окт 24, 2021 01:25:12

На zx pc есть куча всяких схем. Там же есть и популярный в рунетах ютубер с обзорами разных поделок, в общем то он один по спеку.
Собирать на рыссыпухе не вижу смысла, оно не работает с картой памяти.
Для карты памяти и клавы нужен отдельный МК, но такие версии на ПЛИС хотя тоже есть и ПЗУ и проц.
Есть продвинутые версии со слотами и флопиком, но опять же сложность и цена.

Видел версию на AVR, их там много, в общем гора деталей и чертовски сложно, смысла в этом нет. Такаяже шляпа с STM, в общем на МК пока никто спек неосилил. Да это и не удивительно смотря как x86 ПК выворачивает при запуске монструозного неповоротливого эмуля.

Бумажной литературы нет, если не считать специальные журналы из 90 которые были чисто по спеку. Про этот комп никакие другие издания не писали.

Не гонитесь за совместимостью, её нет, у наших свой стандарт, он не оригинальный.
Есть книга по ULA и вроде как есть фото кристалла по которому написали её заменитель, который можно купить, вот он максимально оригинальный. А то что было в нашей стране, это другое.

Достойных эмулей не встречал, все неудобные

Re: Zx spectrum из современных микросхем

Вс окт 24, 2021 02:12:02

xspect напр в дебиане пакет spectemu-x11
- Sound support through Linux kernel sound-card driver.
- Snapshot saving and loading (.Z80 and .SNA format)
- Tape emulation: loading from tape files (.TAP and .TZX format)
- Optional quick loading of tapes.
- Saving to tape files.
- Separate utility to save tape files to real tape
- Configurable with config files and from command line
когдато я его пробовал, работает оч прилично. и естественно это опенсорс, можно там многое посмотреть думаю
https://www.linuxlinks.com/spectemu/

z80 на qemu симулируется отлично, это уже лет 20 работает ;)
https://wiki.qemu.org/Features/Z80

Re: Zx spectrum из современных микросхем

Вс окт 24, 2021 09:52:45

74LS00 писал(а):Видел версию на AVR, их там много, в общем гора деталей и чертовски сложно, смысла в этом нет. Такаяже шляпа с STM, в общем на МК пока никто спек неосилил. Да это и не удивительно смотря как x86 ПК выворачивает при запуске монструозного неповоротливого эмуля.

Пересмотрел все готовые варианты, на AVR и на STM и даже вроде на PIC видел. Самый интересный, мне показалось на ESP32. Самый смак это 2 ядра и ULP-по сути ещё один проц. внутри. Это позволяет не отказываясь от freeRTOS получить многозадачность и нужную производительность. А ULP нагрузить опросом клавиатуры или АЦП. Внешняя обвязка минимальная. В самом простом варианте 6 резисторов на ЦАП для VGA, и пару резисторов с конденсаторами для линейного входа загрузки с кассет. Но по хорошему сделать нормальную читалку на компараторе. На выходной пин звука просто конденсатор навесить. Короче - минимализм, собирается за час. В сети нашёл пару проектов. Один с USB клавиатурой и выходом на телевизор по композиту, другой с выходом на моитор и PS/2 клавиатурой. У обоих вариантов отсутствует вход загрузки с кассет, грузятся с SD карты. Я пока сшиваю эти 2 варианта. У одного взял реализацию USB, у другого VGA. Написал свою реализацию загрузчика с кассет. По сути и писать ничего не надо, если эмуляция Z80 работает более-менее синхронно, просто читай данные с порта и всё. Эмуляцию AY взял тоже готовую, но она без канала шума была - добавил. Пока идёт железный вариант AY для точной настройки программы разбираюсь во ввсяких нюансах, так как не все программы грузятся.

AlexS4 писал(а):когдато я его пробовал, работает оч прилично. и естественно это опенсорс, можно там многое посмотреть думаю
https://www.linuxlinks.com/spectemu/


Посмотрел краем глаза в реализацию команд процессора. Все разбито по группам,сразу наглядно указаны такты, а не так как в моей текущей реализации(сначала добавляем 4 такта, потом ещё что-то, где то вычитаем, где то забиваем) на первый взгляд очень приятно.

Re: Zx spectrum из современных микросхем

Ср окт 27, 2021 01:26:55

Я видел разные попытки энтузиастов одиночек, но ничего путного на МК не увидел. Ниодного готового проекта который можно повторить, да и повторивших тоже.

Инициативу кодеров повторить на отладочной плате не рассматриваю, ещё 10 лет назад IBM был запущен на отладочной плате, на том и похоронен, DOS запустили, потрясли своим свч, порты не реализовали кроме клавы и моника, и похоронили навсегда. Вот и со спеком так.

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

Re: Zx spectrum из современных микросхем

Ср окт 27, 2021 02:44:30

вообще их есть,
вот напр вся логика на altera de1
https://www.mike-stirling.com/retro-fpg ... n-an-fpga/

вот включаяя симуляцию самого z80 на xilinx fpga
https://github.com/RW9UAO/zx-spectrum48-fpga-xilinx


вот всякоразное собрано по теме
https://baltazarstudios.com/




ps понятно же что это непрактичные хобби-проекты, чистый спорт, и монетизация такого если и возможна то только через рекламу и пиар :))
вообще не понимаю смысл демотивационных постов когда явно не идет речь о совете "как проще и прагматичнее решить некую утилитарную задачу?",
косящихся прохожих вроде не ловят за шиворот ;) и не тащут работать над проектом, so можно же просто коситься пассивно :)))

Re: Zx spectrum из современных микросхем

Ср окт 27, 2021 12:08:58

74LS00 писал(а):Я видел разные попытки энтузиастов одиночек, но ничего путного на МК не увидел.


Цели у всех разные и критерии оценки тоже.

У меня всё скромно. Хочу собрать спектрум, чтобы недорого и чтобы в клавиатуру умещался. Загрузка была с аудиовхода ну и выгрузка тоже. Всё почти как в оригинале, только немного удобнее.
Видеовыход у меня VGA что лишает некоторых "фишек", но даёт возможность подключать хоть к монитору, хоть к современному ТВ. Может добавлю композит как опцию.
Порт для джойстика тоже должен быть. Вот пока не решил колхозить ли подключение джойстика сеги или денди или сделать по USB.
USB я попробовал - не понравилось. Если у джойстика есть аналоговый стик, то он генерит события и их приходится фильтровать, подстраиваясь под конкретный джойстик, что не универсально.

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

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

AlexS4 писал(а):вот включаяя симуляцию самого z80 на xilinx fpga


Это совсем другое измерение жизни. Так можно и оригинал полностью повторить. Всё же это ближе к реальному железу.

А эмуляция программно это, как Вы правильно заметили, чистый спорт. Это скорее о том как не совсем подходящими средствами сделать что-то совершенно непрактичное. Хотя как посмотреть.
Меня к созданию подобного эмулятора подтолкнуло то, что реальное железо стоит конкретных денег даже в убитом состоянии. А ESP32 около 2$. Внешней обвязки почти никакой. И готовые проекты имеются. Вот я и подумал, что вот возьму и прошью один из этих проектов и получу почти нормальный спектрум, с незначительными для меня оговорками, да ещё и в чём то удобнее. Но оказалось, что ни один из проектов не может загружаться с кассеты, что портит антураж. Вот и начал вникать и возиться с этими проектами, скрещивая одно с другим. Из одного реализацию USB выдернул, для клавиатуры, из другого процессора, так как там такты нормально считались(как я в начале думал). Ну а остальной ход событий я тут описал.

Тут пишу исключительно чтобы разведать интерес к подобной теме. Если будет интерес, то как доведу до ума более-менее опубликую здесь. Ну а нет - так нет. Может и сам наиграюсь и заброшу.

Re: Zx spectrum из современных микросхем

Ср окт 27, 2021 12:28:22

nHz, думаю обязательно надо публиковать!, интересующиеся обязательно найдутся но возможно не сразу. парураз находил решения своих практических задач во вроде бы странных хобби-проектах. иногда просто с удовольствием читаю подобное, и настальгирую по временам когда оставалось время и силы заниматься подобным из спортивного интереса :)

Re: Zx spectrum из современных микросхем

Чт окт 28, 2021 02:21:17

Ну вот опять сыпнули исходников. Ни бинарника, ни схемы, куда что цеплять, как приделать, какие параметры.
Для начала джостик купи нормальный, это баксов под 100. Не в стике там дело, он просто дерьмовый, они все дерьмовые, хорошие стики редкость, в китайцах их нет.
От деньди приделать не долго, в новодельном Эльфе есть схемка.
А вот про сегу не слышал, там чертовски сложно, и ненадёжно. Фактически из 9 проводов, половина нужна для 3 кнопок. да и сам крест там хреновый, опять же хороший джой придётся покупать баксов за 30.

Re: Zx spectrum из современных микросхем

Чт ноя 04, 2021 18:58:00

74LS00 писал(а):Для начала джостик купи нормальный, это баксов под 100.


Джойстик за 100$, для устройства за 5$?
Далеки Вы, олигархи, от простого народа.
Я просто купил без аналоговых стиков за 4$ и всё нормально, меня устраивает, учитывая неспешность большинства игр на спектруме.
Кнопки нажимаются чётко, примерно как на денди в детстве.

74LS00 писал(а):Ну вот опять сыпнули исходников. Ни бинарника, ни схемы, куда что цеплять, как приделать, какие параметры.


Не люблю я схемы исходники выкладывать сырыми. В крайнем случае только так делаю, если по другому не объяснить. Здесь просто советуюсь, ищу опытных людей, ну мало ли, вдруг.

Я не спешу, в любом случае выложу проект, может к следующему конкурсу на коте, если увижу интерес к этой теме.

Пока разбираюсь с мелочами, типа форматов файлов образов *.TRD, *.TAP и т.д. Загрузка с SD карты тоже не помешает, несмотря на загрузку с кассет. Доп. опция, кто хочет всего и сразу.
Есть, конечно готовые загрузчики в открытых проектах, но пока время не поджимает изучаю, в любом случае на пользу пойдёт.

Ещё параллельно изучаю открытые проекты NES(DENDY), было бы неплохо скрестить 2 этих мира в одном устройстве.

Для тех, кто не понимает зачем это всё, если есть эмуляторы на PC, скажу, что это совсем другой опыт использования, очень близкий к оригиналу. Всё таки отдельное устройство воспринимается совсем по другому.
Мгновенная загрузка - перезагрузка тоже играет роль. Пробовал эмулятор на распбери пай - не то. Загружается он как обычный компьютер и воспринимается соответственно. Цена тоже имеет значение.

Re: Zx spectrum из современных микросхем

Сб дек 04, 2021 17:12:12

У меня возник один вопрос по спектруму,если кто нибудь знает скажите ,пожалуйста,зачем в различных клонах спектрума типа speccybob и harlequin обрабатывать здесь MPEQ и RFSH почему нельзя обрабатывать только линии адреса А14 и А15? И можно ли эту микросхему заменить к155ид4?
Изображение

Re: Zx spectrum из современных микросхем

Вт дек 14, 2021 13:59:05

У меня возник один вопрос по спектруму,если кто нибудь знает скажите ,пожалуйста,зачем в различных клонах спектрума типа speccybob и harlequin обрабатывать здесь MPEQ и RFSH почему нельзя обрабатывать только линии адреса А14 и А15? И можно ли эту микросхему заменить к155ид4?
Изображение

Заменить 74138 на 155ИД4 можно. для вашего случая нужно использовать младшую половину дешифратора 155ид4. Дешифратор от 0 до3.

Re: Zx spectrum из современных микросхем

Вс янв 23, 2022 18:32:24

с Лисициным общались?
https://zx-pk.ru/threads/23671-avr-zx-s ... -v2_0.html

https://forum.cxem.net/index.php?/topic ... nt-3405956

Re: Zx spectrum из современных микросхем

Вс дек 04, 2022 14:55:52

интереса ради подниму тему.
Чем всё закончилось-то? )
Ответить