make it single threaded for now...

Hmm don't quite get it

idfk
This commit is contained in:
irisz64
2025-05-26 15:05:05 +02:00
parent 2152a73cce
commit 67c761d34b
9 changed files with 56 additions and 67 deletions

View File

@@ -52,9 +52,12 @@ KaizenGui::KaizenGui() noexcept : window("Kaizen", 800, 600), core(std::make_sha
{"Open", [&]() {
NFD::Guard guard;
NFD::UniquePath path;
nfdfilteritem_t filterItem = {"Nintendo 64 roms", "n64,z64,v64,N64,Z64,V64"};
static const std::vector<nfdfilteritem_t> filterItems = {
{"Nintendo 64 rom archive", "rar,RAR,tar,TAR,zip,ZIP,7z,7Z"},
{"Nintendo 64 rom", "n64,z64,v64,N64,Z64,V64"}
};
auto result = NFD::OpenDialog(path, &filterItem, 1);
auto result = NFD::OpenDialog(path, filterItems.data(), filterItems.size());
if(result == NFD_CANCEL) return;
if(result == NFD_ERROR)
Util::panic("Error: {}", NFD::GetError());
@@ -88,20 +91,24 @@ void KaizenGui::RenderUI() {
menuBar.render();
settingsWindow.render();
about.render();
gui::EndFrame();
if (core->render) {
core->parallel.UpdateScreen(core->cpu->GetMem().mmio.vi);
} else {
core->parallel.UpdateScreen(core->cpu->GetMem().mmio.vi, false);
ImGui::Render();
if (ImGui::GetIO().ConfigFlags & ImGuiConfigFlags_ViewportsEnable){
ImGui::UpdatePlatformWindows();
ImGui::RenderPlatformWindowsDefault();
}
if(!core->pause) {
core->parallel.UpdateScreen(*core.get());
return;
}
core->parallel.UpdateScreen(*core.get(), false);
}
void KaizenGui::LoadROM(const std::string &path) noexcept {
actionPause.setEnabled(true);
actionReset.setEnabled(true);
actionStop.setEnabled(true);
emuThread.start();
emuThread.core->LoadROM(path);
const auto gameNameDB = emuThread.core->cpu->GetMem().rom.gameNameDB;
Util::RPC::GetInstance().Update(Util::RPC::Playing, gameNameDB);
@@ -114,6 +121,7 @@ int KaizenGui::run() {
}
RenderUI();
emuThread.run();
}
return 0;