#pragma once #include #include namespace n64 { struct BaseCPU { virtual ~BaseCPU() = default; virtual int Step() = 0; virtual void Reset() = 0; virtual bool ShouldServiceInterrupt() = 0; virtual void CheckCompareInterrupt() = 0; virtual std::vector Serialize() = 0; virtual void Deserialize(const std::vector &) = 0; virtual Mem &GetMem() = 0; virtual Registers &GetRegs() = 0; }; } // namespace n64