SNES Emulation and debugging tools. More...
Namespaces | |
| namespace | anonymous_namespace{emulator.cc} |
| namespace | anonymous_namespace{snes.cc} |
| namespace | audio |
| namespace | debug |
| namespace | input |
| namespace | test |
| namespace | ui |
Classes | |
| class | Apu |
| The Apu class represents the Audio Processing Unit (APU) of a system. More... | |
| struct | ApuCallbacks |
| class | ApuDspTest |
| class | ApuIplHandshakeTest |
| class | AsmParser |
| class | AudioRam |
| AudioRam is an interface for the Audio RAM used by the SPC700. More... | |
| class | AudioRamImpl |
| AudioRamImpl is an implementation of the AudioRam interface. More... | |
| struct | BackgroundLayer |
| struct | BGHOFS |
| struct | BgLayer |
| struct | BGMODE |
| struct | BGNBA |
| struct | BGSC |
| struct | BGVOFS |
| class | BreakpointManager |
| Manages CPU and SPC700 breakpoints for debugging. More... | |
| struct | CGADD |
| struct | CGADSUB |
| struct | CGDATA |
| struct | CGDATAREAD |
| struct | CGWSEL |
| struct | CharacterLocation |
| struct | COLDATA |
| struct | Color |
| struct | CounterIrqNmiRegisters |
| class | Cpu |
| struct | CpuCallbacks |
| struct | DmaChannel |
| struct | DmaRegisters |
| class | Dsp |
| struct | DspChannel |
| class | Emulator |
| A class for emulating and debugging SNES games. More... | |
| struct | INIDISP |
| struct | Input |
| class | InstructionEntry |
| struct | JoypadRegisters |
| struct | Layer |
| struct | M7A |
| struct | M7B |
| struct | M7C |
| struct | M7D |
| struct | M7SEL |
| struct | M7X |
| struct | M7Y |
| struct | MainSubScreenDesignation |
| struct | MaskLogicSettings |
| class | Memory |
| Memory interface. More... | |
| class | MemoryImpl |
| Implementation of the Memory interface for emulating memory in a SNES system. More... | |
| struct | MnemonicMode |
| struct | MnemonicModeHash |
| class | MockMemory |
| A mock implementation of the Memory class. More... | |
| struct | Mosaic |
| struct | MPYH |
| struct | MPYL |
| struct | MPYM |
| struct | OAMADDH |
| struct | OAMADDL |
| struct | OAMAddress |
| struct | OAMDATA |
| struct | OAMDATAREAD |
| struct | OAMSize |
| struct | OBJSEL |
| struct | OPHCT |
| struct | OPVCT |
| class | Ppu |
| class | PpuInterface |
| struct | ScreenDisplay |
| struct | ScreenMode |
| struct | ScrollRegister |
| struct | SETINI |
| struct | SLHV |
| class | Snes |
| class | Spc700 |
| The Spc700 class represents the SPC700 processor. More... | |
| struct | SpriteAttributes |
| struct | STAT77 |
| struct | STAT78 |
| struct | Tile |
| struct | Tilemap |
| struct | TilemapEntry |
| struct | TileMapLocation |
| struct | Timer |
| struct | TM |
| struct | TMW |
| struct | TS |
| struct | TSW |
| struct | VideoPortControl |
| struct | VMADDH |
| struct | VMADDL |
| struct | VMAIN |
| struct | VMDATA |
| struct | VMDATAHREAD |
| struct | VMDATALREAD |
| struct | W12SEL |
| struct | W34SEL |
| class | WatchpointManager |
| Manages memory watchpoints for debugging. More... | |
| struct | WBGLOG |
| struct | WH0 |
| struct | WH1 |
| struct | WH2 |
| struct | WH3 |
| struct | WindowLayer |
| struct | WindowMaskSettings |
| struct | WindowMaskSettings2 |
| struct | WindowPosition |
| struct | WOBJLOG |
| struct | WOBJSEL |
| struct | WramAccessRegisters |
Typedefs | |
| typedef struct yaze::emu::Timer | Timer |
| typedef struct yaze::emu::DspChannel | DspChannel |
| typedef struct yaze::emu::ApuCallbacks | ApuCallbacks |
| typedef struct yaze::emu::DmaChannel | DmaChannel |
| typedef struct yaze::emu::CpuCallbacks | CpuCallbacks |
| typedef struct yaze::emu::Layer | Layer |
| typedef struct yaze::emu::BgLayer | BgLayer |
| typedef struct yaze::emu::WindowLayer | WindowLayer |
Enumerations | |
| enum class | InterpolationType { Linear , Hermite , Cosine , Cubic } |
| enum class | AddressingMode { kAbsolute , kAbsoluteLong , kAbsoluteIndexedIndirect , kAbsoluteIndexedX , kAbsoluteIndexedY , kAbsoluteIndirect , kAbsoluteIndirectLong , kAbsoluteLongIndexedX , kAccumulator , kBlockMove , kDirectPage , kDirectPageIndexedX , kDirectPageIndexedY , kDirectPageIndirect , kDirectPageIndirectIndexedY , kDirectPageIndirectLong , kDirectPageIndirectLongIndexedY , kDirectPageIndirectIndexedX , kDirectPageIndirectLongIndexedX , kImmediate , kImplied , kProgramCounterRelative , kProgramCounterRelativeLong , kStackRelative , kStackRelativeIndirectIndexedY , kStackRelativeIndirectIndexedYLong , kStack , kStackRelativeIndexedY } |
| enum class | BackgroundMode { Mode0 , Mode1 , Mode2 , Mode3 , Mode4 , Mode5 , Mode6 , Mode7 } |
| enum class | SpriteSize { Size8x8 , Size16x16 , Size32x32 , Size64x64 } |
Functions | |
| int16_t | InterpolateCubic (int16_t p0, int16_t p1, int16_t p2, int16_t p3, double t) |
| int16_t | InterpolateCosine (int16_t s0, int16_t s1, double mu) |
| int16_t | InterpolateLinear (int16_t s0, int16_t s1, double frac) |
| int16_t | InterpolateHermite (int16_t p0, int16_t p1, int16_t p2, int16_t p3, double t) |
| void | ResetDma (MemoryImpl *memory) |
| uint8_t | ReadDma (MemoryImpl *memory, uint16_t adr) |
| void | WriteDma (MemoryImpl *memory, uint16_t adr, uint8_t val) |
| void | DoDma (Snes *snes, MemoryImpl *memory, int cpuCycles) |
| void | HandleDma (Snes *snes, MemoryImpl *memory, int cpu_cycles) |
| void | WaitCycle (Snes *snes, MemoryImpl *memory) |
| void | InitHdma (Snes *snes, MemoryImpl *memory, bool do_sync, int cpu_cycles) |
| void | DoHdma (Snes *snes, MemoryImpl *memory, bool do_sync, int cycles) |
| void | TransferByte (Snes *snes, MemoryImpl *memory, uint16_t aAdr, uint8_t aBank, uint8_t bAdr, bool fromB) |
| void | StartDma (MemoryImpl *memory, uint8_t val, bool hdma) |
| TEST_F (ApuDspTest, DspRegistersReadWriteMirror) | |
| TEST_F (ApuDspTest, TimersEnableAndReadback) | |
| TEST_F (ApuDspTest, GetSamplesReturnsSilenceAfterReset) | |
| TEST_F (ApuIplHandshakeTest, SPC700StartsAtIplRomEntry) | |
| TEST_F (ApuIplHandshakeTest, IplRomReadable) | |
| TEST_F (ApuIplHandshakeTest, CycleTrackingWorks) | |
| TEST_F (ApuIplHandshakeTest, PortReadWrite) | |
| TEST_F (ApuIplHandshakeTest, IplRomDisableViaControlRegister) | |
| TEST_F (ApuIplHandshakeTest, TimersEnableAndCount) | |
| TEST_F (ApuIplHandshakeTest, IplBootSequenceProgresses) | |
| TEST_F (ApuIplHandshakeTest, AccurateCycleCountsForCommonOpcodes) | |
| TEST (Spc700ResetTest, ResetVectorExecutesIplSequence) | |
Variables | |
| constexpr int | spc700_cycles [256] |
| constexpr uint32_t | kROMStart = 0x008000 |
| constexpr uint32_t | kROMSize = 0x200000 |
| constexpr uint32_t | kRAMStart = 0x7E0000 |
| constexpr uint32_t | kRAMSize = 0x20000 |
| constexpr uint16_t | INIDISP = 0x2100 |
| constexpr uint16_t | OBJSEL = 0x2101 |
| constexpr uint16_t | OAMADDL = 0x2102 |
| constexpr uint16_t | OAMADDH = 0x2103 |
| constexpr uint16_t | OAMDATA = 0x2104 |
| constexpr uint16_t | BGMODE = 0x2105 |
| constexpr uint16_t | MOSAIC = 0x2106 |
| constexpr uint16_t | BG1SC = 0x2107 |
| constexpr uint16_t | BG2SC = 0x2108 |
| constexpr uint16_t | BG3SC = 0x2109 |
| constexpr uint16_t | BG4SC = 0x210A |
| constexpr uint16_t | BG12NBA = 0x210B |
| constexpr uint16_t | BG34NBA = 0x210C |
| constexpr uint16_t | BG1HOFS = 0x210D |
| constexpr uint16_t | BG1VOFS = 0x210E |
| constexpr uint16_t | BG2HOFS = 0x210F |
| constexpr uint16_t | BG2VOFS = 0x2110 |
| constexpr uint16_t | BG3HOFS = 0x2111 |
| constexpr uint16_t | BG3VOFS = 0x2112 |
| constexpr uint16_t | BG4HOFS = 0x2113 |
| constexpr uint16_t | BG4VOFS = 0x2114 |
| constexpr uint16_t | VMAIN = 0x2115 |
| constexpr uint16_t | VMADDL = 0x2116 |
| constexpr uint16_t | VMADDH = 0x2117 |
| constexpr uint16_t | VMDATAL = 0x2118 |
| constexpr uint16_t | VMDATAH = 0x2119 |
| constexpr uint16_t | M7SEL = 0x211A |
| constexpr uint16_t | M7A = 0x211B |
| constexpr uint16_t | M7B = 0x211C |
| constexpr uint16_t | M7C = 0x211D |
| constexpr uint16_t | M7D = 0x211E |
| constexpr uint16_t | M7X = 0x211F |
| constexpr uint16_t | M7Y = 0x2120 |
| constexpr uint16_t | CGADD = 0x2121 |
| constexpr uint16_t | CGDATA = 0x2122 |
| constexpr uint16_t | W12SEL = 0x2123 |
| constexpr uint16_t | W34SEL = 0x2124 |
| constexpr uint16_t | WOBJSEL = 0x2125 |
| constexpr uint16_t | WH0 = 0x2126 |
| constexpr uint16_t | WH1 = 0x2127 |
| constexpr uint16_t | WH2 = 0x2128 |
| constexpr uint16_t | WH3 = 0x2129 |
| constexpr uint16_t | WBGLOG = 0x212A |
| constexpr uint16_t | WOBJLOG = 0x212B |
| constexpr uint16_t | TM = 0x212C |
| constexpr uint16_t | TS = 0x212D |
| constexpr uint16_t | TMW = 0x212E |
| constexpr uint16_t | TSW = 0x212F |
| constexpr uint16_t | CGWSEL = 0x2130 |
| constexpr uint16_t | CGADSUB = 0x2131 |
| constexpr uint16_t | COLDATA = 0x2132 |
| constexpr uint16_t | SETINI = 0x2133 |
| constexpr uint16_t | MPYL = 0x2134 |
| constexpr uint16_t | MPYM = 0x2135 |
| constexpr uint16_t | MPYH = 0x2136 |
| constexpr uint16_t | SLHV = 0x2137 |
| constexpr uint16_t | OAMDATAREAD = 0x2138 |
| constexpr uint16_t | VMDATALREAD = 0x2139 |
| constexpr uint16_t | VMDATAHREAD = 0x213A |
| constexpr uint16_t | CGDATAREAD = 0x213B |
| constexpr uint16_t | OPHCT = 0x213C |
| constexpr uint16_t | OPVCT = 0x213D |
| constexpr uint16_t | STAT77 = 0x213E |
| constexpr uint16_t | STAT78 = 0x213F |
SNES Emulation and debugging tools.
| typedef struct yaze::emu::Timer yaze::emu::Timer |
| typedef struct yaze::emu::DspChannel yaze::emu::DspChannel |
| typedef struct yaze::emu::ApuCallbacks yaze::emu::ApuCallbacks |
| typedef struct yaze::emu::DmaChannel yaze::emu::DmaChannel |
| typedef struct yaze::emu::CpuCallbacks yaze::emu::CpuCallbacks |
| typedef struct yaze::emu::Layer yaze::emu::Layer |
| typedef struct yaze::emu::BgLayer yaze::emu::BgLayer |
| typedef struct yaze::emu::WindowLayer yaze::emu::WindowLayer |
|
strong |
|
strong |
Definition at line 15 of file asm_parser.h.
|
strong |
|
strong |
|
inline |
Definition at line 622 of file dsp.cc.
Referenced by yaze::emu::Dsp::GetSamples().
|
inline |
Definition at line 641 of file dsp.cc.
Referenced by yaze::emu::Dsp::GetSamples().
|
inline |
|
inline |
Definition at line 653 of file dsp.cc.
Referenced by yaze::emu::Dsp::GetSamples().
| void yaze::emu::ResetDma | ( | MemoryImpl * | memory | ) |
Definition at line 12 of file dma.cc.
References yaze::emu::MemoryImpl::dma_channels(), yaze::emu::MemoryImpl::set_dma_state(), yaze::emu::MemoryImpl::set_hdma_init_requested(), and yaze::emu::MemoryImpl::set_hdma_run_requested().
Referenced by yaze::emu::Snes::Reset().

| uint8_t yaze::emu::ReadDma | ( | MemoryImpl * | memory, |
| uint16_t | adr | ||
| ) |
Definition at line 39 of file dma.cc.
References yaze::emu::MemoryImpl::dma_channels(), and yaze::emu::MemoryImpl::open_bus().
Referenced by yaze::emu::Snes::Rread().

| void yaze::emu::WriteDma | ( | MemoryImpl * | memory, |
| uint16_t | adr, | ||
| uint8_t | val | ||
| ) |
Definition at line 92 of file dma.cc.
References yaze::emu::MemoryImpl::dma_channels().
Referenced by yaze::emu::Snes::Write().

| void yaze::emu::DoDma | ( | Snes * | snes, |
| MemoryImpl * | memory, | ||
| int | cpuCycles | ||
| ) |
Definition at line 156 of file dma.cc.
References yaze::emu::Snes::cpu(), yaze::emu::MemoryImpl::dma_channels(), yaze::emu::Snes::SyncCycles(), TransferByte(), and WaitCycle().
Referenced by HandleDma().
| void yaze::emu::HandleDma | ( | Snes * | snes, |
| MemoryImpl * | memory, | ||
| int | cpu_cycles | ||
| ) |
Definition at line 190 of file dma.cc.
References yaze::emu::MemoryImpl::dma_state(), DoDma(), DoHdma(), yaze::emu::MemoryImpl::hdma_init_requested(), yaze::emu::MemoryImpl::hdma_run_requested(), InitHdma(), and yaze::emu::MemoryImpl::set_dma_state().
Referenced by yaze::emu::Snes::CpuIdle(), yaze::emu::Snes::CpuRead(), and yaze::emu::Snes::CpuWrite().
| void yaze::emu::WaitCycle | ( | Snes * | snes, |
| MemoryImpl * | memory | ||
| ) |
Definition at line 208 of file dma.cc.
References DoHdma(), yaze::emu::MemoryImpl::hdma_init_requested(), yaze::emu::MemoryImpl::hdma_run_requested(), InitHdma(), and yaze::emu::Snes::RunCycles().
Referenced by DoDma().
| void yaze::emu::InitHdma | ( | Snes * | snes, |
| MemoryImpl * | memory, | ||
| bool | do_sync, | ||
| int | cpu_cycles | ||
| ) |
Definition at line 216 of file dma.cc.
References yaze::emu::Snes::cpu(), yaze::emu::MemoryImpl::dma_channels(), yaze::emu::Snes::Read(), yaze::emu::Snes::RunCycles(), yaze::emu::MemoryImpl::set_hdma_init_requested(), and yaze::emu::Snes::SyncCycles().
Referenced by HandleDma(), and WaitCycle().
| void yaze::emu::DoHdma | ( | Snes * | snes, |
| MemoryImpl * | memory, | ||
| bool | do_sync, | ||
| int | cycles | ||
| ) |
Definition at line 257 of file dma.cc.
References yaze::emu::Snes::cpu(), yaze::emu::MemoryImpl::dma_channels(), yaze::emu::Snes::Read(), yaze::emu::Snes::RunCycles(), yaze::emu::MemoryImpl::set_hdma_run_requested(), yaze::emu::Snes::SyncCycles(), and TransferByte().
Referenced by HandleDma(), and WaitCycle().
| void yaze::emu::TransferByte | ( | Snes * | snes, |
| MemoryImpl * | memory, | ||
| uint16_t | aAdr, | ||
| uint8_t | aBank, | ||
| uint8_t | bAdr, | ||
| bool | fromB | ||
| ) |
Definition at line 334 of file dma.cc.
References yaze::emu::MemoryImpl::open_bus(), yaze::emu::Snes::Read(), yaze::emu::Snes::ReadBBus(), yaze::emu::Snes::Write(), and yaze::emu::Snes::WriteBBus().
| void yaze::emu::StartDma | ( | MemoryImpl * | memory, |
| uint8_t | val, | ||
| bool | hdma | ||
| ) |
Definition at line 356 of file dma.cc.
References yaze::emu::MemoryImpl::dma_channels(), and yaze::emu::MemoryImpl::set_dma_state().
Referenced by yaze::emu::Snes::WriteReg().

| yaze::emu::TEST_F | ( | ApuDspTest | , |
| DspRegistersReadWriteMirror | |||
| ) |
Definition at line 25 of file apu_dsp_test.cc.
References yaze::emu::Apu::Write().

| yaze::emu::TEST_F | ( | ApuDspTest | , |
| TimersEnableAndReadback | |||
| ) |
Definition at line 42 of file apu_dsp_test.cc.
| yaze::emu::TEST_F | ( | ApuDspTest | , |
| GetSamplesReturnsSilenceAfterReset | |||
| ) |
Definition at line 63 of file apu_dsp_test.cc.
| yaze::emu::TEST_F | ( | ApuIplHandshakeTest | , |
| SPC700StartsAtIplRomEntry | |||
| ) |
Definition at line 26 of file apu_ipl_handshake_test.cc.
References yaze::emu::Apu::spc700().

| yaze::emu::TEST_F | ( | ApuIplHandshakeTest | , |
| IplRomReadable | |||
| ) |
Definition at line 35 of file apu_ipl_handshake_test.cc.
| yaze::emu::TEST_F | ( | ApuIplHandshakeTest | , |
| CycleTrackingWorks | |||
| ) |
Definition at line 43 of file apu_ipl_handshake_test.cc.
| yaze::emu::TEST_F | ( | ApuIplHandshakeTest | , |
| PortReadWrite | |||
| ) |
Definition at line 53 of file apu_ipl_handshake_test.cc.
| yaze::emu::TEST_F | ( | ApuIplHandshakeTest | , |
| IplRomDisableViaControlRegister | |||
| ) |
Definition at line 71 of file apu_ipl_handshake_test.cc.
| yaze::emu::TEST_F | ( | ApuIplHandshakeTest | , |
| TimersEnableAndCount | |||
| ) |
Definition at line 93 of file apu_ipl_handshake_test.cc.
| yaze::emu::TEST_F | ( | ApuIplHandshakeTest | , |
| IplBootSequenceProgresses | |||
| ) |
Definition at line 113 of file apu_ipl_handshake_test.cc.
| yaze::emu::TEST_F | ( | ApuIplHandshakeTest | , |
| AccurateCycleCountsForCommonOpcodes | |||
| ) |
Definition at line 132 of file apu_ipl_handshake_test.cc.
| yaze::emu::TEST | ( | Spc700ResetTest | , |
| ResetVectorExecutesIplSequence | |||
| ) |
Definition at line 9 of file spc700_reset_test.cc.
References yaze::emu::Apu::Cycle(), yaze::emu::Apu::Init(), yaze::emu::MemoryImpl::Initialize(), yaze::emu::Apu::Reset(), and yaze::emu::Apu::spc700().
|
constexpr |
Definition at line 13 of file spc700_cycles.h.
|
constexpr |
|
constexpr |
|
constexpr |
Definition at line 9 of file ppu_registers.h.
|
constexpr |
Definition at line 13 of file ppu_registers.h.
|
constexpr |
Definition at line 16 of file ppu_registers.h.
|
constexpr |
Definition at line 17 of file ppu_registers.h.
|
constexpr |
Definition at line 21 of file ppu_registers.h.
|
constexpr |
Definition at line 29 of file ppu_registers.h.
|
constexpr |
Definition at line 33 of file ppu_registers.h.
|
constexpr |
Definition at line 37 of file ppu_registers.h.
|
constexpr |
Definition at line 38 of file ppu_registers.h.
|
constexpr |
Definition at line 39 of file ppu_registers.h.
|
constexpr |
Definition at line 40 of file ppu_registers.h.
|
constexpr |
Definition at line 44 of file ppu_registers.h.
|
constexpr |
Definition at line 45 of file ppu_registers.h.
|
constexpr |
Definition at line 49 of file ppu_registers.h.
|
constexpr |
Definition at line 50 of file ppu_registers.h.
|
constexpr |
Definition at line 51 of file ppu_registers.h.
|
constexpr |
Definition at line 52 of file ppu_registers.h.
|
constexpr |
Definition at line 53 of file ppu_registers.h.
|
constexpr |
Definition at line 54 of file ppu_registers.h.
|
constexpr |
Definition at line 55 of file ppu_registers.h.
|
constexpr |
Definition at line 56 of file ppu_registers.h.
|
constexpr |
Definition at line 60 of file ppu_registers.h.
|
constexpr |
Definition at line 64 of file ppu_registers.h.
|
constexpr |
Definition at line 65 of file ppu_registers.h.
|
constexpr |
Definition at line 67 of file ppu_registers.h.
|
constexpr |
Definition at line 68 of file ppu_registers.h.
|
constexpr |
Definition at line 69 of file ppu_registers.h.
|
constexpr |
Definition at line 70 of file ppu_registers.h.
|
constexpr |
Definition at line 71 of file ppu_registers.h.
|
constexpr |
Definition at line 72 of file ppu_registers.h.
|
constexpr |
Definition at line 73 of file ppu_registers.h.
|
constexpr |
Definition at line 74 of file ppu_registers.h.
|
constexpr |
Definition at line 75 of file ppu_registers.h.
|
constexpr |
Definition at line 76 of file ppu_registers.h.
|
constexpr |
Definition at line 77 of file ppu_registers.h.
|
constexpr |
Definition at line 78 of file ppu_registers.h.
|
constexpr |
Definition at line 79 of file ppu_registers.h.
|
constexpr |
Definition at line 80 of file ppu_registers.h.
|
constexpr |
Definition at line 81 of file ppu_registers.h.
|
constexpr |
Definition at line 82 of file ppu_registers.h.
|
constexpr |
Definition at line 83 of file ppu_registers.h.
|
constexpr |
Definition at line 84 of file ppu_registers.h.
|
constexpr |
Definition at line 85 of file ppu_registers.h.
|
constexpr |
Definition at line 86 of file ppu_registers.h.
|
constexpr |
Definition at line 87 of file ppu_registers.h.
|
constexpr |
Definition at line 88 of file ppu_registers.h.
|
constexpr |
Definition at line 89 of file ppu_registers.h.
|
constexpr |
Definition at line 90 of file ppu_registers.h.
|
constexpr |
Definition at line 91 of file ppu_registers.h.
|
constexpr |
Definition at line 92 of file ppu_registers.h.
|
constexpr |
Definition at line 93 of file ppu_registers.h.
|
constexpr |
Definition at line 94 of file ppu_registers.h.
|
constexpr |
Definition at line 95 of file ppu_registers.h.
|
constexpr |
Definition at line 96 of file ppu_registers.h.
|
constexpr |
Definition at line 97 of file ppu_registers.h.
|
constexpr |
Definition at line 98 of file ppu_registers.h.
|
constexpr |
Definition at line 99 of file ppu_registers.h.
|
constexpr |
Definition at line 100 of file ppu_registers.h.
|
constexpr |
Definition at line 101 of file ppu_registers.h.
|
constexpr |
Definition at line 102 of file ppu_registers.h.
|
constexpr |
Definition at line 103 of file ppu_registers.h.
|
constexpr |
Definition at line 104 of file ppu_registers.h.
|
constexpr |
Definition at line 105 of file ppu_registers.h.
|
constexpr |
Definition at line 106 of file ppu_registers.h.