using System; using System.Collections.Generic; using System.Linq; using System.Text; using BizHawk.Emulation.Common; namespace BizHawk.Emulation.Cores.Nintendo.NES { /// /// supports the PPU and NT viewers. do not modify any returned arrays! /// public interface INESPPUViewable : IEmulatorService { /// /// get the 512 color overall palette in use /// /// int[] GetPalette(); /// /// true if bg tile indexes start at 0x1000 instead of 0x0000 /// bool BGBaseHigh { get; } /// /// true if sp tile indexes start at 0x1000 instead of 0x0000 (8x8 mode only) /// bool SPBaseHigh { get; } /// /// true if sprites are 8x16 /// bool SPTall { get; } /// /// get the first 0x3000 bytes of ppu data /// /// byte[] GetPPUBus(); /// /// get the 32 byte palette ram /// /// byte[] GetPalRam(); /// /// returns the object attribute memory /// /// byte[] GetOam(); /// /// return one byte of PPU bus data /// /// /// byte PeekPPU(int addr); /// /// get MMC5 extile source data /// /// byte[] GetExTiles(); /// /// true if MMC5 and ExAttr mode is active /// bool ExActive { get; } /// /// get MMC5 exram for exattr mode /// /// byte[] GetExRam(); /// /// get memory domain for chr rom; return null if RAM or other N/A. for direct viewing of ROM tiles. /// /// MemoryDomain GetCHRROM(); /// /// install a callback to run at a particular scanline /// /// /// void InstallCallback1(Action cb, int sl); /// /// install a callback to run at a particular scanline /// /// /// void InstallCallback2(Action cb, int sl); /// /// remove previously installed callback /// void RemoveCallback1(); /// /// remove previously installed callback /// void RemoveCallback2(); } }