mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-18 01:09:16 +01:00
*Fixed the clicking problem and some speed issues because of that
This commit is contained in:
parent
604ecb7b79
commit
662266d3fd
@ -2,8 +2,8 @@
|
||||
<app version="1">
|
||||
<name> USB Loader GX</name>
|
||||
<coder>USB Loader GX Team</coder>
|
||||
<version>1.0 r886</version>
|
||||
<release_date>201001070832</release_date>
|
||||
<version>1.0 r887</version>
|
||||
<release_date>201001070923</release_date>
|
||||
<short_description>Loads games from USB-devices</short_description>
|
||||
<long_description>USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times.
|
||||
The interactive GUI is completely controllable with WiiMote, Classic Controller or GC Controller.
|
||||
|
@ -23,6 +23,43 @@
|
||||
int rumbleRequest[4] = {0,0,0,0};
|
||||
GuiTrigger userInput[4];
|
||||
static int rumbleCount[4] = {0,0,0,0};
|
||||
u32 frameCount = 0;
|
||||
extern bool ScreenshotTriggered;
|
||||
|
||||
/****************************************************************************
|
||||
* UpdatePadsCB
|
||||
*
|
||||
* called by postRetraceCallback in InitGCVideo - scans gcpad and wpad
|
||||
***************************************************************************/
|
||||
void UpdatePadsCB ()
|
||||
{
|
||||
frameCount++;
|
||||
WPAD_ScanPads();
|
||||
PAD_ScanPads();
|
||||
|
||||
for (int i=3; i >= 0; i--)
|
||||
{
|
||||
memcpy(&userInput[i].wpad, WPAD_Data(i), sizeof(WPADData));
|
||||
|
||||
userInput[i].chan = i;
|
||||
userInput[i].pad.btns_d = PAD_ButtonsDown(i);
|
||||
userInput[i].pad.btns_u = PAD_ButtonsUp(i);
|
||||
userInput[i].pad.btns_h = PAD_ButtonsHeld(i);
|
||||
userInput[i].pad.stickX = PAD_StickX(i);
|
||||
userInput[i].pad.stickY = PAD_StickY(i);
|
||||
userInput[i].pad.substickX = PAD_SubStickX(i);
|
||||
userInput[i].pad.substickY = PAD_SubStickY(i);
|
||||
userInput[i].pad.triggerL = PAD_TriggerL(i);
|
||||
userInput[i].pad.triggerR = PAD_TriggerR(i);
|
||||
|
||||
if((userInput[i].wpad.btns_d & WPAD_NUNCHUK_BUTTON_Z)
|
||||
|| (userInput[i].wpad.btns_d & WPAD_CLASSIC_BUTTON_ZL)
|
||||
|| (userInput[i].pad.btns_d & PAD_TRIGGER_Z))
|
||||
{
|
||||
ScreenshotTriggered = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* ShutoffRumble
|
||||
|
@ -17,6 +17,7 @@
|
||||
|
||||
extern int rumbleRequest[4];
|
||||
|
||||
void UpdatePadsCB ();
|
||||
void ShutoffRumble();
|
||||
void DoRumble(int i);
|
||||
|
||||
|
@ -121,14 +121,14 @@ static void * UpdateGUI (void *arg) {
|
||||
if (Settings.tooltips == TooltipsOn && THEME.show_tooltip != 0 && mainWindow->GetState() != STATE_DISABLED)
|
||||
mainWindow->DrawTooltip();
|
||||
|
||||
for (int i=3; i >= 0; i--) { // so that player 1's cursor appears on top!
|
||||
for (int i=3; i >= 0; i--)
|
||||
{ // so that player 1's cursor appears on top!
|
||||
if (userInput[i].wpad.ir.valid)
|
||||
Menu_DrawImg(userInput[i].wpad.ir.x-48, userInput[i].wpad.ir.y-48, 200.0,
|
||||
96, 96, pointer[i]->GetImage(), userInput[i].wpad.ir.angle, CFG.widescreen? 0.8 : 1, 1, 255,0,0,0,0,0,0,0,0);
|
||||
if (Settings.rumble == RumbleOn) {
|
||||
if (Settings.rumble == RumbleOn)
|
||||
DoRumble(i);
|
||||
}
|
||||
}
|
||||
|
||||
Menu_Render();
|
||||
|
||||
@ -187,6 +187,7 @@ void InitGUIThreads() {
|
||||
InitProgressThread();
|
||||
InitNetworkThread();
|
||||
InitCheckThread();
|
||||
ResumeCheck();
|
||||
|
||||
if (Settings.autonetwork)
|
||||
ResumeNetworkThread();
|
||||
|
@ -17,6 +17,7 @@ static bool ExitRequested = false;
|
||||
static u8 sdState =0;
|
||||
u8 hddState = 0;
|
||||
u8 checkthreadState = 0;
|
||||
bool ScreenshotTriggered = false;
|
||||
|
||||
extern u8 shutdown;
|
||||
extern u8 reset;
|
||||
@ -146,8 +147,6 @@ static void * CheckDevices (void *arg)
|
||||
sdState = isInserted(bootDevice);
|
||||
while (!ExitRequested)
|
||||
{
|
||||
usleep(100);
|
||||
|
||||
if (checkHalt && !ExitRequested)
|
||||
{
|
||||
LWP_SuspendThread(checkthread);
|
||||
@ -177,14 +176,15 @@ static void * CheckDevices (void *arg)
|
||||
WindowPrompt("2",0,"OK");
|
||||
}
|
||||
|
||||
u32 buttons = ButtonsPressed();
|
||||
if((buttons & WPAD_NUNCHUK_BUTTON_Z) || (buttons & WPAD_CLASSIC_BUTTON_ZL) ||
|
||||
(buttons & PAD_TRIGGER_Z))
|
||||
if(ScreenshotTriggered)
|
||||
{
|
||||
gprintf("\n\tscreenShotBtn clicked");
|
||||
ScreenShot();
|
||||
ScreenshotTriggered = false;
|
||||
gprintf("...It's easy, mmmmmmKay");
|
||||
}
|
||||
|
||||
usleep(20000);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
@ -22,13 +22,13 @@
|
||||
|
||||
#define DEFAULT_FIFO_SIZE 256 * 1024
|
||||
static unsigned int *xfb[2] = { NULL, NULL }; // Double buffered
|
||||
static unsigned int *xfbTxt = NULL;
|
||||
static int whichfb = 0; // Switch
|
||||
static GXRModeObj *vmode; // Menu video mode
|
||||
static unsigned char gp_fifo[DEFAULT_FIFO_SIZE] ATTRIBUTE_ALIGN (32);
|
||||
static Mtx GXmodelView2D;
|
||||
int screenheight;
|
||||
int screenwidth;
|
||||
u32 frameCount = 0;
|
||||
|
||||
extern bool textVideoInit;
|
||||
extern bool geckoinit;
|
||||
@ -36,33 +36,6 @@ extern bool geckoinit;
|
||||
u8 * gameScreenTex = NULL; // a GX texture screen capture of the game
|
||||
u8 * gameScreenTex2 = NULL; // a GX texture screen capture of the game (copy)
|
||||
|
||||
/****************************************************************************
|
||||
* UpdatePadsCB
|
||||
*
|
||||
* called by postRetraceCallback in InitGCVideo - scans gcpad and wpad
|
||||
***************************************************************************/
|
||||
static void
|
||||
UpdatePadsCB () {
|
||||
frameCount++;
|
||||
WPAD_ScanPads();
|
||||
PAD_ScanPads();
|
||||
|
||||
for (int i=3; i >= 0; i--) {
|
||||
memcpy(&userInput[i].wpad, WPAD_Data(i), sizeof(WPADData));
|
||||
|
||||
userInput[i].chan = i;
|
||||
userInput[i].pad.btns_d = PAD_ButtonsDown(i);
|
||||
userInput[i].pad.btns_u = PAD_ButtonsUp(i);
|
||||
userInput[i].pad.btns_h = PAD_ButtonsHeld(i);
|
||||
userInput[i].pad.stickX = PAD_StickX(i);
|
||||
userInput[i].pad.stickY = PAD_StickY(i);
|
||||
userInput[i].pad.substickX = PAD_SubStickX(i);
|
||||
userInput[i].pad.substickY = PAD_SubStickY(i);
|
||||
userInput[i].pad.triggerL = PAD_TriggerL(i);
|
||||
userInput[i].pad.triggerR = PAD_TriggerR(i);
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* StartGX
|
||||
*
|
||||
@ -204,7 +177,6 @@ InitVideo () {
|
||||
|
||||
void InitTextVideo ()
|
||||
{
|
||||
unsigned int *xfb = NULL;
|
||||
gprintf("\nInitTextVideo ()");
|
||||
if (textVideoInit)
|
||||
{
|
||||
@ -219,14 +191,14 @@ void InitTextVideo ()
|
||||
VIDEO_Configure (vmode);
|
||||
|
||||
// Allocate the video buffers
|
||||
xfb = (u32 *) MEM_K0_TO_K1 (SYS_AllocateFramebuffer (vmode));
|
||||
xfbTxt = (u32 *) MEM_K0_TO_K1 (SYS_AllocateFramebuffer (vmode));
|
||||
|
||||
// A console is always useful while debugging
|
||||
console_init (xfb, 20, 64, vmode->fbWidth, vmode->xfbHeight, vmode->fbWidth * 2);
|
||||
console_init (xfbTxt, 20, 64, vmode->fbWidth, vmode->xfbHeight, vmode->fbWidth * 2);
|
||||
|
||||
// Clear framebuffers etc.
|
||||
VIDEO_ClearFrameBuffer (vmode, xfb, COLOR_BLACK);
|
||||
VIDEO_SetNextFramebuffer (xfb);
|
||||
VIDEO_ClearFrameBuffer (vmode, xfbTxt, COLOR_BLACK);
|
||||
VIDEO_SetNextFramebuffer (xfbTxt);
|
||||
|
||||
VIDEO_SetBlack (FALSE);
|
||||
VIDEO_Flush ();
|
||||
|
Loading…
Reference in New Issue
Block a user