| Приставки > 1-3 поколения |
| Альтернативный детектор резета |
| (1/1) |
| dssoft:
На платке, которую я сейчас ковыряю, нет возможности задать внешнюю базу времени для обнаружения пропадания м2 (без пайки), но китайцы как-то же справились с этой задачей. Интересуют возможные альтернативные варианты, без внешних RC-цепей. Первое что пришло в голову - поскольку PPU работает независимо от CPU, ловить пропадание м2 во время чтения chr ram, то есть считать такты за время активного сигнала ppu_rd. Что скажете на этот счет? Может сделать как-то иначе? |
| HardWareMan:
Сработает на системах, где PPU не сбрасывается вместе с CPU и при этом активировано изображение в нём. |
| supremacy:
можно попробовать вычислить по обращению к адресу указателя reset |
| dssoft:
--- Цитата: supremacy от 13 Декабрь 2019, 10:16:37 ---можно попробовать вычислить по обращению к адресу указателя reset --- Конец цитаты --- Это приходило в голову, но нет всех нужных адресов. Добавлено позже: --- Цитата: HardWareMan от 13 Декабрь 2019, 07:04:16 ---Сработает на системах, где PPU не сбрасывается вместе с CPU и при этом активировано изображение в нём. --- Конец цитаты --- Что интересно, китайский вариант прошивки как-то ловил резет на ремейке. |
| HardWareMan:
--- Цитата: dssoft от 13 Декабрь 2019, 11:02:52 ---Что интересно, китайский вариант прошивки как-то ловил резет на ремейке. --- Конец цитаты --- Если взять мапперы без сброса, например AxROM, то как бы понимаешь почему оно срабатывает всегда, если страниц может быть 8? А оказалось всё просто, у них в каждой странице одинаковый код инициализации маппера и только в одной процедура продолжается. Т.е., если старт был в другой странице, то после записи числа в маппер он возвращается в нужную. Из любой. Разве это не очевидно? Посмотрите в, например, BT&DD. |
| dssoft:
--- Цитата: HardWareMan от 13 Декабрь 2019, 14:18:59 ---Если взять мапперы без сброса, например AxROM, то как бы понимаешь почему оно срабатывает всегда, если страниц может быть 8? А оказалось всё просто, у них в каждой странице одинаковый код инициализации маппера и только в одной процедура продолжается. Т.е., если старт был в другой странице, то после записи числа в маппер он возвращается в нужную. Из любой. Разве это не очевидно? Посмотрите в, например, BT&DD. --- Конец цитаты --- Там мультиигровка с поддержкой десятка мапперов, после резета надо уйти в меню, а не запускать игру заново. |
| supremacy:
тут наиболее полная информация по reset http://wiki.nesdev.com/w/index.php/PPU_power_up_state На обычной тушке NES PPU тоже сбрасывается. |
| dssoft:
В общем, пока дело ясное что дело темное. Судя по экспериментам при активном резете PPU останавливается и перестает отображать картинку (и ходить в память за данными). |
| HardWareMan:
--- Цитата: dssoft от 13 Декабрь 2019, 14:21:55 ---Там мультиигровка с поддержкой десятка мапперов, после резета надо уйти в меню, а не запускать игру заново. --- Конец цитаты --- Что мешает использовать сей трюк? Просто тебе придётся найти место в игре для расположения кода переключения на меню + сохранить вектор входа в игру, по которому перейти из ОЗУ. |
| dssoft:
И так повторить для каждой игры. Хочется более-менее универсального решения, да и по сбросу много всего надо сделать. |
| megavolt85:
dssoft, как то всё мутно, что за плата? не на ПЛИС часом? на ПЛИС всё решается через watch dog, заводится таймер, M2 обнуляет его, если произошло переполнение, значит reset |
| dssoft:
megavolt85, вот эта плата: https://www.emu-land.net/forum/index.php/topic,82545.0.html Был бы на epm240 watchdog и вопросов бы не было. А так нужна внешняя база времени для таймера. |
| Навигация |
| Главная страница сообщений |