- Fix for the freeze on "New Super Mario Bros" minigames, reported by NHerv� After investigating, I found that the whole ROM header wasn't copied to Main RAM as it's meant to be. This fixes "New Super Mario Bros" minigames, and probably others.

This commit is contained in:
shashclp 2008-02-20 00:04:51 +00:00
parent 4adc063c7d
commit 5aa777c461
1 changed files with 6 additions and 17 deletions

View File

@ -487,23 +487,12 @@ void NDS_Reset( void)
} }
} }
MMU_write32(0, 0x027FFE40, header->FNameTblOff); // Copy the whole header to Main RAM 0x27FFE00 on startup.
MMU_write32(0, 0x027FFE44, header->FNameTblSize); // Reference: http://nocash.emubase.de/gbatek.htm#dscartridgeheader
MMU_write32(0, 0x027FFE48, header->FATOff); for (i = 0; i < ((0x170+0x90)/4); i++)
MMU_write32(0, 0x027FFE4C, header->FATSize); {
MMU_write32 (0, 0x027FFE00+i*4, ((u32*)MMU.CART_ROM)[i]);
MMU_write32(0, 0x027FFE50, header->ARM9OverlayOff); }
MMU_write32(0, 0x027FFE54, header->ARM9OverlaySize);
MMU_write32(0, 0x027FFE58, header->ARM7OverlayOff);
MMU_write32(0, 0x027FFE5C, header->ARM7OverlaySize);
MMU_write32(0, 0x027FFE60, header->unknown2a);
MMU_write32(0, 0x027FFE64, header->unknown2b); //merci <20>EACKiX
MMU_write32(0, 0x027FFE70, header->ARM9unk);
MMU_write32(0, 0x027FFE74, header->ARM7unk);
MMU_write32(0, 0x027FFF9C, 0x027FFF90); // ?????? besoin d'avoir la vrai valeur sur ds
MainScreen.offset = 0; MainScreen.offset = 0;
SubScreen.offset = 192; SubScreen.offset = 192;