Как стать автором
Обновить

Комментарии 45

белый магнитофон

По-моему такие только с микрофона и радиоприемника записывали. Линейного входа в них нет.
Есть вход с внешнего микрофона. И выход на наушники. Специально такой смотрел. Да и паяльник у меня не отняли ещё.
Лишь бы хоть как нибудь писал, а то я засомневался. Головка стирания — похоже просто постоянный магнит.

А если нет, ничего страшного. Сигнал через конденсатор, микрофон нафиг, и готов линейный вход. Я с безымянной магнитолой в девяностых такое делал.

«Чип AY-3-8910 не то что бы сильно сложный, но документация на него скорее предназначена для пользователей и интеграторов, а не для эмуляции/симуляции. О многом приходилось скорее догадываться и смотреть по коду разных эмуляторов, чем просто сесть и написать по документации. Возможно, что где-то и не угадал… И фокус написать его нетребовательным к СPU ресурсам. Вроде получилось.»

Снимаю кепку. Написать эмулятор без пятисотстраничного талмуда «туда не ходи, сюда ходи» — это безумно круто.

ПЛИСы накапливаете про запас в связи со скупкой на корню производителей?

«белый магнитофон для демонстрации загрузок компьютеров внукам. Нет ничего дороже $30»
Ну а как, это же тёплый механический магнитофон, а не холодная стекляшка.

«Эмулятор z80 прогонял на них на всех, кроме программера для альтеры и магнитофона. На некоторых и эмулятор 80286-го прогнал.»
На очереди — терминал подключения к Матрице.

Успешной реализации всех затей и да не оскудеет на них Ваша фантазия.
Плиски — это потому что на stm32 максимум — это эмуляция 8086 на 3-5 мегагерц. Даже Спектрум эмулируется со многими ограничениями. А хотелось бы замутить чего нибудь покруче. Ну и потренироваться в программировании плисок. Для меня это новенькое, остальное (Intel & Nvidia ) поднадоело на работе.
Не нашел на ebay по цене пачки сигарет :(. Я вообщем не экономлю на платках, это просто для фана. Вот эти XC6SLX9 — есть по $3 +$0.6 PSRAM+$0.2winbond flash. На ту же плату можно прицепить $4 дисплей. Все вместе в спичечный коробок засунуть и запустить эмулятор 8086. А на нем эмулятор spectrum-а под MS-DOS. Но обвязку лень делать, там полно своих граблей.
Вот эти XC6SLX9 — есть по $3 +$0.6 PSRAM+$0.2winbond flash.
а это где?
Понял, думал что все перечисленное продается уже запаянное на плату. А так, действительно немного геморройно…
Я думал на эту тему. Но торговля это не мое. Совок из меня никуда не делся.

8086 — медленный проц с многотактовыми инструкциями, думаю на STM32H7, который гонится почти до 700МHz, умеет выполнять по две инструкции за такт, имеет кеш и CCM для выполнения кода, а также метр RAM которая позволяет отказаться от медленной SDRAM, должно получиться явно больше чем 8086 на 3-5 мегагерц. Аналогично с Atari ST, должно тянуть без проблем, там обвязка простая, в отличии от амиги.

Платы STM32H7 — без ничего, стоят как паровоз ~$20(вверху слева на фотке). Даже обход 8 мегабайт выше-упомянутой PSRAM64-H (она на фотке припаяна вместо флешки) в режиме QSPI через эмуляцию кеша занимает около 4 секунд. Это слишком медленно. У меня есть заготовки и бенчи и на 68000 и на 8088. Могу поделиться. Если знаете как ускорить, welcome. И все рано проиграют FPGA раз в тридцать на эмуляции 8086-80286(важно) или MC68000(не так важно), при большей цене.

Отдельно H750 стоит 4-5$, в действительности это H753 с двумя метрами флеша, из которого проверено только 128КБ, учитывая что там еще и два банка рабочий метр можно получить практически гарантированно. В простейшем случае его можно хоть на переходник впаять и собрать все на макетке… Насчем скорости QSPI не скажу, память такая есть, но не тестил еще. Однако по докам даже если обращаться к одному байту, то нужно передать команду, адрес в quad режиме, для чтения еще добавляется 6 тактов ожидания и потом 2 такта на данные, итого 16-22 такта при частоте 144MHz, т.е. 2 метра в секунду — это мало даже в таком самом медленном случае(хотя можно 24 бит адреса побитно передавать). В любом случае 22 такта — это в десятки раз меньше, чем затратит на обращение к внешней памяти 8086.

Все можно, но зачем? Для каждой системы есть наиболее походящее железо. Для эмуляции 8086-80286 STM подходит не очень. Вы наверное забыли, насколько медленные были XT да и AT тоже. Делал эмуляцию на FPGA (вот на этом EP4CE15, снизу справа)- если меньше 20-30 мегагерц, то кроме «диггера» ничего не двигается. Турбо Си еле шевелится. Даже на raspi-4 (не в моде JIT) бежит медленно. А это совсем не stm32.

Официальная XT была с 8-ми битной шиной и работала на смешных 4.77 MHz, а официальная AT — это 6-8 MHz. Ориентировочно такой комп можно эмулировать без тормозов и программ рассчитанных под такое железо явно больше, чем для спектрума. Если для нормальной работы нужно 20-30 MHz, значит это уже софт предназначенный для 386 и выше, про него речь не идет. На FPGA конечно будет быстрее, но доступнее ли?

У меня $19.23 с доставкой. И для большинства эту плату нужно купить конкретно под эмулятор, в то время как в случае STM32 на них собирают эмулятор потому что такая плата уже есть, или есть похожая и другой STM32 тоже может быть как-то использован в иных целях.

Ну а я купил несколько, так что теперь они у меня все равно валяются, как и STM-ки всякие разные. Вот и хочу потренироваться, пока недорого и спалить не жалко. Плата действительно крутая за свои деньги. Кстати — если бы я делал плату для себя с нуля(PCB) — то STM32F401 — как контроллер клавиатуры и SD CARD, а остальное SPARTAN6 XC6SLX9 и SDRAM 32MB
в режиме QSPI
Это же очень медленно. Параллельная память — наше всё!
Зато дешевая. И на плату садится вместо флешки.

Эмулятор 286 — это уже возможность портировать GW-BASIC первой версии, который под лицензией MIT. Он к ОЗУ нетребователен. Нужно только переделать так, чтобы запускался не из DOS, а с нулевого адреса, чтобы места меньше требовалось.


Ещё можно попробовать К1801ВМ1 сэмулировать.

Не думали попробовать сэмулировать амигу? Вот другой проект, где это было сделано.
Не думали попробовать сэмулировать амигу?

На чем именно? STM32F407 — не потянет однозначно. Хотя бы по памяти. Или нужен custom board. Сомневаюсь что и по скорости потянет. И будет ооочееенннь меедлеенно.
Вот другой проект, где это было сделано

Да, я видел, спасибо. А насчет Амиги — думаю.

"Эмулятор z80 прогонял на них на всех, кроме программера для альтеры и магнитофона" — а на программаторе-свистке в левом верхнем углу (под клавиатурой) — неужели тоже?

Я уже давно его писал. Сейчас только подключил к проекту. Ну не могу я за всем уследить…
Простите, ни как не хотел обидеть, просто уточнил что техноманьяки его отреверсили.
Очень надеюсь что кто нибудь выполнит реверс OPL2, все таки классический FM синтезатор YM3812 внутри хитро устроен.
Да я и не обиделся, я понял желание помочь.Забавно, что в проекте IBM PC на FPGA- next186, эмуляция OPL2 выполнена как раз на ассемблере Z80, тоже написанному на верилоге(z80 на верилоге, а не ассемблер, разумеется), в том же FPGA.
Надо посмотреть, таких извращений преодолений мне еще пока не попадалось;)
А эти варианты реализации эмуляции OPL2/OPL3 наверное уже видели?
OPL2 emulator
ADLMIDI: OPL3 MIDI player for Linux and Windows
Yamaha YMF262 (OPL3) emulator
Я честно говоря не фанат миди. После многочисленных попыток понять как добиться нормального звука, при проигрывании на разных миди девайсах, понял что каждый миди файл проигрывается нормально только на том девайсе, на котором его писали. И все. А на остальных получается или полное гав..., или не совсем полное, но все равно г, ну может быть за исключением одного пиано.
Собственно поэтому, этот формат практически мертв, и им никто не пользуется за исключением самих музыкантов. А я не музыкант :(. :)
То есть плохая стандартизация тут сыграла свою роль. Соответственно поэтому и есть сложности с эмуляцией миди карт
Ну OPL(FM синтез) это не совсем миди. А в таком негативном отношении к миди, виноваты творческая натура профессиональных музыкантов. Когда приходило время написать саундтрек к игрушке, музыкант брал в руки любимый Корг, Ямаху, Роланд и забабахивал крутой трек. Демонстрирует его, все в отпаде от такого классного трека. И тут из задних рядов раздается вопрос «А как это будет звучать на Adlib, SB, SBPro?» Тут же следует ответ музыканта — «Да также! На синтезаторе General MIDI, у вас на звуковушках General MIDI! Какие проблемы?» Объяснение что это «не совсем так просто», и просьба подрихтовать полученную мелодию под целевой синтезатор оканчивается коронной фразой музыканта «Я творческая личность и мне влом не могу переделывать свою нетленку под вашу какашку звуковушку!» И хлопает дверью.
И на выходе мы получаем, то что получаем.
Но если музыканты действительно профессионалы то и результат был совершенно другой.

Приведу в качестве примера трек к игре DUNE от Cryo, в которой наверное наиболее ярко был показан потенциал FM синтеза

SB vs MT-32

Adlib (OPL2)

Adlib Gold (OPL3)

MT-32

И еще надо учесть тот факт, что реализация OPL2/OPL3 могла существенно отличаться у разных производителей звуковых карт

Cравнение FM синтезаторов (AWE64/ESS/Yamaha/OPTI)
1. Creative Labs SoundBlaster AWE64 digital capture

2. Ess1868

3. Ymf718


Full Dune Opl2 soundtrack:
OptiFM


После всех этих мучений, первым шагом к унификации звучания саундтрека, стала MOD музыка в которых звучали именно те инструменты что и хотел создатель, потом была эпоха CD-Audio треков на диске с игрой, ну а потом эпоха потоковой музыки, первопроходцем которого был C&C.
P.S. Не могу не поделиться великолепным смикшированным треком DUNE в котором одновременно звучат AdLib + MT-32 + AdLib Gold


Да, дюну я помню, она шикарна.А насчёт хорош fm синтезатор или плох- мы знаем ответ. Не бывает совсем плохих инструментов, есть только плохие музыканты
Ну трек Дюны настолько хорош, что когда я перечитываю Фрэнка Херберта то ставлю фоновой музыкой трек из игры или DUNE:Space Opera для полного погружения. Надеялся что Вильнев пригласит Stéphane Picq для создания трека к новому фильму, но не срослось. :(
А про музыкантов абсолютно согласен, хороший музыкант и плохие (слабые) инструменты заставит играть хорошо.
Ещё есть Lost Eden.
Херберт вообще чума. Я от него тащился и дети мои тоже.
Херберт гений, его даже «малиновый» перевод не смог поломать. Хотя иногда читая книгу зависал с переходом персонажа из он->она и наоборот. Но глаза в кучу и вперед ;)
Экран 320х240 с параллельной 16bit шиной FSMC стоит дороже платы STM32F407, может использовать значительно более дешевый экран 2.8" на контроллере ILI9341 c SPI интерфейсом?
Могу конечно. Это несложно. И код для него практически такой же.Но на некоторых играх или будет тормозить, или придется запускать дисплей далеко за пределами его спецификации по скорости SPI. Да и провода болтаться будут.
Бета128 ака трдос нехватает… С подключением образов дисков .trd
Впрочем, подозреваю, что не влезет и надо будет что-нибудь выкидывать.
Ну почему же, влезет конечно. Место ещё есть, можно basic из cp/m (там и basic и bios )выкинуть. Время только надо, разобрать работу контроллера диска, у меня не было такого.
Beta128 особо и не нужен. Лучше divmmc, там по харду мизер совсем, зато евойным софтом делается все остальное. Там и tr-dos есть с загрузкой .trd и моментальная загрузка .tap и еще куча всего.
Это практически тоже самое. Никто и не собирался собирать FDD, а только эмуляцию на .«TRD» образах. А ".TAP" он и так грузит у меня.
Если без аппаратного флопика, тогда еще и его эмулировать пришлось бы для совместимости с оригинальным tr-dos. В софте это все уже есть, а вот для fpga готовой реализации не видел. Начал уже было сам делать, выходило весьма не просто, но потом нашел divmmc…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории