Разработка и ромхакинг > Ромхакинг
Написать эмулятор NES самому
teremochek:
--- Цитата: Smoke от 11 Ноября 2013, 23:25:16 ---
Ага, "Написание эмулятора денди для чайников", лол :lol:
--- Конец цитаты ---
Конечно, речь не идет о написании полноценного эмулятора, который запускает все игры.
Самый простой вариант, с запуском 1- 2 игры. Наверняка найдутся русские люди, которые сумеют показать и доходчиво объяснить, как работают все детали..
Удивительно, что еще не написали такую книгу. Видимо для издателей важней художественная литература про зомбей :lol:
evgeny:
Технические документы по NES есть. Для тех, то способен написать эмулятор этого достаточно.
Guyver(X.B.M.):
Ещё есть куча сырцов в нете. Я в своё время доделывал один эмулятор, выбирал самый простой, где кода поменьше было ;о))) Особенность его была в том, что он был заточен под midi воспроизведение звуков и музыки из рома... Но автор его так и не доделал. Мне удалось его допилить, даже при том, что я не программер, да и в архитектуре НЕС не шарю вообще. Так что если захотеть - можно всё понять и сделать... Зачем писать с нуля, когда уже всё написано? Бери, разбирайся да правь...
igoru:
Guyver(X.B.M.), а билд остался какой-нибудь? Может скинешь поглядеть?
Smoke:
На самом деле ответ почему такой книги нет прост. Знающим людям тупо либо в падлу это делать, либо нет времени.
s1nka:
На эту тему тут есть одна хорошая фраза:
--- Цитата ---Before considering developing your own NES emulator, ask yourself if your efforts may be better spent helping out those who already have emulators in development!
--- Конец цитаты ---
При этом развернуться есть куда.
Mr2:
--- Цитата: teremochek от 12 Ноября 2013, 11:58:32 ---Удивительно, что еще не написали такую книгу.
--- Конец цитаты ---
В книге был бы смысл, если бы не было готовых эмуляторов.
Эмулятор повторяет работу консоли. Изучаешь как консоль обрабатывает данные из картриджа, и програмно повторяешь её действия.
Всё гениальное просто. :lol:
teremochek:
--- Цитата: evgeny от 12 Ноября 2013, 12:10:15 ---Технические документы по NES есть. Для тех, то способен написать эмулятор этого достаточно.
--- Конец цитаты ---
Написать способны все, кто умеет писать.
Другое дело, что хочется еще и понять.
Надо-же опыт получить..
--- Цитата: s1nka от 12 Ноября 2013, 16:01:22 ---На эту тему тут есть одна хорошая фраза:При этом развернуться есть куда.
--- Конец цитаты ---
Респект!
--- Цитата: Smoke от 12 Ноября 2013, 15:44:10 ---На самом деле ответ почему такой книги нет прост. Знающим людям тупо либо в падлу это делать, либо нет времени.
--- Конец цитаты ---
Да. И еще все-таки, такую книгу не просто написать (Если брать разбор НЕС целиком, со всеми мелочами).
И чего ради..
Кроме того, действительно, исходников полно.
--- Цитата: Guyver(X.B.M.) от 12 Ноября 2013, 14:12:03 ---Ещё есть куча сырцов в нете. Я в своё время доделывал один эмулятор, выбирал самый простой, где кода поменьше было ;о))) Особенность его была в том, что он был заточен под midi воспроизведение звуков и музыки из рома... Но автор его так и не доделал. Мне удалось его допилить, даже при том, что я не программер, да и в архитектуре НЕС не шарю вообще. Так что если захотеть - можно всё понять и сделать... Зачем писать с нуля, когда уже всё написано? Бери, разбирайся да правь...
--- Конец цитаты ---
Главной задачей для меня разобраться как эмулятор работает. А писать новый эмулятор я не собираюсь :)
Взял посмотреть исходник. Ничего не понять.. (Да тем более там файлов куча, не знаю какой открывать.. )
--- Цитата: Guyver(X.B.M.) от 12 Ноября 2013, 14:12:03 ---..если захотеть - можно всё понять и сделать...
--- Конец цитаты ---
Золотые слова.
s1nka:
teremochek, если интересно просто разобраться как работает эмулятор, то многие советую изучить работу CHIP8. Довольно легко, да и статей на русском куча в интернетах. Если мало, то можно усложниться до CHIP16. Ну, а дальше идти уже более сложными системами.
MobNet:
По поводу сорцев джава сорцев ток один тот что я постил, на скока я знаю,а чтоб понять как работает сама приставка пусть учит программирование под денди.
А вообще эта консоль самая простая ее эмулятор есть даже на JavaScript
teremochek:
Пытался разобраться, в эмуляции CPU(NES).
Порядок действий:
1) *Читаем из рома 1 байт. (код операции)
2) *Исходя из кода получаем : команду, способ адресации, длину, время.
3) Читаем еще 0 - 2 байт, исходя из длинны. ( Получаем базовый Адрес)
4) Преобразуем Адрес, полученным способом адресации.
5) Читаем память по преобразованному адресу.
6) *Выполняем команду (со значением полученным из адреса)
7) Сохраняем получившееся значение в преобразованный Адрес.
8) *Прибавляем счетчик времени.
Счетчик команд увеличивается при чтении байта из рома, и изменяется при выполнении некоторых команд.
teremochek:
--- Цитата: HoRRoR от 10 Мая 2011, 19:27:26 ---http://dendy.migera.ru/
--- Конец цитаты ---
Спасибо, информативный сайт.
(Ранее не заметил эго)
Раз уж заглянул -> Какой минимум нужен для эмуляции игры с изображением?
(Как я понимаю, без кода графического процессора игра не сможет эмулироватся)
Сможет-ли работать игра без звукового сопроцессора?
1.Первое что нужно загрузить РОМ в память. (Загрузчик)
2.Основной процессор (6502) - обязательно нужен!, выполняет код.
3.Память. В некоторых эмуляторах это отдельный класс. Его задача обмен данных процессора с остальными устройствами, которые отражаются в его адресном пространстве.
4.Графический процессор. Выводит изображение на экран.
Навигация
Перейти к полной версии