#include #include #include #include #include #include KaizenGui::KaizenGui() noexcept { SDL_InitSubSystem(SDL_INIT_GAMEPAD); hide(); vulkanWidget = new RenderWidget(); setWindowTitle("Kaizen " KAIZEN_VERSION_STR); setMinimumSize(640, 480); setCentralWidget(vulkanWidget); auto fileMenu = menuBar()->addMenu("File"); auto open = fileMenu->addAction("Open"); auto exit = fileMenu->addAction("Exit"); auto emulationMenu = menuBar()->addMenu("Emulation"); auto settingsMenu = emulationMenu->addAction("Settings"); settingsWindow = new SettingsWindow(); connect(settingsMenu, &QAction::triggered, settingsWindow, &SettingsWindow::show); emulationMenu->addSeparator(); auto pause = emulationMenu->addAction("Pause"); auto reset = emulationMenu->addAction("Reset"); auto stop = emulationMenu->addAction("Stop"); auto helpMenu = menuBar()->addMenu("Help"); auto about = helpMenu->addAction("About"); connect(about, &QAction::triggered, this, [&] { auto text = std::format("

Kaizen is a Nintendo 64 emulator that strives
" "to offer a friendly user experience and compatibility.
" "Kaizen is licensed under the BSD 3-clause license.
" "Nintendo 64 is a registered trademark of Nintendo Co., Ltd.


" "Kaizen {}{}", KAIZEN_USE_HASH ? "dev build " : "", KAIZEN_VERSION_STR); QMessageBox::about(this, "About", text.c_str()); }); show(); } KaizenGui::~KaizenGui() { SDL_Quit(); } void KaizenGui::LoadROM(const std::string &path) noexcept { n64::Core &core = n64::Core::GetInstance(); core.LoadROM(path); const auto gameNameDB = n64::Core::GetMem().rom.gameNameDB; setWindowTitle(("Kaizen " KAIZEN_VERSION_STR " - " + gameNameDB).c_str()); } void KaizenGui::LoadTAS(const std::string &path) noexcept { n64::Core::GetInstance().LoadTAS(fs::path(path)); }