Firmware: Fix a data corruption bug with firmware.dfc that could occur with a rare and specific sequence of events.
This commit is contained in:
parent
7cccf90976
commit
1bbb065786
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2006 yopyop
|
Copyright (C) 2006 yopyop
|
||||||
Copyright (C) 2007 shash
|
Copyright (C) 2007 shash
|
||||||
Copyright (C) 2007-2021 DeSmuME team
|
Copyright (C) 2007-2022 DeSmuME team
|
||||||
|
|
||||||
This file is free software: you can redistribute it and/or modify
|
This file is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -5199,7 +5199,7 @@ void FASTCALL _MMU_ARM7_write08(u32 adr, u8 val)
|
||||||
if (NDS_ARM7.instruct_adr > 0x3FFF) return;
|
if (NDS_ARM7.instruct_adr > 0x3FFF) return;
|
||||||
#ifdef HAVE_JIT
|
#ifdef HAVE_JIT
|
||||||
// hack for firmware boot in JIT mode
|
// hack for firmware boot in JIT mode
|
||||||
if (CommonSettings.UseExtFirmware && CommonSettings.BootFromFirmware && extFirmwareObj->loaded() && val == 1)
|
if (CommonSettings.UseExtFirmware && CommonSettings.BootFromFirmware && extFirmwareObj->isLoaded() && val == 1)
|
||||||
CommonSettings.jit_max_block_size = saveBlockSizeJIT;
|
CommonSettings.jit_max_block_size = saveBlockSizeJIT;
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2009-2019 DeSmuME Team
|
Copyright (C) 2009-2022 DeSmuME Team
|
||||||
|
|
||||||
This file is free software: you can redistribute it and/or modify
|
This file is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -531,7 +531,7 @@ std::string CFIRMWARE::GetUserSettingsFilePath(const char *firmwareFilePath)
|
||||||
return finalPath;
|
return finalPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CFIRMWARE::loaded()
|
bool CFIRMWARE::isLoaded()
|
||||||
{
|
{
|
||||||
return this->_isLoaded;
|
return this->_isLoaded;
|
||||||
}
|
}
|
||||||
|
@ -1319,9 +1319,12 @@ bool NDS_ReadFirmwareDataFromFile(const char *fileName, NDSFirmwareData *outFirm
|
||||||
|
|
||||||
void fw_reset_com(fw_memory_chip *mc)
|
void fw_reset_com(fw_memory_chip *mc)
|
||||||
{
|
{
|
||||||
if(mc->com == FW_CMD_PAGEWRITE)
|
if (mc->com == FW_CMD_PAGEWRITE)
|
||||||
{
|
{
|
||||||
if (mc->isFirmware && CommonSettings.UseExtFirmware && CommonSettings.UseExtFirmwareSettings && (extFirmwareObj != NULL))
|
if (mc->isFirmware &&
|
||||||
|
CommonSettings.UseExtFirmware &&
|
||||||
|
CommonSettings.UseExtFirmwareSettings &&
|
||||||
|
(extFirmwareObj != NULL) && extFirmwareObj->isLoaded())
|
||||||
{
|
{
|
||||||
extFirmwareObj->saveSettings(CommonSettings.ExtFirmwareUserSettingsPath);
|
extFirmwareObj->saveSettings(CommonSettings.ExtFirmwareUserSettingsPath);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2009-2019 DeSmuME Team
|
Copyright (C) 2009-2022 DeSmuME Team
|
||||||
|
|
||||||
This file is free software: you can redistribute it and/or modify
|
This file is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -439,7 +439,7 @@ public:
|
||||||
bool loadSettings(const char *firmwareUserSettingsFilePath);
|
bool loadSettings(const char *firmwareUserSettingsFilePath);
|
||||||
bool saveSettings(const char *firmwareUserSettingsFilePath);
|
bool saveSettings(const char *firmwareUserSettingsFilePath);
|
||||||
|
|
||||||
bool loaded();
|
bool isLoaded();
|
||||||
void* getTouchCalibrate();
|
void* getTouchCalibrate();
|
||||||
|
|
||||||
static std::string GetUserSettingsFilePath(const char *firmwareFilePath);
|
static std::string GetUserSettingsFilePath(const char *firmwareFilePath);
|
||||||
|
|
Loading…
Reference in New Issue