mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2025-01-11 19:39:09 +01:00
Just some quick fixes:
- Fixed creation of the playlog - Fixed and changed the way Wiiflow checks for neek2o (uneek2o r92 beta 12+ req) - Fixed IOS reloading for Wii games in neek2o mode - Added a small delay in booting a Wii game in neek2o mode
This commit is contained in:
parent
8cc82998ac
commit
a38e80ee28
@ -42,8 +42,9 @@ bool neek2o(void)
|
|||||||
{
|
{
|
||||||
if(!checked)
|
if(!checked)
|
||||||
{
|
{
|
||||||
u32 num = 0;
|
s32 ESHandle = IOS_Open("/dev/es", 0);
|
||||||
neek = !(ISFS_ReadDir("/sneek", NULL, &num));
|
neek = IOS_Ioctlv(ESHandle, 0xA2, 0, 0, NULL) == 0x666c6f77;
|
||||||
|
IOS_Close(ESHandle);
|
||||||
gprintf("WiiFlow is in %s mode\n", neek ? "neek2o" : "real nand");
|
gprintf("WiiFlow is in %s mode\n", neek ? "neek2o" : "real nand");
|
||||||
checked = true;
|
checked = true;
|
||||||
}
|
}
|
||||||
|
@ -18,24 +18,26 @@
|
|||||||
#define SECONDS_TO_2000 946684800LL
|
#define SECONDS_TO_2000 946684800LL
|
||||||
#define TICKS_PER_SECOND 60750000LL
|
#define TICKS_PER_SECOND 60750000LL
|
||||||
|
|
||||||
typedef struct
|
typedef union
|
||||||
{
|
{
|
||||||
u32 checksum;
|
struct
|
||||||
union
|
|
||||||
{
|
{
|
||||||
u32 data[31];
|
u32 checksum;
|
||||||
struct
|
u16 name[0x28];
|
||||||
{
|
u32 padding1;
|
||||||
u8 name[84];
|
u64 ticks_boot;
|
||||||
u64 ticks_boot;
|
u64 ticks_last;
|
||||||
u64 ticks_last;
|
char title_id[6];
|
||||||
char title_id[6];
|
u16 padding2[9];
|
||||||
char unknown[18];
|
|
||||||
} ATTRIBUTE_PACKED;
|
|
||||||
};
|
};
|
||||||
} playrec_struct;
|
struct
|
||||||
|
{
|
||||||
|
u32 _checksum;
|
||||||
|
u32 data[0x1f];
|
||||||
|
};
|
||||||
|
} __attribute__((packed)) playtime_t;
|
||||||
|
|
||||||
playrec_struct playrec_buf;
|
playtime_t playrec_buf;
|
||||||
|
|
||||||
// Thanks to Dr. Clipper
|
// Thanks to Dr. Clipper
|
||||||
u64 getWiiTime(void)
|
u64 getWiiTime(void)
|
||||||
@ -46,6 +48,7 @@ u64 getWiiTime(void)
|
|||||||
|
|
||||||
int Playlog_Update(const char ID[6], const u8 title[84])
|
int Playlog_Update(const char ID[6], const u8 title[84])
|
||||||
{
|
{
|
||||||
|
gprintf("Update Play log\n");
|
||||||
u32 sum = 0;
|
u32 sum = 0;
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
@ -73,9 +76,9 @@ int Playlog_Update(const char ID[6], const u8 title[84])
|
|||||||
|
|
||||||
//Update channel name and ID
|
//Update channel name and ID
|
||||||
memcpy(playrec_buf.name, title, 84);
|
memcpy(playrec_buf.name, title, 84);
|
||||||
memcpy(playrec_buf.title_id, ID, 6);
|
strcpy(playrec_buf.title_id, ID);
|
||||||
|
|
||||||
memset(playrec_buf.unknown, 0, 18);
|
memset(playrec_buf.padding2, 0, 18);
|
||||||
|
|
||||||
//Calculate and update checksum
|
//Calculate and update checksum
|
||||||
for(i=0; i<31; i++)
|
for(i=0; i<31; i++)
|
||||||
|
@ -625,11 +625,11 @@ void CMenu::_game(bool launch)
|
|||||||
}
|
}
|
||||||
banner = NULL;
|
banner = NULL;
|
||||||
|
|
||||||
if(Playlog_Update(m_cf.getId().c_str(), banner_title) < 0)
|
if(Playlog_Update((char *)hdr->id, banner_title) < 0)
|
||||||
Playlog_Delete();
|
Playlog_Delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
gprintf("Launching game %s\n", m_cf.getId().c_str());
|
gprintf("Launching game %s\n", (char *)hdr->id);
|
||||||
_launch(hdr);
|
_launch(hdr);
|
||||||
|
|
||||||
if(m_exit)
|
if(m_exit)
|
||||||
@ -1156,9 +1156,11 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd)
|
|||||||
if(neek2o())
|
if(neek2o())
|
||||||
{
|
{
|
||||||
int discID = id.c_str()[0] << 24 | id.c_str()[1] << 16 | id.c_str()[2] << 8 | id.c_str()[3];
|
int discID = id.c_str()[0] << 24 | id.c_str()[1] << 16 | id.c_str()[2] << 8 | id.c_str()[3];
|
||||||
WDVD_NEEK_LoadDisc((discID&0xFFFFFFFF), 0x5D1C9EA3);
|
if(WDVD_NEEK_LoadDisc((discID&0xFFFFFFFF), 0x5D1C9EA3) > 0)
|
||||||
dvd = true;
|
{
|
||||||
sleep(1);
|
dvd = true;
|
||||||
|
sleep(3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dvd)
|
if(dvd)
|
||||||
@ -1329,8 +1331,8 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd)
|
|||||||
|
|
||||||
if(rtrn != NULL && strlen(rtrn) == 4)
|
if(rtrn != NULL && strlen(rtrn) == 4)
|
||||||
returnTo = rtrn[0] << 24 | rtrn[1] << 16 | rtrn[2] << 8 | rtrn[3];
|
returnTo = rtrn[0] << 24 | rtrn[1] << 16 | rtrn[2] << 8 | rtrn[3];
|
||||||
int userIOS = m_gcfg2.getInt(id, "ios", 0);
|
int userIOS = m_gcfg2.getInt(id, "ios", 0);
|
||||||
int gameIOS = dvd ? userIOS : GetRequestedGameIOS(hdr);
|
int gameIOS = dvd && !neek2o() ? userIOS : GetRequestedGameIOS(hdr);
|
||||||
|
|
||||||
m_gcfg1.save(true);
|
m_gcfg1.save(true);
|
||||||
m_gcfg2.save(true);
|
m_gcfg2.save(true);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user