В процессе работы эмулятор переживает следующие события:
OnLoad
Пользователь запускает эмулятор.
После запуска приложения загружаются настройки и в BreaksCore создаётся материнская плата, указанная в настройках:
CoreApi::CreateBoard
При создании плата сама добавляет все необходимые DebugInfo и MemLayout.
Состояние симуляции — на паузе.
SaveSettings
Если при сохранении текущая плата была изменена, экземпляр материнской платы пересоздаётся — так же, как при запуске приложения:
CoreApi::DestroyBoardCoreApi::CreateBoard
LoadROM
Пользователь выбирает дамп .nes для запуска:
CoreApi::EjectCartridgeCoreApi::InsertCartridge
Плата при этом не пересоздаётся — имитируется нажатие кнопки RESET на консоли.
Симуляция запускается автоматически.
Step
CoreApi::Step вызывается в цикле, пока пользователь не выйдет из приложения или не выберет другой образ .nes.
Exit
Пользователь завершает приложение.
Если симуляция шла, она останавливается.
Вызывается CoreApi::DestroyBoard.
Источник: Wiki/Runtime.md · ещё материалы: О проекте, Руководство пользователя