Compare commits

...

4 Commits

Author SHA1 Message Date
thepikachugamer d2e95f3a0d
Merge 0cf8c31447 into 608d954afe 2024-04-18 11:56:46 -04:00
thepikachugamer 608d954afe
Merge pull request #10 from MikeIsAStar/handle-all-known-product-areas
Handle all known product areas
2024-03-22 22:31:15 -05:00
MikeIsAStar 13dd003f3d Handle all known product areas 2024-03-16 17:41:48 -04:00
Naim2000 0cf8c31447 fix compilation issues on latest libogc & ppc-mxml 2023-10-25 17:33:03 -05:00
3 changed files with 30 additions and 31 deletions

View File

@ -4,38 +4,36 @@
#include "appmetadata.h"
static char* GetStringValue(mxml_node_t* node, const char* element)
static const char* GetStringValue(mxml_node_t* node, const char* element)
{
mxml_node_t* elementNode = mxmlFindElement(node, node, element, NULL, NULL, MXML_DESCEND_FIRST);
if (elementNode)
{
mxml_node_t* current = elementNode->child;
if (!elementNode) return NULL;
while (current && current->type != MXML_OPAQUE)
current = mxmlWalkNext(current, elementNode, MXML_NO_DESCEND);
mxml_node_t* current = mxmlGetFirstChild(elementNode);
while (current && mxmlGetType(current) != MXML_OPAQUE)
current = mxmlWalkNext(current, elementNode, MXML_NO_DESCEND);
if (current)
return mxmlGetOpaque(current);
else
return NULL;
if (current->type == MXML_OPAQUE)
return current->value.opaque;
}
return NULL;
}
static char* GetArgumentValue(mxml_node_t* node)
static const char* GetArgumentValue(mxml_node_t* node)
{
if (node)
{
mxml_node_t* current = node->child;
if (!node) return NULL;
while (current && current->type != MXML_OPAQUE)
current = mxmlWalkNext(current, node, MXML_NO_DESCEND);
mxml_node_t* current = mxmlGetFirstChild(node);
if (current->type == MXML_OPAQUE)
return current->value.opaque;
}
while (current && mxmlGetType(current) != MXML_OPAQUE)
current = mxmlWalkNext(current, node, MXML_NO_DESCEND);
return NULL;
if (current)
return mxmlGetOpaque(current);
else
return NULL;
}
struct MetaData* LoadMetaData(const char* path)
@ -142,7 +140,7 @@ char* LoadArguments(const char* path, u16* length)
for (arg = mxmlFindElement(arguments, arguments, "arg", NULL, NULL, MXML_DESCEND_FIRST); arg != NULL; arg = mxmlFindElement(arg, arguments, "arg", NULL, NULL, MXML_NO_DESCEND))
{
char* current = GetArgumentValue(arg);
const char* current = GetArgumentValue(arg);
if (current)
{
@ -165,7 +163,7 @@ char* LoadArguments(const char* path, u16* length)
for (arg = mxmlFindElement(arguments, arguments, "arg", NULL, NULL, MXML_DESCEND_FIRST); arg != NULL; arg = mxmlFindElement(arg, arguments, "arg", NULL, NULL, MXML_NO_DESCEND))
{
char* current = GetArgumentValue(arg);
const char* current = GetArgumentValue(arg);
if (current)
{
@ -186,4 +184,4 @@ char* LoadArguments(const char* path, u16* length)
*length = size;
return argStr;
}
}

View File

@ -61,7 +61,7 @@ s32 Title_FakesignTMD(signed_blob *p_tmd)
sha1 hash;
/* Modify TMD fill field */
tmd_data->fill2 = fill;
tmd_data->fill3 = fill;
/* Calculate hash */
SHA1((u8 *)tmd_data, TMD_SIZE(tmd_data), hash);

View File

@ -185,16 +185,17 @@ static bool GetRegionFromTXT(char* region)
{
start++;
if (!strncmp(start, "JPN", 3))
if (!strncmp(start, "JPN", 3) || !strncmp(start, "TWN", 3) || !strncmp(start, "ROC", 3))
*region = 'J';
else if (!strncmp(start, "TWN", 3))
*region = 'J';
else if (!strncmp(start, "USA", 3))
else if (!strncmp(start, "USA", 3) || !strncmp(start, "BRA", 3) || !strncmp(start, "HKG", 3) ||
!strncmp(start, "ASI", 3) || !strncmp(start, "LTN", 3) || !strncmp(start, "SAF", 3))
*region = 'U';
else if (!strncmp(start, "EUR", 3))
else if (!strncmp(start, "EUR", 3) || !strncmp(start, "AUS", 3))
*region = 'E';
else if (!strncmp(start, "KOR", 3))
*region = 'K';
else if (!strncmp(start, "CHN", 3))
printf("Error! GetRegionFromTXT: Unhandled product area \"CHN\"!\n");
if (*region != 0)
{