no se porque, pero quiero solucionar esto lo antes posible, antes de anda un noticia para magicblack: no lo publiques aun ya hablaremos.
bueno, resulta que tengo este codigo:
//Cargar Sprites //Sprites abajo ODI_Cargar_Sprites_NitroFs(0,"personaje", 0); ODI_Reservar_Espacio_Sprite(0,oamAllocateGfx(&oamMain, SpriteSize_64x64,SpriteColorFormat_256Color),0); ODI_Cargar_Sprite(0,0,0,0,0,64,64,59,5,1); ODI_Cargar_Sprites_NitroFs(0,"bola",1); ODI_Reservar_Espacio_Sprite(0,oamAllocateGfx(&oamMain, SpriteSize_32x32,SpriteColorFormat_256Color),1); ODI_Cargar_Sprite(0,1,1,1,1,32,32,5,5,1); //Sprites arriba ODI_Cargar_Sprites_NitroFs(1,"personaje",0); ODI_Reservar_Espacio_Sprite(1,oamAllocateGfx(&oamSub, SpriteSize_64x64,SpriteColorFormat_256Color),0); ODI_Cargar_Sprite(1,0,0,0,0,64,64,59,5,1); ODI_Cargar_Sprites_NitroFs(1,"bola",1); ODI_Reservar_Espacio_Sprite(1,oamAllocateGfx(&oamSub, SpriteSize_32x32,SpriteColorFormat_256Color),1); ODI_Cargar_Sprite(1,1,1,1,1,32,32,5,5,1);
y utilizo esta funcion para cargarlos:
void ODI_Cargar_Sprite(u8 pantalla,int id, int paleta, int slot,int capa,int ancho, int alto,int x,int y, u8 color){ if(ancho==8 && alto==8)tamano[pantalla][slot]=SpriteSize_8x8; if(ancho==16 && alto==8)tamano[pantalla][slot]=SpriteSize_16x8; if(ancho==8 && alto==16)tamano[pantalla][slot]=SpriteSize_8x16; if(ancho==16 && alto==16)tamano[pantalla][slot]=SpriteSize_16x16; if(ancho==16 && alto==32)tamano[pantalla][slot]=SpriteSize_16x32; if(ancho==32 && alto==16)tamano[pantalla][slot]=SpriteSize_32x16; if(ancho==32 && alto==32)tamano[pantalla][slot]=SpriteSize_32x32; if(ancho==16 && alto==32)tamano[pantalla][slot]=SpriteSize_16x32; if(ancho==8 && alto==32)tamano[pantalla][slot]=SpriteSize_8x32; if(ancho==32 && alto==16)tamano[pantalla][slot]=SpriteSize_32x16; if(ancho==32 && alto==8)tamano[pantalla][slot]=SpriteSize_32x8; if(ancho==32 && alto==64)tamano[pantalla][slot]=SpriteSize_32x64; if(ancho==64 && alto==32)tamano[pantalla][slot]=SpriteSize_64x32; if(ancho==64 && alto==64)tamano[pantalla][slot]=SpriteSize_64x64; sprite_id[pantalla][slot]=id; sprite_x[pantalla][slot]=x; sprite_y[pantalla][slot]=y; sprite_pal[pantalla][slot]=paleta; sprite_color[pantalla][slot]=color; sprite_oculto[pantalla][slot]=false; sprite_capa[pantalla][slot]=capa; sprite_creado[pantalla][slot]=true; if(pantalla==1){ if(color==1){ memcpy((void*)spritegfx[pantalla][slot],Sprite[pantalla][slot], Sprite_size[pantalla][slot]); memcpy((void*)((0x06890000) + (paleta << 9)),Sprite_Pal[pantalla][slot], Sprite_Pal_size[pantalla][slot]); oamSet(&oamMain,id,x,y,capa,paleta,tamano[pantalla][slot],SpriteColorFormat_256Color,(void*)spritegfx[pantalla][slot],0,false,false,false,false,false); } if(color==0){ memcpy((void*)spritegfx[pantalla][slot],Sprite[pantalla][slot], Sprite_size[pantalla][slot]); memcpy((void*)((0x06890000) + (paleta << 9)),Sprite_Pal[pantalla][slot], Sprite_Pal_size[pantalla][slot]); oamSet(&oamMain,id,x,y,capa,paleta,tamano[pantalla][slot],SpriteColorFormat_16Color,(void*)spritegfx[pantalla][slot],0,false,false,false,false,false); } } if(pantalla==0){ if(color==1){ memcpy((void*)spritegfx[pantalla][slot],Sprite[pantalla][slot], Sprite_size[pantalla][slot]); memcpy((void*)((0x068A0000) + (paleta << 9)),Sprite_Pal[pantalla][slot], Sprite_Pal_size[pantalla][slot]); oamSet(&oamSub,id,x,y,capa,paleta,tamano[pantalla][slot],SpriteColorFormat_256Color,(void*)spritegfx[pantalla][slot],0,false,false,false,false,false); } if(color==0){ memcpy((void*)spritegfx[pantalla][slot],Sprite[pantalla][slot], Sprite_size[pantalla][slot]); memcpy((void*)((0x068A0000) + (paleta << 9)),Sprite_Pal[pantalla][slot], Sprite_Pal_size[pantalla][slot]); oamSet(&oamSub,id,x,y,capa,paleta,tamano[pantalla][slot],SpriteColorFormat_16Color,(void*)spritegfx[pantalla][slot],0,false,false,false,false,false); } } }
esos codigos me cargan dos sprites arriba y dos abajo, pero si solo quiero cargar lso de una pantalla, no va. si comento la carga de lso de arriba quedaria asi:
//Cargar Sprites //Sprites abajo /*ODI_Cargar_Sprites_NitroFs(0,"personaje", 0); ODI_Reservar_Espacio_Sprite(0,oamAllocateGfx(&oamMain, SpriteSize_64x64,SpriteColorFormat_256Color),0); ODI_Cargar_Sprite(0,0,0,0,0,64,64,59,5,1); ODI_Cargar_Sprites_NitroFs(0,"bola",1); ODI_Reservar_Espacio_Sprite(0,oamAllocateGfx(&oamMain, SpriteSize_32x32,SpriteColorFormat_256Color),1); ODI_Cargar_Sprite(0,1,1,1,1,32,32,5,5,1);*/ //Sprites arriba ODI_Cargar_Sprites_NitroFs(1,"personaje",0); ODI_Reservar_Espacio_Sprite(1,oamAllocateGfx(&oamSub, SpriteSize_64x64,SpriteColorFormat_256Color),0); ODI_Cargar_Sprite(1,0,0,0,0,64,64,59,5,1); ODI_Cargar_Sprites_NitroFs(1,"bola",1); ODI_Reservar_Espacio_Sprite(1,oamAllocateGfx(&oamSub, SpriteSize_32x32,SpriteColorFormat_256Color),1); ODI_Cargar_Sprite(1,1,1,1,1,32,32,5,5,1);
y asi se queda la pantalla en negro, no carga ninguno
ayuda plisss
Para empezar, en libnds, el
Para empezar, en libnds, el main display es la pantalla superior. Despues falta la parte de codigo donde actualizas el OAM despues del wairforvbl. Mirate que este correcto.
Nuestra web oficial:
http://www.nightfoxandco.com/
Siguenos en facebook:
http://www.facebook.com/pages/NightFox-Co/284338634917917
Por favor, no useis los MP para preguntas, usar el FORO:
http://www.nightfoxandco.com/forum/
Asi nos ahorramos de contestar lo mismo 20 veces.
si, esta todo correcto, fue
si, esta todo correcto, fue un error mio, puse un comentario, gracias knightfox, pro molestarte en contestar
Perdon error mio, aunque lo
Perdon error mio, aunque lo digo si quereis, si os dais cuenta en la pantalla de arriba declare el espac io para la de abajo y biceversa, ya esta no apsa nada, podeis cerrar
Be Libre my Friend.