

#include <nitro/gx/gx_load.h>
void GXS_LoadBGExtPltt(const void *pSrc, u32 destSlotAddr, u32 szByte);
| pSrc | Pointer to transfer origin |
| destSlotAddr | Address to inside of the transfer source BG expanded palette slot |
| szByte | Transfer size (in bytes) |
None.
This function uses DMA to transfer BG palette data to the sub-2D Engine BG Extended palette. The transfer destination address (in the BG Extended palette) can be specified. Use the GX_DMAID DMA channel (defined in gxcommon.h). Both destSlotAddr and szByte must be 4-byte aligned. Call this function between the GXS_BeginLoadBGExtPltt and GXS_EndLoadBGExtPltt functions.
Notes: Because the DMA transfer is carried out internally, the transfer source data must be written to main memory in advance using a function such as DC_FlushRange.
If the regions for transfer source and transfer destination overlap, the operation result is undefined. Do not call GX_SetBankForSubBGExtPltt, GX_ResetBankForSubBGExtPltt, or GX_DisableBankForSubBGExtPltt between GXS_BeginLoadBGExtPltt and GXS_EndLoadBGExtPltt.
The memory space that you can use for palettes varies according to the BG surface. For a BG2 palette you must place palette data in 0x4000-0x6000 (slot 2). For a BG3 palette you must place palette data in 0x6000-0x8000 (slot 3). You can use the G2S_SetBG0Control function to select either 0x0000-0x2000 (slot 0) or 0x4000-6000 (slot 2) for BG0, and the G2S_SetBG1Control function to select either 0x2000-0x4000 (slot 1) or 0x6000-8000 (slot 3) for BG1.
GXS_BeginLoadBGExtPltt
GXS_EndLoadBGExtPltt
2004/03/01
2004/02/09 Initial version.
CONFIDENTIAL