From 4932949a3a7cb4ed9d2d1b1574842191d5457ce3 Mon Sep 17 00:00:00 2001 From: "fix94.1" Date: Sun, 5 Aug 2012 16:10:32 +0000 Subject: [PATCH] -fixed booting wii games from disc -moved a few debug prints, also added disc id check for wii games playing from a wbfs partition (before it just checked on fat32, ntfs and ext2 if the readed in disc is correctly opened from cIOS) -made ogg lib using MEM2 only (as we did in the previous update with the sound buffers) --- portlibs/lib/libvorbisidec.a | Bin 127184 -> 127848 bytes source/loader/disc.c | 21 +++++++++++++-------- source/loader/frag.c | 13 +++---------- source/loader/frag.h | 2 +- source/loader/wdvd.c | 12 +++++++----- source/menu/menu_game.cpp | 26 +++++++++++++++++--------- 6 files changed, 41 insertions(+), 33 deletions(-) diff --git a/portlibs/lib/libvorbisidec.a b/portlibs/lib/libvorbisidec.a index 074ae7b5526a14be8ce2abe1d8dbdd0c32008afb..5d144e13b6a6e2435ea65b2b90b38bca113098d1 100644 GIT binary patch delta 16668 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 VaeRQzw;Q>`IdeP4eMMi7|39t7A5#DT delta 15972 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 0) inbuf[5] = partition; + if(partition >= 0) + inbuf[5] = partition; } s32 ret = IOS_Ioctl(di_fd, IOCTL_DI_SETWBFSMODE, inbuf, sizeof(inbuf), outbuf, sizeof(outbuf)); - if (ret < 0) return ret; - return (ret == 1) ? 0 : -ret; + if(ret < 0) + return ret; + return(ret == 1) ? 0 : -ret; } s32 WDVD_Read_Disc_BCA(void *buf) diff --git a/source/menu/menu_game.cpp b/source/menu/menu_game.cpp index 0ce3b63c..258ebfca 100644 --- a/source/menu/menu_game.cpp +++ b/source/menu/menu_game.cpp @@ -1185,7 +1185,7 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd) else { /* Read GC disc header */ - struct gc_discHdr *gcHeader = (struct gc_discHdr *)malloc(sizeof(struct gc_discHdr)); + struct gc_discHdr *gcHeader = (struct gc_discHdr *)memalign(32, sizeof(struct gc_discHdr)); Disc_ReadGCHeader(gcHeader); strncpy(hdr->id, (char*)gcHeader->id, 6); free(gcHeader); @@ -1196,7 +1196,7 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd) else { /* Read header */ - struct discHdr *header = (struct discHdr *)malloc(sizeof(struct discHdr)); + struct discHdr *header = (struct discHdr *)memalign(32, sizeof(struct discHdr)); Disc_ReadHeader(header); id = string((const char*)header->id); free(header); @@ -1358,7 +1358,6 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd) } IOSReloadBlock(IOS_GetVersion(), true); } - if(emulate_mode && !neek2o()) { Nand::Instance()->Init(emuPath.c_str(), emuPartition, false); @@ -1370,7 +1369,6 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd) Nand::Instance()->Set_FullMode(true); else Nand::Instance()->Set_FullMode(false); - if(Nand::Instance()->Enable_Emu() < 0) { Nand::Instance()->Disable_Emu(); @@ -1385,21 +1383,23 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd) if(!dvd) { s32 ret = Disc_SetUSB((u8*)id.c_str(), !wbfs_partition); - if (ret < 0) + if(ret < 0) { gprintf("Set USB failed: %d\n", ret); error(wfmt(_fmt("errgame10", L"Set USB failed: %d"), ret)); - if (iosLoaded) Sys_LoadMenu(); + if(iosLoaded) + Sys_LoadMenu(); return; } - - if (Disc_Open(false) < 0) + if(Disc_Open(false) < 0) { error(_t("wbfsoperr2", L"Disc_Open failed")); - if (iosLoaded) Sys_LoadMenu(); + if(iosLoaded) + Sys_LoadMenu(); return; } } + /* Find game partition offset */ u64 offset; s32 ret = Disc_FindPartition(&offset); @@ -1412,6 +1412,14 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd) shadow_mload(); #endif + /* Last check if the Disc ID is correct */ + char discid[32] ATTRIBUTE_ALIGN(32); + memset(discid, 0, sizeof(discid)); + WDVD_UnencryptedRead(discid, 32, 0); + gprintf("WDVD_UnencryptedRead ID: %s (expected: %s)\n", discid, id.c_str()); + if(strncasecmp(id.c_str(), discid, 6) != 0) + return; + RunApploader(offset, videoMode, vipatch, countryPatch, patchVidMode, aspectRatio, returnTo); gprintf("Booting game\n"); Disc_BootPartition();