WiiFlow_Lite/source/gc/gc.cpp

447 lines
12 KiB
C++
Raw Normal View History

/****************************************************************************
* Copyright (C) 2012 FIX94
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#include <gccore.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <ogc/machine/processor.h>
#include <ogc/lwp_threads.h>
// for directory parsing and low-level file I/O
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <dirent.h>
#include "gc/gc.hpp"
#include "gui/text.hpp"
#include "devicemounter/DeviceHandler.hpp"
#include "gecko/gecko.hpp"
#include "fileOps/fileOps.h"
#include "homebrew/homebrew.h"
#include "loader/utils.h"
#include "loader/disc.h"
#include "loader/sys.h"
#include "memory/memory.h"
#include "memory/mem2.hpp"
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
// Languages
#define SRAM_ENGLISH 0
#define SRAM_GERMAN 1
#define SRAM_FRENCH 2
#define SRAM_SPANISH 3
#define SRAM_ITALIAN 4
#define SRAM_DUTCH 5
extern "C" {
syssram* __SYS_LockSram();
u32 __SYS_UnlockSram(u32 write);
u32 __SYS_SyncSram(void);
}
u8 get_wii_language()
{
switch (CONF_GetLanguage())
{
case CONF_LANG_GERMAN:
return SRAM_GERMAN;
case CONF_LANG_FRENCH:
return SRAM_FRENCH;
case CONF_LANG_SPANISH:
return SRAM_SPANISH;
case CONF_LANG_ITALIAN:
return SRAM_ITALIAN;
case CONF_LANG_DUTCH:
return SRAM_DUTCH;
default:
return SRAM_ENGLISH;
}
}
// Nintendont
NIN_CFG NinCfg;
bool slippi;
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
/* since Nintendont v1.98 argsboot is supported.
since v3.324 '$$Version:' string was added for loaders to detect.
since wiiflow lite doesn't support versions less than v3.358
we will use argsboot and version detection every time. */
void Nintendont_SetOptions(const char *gamePath, const char *gameID, const char *CheatPath, u8 lang,
u32 n_cfg, u32 n_vm, s8 vidscale, s8 vidoffset, u8 netprofile)
{
memset(&NinCfg, 0, sizeof(NIN_CFG));
NinCfg.Magicbytes = 0x01070CF6;
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
NinCfg.MaxPads = 4;
/* check nintendont version so we can set the proper config version */
-updated NIN_CFG_VERSION to 7 for Nintendont argsboot and added triforce arcade option to game settings menu. tested and working. -fixed wii u widescreen option in game config menu. should properly work now. thanks pBullet! -added a fix for coverflow titles display when coverflow has 3 or more rows. for some reason 3 or more rows caused the title to display improperly. -removed **disabled** message from source menu. no need for it - was a stupid idea. if you don't want it to display then remove it from your source menu or don't add it. when a view is disabled in wiiflow_lite.ini then only that view icon is disabled from showing on the main menu screen. -removed titles.ini which wasn't really used except for displaying the return to channel in settings. I googled it and nothing really showed up. it seemed to be the same as custom_titles.ini - it seemed useless. -removed cacheing sourceflow list. the list is never big enuff to worry about cacheing. plus if you add or remove source btns you won't have to reload cache for the changes to take effect. -removed max_source_btns from wiiflow_lite.ini - added code to get highest source menu btn so now source menu can have as many buttons as you like. -removed Manage Languages Menu - restored option to just change wiiflow language. no need for downloading languages and the google link didn't work anyway. when i make a pack all the languages will be included. -added flat cover options for sourceflow and homebrew view. can be turned on/off via their config menu's accessed via 'HOME' btn. -added config menu for homebrew view - press 'HOME' btn while in homebrew view to access it. config menu options are - switch apps partition, adjust coverflow, smallbox on/off, and flat covers on/off. -updated config menu for source menu/flow. options include - sourceflow on/off, adjust coverflow, smallbox on/off, flat covers on/off, and for source menu only - multisource on/off. -added coverflow layouts/versions for individual plugins - which means each plugin can have its own coverflow layout without affecting the others. -set HQ cover to default to ON -made it so coverflow doesn't reload every time you access another menu or change favorites or whatever. -added error messages to game and app launching if any of the bin files needed for launching are missing. previously whenever these errors occurred wiiflow would just exit without the user knowing why. Now the error message should display before exit so the user has an idea what went wrong. had to move cleanup() back some for the errors to show. hopefully that doesn't cause out of mem issues for users with large game collections. -added error messages to game config menu. now all config options will show but if you can't use it then a error shows telling you. such as 'use neek2o' will be available but if you set it to on and neek2o isn't installed then an error message shows. added error msgs for extracting and flashing saves too. -added show_mem=yes/no option to wiiflow_lite.ini under [DEBUG]. manually edit wiiflow_lite.ini to turn it on/off. if set to 'yes' wiiflow will show how much free mem is available on screen. no need to compile wiiflow for this option anymore. -cleaned up some of the boot up code. -starting a random game - just hold 'B' and press '-'. no longer press'B' on config or question mark icon and no need to allow it in wiiflow_lite.ini
2016-11-07 16:06:00 +01:00
u32 NIN_cfg_version = NIN_CFG_VERSION;
char NINVersion[7]= "";
u32 NINRev = 0;
const char *dol_path = NULL;
for(u8 i = SD; i < MAXDEVICES; ++i)
{
if(slippi)
dol_path = fmt(NIN_SLIPPI_PATH, DeviceName[i]);
else
dol_path = fmt(NIN_LOADER_PATH, DeviceName[i]);
if(!fsop_FileExist(dol_path))
continue;
u8 *buffer = NULL;
-updated NIN_CFG_VERSION to 7 for Nintendont argsboot and added triforce arcade option to game settings menu. tested and working. -fixed wii u widescreen option in game config menu. should properly work now. thanks pBullet! -added a fix for coverflow titles display when coverflow has 3 or more rows. for some reason 3 or more rows caused the title to display improperly. -removed **disabled** message from source menu. no need for it - was a stupid idea. if you don't want it to display then remove it from your source menu or don't add it. when a view is disabled in wiiflow_lite.ini then only that view icon is disabled from showing on the main menu screen. -removed titles.ini which wasn't really used except for displaying the return to channel in settings. I googled it and nothing really showed up. it seemed to be the same as custom_titles.ini - it seemed useless. -removed cacheing sourceflow list. the list is never big enuff to worry about cacheing. plus if you add or remove source btns you won't have to reload cache for the changes to take effect. -removed max_source_btns from wiiflow_lite.ini - added code to get highest source menu btn so now source menu can have as many buttons as you like. -removed Manage Languages Menu - restored option to just change wiiflow language. no need for downloading languages and the google link didn't work anyway. when i make a pack all the languages will be included. -added flat cover options for sourceflow and homebrew view. can be turned on/off via their config menu's accessed via 'HOME' btn. -added config menu for homebrew view - press 'HOME' btn while in homebrew view to access it. config menu options are - switch apps partition, adjust coverflow, smallbox on/off, and flat covers on/off. -updated config menu for source menu/flow. options include - sourceflow on/off, adjust coverflow, smallbox on/off, flat covers on/off, and for source menu only - multisource on/off. -added coverflow layouts/versions for individual plugins - which means each plugin can have its own coverflow layout without affecting the others. -set HQ cover to default to ON -made it so coverflow doesn't reload every time you access another menu or change favorites or whatever. -added error messages to game and app launching if any of the bin files needed for launching are missing. previously whenever these errors occurred wiiflow would just exit without the user knowing why. Now the error message should display before exit so the user has an idea what went wrong. had to move cleanup() back some for the errors to show. hopefully that doesn't cause out of mem issues for users with large game collections. -added error messages to game config menu. now all config options will show but if you can't use it then a error shows telling you. such as 'use neek2o' will be available but if you set it to on and neek2o isn't installed then an error message shows. added error msgs for extracting and flashing saves too. -added show_mem=yes/no option to wiiflow_lite.ini under [DEBUG]. manually edit wiiflow_lite.ini to turn it on/off. if set to 'yes' wiiflow will show how much free mem is available on screen. no need to compile wiiflow for this option anymore. -cleaned up some of the boot up code. -starting a random game - just hold 'B' and press '-'. no longer press'B' on config or question mark icon and no need to allow it in wiiflow_lite.ini
2016-11-07 16:06:00 +01:00
u32 filesize = 0;
const char *str = "$$Version:";
buffer = fsop_ReadFile(dol_path, &filesize);
// if buffer is NULL then out of memory - hopefully that doesn't happen and shouldn't
-updated NIN_CFG_VERSION to 7 for Nintendont argsboot and added triforce arcade option to game settings menu. tested and working. -fixed wii u widescreen option in game config menu. should properly work now. thanks pBullet! -added a fix for coverflow titles display when coverflow has 3 or more rows. for some reason 3 or more rows caused the title to display improperly. -removed **disabled** message from source menu. no need for it - was a stupid idea. if you don't want it to display then remove it from your source menu or don't add it. when a view is disabled in wiiflow_lite.ini then only that view icon is disabled from showing on the main menu screen. -removed titles.ini which wasn't really used except for displaying the return to channel in settings. I googled it and nothing really showed up. it seemed to be the same as custom_titles.ini - it seemed useless. -removed cacheing sourceflow list. the list is never big enuff to worry about cacheing. plus if you add or remove source btns you won't have to reload cache for the changes to take effect. -removed max_source_btns from wiiflow_lite.ini - added code to get highest source menu btn so now source menu can have as many buttons as you like. -removed Manage Languages Menu - restored option to just change wiiflow language. no need for downloading languages and the google link didn't work anyway. when i make a pack all the languages will be included. -added flat cover options for sourceflow and homebrew view. can be turned on/off via their config menu's accessed via 'HOME' btn. -added config menu for homebrew view - press 'HOME' btn while in homebrew view to access it. config menu options are - switch apps partition, adjust coverflow, smallbox on/off, and flat covers on/off. -updated config menu for source menu/flow. options include - sourceflow on/off, adjust coverflow, smallbox on/off, flat covers on/off, and for source menu only - multisource on/off. -added coverflow layouts/versions for individual plugins - which means each plugin can have its own coverflow layout without affecting the others. -set HQ cover to default to ON -made it so coverflow doesn't reload every time you access another menu or change favorites or whatever. -added error messages to game and app launching if any of the bin files needed for launching are missing. previously whenever these errors occurred wiiflow would just exit without the user knowing why. Now the error message should display before exit so the user has an idea what went wrong. had to move cleanup() back some for the errors to show. hopefully that doesn't cause out of mem issues for users with large game collections. -added error messages to game config menu. now all config options will show but if you can't use it then a error shows telling you. such as 'use neek2o' will be available but if you set it to on and neek2o isn't installed then an error message shows. added error msgs for extracting and flashing saves too. -added show_mem=yes/no option to wiiflow_lite.ini under [DEBUG]. manually edit wiiflow_lite.ini to turn it on/off. if set to 'yes' wiiflow will show how much free mem is available on screen. no need to compile wiiflow for this option anymore. -cleaned up some of the boot up code. -starting a random game - just hold 'B' and press '-'. no longer press'B' on config or question mark icon and no need to allow it in wiiflow_lite.ini
2016-11-07 16:06:00 +01:00
for(u32 i = 0; i < filesize; i += 32)
{
if(memcmp(buffer+i, str, strlen(str)) == 0)
{
// get nintendont version (NINVersion) from current position in nintendont boot.dol (buffer)
-updated NIN_CFG_VERSION to 7 for Nintendont argsboot and added triforce arcade option to game settings menu. tested and working. -fixed wii u widescreen option in game config menu. should properly work now. thanks pBullet! -added a fix for coverflow titles display when coverflow has 3 or more rows. for some reason 3 or more rows caused the title to display improperly. -removed **disabled** message from source menu. no need for it - was a stupid idea. if you don't want it to display then remove it from your source menu or don't add it. when a view is disabled in wiiflow_lite.ini then only that view icon is disabled from showing on the main menu screen. -removed titles.ini which wasn't really used except for displaying the return to channel in settings. I googled it and nothing really showed up. it seemed to be the same as custom_titles.ini - it seemed useless. -removed cacheing sourceflow list. the list is never big enuff to worry about cacheing. plus if you add or remove source btns you won't have to reload cache for the changes to take effect. -removed max_source_btns from wiiflow_lite.ini - added code to get highest source menu btn so now source menu can have as many buttons as you like. -removed Manage Languages Menu - restored option to just change wiiflow language. no need for downloading languages and the google link didn't work anyway. when i make a pack all the languages will be included. -added flat cover options for sourceflow and homebrew view. can be turned on/off via their config menu's accessed via 'HOME' btn. -added config menu for homebrew view - press 'HOME' btn while in homebrew view to access it. config menu options are - switch apps partition, adjust coverflow, smallbox on/off, and flat covers on/off. -updated config menu for source menu/flow. options include - sourceflow on/off, adjust coverflow, smallbox on/off, flat covers on/off, and for source menu only - multisource on/off. -added coverflow layouts/versions for individual plugins - which means each plugin can have its own coverflow layout without affecting the others. -set HQ cover to default to ON -made it so coverflow doesn't reload every time you access another menu or change favorites or whatever. -added error messages to game and app launching if any of the bin files needed for launching are missing. previously whenever these errors occurred wiiflow would just exit without the user knowing why. Now the error message should display before exit so the user has an idea what went wrong. had to move cleanup() back some for the errors to show. hopefully that doesn't cause out of mem issues for users with large game collections. -added error messages to game config menu. now all config options will show but if you can't use it then a error shows telling you. such as 'use neek2o' will be available but if you set it to on and neek2o isn't installed then an error message shows. added error msgs for extracting and flashing saves too. -added show_mem=yes/no option to wiiflow_lite.ini under [DEBUG]. manually edit wiiflow_lite.ini to turn it on/off. if set to 'yes' wiiflow will show how much free mem is available on screen. no need to compile wiiflow for this option anymore. -cleaned up some of the boot up code. -starting a random game - just hold 'B' and press '-'. no longer press'B' on config or question mark icon and no need to allow it in wiiflow_lite.ini
2016-11-07 16:06:00 +01:00
snprintf(NINVersion, sizeof(NINVersion), "%s", buffer+i+strlen(str));
// get revision from version and use it to get NinCfg version
-updated NIN_CFG_VERSION to 7 for Nintendont argsboot and added triforce arcade option to game settings menu. tested and working. -fixed wii u widescreen option in game config menu. should properly work now. thanks pBullet! -added a fix for coverflow titles display when coverflow has 3 or more rows. for some reason 3 or more rows caused the title to display improperly. -removed **disabled** message from source menu. no need for it - was a stupid idea. if you don't want it to display then remove it from your source menu or don't add it. when a view is disabled in wiiflow_lite.ini then only that view icon is disabled from showing on the main menu screen. -removed titles.ini which wasn't really used except for displaying the return to channel in settings. I googled it and nothing really showed up. it seemed to be the same as custom_titles.ini - it seemed useless. -removed cacheing sourceflow list. the list is never big enuff to worry about cacheing. plus if you add or remove source btns you won't have to reload cache for the changes to take effect. -removed max_source_btns from wiiflow_lite.ini - added code to get highest source menu btn so now source menu can have as many buttons as you like. -removed Manage Languages Menu - restored option to just change wiiflow language. no need for downloading languages and the google link didn't work anyway. when i make a pack all the languages will be included. -added flat cover options for sourceflow and homebrew view. can be turned on/off via their config menu's accessed via 'HOME' btn. -added config menu for homebrew view - press 'HOME' btn while in homebrew view to access it. config menu options are - switch apps partition, adjust coverflow, smallbox on/off, and flat covers on/off. -updated config menu for source menu/flow. options include - sourceflow on/off, adjust coverflow, smallbox on/off, flat covers on/off, and for source menu only - multisource on/off. -added coverflow layouts/versions for individual plugins - which means each plugin can have its own coverflow layout without affecting the others. -set HQ cover to default to ON -made it so coverflow doesn't reload every time you access another menu or change favorites or whatever. -added error messages to game and app launching if any of the bin files needed for launching are missing. previously whenever these errors occurred wiiflow would just exit without the user knowing why. Now the error message should display before exit so the user has an idea what went wrong. had to move cleanup() back some for the errors to show. hopefully that doesn't cause out of mem issues for users with large game collections. -added error messages to game config menu. now all config options will show but if you can't use it then a error shows telling you. such as 'use neek2o' will be available but if you set it to on and neek2o isn't installed then an error message shows. added error msgs for extracting and flashing saves too. -added show_mem=yes/no option to wiiflow_lite.ini under [DEBUG]. manually edit wiiflow_lite.ini to turn it on/off. if set to 'yes' wiiflow will show how much free mem is available on screen. no need to compile wiiflow for this option anymore. -cleaned up some of the boot up code. -starting a random game - just hold 'B' and press '-'. no longer press'B' on config or question mark icon and no need to allow it in wiiflow_lite.ini
2016-11-07 16:06:00 +01:00
NINRev = atoi(strchr(NINVersion, '.')+1);
break;
}
}
free(buffer);
break;
}
if(NINRev == 0 || NINRev < 358)
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
NIN_cfg_version = 2;// nintendont not found or revision is less than 358 thus too old for wiiflow lite
-updated NIN_CFG_VERSION to 7 for Nintendont argsboot and added triforce arcade option to game settings menu. tested and working. -fixed wii u widescreen option in game config menu. should properly work now. thanks pBullet! -added a fix for coverflow titles display when coverflow has 3 or more rows. for some reason 3 or more rows caused the title to display improperly. -removed **disabled** message from source menu. no need for it - was a stupid idea. if you don't want it to display then remove it from your source menu or don't add it. when a view is disabled in wiiflow_lite.ini then only that view icon is disabled from showing on the main menu screen. -removed titles.ini which wasn't really used except for displaying the return to channel in settings. I googled it and nothing really showed up. it seemed to be the same as custom_titles.ini - it seemed useless. -removed cacheing sourceflow list. the list is never big enuff to worry about cacheing. plus if you add or remove source btns you won't have to reload cache for the changes to take effect. -removed max_source_btns from wiiflow_lite.ini - added code to get highest source menu btn so now source menu can have as many buttons as you like. -removed Manage Languages Menu - restored option to just change wiiflow language. no need for downloading languages and the google link didn't work anyway. when i make a pack all the languages will be included. -added flat cover options for sourceflow and homebrew view. can be turned on/off via their config menu's accessed via 'HOME' btn. -added config menu for homebrew view - press 'HOME' btn while in homebrew view to access it. config menu options are - switch apps partition, adjust coverflow, smallbox on/off, and flat covers on/off. -updated config menu for source menu/flow. options include - sourceflow on/off, adjust coverflow, smallbox on/off, flat covers on/off, and for source menu only - multisource on/off. -added coverflow layouts/versions for individual plugins - which means each plugin can have its own coverflow layout without affecting the others. -set HQ cover to default to ON -made it so coverflow doesn't reload every time you access another menu or change favorites or whatever. -added error messages to game and app launching if any of the bin files needed for launching are missing. previously whenever these errors occurred wiiflow would just exit without the user knowing why. Now the error message should display before exit so the user has an idea what went wrong. had to move cleanup() back some for the errors to show. hopefully that doesn't cause out of mem issues for users with large game collections. -added error messages to game config menu. now all config options will show but if you can't use it then a error shows telling you. such as 'use neek2o' will be available but if you set it to on and neek2o isn't installed then an error message shows. added error msgs for extracting and flashing saves too. -added show_mem=yes/no option to wiiflow_lite.ini under [DEBUG]. manually edit wiiflow_lite.ini to turn it on/off. if set to 'yes' wiiflow will show how much free mem is available on screen. no need to compile wiiflow for this option anymore. -cleaned up some of the boot up code. -starting a random game - just hold 'B' and press '-'. no longer press'B' on config or question mark icon and no need to allow it in wiiflow_lite.ini
2016-11-07 16:06:00 +01:00
else if(NINRev >= 358 && NINRev < 368)
NIN_cfg_version = 5;
else if(NINRev >= 368 && NINRev < 424)
NIN_cfg_version = 6;
else if(NINRev >= 424 && NINRev < 431)
NIN_cfg_version = 7;
else if(NINRev >= 431 && NINRev < 487)
NIN_cfg_version = 8;
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
NinCfg.Version = NIN_cfg_version;
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
/* set config options */
NinCfg.Config = n_cfg;
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
/* VideoMode setup */
NinCfg.VideoMode = n_vm;
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
NinCfg.VideoScale = vidscale;
NinCfg.VideoOffset = vidoffset;
/* bba network profile */
NinCfg.NetworkProfile = netprofile;
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
/* language setup */
if(lang == 0)
lang = get_wii_language();
else
lang--;
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
switch(lang)
{
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
case SRAM_GERMAN:
NinCfg.Language = NIN_LAN_GERMAN;
break;
case SRAM_FRENCH:
NinCfg.Language = NIN_LAN_FRENCH;
break;
case SRAM_SPANISH:
NinCfg.Language = NIN_LAN_SPANISH;
break;
case SRAM_ITALIAN:
NinCfg.Language = NIN_LAN_ITALIAN;
break;
case SRAM_DUTCH:
NinCfg.Language = NIN_LAN_DUTCH;
break;
default:
NinCfg.Language = NIN_LAN_ENGLISH;
break;
}
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
/* MemCard Blocks Setup */
if(NinCfg.Config & NIN_CFG_MC_MULTI)
NinCfg.MemCardBlocks = 0x4; //1019 blocks (8MB)
else
NinCfg.MemCardBlocks = 0x2; //251 blocks (2MB)
/* CheatPath Setup */
if(CheatPath != NULL && (NinCfg.Config & NIN_CFG_CHEATS))
snprintf(NinCfg.CheatPath, sizeof(NinCfg.CheatPath), strchr(CheatPath, '/'));
/* GamePath Setup */
if(strlen(gamePath) == 2 && strcmp(gamePath, "di") == 0)
strcpy(NinCfg.GamePath, gamePath);
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
else
{
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
strncpy(NinCfg.GamePath, strchr(gamePath, '/'), 254);
if(strstr(NinCfg.GamePath, "boot.bin") != NULL)
{
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
*strrchr(NinCfg.GamePath, '/') = '\0'; //boot.bin
*(strrchr(NinCfg.GamePath, '/')+1) = '\0'; //sys
}
}
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
/* GameID Setup */
2014-04-25 22:23:21 +02:00
memcpy(&NinCfg.GameID, gameID, 4);
gprintf("Nintendont Game Path: %s, ID: %08x\n", NinCfg.GamePath, NinCfg.GameID);
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
gprintf("Writing Arguments\n");
AddBootArgument((char*)&NinCfg, sizeof(NIN_CFG));
}
bool Nintendont_Installed()
{
for(u8 i = SD; i < MAXDEVICES; ++i)
{
const char *dol_path = fmt(NIN_LOADER_PATH, DeviceName[i]);
if(fsop_FileExist(dol_path) == true)
{
gprintf("Nintendont found\n");
return true;
}
}
return false;
}
bool Nintendont_GetLoader(bool use_slippi)
{
slippi = use_slippi;
bool ret = false;
const char *dol_path = NULL;
for(u8 i = SD; i < MAXDEVICES; ++i)
{
if(slippi)
dol_path = fmt(NIN_SLIPPI_PATH, DeviceName[i]);
else
dol_path = fmt(NIN_LOADER_PATH, DeviceName[i]);
ret = (LoadHomebrew(dol_path) == 1);
if(ret == true)
{
gprintf("Nintendont loaded: %s\n", dol_path);
AddBootArgument(dol_path);
break;
}
}
return ret;
}
// Devolution
u8 *tmp_buffer = NULL;
u8 *loader_bin = NULL;
u32 loader_size = 0;
extern "C" { extern void __exception_closeall(); }
static gconfig *DEVO_CONFIG = (gconfig*)0x80000020;
#define DEVO_ENTRY ((entry)loader_bin)
bool DEVO_Installed(const char *path)
{
loader_size = 0;
bool devo = false;
fsop_GetFileSizeBytes(fmt(DEVO_LOADER_PATH, path), &loader_size);
if(loader_size > 0x80) //Size should be more than 128b
{
gprintf("Devolution found\n");
devo = true;
}
return devo;
}
void DEVO_GetLoader(const char *path)
{
loader_size = 0;
tmp_buffer = fsop_ReadFile(fmt(DEVO_LOADER_PATH, path), &loader_size);
if(tmp_buffer == NULL)
gprintf("Devolution: Loader not found!\n");
}
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
void DEVO_SetOptions(const char *isopath, const char *gameID, u8 videomode, u8 lang,
bool memcard_emu, bool widescreen, bool activity_led, bool wifi)
{
// re-mount device we need
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
//DeviceHandle.MountDevolution();
//start writing cfg to mem
struct stat st;
int data_fd;
char iso2path[256];
memset(iso2path, 0, sizeof(iso2path));
stat(isopath, &st);
FILE *f = fopen(isopath, "rb");
gprintf("Devolution: ISO Header %s\n", isopath);
fread((u8*)Disc_ID, 1, 32, f);
fclose(f);
f = NULL;
// fill out the Devolution config struct
memset(DEVO_CONFIG, 0, sizeof(gconfig));
DEVO_CONFIG->signature = DEVO_CONFIG_SIG;
DEVO_CONFIG->version = DEVO_CONFIG_VERSION;
DEVO_CONFIG->device_signature = st.st_dev;
DEVO_CONFIG->disc1_cluster = st.st_ino;
// Pergame options
if(wifi)
DEVO_CONFIG->options |= DEVO_CONFIG_WIFILOG;
if(widescreen)
DEVO_CONFIG->options |= DEVO_CONFIG_WIDE;
if(!activity_led)
DEVO_CONFIG->options |= DEVO_CONFIG_NOLED;
// If 2nd iso file tell Devo about it
strncpy(iso2path, isopath, 255);
char *ptz = strstr(iso2path, "game.iso");
if(ptz != NULL)
{
memcpy(ptz, "gam1.iso", 8);
f = fopen(iso2path, "rb");
if(f == NULL)
{
memcpy(ptz, "gam2.iso", 8);
f = fopen(iso2path, "rb");
if(f == NULL)
{
memcpy(ptz, "disc2.iso", 9);
f = fopen(iso2path, "rb");
}
}
if(f != NULL)
{
gprintf("Devolution: 2nd ISO File for Multi DVD Game %s\n", iso2path);
stat(iso2path, &st);
DEVO_CONFIG->disc2_cluster = st.st_ino;
fclose(f);
}
}
// make sure these directories exist, they are required for Devolution to function correctly
fsop_MakeFolder(fmt("%s:/apps", DeviceName[currentPartition]));
fsop_MakeFolder(fmt("%s:/apps/gc_devo", DeviceName[currentPartition]));
if(memcard_emu)
{
const char *memcard_dir = NULL;
// find or create a 16MB memcard file for emulation
// this file can be located anywhere since it's passed by cluster, not name
// it must be at least 512KB (smallest possible memcard = 59 blocks)
if(gameID[3] == 'J') //Japanese Memory Card
memcard_dir = fmt("%s:/apps/gc_devo/memcard_jap.bin", DeviceName[currentPartition]);
else
memcard_dir = fmt("%s:/apps/gc_devo/memcard.bin", DeviceName[currentPartition]);
gprintf("Devolution: Memory Card File %s\n", memcard_dir);
// check if file doesn't exist
if(stat(memcard_dir, &st) == -1 || st.st_size < (1<<19))
{
// need to enlarge or create it
data_fd = open(memcard_dir, O_WRONLY|O_CREAT);
if(data_fd >= 0)
{
// try to make it 16MB (largest possible memcard = 2043 blocks)
gprintf("Devolution: Resizing Memory Card File...\n");
ftruncate(data_fd, 16<<20);
if(fstat(data_fd, &st) == -1 || st.st_size < (1<<19))
{
// it still isn't big enough. Give up.
st.st_ino = 0;
}
close(data_fd);
}
else
{
// couldn't open or create the memory card file
st.st_ino = 0;
}
}
gprintf("Devolution: Memory Card at %08x\n", st.st_ino);
}
else
st.st_ino = 0;
// set FAT cluster for start of memory card file
// if this is zero memory card emulation will not be used
DEVO_CONFIG->memcard_cluster = st.st_ino;
// flush disc ID and Devolution config out to memory
DCFlushRange((void*)Disc_ID, 64);
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
//DeviceHandle.UnMountDevolution();
// GX Render Mode (rmode) and register (rmode_reg)
GXRModeObj *rmode = VIDEO_GetPreferredMode(0);
int rmode_reg = 0;// VI_NTSC
switch (videomode)
{
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
case 1:// PAL50
rmode = &TVPal528IntDf;
rmode_reg = 1;// VI_PAL
break;
case 2:// PAL60 480i
rmode = &TVEurgb60Hz480IntDf;
rmode_reg = 5;// VI_EURGB60
break;
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
case 3:// NTSC 480i
default:
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
rmode = &TVNtsc480IntDf;
break;
}
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
/* Set video mode register */
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
*Video_Mode = rmode_reg;
DCFlushRange((void*)Video_Mode, 4);
/* Set video mode */
if(rmode != NULL)
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
VIDEO_Configure(rmode);
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
/* Setup video */
VIDEO_SetBlack(TRUE);
VIDEO_Flush();
VIDEO_WaitVSync();
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
if(rmode->viTVMode & VI_NON_INTERLACE)
VIDEO_WaitVSync();
else while(VIDEO_GetNextField())
VIDEO_WaitVSync();
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
/* language setup */
if(lang == 0)
lang = get_wii_language();
else
lang--;
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
// sram settins for devo language only
syssram *sram;
sram = __SYS_LockSram();
sram->lang = lang;
__SYS_UnlockSram(1); // 1 -> write changes
while(!__SYS_SyncSram())
usleep(100);
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
}
2014-04-25 22:23:21 +02:00
- separated nintendont widescreen and wiiu widescreen options again. I don't own a wiiu so it wasn't until recently that I realized they were different and both useful on a wiiu vwii. - added nintendont video width scale and video offset position options per game. you can set global defualts in wiiflow_lite.ini under [GAMECUBE] as nin_width and nin_pos. width can be 0(auto) or 40 to 120 and position can be -20 to 20 (0 is center normal). - added patch pal50 option per game for Nintendont. - removed devolution mount and unmount to speed up loading of devo gc games. not sure why they were there. - properly fixed nintendont video setting. last commit worked but on my tv with component cables and wii in progressive mode it would always switch to interlace then back to progressive when nintendont started and then back to interlaced when the actual game started. now it just switches to interlaced when the actual game starts unless im forcing progressive. - fixed nintendont gc disc launching and wii disc launching to use gameconfig2 settings. seems when launching a disc gameconfig2 wasn't loaded and thus no game settings were used. you should be able to use cheats with disc launch now. - added option to set game settings for a disc launch prior to the actual disc launch. just hold 'B' and press 'A' when selecting the disc icon to access settings menu before launch. just press 'A' to launch disc immediately. - removed 98% of the gap between unloading a banner and displaying the new banner in game selected menu. old way would momentarily show the game covers and play the background music. now there's only a very small chance you will even see the covers or hear the background music.
2017-04-18 01:23:50 +02:00
void DEVO_Boot()
{
/* Move our loader into low MEM1 */
loader_bin = (u8*)MEM1_lo_alloc(loader_size);
memcpy(loader_bin, tmp_buffer, loader_size);
DCFlushRange(loader_bin, ALIGN32(loader_size));
MEM2_free(tmp_buffer);
gprintf("%s\n", (loader_bin+4));
/* Boot that binary */
JumpToEntry(DEVO_ENTRY);
}