#pragma once #include #include #include struct Window; struct Event; namespace n64 { struct Core { explicit Core(ParallelRDP &); void Stop(); void LoadROM(const std::string &); [[nodiscard]] bool LoadTAS(const fs::path &) const; void Run(float volumeL, float volumeR); void Serialize(); void Deserialize(); void TogglePause() { pause = !pause; } [[nodiscard]] VI &GetVI() const { return cpu->GetMem().mmio.vi; } u32 breakpoint = 0; bool pause = true; bool render = false; u32 cycles = 0; bool romLoaded = false; std::string rom; std::unique_ptr cpu; std::vector serialized[10]{}; size_t memSize{}, cpuSize{}, verSize{}; int slot = 0; }; } // namespace n64