00001 #ifndef _PA_SpecialFx
00002 #define _PA_SpecialFx
00003
00004
00005
00006
00007
00008 #define REG_MOSAIC(screen) _REG16(0x0400004C + (screen * 0x1000))
00009 #define REG_BLDCNT(screen) _REG16(0x04000050 + (screen * 0x1000))
00010 #define REG_BLDALPHA(screen) _REG16(0x04000052 + (screen * 0x1000))
00011
00012 #define SFX_BG0 1
00013 #define SFX_BG1 2
00014 #define SFX_BG2 4
00015 #define SFX_BG3 8
00016 #define SFX_OBJ 16
00017 #define SFX_BD 32
00018
00019 #define SFX_NONE 0
00020 #define SFX_ALPHA 1
00021 #define SFX_BRIGHTINC 2
00022 #define SFX_BRIGHTDEC 3
00023
00024
00050 #define PA_EnableBgMosaic(screen, bg) _REG16(REG_BGCNT(screen, bg)) |= (1 << 6)
00051
00052
00064 #define PA_DisableBgMosaic(screen, bg) _REG16(REG_BGCNT(screen, bg)) &= ~(1 << 6)
00065
00066
00067
00082 #define PA_SetBgMosaicXY(screen, h_size, v_size) {REG_MOSAIC(screen) &= 255; REG_MOSAIC(screen) |= (h_size + (v_size << 4));}
00083
00084
00099 #define PA_SetSpriteMosaicXY(screen, h_size, v_size) {REG_MOSAIC(screen) &= (255 << 8); REG_MOSAIC(screen) |= ((h_size << 8) + (v_size << 12));}
00100
00101
00102
00103
00104
00122 #define PA_EnableSpecialFx(screen, EffectType, FirstTarget, SecondTarget) REG_BLDCNT(screen) = (FirstTarget + (SecondTarget << 8) + (EffectType << 6))
00123
00124
00125
00126
00135 #define PA_DisableSpecialFx(screen) REG_BLDCNT(screen) = 0
00136
00137
00138
00153 #define PA_SetSFXAlpha(screen, Coeff1, Coeff2) REG_BLDALPHA(screen) = Coeff1 + (Coeff2 << 8)
00154
00155
00157
00158
00159 #endif
00160
00161