--- nono/vm/sprite.h 2026/04/29 17:04:36 1.1.1.3 +++ nono/vm/sprite.h 2026/04/29 17:05:42 1.1.1.11 @@ -4,16 +4,19 @@ // Licensed under nono-license.txt // +// +// スプライトコントローラ +// + #pragma once #include "device.h" -class SpriteDevice - : public IODevice +class SpriteDevice : public IODevice { using inherited = IODevice; - private: - static const int baseaddr = 0xeb0000; + + static const uint32 baseaddr = 0xeb0000; struct sprite_scroll { uint16 xpos; @@ -41,13 +44,16 @@ class SpriteDevice SpriteDevice(); ~SpriteDevice() override; - uint64 Read8(uint32 addr) override; - uint64 Read16(uint32 addr) override; - uint64 Write8(uint32 addr, uint32 data) override; - uint64 Write16(uint32 addr, uint32 data) override; - uint64 Peek8(uint32 addr) override; + bool Init() override; + + busdata Read(busaddr addr) override; + busdata Write(busaddr addr, uint32 data) override; + busdata Peek1(uint32 addr) override; private: + busdata Get16(uint32 addr) const; + busdata Set16(uint32 addr, uint32 data); + struct sprite_ctrl reg {}; std::unique_ptr mem {}; };