Комментарии 35
Никогда не думал, что всё так сложно и что до сих пор даже SNES полностью не сэмулирован. Куда уж там до PS2/PS3/PS4 :)
wiki.nesdev.com/w/images/d/d1/Ntsc_timing.png
Построение отладочной платы, которая симметрично гоняет тесты в режиме эмуляции и одновременно подмены регистров чипа, и сравнивает выходы двух независимых систем, хотел предложить где-то на середине статьи. Не знаю, насколько тяжело будет построить такую плату, но субъективно кажется, что за 2-3 дня работы среднего инженера можно получить первый прототип. Распиновка чипа известна, а анализатор логики на базе какого-нибудь жирного ARM с большим количеством GPIO будет сделать несложно. Тем более что большинство сигналов — цифровые, много АЦП там не понадобится.
Так вот, такие «хаки» на эмуляторах не воспроизводятся…
Ну, быструю смену цветов с частотой развертки эмулятора воспроизвести можно.
Да, согласен. Однако, я привел это как пример. В NES используется такое событие как «first tile hit», это событие возникает во время прорисовки изображения и при отрисовке спрайта номер один. Как прерывание. Многие игры по такому событию меняют всю конфигурацию экрана, и тем самым создают, например, эффект бордюра. Так сделано в марио.
Я это все к тому, что очень сложно добиться идентичности железного PPU и программного эмулятора, об этом и говориться в этой статье.
Вот тут много про такие эффекты: habr.com/ru/post/354774
Погодите, не понял...
Но ситуация по-прежнему шаткая: если кто-нибудь начнёт создавать homebrew-игры с использованием точного тайминга тактов и растовых эффектов, то все наши современные эмуляторы с этим не справятся. В том числе программные и аппаратные реализации на основе FPGA.
Т.е. есть кто-то, кто знает точные тайминги? А если у него спросить?
А в snes mini также присутствуют описанные ошибки эмуляции? Если всё там идеально то не проще подсмотреть у эмулятора snes-mini?
Возможно, речь о ROM-хаках
То есть, кто-то разрабатывает игры прямо под симулятор?
Не совсем понятно как такой PPU должен работать. И на чем его делать? На CPLD? Или брать несколько АТМЕГА? Одна для спрайтов, одна для фона… И одна как система управления и синхронизации?
Поэтому и клонов SNES не было, да? Потому что не смогли сделать PPU.
Кстати, вот встретилась статья про клон Apple II с материкового Китая
finapple.hho.fi/finapple/index.php/2017/06/09/cec-i-china-education-computer-part-1
Эмуляторы SNES всего в нескольких пикселях от абсолютного совершенства