Aug 21, 2023
Эмулятор картриджа Game Boy использует STM32
Game Boys, возможно, и являются устаревшей технологией, но они по-прежнему бросают вызов современным хакерам. [Dhole] разработал эмулятор картриджа, который использует плату обнаружения STMicroelectronics STM32F4 для выполнения всех задач.
Game Boys, возможно, и являются устаревшей технологией, но они по-прежнему бросают вызов современным хакерам. [Dhole] разработал эмулятор картриджа, который использует плату обнаружения STMicroelectronics STM32F4 для выполнения всей работы. До сих пор в большинстве флэш-картриджей использовались программируемые логические устройства, CPLD или FPGA, для удовлетворения требований высокоскоростной логики. [Алекс] доказал, что микроконтроллер может эмулировать картридж, используя Arduino для отображения загрузочного логотипа «Nintendo» Game Boy. Arduino был недостаточно быстрым, чтобы обеспечить высокоскоростной доступ, необходимый для игры.
[Дхоул] увеличил скорость, перейдя на процессор STM32F4 168 МГц на базе ARM Cortex-M4. 70 контактов GPIO F4 могут работать через внутренние периферийные устройства на частоте до 100 МГц, чего достаточно для работы с тактовой частотой шины Game Boy 1 МГц. Логические уровни являются проблемой, поскольку STM32 использует логику 3,3 В, а Game Boy — устройство с напряжением 5 В. К счастью, входы STM32 устойчивы к 5 В, поэтому все работало нормально.
Простые картриджи Game Boy, такие как Tetris, могли напрямую отображать устройство ПЗУ в пространство памяти Game Boys. В более сложных играх использовались микросхемы контроллера блоков памяти (MBC) для сопоставления разделов ПЗУ и выполнения других функций. Для различных игр использовалось несколько чипов MBC, но [Dhole] может эмулировать MBC1, который совместим с самой большой базой кода.
Одним из самых крутых трюков, реализованных [Dhole], было отображение собственного логотипа загрузки. Game Boy использовал логотип Nintendo как метод защиты авторских прав. Если бы на картридже не было логотипа, Game Boy не работал бы. На самом деле логотип читается дважды: один раз для проверки информации об авторских правах и один раз для отображения ее на экране. Указав эмулятору изменить данные, доступные по этим адресам после первого чтения, можно отобразить любую графику.
Если вам интересно, для чего может быть полезен эмулятор картриджа (кроме пиратских игр), посетите страницу Gameboy Dev [Джеффа Фровайна]! [Джефф] участвовал в разработке Game Boy с первых дней. Существуют буквально десятилетия демоверсий и домашних игр для Game Boy и различных производных. .

