1 #pragma once 2 3 #include <memory> 4 #include "Types.h" 5 #include "../BiosDebugInfoProvider.h" 6 #include "zip/ZipArchiveWriter.h" 7 #include "zip/ZipArchiveReader.h" 8 #ifdef DEBUGGER_INCLUDED 9 #include "xml/Node.h" 10 #endif 11 12 namespace Iop 13 { 14 class CBiosBase : public CBiosDebugInfoProvider 15 { 16 public: 17 virtual ~CBiosBase() = default; 18 virtual void HandleException() = 0; 19 virtual void HandleInterrupt() = 0; 20 virtual void CountTicks(uint32) = 0; 21 22 virtual void NotifyVBlankStart() = 0; 23 virtual void NotifyVBlankEnd() = 0; 24 25 virtual bool IsIdle() = 0; 26 27 virtual void SaveState(Framework::CZipArchiveWriter&) = 0; 28 virtual void LoadState(Framework::CZipArchiveReader&) = 0; 29 30 #ifdef DEBUGGER_INCLUDED 31 virtual void SaveDebugTags(Framework::Xml::CNode*) = 0; 32 virtual void LoadDebugTags(Framework::Xml::CNode*) = 0; 33 #endif 34 }; 35 36 typedef std::shared_ptr<CBiosBase> BiosBasePtr; 37 } 38