Skip to content

Commit 974fa9b

Browse files
authored
Merge pull request #228 from RadWolfie/update-log
Update unit test log and cache
2 parents a67d3ff + 67cde50 commit 974fa9b

2 files changed

Lines changed: 50 additions & 2 deletions

File tree

src/test/main.cpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ static struct {
8787
const char* TitleID = "TitleID";
8888
const char* TitleIDHex = "TitleIDHex";
8989
const char* Region = "Region";
90+
const char* RegionHex = "RegionHex";
91+
const char* Version = "Version";
92+
const char* VersionHex = "VersionHex";
9093
} sect_certificate;
9194

9295
static const char* section_libs = "Libs";
@@ -449,9 +452,18 @@ static bool VerifyXbeIsBuiltWithXDK(const xbe_header* pXbeHeader,
449452
XbSUT_OutputMessage<false>(XB_OUTPUT_MESSAGE_INFO, "TitleIDHex : 0x" + std::string(buffer_str));
450453
gen_result.SetValue(section_certificate, sect_certificate.TitleID, title_id.c_str());
451454
gen_result.SetLongValue(section_certificate, sect_certificate.TitleIDHex, pCertificate->dwTitleId, nullptr, true);
455+
const auto& game_region = FormatGameRegion(pCertificate->dwGameRegion);
456+
XbSUT_OutputMessage<false>(XB_OUTPUT_MESSAGE_INFO, "Region : " + game_region);
457+
gen_result.SetValue(section_certificate, sect_certificate.Region, game_region.c_str());
452458
snprintf(buffer_str, std::size(buffer_str), "%08X", pCertificate->dwGameRegion);
453-
XbSUT_OutputMessage<false>(XB_OUTPUT_MESSAGE_INFO, "Region : 0x" + std::string(buffer_str));
454-
gen_result.SetLongValue(section_certificate, sect_certificate.Region, pCertificate->dwGameRegion, nullptr, true);
459+
XbSUT_OutputMessage<false>(XB_OUTPUT_MESSAGE_INFO, "RegionHex : 0x" + std::string(buffer_str));
460+
gen_result.SetLongValue(section_certificate, sect_certificate.RegionHex, pCertificate->dwGameRegion, nullptr, true);
461+
const auto& game_version = FormatVersion(pCertificate->dwVersion);
462+
XbSUT_OutputMessage<false>(XB_OUTPUT_MESSAGE_INFO, "Version : " + game_version);
463+
gen_result.SetValue(section_certificate, sect_certificate.Version, game_version.c_str());
464+
snprintf(buffer_str, std::size(buffer_str), "%08X", pCertificate->dwVersion);
465+
XbSUT_OutputMessage<false>(XB_OUTPUT_MESSAGE_INFO, "VersionHex : 0x" + std::string(buffer_str));
466+
gen_result.SetLongValue(section_certificate, sect_certificate.VersionHex, pCertificate->dwVersion, nullptr, true);
455467

456468
// Hash the loaded XBE's header, use it as a filename
457469
XbSUT_OutputMessage<false>(XB_OUTPUT_MESSAGE_INFO, "Xbe header hash : " + getXbeHeaderHash(pXbeHeader));

src/test/util/helper.hpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,39 @@ static constexpr uint32_t FourCC(char const c[5])
107107
{
108108
return (c[0] << 24) | (c[1] << 16) | (c[2] << 8) | c[3];
109109
}
110+
111+
// made by RadWolfie
112+
static const std::string FormatGameRegion(uint32_t game_region)
113+
{
114+
constexpr uint32_t GAME_REGION_CODE_MASK = 0x7;
115+
constexpr uint32_t GAME_REGION_MANUFACTURING = 0x80000000;
116+
constexpr uint32_t GAME_REGION_VALID_MASK = GAME_REGION_CODE_MASK | GAME_REGION_MANUFACTURING;
117+
if (game_region & ~GAME_REGION_VALID_MASK) {
118+
return "REGION ERROR";
119+
}
120+
const struct RegionList {
121+
std::string Code;
122+
std::string Name;
123+
} Regions[] = {
124+
{ "?", "Unknown" },
125+
{ "A", "NTSC" },
126+
{ "J", "JAPAN" },
127+
{ "K", "NTSC+JAPAN" },
128+
{ "E", "PAL" },
129+
{ "L", "PAL+NTSC" },
130+
{ "?", "PAL+JAPAN" },
131+
{ "W", "Region Free" }
132+
};
133+
const RegionList& region_struct = Regions[game_region & GAME_REGION_CODE_MASK];
134+
std::string output = region_struct.Code + " (" + region_struct.Name + ")";
135+
if (game_region & GAME_REGION_MANUFACTURING) {
136+
output += " (DEBUG)";
137+
}
138+
return output;
139+
}
140+
141+
// made by Luke Usher
142+
static const std::string FormatVersion(uint32_t version)
143+
{
144+
return std::to_string(version & 0xFF) + "." + std::to_string((version & 0xFFFFFF00) >> 8);
145+
}

0 commit comments

Comments
 (0)