Skip to content

Commit

Permalink
Fix various issues with firmware generation (#2058)
Browse files Browse the repository at this point in the history
  • Loading branch information
CasualPokePlayer authored Jul 11, 2024
1 parent 841e3eb commit a812a43
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions src/SPI_Firmware.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ void Firmware::WifiAccessPoint::UpdateChecksum()

Firmware::ExtendedWifiAccessPoint::ExtendedWifiAccessPoint()
{
memset(Bytes, 0, sizeof(Bytes));
Data.Base = WifiAccessPoint();

UpdateChecksum();
Expand All @@ -93,6 +94,7 @@ void Firmware::ExtendedWifiAccessPoint::UpdateChecksum()

Firmware::FirmwareHeader::FirmwareHeader(int consoletype)
{
memset(Bytes, 0, sizeof(Bytes));
if (consoletype == 1)
{
ConsoleType = FirmwareConsoleType::DSi;
Expand Down Expand Up @@ -156,7 +158,7 @@ void Firmware::FirmwareHeader::UpdateChecksum()

Firmware::UserData::UserData()
{
memset(Bytes, 0, 0x74);
memset(Bytes, 0, sizeof(Bytes));
Version = 5;
BirthdayMonth = 1;
BirthdayDay = 1;
Expand Down Expand Up @@ -273,7 +275,8 @@ Firmware::Firmware(const u8* data, u32 length) : FirmwareBuffer(nullptr), Firmwa
if (data)
{
FirmwareBuffer = new u8[FirmwareBufferLength];
memcpy(FirmwareBuffer, data, FirmwareBufferLength);
memset(FirmwareBuffer, 0, FirmwareBufferLength);
memcpy(FirmwareBuffer, data, std::min(length, FirmwareBufferLength));
FirmwareMask = FirmwareBufferLength - 1;
}
}
Expand Down Expand Up @@ -345,7 +348,7 @@ const Firmware::UserData& Firmware::GetEffectiveUserData() const {

if (userdata0ChecksumOk && userdata1ChecksumOk)
{
return userdata[0].UpdateCounter > userdata[1].UpdateCounter ? userdata[0] : userdata[1];
return userdata[0].UpdateCounter >= userdata[1].UpdateCounter ? userdata[0] : userdata[1];
}
else if (userdata0ChecksumOk)
{
Expand All @@ -368,7 +371,7 @@ Firmware::UserData& Firmware::GetEffectiveUserData() {

if (userdata0ChecksumOk && userdata1ChecksumOk)
{
return userdata[0].UpdateCounter > userdata[1].UpdateCounter ? userdata[0] : userdata[1];
return userdata[0].UpdateCounter >= userdata[1].UpdateCounter ? userdata[0] : userdata[1];
}
else if (userdata0ChecksumOk)
{
Expand Down

0 comments on commit a812a43

Please sign in to comment.