Форум Эму-Россия http://forum.emu-russia.net/ |
|
Очень низкоуровневый эмулятор 6502 / NES http://forum.emu-russia.net/viewtopic.php?f=13&t=3938 |
Страница 5 из 21 |
Автор: | HardWareMan [ 01 ноя 2012, 09:07 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
EvGS писал(а): Для RGB-варианта надо RP2C03 где-то искать и вскрывать. Данный чип добывается с ПлейЧойса10. А ниче, что у него отличается пол литра от NESовской? Это документировано. org писал(а): На самом деле нет ) Небольшие изменения в видеотракте и можно на выходе RGB получать (выкинуть DAC и генератор фаз, добавить еще один PLA для преобразования хромы/люмы в фиксированный RGB) Именно. Пол литру, при этом, подбирать уже свою, как это делают на несдеве. Максимально близкую к оригиналу. org писал(а): С логической схемой посложнее, я ещё такого не делал) Я сразу в Си-код перевожу работу всех блоков, думаю конвертировать потом в Verilog будет не сложно. Просто я с Verlog не сталкивался ещё. Верилог - моя проблема. А логику работы можно будет проследить и из Ц кода. |
Автор: | EvGS [ 01 ноя 2012, 13:30 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Я сравнивал несколько дней назад на одном телике поллитры у RP2C02 (famicom) и UA6538 (микросхемная денди). Вообще две большие разницы. Может декодеры PAL/NTSC влияют, а скорее всего, и в самих чипах есть отличия в пол-литре. Надо думать, как нам раздербанить UMC/TA со слоями, обязательно. Там, помимо палитры, нужно посмотреть, как в транзисторной логике формируются тайминги и всякие заглушки на VBLANK. И делитель проца в 6527Р тоже. Можно на коммерческой основе отдекапить. Есть ли новости от Homer'a? |
Автор: | HardWareMan [ 04 ноя 2012, 21:36 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Вообще, правильней даже формировать не RGB. В яркостный сигнал Y вместе с синхрой кодируется 4х уровневая яркость дендика, а 12 фаз поднесущей кодируются в цветоразностные сигналы R-Y/B-Y. Таким образом, наиболее правильным выходом для клона PPU я вижу именно компонент YRpBp. |
Автор: | org [ 06 ноя 2012, 23:30 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Закончил трассировку PPU: (картинки кликабельны, полноразмерные фотки примерно по 20 MB каждая) Исходники фотошопа тут : http://breaknes.com/files/PPU/2C02G.zip (260 MB) Также получили снимки травленного чипа от Гомера, сейчас я их сшиваю (комп тупит дико +сказываются выходные ) Так вышло что наши фотки появились почти одновременно с отслоенными фотками PPU от мембера с Visual6502: http://uxul.org/~noname/visual6502/RP2C ... gned/view/ Ну и в плане схем: сейчас работаю над "средним" куском чипа. Из интересного обнаружил там контрольные регистры 2000/2001, мультиплексор (правее я разместил его схему из патента US4824106), регистр 2003 (для доступа к OAM) со схемой инкремента, а также какую-то затейливую схему, на вход которой подаются V-counter и данные спрайтового буфера, похоже на компаратор. Попутно обнаружил много новых линий (которые уже учтены на полоноразмерных схемах выше). |
Автор: | EvGS [ 07 ноя 2012, 11:08 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Сайт запущен: http://breaknes.com/ |
Автор: | HardWareMan [ 07 ноя 2012, 23:24 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Пожалуйста, пожалуйста, пожалуйста дублируйте распознанные блоки в логическую схему тоже! Оченама хочется замутить функциональный клон ППУ с компонентным выходом! |
Автор: | org [ 08 ноя 2012, 09:54 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
HWM, не раньше чем будет готова полная транзисторная схема. Смотри, всего там 5 крупных блоков, 3 из них я практически уже разобрал. Остался массив счетчиков слева внизу (там 8 (или 16) однотипных счетчиков, с ними проблем не будет) и ещё справа-внизу квадратный кусок, я называю его data reader, он занимается выборкой данных PPU (name table, patterns, attribute table) |
Автор: | HardWareMan [ 08 ноя 2012, 15:24 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Отлично! Родина тебя не забудет! |
Автор: | org [ 08 ноя 2012, 17:04 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Я выяснил суть куска, который находится в левом нижнем углу : http://code.google.com/p/breaks/wiki/PPU_OAM_FIFO Поражаюсь насколько всё просто и одновременно сложно устроено в PPU ) |
Автор: | org [ 09 ноя 2012, 18:16 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Транзисторная схема OAM FIFO: -- 10 ноя 2012, 00:55 -- Принялся за последний кусок PPU: data reader. Расположение на чипе : Эта часть схемы PPU занимается выборкой строки тайла из 8 точек, на основе scroll-регистров, которые задают положение тайла в name table и точного (fine) смещения начальной точки внутри тайла. Результаты (текущая точка тайла) передаются в мультиплексор, для смешивания с текущей точкой спрайта, ну а результаты смешения уже выводятся непосредственно на ТВ (используя палитру и фазогенератор). Я как-нибудь нарисую схемы следственных связей, как выбирается точка тайла, а пока просто первые результаты разбора транзисторной схемы : -- 10 ноя 2012, 01:06 -- Всю писанину теперь можно найти тут : http://breaknes.com/info |
Автор: | org [ 11 ноя 2012, 02:06 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Закончил работы над data reader-ом (картинки обновил, см. выше). Теперь у меня есть практически вся схема (осталось кое-чего в середине доделать и мультиплексор)! |
Автор: | Слэйер Мун [ 11 ноя 2012, 15:57 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Когда же будет релиз этого убер эмулятора-убийцы разогнанных хексакоров? |
Автор: | HardWareMan [ 11 ноя 2012, 20:17 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Какие еще адреса пространства ППУ стали известны? Я про кусок между 3000 до 3EFF. И было бы не плохо уже куски в схемку переводить. |
Автор: | org [ 11 ноя 2012, 21:41 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Вот как раз адресный декодер я и найти не могу ))) Ещё осталась милипизерная схемка в самом низу чипа, но на декодер она не похожа, где-то в недрах data reader-а находится декодирующая схема. Там по сути и декодера то не должно быть, т.к. адресный регистр работает наружу. Тут скорее адресный генератор на базе счетчиков и плюс схема проверки, когда адресный регистра настроен на палитру, то активировать эту линию TH/MUX. Всю схему слеплю уже скоро, но вначале хочу симулировать работу H/V-счетчиков, потому что из них выходит много контрольных линий, которые расползаются по всему чипу и я не могу идентифициорвать их назначения. А без названия этих контрольных линий схема будет не полной. |
Автор: | EvGS [ 11 ноя 2012, 22:23 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
org писал(а): Поэтому я взял и замерил сколько тактов эмуляции в секунду делает ядро Breaks 6502. Результаты конечно весьма печальные: на моем средненьком Intel Dual Core T4500 2 ггц компиляция с помощью lcc выдает примерно 80.000 операций/сек (0.08 MIPS), то есть в 50 раз медленнее чем необходимо Поэтому стало интересно какие цифры получатся в новой Express 2012. В 4 часа утра я наконец умудрился скомпилировать проект и результаты следующие : примерно 220.000 оп/сек (0.2 MIPS). Уже лучше, но все равно в 20 раз медленнее. А как насчет intel compiler? Может быть /O2 и /QxO улучшат ситуацию? -- 11 ноя 2012, 22:45 -- Вот, кое-что для справки |
Автор: | Слэйер Мун [ 12 ноя 2012, 17:02 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
org писал(а): Точную дату назвать не могу, ещё много чего нужно сделать. Если в Credits'ы попадут донаторы (или даже их сайты ? ), я первый в очереди на материальную помощь проекту. Очень интересна мне вся эта задумка |
Автор: | org [ 13 ноя 2012, 10:56 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
EvGS, вопрос с компилятором пока неактуален, есть более важные вопросы ) Мат. помощь пока не требуется, работаем за еду ээээ идею |
Страница 5 из 21 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |