From e229aca6a529a8231b9553780f90a25586ce44e6 Mon Sep 17 00:00:00 2001 From: "fix94.1" Date: Fri, 7 Sep 2012 20:10:04 +0000 Subject: [PATCH] -WIP moved code to load channels into external game booter --- data/wii_game_booter.dol | Bin 62464 -> 78816 bytes .../wiiflow_game_booter/source/apploader.c | 2 +- resources/wiiflow_game_booter/source/fs.c | 48 ++++ resources/wiiflow_game_booter/source/fs.h | 15 ++ resources/wiiflow_game_booter/source/fst.h | 2 +- resources/wiiflow_game_booter/source/lz77.c | 215 ++++++++++++++++++ resources/wiiflow_game_booter/source/lz77.h | 34 +++ resources/wiiflow_game_booter/source/main.cpp | 156 +++++++++++-- resources/wiiflow_game_booter/source/utils.h | 26 +++ source/channel/channel_launcher.cpp | 89 +------- source/channel/channel_launcher.h | 2 +- source/channel/channels.cpp | 18 -- source/loader/external_booter.cpp | 15 +- source/loader/external_booter.hpp | 2 +- source/menu/menu_game.cpp | 5 +- 15 files changed, 490 insertions(+), 139 deletions(-) create mode 100644 resources/wiiflow_game_booter/source/fs.c create mode 100644 resources/wiiflow_game_booter/source/fs.h create mode 100644 resources/wiiflow_game_booter/source/lz77.c create mode 100644 resources/wiiflow_game_booter/source/lz77.h create mode 100644 resources/wiiflow_game_booter/source/utils.h diff --git a/data/wii_game_booter.dol b/data/wii_game_booter.dol index e88b34917d7fbb0247f3f1e52441cee4845e195a..4818a0aa4e0a7f8e493feb892a6794565305a1aa 100644 GIT binary patch delta 77154 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 @ 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 A;Q#;t diff --git a/resources/wiiflow_game_booter/source/apploader.c b/resources/wiiflow_game_booter/source/apploader.c index 596510c7..1dd10168 100644 --- a/resources/wiiflow_game_booter/source/apploader.c +++ b/resources/wiiflow_game_booter/source/apploader.c @@ -82,7 +82,7 @@ s32 Apploader_Run(entry_point *entry, u8 vidMode, GXRModeObj *vmode, bool vipatc free_wip(); if(hooktype != 0 && hookpatched) - ocarina_do_code(); + ocarina_do_code(0); /* Set entry point from apploader */ *entry = appldr_final(); diff --git a/resources/wiiflow_game_booter/source/fs.c b/resources/wiiflow_game_booter/source/fs.c new file mode 100644 index 00000000..f46eb838 --- /dev/null +++ b/resources/wiiflow_game_booter/source/fs.c @@ -0,0 +1,48 @@ + +#include +#include +#include +#include +#include + +#include "fs.h" +#include "utils.h" + +static fstats stats ATTRIBUTE_ALIGN(32); + +u8 *ISFS_GetFile(u8 *path, u32 *size, s32 length) +{ + *size = 0; + + s32 fd = ISFS_Open((const char *)path, ISFS_OPEN_READ); + u8 *buf = NULL; + + if(fd >= 0) + { + memset(&stats, 0, sizeof(fstats)); + if(ISFS_GetFileStats(fd, &stats) >= 0) + { + if(length <= 0) + length = stats.file_length; + if(length > 0) + buf = (u8 *)memalign(32, ALIGN32(length)); + if(buf) + { + *size = stats.file_length; + if(ISFS_Read(fd, (char*)buf, length) != length) + { + *size = 0; + free(buf); + } + } + } + ISFS_Close(fd); + } + + if(*size > 0) + { + DCFlushRange(buf, *size); + ICInvalidateRange(buf, *size); + } + return buf; +} diff --git a/resources/wiiflow_game_booter/source/fs.h b/resources/wiiflow_game_booter/source/fs.h new file mode 100644 index 00000000..619057dd --- /dev/null +++ b/resources/wiiflow_game_booter/source/fs.h @@ -0,0 +1,15 @@ +#ifndef _FS_H_ +#define _FS_H_ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +u8 *ISFS_GetFile(u8 *path, u32 *size, s32 length); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif + diff --git a/resources/wiiflow_game_booter/source/fst.h b/resources/wiiflow_game_booter/source/fst.h index d440a1df..f534a2a1 100644 --- a/resources/wiiflow_game_booter/source/fst.h +++ b/resources/wiiflow_game_booter/source/fst.h @@ -32,7 +32,7 @@ extern u8 debuggerselect; void app_gameconfig_set(u32 *gameconfig, u32 tempgameconfsize); void ocarina_set_codes(void *list, u8 *listend, u8 *cheats, u32 cheatSize); -int ocarina_do_code(); +int ocarina_do_code(u64 chantitle); #ifdef __cplusplus } diff --git a/resources/wiiflow_game_booter/source/lz77.c b/resources/wiiflow_game_booter/source/lz77.c new file mode 100644 index 00000000..f44230c3 --- /dev/null +++ b/resources/wiiflow_game_booter/source/lz77.c @@ -0,0 +1,215 @@ +/******************************************************************************* + * lz77.c + * + * Copyright (c) 2009 The Lemon Man + * Copyright (c) 2009 Nicksasa + * Copyright (c) 2009 WiiPower + * + * Distributed under the terms of the GNU General Public License (v2) + * See http://www.gnu.org/licenses/gpl-2.0.txt for more info. + * + * Description: + * ----------- + * + ******************************************************************************/ +#include +#include +#include +#include +#include + +#include "lz77.h" +#include "utils.h" + +u32 packBytes(int a, int b, int c, int d) +{ + return (d << 24) | (c << 16) | (b << 8) | (a); +} + +s32 __decompressLZ77_11(u8 *in, u32 inputLen, u8 **output, u32 *outputLen) +{ + int x, y; + + u8 *out = NULL; + + u32 compressedPos = 0x4; + u32 decompressedPos = 0x0; + u32 decompressedSize = 0; + + decompressedSize = packBytes(in[0], in[1], in[2], in[3]) >> 8; + + if (!decompressedSize) + { + decompressedSize = packBytes(in[4], in[5], in[6], in[7]); + compressedPos += 0x4; + } + + //printf("Decompressed size : %i\n", decompressedSize); + + out = malloc(ALIGN32(decompressedSize)); + if (out == NULL) + { + printf("Out of memory\n"); + return -1; + } + + while (compressedPos < inputLen && decompressedPos < decompressedSize) + { + u8 byteFlag = in[compressedPos]; + compressedPos++; + + for (x = 7; x >= 0; x--) + { + if ((byteFlag & (1 << x)) > 0) + { + u8 first = in[compressedPos]; + u8 second = in[compressedPos + 1]; + + u32 pos, copyLen; + + if (first < 0x20) + { + u8 third = in[compressedPos + 2]; + + if (first >= 0x10) + { + u32 fourth = in[compressedPos + 3]; + + pos = (u32)(((third & 0xF) << 8) | fourth) + 1; + copyLen = (u32)((second << 4) | ((first & 0xF) << 12) | (third >> 4)) + 273; + + compressedPos += 4; + } else + { + pos = (u32)(((second & 0xF) << 8) | third) + 1; + copyLen = (u32)(((first & 0xF) << 4) | (second >> 4)) + 17; + + compressedPos += 3; + } + } else + { + pos = (u32)(((first & 0xF) << 8) | second) + 1; + copyLen = (u32)(first >> 4) + 1; + + compressedPos += 2; + } + + for (y = 0; y < (int)copyLen; y++) + { + out[decompressedPos + y] = out[decompressedPos - pos + y]; + } + + decompressedPos += copyLen; + } else + { + out[decompressedPos] = in[compressedPos]; + + decompressedPos++; + compressedPos++; + } + + if (compressedPos >= inputLen || decompressedPos >= decompressedSize) + break; + } + } + *output = out; + *outputLen = decompressedSize; + return 0; +} + +s32 __decompressLZ77_10(u8 *in, u8 **output, u32 *outputLen) +{ + int x, y; + + u8 *out = NULL; + + u32 compressedPos = 0; + u32 decompressedSize = 0x4; + u32 decompressedPos = 0; + + decompressedSize = packBytes(in[0], in[1], in[2], in[3]) >> 8; + + //int compressionType = (packBytes(in[0], in[1], in[2], in[3]) >> 4) & 0xF; + + //printf("Decompressed size : %i\n", decompressedSize); + + out = malloc(ALIGN32(decompressedSize)); + if (out == NULL) + { + printf("Out of memory\n"); + return -1; + } + + compressedPos += 0x4; + + while (decompressedPos < decompressedSize) + { + u8 flag = *(u8*)(in + compressedPos); + compressedPos += 1; + + for (x = 0; x < 8; x++) + { + if (flag & 0x80) + { + u8 first = in[compressedPos]; + u8 second = in[compressedPos + 1]; + + u16 pos = (u16)((((first << 8) + second) & 0xFFF) + 1); + u8 copyLen = (u8)(3 + ((first >> 4) & 0xF)); + + for (y = 0; y < copyLen; y++) + { + out[decompressedPos + y] = out[decompressedPos - pos + (y % pos)]; + } + + compressedPos += 2; + decompressedPos += copyLen; + } else + { + out[decompressedPos] = in[compressedPos]; + compressedPos += 1; + decompressedPos += 1; + } + + flag <<= 1; + + if (decompressedPos >= decompressedSize) + break; + } + } + + *output = out; + *outputLen = decompressedSize; + return 0; +} + +int isLZ77compressed(u8 *buffer) +{ + if ((buffer[0] == LZ77_0x10_FLAG) || (buffer[0] == LZ77_0x11_FLAG)) + { + return 1; + } + + return 0; +} + +int decompressLZ77content(u8 *buffer, u32 length, u8 **output, u32 *outputLen) +{ + int ret; + switch (buffer[0]) + { + case LZ77_0x10_FLAG: + //printf("LZ77 variant 0x10 compressed content...unpacking may take a while...\n"); + ret = __decompressLZ77_10(buffer, output, outputLen); + break; + case LZ77_0x11_FLAG: + //printf("LZ77 variant 0x11 compressed content...unpacking may take a while...\n"); + ret = __decompressLZ77_11(buffer, length, output, outputLen); + break; + default: + //printf("Not compressed ...\n"); + ret = -1; + break; + } + return ret; +} diff --git a/resources/wiiflow_game_booter/source/lz77.h b/resources/wiiflow_game_booter/source/lz77.h new file mode 100644 index 00000000..ebaf0b5e --- /dev/null +++ b/resources/wiiflow_game_booter/source/lz77.h @@ -0,0 +1,34 @@ +/******************************************************************************* + * lz77.h + * + * Copyright (c) 2009 The Lemon Man + * Copyright (c) 2009 Nicksasa + * Copyright (c) 2009 WiiPower + * + * Distributed under the terms of the GNU General Public License (v2) + * See http://www.gnu.org/licenses/gpl-2.0.txt for more info. + * + * Description: + * ----------- + * + ******************************************************************************/ + +#ifndef _LZ77_MODULE +#define _LZ77_MODULE + +#define LZ77_0x10_FLAG 0x10 +#define LZ77_0x11_FLAG 0x11 + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +int isLZ77compressed(u8 *buffer); +int decompressLZ77content(u8 *buffer, u32 length, u8 **output, u32 *outputLen); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif + diff --git a/resources/wiiflow_game_booter/source/main.cpp b/resources/wiiflow_game_booter/source/main.cpp index b847903e..cdd5ed82 100644 --- a/resources/wiiflow_game_booter/source/main.cpp +++ b/resources/wiiflow_game_booter/source/main.cpp @@ -26,7 +26,10 @@ #include "patchcode.h" #include "cios.h" #include "disc.h" +#include "fs.h" #include "fst.h" +#include "lz77.h" +#include "utils.h" #include "videopatch.h" using namespace std; @@ -51,10 +54,7 @@ typedef struct _the_CFG { u32 gameconfsize; u8 BootType; /* needed for channels */ - void *dolchunkoffset[18]; - u32 dolchunksize[18]; - u32 dolchunkcount; - u32 startPoint; + u64 title; } the_CFG; static the_CFG *conf = (the_CFG*)0x90000000; @@ -68,21 +68,146 @@ u32 AppEntrypoint; extern "C" { extern void __exception_closeall(); } +typedef struct _dolheader +{ + u32 section_pos[18]; + u32 section_start[18]; + u32 section_size[18]; + u32 bss_start; + u32 bss_size; + u32 entry_point; + u32 padding[7]; +} __attribute__((packed)) dolheader; + +void *dolchunkoffset[18]; +u32 dolchunksize[18]; +u32 dolchunkcount; + void PatchChannel(u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryString, u8 patchVidModes, int aspectRatio) { - for(u32 i = 0; i < conf->dolchunkcount; i++) + for(u32 i = 0; i < dolchunkcount; i++) { - patchVideoModes(conf->dolchunkoffset[i], conf->dolchunksize[i], vidMode, vmode, patchVidModes); - if(vipatch) vidolpatcher(conf->dolchunkoffset[i], conf->dolchunksize[i]); - if(configbytes[0] != 0xCD) langpatcher(conf->dolchunkoffset[i], conf->dolchunksize[i]); - if(countryString) PatchCountryStrings(conf->dolchunkoffset[i], conf->dolchunksize[i]); - if(aspectRatio != -1) PatchAspectRatio(conf->dolchunkoffset[i], conf->dolchunksize[i], aspectRatio); + patchVideoModes(dolchunkoffset[i], dolchunksize[i], vidMode, vmode, patchVidModes); + if(vipatch) vidolpatcher(dolchunkoffset[i], dolchunksize[i]); + if(configbytes[0] != 0xCD) langpatcher(dolchunkoffset[i], dolchunksize[i]); + if(countryString) PatchCountryStrings(dolchunkoffset[i], dolchunksize[i]); + if(aspectRatio != -1) PatchAspectRatio(dolchunkoffset[i], dolchunksize[i], aspectRatio); if(hooktype != 0) - dogamehooks(conf->dolchunkoffset[i], conf->dolchunksize[i], true); + dogamehooks(dolchunkoffset[i], dolchunksize[i], true); } } +static u8 *GetDol(u32 bootcontent) +{ + char filepath[ISFS_MAXPATH] ATTRIBUTE_ALIGN(32); + sprintf(filepath, "/title/%08x/%08x/content/%08x.app", TITLE_UPPER(conf->title), TITLE_LOWER(conf->title), bootcontent); + + u32 contentSize = 0; + + u8 *data = ISFS_GetFile((u8 *) &filepath, &contentSize, -1); + if(data != NULL && contentSize != 0) + { + if(isLZ77compressed(data)) + { + u8 *decompressed; + u32 size = 0; + if(decompressLZ77content(data, contentSize, &decompressed, &size) < 0) + { + free(data); + return NULL; + } + free(data); + data = decompressed; + } + return data; + } + return NULL; +} + +static bool GetAppNameFromTmd(char *app, bool dol, u32 *bootcontent) +{ + bool ret = false; + + char tmd[ISFS_MAXPATH] ATTRIBUTE_ALIGN(32); + sprintf(tmd, "/title/%08x/%08x/content/title.tmd", TITLE_UPPER(conf->title), TITLE_LOWER(conf->title)); + + u32 size; + u8 *data = ISFS_GetFile((u8 *) &tmd, &size, -1); + if (data == NULL || size < 0x208) + return ret; + + _tmd *tmd_file = (_tmd *)SIGNATURE_PAYLOAD((u32 *)data); + u16 i; + for(i = 0; i < tmd_file->num_contents; ++i) + { + if(tmd_file->contents[i].index == (dol ? tmd_file->boot_index : 0)) + { + *bootcontent = tmd_file->contents[i].cid; + sprintf(app, "/title/%08x/%08x/content/%08x.app", TITLE_UPPER(conf->title), TITLE_LOWER(conf->title), *bootcontent); + ret = true; + break; + } + } + + free(data); + + return ret; +} + +static u32 MoveDol(u8 *buffer) +{ + dolchunkcount = 0; + dolheader *dolfile = (dolheader *)buffer; + + if(dolfile->bss_start) + { + if(!(dolfile->bss_start & 0x80000000)) + dolfile->bss_start |= 0x80000000; + + memset((void *)dolfile->bss_start, 0, dolfile->bss_size); + DCFlushRange((void *)dolfile->bss_start, dolfile->bss_size); + ICInvalidateRange((void *)dolfile->bss_start, dolfile->bss_size); + } + + int i; + for(i = 0; i < 18; i++) + { + if(!dolfile->section_size[i]) + continue; + if(dolfile->section_pos[i] < sizeof(dolheader)) + continue; + if(!(dolfile->section_start[i] & 0x80000000)) + dolfile->section_start[i] |= 0x80000000; + + dolchunkoffset[dolchunkcount] = (void *)dolfile->section_start[i]; + dolchunksize[dolchunkcount] = dolfile->section_size[i]; + + //gprintf("Moving section %u from offset %08x to %08x-%08x...\n", i, dolfile->section_pos[i], dolchunkoffset[dolchunkcount], (u32)dolchunkoffset[dolchunkcount]+dolchunksize[dolchunkcount]); + memmove(dolchunkoffset[dolchunkcount], buffer + dolfile->section_pos[i], dolchunksize[dolchunkcount]); + DCFlushRange(dolchunkoffset[dolchunkcount], dolchunksize[dolchunkcount]); + ICInvalidateRange(dolchunkoffset[dolchunkcount], dolchunksize[dolchunkcount]); + + dolchunkcount++; + } + return dolfile->entry_point; +} + +u32 LoadChannel() +{ + char app[ISFS_MAXPATH] ATTRIBUTE_ALIGN(32); + u32 bootcontent; + u32 entry = 0; + + if(!GetAppNameFromTmd(app, true, &bootcontent)) + return entry; + + u8 *data = GetDol(bootcontent); + entry = MoveDol(data); + free(data); + return entry; +} + int main() { VIDEO_Init(); @@ -118,12 +243,13 @@ int main() } else if(conf->BootType == TYPE_CHANNEL) { - if(hooktype != 0) - ocarina_do_code(); - + ISFS_Initialize(); + AppEntrypoint = LoadChannel(); PatchChannel(conf->vidMode, vmode, conf->vipatch, conf->countryString, conf->patchVidMode, conf->aspectRatio); - AppEntrypoint = conf->startPoint; + if(hooktype != 0) + ocarina_do_code(conf->title); + ISFS_Deinitialize(); } /* Set time */ diff --git a/resources/wiiflow_game_booter/source/utils.h b/resources/wiiflow_game_booter/source/utils.h new file mode 100644 index 00000000..67f2a90f --- /dev/null +++ b/resources/wiiflow_game_booter/source/utils.h @@ -0,0 +1,26 @@ + +#ifndef _UTILS_H_ +#define _UTILS_H_ + +#include + +#define KB_SIZE 1024.0 +#define MB_SIZE 1048576.0 +#define GB_SIZE 1073741824.0 + +#define MAX_FAT_PATH 1024 + +#define round_up(x,n) (-(-(x) & -(n))) + +#define ALIGN(n, x) (((x) + (n - 1)) & ~(n - 1)) +#define ALIGN32(x) (((x) + 31) & ~31) + +#define TITLE_ID(x,y) (((u64)(x) << 32) | (y)) +#define TITLE_UPPER(x) ((u32)((x) >> 32)) +#define TITLE_LOWER(x) ((u32)(x) & 0xFFFFFFFF) + +#define Write8(addr, val) *(u8 *)addr = val; DCFlushRange((void *)addr, sizeof(u8)); +#define Write16(addr, val) *(u16 *)addr = val; DCFlushRange((void *)addr, sizeof(u16)); +#define Write32(addr, val) *(u32 *)addr = val; DCFlushRange((void *)addr, sizeof(u32)); + +#endif diff --git a/source/channel/channel_launcher.cpp b/source/channel/channel_launcher.cpp index f5812fad..004bb2c4 100644 --- a/source/channel/channel_launcher.cpp +++ b/source/channel/channel_launcher.cpp @@ -15,24 +15,7 @@ #include "unzip/lz77.h" #include "types.h" -typedef void (*entrypoint) (void); - -typedef struct _dolheader -{ - u32 section_pos[18]; - u32 section_start[18]; - u32 section_size[18]; - u32 bss_start; - u32 bss_size; - u32 entry_point; - u32 padding[7]; -} __attribute__((packed)) dolheader; - -void *dolchunkoffset[18]; -u32 dolchunksize[18]; -u32 dolchunkcount; - -s32 BootChannel(u32 entry, u64 chantitle, u32 ios, u8 vidMode, bool vipatch, bool countryString, u8 patchVidMode, int aspectRatio) +s32 BootChannel(u64 chantitle, u32 ios, u8 vidMode, bool vipatch, bool countryString, u8 patchVidMode, int aspectRatio) { // IOS Version Check *Real_IOSVersion = ((ios << 16)) | 0xFFFF; @@ -45,49 +28,10 @@ s32 BootChannel(u32 entry, u64 chantitle, u32 ios, u8 vidMode, bool vipatch, boo *Disc_ID = TITLE_LOWER(chantitle); DCFlushRange((void*)Disc_ID, 4); - ExternalBooter_ChannelSetup(dolchunkoffset, dolchunksize, dolchunkcount, entry); WiiFlow_ExternalBooter(vidMode, vipatch, countryString, patchVidMode, aspectRatio, 0, TYPE_CHANNEL); return 0; } -u32 LoadChannel(u8 *buffer) -{ - dolchunkcount = 0; - dolheader *dolfile = (dolheader *)buffer; - - if(dolfile->bss_start) - { - if(!(dolfile->bss_start & 0x80000000)) - dolfile->bss_start |= 0x80000000; - - memset((void *)dolfile->bss_start, 0, dolfile->bss_size); - DCFlushRange((void *)dolfile->bss_start, dolfile->bss_size); - ICInvalidateRange((void *)dolfile->bss_start, dolfile->bss_size); - } - - int i; - for(i = 0; i < 18; i++) - { - if(!dolfile->section_size[i]) - continue; - if(dolfile->section_pos[i] < sizeof(dolheader)) - continue; - if(!(dolfile->section_start[i] & 0x80000000)) - dolfile->section_start[i] |= 0x80000000; - - dolchunkoffset[dolchunkcount] = (void *)dolfile->section_start[i]; - dolchunksize[dolchunkcount] = dolfile->section_size[i]; - - gprintf("Moving section %u from offset %08x to %08x-%08x...\n", i, dolfile->section_pos[i], dolchunkoffset[dolchunkcount], (u32)dolchunkoffset[dolchunkcount]+dolchunksize[dolchunkcount]); - memmove(dolchunkoffset[dolchunkcount], buffer + dolfile->section_pos[i], dolchunksize[dolchunkcount]); - DCFlushRange(dolchunkoffset[dolchunkcount], dolchunksize[dolchunkcount]); - ICInvalidateRange(dolchunkoffset[dolchunkcount], dolchunksize[dolchunkcount]); - - dolchunkcount++; - } - return dolfile->entry_point; -} - bool Identify_GenerateTik(signed_blob **outbuf, u32 *outlen) { signed_blob *buffer = (signed_blob *)memalign(32, ALIGN32(STD_SIGNED_TIK_SIZE)); @@ -177,34 +121,3 @@ bool Identify(u64 titleid) return ret < 0 ? false : true; } - -u8 *GetDol(u64 title, u32 bootcontent) -{ - char filepath[ISFS_MAXPATH] ATTRIBUTE_ALIGN(32); - sprintf(filepath, "/title/%08x/%08x/content/%08x.app", TITLE_UPPER(title), TITLE_LOWER(title), bootcontent); - - gprintf("Loading DOL: %s...", filepath); - u32 contentSize = 0; - u8 *data = ISFS_GetFile((u8 *) &filepath, &contentSize, -1); - if (data != NULL && contentSize != 0) - { - gprintf("Done!\n"); - - if (isLZ77compressed(data)) - { - u8 *decompressed; - u32 size = 0; - if (decompressLZ77content(data, contentSize, &decompressed, &size) < 0) - { - gprintf("Decompression failed\n"); - free(data); - return NULL; - } - free(data); - data = decompressed; - } - return data; - } - gprintf("Failed!\n"); - return NULL; -} diff --git a/source/channel/channel_launcher.h b/source/channel/channel_launcher.h index 446a5d7f..2c110d6f 100644 --- a/source/channel/channel_launcher.h +++ b/source/channel/channel_launcher.h @@ -4,7 +4,7 @@ #include #include -s32 BootChannel(u32 entry, u64 chantitle, u32 ios, u8 vidMode, bool vipatch, bool countryString, u8 patchVidMode, int aspectRatio); +s32 BootChannel(u64 chantitle, u32 ios, u8 vidMode, bool vipatch, bool countryString, u8 patchVidMode, int aspectRatio); u32 LoadChannel(u8 *buffer); void PatchChannel(u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryString, u8 patchVidModes, int aspectRatio); diff --git a/source/channel/channels.cpp b/source/channel/channels.cpp index c0b0f0cb..b687b3c5 100644 --- a/source/channel/channels.cpp +++ b/source/channel/channels.cpp @@ -67,24 +67,6 @@ Channels::~Channels() { } -u32 Channels::Load(u64 title) -{ - char app[ISFS_MAXPATH] ATTRIBUTE_ALIGN(32); - u32 bootcontent; - u32 entry = 0; - - if(!GetAppNameFromTmd(title, app, true, &bootcontent)) - return entry; - - u8 *data = GetDol(title, bootcontent); - - Identify(title); - entry = LoadChannel(data); - free(data); - - return entry; -} - u8 Channels::GetRequestedIOS(u64 title) { u8 IOS = 0; diff --git a/source/loader/external_booter.cpp b/source/loader/external_booter.cpp index f492bd42..f1ccdf10 100644 --- a/source/loader/external_booter.cpp +++ b/source/loader/external_booter.cpp @@ -54,10 +54,7 @@ typedef struct _the_CFG { u32 gameconfsize; u8 BootType; /* needed for channels */ - void *dolchunkoffset[18]; - u32 dolchunksize[18]; - u32 dolchunkcount; - u32 startPoint; + u64 title; } the_CFG; the_CFG normalCFG; @@ -98,15 +95,9 @@ void WiiFlow_ExternalBooter(u8 vidMode, bool vipatch, bool countryString, u8 pat BootHomebrew(); } -void ExternalBooter_ChannelSetup(void *dolchunkoffset[18], u32 dolchunksize[18], u32 dolchunkcount, u32 StartPoint) +void ExternalBooter_ChannelSetup(u64 title) { - for(u8 i = 0; i < 18; i++) - { - normalCFG.dolchunkoffset[i] = dolchunkoffset[i]; - normalCFG.dolchunksize[i] = dolchunksize[i]; - } - normalCFG.dolchunkcount = dolchunkcount; - normalCFG.startPoint = StartPoint; + normalCFG.title = title; } void ShutdownBeforeExit(bool KeepPatches) diff --git a/source/loader/external_booter.hpp b/source/loader/external_booter.hpp index ffac96ed..cbf20b7d 100644 --- a/source/loader/external_booter.hpp +++ b/source/loader/external_booter.hpp @@ -30,7 +30,7 @@ extern u32 hooktype; void WiiFlow_ExternalBooter(u8 vidMode, bool vipatch, bool countryString, u8 patchVidMode, int aspectRatio, u32 returnTo, u8 BootType); -void ExternalBooter_ChannelSetup(void *dolchunkoffset[18], u32 dolchunksize[18], u32 dolchunkcount, u32 StartPoint); +void ExternalBooter_ChannelSetup(u64 title); void ShutdownBeforeExit(bool KeepPatches = false); #endif diff --git a/source/menu/menu_game.cpp b/source/menu/menu_game.cpp index 63484ed9..9ce889b0 100644 --- a/source/menu/menu_game.cpp +++ b/source/menu/menu_game.cpp @@ -1134,14 +1134,15 @@ void CMenu::_launchChannel(dir_discHdr *hdr) } else { - entry = channel.Load(gameTitle); setLanguage(language); SmartBuf cheatFile; u32 cheatSize = 0; if(cheat) _loadFile(cheatFile, cheatSize, m_cheatDir.c_str(), fmt("%s.gct", id.c_str())); ocarina_load_code(cheatFile.get(), cheatSize); - BootChannel(entry, gameTitle, gameIOS, videoMode, vipatch, countryPatch, patchVidMode, aspectRatio); + Identify(gameTitle); + ExternalBooter_ChannelSetup(gameTitle); + BootChannel(gameTitle, gameIOS, videoMode, vipatch, countryPatch, patchVidMode, aspectRatio); } }