Сообщения без ответов | Активные темы Текущее время: 28 мар 2024, 13:55



Ответить на тему  [ Сообщений: 411 ]  На страницу Пред.  1 ... 17, 18, 19, 20, 21  След.
 Очень низкоуровневый эмулятор 6502 / NES 
Автор Сообщение
Сообщение 05 фев 2015, 02:00
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 19:37
Сообщения: 401
Откуда: Мытищи
Я немного не то подтверждал. Я прогнал тест OAM DECAY на денди, и получил результат аналогичный NTSC NES\FC.
Оригинальная ПАЛка проваливала тест и не разрушала "синюю линию" в кашу. Это "неправильное поведение", т.е. косяк ПАЛки

OAM reading on PAL NES
OAM reading on DENDY

Насчет использования DRAM, это предположение Drag'a.
Для меня темный лес как там всё это в потрохах микросхем работает.

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

_________________
Nestopia 1.37/1.40 Fixed


Сообщение 13 фев 2015, 00:41
Профиль
Аватара пользователя

Зарегистрирован:
05 ноя 2014, 23:03
Сообщения: 29
Нужна помощь. Проверьте, правильно ли я понял, как выполняется опкод с типом адресации ABS/ABX/ABY

Вот что у меня выходит, на примере ORA. Ориентируюсь на Хенсона в названиях.
T1, phi1 прошлого опкода - фетч опкода
T2, phi1 - извлечение младших 8 бит операнда, их подают в BI. На AI подают X/Y если ABX/ABY, 0/ADD если ABS. Результат, полагаю, должен быть в регистре ADD.
T3, phi1 - извлечение старших 8 бит операнда, и тут начинается уличная магия. Если нет переноса, то, полагаю, старшие операнды подаются на ADH из Data Latch. Следующий такт - T0. А вот если есть перенос...Тогда нужно подавать на DB в BI, а на AI - 0/ADD. Но вот незадача - в AI уже хранится результат предыдущего суммирования, и с ним надо что-то делать. Четкого свидетельства того, что именно происходит, у меня нет, а единственная моя идея плохо сочетается со схемой Хенсона. Идея в том, что 1 доп. такт T4 нужен на то, чтобы записать первый результат в ABL, а затем второй уже в ABH на доп. такте. Что думаете?

T0, phi1 - извлечение операнда из памяти
T1, phi1 - непосредственно операция + установка флагов + фетч следующего опкода.


Сообщение 27 мар 2015, 00:03
Профиль
Аватара пользователя

Зарегистрирован:
05 ноя 2014, 23:03
Сообщения: 29
Возможно нашел косяк в logisim-схеме диспатчера. Во время выполнения команды с адресацией ABS.

Для примера возьмем команду 01101101 (ADC ABS).
Если верить Visual6502, то в определенный момент должен появиться сигнал ADD/ADL. Конкретно - в момент ф2 Т3 и ф1 Т0.
В logisim-схеме этого не происходит. Более того, если верить Visual6502, то к ABS-адресации имеют отношение сигналы T2‑abs, T2‑abs‑access, T3‑abs/idx/ind и T3‑mem‑abs. Это D31, D83, D90 и D122. Влияние ни одного из них я не смог отследить явным образом до выхода ADD/ADL.


Сообщение 08 янв 2017, 14:38
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 19:37
Сообщения: 401
Откуда: Мытищи
Visual Nes: C++ / C# port of Visual 2A03 + 2C02
http://forums.nesdev.com/viewtopic.php?f=3&t=15334

_________________
Nestopia 1.37/1.40 Fixed


Сообщение 16 янв 2022, 00:11
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Случайно вспомнил про этот топик, напишу дайджест.

С ноября 2021 года получив волшебный пинок от @andkorzh зарашили совместно с ним все логические схемы всех чипов NES:
- https://github.com/emu-russia/breaks/tr ... 02_logisim
- https://github.com/emu-russia/breaks/tr ... PU_logisim (базируется на схемах LogisimmerIK)
- https://github.com/emu-russia/breaks/tr ... PU_logisim

Выпустили 2 книги по 6502 и PPU:
- https://github.com/emu-russia/breaks/re ... vA-russian
- https://github.com/emu-russia/breaks/re ... A6-russian

Вскрыли PAL-версии чипов NES (RP2C07, RP2A07):
- https://drive.google.com/drive/folders/ ... sp=sharing
- https://drive.google.com/drive/folders/ ... sp=sharing

Провели сравнение схем PAL и NTSC версий PPU. Результаты в релизах на нашем проекте GitHub/breaks.

Сайт breaknes.com закрыт в пользу GitHub.

Закончили заполнение вики по 6502 и PPU:
- https://github.com/emu-russia/breaks/tr ... SWiki/6502
- https://github.com/emu-russia/breaks/tr ... ESWiki/PPU
- APU и книга по нему в процессе

Разработан таки "Очень низкоуровневый эмулятор 6502" - Breaks Debugger:
- https://github.com/emu-russia/breaks/re ... s-debug-10
- https://github.com/emu-russia/breaks/re ... s-debug-11
- https://github.com/emu-russia/breaks/re ... s-debug-12
- https://github.com/emu-russia/breaks/re ... s-debug-13
(просто все версии выкладываю, т.к. там описан процесс разработки)

-- 15 янв 2022, 23:12 --

И ещё немного фоточек.

-- 15 янв 2022, 23:15 --



Вложения:
qdVDa5pbJp0.jpg
qdVDa5pbJp0.jpg [ 383.71 КБ | Просмотров: 4501 ]
ZxufhAhB_ao.jpg
ZxufhAhB_ao.jpg [ 592.38 КБ | Просмотров: 4503 ]
rd0AshiJc7s.jpg
rd0AshiJc7s.jpg [ 135.3 КБ | Просмотров: 4503 ]
SywXajFjf8Q.jpg
SywXajFjf8Q.jpg [ 210.53 КБ | Просмотров: 4503 ]
GBclBAKDYOc.jpg
GBclBAKDYOc.jpg [ 378.6 КБ | Просмотров: 4503 ]
149550095-053e9276-df3b-4868-b8d4-b5987c47209a.png
149550095-053e9276-df3b-4868-b8d4-b5987c47209a.png [ 235.25 КБ | Просмотров: 4503 ]
148691773-e7dbd64a-8067-41f2-82c5-94662ee20311.png
148691773-e7dbd64a-8067-41f2-82c5-94662ee20311.png [ 398.52 КБ | Просмотров: 4503 ]
8paTdHNJovU.jpg
8paTdHNJovU.jpg [ 207.15 КБ | Просмотров: 4503 ]
4il_rp5zlOY.jpg
4il_rp5zlOY.jpg [ 78.69 КБ | Просмотров: 4503 ]
3BbELdOVnL8.jpg
3BbELdOVnL8.jpg [ 437.5 КБ | Просмотров: 4503 ]
Сообщение 16 янв 2022, 13:31
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Уберите ограничение на 5 аттачей))


Вложения:
B_-zsj124E0.jpg
B_-zsj124E0.jpg [ 160.53 КБ | Просмотров: 4483 ]
Сообщение 16 янв 2022, 15:02
Профиль WWW
Основатель сайта
Аватара пользователя

Зарегистрирован:
21 июл 2007, 15:40
Сообщения: 2234
Откуда: Москва
org писал(а):
Уберите ограничение на 5 аттачей))

Поставил 20.


Сообщение 16 янв 2022, 15:43
Профиль WWW
Аватара пользователя

Зарегистрирован:
06 апр 2008, 13:46
Сообщения: 119
Интересно почитать, спасибо. Рад, что проект вернулся к жизни =)


Сообщение 17 янв 2022, 02:50
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Цитата:
Поставил 20.


Спасибо! Заметил забавный баг форума, когда много картинок в аттачах - нужно обновить несколько раз страницу, чтобы всё загрузилось до конца :)


Сообщение 18 янв 2022, 21:41
Профиль WWW
Аватара пользователя

Зарегистрирован:
22 июл 2007, 22:03
Сообщения: 480
Офигеть, посоны, вы жжоте. Книги они пишут, нормас. Удачи в проекте, держите в курсе (не сарказм)!

_________________
Challenge the Legend / Мой сайт - http://www.u-sm.ru
8700K, 16GB, RTX 3070 Ti


Сообщение 19 янв 2022, 21:24
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Будем считать финальная версия симулятора 6502:

https://github.com/emu-russia/breaks/re ... s-debug-16

Работают все инструкции (как мне кажется), прогнал TestAll.asm. Полёт нормальный.

Есть поддержка юнит-тестирования. Создаете JSON с параметрами и дамп памяти/исходник на асме - скармливаете дебагеру, оно шуршит пока не встретит инструкцию BRK и выплевывет результаты (итоговый дамп памяти + res.json)


Сообщение 21 янв 2022, 19:37
Профиль WWW
Аватара пользователя

Зарегистрирован:
06 апр 2008, 13:46
Сообщения: 119
Поздравляю! Вы проделали отличную работу. Потомки точно будут знать, как работала наша любимая NES =)


Сообщение 22 янв 2022, 01:01
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Нашлось таки парочка багов.

https://github.com/emu-russia/breaks/re ... s-debug-17

Вкрячил ядро в Nintendulator, чтобы проверить.


Вложения:
nestest.jpg
nestest.jpg [ 70.97 КБ | Просмотров: 4349 ]
btdd.jpg
btdd.jpg [ 80.55 КБ | Просмотров: 4349 ]
bomberman.jpg
bomberman.jpg [ 71.1 КБ | Просмотров: 4349 ]
Сообщение 22 янв 2022, 13:24
Профиль WWW
Аватара пользователя

Зарегистрирован:
22 июл 2007, 22:03
Сообщения: 480
Так а какой-то эмулятор NES будет основан на этом эпохальном труде или как?

_________________
Challenge the Legend / Мой сайт - http://www.u-sm.ru
8700K, 16GB, RTX 3070 Ti


Сообщение 22 янв 2022, 15:56
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Топик ради него и назывался/создавался) Называется Breaknes.


Сообщение 22 янв 2022, 16:21
Профиль WWW
Аватара пользователя

Зарегистрирован:
22 июл 2007, 22:03
Сообщения: 480
Но, я так понял, что он не существует пока или как?

_________________
Challenge the Legend / Мой сайт - http://www.u-sm.ru
8700K, 16GB, RTX 3070 Ti


Сообщение 22 янв 2022, 20:09
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Существует, но не в текущем времени.


Сообщение 24 янв 2022, 16:55
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Завершена разработка схемы 6502 для Logisim:

https://github.com/emu-russia/breaks/tr ... 02_logisim

Для запуска симуляции:
- Загрузить в RAM тестовую программу (прилагается visual6502.hex)
- Установить RDY = 1, /NMI = 1, /IRQ = 1, /RES = 0
- Выполнить несколько циклов, пока 6502 не перейдет в режим ожидания /RES = 1
- Установить /RES = 1

Дальше процессор продолжит выполняться в обычном режиме. В начале будет инициирована BRK-последовательность сброса, затем он перейдет по адресу, указанному в векторе прерывания Reset и начнет выполнение демонстрационной программы.

Схема содержит парочку workaround, в основном это касается двунаправленных шин, которые не поддерживаются в Logisim:
- Все двунаправленные шины разделены на две (Bus In / Bus Out)
- Специальная обработка команд SB/DB и SB/ADH, которые соединяют двунаправленные шины SB, DB и ADH (находится в схеме BUS_MUX_HACK)
- Специальная обработка самого первого полуцикла, когда процессор "сходит с ума". В этом полуцикле нужно очистить все внутренние шины (находится в схеме PRECHARGE).


Вложения:
alu.jpg
alu.jpg [ 246.47 КБ | Просмотров: 4276 ]
M6502_Logisim.jpg
M6502_Logisim.jpg [ 538.69 КБ | Просмотров: 4276 ]
6502_logisim_bogus_board.jpg
6502_logisim_bogus_board.jpg [ 157.8 КБ | Просмотров: 4276 ]
Сообщение 07 фев 2022, 19:52
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Новая версия отладчика с мелкими правками:

https://github.com/emu-russia/breaks/re ... s-debug-18

Продолжаем :)


Сообщение 25 фев 2022, 20:19
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Вышла новая книга, на этот раз про APU:

https://github.com/emu-russia/breaks/re ... -book-revA

Приятного чтения! :)


Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 411 ]  На страницу Пред.  1 ... 17, 18, 19, 20, 21  След.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF (mod by Zeru-j).
Русская поддержка phpBB