#pragma once namespace SuperFamicom { struct Debugger { struct CPU { function read; function write; function execute; function nmi; function irq; } cpu; struct SMP { function read; function write; function execute; } smp; struct PPU { struct VRAM { function read; function write; } vram; struct OAM { function read; function write; } oam; struct CGRAM { function read; function write; } cgram; } ppu; }; extern Debugger debugger; }