Remove Windows ARM64 build configuration and delete unused generate-vs-projects.py script
- Removed the Windows ARM64 configuration from the GitHub Actions release workflow to streamline the build process. - Deleted the generate-vs-projects.py script as it was no longer needed for project setup, simplifying the codebase. - Updated the OverworldEditor header to improve clarity by renaming a method parameter for better understanding. - Refactored the Emulator class to enhance the rendering interface, improving the user experience in the emulator's GUI.
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
#include <vector>
|
||||
|
||||
#include "app/emu/snes.h"
|
||||
#include "app/gui/zeml.h"
|
||||
#include "app/rom.h"
|
||||
#include "imgui/imgui.h"
|
||||
|
||||
@@ -38,74 +37,7 @@ struct EmulatorKeybindings {
|
||||
*/
|
||||
class Emulator {
|
||||
public:
|
||||
Emulator() {
|
||||
std::string emulator_layout = R"(
|
||||
Table id="Emulator" count="2" flags="Resizable|ScrollY" {
|
||||
TableSetupColumn title="CPU",
|
||||
TableSetupColumn title="PPU",
|
||||
|
||||
TableHeadersRow,
|
||||
TableNextColumn,
|
||||
|
||||
CollapsingHeader id="cpuState" title="Register Values" flags="DefaultOpen" {
|
||||
BeginChild id="##CpuState" size="0,100" flags="NoMove|NoScrollbar" {
|
||||
Columns id="registersColumns" count="2" {
|
||||
Text text="A: 0x%04X" data="cpu.A",
|
||||
Text text="D: 0x%04X" data="cpu.D",
|
||||
Text text="X: 0x%04X" data="cpu.X",
|
||||
Text text="DB: 0x%02X" data="cpu.DB",
|
||||
Text text="Y: 0x%04X" data="cpu.Y",
|
||||
Text text="PB: 0x%02X" data="cpu.PB",
|
||||
Text text="PC: 0x%04X" data="cpu.PC",
|
||||
Text text="PS: 0x%02X" data="cpu.status",
|
||||
Text text="SP: 0x%02X" data="cpu.SP",
|
||||
Text text="Cycle: %d" data="snes.cycle_count",
|
||||
}
|
||||
}
|
||||
}
|
||||
CollapsingHeader id="spcState" title="SPC Registers" flags="DefaultOpen" {
|
||||
BeginChild id="##SpcState" size="0,100" flags="NoMove|NoScrollbar" {
|
||||
Columns id="spcRegistersColumns" count="2" {
|
||||
Text text="A: 0x%02X" data="spc.A",
|
||||
Text text="PC: 0x%04X" data="spc.PC",
|
||||
Text text="X: 0x%02X" data="spc.X",
|
||||
Text text="SP: 0x%02X" data="spc.SP",
|
||||
Text text="Y: 0x%02X" data="spc.Y",
|
||||
Text text="PSW: 0x%02X" data="spc.PSW",
|
||||
}
|
||||
}
|
||||
}
|
||||
Function id="CpuInstructionLog",
|
||||
|
||||
TableNextColumn,
|
||||
Function id="SnesPpu",
|
||||
Function id="BreakpointList"
|
||||
}
|
||||
)";
|
||||
const std::map<std::string, void*> data_bindings = {
|
||||
{"cpu.A", &snes_.cpu().A},
|
||||
{"cpu.D", &snes_.cpu().D},
|
||||
{"cpu.X", &snes_.cpu().X},
|
||||
{"cpu.DB", &snes_.cpu().DB},
|
||||
{"cpu.Y", &snes_.cpu().Y},
|
||||
{"cpu.PB", &snes_.cpu().PB},
|
||||
{"cpu.PC", &snes_.cpu().PC},
|
||||
{"cpu.status", &snes_.cpu().status},
|
||||
{"snes.cycle_count", &snes_.mutable_cycles()},
|
||||
{"cpu.SP", &snes_.memory().mutable_sp()},
|
||||
{"spc.A", &snes_.apu().spc700().A},
|
||||
{"spc.X", &snes_.apu().spc700().X},
|
||||
{"spc.Y", &snes_.apu().spc700().Y},
|
||||
{"spc.PC", &snes_.apu().spc700().PC},
|
||||
{"spc.SP", &snes_.apu().spc700().SP},
|
||||
{"spc.PSW", &snes_.apu().spc700().PSW}};
|
||||
emulator_node_ = gui::zeml::Parse(emulator_layout, data_bindings);
|
||||
Bind(emulator_node_.GetNode("CpuInstructionLog"),
|
||||
[&]() { RenderCpuInstructionLog(snes_.cpu().instruction_log_); });
|
||||
Bind(emulator_node_.GetNode("SnesPpu"), [&]() { RenderSnesPpu(); });
|
||||
Bind(emulator_node_.GetNode("BreakpointList"),
|
||||
[&]() { RenderBreakpointList(); });
|
||||
}
|
||||
Emulator() = default;
|
||||
void Run();
|
||||
|
||||
auto snes() -> Snes& { return snes_; }
|
||||
@@ -121,6 +53,7 @@ class Emulator {
|
||||
private:
|
||||
void RenderNavBar();
|
||||
void HandleEvents();
|
||||
void RenderEmulatorInterface();
|
||||
|
||||
void RenderSnesPpu();
|
||||
void RenderBreakpointList();
|
||||
@@ -162,8 +95,6 @@ class Emulator {
|
||||
std::vector<uint8_t> rom_data_;
|
||||
|
||||
EmulatorKeybindings keybindings_;
|
||||
|
||||
gui::zeml::Node emulator_node_;
|
||||
};
|
||||
|
||||
} // namespace emu
|
||||
|
||||
Reference in New Issue
Block a user