Hacking WiiFlow Lite

CokeCookie

Active Member
Newcomer
Joined
Mar 20, 2015
Messages
25
Trophies
0
Age
29
XP
131
Country
Gambia, The
Did you try reload cache? When you add a gc game as iso or ciso then you goto the home menu and reload cache.
Yes that too, I've tried pretty much everything that would make sense.

Hey i used a program called DiskEX as i seen some people had some success with that, there is a batch version out there also so u can convert multiple isos in 1 go. It scrubs all the unneeded stuff from the iso but it still remains a iso. I have yet to try game thst doesnt work using this method :)

Thanks, if the WIT converted isos won't work I'll try that :)
 

Ponyboy

Well-Known Member
Newcomer
Joined
Dec 17, 2016
Messages
67
Trophies
0
Age
24
XP
93
Country
United States
Anyone know how to make covers for games in wiiflow lite? For me, the built in downloader fails to download the covers, so I have a few games with no covers.
 

fledge68

Well-Known Member
OP
Member
Joined
Jan 30, 2012
Messages
2,429
Trophies
2
XP
4,913
Country
United States
Yes that too, I've tried pretty much everything that would make sense.



Thanks, if the WIT converted isos won't work I'll try that :)
it works for me. this is my setup.

gamecube games are on USB in a subfolder of games - like this:

usb:/games/animal crossing/game.iso
usb:/games/mariokart double dash/game.iso
usb:/games/metroid prime/game.iso
etc....

now if i change animal crossing extension from .iso to .iss then run wiiflow lite the cover will still be there but that's because wiiflow lite is using the cached cover list. goto home menu and reload cache and now the cover is gone.

now change animal crossing from .iss to .ciso and run wiiflow lite it's still not there so goto home menu and reload cache and it shows with the rest. of course its not a real ciso so it won't run but this was just to show you that .ciso covers do show up.

maybe your just putting the game.ciso in the usb:/games folder without a subfolder or maybe you forgot to name it game.ciso.

Anyone know how to make covers for games in wiiflow lite? For me, the built in downloader fails to download the covers, so I have a few games with no covers.
make covers or download them manually?

make covers involves scanning the actual cover or making an image 1090x680 with photoshop. but almost all covers should be on gametdb.com

to download goto gametdb.com and search for the games ID or title and download the covers you want to your pc.
now connect your SD or USB device to your pc and copy the covers to these folders. make sure the cover name is the ID plus .png extension.
root:/wiiflow/covers for 2d flat covers
root:/wiiflow/boxcovers for full covers (front back and spine)

put your sd or usb back in wii or wiiu and run wiiflow lite. when you scroll to the cover wiiflow lite should automatically change the blank cover to the one you want.
 
  • Like
Reactions: Ponyboy

CokeCookie

Active Member
Newcomer
Joined
Mar 20, 2015
Messages
25
Trophies
0
Age
29
XP
131
Country
Gambia, The
Well, as I've said in my original post, I've tried just about everything that would make sense (including what you've just said). But just to be a 100% certain I've tried the following again with all my GC games. I'll use Luigi's Mansion as an example:

starting with no GC games at all -> refresh cache -> no games show up (as it should be)
put fullsize iso in sd:/games/luigismansion/game.iso -> refresh cache -> game shows up fine
put DiscEx iso in sd:/games/luigismansion/game.iso -> refresh cache -> game shows up fine
put CISO in sd:/games/luigismansion/game.ciso -> refresh cache -> game won't show up
put CISO in sd:/games/luigismansion/game.iso -> refresh cache -> game won't show up

Nintendont on the other hand finds and plays the games without a problem.
 

GreyWolf

Well-Known Member
Member
Joined
Mar 2, 2015
Messages
5,399
Trophies
0
Age
54
XP
1,515
Country
United States
As far as I know only Nintendont directly supports CISO. I'd recommend not using it. GC games are only a max of 1.4GB so there is no need to clean or compress them.

/games/game title [titleid]/game.iso or disc2.iso

That is all you need. Do not use DiscEx or any other tools on your images.
 

fledge68

Well-Known Member
OP
Member
Joined
Jan 30, 2012
Messages
2,429
Trophies
2
XP
4,913
Country
United States
Well, as I've said in my original post, I've tried just about everything that would make sense (including what you've just said). But just to be a 100% certain I've tried the following again with all my GC games. I'll use Luigi's Mansion as an example:

starting with no GC games at all -> refresh cache -> no games show up (as it should be)
put fullsize iso in sd:/games/luigismansion/game.iso -> refresh cache -> game shows up fine
put DiscEx iso in sd:/games/luigismansion/game.iso -> refresh cache -> game shows up fine
put CISO in sd:/games/luigismansion/game.ciso -> refresh cache -> game won't show up
put CISO in sd:/games/luigismansion/game.iso -> refresh cache -> game won't show up

Nintendont on the other hand finds and plays the games without a problem.
That doesnt make sense. When you refresh the cache all wiiflow does is look thru the games folder looking for files with the extensions iso and ciso. When it finds one its added to the list. So either you have a hidden extension or you have an old revision of wiiflow lite that doesnt have ciso added
 

CokeCookie

Active Member
Newcomer
Joined
Mar 20, 2015
Messages
25
Trophies
0
Age
29
XP
131
Country
Gambia, The
I'm using v4.4.0 r1134 and I guarantee you there's no hidden extensions. I know it doesn't make a whole lot of sense but it is what's happening. I even looked at the source code and yes in menu.cpp/ListGenerator.cpp it sure looks for .iso and .ciso when creating the list for GC, so it's not like I don't believe you. Have you actually tried using a CISO converted game on your end, preferably from an sd card? I mean I haven't looked at the differences between a .iso and a .ciso in detail but maybe the formats are different enough to cause a problem somewhere in Create_GC_List() or AddISO()? At least my latest test makes me believe it has to be something like that since:

fullsize .iso in sd:/games/luigismansion/game.iso -> refresh cache -> game shows up
fullsize .iso in sd:/games/luigismansion/game.ciso (simply renamed) -> refresh cache -> game shows up
CISO in sd:/games/luigismansion/game.ciso -> refresh cache -> won't show up
 

fledge68

Well-Known Member
OP
Member
Joined
Jan 30, 2012
Messages
2,429
Trophies
2
XP
4,913
Country
United States
I'm using v4.4.0 r1134 and I guarantee you there's no hidden extensions. I know it doesn't make a whole lot of sense but it is what's happening. I even looked at the source code and yes in menu.cpp/ListGenerator.cpp it sure looks for .iso and .ciso when creating the list for GC, so it's not like I don't believe you. Have you actually tried using a CISO converted game on your end, preferably from an sd card? I mean I haven't looked at the differences between a .iso and a .ciso in detail but maybe the formats are different enough to cause a problem somewhere in Create_GC_List() or AddISO()? At least my latest test makes me believe it has to be something like that since:

fullsize .iso in sd:/games/luigismansion/game.iso -> refresh cache -> game shows up
fullsize .iso in sd:/games/luigismansion/game.ciso (simply renamed) -> refresh cache -> game shows up
CISO in sd:/games/luigismansion/game.ciso -> refresh cache -> won't show up
Ok so i looked at the code. Based on what you just told me i figure the only problem can be is when the list generator checks header for gc magic. Ciso games must change the magic thus it doesnt match n get added to the list. I will work on it monday. In the mean time does anyone know what tje the magic is of a ciso file?

Edit: just read gerbilsoft ciso info and he says the magic is CISO. So should be easy to fix
 
Last edited by fledge68,

fledge68

Well-Known Member
OP
Member
Joined
Jan 30, 2012
Messages
2,429
Trophies
2
XP
4,913
Country
United States
@CokeCookie ok i got gc ciso games working in wiiflow but having trouble getting the banner to display. using a custom banner works but displaying the default banner in the iso/ciso image isn't going so well. @GerbilSoft or anyone else that might know does a banner get scrambled/lost in a ciso image or is it still there? if still there how do i find it?

i know from your info that the actual gc disc header is at offset 0x8000 and that after the title is FST offset and size.

here's part of wiiflow code that's being used to get the gc banner:

Code:
void GC_Disc::init(const char *path)
{
    u32 hdr_offset = 0x00;
    strncpy(GamePath, path, MAX_FAT_PATH);
    opening_bnr = NULL;
    FSTable = NULL;

    FILE *f = NULL;
    u32 FSTSize = 0;
    if(strstr(GamePath, "boot.bin") != NULL)
    {
        GameType = TYPE_FST;
        if(strchr(GamePath, '/') != NULL) //boot.bin
            *strrchr(GamePath, '/') = '\0';
        if(strchr(GamePath, '/') != NULL) //sys
            *strrchr(GamePath, '/') = '\0';
        char *FstPath = fmt_malloc("%s/sys/fst.bin", GamePath);
        if(FstPath != NULL)
        {
            fsop_GetFileSizeBytes(FstPath, &FSTSize);
            f = fopen(FstPath, "rb");
            MEM2_free(FstPath);
        }
    }
    else
    {
        GameType = TYPE_ISO;
        f = fopen(GamePath, "rb");
        if(f == NULL)
            return;
        u8 *ReadBuffer = (u8*)MEM2_alloc(0x440);
        if(ReadBuffer == NULL)
            return;
        //if ciso
        if(strstr(GamePath, ".ciso") != NULL)
        {
            hdr_offset = 0x8000;
            fseek(f, 0x8000, SEEK_SET);
        }
        fread(ReadBuffer, 1, 0x440, f);
        u32 FSTOffset = *(u32*)(ReadBuffer + 0x424);
        FSTSize = *(u32*)(ReadBuffer + 0x428);
        MEM2_free(ReadBuffer);
        fseek(f, hdr_offset + FSTOffset, SEEK_SET);// add hdr_offset in case its a ciso
    }
    if(f != NULL)
    {
        Read_FST(f, FSTSize);
        fclose(f);
    }
}

void GC_Disc::clear()
{
    if(opening_bnr != NULL)
    {
        MEM2_free(opening_bnr);
        opening_bnr = NULL;
    }
    if(FSTable != NULL)
    {
        MEM2_free(FSTable);
        FSTable = NULL;
    }
}

void GC_Disc::Read_FST(FILE *f, u32 FST_size)
{
    if(f == NULL)
        return;
    FSTable = (u8*)MEM2_alloc(FST_size);
    if(FSTable == NULL)
        return;
    fread(FSTable, 1, FST_size, f);

    FSTEnt = *(u32*)(FSTable + 0x08);
    FSTNameOff = (char*)(FSTable + FSTEnt * 0x0C);
}

u8 *GC_Disc::GetGameCubeBanner()
{
    if(FSTable == NULL || GamePath == NULL)
        return NULL;

    FILE *bnr_fp = NULL;
    u32 BnrSize = 0;

    FST *fst = (FST*)FSTable;
    for(u32 i = 1; i < FSTEnt; ++i)
    {
        if(fst[i].Type) //Folder
            continue;
        else if(strcmp(FSTNameOff + fst[i].NameOffset, "opening.bnr") == 0)
        {
            if(GameType == TYPE_FST)
                bnr_fp = fopen(fmt("%s/root/opening.bnr", GamePath), "rb");
            else
            {
                bnr_fp = fopen(GamePath, "rb");
                if(bnr_fp != NULL)
                    fseek(bnr_fp, fst[i].FileOffset, SEEK_SET);
            }
            BnrSize = fst[i].FileLength;
            break;
        }
    }

    if(bnr_fp != NULL)
    {
        opening_bnr = (u8*)MEM2_alloc(BnrSize);
        if(opening_bnr != NULL && fread(opening_bnr, 1, BnrSize, bnr_fp) != BnrSize)
            MEM2_free(opening_bnr);
        fclose(bnr_fp);
    }
    return opening_bnr;
}
 
Last edited by fledge68,

CokeCookie

Active Member
Newcomer
Joined
Mar 20, 2015
Messages
25
Trophies
0
Age
29
XP
131
Country
Gambia, The
oh wow I've tried to get it working myself over the weekend but didn't have any success.
Could it be that something is still wrong with the FST offset? I've tried taking a look at the source for the Dolphin Emu since it is able to show banners for .ciso files but their code is quite a bit more complex than anything I've ever worked on. Would probably take me like 2 weeks to get anything out of it. Maybe you can use it:

 

fledge68

Well-Known Member
OP
Member
Joined
Jan 30, 2012
Messages
2,429
Trophies
2
XP
4,913
Country
United States
@Cyan @Wiimm @GreyWolf
i compared a iso to a ciso of the same gc game and the FSTable is identical. the FSTable has the offset to the opening.bnr. but in a ciso it clearly no longer points to the opening.bnr. so how do i get the offset of the opening.bnr in a gc ciso?
 

GreyWolf

Well-Known Member
Member
Joined
Mar 2, 2015
Messages
5,399
Trophies
0
Age
54
XP
1,515
Country
United States
I think the CISO header has a map of where the chunks were originally located on the disc and where they are in the compressed image.

Check https://github.com/FIX94/Nintendont/blob/master/kernel/ISO.c

There are probably what appear to be two FSTs like there are on a WBFS image. One is a copy in the header and the other is located in the chunk it belongs to on the real disc.
 
Last edited by GreyWolf,

StrikerMan780

Active Member
Newcomer
Joined
Jun 29, 2009
Messages
32
Trophies
1
Age
33
XP
270
Country
Canada
Question, does this support reading gameconfig.txt files like USB Loader GX? I need it for Kirby's Return to Dreamland since the metafortress protection causes it to hang at specific points in the game. If not, could this support be added?
 

fledge68

Well-Known Member
OP
Member
Joined
Jan 30, 2012
Messages
2,429
Trophies
2
XP
4,913
Country
United States
I think the CISO header has a map of where the chunks were originally located on the disc and where they are in the compressed image.

Check https://github.com/FIX94/Nintendont/blob/master/kernel/ISO.c

There are probably what appear to be two FSTs like there are on a WBFS image. One is a copy in the header and the other is located in the chunk it belongs to on the real disc.
Thanks i checked iso.c and kind of understand it. It basically has init and read function that can read iso as well as ciso. If i read the fstable to get the banner offset and size i can then iso read and it will remap the offset and fill buffer with the banner data. Now to get this to compile with wiiflow lite. .. I have a feeling it wont be easy.
 

fledge68

Well-Known Member
OP
Member
Joined
Jan 30, 2012
Messages
2,429
Trophies
2
XP
4,913
Country
United States
Question, does this support reading gameconfig.txt files like USB Loader GX? I need it for Kirby's Return to Dreamland since the metafortress protection causes it to hang at specific points in the game. If not, could this support be added?
yes it does .... just put gameconfig.txt in dev:/wiiflow/codes folder.

@CokeCookie
here is wiiflow lite with working ciso support. note banners do not show for ciso games unless you use a custom gc banner.
http://www.mediafire.com/file/k2n03s7nkdnbv71/boot.dol
 

StrikerMan780

Active Member
Newcomer
Joined
Jun 29, 2009
Messages
32
Trophies
1
Age
33
XP
270
Country
Canada
yes it does .... just put gameconfig.txt in dev:/wiiflow/codes folder.
Thanks, I appreciate it.

However, I have run into another issue, which I think may be already known: The game (Kirby's Return to Dreamland) hangs during cinematics, when it's run from an SD Card. Hopefully this can be fixed at some point. (This is the NTSC version, if that matters.)
 
Last edited by StrikerMan780,

fledge68

Well-Known Member
OP
Member
Joined
Jan 30, 2012
Messages
2,429
Trophies
2
XP
4,913
Country
United States
Thanks, I appreciate it.

However, I have run into another issue, which I think may be already known: The game (Kirby's Return to Dreamland) hangs during cinematics, when it's run from an SD Card. Hopefully this can be fixed at some point. (This is the NTSC version, if that matters.)
Nothing i can do about that. Try a different sd card. Problems during gameplay are handled by your cIOS. Make sure you have a class 10 sd card.
 

fledge68

Well-Known Member
OP
Member
Joined
Jan 30, 2012
Messages
2,429
Trophies
2
XP
4,913
Country
United States
committed last update patches/changes to sourceforge. so now wiiflow lite is up to revision 1135.

if you are already using the last boot.dol with working ciso support a few posts back then you don't need to upgrade.
 

Nomelas

Well-Known Member
Member
Joined
May 6, 2015
Messages
369
Trophies
0
Age
39
XP
851
Country
Canada
committed last update patches/changes to sourceforge. so now wiiflow lite is up to revision 1135.

if you are already using the last boot.dol with working ciso support a few posts back then you don't need to upgrade.
whats the diff between:
WFL v4.4.0 r1135.rar
&
wfl_r1135_as_wiiflow.rar
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    LeoTCK @ LeoTCK: im going off now...I'll turn off my brain