Небольшая коллекция отечественных эмуляторов и игр собранная за последние лет 10 , большую часть которой скорее всего можно найти в интернете, надеюсь будет полезна.
https://yadi.sk/d/0yMk5qfbm22Yv
Небольшая коллекция отечественных эмуляторов и игр собранная за последние лет 10 , большую часть которой скорее всего можно найти в интернете, надеюсь будет полезна.
https://yadi.sk/d/0yMk5qfbm22Yv
Последний раз редактировалось isilva; 06.12.2015 в 03:59. Причина: выложил на яндекс диск
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Дабы не плодить темы пишу сюда...
Создатели эмуляторов, поделитесь, пожалуйста соображениями.
По какому принципу строятся данный программный продукт.
Может есть какие-то полезные ссылки по данной тематике.
Интересует мат часть и все сопутствующие моменты...
В целях самообразования.
Для начала советую взять исходник эмулятора машинки которую хорошо знаешь на языке в котором прекрасно ориентируешься. Разобраться что там к чему. Готовых эмуляторов сейчас велико множество и многие из них с открытым кодом. Большая часть из них написана на C и C++.
Допустим берёшься за свой проект. Начинается обычно с эмуляции процессора -- задача добиться исполнения команд, получить этакий "шагающий экскаватор". Обычно на этом этапе уже нужна хоть какая-то реализация памяти. Дальше улучшаешь работу с памятью, и добавляешь эмуляцию видео -- задача получить картинку. Затем реализуешь клавиатуру. Потом прочий ввод/вывод -- звук, магнитофон, флопповод, жёсткий диск.
Очень полезны бывают отладочные инструменты: встроенный дизассемблер, отладчик с функциями шага и прогона до точки останова. Такие вещи позволяют намного меньше ползать по отладчику в среде разработки.
Открытые проекты в которых я участвую:
http://code.google.com/p/ukncbtl/ -- эмулятор УКНЦ (процессор 1801ВМ2) на C++, интерфейс на Win32 и под Qt
http://code.google.com/p/bkbtl/ -- эмулятор БК-0010 на C++, интерфейс под Win32, Qt, SDL
http://code.google.com/p/nzeemin-ope...VectrexSdl/src -- эмулятор консоли Vectrex на C, интерфейс на SDL -- порт для Dingoo A320
Ссылки:
- http://plg.lrn.ru/doc/emu-howto.html -- статья Марата Файзуллина, довольно поверхностная
- http://aarongiles.com/?p=137 -- CPU Scheduling in MAME -- серьёзная статья о принципах эмуляции в MAME
Принцип простой, начни с процессора. Это просто интерпретатор байт-кода. А дальше втянешься
b2m, Может ткнёте пальцем на пару-тройку каких-нибудь открытых проектов. Оно то на конкретных примерах учиться нагляднее.
Эмулятор Радио РК-86 на Дельфи
http://musson.zbord.ru/viewtopic.php?t=77
Корвет С++
БК-0010 С++
Специалист-МХ Паскаль
И это только по тем ссылкам, что у меня на сайте. А нагуглить можно гораздо больше. Но я бы рекомендовал сначала самому попробовать, так интереснее. А чужие исходники интересны лишь тем, что там можно найти информацию по портам, раскладке памяти, формате видео-экрана и др. ценную информацию об эмулируемом компьютере.
Также, существуют целые библиотеки для эмуляции "покорпусно" - типа таймеров, параллельных и последовательных портов и т.п. Я считаю, нужно такое просто заимствовать, т.к. считаю процесс эмулирования чипов малоинтересным, куда как интереснее слепить "из кубиков" уже целевую машинку и посмотреть как она запищит.
К сожалению, такое мне попадалось в-основном на C (я сам использую Паскаль, и приходится аналогичное либо писать с нуля, либо портировать), поэтому ссылки не сохранил. Но думаю, легко прогуглится.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)