From baa5dbe257ef7bc7d52dc39123511e73ebbb0b10 Mon Sep 17 00:00:00 2001 From: zilmar Date: Mon, 13 Feb 2023 12:04:31 +1030 Subject: [PATCH] Core: Add some error message when failing to load rom --- Lang/English.pj.Lang | 4 ++++ Source/Project64-core/Multilanguage.h | 5 ++++- Source/Project64-core/Multilanguage/Language.cpp | 4 ++++ Source/Project64-core/N64System/N64Rom.cpp | 4 ++++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Lang/English.pj.Lang b/Lang/English.pj.Lang index c31bdaa187..882b09fb7b 100644 --- a/Lang/English.pj.Lang +++ b/Lang/English.pj.Lang @@ -530,6 +530,10 @@ #2062# "Nintendo 64DD Development IPL ROM not found.\nIt is required to play development 64DD disk images.\n\nPlease select the required ROM in the Settings." #2063# "Failed to update cheat, it is invalid" #2064# "Invalid Cheat" +#2065# "Failed to read ident bytes" +#2066# "Invalid image file" +#2067# "Failed to allocate for rom" +#2068# "Failed to open rom" /*** Android ***/ diff --git a/Source/Project64-core/Multilanguage.h b/Source/Project64-core/Multilanguage.h index 23edadc13e..1b5c7f3ce3 100644 --- a/Source/Project64-core/Multilanguage.h +++ b/Source/Project64-core/Multilanguage.h @@ -572,9 +572,12 @@ enum LanguageStringID MSG_TOOL_IPL_REQUIRED = 2062, MSG_CHEAT_INVALID_MSG = 2063, MSG_CHEAT_INVALID_TITLE = 2064, + MSG_ROM_FAILED_READ_IDENT = 2065, + MSG_ROM_INVALID_IMAGE_FILE = 2066, + MSG_ROM_FAILED_ROM_ALLOCATE = 2067, + MSG_ROM_FAILED_TO_OPEN = 2068, // Android - ANDROID_SETTINGS = 3000, ANDROID_FORUM = 3001, ANDROID_REPORT_BUG = 3002, diff --git a/Source/Project64-core/Multilanguage/Language.cpp b/Source/Project64-core/Multilanguage/Language.cpp index 18c4d0f15f..a4fbc6496e 100644 --- a/Source/Project64-core/Multilanguage/Language.cpp +++ b/Source/Project64-core/Multilanguage/Language.cpp @@ -515,6 +515,10 @@ void CLanguage::LoadDefaultStrings(void) DEF_STR(MSG_TOOL_IPL_REQUIRED, "Nintendo 64DD development IPL ROM not found.\nIt is required to play development 64DD disk images.\n\nPlease select the required ROM in the settings."); DEF_STR(MSG_CHEAT_INVALID_MSG, "Failed to update cheat, it is invalid"); DEF_STR(MSG_CHEAT_INVALID_TITLE, "Invalid Cheat"); + DEF_STR(MSG_ROM_FAILED_READ_IDENT, "Failed to read ident bytes"); + DEF_STR(MSG_ROM_INVALID_IMAGE_FILE, "Invalid image file"); + DEF_STR(MSG_ROM_FAILED_ROM_ALLOCATE, "Failed to allocate for rom"); + DEF_STR(MSG_ROM_FAILED_TO_OPEN, "Failed to open rom"); /*** Android ***/ diff --git a/Source/Project64-core/N64System/N64Rom.cpp b/Source/Project64-core/N64System/N64Rom.cpp index 1a2becae84..8d7c304ef4 100644 --- a/Source/Project64-core/N64System/N64Rom.cpp +++ b/Source/Project64-core/N64System/N64Rom.cpp @@ -53,6 +53,7 @@ bool CN64Rom::AllocateAndLoadN64Image(const char * FileLoc, bool LoadBootCodeOnl WriteTrace(TraceN64System, TraceDebug, "Trying to open %s", FileLoc); if (!m_RomFile.Open(FileLoc, CFileBase::modeRead)) { + SetError(MSG_ROM_FAILED_TO_OPEN); WriteTrace(TraceN64System, TraceError, "Failed to open %s", FileLoc); return false; } @@ -63,12 +64,14 @@ bool CN64Rom::AllocateAndLoadN64Image(const char * FileLoc, bool LoadBootCodeOnl if (m_RomFile.Read(Test, sizeof(Test)) != sizeof(Test)) { m_RomFile.Close(); + SetError(MSG_ROM_FAILED_READ_IDENT); WriteTrace(TraceN64System, TraceError, "Failed to read ident bytes"); return false; } if (!IsValidRomImage(Test)) { m_RomFile.Close(); + SetError(MSG_ROM_INVALID_IMAGE_FILE); WriteTrace(TraceN64System, TraceError, "Invalid image file %X %X %X %X", Test[0], Test[1], Test[2], Test[3]); return false; } @@ -85,6 +88,7 @@ bool CN64Rom::AllocateAndLoadN64Image(const char * FileLoc, bool LoadBootCodeOnl if (!AllocateRomImage(RomFileSize)) { m_RomFile.Close(); + SetError(MSG_ROM_FAILED_ROM_ALLOCATE); return false; }