parent
7abcb201e6
commit
66ec4060e4
|
@ -3541,15 +3541,6 @@ void FASTCALL _MMU_ARM7_write08(u32 adr, u8 val)
|
|||
return;
|
||||
}
|
||||
|
||||
if(adr == REG_HALTCNT)
|
||||
{
|
||||
switch(val)
|
||||
{
|
||||
case 0xC0: NDS_Sleep(); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
if ((adr & 0xFF800000) == 0x04800000)
|
||||
{
|
||||
/* is wifi hardware, dont intermix with regular hardware registers */
|
||||
|
@ -3564,6 +3555,17 @@ void FASTCALL _MMU_ARM7_write08(u32 adr, u8 val)
|
|||
|
||||
switch(adr)
|
||||
{
|
||||
case REG_POSTFLG:
|
||||
// hack for patched firmwares
|
||||
if (val == 1)
|
||||
{
|
||||
if (_MMU_ARM7_read08(REG_POSTFLG) != 0)
|
||||
break;
|
||||
_MMU_write32<ARMCPU_ARM9>(0x27FFE24, gameInfo.header.ARM9exe);
|
||||
_MMU_write32<ARMCPU_ARM7>(0x27FFE34, gameInfo.header.ARM7exe);
|
||||
}
|
||||
break;
|
||||
|
||||
case REG_HALTCNT:
|
||||
//printf("halt 0x%02X\n", val);
|
||||
switch(val)
|
||||
|
|
|
@ -2044,7 +2044,7 @@ void NDS_Reset()
|
|||
dst = header->ARM9cpy;
|
||||
|
||||
u32 size = (0x8000 - src) >> 2;
|
||||
INFO("Copy secure area from 0x%08X to 0x%08X (size %i/0x%08X)\n", src, dst, size, size);
|
||||
//INFO("Copy secure area from 0x%08X to 0x%08X (size %i/0x%08X)\n", src, dst, size, size);
|
||||
for (u32 i = 0; i < size; i++)
|
||||
{
|
||||
_MMU_write32<ARMCPU_ARM9>(dst, T1ReadLong(MMU.CART_ROM, src));
|
||||
|
|
|
@ -623,7 +623,7 @@ BOOL CHEATS::load()
|
|||
line++; // only for debug
|
||||
memset(buf, 0, sizeof(buf));
|
||||
if (fgets(buf, sizeof(buf), flist) == NULL) {
|
||||
INFO("Cheats: Failed to read from flist at line %i\n", line);
|
||||
//INFO("Cheats: Failed to read from flist at line %i\n", line);
|
||||
continue;
|
||||
}
|
||||
trim(buf);
|
||||
|
|
|
@ -20,8 +20,6 @@
|
|||
#include "firmware.h"
|
||||
#include "NDSSystem.h"
|
||||
|
||||
//#define _FLASHME_SUPPORT // bugged
|
||||
|
||||
#define DWNUM(i) ((i) >> 2)
|
||||
|
||||
bool CFIRMWARE::getKeyBuf()
|
||||
|
@ -353,6 +351,16 @@ bool CFIRMWARE::load()
|
|||
fclose(fp);
|
||||
return false;
|
||||
}
|
||||
|
||||
#if 1
|
||||
if (size == 512*1024)
|
||||
{
|
||||
INFO("ERROR: 32Mbit (512Kb) firmware not supported\n");
|
||||
fclose(fp);
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
data = new u8 [size];
|
||||
if (!data)
|
||||
{
|
||||
|
@ -404,7 +412,7 @@ bool CFIRMWARE::load()
|
|||
#if 0
|
||||
crypt64BitDown((u32*)&data[0x18]);
|
||||
#else
|
||||
// hack?
|
||||
// fix touch coords
|
||||
data[0x18] = 0x00;
|
||||
data[0x19] = 0x00;
|
||||
data[0x1A] = 0x00;
|
||||
|
@ -471,18 +479,7 @@ bool CFIRMWARE::load()
|
|||
|
||||
patched = false;
|
||||
if (data[0x17C] != 0xFF)
|
||||
{
|
||||
#ifdef _FLASHME_SUPPORT
|
||||
patched = true;
|
||||
#else
|
||||
INFO("!!! ERROR: Firmware patched with 'Flashme' v");
|
||||
if (data[0x17C] == 1) INFO("1..4");
|
||||
else
|
||||
INFO("%i", (u16)data[0x3F7FC] + 3);
|
||||
INFO(" - not support\n");
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
INFO("Firmware:\n");
|
||||
INFO("- path: %s\n", CommonSettings.Firmware);
|
||||
|
@ -502,7 +499,6 @@ bool CFIRMWARE::load()
|
|||
INFO("\n");
|
||||
INFO(" * Data/GFX address: 0x%08X\n", part5addr);
|
||||
|
||||
#ifdef _FLASHME_SUPPORT
|
||||
if (patched)
|
||||
{
|
||||
u32 patch_offset = 0x3FC80;
|
||||
|
@ -568,10 +564,10 @@ bool CFIRMWARE::load()
|
|||
INFO(" * ARM7 boot code RAM address: 0x%08X\n", ARM7bootAddr);
|
||||
INFO(" * ARM7 unpacked size: 0x%08X (%i) bytes\n", size7, size7);
|
||||
}
|
||||
#endif
|
||||
|
||||
// TODO: add 512Kb support
|
||||
memcpy(MMU.fw.data, data, 256*1024);
|
||||
MMU.fw.fp = NULL;
|
||||
|
||||
delete [] data; data = NULL;
|
||||
return true;
|
||||
|
|
Loading…
Reference in New Issue