#16168 - Darmstadium - Tue Feb 10, 2004 3:18 am
I'm having a lot of trouble getting sprites I make to show up right. I convert my pcx image to a header file using dovoto's pcx2sprite. My sprite shows up as a bunch of garbage. Here's my code and the header that contains my sprite and the palette:
source.cpp
spriteMan.h
source.cpp
Code: |
#include "gba.h" #include "dispcnt.h" #include "spriteMan.h" #include "keypad.h" #include "sprite.h" void InitializeSprites() { u16 loop; for(loop = 0; loop < 128; loop++) { sprites[loop].attribute0 = 160; sprites[loop].attribute1 = 240; } } void CopyOAM() { u16 loop; u16* temp = (u16*)sprites; for(loop = 0; loop < 512; loop++) OAM[loop] = temp[loop]; } void WaitForVsync() { while((volatile u16)REG_VCOUNT != 160){} } int main() { u16 loop; SetMode(OBJ_MAP_1D | MODE_1 | OBJ_ENABLE); for(loop = 0; loop < 256; loop++) OBJPaletteMem[loop] = spriteManPal[loop]; InitializeSprites(); sprites[0].attribute0 = COLOR_256 | TALL | 60; sprites[0].attribute1 = SIZE_32 | 60; sprites[0].attribute2 = 0; for(loop = 0; loop < 256; loop++) OAMData[loop] = spriteManData[loop]; while(1) { WaitForVsync(); CopyOAM(); } return 0; } |
spriteMan.h
Code: |
const u16 spriteManData[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFF00, 0xFFFF, 0xFFFF, 0xFF00, 0xFF00, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFF00, 0xFFFF, 0xFFFF, 0xFF00, 0xFF00, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFF00, 0xFFFF, 0xFFFF, 0xFF00, 0xFF00, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFF00, 0xFFFF, 0xFFFF, 0xFF00, 0xFF00, 0xFFFF, 0xFFFF, 0x00FF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FF, 0xFFFF, 0xFF00, 0x0000, 0x00FF, 0xFFFF, 0xFF00, 0x0000, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFF00, 0xFFFF, 0xFFFF, 0xFF00, 0xFF00, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFF00, 0xFFFF, 0xFFFF, 0xFF00, 0xFF00, 0xFFFF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF00, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FF, 0xFFFF, 0x0000, 0xFFFF, 0x00FF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FF, 0xFFFF, 0xFF00, 0xFFFF, 0x00FF, 0xFFFF, 0xFF00, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FF, 0xFFFF, 0xFF00, 0xFFFF,}; const u16 spriteManPal[] = { 0x0802, 0x0802, 0x0802, 0x0802, 0x0802, 0x0802, 0x0802, 0x0802, 0x0802, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0x0421, 0x0421, 0x0842, 0x0842, 0x0C63, 0x0C63, 0x1084, 0x1084, 0x14A5, 0x14A5, 0x18C6, 0x18C6, 0x1CE7, 0x1CE7, 0x2108, 0x2108, 0x2529, 0x2529, 0x294A, 0x294A, 0x2D6B, 0x2D6B, 0x210C, 0x2108, 0x2529, 0x2529, 0x294A, 0x294A, 0x2D6B, 0x3DEF, 0x4210, 0x4210, 0x4631, 0x4631, 0x4A52, 0x4A52, 0x4673, 0x4671, 0x5294, 0x5294, 0x56B5, 0x56B5, 0x5AD6, 0x5AD6, 0x5EF7, 0x5EF7, 0x6318, 0x6318, 0x6739, 0x6739, 0x6B5A, 0x6B5A, 0x6F7B, 0x6F7B, 0x6318, 0x6318, 0x6739, 0x6739, 0x6B5A, 0x6B5A, 0x6F7B, 0x6F7B, 0x0004, 0x0000, 0x0421, 0x0421, 0x0842, 0x0842, 0x0C63, 0x0C63, 0x1084, 0x1084, 0x14A5, 0x14A5, 0x18C6, 0x18C6, 0x1CE7, 0x1CE7, 0x3188, 0x318C, 0x35AD, 0x35AD, 0x39CE, 0x39CE, 0x3DEF, 0x2D6B, 0x318C, 0x318C, 0x35AD, 0x35AD, 0x39CE, 0x39CE, 0x3DEF, 0x3DEF, 0x4210, 0x4210, 0x4E31, 0x4E33, 0x4A52, 0x4A52, 0x4E73, 0x4E73, 0x5294, 0x5294, 0x56B5, 0x56B5, 0x5AD6, 0x5AD6, 0x5EF7, 0x5EF7, 0x739C, 0x739C, 0x77BD, 0x77BD, 0x7BDE, 0x7BDE, 0x7FFF, 0x7FFF, 0x739C, 0x739C, 0x77BD, 0x77BD, 0x7BDE, 0x7BDE, 0x7FFF, 0x7FFF, 0x0004, 0x0000, 0x0421, 0x0421, 0x0842, 0x0842, 0x0C63, 0x0C63, 0x1084, 0x1084, 0x14A5, 0x14A5, 0x18C6, 0x18C6, 0x1CE7, 0x1CE7, 0x2108, 0x2108, 0x2529, 0x2529, 0x294A, 0x294A, 0x2D6B, 0x2D6B, 0x318C, 0x318C, 0x35AD, 0x35AD, 0x39CE, 0x39CE, 0x3DEF, 0x3DEF, 0x4210, 0x4210, 0x4631, 0x4631, 0x4A52, 0x4A52, 0x4E73, 0x4E73, 0x5294, 0x5294, 0x33F1, 0x0015, 0x0020, 0x3809, 0x7A92, 0x3000, 0x382A, 0x0015, 0x0000, 0x3001, 0x3000, 0x3809, 0x0008, 0x0000, 0x000A, 0x000A, 0x33F6, 0x7A88, 0x3000, 0x7A8B, 0x3000, 0x0008, 0x0000, 0x0020, 0x0020, 0x3839, 0x33F8, 0x7E33, 0x3000, 0x0020, 0x0008, 0x33E7, 0x2122, 0x3000, 0x0001, 0x0020, 0x0000, 0x0002, 0x2800, 0x20DA, 0x0000, 0x0000, 0x33F3, 0x2072, 0x21C0,}; |