Anuncios Google

Problema capas de fondos

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.


Be Libre my Friend.


Anuncios Google