open_agb_firm/libn3ds/source/arm11/drivers/lgyfb_360x240.dma330

36 lines
831 B
Plaintext

# 8 bytes burst with 15 transfers. Total 120 bytes per burst.
# Source fixed address and destination incrementing.
# Source and destination unprivileged, non-secure data access.
MOV CCR, SB15 SS64 SAF SP2 DB15 DS64 DAI DP2
MOV SAR, 0x10311000
MOV DAR, 0x18200000
FLUSHP 14
# Loop until the entire frame has been transferred.
LP 30 # For height 240.
# Wait for a burst request.
WFP 14, burst
# Transfer 8 scanlines.
# For width 360:
#LP 44 # RGB5551 & RGB565, 128 bytes burst
LP 71 # RGB8, 120 bytes burst
#LP 89 # RGBA8, 128 bytes burst
LD
ST
LPEND
LDPB 14 # This must always be conditional on bursts. No idea why. Assembler bug?
ST
# Skip gaps swizzle edition™.
#For width 360 with 512x512 texture:
#ADDH DAR, 0x980 # RGB5551 & RGB565
ADDH DAR, 0xE40 # RGB8
#ADDH DAR, 0x1300 # RGBA8
LPEND
WMB
SEV 0
END