Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:X0F:branches:Emulators
melonds
melonds_PR2058.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File melonds_PR2058.patch of Package melonds
From fa701a3808589ed4db6331b42f77998c9552ebc9 Mon Sep 17 00:00:00 2001 From: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com> Date: Fri, 7 Jun 2024 12:22:35 -0700 Subject: [PATCH] Fix various issues with firmware generation --- src/SPI_Firmware.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/SPI_Firmware.cpp b/src/SPI_Firmware.cpp index 89c8fa61ec..c1b052b02e 100644 --- a/src/SPI_Firmware.cpp +++ b/src/SPI_Firmware.cpp @@ -80,6 +80,7 @@ void Firmware::WifiAccessPoint::UpdateChecksum() Firmware::ExtendedWifiAccessPoint::ExtendedWifiAccessPoint() { + memset(Bytes, 0, sizeof(Bytes)); Data.Base = WifiAccessPoint(); UpdateChecksum(); @@ -93,6 +94,7 @@ void Firmware::ExtendedWifiAccessPoint::UpdateChecksum() Firmware::FirmwareHeader::FirmwareHeader(int consoletype) { + memset(Bytes, 0, sizeof(Bytes)); if (consoletype == 1) { ConsoleType = FirmwareConsoleType::DSi; @@ -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; @@ -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; } } @@ -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) { @@ -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) {
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor