Nintendo DMG-01 - Game Boy Console Manual page 56

Manual
Table of Contents

Advertisement

2.13.1. I/O Registers
can be performed. It takes 160 microseconds for the
transfer.
40*28 bit = #140
transfers $8C bytes of data. OAM data is $A0 bytes
long, from $0-$9F.
But if you examine the OAM data you see that 4 bits
are not in use.
40*32 bit = #$A0, but since 4 bits for each OAM is
not used it's 40*28 bit.
It transfers all the OAM data to OAM RAM.
The DMA transfer start address can be designated
every $100 from address $0000-$F100. That means
$0000, $0100, $0200, $0300....
As can be seen by looking at register $FF41 Sprite
RAM ($FE00 - $FE9F) is not always available. A
simple routine that many games use to write data to
Sprite memory is shown below. Since it copies data
to the sprite RAM at the appropriate times it
removes that responsibility from the main program.
All of the memory space, except high RAM
($FF80-$FFFE), is not accessible during DMA. Because
of this, the routine below must be copied & executed
in high ram. It is usually called from a V-blank
Interrupt.
Example program:
org $40
jp VBlank
Page 56
or #$8C.
As you can see, it only
TM
Game Boy
CPU Manual
V 1.01

Hide quick links:

Advertisement

Table of Contents
loading

This manual is also suitable for:

Game boy

Table of Contents