74LS00 писал(а):Я видел разные попытки энтузиастов одиночек, но ничего путного на МК не увидел.
Цели у всех разные и критерии оценки тоже.
У меня всё скромно. Хочу собрать спектрум, чтобы недорого и чтобы в клавиатуру умещался. Загрузка была с аудиовхода ну и выгрузка тоже. Всё почти как в оригинале, только немного удобнее.
Видеовыход у меня VGA что лишает некоторых "фишек", но даёт возможность подключать хоть к монитору, хоть к современному ТВ. Может добавлю композит как опцию.
Порт для джойстика тоже должен быть. Вот пока не решил колхозить ли подключение джойстика сеги или денди или сделать по USB.
USB я попробовал - не понравилось. Если у джойстика есть аналоговый стик, то он генерит события и их приходится фильтровать, подстраиваясь под конкретный джойстик, что не универсально.
Естественно, достичь уровня совместимости с реальным железом нереально. Но и советские клоны не очень то соответвовали оригиналу.
Как раз вчера решал проблему, очень типичную для советских клонов. В некоторых играх текстуры мерцают. Происходит это потому, что программисты их перерисовывают когда, как они думают, луч развертки находится за пределами видимой области. Но в советских клонах прерывание на процессор и начало развёртки совпадало, в то время как в оригинале прерывание запаздывало. В общем, я сымитировал это запоздание через буфер экрана, работающий синхронно с процессором и мерцание пропало.
Но есть ещё над чем работать. Например, эмуляция процессора не идеальна. Простые операции, работают как надо, но сложные с префиксами, особенно незапланированные разработчиками двойные и тройные не отрабатываются. Можно доделать уже существующую эмуляцию, погрузившись в эту тему с головой или попробовать другую реализацию Z80 на си. Некоторые программы после загрузки не стартуют, а перезагружают машину. Это связано с тем, что процессор находится либо не с том состоянии, либо получает некорректно обрабатываемую команду.
AlexS4 писал(а):вот включаяя симуляцию самого z80 на xilinx fpga
Это совсем другое измерение жизни. Так можно и оригинал полностью повторить. Всё же это ближе к реальному железу.
А эмуляция программно это, как Вы правильно заметили, чистый спорт. Это скорее о том как не совсем подходящими средствами сделать что-то совершенно непрактичное. Хотя как посмотреть.
Меня к созданию подобного эмулятора подтолкнуло то, что реальное железо стоит конкретных денег даже в убитом состоянии. А ESP32 около 2$. Внешней обвязки почти никакой. И готовые проекты имеются. Вот я и подумал, что вот возьму и прошью один из этих проектов и получу почти нормальный спектрум, с незначительными для меня оговорками, да ещё и в чём то удобнее. Но оказалось, что ни один из проектов не может загружаться с кассеты, что портит антураж. Вот и начал вникать и возиться с этими проектами, скрещивая одно с другим. Из одного реализацию USB выдернул, для клавиатуры, из другого процессора, так как там такты нормально считались(как я в начале думал). Ну а остальной ход событий я тут описал.
Тут пишу исключительно чтобы разведать интерес к подобной теме. Если будет интерес, то как доведу до ума более-менее опубликую здесь. Ну а нет - так нет. Может и сам наиграюсь и заброшу.