Exemple #1
0
void ndsloadstub()
{
	void (*func_ptr)(void) = (void*)ARM9STUBVMA;
	#ifndef BOOTHB
	swiDecompressLZSSWram((void*)ndsloader_lz, (void*)BOOTLDR_NDS);
	*((u32*)(BOOTLDR_NDS-8)) = *((u32*)ndsloader_lz) >> 8;
	#endif
	DC_FlushAll();
	DC_InvalidateAll();
	IC_InvalidateAll();

	BOOTFLAG = 0;
	VRAM_C_CR = VRAM_ENABLE | VRAM_C_LCD;
	#ifndef BOOTHB
	NDSHEADER->arm7executeAddress = 0x06000000;
	#endif
	memcpy16((void*)ARM9STUBVMA, arm9stub_bin, arm9stub_bin_size);
	memcpy16(VRAM_C, arm7stub_bin, arm7stub_bin_size);
	VRAM_C_CR = VRAM_ENABLE | VRAM_C_ARM7_0x06000000;

	DC_FlushAll();
	DC_InvalidateAll();
	IC_InvalidateAll();
	#ifdef BOOTHB
	resetARM7(0x06000000);
	#endif
	func_ptr();
}
Exemple #2
0
void decompress(const void* data, void* dst, DecompressType type)
{
	switch(type)
	{
		case LZ77Vram:
			swiDecompressLZSSVram((void*)data, (void*)dst, 0, &decomStream);
			break;
		case LZ77:
			swiDecompressLZSSWram((void*)data, (void*)dst);
			break;
		case HUFF:
			swiDecompressHuffman((void*)data, (void*)dst, 0, &decomStream);
			break;
		case RLE:
			swiDecompressRLEWram((void*)data, (void*)dst);
			break;
		case RLEVram:
			swiDecompressRLEVram((void*)data, (void*)dst, 0, &decomStream);
			break;
		default:
			break;
	}
}