00001 #ifndef _PA_PaletteDual
00002 #define _PA_PaletteDual
00003
00004
00011 #include "PA_Palette.h"
00012
00013 #define PAL_BG PAL_BG0
00014 #define PAL_SPRITE PAL_SPRITE0
00015
00016
00034 #define PA_DualLoadPal(palette, source) {\
00035 DMA_Copy((void*)source, (void*)palette, 256, DMA_16NOW);\
00036 DMA_Copy((void*)(source+1024), (void*)palette, 256, DMA_16NOW);}
00037
00038
00039
00040
00056 #define PA_DualLoadPal16(palette, n_palette, source) {\
00057 DMA_Copy((void*)source, (void*)(palette + (n_palette << 5)), 16, DMA_16NOW);\
00058 DMA_Copy((void*)source, (void*)(palette + 1024 + (n_palette << 5)), 16, DMA_16NOW);}
00059
00060
00061
00062
00071 extern inline void PA_DualSetPalNeg(u32 palette) {
00072 u16* pal = (u16*)palette;
00073 u16 i;
00074 for (i = 0; i < 256; i++) {
00075 pal[i+512] = pal[i] = ~pal[i];
00076 }
00077 }
00078
00079
00080
00081
00093 extern inline void PA_DualSetPal16Neg(u32 palette, u8 n_palette) {
00094 u16* pal = (u16*)palette;
00095 u16 i;
00096 for (i = (n_palette << 4); i < ((n_palette + 1) << 4); i++) {
00097 pal[i+512] = pal[i] = ~pal[i];
00098 }
00099 }
00100
00101
00102
00103
00115 extern inline void PA_DualLoadSpriteExtPal(u8 palette_number, void* palette){
00116 PA_LoadSpriteExtPal(0, palette_number, palette);
00117 PA_LoadSpriteExtPal(1, palette_number, palette);
00118 }
00119
00120
00121
00122
00125
00126
00127
00128
00129
00130 #endif
00131
00132