#16169 - Darmstadium - Tue Feb 10, 2004 3:43 am
I am having a problem making a sprite appear properly. I convert my image from a pcx to header file using dovoto's pcx2sprite utility. I load it into OAM and all I get is garbage. I try my code with this example header that came with gbajunkie's tutorial and it works just fine. This is extremely frustrating. Please try to compile my code and see what you end up with. Well, here is my source and the header file that has my sprite and the palette in it:
source.cpp
spriteMan.h
Any help at all anybody could give would be VERY appreciated.
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,}; |
Any help at all anybody could give would be VERY appreciated.