mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2024-11-23 19:59:16 +01:00
-fixed plugin coverflow not reloading on changed plugins using
the plugin menu in the global settings -using different way to boot something (affects all views)
This commit is contained in:
parent
c19f116046
commit
3029c59e13
@ -32,13 +32,8 @@
|
|||||||
#include "memory/mem2.hpp"
|
#include "memory/mem2.hpp"
|
||||||
#include "plugin/crc32.h"
|
#include "plugin/crc32.h"
|
||||||
|
|
||||||
typedef void (*entrypoint) (void);
|
|
||||||
extern "C" { void __exception_closeall(); }
|
|
||||||
|
|
||||||
/* External WiiFlow Game Booter */
|
/* External WiiFlow Game Booter */
|
||||||
#define BOOTER_ADDR ((u8 *)0x80B00000)
|
|
||||||
static the_CFG *BooterConfig = (the_CFG*)0x93100000;
|
static the_CFG *BooterConfig = (the_CFG*)0x93100000;
|
||||||
static entrypoint exeEntryPoint = (entrypoint)BOOTER_ADDR;
|
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
u8 configbytes[2];
|
u8 configbytes[2];
|
||||||
@ -52,8 +47,6 @@ extern u8 *codelistend;
|
|||||||
extern u32 gameconfsize;
|
extern u32 gameconfsize;
|
||||||
extern u32 *gameconf;
|
extern u32 *gameconf;
|
||||||
|
|
||||||
u32 cookie;
|
|
||||||
__argv args;
|
|
||||||
the_CFG normalCFG;
|
the_CFG normalCFG;
|
||||||
void WiiFlow_ExternalBooter(u8 vidMode, bool vipatch, bool countryString, u8 patchVidMode, int aspectRatio, u32 returnTo, u8 BootType)
|
void WiiFlow_ExternalBooter(u8 vidMode, bool vipatch, bool countryString, u8 patchVidMode, int aspectRatio, u32 returnTo, u8 BootType)
|
||||||
{
|
{
|
||||||
@ -85,14 +78,8 @@ void WiiFlow_ExternalBooter(u8 vidMode, bool vipatch, bool countryString, u8 pat
|
|||||||
/* Copy in booter */
|
/* Copy in booter */
|
||||||
memcpy(BOOTER_ADDR, booter, booter_size);
|
memcpy(BOOTER_ADDR, booter, booter_size);
|
||||||
DCFlushRange(BOOTER_ADDR, booter_size);
|
DCFlushRange(BOOTER_ADDR, booter_size);
|
||||||
/* Shutdown IOS subsystems */
|
|
||||||
__IOS_ShutdownSubsystems();
|
|
||||||
u32 level = IRQ_Disable();
|
|
||||||
__exception_closeall();
|
|
||||||
/* Boot it */
|
/* Boot it */
|
||||||
exeEntryPoint();
|
JumpToBooter();
|
||||||
/* Fail */
|
|
||||||
IRQ_Restore(level);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extern FragList *frag_list;
|
extern FragList *frag_list;
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ogc/machine/processor.h>
|
#include <ogc/machine/processor.h>
|
||||||
|
#include <ogc/lwp_threads.h>
|
||||||
// for directory parsing and low-level file I/O
|
// for directory parsing and low-level file I/O
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
@ -153,7 +153,7 @@ u8 *loader_bin = NULL;
|
|||||||
u32 loader_size = 0;
|
u32 loader_size = 0;
|
||||||
extern "C" { extern void __exception_closeall(); }
|
extern "C" { extern void __exception_closeall(); }
|
||||||
static gconfig *DEVO_CONFIG = (gconfig*)0x80000020;
|
static gconfig *DEVO_CONFIG = (gconfig*)0x80000020;
|
||||||
#define DEVO_Entry() ((void(*)(void))loader_bin)()
|
#define DEVO_Entry ((void(*)())loader_bin)
|
||||||
|
|
||||||
bool DEVO_Installed(const char *path)
|
bool DEVO_Installed(const char *path)
|
||||||
{
|
{
|
||||||
@ -297,13 +297,9 @@ void DEVO_Boot()
|
|||||||
MEM2_free(tmp_buffer);
|
MEM2_free(tmp_buffer);
|
||||||
gprintf("%s\n", (loader_bin+4));
|
gprintf("%s\n", (loader_bin+4));
|
||||||
/* cleaning up and load bin */
|
/* cleaning up and load bin */
|
||||||
u32 cookie;
|
|
||||||
gprintf("Jumping to Entry 0x%08x\n", loader_bin);
|
gprintf("Jumping to Entry 0x%08x\n", loader_bin);
|
||||||
SYS_ResetSystem(SYS_SHUTDOWN, 0, 0);
|
SYS_ResetSystem(SYS_SHUTDOWN, 0, 0);
|
||||||
_CPU_ISR_Disable(cookie);
|
__lwp_thread_stopmultitasking(DEVO_Entry);
|
||||||
__exception_closeall();
|
|
||||||
DEVO_Entry();
|
|
||||||
_CPU_ISR_Restore(cookie);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,14 +3,12 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ogc/machine/processor.h>
|
#include <ogc/machine/processor.h>
|
||||||
|
#include <ogc/lwp_threads.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include "homebrew.h"
|
||||||
#include "gecko/gecko.hpp"
|
#include "gecko/gecko.hpp"
|
||||||
|
|
||||||
#define EXECUTE_ADDR ((u8 *)0x92000000)
|
|
||||||
#define BOOTER_ADDR ((u8 *)0x93000000)
|
|
||||||
#define ARGS_ADDR ((u8 *)0x93200000)
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
extern const u8 app_booter_bin[];
|
extern const u8 app_booter_bin[];
|
||||||
@ -19,9 +17,6 @@ extern const u32 app_booter_bin_size;
|
|||||||
extern const u8 stub_bin[];
|
extern const u8 stub_bin[];
|
||||||
extern const u32 stub_bin_size;
|
extern const u32 stub_bin_size;
|
||||||
|
|
||||||
typedef void (*entrypoint) (void);
|
|
||||||
extern "C" { void __exception_closeall(); }
|
|
||||||
|
|
||||||
u32 buffer_size = 0;
|
u32 buffer_size = 0;
|
||||||
|
|
||||||
static vector<string> Arguments;
|
static vector<string> Arguments;
|
||||||
@ -126,17 +121,17 @@ int BootHomebrew()
|
|||||||
memcpy(BOOTER_ADDR, app_booter_bin, app_booter_bin_size);
|
memcpy(BOOTER_ADDR, app_booter_bin, app_booter_bin_size);
|
||||||
DCFlushRange(BOOTER_ADDR, app_booter_bin_size);
|
DCFlushRange(BOOTER_ADDR, app_booter_bin_size);
|
||||||
|
|
||||||
entrypoint exeEntryPoint = (entrypoint)BOOTER_ADDR;
|
|
||||||
u32 cookie;
|
|
||||||
|
|
||||||
memmove(ARGS_ADDR, &args, sizeof(args));
|
memmove(ARGS_ADDR, &args, sizeof(args));
|
||||||
DCFlushRange(ARGS_ADDR, sizeof(args) + args.length);
|
DCFlushRange(ARGS_ADDR, sizeof(args) + args.length);
|
||||||
|
|
||||||
/* cleaning up and load dol */
|
JumpToBooter();
|
||||||
SYS_ResetSystem(SYS_SHUTDOWN, 0, 0);
|
|
||||||
_CPU_ISR_Disable(cookie);
|
|
||||||
__exception_closeall();
|
|
||||||
exeEntryPoint();
|
|
||||||
_CPU_ISR_Restore(cookie);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define BOOTER_ENTRY ((void(*)())BOOTER_ADDR)
|
||||||
|
void JumpToBooter()
|
||||||
|
{
|
||||||
|
/* cleaning up and load bin */
|
||||||
|
SYS_ResetSystem(SYS_SHUTDOWN, 0, 0);
|
||||||
|
__lwp_thread_stopmultitasking(BOOTER_ENTRY);
|
||||||
|
}
|
||||||
|
@ -1,10 +1,16 @@
|
|||||||
|
|
||||||
#ifndef _BOOTHOMEBREW_H_
|
#ifndef _BOOTHOMEBREW_H_
|
||||||
#define _BOOTHOMEBREW_H_
|
#define _BOOTHOMEBREW_H_
|
||||||
|
|
||||||
|
#define EXECUTE_ADDR ((u8 *)0x92000000)
|
||||||
|
#define BOOTER_ADDR ((u8 *)0x93000000)
|
||||||
|
#define ARGS_ADDR ((u8 *)0x93200000)
|
||||||
|
|
||||||
int BootHomebrew();
|
int BootHomebrew();
|
||||||
int SetupARGV(struct __argv * args);
|
int SetupARGV(struct __argv * args);
|
||||||
void AddBootArgument(const char * arg);
|
void AddBootArgument(const char * arg);
|
||||||
int LoadHomebrew(const char * filepath);
|
int LoadHomebrew(const char * filepath);
|
||||||
|
void JumpToBooter();
|
||||||
void writeStub();
|
void writeStub();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -166,6 +166,7 @@ void CMenu::_PluginSettings()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
_hidePluginSettings();
|
_hidePluginSettings();
|
||||||
|
_loadList();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMenu::_initPluginSettingsMenu()
|
void CMenu::_initPluginSettingsMenu()
|
||||||
|
Loading…
Reference in New Issue
Block a user