As a generic link, I once wrote a short blog post about this issue. Basically, you first need to determine which layer is the alpha mixture against which the other layers are located. AFAIK,
- The source layer (s) must be on top of the target layer (s) in order to display any blending. this means that the priority of the source layers must be numerically lower than the priority of the target layers.
- the source layer is what will be translucent, the destination (s) is what will be visible (and yes, I find it rather confusing).
In sprites, in particular , you have 3 ways to achieve alpha blending, depending on what you need and what you are “willing to pay” for it:
- You can make all sprites alpha blend by including
BLEND_SRC_SPRITE in REG_BLDCNT[_SUB] ... not so useful. - You can selectively enable blending of some sprites with
ATTR0_TYPE_BLENDED . The blending level will be the same for all sprites (and layers). - In raster types, sprites use direct colors (bypassing the palettes), so the
ATTR2_PALETTE() field of the GBA descriptors is useless and redesigned into ATTR2_ALPHA .
Pypebros
source share