reset fastmem on DSi soft reset

This commit is contained in:
RSDuck 2020-07-31 22:39:27 +02:00
parent c5ecef7410
commit 2a3147db46
3 changed files with 7 additions and 4 deletions

View File

@ -114,6 +114,7 @@ struct __attribute__((packed)) TinyVector
void Remove(int index)
{
assert(Length > 0);
assert(index >= 0 && index < Length);
Length--;

View File

@ -414,7 +414,7 @@ void RemapDTCM(u32 newBase, u32 newSize)
u32 start = mapping.Addr;
u32 end = mapping.Addr + mapping.Size;
printf("mapping %d %x %x %x %x\n", region, mapping.Addr, mapping.Size, mapping.Num, mapping.LocalOffset);
printf("unmapping %d %x %x %x %x\n", region, mapping.Addr, mapping.Size, mapping.Num, mapping.LocalOffset);
bool oldOverlap = NDS::ARM9->DTCMSize > 0 && !(oldDTCMBase >= end || oldDTCBEnd <= start);
bool newOverlap = newSize > 0 && !(newBase >= end || newEnd <= start);

View File

@ -181,15 +181,17 @@ void SoftReset()
// also, BPTWL[0x70] could be abused to quickly boot specific titles
#ifdef JIT_ENABLED
ARMJIT_Memory::Reset();
ARMJIT::CheckAndInvalidateITCM();
#endif
NDS::ARM9->Reset();
NDS::ARM7->Reset();
NDS::ARM9->CP15Reset();
memcpy(NDS::ARM9->ITCM, ITCMInit, 0x8000);
#ifdef JIT_ENABLED
ARMJIT::CheckAndInvalidateITCM();
#endif
DSi_AES::Reset();