mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-12-22 09:51:55 +01:00
* Fixed compiling on Mac/Linux
* Fixed "return to NK2O" not working with neek.
This commit is contained in:
parent
f49b732a3b
commit
be6092e1e9
@ -2,8 +2,8 @@
|
||||
<app version="1">
|
||||
<name> USB Loader GX</name>
|
||||
<coder>USB Loader GX Team</coder>
|
||||
<version>3.0 r1250</version>
|
||||
<release_date>20150705141019</release_date>
|
||||
<version>3.0 r1251</version>
|
||||
<release_date>20150707190220</release_date>
|
||||
<!-- // remove this line to enable arguments
|
||||
<arguments>
|
||||
<arg>--ios=250</arg>
|
||||
|
@ -1,118 +1,118 @@
|
||||
/*
|
||||
Copyright (c) 2014 - Cyan
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
*/
|
||||
#include "homebrewboot\HomebrewXML.h"
|
||||
#include "FileOperations\fileops.h"
|
||||
#include "settings\CSettings.h"
|
||||
#include "svnrev.h"
|
||||
|
||||
int updateMetaXML (void)
|
||||
{
|
||||
HomebrewXML MetaXML;
|
||||
char filepath[255];
|
||||
snprintf(filepath, sizeof(filepath), "%s/meta.xml", Settings.update_path);
|
||||
if(!MetaXML.LoadHomebrewXMLData(filepath))
|
||||
return 0;
|
||||
|
||||
char line[50];
|
||||
snprintf(line, sizeof(line), "--ios=%d", Settings.LoaderIOS);
|
||||
MetaXML.SetArgument(line);
|
||||
snprintf(line, sizeof(line), "--usbport=%d", Settings.USBPort);
|
||||
MetaXML.SetArgument(line);
|
||||
snprintf(line, sizeof(line), "--mountusb=%d", Settings.USBAutoMount);
|
||||
MetaXML.SetArgument(line);
|
||||
snprintf(line, sizeof(line), "3.0 r%s", GetRev());
|
||||
MetaXML.SetVersion(line);
|
||||
|
||||
int ret = MetaXML.SaveHomebrewXMLData(filepath);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int editMetaArguments (void)
|
||||
{
|
||||
char metapath[255] = "";
|
||||
char metatmppath[255] = "";
|
||||
|
||||
snprintf(metapath, sizeof(metapath), "%s/meta.xml", Settings.update_path);
|
||||
snprintf(metatmppath, sizeof(metatmppath), "%s/meta.tmp", Settings.update_path);
|
||||
|
||||
FILE *source = fopen(metapath, "rb");
|
||||
if(!source)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
FILE *destination = fopen(metatmppath, "wb");
|
||||
if(!destination)
|
||||
{
|
||||
fclose(source);
|
||||
return 0;
|
||||
}
|
||||
|
||||
const int max_line_size = 255;
|
||||
char *line = new char[max_line_size];
|
||||
while (fgets(line, max_line_size, source) != NULL)
|
||||
{
|
||||
// delete commented lines
|
||||
if( strstr(line, "<!-- // remove this line to enable arguments") != NULL ||
|
||||
strstr(line, "// remove this line to enable arguments -->") != NULL)
|
||||
{
|
||||
strcpy(line, " \n");
|
||||
}
|
||||
|
||||
// generate argurments
|
||||
if(strstr(line, "<arguments>") != NULL)
|
||||
{
|
||||
fputs(line, destination);
|
||||
snprintf(line, max_line_size, " <arg>--ios=%d</arg>\n", Settings.LoaderIOS);
|
||||
fputs(line, destination);
|
||||
snprintf(line, max_line_size, " <arg>--usbport=%d</arg>\n", Settings.USBPort);
|
||||
fputs(line, destination);
|
||||
snprintf(line, max_line_size, " <arg>--mountusb=%d</arg>\n", Settings.USBAutoMount);
|
||||
fputs(line, destination);
|
||||
|
||||
while(strstr(line, "</arguments>") == NULL)
|
||||
{
|
||||
fgets(line, max_line_size, source); // advance one line
|
||||
if(feof(source))
|
||||
{
|
||||
fclose(source);
|
||||
fclose(destination);
|
||||
delete [] line;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
fputs(line, destination);
|
||||
}
|
||||
|
||||
fclose(source);
|
||||
fclose(destination);
|
||||
delete [] line;
|
||||
|
||||
if(CopyFile(metatmppath, metapath) <0)
|
||||
return 0;
|
||||
|
||||
RemoveFile(metatmppath);
|
||||
|
||||
return 1;
|
||||
}
|
||||
/*
|
||||
Copyright (c) 2014 - Cyan
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
*/
|
||||
#include "homebrewboot\HomebrewXML.h"
|
||||
#include "FileOperations\fileops.h"
|
||||
#include "settings\CSettings.h"
|
||||
#include "svnrev.h"
|
||||
|
||||
int updateMetaXML (void)
|
||||
{
|
||||
HomebrewXML MetaXML;
|
||||
char filepath[255];
|
||||
snprintf(filepath, sizeof(filepath), "%s/meta.xml", Settings.update_path);
|
||||
if(!MetaXML.LoadHomebrewXMLData(filepath))
|
||||
return 0;
|
||||
|
||||
char line[50];
|
||||
snprintf(line, sizeof(line), "--ios=%d", Settings.LoaderIOS);
|
||||
MetaXML.SetArgument(line);
|
||||
snprintf(line, sizeof(line), "--usbport=%d", Settings.USBPort);
|
||||
MetaXML.SetArgument(line);
|
||||
snprintf(line, sizeof(line), "--mountusb=%d", Settings.USBAutoMount);
|
||||
MetaXML.SetArgument(line);
|
||||
snprintf(line, sizeof(line), "3.0 r%s", GetRev());
|
||||
MetaXML.SetVersion(line);
|
||||
|
||||
int ret = MetaXML.SaveHomebrewXMLData(filepath);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int editMetaArguments (void)
|
||||
{
|
||||
char metapath[255] = "";
|
||||
char metatmppath[255] = "";
|
||||
|
||||
snprintf(metapath, sizeof(metapath), "%s/meta.xml", Settings.update_path);
|
||||
snprintf(metatmppath, sizeof(metatmppath), "%s/meta.tmp", Settings.update_path);
|
||||
|
||||
FILE *source = fopen(metapath, "rb");
|
||||
if(!source)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
FILE *destination = fopen(metatmppath, "wb");
|
||||
if(!destination)
|
||||
{
|
||||
fclose(source);
|
||||
return 0;
|
||||
}
|
||||
|
||||
const int max_line_size = 255;
|
||||
char *line = new char[max_line_size];
|
||||
while (fgets(line, max_line_size, source) != NULL)
|
||||
{
|
||||
// delete commented lines
|
||||
if( strstr(line, "<!-- // remove this line to enable arguments") != NULL ||
|
||||
strstr(line, "// remove this line to enable arguments -->") != NULL)
|
||||
{
|
||||
strcpy(line, " \n");
|
||||
}
|
||||
|
||||
// generate argurments
|
||||
if(strstr(line, "<arguments>") != NULL)
|
||||
{
|
||||
fputs(line, destination);
|
||||
snprintf(line, max_line_size, " <arg>--ios=%d</arg>\n", Settings.LoaderIOS);
|
||||
fputs(line, destination);
|
||||
snprintf(line, max_line_size, " <arg>--usbport=%d</arg>\n", Settings.USBPort);
|
||||
fputs(line, destination);
|
||||
snprintf(line, max_line_size, " <arg>--mountusb=%d</arg>\n", Settings.USBAutoMount);
|
||||
fputs(line, destination);
|
||||
|
||||
while(strstr(line, "</arguments>") == NULL)
|
||||
{
|
||||
fgets(line, max_line_size, source); // advance one line
|
||||
if(feof(source))
|
||||
{
|
||||
fclose(source);
|
||||
fclose(destination);
|
||||
delete [] line;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
fputs(line, destination);
|
||||
}
|
||||
|
||||
fclose(source);
|
||||
fclose(destination);
|
||||
delete [] line;
|
||||
|
||||
if(CopyFile(metatmppath, metapath) <0)
|
||||
return 0;
|
||||
|
||||
RemoveFile(metatmppath);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -1,30 +1,30 @@
|
||||
/****************************************************************************
|
||||
* Copyright (C) 2014
|
||||
* by cyan
|
||||
*
|
||||
* This software is provided 'as-is', without any express or implied
|
||||
* warranty. In no event will the authors be held liable for any
|
||||
* damages arising from the use of this software.
|
||||
*
|
||||
* Permission is granted to anyone to use this software for any
|
||||
* purpose, including commercial applications, and to alter it and
|
||||
* redistribute it freely, subject to the following restrictions:
|
||||
*
|
||||
* 1. The origin of this software must not be misrepresented; you
|
||||
* must not claim that you wrote the original software. If you use
|
||||
* this software in a product, an acknowledgment in the product
|
||||
* documentation would be appreciated but is not required.
|
||||
*
|
||||
* 2. Altered source versions must be plainly marked as such, and
|
||||
* must not be misrepresented as being the original software.
|
||||
*
|
||||
* 3. This notice may not be removed or altered from any source
|
||||
* distribution.
|
||||
***************************************************************************/
|
||||
#ifndef _META_H_
|
||||
#define _META_H_
|
||||
|
||||
int updateMetaXML(void);
|
||||
int editMetaArguments(void);
|
||||
|
||||
#endif
|
||||
/****************************************************************************
|
||||
* Copyright (C) 2014
|
||||
* by cyan
|
||||
*
|
||||
* This software is provided 'as-is', without any express or implied
|
||||
* warranty. In no event will the authors be held liable for any
|
||||
* damages arising from the use of this software.
|
||||
*
|
||||
* Permission is granted to anyone to use this software for any
|
||||
* purpose, including commercial applications, and to alter it and
|
||||
* redistribute it freely, subject to the following restrictions:
|
||||
*
|
||||
* 1. The origin of this software must not be misrepresented; you
|
||||
* must not claim that you wrote the original software. If you use
|
||||
* this software in a product, an acknowledgment in the product
|
||||
* documentation would be appreciated but is not required.
|
||||
*
|
||||
* 2. Altered source versions must be plainly marked as such, and
|
||||
* must not be misrepresented as being the original software.
|
||||
*
|
||||
* 3. This notice may not be removed or altered from any source
|
||||
* distribution.
|
||||
***************************************************************************/
|
||||
#ifndef _META_H_
|
||||
#define _META_H_
|
||||
|
||||
int updateMetaXML(void);
|
||||
int editMetaArguments(void);
|
||||
|
||||
#endif
|
||||
|
@ -1547,6 +1547,7 @@ int GameBooter::BootNeek(struct discHdr *gameHdr)
|
||||
u64 returnToChoice = game_cfg->returnTo;
|
||||
const char *NandEmuPath = game_cfg->NandEmuPath.size() == 0 ? Settings.NandEmuChanPath : game_cfg->NandEmuPath.c_str();
|
||||
bool autoboot = true;
|
||||
bool NK2O_isInstalled = false;
|
||||
char tempPath[100] = "";
|
||||
int ret = -1;
|
||||
|
||||
@ -1655,6 +1656,12 @@ int GameBooter::BootNeek(struct discHdr *gameHdr)
|
||||
if(CheckFile(tempPath))
|
||||
RemoveFile(tempPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
snprintf(tempPath, sizeof(tempPath), "%s/title/00010001/4e4b324f/content/title.tmd", NandEmuPath);
|
||||
if(CheckFile(tempPath))
|
||||
NK2O_isInstalled = true;
|
||||
}
|
||||
|
||||
// Every checks passed successfully. Continue execution.
|
||||
|
||||
@ -1684,19 +1691,16 @@ int GameBooter::BootNeek(struct discHdr *gameHdr)
|
||||
if(autoboot && returnToChoice)
|
||||
{
|
||||
// Todo : allow user to select the channel to return to.
|
||||
|
||||
// check if NK2O is installed
|
||||
snprintf(tempPath, sizeof(tempPath), "%s/title/00010001/4e4b324f/content/title.tmd", NandEmuPath);
|
||||
if(CheckFile(tempPath))
|
||||
if(NK2O_isInstalled)
|
||||
{
|
||||
neek_config->returnto = TITLE_ID(0x00010001, 'NK2O'); // Currently forced to NK2O user channel
|
||||
neek_config->config |= NCON_EXT_RETURN_TO; // enable "return to" patch
|
||||
neek_config->config |= NCON_EXT_RETURN_TO; // enable "return to" patch
|
||||
}
|
||||
|
||||
if(isWiiU())
|
||||
{
|
||||
neek_config->returnto = TITLE_ID(0x00010002, 'HCVA');// Currently forced to "Return to WiiU" system channel
|
||||
neek_config->config |= NCON_EXT_RETURN_TO; // enable "return to" patch
|
||||
neek_config->returnto = TITLE_ID(0x00010002, 'HCVA'); // Currently forced to "Return to WiiU" system channel
|
||||
neek_config->config |= NCON_EXT_RETURN_TO; // enable "return to" patch
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user