Buenas de nuevo.
Estoy en un problema. Tengo cargado 2 fondos en dos capas distintas, para que salga una encima de otra, pero al ejecutar este codigo, no da errores, pero se queda la pantalla en negro. Ayuda.
#include <nds.h> #include <stdio.h> #include "Intro1.h" #include "Intro2.h" //--------------------------------------------------------------------------------- void ODI_CopiarALaMemoria(const void* source, void* destino, u32 size) { u32 src = (u32)source; u32 dst = (u32)destino; if ((src | dst) & 1) { memcpy(destino, source, size); } else { while (dmaBusy(3)); DC_FlushRange(source, size); if ((src | dst | size) & 3) { dmaCopyHalfWords(3, source, destino, size); } else { dmaCopyWords(3, source, destino, size); } DC_InvalidateRange(destino, size); } } //--------------------------------------------------------------------------------- int main(void) { //--------------------------------------------------------------------------------- REG_DISPCNT = MODE_0_2D|DISPLAY_BG2_ACTIVE|DISPLAY_BG3_ACTIVE|DISPLAY_BG_EXT_PALETTE; REG_DISPCNT_SUB = MODE_0_2D|DISPLAY_BG0_ACTIVE; vramSetBankA(VRAM_A_MAIN_BG); vramSetBankC(VRAM_C_SUB_BG); vramSetBankE(VRAM_E_LCD); vramSetBankE(VRAM_E_BG_EXT_PALETTE); //--------------------------------------------------------------------------------- u16* tilebuffer = (u16*)BG_TILE_RAM(1); u16* mapbuffer = (u16*)BG_MAP_RAM(0); u16* palbuffer = (u16*)VRAM_E; u16* palbuffer2 = VRAM_E + 4096; REG_BG3CNT = BG_32x32 | BG_COLOR_256 | BG_MAP_BASE(0) | BG_TILE_BASE(1)|BG_PRIORITY(0);; ODI_CopiarALaMemoria( Intro1Tiles, (void*)tilebuffer, Intro1TilesLen); ODI_CopiarALaMemoria( Intro1Pal, (void*)palbuffer2, Intro1PalLen); ODI_CopiarALaMemoria( Intro1Map, (void*)mapbuffer, Intro1MapLen); //--------------------------------------------------------------------------------- //--------------------------------------------------------------------------------- u16* tilebuffer2 = (u16*)BG_TILE_RAM(3); u16* mapbuffer2 = (u16*)BG_MAP_RAM(1); REG_BG2CNT = BG_32x32 | BG_COLOR_256 | BG_MAP_BASE(1) | BG_TILE_BASE(3)|BG_PRIORITY(1);; ODI_CopiarALaMemoria( Intro2Tiles, (void*)tilebuffer2, Intro2TilesLen); ODI_CopiarALaMemoria( Intro2Pal, (void*)palbuffer, Intro2PalLen); ODI_CopiarALaMemoria( Intro2Map, (void*)mapbuffer2, Intro2MapLen); while(1) { swiWaitForVBlank(); } }
+Informacion:
La funcion que empleo para copiar la encontre en la pagina del creador de grit.