Homebrew postLoader4

  • Thread starter Thread starter stfour
  • Start date Start date
  • Views Views 563,485
  • Replies Replies 4,203
  • Likes Likes 16
Cache system working great loading 12k roms takes only 6 secs now :)
however still having same issue with Dosbox!
using
003=1|1|DOSBox Conf|dosbox.dol|//Computers/DOS|Conf|dosbox.png|-conf${device}:/{path}/{name}
should I use
003=1|1|DOSBox Conf|dosbox.dol|//Computers/DOS|Conf|dosbox.png|-conf|{device}:/{path}/{name}

Edit: failed too
given that "-conf|{device}:/{path}/{name}" is the correct argument that works in Wiiflow for conf files
so "|" sould be replaced by "$" in the argument and not vice versa :)

here's a scummvm.ini used for mastershoes scummvm pack
https://www.dropbox.com/sh/cz2iyuko546gaxa/ezMD_pf5sH/Extracted/ploader/plugins/scummvm.ini
 
  • Like
Reactions: stfour
And what is searching for ?:blink:
That's a good question. I've never had any games for it so I've never had a chance to open the scummvm.ini file up and see what's inside. I understand from other people's comments that WiiFlow uses the [header] for each game to name the cover files but I think there's at least another entry under each header that it uses as the title that shows on the screen and ANOTHER entry that it actually passes to the plugin as part of the argument.
 
  • Like
Reactions: stfour
Cache system working great loading 12k roms takes only 6 secs now :)
however still having same issue with Dosbox!
using
003=1|1|DOSBox Conf|dosbox.dol|//Computers/DOS|Conf|dosbox.png|-conf${device}:/{path}/{name}
should I use
003=1|1|DOSBox Conf|dosbox.dol|//Computers/DOS|Conf|dosbox.png|-conf|{device}:/{path}/{name}

Edit: failed too
given that "-conf|{device}:/{path}/{name}" is the correct argument that works in Wiiflow for conf files
so "|" sould be replaced by "$" in the argument and not vice versa :)

here's a scummvm.ini used for mastershoes scummvm pack
https://www.dropbox.com/sh/cz2iyuko546gaxa/ezMD_pf5sH/Extracted/ploader/plugins/scummvm.ini

Right !

Thank you for scummvm.ini. Basically roms for scums must be read from that file.... this is a little problem :lol:
 
here's a scummvm example:
[agi-fanmade]
platform=pc
gameid=agi
description=Get Outta Space Quest (DOS/English)
language=en
path=usb:/ScummVMroms/Get Outta Space Quest
guioptions=sndNoSpeech lang_English

Wiiflow converts Description to game title
and "path" is used as argument for the scummvm dol

so we need to place scummvm.ini in plugins or ploader folder and a way to create a cache file with all the describtions from this ini
and use path as argument on a per game basis

I hope @Fix94 con help us here
 
here's a scummvm example:
[agi-fanmade]
platform=pc
gameid=agi
description=Get Outta Space Quest (DOS/English)
language=en
path=usb:/ScummVMroms/Get Outta Space Quest
guioptions=sndNoSpeech lang_English

Wiiflow converts Description to game title
and "path" is used as argument for the scummvm dol

so we need to place scummvm.ini in plugins or ploader folder and a way to create a cache file with all the describtions from this ini
and use path as argument on a per game basis

I hope @Fix94 con help us here
Hmm, what you COULD do is put a dummy file named as the description (or something similar) with any extension that you make up in the folder mentioned in the INI file and use it's {device}:/{path} as the argument.
 
Okay, a little bit more work on the debugger time stamp (and actually using ticks_to_millisec()), and I've narrowed it down to:

Code:
[0000000000000016904] devices_WakeUSBWrite()
[0000000000000016927] ConfigWrite: usb://POSTLDR.TMP
[0000000000000048788] CoverCache_Start

Adding some more debug lines, and I get this:

Code:
[0000000000000016663] ConfigWrite: usb://POSTLDR.TMP
[0000000000000016686] devices_WakeUSBWrite(): fopen()
[0000000000000016709] devices_WakeUSBWrite(): fwrite()
[0000000000000048485] devices_WakeUSBWrite(): fclose()
[0000000000000048543] devices_WakeUSBWrite(): unlink()
[0000000000000048576] devices_WakeUSBWrite(): Done

So, something about the fwrite() is taking a really long time to function. :/ A little more sleuthing, and the fwrite looks pretty normal ("fwrite(%p, %d, %d, %p)" - > "fwrite(0x80ce1cc0, 32, 1, 0x80f73c4c)"). So, I'd gather it's either (a) a bug in libogc/libfat (but looking through at least libfat, I don't see anything suspect--I had thought it might be a calculating-free-space thing, but I doubt it now), (b) a bug in postloader (which, if I read the 4.1.4 changelog correctly is precisely what this is), or (c) something to do with the HD itself (either physical or perhaps fs corruption).
So, I guess I have to wonder..um..why again the WakeUSBWrite()? :)
 
  • Like
Reactions: MassiveRican
Sorry, I miss your post. I've found that issue with an hdd wd 2.5" of a friend of mine (hope I remember well). The first write will take so loooooong. I've added that function because I prefer a little wait on start instead of any other place. This doesn't happen with any of my drive, so I can't investigate further. ;)
 
Yea, and since it really only started recently, I can only guess at the cause. But as far as I've noticed, it's only a first long write if it's very soon after the ios reload; so, I just commented out the write. I'll probably just end up doing that personally for future releases. :/

Anyways, about the whole per-plugin cover paths, here's what I whipped up:

Code:
--- browserEmu.c.old2013-05-27 19:22:46.026035692 -0400
+++ browserEmu.c2013-05-27 18:56:40.614060769 -0400
@@ -306,9 +306,10 @@
 #define PIN_NAME 2
 #define PIN_DOL 3
 #define PIN_PATH 4
-#define PIN_EXT 5
-#define PIN_ICON 6
-#define PIN_ARGS 7
+#define PIN_COVERPATH 5
+#define PIN_EXT 6
+#define PIN_ICON 7
+#define PIN_ARGS 8
 
 static char *Plugins_Get (int i, int type)
 {
@@ -418,10 +419,19 @@
 
 static void MakeCoverPath (int ai, char *path)
 {
+char *coverpath;
+
 *path = '\0';
 if (!emus[ai].cover) return;
-
-sprintf (path, "%s/%s", vars.coversEmu, emus[ai].cover);
+
+coverpath =Plugins_Get(emus[ai].type, PIN_COVERPATH);
+if (!*coverpath || !strlen(coverpath))
+sprintf (path, "%s/%s", vars.coversEmu, emus[ai].cover);
+else if (coverpath[0] == '/' || coverpath[0] == '\\')
+sprintf (path, "%s/%s", coverpath, emus[ai].cover);
+else
+sprintf (path, "%s/%s/%s", vars.coversEmu, coverpath, emus[ai].cover);
+
 }
 
 static void FeedCoverCache (void)

I haven't actually tested the null/absolute path cases, so I really don't know if they work or not. But, the relative path works rather nicely to avoid the wrong cover being used. :)
 
  • Like
Reactions: MassiveRican
I know I can't load postloader with AHPBROT directly from priiloader due to having the 4.3 wii system menu... but I'd like it to be the first thing I see when I boot. I created the forwarder using WAD, but I still launch that from the Wii system menu (or am I missing something)?

I can load into homebrew channel directly from priiloader and then load postloader and have AHPBROT... is it possible to have system menu or homebrew channel automatically forward me?

Thanks for the help, I've been trying different things all day and thought I'd ask the pros.
 
I know I can't load postloader with AHPBROT directly from priiloader due to having the 4.3 wii system menu... but I'd like it to be the first thing I see when I boot. I created the forwarder using WAD, but I still launch that from the Wii system menu (or am I missing something)?
Your System Menu version has nothing to do with it. You should be able to auto-load postLoader with Priiloader.

I don't think you understand what AHBPROT (i.e. AHB Protection) is either. It's not something you want. I wrote a guide on it, but I'm not sure many people read it.
 
Joostin, he is right. With system menu 4.3 (I've tested only euro versions), priiloader doesn't disable AHBP. My suggestion is to install the forwarder channel and call it directly from priiloader or install latest priibooter_gui in priiloader that can call directly the channel.

Yea, and since it really only started recently, I can only guess at the cause. But as far as I've noticed, it's only a first long write if it's very soon after the ios reload; so, I just commented out the write. I'll probably just end up doing that personally for future releases. :/

Anyways, about the whole per-plugin cover paths, here's what I whipped up:

I haven't actually tested the null/absolute path cases, so I really don't know if they work or not. But, the relative path works rather nicely to avoid the wrong cover being used. :)

Sadly this will not work with texture caching system :(
 
  • Like
Reactions: JoostinOnline
Joostin, he is right. With system menu 4.3 (I've tested only euro versions), priiloader doesn't disable AHBP. My suggestion is to install the forwarder channel and call it directly from priiloader or install latest priibooter_gui in priiloader that can call directly the channel.
What version of Priiloader were you using?
 
I'm on 4.2.... but I've recently "hacked" a couple of wii of friends of mine with modmii and verified the issue. I'm not sure of wich priiloader version modmii download.
 

Site & Scene News

Popular threads in this forum