Documentation
¶
Index ¶
- Constants
- Variables
- func ADC(left, right, carry uint32) (value uint64)
- func ADD(left, right, carry uint32) (value uint64)
- func AND(left, right, carry uint32) (value uint64)
- func BIC(left, right, carry uint32) (value uint64)
- func CMN(left, right, carry uint32) (value uint64)
- func CMP(left, right, carry uint32) (value uint64)
- func EOR(left, right, carry uint32) (value uint64)
- func FlagArithAdd(left, right uint32, value uint64) (N, Z, C, V bool)
- func FlagArithReSub(left, right uint32, value uint64) (N, Z, C, V bool)
- func FlagArithSub(left, right uint32, value uint64) (N, Z, C, V bool)
- func FlagLogic(left, right uint32, value uint64) (N, Z, C, V bool)
- func MOV(left, right, carry uint32) (value uint64)
- func MUL(left, right, carry uint32) (value uint64)
- func MVN(left, right, carry uint32) (value uint64)
- func ORR(left, right, carry uint32) (value uint64)
- func RSB(left, right, carry uint32) (value uint64)
- func RSC(left, right, carry uint32) (value uint64)
- func ReadBits[S Size](v S, bit uint8, size uint8) S
- func ReadFlag[S Size](m *Memory, flag IOFlag[S]) S
- func ReadIORegister[S Size](m *Memory, r IORegister[S]) S
- func ReadIORegister16(m *Memory, r IORegister[uint16]) uint16
- func SBCArm(left, right, carry uint32) (value uint64)
- func SBCThumb(left, right, carry uint32) (value uint64)
- func SUB(left, right, carry uint32) (value uint64)
- func SetBits[S Size](v S, bit uint8, size uint8, value S) S
- func SetFlag[S Size](m *Memory, flag IOFlag[S], value S)
- func SetIORegister[S Size](m *Memory, r IORegister[S], value S)
- func SetIORegister16(m *Memory, r IORegister[uint16], value uint16)
- func Shift(shiftType uint32, value, amount uint32) (uint32, bool)
- func ShiftASR(value, amount uint32) (uint32, bool)
- func ShiftLSL(value, amount uint32) (uint32, bool)
- func ShiftLSR(value, amount uint32) (uint32, bool)
- func ShiftROR(value, amount uint32) (uint32, bool)
- func TEQ(left, right, carry uint32) (value uint64)
- func TST(left, right, carry uint32) (value uint64)
- type APU
- func (a *APU) OnFIFOWrite(address uint32, value uint32, size uint32)
- func (a *APU) OnSOUND1CNT_H(v uint16)
- func (a *APU) OnSOUND1CNT_L(v uint16)
- func (a *APU) OnSOUND1CNT_X(v uint16)
- func (a *APU) OnSOUND2CNT_H(v uint16)
- func (a *APU) OnSOUND2CNT_L(v uint16)
- func (a *APU) OnSOUND3CNT_H(v uint16)
- func (a *APU) OnSOUND3CNT_L(v uint16)
- func (a *APU) OnSOUND3CNT_X(v uint16)
- func (a *APU) OnSOUND4CNT_H(v uint16)
- func (a *APU) OnSOUND4CNT_L(v uint16)
- func (a *APU) OnSOUNDCNT_H(value uint16)
- func (a *APU) OnTimerOverflow(idx int)
- func (a *APU) SampleRate() int
- func (a *APU) SetOutput(cb func([]int16))
- func (a *APU) Tick(cycles uint32)
- type BlockData
- type CPU
- func (c *CPU) Arm(instruction uint32)
- func (c *CPU) ArmALU(instruction uint32)
- func (c *CPU) ArmBranch(instruction uint32)
- func (c *CPU) ArmBranchX(instruction uint32)
- func (c *CPU) ArmMRS(instruction uint32)
- func (c *CPU) ArmMSR(instruction uint32)
- func (c *CPU) ArmMemory(instruction uint32)
- func (c *CPU) ArmMemoryBlock(instruction uint32)
- func (c *CPU) ArmMultiply(instruction uint32)
- func (c *CPU) ArmMultiplyLong(instruction uint32)
- func (c *CPU) ArmSWI(instruction uint32)
- func (c *CPU) ArmShift(shiftType uint32, value, amount uint32, S uint32, I uint32) uint32
- func (c *CPU) ArmSwap(instruction uint32)
- func (c *CPU) Arm_B(instruction uint32)
- func (c *CPU) Arm_BL(instruction uint32)
- func (c *CPU) Arm_BLX(instruction uint32)
- func (c *CPU) Arm_BX(instruction uint32)
- func (c *CPU) Arm_LDM(instruction uint32)
- func (c *CPU) Arm_MemoryHalf(instruction uint32)
- func (c *CPU) Arm_Op2(instruction uint32) uint32
- func (c *CPU) Arm_Rm(instruction uint32) uint32
- func (c *CPU) Arm_Rn(instruction uint32) uint32
- func (c *CPU) Arm_Rx(instruction uint32, Rx uint32) uint32
- func (c *CPU) Arm_STM(instruction uint32)
- func (c *CPU) SWI(comment uint32)
- func (c *CPU) Step()
- func (c *CPU) Thumb(instruction uint32)
- func (c *CPU) ThumbALU(instruction uint32)
- func (c *CPU) ThumbAddSP(instruction uint32)
- func (c *CPU) ThumbAddSub(instruction uint32)
- func (c *CPU) ThumbBranchCond(instruction uint32)
- func (c *CPU) ThumbBranchHi(instruction uint32)
- func (c *CPU) ThumbBranchLink1(instruction uint32)
- func (c *CPU) ThumbBranchLink2(instruction uint32)
- func (c *CPU) ThumbBranchUncond(instruction uint32)
- func (c *CPU) ThumbHiReg(instruction uint32)
- func (c *CPU) ThumbImm(instruction uint32)
- func (c *CPU) ThumbMemoryBlock(instruction uint32)
- func (c *CPU) ThumbMemoryHalf(instruction uint32)
- func (c *CPU) ThumbMemoryHalfSign(instruction uint32)
- func (c *CPU) ThumbMemoryImm(instruction uint32)
- func (c *CPU) ThumbMemoryPCRel(instruction uint32)
- func (c *CPU) ThumbMemoryPCSP(instruction uint32)
- func (c *CPU) ThumbMemoryReg(instruction uint32)
- func (c *CPU) ThumbMemorySPRel(instruction uint32)
- func (c *CPU) ThumbMemorySign(instruction uint32)
- func (c *CPU) ThumbPop(instruction uint32)
- func (c *CPU) ThumbPush(instruction uint32)
- func (c *CPU) ThumbPushPop(instruction uint32)
- func (c *CPU) ThumbSWI(instruction uint32)
- func (c *CPU) ThumbShift(instruction uint32)
- func (c *CPU) Thumb_ADD(instruction uint32)
- func (c *CPU) Thumb_BLXHi(instruction uint32)
- func (c *CPU) Thumb_BXHi(instruction uint32)
- func (c *CPU) Thumb_LDR(instruction uint32)
- func (c *CPU) Thumb_LDRB(instruction uint32)
- func (c *CPU) Thumb_STR(instruction uint32)
- func (c *CPU) Thumb_STRB(instruction uint32)
- func (c *CPU) Thumb_SUB(instruction uint32)
- func (c *CPU) Thumb_SetCPSRLogic(value uint32)
- type CPURegisters
- type DMAController
- type Emulator
- type Flash
- type GPIO
- type IOFlag
- type IORegister
- type LCD
- func (l *LCD) BGMode0Write(line uint16)
- func (l *LCD) BGMode1Write(line uint16)
- func (l *LCD) BGMode2Write(line uint16)
- func (l *LCD) BGMode3Write(line uint16)
- func (l *LCD) BGMode4Write(line uint16)
- func (l *LCD) BGMode5Write(line uint16)
- func (l *LCD) Blank(line uint16)
- func (l *LCD) Color(r, g, b, a uint32) uint16
- func (l *LCD) CountFrame()
- func (l *LCD) DrawFrame()
- func (l *LCD) DrawLine(line uint16, blank uint16)
- func (l *LCD) Front() *image.RGBA
- func (l *LCD) IncrementAffineRefs()
- func (l *LCD) LatchAffineRefs()
- func (l *LCD) OnAffineRefWrite(addr uint32)
- func (l *LCD) PaletteRGBA(n uint8) (r, g, b, a uint32)
- func (l *LCD) RGBA(d uint16) (r, g, b, a uint32)
- func (l *LCD) SetDraw(draw func())
- type Memory
- func (m *Memory) ClearBlock(mb MemoryBlock)
- func (m *Memory) Read8(address uint32, cycle bool, forceAddr bool) (value uint8)
- func (m *Memory) Read16(address uint32, cycle bool, forceAddr bool) (value uint16)
- func (m *Memory) Read32(address uint32, cycle bool, forceAddr bool) (value uint32)
- func (m *Memory) ReadMemoryBlock(mb MemoryBlock) []byte
- func (m *Memory) Set8(address uint32, value uint8, cycle bool, forceAddr bool)
- func (m *Memory) Set16(address uint32, value uint16, cycle bool, forceAddr bool)
- func (m *Memory) Set32(address uint32, value uint32, cycle bool, forceAddr bool)
- func (m *Memory) SetMemoryBlock(mb MemoryBlock, value []byte)
- type MemoryBlock
- type Motherboard
- type RTC
- type Size
- type Timer
Constants ¶
View Source
const ( USR uint32 = 0b10000 FIQ uint32 = 0b10001 IRQ uint32 = 0b10010 SVC uint32 = 0b10011 ABT uint32 = 0b10111 UND uint32 = 0b11011 SYS uint32 = 0b11111 )
View Source
const ( SoftReset uint32 = 0x00 RegisterRamReset uint32 = 0x01 SWIHalt uint32 = 0x02 SWIIntrWait uint32 = 0x04 SWIVBlankIntrWait uint32 = 0x05 SWIDiv uint32 = 0x06 SWIDivArm uint32 = 0x07 SWISqrt uint32 = 0x08 SWIArcTan uint32 = 0x09 SWIArcTan2 uint32 = 0x0A CpuSet uint32 = 0x0B SWICpuFastSet uint32 = 0x0C SWIBitUnPack uint32 = 0x10 SWILz77UnCompWram uint32 = 0x11 SWILz77UnCompVram uint32 = 0x12 SWIRLUnCompWram uint32 = 0x14 SWIRLUnCompVram uint32 = 0x15 SWIObjAffineSet uint32 = 0x0F SWIBgAffineSet uint32 = 0x0E )
View Source
const ( DMAImmediate uint16 = iota DMAVBlank DMAHBlank DMASpecial )
View Source
const ( DISPCNT = IORegister[uint16](0x4000000) DISPSTAT = IORegister[uint16](0x4000004) VCOUNT = IORegister[uint16](0x4000006) BG0CNT = IORegister[uint16](0x4000008) BG1CNT = IORegister[uint16](0x400000A) BG2CNT = IORegister[uint16](0x400000C) BG3CNT = IORegister[uint16](0x400000E) BG0HOFS = IORegister[uint16](0x4000010) BG0VOFS = IORegister[uint16](0x4000012) BG1HOFS = IORegister[uint16](0x4000014) BG1VOFS = IORegister[uint16](0x4000016) BG2HOFS = IORegister[uint16](0x4000018) BG2VOFS = IORegister[uint16](0x400001A) BG3HOFS = IORegister[uint16](0x400001C) BG3VOFS = IORegister[uint16](0x400001E) BG2PA = IORegister[uint16](0x4000020) BG2PB = IORegister[uint16](0x4000022) BG2PC = IORegister[uint16](0x4000024) BG2PD = IORegister[uint16](0x4000026) BG2X = IORegister[uint32](0x4000028) BG2Y = IORegister[uint32](0x400002C) BG3PA = IORegister[uint16](0x4000030) BG3PB = IORegister[uint16](0x4000032) BG3PC = IORegister[uint16](0x4000034) BG3PD = IORegister[uint16](0x4000036) BG3X = IORegister[uint32](0x4000038) BG3Y = IORegister[uint32](0x400003C) WIN0H = IORegister[uint16](0x4000040) WIN1H = IORegister[uint16](0x4000042) WIN0V = IORegister[uint16](0x4000044) WIN1V = IORegister[uint16](0x4000046) WININ = IORegister[uint16](0x4000048) WINOUT = IORegister[uint16](0x400004A) MOSAIC = IORegister[uint16](0x400004C) BLDCNT = IORegister[uint16](0x4000050) BLDALPHA = IORegister[uint16](0x4000052) BLDY = IORegister[uint16](0x4000054) SOUND1CNT_L = IORegister[uint16](0x4000060) SOUND1CNT_H = IORegister[uint16](0x4000062) SOUND1CNT_X = IORegister[uint16](0x4000064) SOUND2CNT_L = IORegister[uint16](0x4000068) SOUND2CNT_H = IORegister[uint16](0x400006C) SOUND3CNT_L = IORegister[uint16](0x4000070) SOUND3CNT_H = IORegister[uint16](0x4000072) SOUND3CNT_X = IORegister[uint16](0x4000074) SOUND4CNT_L = IORegister[uint16](0x4000078) SOUND4CNT_H = IORegister[uint16](0x400007C) SOUNDCNT_L = IORegister[uint16](0x4000080) SOUNDCNT_H = IORegister[uint16](0x4000082) SOUNDCNT_X = IORegister[uint16](0x4000084) SOUNDBIAS = IORegister[uint16](0x4000088) WAVE_RAM0_L = IORegister[uint16](0x4000090) WAVE_RAM0_H = IORegister[uint16](0x4000092) WAVE_RAM1_L = IORegister[uint16](0x4000094) WAVE_RAM1_H = IORegister[uint16](0x4000096) WAVE_RAM2_L = IORegister[uint16](0x4000098) WAVE_RAM2_H = IORegister[uint16](0x400009A) WAVE_RAM3_L = IORegister[uint16](0x400009C) WAVE_RAM3_H = IORegister[uint16](0x400009E) FIFO_A = IORegister[uint32](0x40000A0) FIFO_B = IORegister[uint32](0x40000A4) DMA0SAD = IORegister[uint32](0x40000B0) DMA0DAD = IORegister[uint32](0x40000B4) DMA0CNT_L = IORegister[uint16](0x40000B8) DMA0CNT_H = IORegister[uint16](0x40000BA) DMA1SAD = IORegister[uint32](0x40000BC) DMA1DAD = IORegister[uint32](0x40000C0) DMA1CNT_L = IORegister[uint16](0x40000C4) DMA1CNT_H = IORegister[uint16](0x40000C6) DMA2SAD = IORegister[uint32](0x40000C8) DMA2DAD = IORegister[uint32](0x40000CC) DMA2CNT_L = IORegister[uint16](0x40000D0) DMA2CNT_H = IORegister[uint16](0x40000D2) DMA3SAD = IORegister[uint32](0x40000D4) DMA3DAD = IORegister[uint32](0x40000D8) DMA3CNT_L = IORegister[uint16](0x40000DC) DMA3CNT_H = IORegister[uint16](0x40000DE) TM0CNT_L = IORegister[uint16](0x4000100) TM0CNT_H = IORegister[uint16](0x4000102) TM1CNT_L = IORegister[uint16](0x4000104) TM1CNT_H = IORegister[uint16](0x4000106) TM2CNT_L = IORegister[uint16](0x4000108) TM2CNT_H = IORegister[uint16](0x400010A) TM3CNT_L = IORegister[uint16](0x400010C) TM3CNT_H = IORegister[uint16](0x400010E) SIODATA32 = IORegister[uint32](0x4000120) SIOMULTI0 = IORegister[uint16](0x4000120) SIOMULTI1 = IORegister[uint16](0x4000122) SIOMULTI2 = IORegister[uint16](0x4000124) SIOMULTI3 = IORegister[uint16](0x4000126) SIOCNT = IORegister[uint16](0x4000128) SIOMLT_SEND = IORegister[uint16](0x400012A) SIODATA8 = IORegister[uint16](0x400012A) KEYINPUT = IORegister[uint16](0x4000130) KEYCNT = IORegister[uint16](0x4000132) RCNT = IORegister[uint16](0x4000134) IR = IORegister[uint16](0x4000136) JOYCNT = IORegister[uint16](0x4000140) JOY_RECV = IORegister[uint32](0x4000150) JOY_TRANS = IORegister[uint32](0x4000154) JOYSTAT = IORegister[uint16](0x4000158) IE = IORegister[uint16](0x4000200) IF = IORegister[uint16](0x4000202) WAITCNT = IORegister[uint16](0x4000204) IME = IORegister[uint16](0x4000208) POSTFLG = IORegister[uint8](0x4000300) HALTCNT = IORegister[uint8](0x4000301) )
View Source
const ( LSL uint32 = iota LSR ASR ROR )
Variables ¶
View Source
var ( BGMODE = Flag(DISPCNT, 0, 3) BGFRAME = Flag(DISPCNT, 4, 1) )
View Source
var ( BIOS = mb(0x00000000, 0x00003FFF, 16*k, [3]bool{true, true, true}, [3]bool{false, false, false}, [3]uint32{1, 1, 1}) WRAM1 = mb(0x02000000, 0x02FFFFFF, 256*k, [3]bool{true, true, true}, [3]bool{true, true, true}, [3]uint32{3, 3, 6}) WRAM2 = mb(0x03000000, 0x03FFFFFF, 32*k, [3]bool{true, true, true}, [3]bool{true, true, true}, [3]uint32{1, 1, 1}) IOR = mb(0x04000000, 0x040003FF, 0x400, [3]bool{true, true, true}, [3]bool{true, true, true}, [3]uint32{1, 1, 1}) Palette = mb(0x05000000, 0x05FFFFFF, 1*k, [3]bool{true, true, true}, [3]bool{false, true, true}, [3]uint32{1, 1, 2}) VRAM = mb(0x06000000, 0x06017FFF, 96*k, [3]bool{true, true, true}, [3]bool{false, true, true}, [3]uint32{1, 1, 1}) OAM = mb(0x07000000, 0x07FFFFFF, 1*k, [3]bool{true, true, true}, [3]bool{false, true, true}, [3]uint32{1, 1, 1}) GPRom1 = mb(0x08000000, 0x09FFFFFF, 32*m, [3]bool{true, true, true}, [3]bool{false, false, false}, [3]uint32{5, 5, 8}) GPRom2 = mb(0x0A000000, 0x0BFFFFFF, 32*m, [3]bool{true, true, true}, [3]bool{false, false, false}, [3]uint32{5, 5, 8}) GPRom3 = mb(0x0C000000, 0x0DFFFFFF, 32*m, [3]bool{true, true, true}, [3]bool{false, false, false}, [3]uint32{5, 5, 8}) GPSRAM = mb(0x0E000000, 0xFFFFFFFF, 64*k, [3]bool{true, false, false}, [3]bool{true, false, false}, [3]uint32{5, 5, 5}) )
Functions ¶
func FlagArithAdd ¶
func FlagArithReSub ¶
func FlagArithSub ¶
func ReadIORegister ¶
func ReadIORegister[S Size](m *Memory, r IORegister[S]) S
func ReadIORegister16 ¶
func ReadIORegister16(m *Memory, r IORegister[uint16]) uint16
func SetIORegister ¶
func SetIORegister[S Size](m *Memory, r IORegister[S], value S)
func SetIORegister16 ¶
func SetIORegister16(m *Memory, r IORegister[uint16], value uint16)
Types ¶
type APU ¶
type APU struct {
*Motherboard
// contains filtered or unexported fields
}
func NewAPU ¶
func NewAPU(m *Motherboard) *APU
func (*APU) OnSOUND1CNT_H ¶
func (*APU) OnSOUND1CNT_L ¶
func (*APU) OnSOUND1CNT_X ¶
func (*APU) OnSOUND2CNT_H ¶
func (*APU) OnSOUND2CNT_L ¶
func (*APU) OnSOUND3CNT_H ¶
func (*APU) OnSOUND3CNT_L ¶
func (*APU) OnSOUND3CNT_X ¶
func (*APU) OnSOUND4CNT_H ¶
func (*APU) OnSOUND4CNT_L ¶
func (*APU) OnSOUNDCNT_H ¶
func (*APU) OnTimerOverflow ¶
func (*APU) SampleRate ¶
type BlockData ¶
type BlockData struct {
MemoryBlock MemoryBlock
Data []byte
}
type CPU ¶
type CPU struct {
*Motherboard
CPURegisters
// contains filtered or unexported fields
}
func NewCPU ¶
func NewCPU(m *Motherboard) *CPU
func (*CPU) ArmBranchX ¶
func (*CPU) ArmMemoryBlock ¶
func (*CPU) ArmMultiply ¶
func (*CPU) ArmMultiplyLong ¶
func (*CPU) Arm_MemoryHalf ¶
func (*CPU) ThumbAddSP ¶
func (*CPU) ThumbAddSub ¶
func (*CPU) ThumbBranchCond ¶
func (*CPU) ThumbBranchHi ¶
func (*CPU) ThumbBranchLink1 ¶
func (*CPU) ThumbBranchLink2 ¶
func (*CPU) ThumbBranchUncond ¶
func (*CPU) ThumbHiReg ¶
func (*CPU) ThumbMemoryBlock ¶
func (*CPU) ThumbMemoryHalf ¶
func (*CPU) ThumbMemoryHalfSign ¶
func (*CPU) ThumbMemoryImm ¶
func (*CPU) ThumbMemoryPCRel ¶
func (*CPU) ThumbMemoryPCSP ¶
func (*CPU) ThumbMemoryReg ¶
func (*CPU) ThumbMemorySPRel ¶
func (*CPU) ThumbMemorySign ¶
func (*CPU) ThumbPushPop ¶
func (*CPU) ThumbShift ¶
func (*CPU) Thumb_BLXHi ¶
func (*CPU) Thumb_BXHi ¶
func (*CPU) Thumb_LDRB ¶
func (*CPU) Thumb_STRB ¶
func (*CPU) Thumb_SetCPSRLogic ¶
type CPURegisters ¶
type CPURegisters struct {
R [16]uint32
CPSR uint32
R0 uint32
R1 uint32
R2 uint32
R3 uint32
R4 uint32
R5 uint32
R6 uint32
R7 uint32
R8 uint32
R9 uint32
R10 uint32
R11 uint32
R12 uint32
R13 uint32
R14 uint32
R15 uint32
R8_fiq uint32
R9_fiq uint32
R10_fiq uint32
R11_fiq uint32
R12_fiq uint32
R13_fiq uint32
R13_svc uint32
R13_abt uint32
R13_irq uint32
R13_und uint32
R14_fiq uint32
R14_svc uint32
R14_abt uint32
R14_irq uint32
R14_und uint32
SPSR_fiq uint32
SPSR_svc uint32
SPSR_abt uint32
SPSR_irq uint32
SPSR_und uint32
}
type DMAController ¶
type DMAController struct {
*Motherboard
// contains filtered or unexported fields
}
func NewDMA ¶
func NewDMA(m *Motherboard) *DMAController
func (*DMAController) LatchAddresses ¶
func (d *DMAController) LatchAddresses(ch int)
type Emulator ¶
type Emulator struct {
*Motherboard
FastForward bool
// contains filtered or unexported fields
}
type Flash ¶
type Flash struct {
*Motherboard
Data [128 * 1024]byte
// contains filtered or unexported fields
}
func NewFlash ¶
func NewFlash(m *Motherboard, gamepak []byte) *Flash
type IORegister ¶
type LCD ¶
type LCD struct {
*Motherboard
ShowFPS bool
// contains filtered or unexported fields
}
func NewLCD ¶
func NewLCD(m *Motherboard) *LCD
func (*LCD) BGMode0Write ¶
func (*LCD) BGMode1Write ¶
func (*LCD) BGMode2Write ¶
func (*LCD) BGMode3Write ¶
func (*LCD) BGMode4Write ¶
func (*LCD) BGMode5Write ¶
func (*LCD) CountFrame ¶
func (l *LCD) CountFrame()
func (*LCD) IncrementAffineRefs ¶
func (l *LCD) IncrementAffineRefs()
func (*LCD) LatchAffineRefs ¶
func (l *LCD) LatchAffineRefs()
func (*LCD) OnAffineRefWrite ¶
func (*LCD) PaletteRGBA ¶
type Memory ¶
type Memory struct {
*Motherboard
Blocks []BlockData
// contains filtered or unexported fields
}
func NewMemory ¶
func NewMemory(mm *Motherboard) *Memory
func (*Memory) ClearBlock ¶
func (m *Memory) ClearBlock(mb MemoryBlock)
func (*Memory) ReadMemoryBlock ¶
func (m *Memory) ReadMemoryBlock(mb MemoryBlock) []byte
func (*Memory) SetMemoryBlock ¶
func (m *Memory) SetMemoryBlock(mb MemoryBlock, value []byte)
type MemoryBlock ¶
type Motherboard ¶
type Motherboard struct {
CPU *CPU
Memory *Memory
LCD *LCD
DMA *DMAController
Timer *Timer
Flash *Flash
GPIO *GPIO
APU *APU
}
func NewMotherboard ¶
func NewMotherboard(gamepak, bios []byte) *Motherboard
type RTC ¶
type RTC struct {
*Motherboard
// contains filtered or unexported fields
}
func NewRTC ¶
func NewRTC(m *Motherboard) *RTC
type Timer ¶
type Timer struct {
*Motherboard
// contains filtered or unexported fields
}
func NewTimer ¶
func NewTimer(m *Motherboard) *Timer
func (*Timer) OnControlWrite ¶
func (*Timer) SyncToMemory ¶
func (t *Timer) SyncToMemory()
Click to show internal directories.
Click to hide internal directories.