-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathgba.go
38 lines (31 loc) · 766 Bytes
/
gba.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package main
import (
"ndsemu/e2d"
"ndsemu/emu"
)
type GbaMemCnt struct {
Bus emu.Bus
}
func (mc *GbaMemCnt) VramPalette(engine int) []byte {
return mc.Bus.FetchPointer(0x05000000)
}
func (mc *GbaMemCnt) VramOAM(engine int) []byte {
return mc.Bus.FetchPointer(0x07000000)
}
func (mc *GbaMemCnt) VramLinearBank(engine int, which e2d.VramLinearBankId, baseOffset int) e2d.VramLinearBank {
vram := mc.Bus.FetchPointer(0x06000000)
vram = vram[baseOffset:] // FIXME
var bank e2d.VramLinearBank
for i := range bank.Ptr {
if len(vram) < 8*1024 {
bank.Ptr[i] = vram
break
}
bank.Ptr[i] = vram[:8*1024 : 8*1024]
vram = vram[8*1024:]
}
return bank
}
func (mc *GbaMemCnt) VramLcdcBank(bank int) []byte {
panic("LCDC bank access in GBA mode")
}