Merge pull request #345 from askotx/master
Take some updates from https://github.com/askotx/vba-wii
8
.gitignore
vendored
@ -1,4 +1,4 @@
|
||||
/snes9x-gx.pnps
|
||||
/snes9x-gx.pnproj
|
||||
/build_wii
|
||||
/executables
|
||||
executables
|
||||
build_wii
|
||||
build_gc
|
||||
dist
|
||||
|
@ -2,8 +2,8 @@
|
||||
<app version="1">
|
||||
<name>Visual Boy Advance GX</name>
|
||||
<coder>Tantric</coder>
|
||||
<version>2.3.5</version>
|
||||
<release_date>20161210</release_date>
|
||||
<version>2.3.6</version>
|
||||
<release_date>20161211</release_date>
|
||||
<short_description>GBA/GBC/GB Emulator</short_description>
|
||||
<long_description>A port of Visual Boy Advance - M to the Wii.</long_description>
|
||||
<ahb_access />
|
||||
|
@ -38,6 +38,13 @@ https://github.com/dborth/vbagx/releases
|
||||
|0O×øo· UPDATE HISTORY ·oø×O0|
|
||||
`¨•¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨'
|
||||
|
||||
[2.3.6 - December 11, 2016]
|
||||
|
||||
* Restored Wiiflow mode plugin by fix94
|
||||
* Restored fix filebrowser window overlapping
|
||||
* Change all files End Of Line to windows mode
|
||||
* Remove update check for updates
|
||||
|
||||
[2.3.5 - December 10, 2016]
|
||||
|
||||
* Hide saving dialog that pops up briefly when returning from a game
|
||||
@ -1159,7 +1166,7 @@ switched items since then.
|
||||
Additional coding Carl Kenner, dancinninjac
|
||||
Menu artwork the3seashells
|
||||
Menu sound Peter de Man
|
||||
|
||||
|
||||
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
|
||||
VBA GameCube/Wii SoftDev, emukidid
|
||||
|
||||
|
@ -156,7 +156,6 @@ devicecallback (void *arg)
|
||||
usleep(THREAD_SLEEP);
|
||||
devsleep -= THREAD_SLEEP;
|
||||
}
|
||||
UpdateCheck();
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ GuiFileBrowser::GuiFileBrowser(int w, int h)
|
||||
bgFileSelectionImg = new GuiImage(bgFileSelection);
|
||||
bgFileSelectionImg->SetParent(this);
|
||||
bgFileSelectionImg->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
||||
|
||||
|
||||
bgFileSelectionEntry = new GuiImageData(bg_game_selection_entry_png);
|
||||
|
||||
iconFolder = new GuiImageData(icon_folder_png);
|
||||
@ -52,7 +52,7 @@ GuiFileBrowser::GuiFileBrowser(int w, int h)
|
||||
scrollbarImg = new GuiImage(scrollbar);
|
||||
scrollbarImg->SetParent(this);
|
||||
scrollbarImg->SetAlignment(ALIGN_RIGHT, ALIGN_TOP);
|
||||
scrollbarImg->SetPosition(0, 30);
|
||||
scrollbarImg->SetPosition(5, 30);
|
||||
|
||||
arrowDown = new GuiImageData(scrollbar_arrowdown_png);
|
||||
arrowDownImg = new GuiImage(arrowDown);
|
||||
@ -78,6 +78,7 @@ GuiFileBrowser::GuiFileBrowser(int w, int h)
|
||||
arrowUpBtn->SetTrigger(trigHeldA);
|
||||
arrowUpBtn->SetSoundOver(btnSoundOver);
|
||||
arrowUpBtn->SetSoundClick(btnSoundClick);
|
||||
arrowUpBtn->SetPosition(5, 0);
|
||||
|
||||
arrowDownBtn = new GuiButton(arrowDownImg->GetWidth(), arrowDownImg->GetHeight());
|
||||
arrowDownBtn->SetParent(this);
|
||||
@ -90,6 +91,7 @@ GuiFileBrowser::GuiFileBrowser(int w, int h)
|
||||
arrowDownBtn->SetTrigger(trigHeldA);
|
||||
arrowDownBtn->SetSoundOver(btnSoundOver);
|
||||
arrowDownBtn->SetSoundClick(btnSoundClick);
|
||||
arrowDownBtn->SetPosition(5, 0);
|
||||
|
||||
scrollbarBoxBtn = new GuiButton(scrollbarBoxImg->GetWidth(), scrollbarBoxImg->GetHeight());
|
||||
scrollbarBoxBtn->SetParent(this);
|
||||
@ -102,6 +104,7 @@ GuiFileBrowser::GuiFileBrowser(int w, int h)
|
||||
scrollbarBoxBtn->SetClickable(false);
|
||||
scrollbarBoxBtn->SetHoldable(true);
|
||||
scrollbarBoxBtn->SetTrigger(trigHeldA);
|
||||
scrollbarBoxBtn->SetPosition(5, 30);
|
||||
|
||||
for(int i=0; i<FILE_PAGESIZE; ++i)
|
||||
{
|
||||
@ -430,7 +433,7 @@ void GuiFileBrowser::Update(GuiTrigger * t)
|
||||
if(positionWiimote > 0)
|
||||
{
|
||||
position = positionWiimote; // follow wiimote cursor
|
||||
scrollbarBoxBtn->SetPosition(0,position+36);
|
||||
scrollbarBoxBtn->SetPosition(5,position+36);
|
||||
}
|
||||
else if(listChanged || numEntries != browser.numEntries)
|
||||
{
|
||||
@ -446,7 +449,7 @@ void GuiFileBrowser::Update(GuiTrigger * t)
|
||||
{
|
||||
position = 156 * (browser.pageIndex + FILE_PAGESIZE/2) / (float)browser.numEntries;
|
||||
}
|
||||
scrollbarBoxBtn->SetPosition(0,position+36);
|
||||
scrollbarBoxBtn->SetPosition(5,position+36);
|
||||
}
|
||||
|
||||
listChanged = false;
|
||||
@ -454,4 +457,4 @@ void GuiFileBrowser::Update(GuiTrigger * t)
|
||||
|
||||
if(updateCB)
|
||||
updateCB(this);
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 251 B |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 3.2 KiB |
@ -1212,7 +1212,6 @@ static int MenuGame()
|
||||
// regardless of the weather, there should be no sun at night time!
|
||||
time(&long_time); // Get time as long integer.
|
||||
newtime = localtime(&long_time); // Convert to local time.
|
||||
|
||||
if (newtime->tm_hour > 21 || newtime->tm_hour < 5)
|
||||
{
|
||||
sprintf(s, "Weather: Night Time");
|
||||
@ -3213,6 +3212,10 @@ static int MenuSettingsEmulation()
|
||||
sprintf (options.value[0], "Super Game Boy");
|
||||
else if (GCSettings.GBHardware == 3)
|
||||
sprintf (options.value[0], "Game Boy");
|
||||
else if (GCSettings.GBHardware == 4)
|
||||
sprintf (options.value[0], "Game Boy Advance");
|
||||
else if (GCSettings.GBHardware == 5)
|
||||
sprintf (options.value[0], "Super Game Boy 2");
|
||||
|
||||
if (GCSettings.SGBBorder == 0)
|
||||
sprintf (options.value[1], "Off");
|
||||
|
@ -166,12 +166,16 @@ preparePrefsData ()
|
||||
createXMLSetting("LoadMethod", "Load Method", toStr(GCSettings.LoadMethod));
|
||||
createXMLSetting("SaveMethod", "Save Method", toStr(GCSettings.SaveMethod));
|
||||
createXMLSetting("LoadFolder", "Load Folder", GCSettings.LoadFolder);
|
||||
createXMLSetting("LastFileLoaded", "Last File Loaded", GCSettings.LastFileLoaded);
|
||||
createXMLSetting("SaveFolder", "Save Folder", GCSettings.SaveFolder);
|
||||
createXMLSetting("AppendAuto", "Append Auto to .SAV Files", toStr(GCSettings.AppendAuto));
|
||||
//createXMLSetting("CheatFolder", "Cheats Folder", GCSettings.CheatFolder);
|
||||
createXMLSetting("ScreenshotsFolder", "Screenshots Folder", GCSettings.ScreenshotsFolder);
|
||||
createXMLSetting("BorderFolder", "SGB Borders Folder", GCSettings.BorderFolder);
|
||||
createXMLSetting("CoverFolder", "Covers Folder", GCSettings.CoverFolder);
|
||||
createXMLSetting("ArtworkFolder", "Artworks Folder", GCSettings.ArtworkFolder);
|
||||
createXMLSetting("ImageFolder", "Image Folder", GCSettings.ImageFolder);
|
||||
|
||||
|
||||
createXMLSection("Network", "Network Settings");
|
||||
|
||||
createXMLSetting("smbip", "Share Computer IP", GCSettings.smbip);
|
||||
@ -186,11 +190,14 @@ preparePrefsData ()
|
||||
createXMLSetting("gbaZoomVert", "GBA Vertical Zoom Level", FtoStr(GCSettings.gbaZoomVert));
|
||||
createXMLSetting("gbZoomHor", "GB Horizontal Zoom Level", FtoStr(GCSettings.gbZoomHor));
|
||||
createXMLSetting("gbZoomVert", "GB Vertical Zoom Level", FtoStr(GCSettings.gbZoomVert));
|
||||
createXMLSetting("gbFixed", "GB Fixed Pixel Ratio", toStr(GCSettings.gbFixed));
|
||||
createXMLSetting("gbaFixed", "GBA Fixed Pixel Ratio", toStr(GCSettings.gbaFixed));
|
||||
createXMLSetting("render", "Video Filtering", toStr(GCSettings.render));
|
||||
createXMLSetting("scaling", "Aspect Ratio Correction", toStr(GCSettings.scaling));
|
||||
createXMLSetting("xshift", "Horizontal Video Shift", toStr(GCSettings.xshift));
|
||||
createXMLSetting("yshift", "Vertical Video Shift", toStr(GCSettings.yshift));
|
||||
createXMLSetting("colorize", "Colorize Mono Gameboy", toStr(GCSettings.colorize));
|
||||
createXMLSetting("gbaFrameskip", "GBA Frameskip", toStr(GCSettings.gbaFrameskip));
|
||||
|
||||
createXMLSection("Menu", "Menu Settings");
|
||||
|
||||
@ -214,6 +221,12 @@ preparePrefsData ()
|
||||
createXMLController(btnmap[CTRLR_CLASSIC], "ccpadmap", "Classic Controller");
|
||||
createXMLController(btnmap[CTRLR_NUNCHUK], "ncpadmap", "Nunchuk");
|
||||
|
||||
createXMLSection("Emulation", "Emulation Settings");
|
||||
|
||||
createXMLSetting("OffsetMinutesUTC", "Offset from UTC (minutes)", toStr(GCSettings.OffsetMinutesUTC));
|
||||
createXMLSetting("GBHardware", "Hardware (GB/GBC)", toStr(GCSettings.GBHardware));
|
||||
createXMLSetting("SGBBorder", "Border (GB/GBC)", toStr(GCSettings.SGBBorder));
|
||||
|
||||
int datasize = mxmlSaveString(xml, (char *)savebuffer, SAVEBUFFERSIZE, XMLSaveCallback);
|
||||
|
||||
mxmlDelete(xml);
|
||||
@ -456,6 +469,9 @@ decodePrefsData ()
|
||||
result = false;
|
||||
else if(verMajor < 2) // less than version 2.0.0
|
||||
result = false; // reset settings (sorry, should update settings instead)
|
||||
else if((verMajor*100 + verMinor*10 + verPoint) >
|
||||
(curMajor*100 + curMinor*10 + curPoint)) // some future version
|
||||
result = false; // reset settings
|
||||
else
|
||||
result = true;
|
||||
}
|
||||
@ -470,12 +486,16 @@ decodePrefsData ()
|
||||
loadXMLSetting(&GCSettings.LoadMethod, "LoadMethod");
|
||||
loadXMLSetting(&GCSettings.SaveMethod, "SaveMethod");
|
||||
loadXMLSetting(GCSettings.LoadFolder, "LoadFolder", sizeof(GCSettings.LoadFolder));
|
||||
loadXMLSetting(GCSettings.LastFileLoaded, "LastFileLoaded", sizeof(GCSettings.LastFileLoaded));
|
||||
loadXMLSetting(GCSettings.SaveFolder, "SaveFolder", sizeof(GCSettings.SaveFolder));
|
||||
loadXMLSetting(&GCSettings.AppendAuto, "AppendAuto");
|
||||
//loadXMLSetting(GCSettings.CheatFolder, "CheatFolder", sizeof(GCSettings.CheatFolder));
|
||||
loadXMLSetting(GCSettings.ScreenshotsFolder, "ScreenshotsFolder", sizeof(GCSettings.ScreenshotsFolder));
|
||||
loadXMLSetting(GCSettings.BorderFolder, "BorderFolder", sizeof(GCSettings.BorderFolder));
|
||||
loadXMLSetting(GCSettings.CoverFolder, "CoverFolder", sizeof(GCSettings.CoverFolder));
|
||||
loadXMLSetting(GCSettings.ArtworkFolder, "ArtworkFolder", sizeof(GCSettings.ArtworkFolder));
|
||||
loadXMLSetting(GCSettings.ImageFolder, "ImageFolder", sizeof(GCSettings.ImageFolder));
|
||||
|
||||
|
||||
// Network Settings
|
||||
|
||||
loadXMLSetting(GCSettings.smbip, "smbip", sizeof(GCSettings.smbip));
|
||||
@ -490,11 +510,14 @@ decodePrefsData ()
|
||||
loadXMLSetting(&GCSettings.gbaZoomVert, "gbaZoomVert");
|
||||
loadXMLSetting(&GCSettings.gbZoomHor, "gbZoomHor");
|
||||
loadXMLSetting(&GCSettings.gbZoomVert, "gbZoomVert");
|
||||
loadXMLSetting(&GCSettings.gbaFixed, "gbaFixed");
|
||||
loadXMLSetting(&GCSettings.gbFixed, "gbFixed");
|
||||
loadXMLSetting(&GCSettings.render, "render");
|
||||
loadXMLSetting(&GCSettings.scaling, "scaling");
|
||||
loadXMLSetting(&GCSettings.xshift, "xshift");
|
||||
loadXMLSetting(&GCSettings.yshift, "yshift");
|
||||
loadXMLSetting(&GCSettings.colorize, "colorize");
|
||||
loadXMLSetting(&GCSettings.gbaFrameskip, "gbaFrameskip");
|
||||
|
||||
// Menu Settings
|
||||
|
||||
@ -506,11 +529,6 @@ decodePrefsData ()
|
||||
loadXMLSetting(&GCSettings.language, "language");
|
||||
loadXMLSetting(&GCSettings.PreviewImage, "PreviewImage");
|
||||
|
||||
// Emulation Settings
|
||||
|
||||
loadXMLSetting(&GCSettings.BasicPalette, "BasicPalette");
|
||||
|
||||
|
||||
// Controller Settings
|
||||
|
||||
loadXMLSetting(&GCSettings.WiiControls, "WiiControls");
|
||||
@ -518,6 +536,14 @@ decodePrefsData ()
|
||||
loadXMLController(btnmap[CTRLR_WIIMOTE], "wmpadmap");
|
||||
loadXMLController(btnmap[CTRLR_CLASSIC], "ccpadmap");
|
||||
loadXMLController(btnmap[CTRLR_NUNCHUK], "ncpadmap");
|
||||
|
||||
// Emulation Settings
|
||||
|
||||
loadXMLSetting(&GCSettings.OffsetMinutesUTC, "OffsetMinutesUTC");
|
||||
loadXMLSetting(&GCSettings.GBHardware, "GBHardware");
|
||||
loadXMLSetting(&GCSettings.SGBBorder, "SGBBorder");
|
||||
loadXMLSetting(&GCSettings.BasicPalette, "BasicPalette");
|
||||
|
||||
}
|
||||
mxmlDelete(xml);
|
||||
}
|
||||
@ -592,9 +618,9 @@ void FixInvalidSettings()
|
||||
GCSettings.SFXVolume = 40;
|
||||
if(GCSettings.language < 0 || GCSettings.language >= LANG_LENGTH)
|
||||
GCSettings.language = LANG_ENGLISH;
|
||||
if(!(GCSettings.render >= 0 && GCSettings.render < 3))
|
||||
if(!(GCSettings.render >= 0 && GCSettings.render < 5))
|
||||
GCSettings.render = 1;
|
||||
if(!(GCSettings.videomode >= 0 && GCSettings.videomode < 5))
|
||||
if(!(GCSettings.videomode >= 0 && GCSettings.videomode < 7))
|
||||
GCSettings.videomode = 0;
|
||||
}
|
||||
|
||||
@ -613,13 +639,16 @@ DefaultSettings ()
|
||||
GCSettings.SaveMethod = DEVICE_AUTO; // Auto, SD, USB, Network (SMB)
|
||||
sprintf (GCSettings.LoadFolder, "%s/roms", APPFOLDER); // Path to game files
|
||||
sprintf (GCSettings.SaveFolder, "%s/saves", APPFOLDER); // Path to save files
|
||||
sprintf (GCSettings.ScreenshotsFolder, "%s/screenshots", APPFOLDER); // Path to screenshot files
|
||||
//sprintf (GCSettings.CheatFolder, "%s/cheats", APPFOLDER); // Path to cheat files
|
||||
sprintf (GCSettings.ScreenshotsFolder, "%s/screenshots", APPFOLDER);
|
||||
sprintf (GCSettings.BorderFolder, "%s/borders", APPFOLDER);
|
||||
sprintf (GCSettings.CoverFolder, "%s/covers", APPFOLDER); // Path to cover files
|
||||
sprintf (GCSettings.ArtworkFolder, "%s/artworks", APPFOLDER); // Path to artwork files
|
||||
sprintf (GCSettings.ImageFolder, "%s/screenshots", APPFOLDER);
|
||||
|
||||
GCSettings.AutoLoad = 1;
|
||||
GCSettings.AutoSave = 1;
|
||||
GCSettings.AppendAuto = 1;
|
||||
|
||||
GCSettings.WiimoteOrientation = 0;
|
||||
|
||||
@ -627,6 +656,8 @@ DefaultSettings ()
|
||||
GCSettings.gbaZoomVert = 1.0; // GBA vertical zoom level
|
||||
GCSettings.gbZoomHor = 1.0; // GBA horizontal zoom level
|
||||
GCSettings.gbZoomVert = 1.0; // GBA vertical zoom level
|
||||
GCSettings.gbFixed = 0; // not fixed - use zoom level
|
||||
GCSettings.gbaFixed = 0; // not fixed - use zoom level
|
||||
GCSettings.videomode = 0; // automatic video mode detection
|
||||
GCSettings.render = 1; // Filtered
|
||||
GCSettings.scaling = 1; // partial stretch
|
||||
@ -635,6 +666,7 @@ DefaultSettings ()
|
||||
GCSettings.xshift = 0; // horizontal video shift
|
||||
GCSettings.yshift = 0; // vertical video shift
|
||||
GCSettings.colorize = 0; // Colorize mono gameboy games
|
||||
GCSettings.gbaFrameskip = 1; // Turn auto-frameskip on for GBA games
|
||||
|
||||
GCSettings.WiimoteOrientation = 0;
|
||||
GCSettings.ExitAction = 0;
|
||||
@ -656,6 +688,9 @@ DefaultSettings ()
|
||||
#else
|
||||
GCSettings.language = LANG_ENGLISH;
|
||||
#endif
|
||||
GCSettings.OffsetMinutesUTC = 0;
|
||||
GCSettings.GBHardware = 0;
|
||||
GCSettings.SGBBorder = 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -244,14 +244,14 @@ ftgxCharData *FreeTypeGX::cacheGlyphData(wchar_t charCode)
|
||||
textureHeight = adjustTextureHeight(glyphBitmap->rows);
|
||||
|
||||
this->fontData[charCode] = (ftgxCharData){
|
||||
ftSlot->bitmap_left,
|
||||
ftSlot->advance.x >> 6,
|
||||
gIndex,
|
||||
(s16)(ftSlot->bitmap_left),
|
||||
(u16)(ftSlot->advance.x >> 6),
|
||||
(u16)(gIndex),
|
||||
textureWidth,
|
||||
textureHeight,
|
||||
ftSlot->bitmap_top,
|
||||
ftSlot->bitmap_top,
|
||||
glyphBitmap->rows - ftSlot->bitmap_top,
|
||||
(s16)(ftSlot->bitmap_top),
|
||||
(s16)(ftSlot->bitmap_top),
|
||||
(s16)(glyphBitmap->rows - ftSlot->bitmap_top),
|
||||
NULL
|
||||
};
|
||||
this->loadGlyphData(glyphBitmap, &this->fontData[charCode]);
|
||||
|
@ -116,3 +116,4 @@ blargg_err_t Gb_Apu::load_state( gb_apu_state_t const& in )
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include <wiiuse/wpad.h>
|
||||
#include <wupc/wupc.h>
|
||||
#include <sys/iosupport.h>
|
||||
#include <string>
|
||||
|
||||
#ifdef HW_RVL
|
||||
#include <di/di.h>
|
||||
@ -77,6 +78,26 @@ static void ExitCleanup()
|
||||
void (*PSOReload) () = (void (*)()) 0x80001800;
|
||||
#endif
|
||||
|
||||
void ExitToWiiflow()
|
||||
{
|
||||
ShutoffRumble();
|
||||
SavePrefs(SILENT);
|
||||
if (ROMLoaded && !ConfigRequested && GCSettings.AutoSave == 1)
|
||||
SaveBatteryOrStateAuto(FILE_SRAM, SILENT);
|
||||
ExitCleanup();
|
||||
|
||||
if( !!*(u32*)0x80001800 )
|
||||
{
|
||||
// Were we launched via HBC? (or via wiiflows stub replacement? :P)
|
||||
exit(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Wii channel support
|
||||
SYS_ResetSystem( SYS_RETURNTOMENU, 0, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
void ExitApp()
|
||||
{
|
||||
#ifdef HW_RVL
|
||||
@ -379,6 +400,64 @@ int main(int argc, char *argv[])
|
||||
gameScreenPng = (u8 *)malloc(512*1024);
|
||||
InitGUIThreads();
|
||||
|
||||
bool autoboot = false;
|
||||
if(argc > 3 && argv[1] != NULL && argv[2] != NULL && argv[3] != NULL)
|
||||
{
|
||||
autoboot = true;
|
||||
ResetBrowser();
|
||||
LoadPrefs();
|
||||
if(strcasestr(argv[1], "sd:/") != NULL)
|
||||
{
|
||||
GCSettings.SaveMethod = DEVICE_SD;
|
||||
GCSettings.LoadMethod = DEVICE_SD;
|
||||
}
|
||||
else
|
||||
{
|
||||
GCSettings.SaveMethod = DEVICE_USB;
|
||||
GCSettings.LoadMethod = DEVICE_USB;
|
||||
}
|
||||
SavePrefs(SILENT);
|
||||
selectLoadedFile = 1;
|
||||
std::string dir(argv[1]);
|
||||
dir.assign(&dir[dir.find_last_of(":") + 2]);
|
||||
char arg_filename[1024];
|
||||
strncpy(arg_filename, argv[2], sizeof(arg_filename));
|
||||
strncpy(GCSettings.LoadFolder, dir.c_str(), sizeof(GCSettings.LoadFolder));
|
||||
OpenGameList();
|
||||
strncpy(GCSettings.Exit_Dol_File, argv[3], sizeof(GCSettings.Exit_Dol_File));
|
||||
if(argc > 5 && argv[4] != NULL && argv[5] != NULL)
|
||||
{
|
||||
sscanf(argv[4], "%08x", &GCSettings.Exit_Channel[0]);
|
||||
sscanf(argv[5], "%08x", &GCSettings.Exit_Channel[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
GCSettings.Exit_Channel[0] = 0x00010008;
|
||||
GCSettings.Exit_Channel[1] = 0x57494948;
|
||||
}
|
||||
if(argc > 6 && argv[6] != NULL)
|
||||
strncpy(GCSettings.LoaderName, argv[6], sizeof(GCSettings.LoaderName));
|
||||
else
|
||||
snprintf(GCSettings.LoaderName, sizeof(GCSettings.LoaderName), "WiiFlow");
|
||||
for(int i = 0; i < browser.numEntries; i++)
|
||||
{
|
||||
// Skip it
|
||||
if (strcmp(browserList[i].filename, ".") == 0 || strcmp(browserList[i].filename, "..") == 0)
|
||||
continue;
|
||||
if(strcasestr(browserList[i].filename, arg_filename) != NULL)
|
||||
{
|
||||
browser.selIndex = i;
|
||||
if(IsSz())
|
||||
{
|
||||
BrowserLoadSz();
|
||||
browser.selIndex = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
BrowserLoadFile();
|
||||
}
|
||||
|
||||
while(1) // main loop
|
||||
{
|
||||
// go back to checking if devices were inserted/removed
|
||||
@ -387,13 +466,21 @@ int main(int argc, char *argv[])
|
||||
|
||||
SwitchAudioMode(1);
|
||||
|
||||
if(!ROMLoaded)
|
||||
MainMenu(MENU_GAMESELECTION);
|
||||
else
|
||||
MainMenu(MENU_GAME);
|
||||
if(!autoboot)
|
||||
{
|
||||
if(!ROMLoaded)
|
||||
MainMenu(MENU_GAMESELECTION);
|
||||
else
|
||||
MainMenu(MENU_GAME);
|
||||
|
||||
ConfigRequested = 0;
|
||||
ScreenshotRequested = 0;
|
||||
}
|
||||
else if(ROMLoaded && autoboot)
|
||||
autoboot = false;
|
||||
else
|
||||
ExitApp();
|
||||
|
||||
ConfigRequested = 0;
|
||||
ScreenshotRequested = 0;
|
||||
SwitchAudioMode(0);
|
||||
|
||||
// stop checking if devices were removed/inserted
|
||||
|
@ -16,7 +16,7 @@
|
||||
#include "utils/FreeTypeGX.h"
|
||||
|
||||
#define APPNAME "Visual Boy Advance GX"
|
||||
#define APPVERSION "2.3.5"
|
||||
#define APPVERSION "2.3.6"
|
||||
#define APPFOLDER "vbagx"
|
||||
#define PREF_FILE_NAME "settings.xml"
|
||||
#define PAL_FILE_NAME "palettes.xml"
|
||||
@ -68,23 +68,23 @@ enum
|
||||
struct SGCSettings
|
||||
{
|
||||
float gbaZoomHor; // GBA horizontal zoom amount
|
||||
float gbaZoomVert; // GBA vertical zoom amount
|
||||
float gbZoomHor; // GB horizontal zoom amount
|
||||
float gbZoomVert; // GB vertical zoom amount
|
||||
int gbFixed;
|
||||
int gbaFixed;
|
||||
float gbaZoomVert; // GBA vertical zoom amount
|
||||
float gbZoomHor; // GB horizontal zoom amount
|
||||
float gbZoomVert; // GB vertical zoom amount
|
||||
int gbFixed;
|
||||
int gbaFixed;
|
||||
int AutoLoad;
|
||||
int AutoSave;
|
||||
int LoadMethod; // For ROMS: Auto, SD, DVD, USB, Network (SMB)
|
||||
int AutoSave;
|
||||
int LoadMethod; // For ROMS: Auto, SD, DVD, USB, Network (SMB)
|
||||
int SaveMethod; // For SRAM, Freeze, Prefs: Auto, SD, USB, SMB
|
||||
int AppendAuto; // 0 - no, 1 - yes
|
||||
int videomode; // 0 - automatic, 1 - NTSC (480i), 2 - Progressive (480p), 3 - PAL (50Hz), 4 - PAL (60Hz)
|
||||
int scaling; // 0 - default, 1 - partial stretch, 2 - stretch to fit, 3 - widescreen correction
|
||||
int AppendAuto; // 0 - no, 1 - yes
|
||||
int videomode; // 0 - automatic, 1 - NTSC (480i), 2 - Progressive (480p), 3 - PAL (50Hz), 4 - PAL (60Hz)
|
||||
int scaling; // 0 - default, 1 - partial stretch, 2 - stretch to fit, 3 - widescreen correction
|
||||
int render; // 0 - original, 1 - filtered, 2 - unfiltered
|
||||
int xshift; // video output shift
|
||||
int yshift;
|
||||
int colorize; // colorize Mono Gameboy games
|
||||
int gbaFrameskip; // turn on auto-frameskip for GBA games
|
||||
int colorize; // colorize Mono Gameboy games
|
||||
int gbaFrameskip; // turn on auto-frameskip for GBA games
|
||||
int WiiControls; // Match Wii Game
|
||||
int WiimoteOrientation;
|
||||
int ExitAction;
|
||||
@ -108,6 +108,10 @@ struct SGCSettings
|
||||
char ImageFolder[MAXPATHLEN]; //Saved image folder path
|
||||
char BorderFolder[MAXPATHLEN]; // Path to Super Game Boy border files
|
||||
|
||||
char Exit_Dol_File[MAXPATHLEN]; // Exit Path
|
||||
char LoaderName[20]; // Menu Loader Name
|
||||
u32 Exit_Channel[2]; // Exit Channel
|
||||
|
||||
char smbip[80];
|
||||
char smbuser[20];
|
||||
char smbpwd[20];
|
||||
|