Hacking Configurable USB Loader

  • Thread starter Thread starter oggzee
  • Start date Start date
  • Views Views 7,866,826
  • Replies Replies 18,482
  • Likes Likes 22
Dr. Clipper said:
MrRochie said:
blink.gif
I was just wondering if anyone else has seen a problem with freezing when tring to view the fanned box view (the one where I can turn to the back cover) The USB loader either doesn't load the covers or shows a green bar then freezes then sends me back to the Wii menu... Im on 38 Rev14 Version 52 of the loader.... I have tried several 2gb sd cards same problem..... Any Ideas????
wacko.gif
Yes, this problem has been covered several times in the last few pages. You have a corrupted cover, likely coming from Wiiboxart, which we are removing from the default list of URLs again. Take a look at the images in the full subfolder and you'll be able to find the bad ones as they'll look funny. The next version of Cfg will also have a patch that will ignore corrupted covers.

Thanks for the info Dr. Clipper ..... I was getting ready to toss all my 2gb Sd cards thinking they were bad... are there specific art files I should be looking for that are corrupt or is it pretty random...
 
MrRochie said:
Thanks for the info Dr. Clipper ..... I was getting ready to toss all my 2gb Sd cards thinking they were bad... are there specific art files I should be looking for that are corrupt or is it pretty random...
In your case, you already know that only some of the full covers will be corrupted because only the GUI mode fails. Just go take a look at the covers in the full cover directory and you will likely spot the corrupted ones pretty easily. Alternatively, delete them all and redownload after setting the cover_url options to remove wiiboxart (look at my posts for the last few pages as I only just posted the list of options you need very recently).
 
@Dr. Clipper: If you copied marc_max's playlog code (like Hermes did), it's not really correct. There's no need to init/deinit ISFS, and it should be writing proper times to the file instead of just overwriting the title name/id and correcting the checksum. Otherwise it will be using the time that HBC was launched from the system menu as the starting time...
 
tueidj said:
@Dr. Clipper: If you copied marc_max's playlog code (like Hermes did), it's not really correct. There's no need to init/deinit ISFS, and it should be writing proper times to the file instead of just overwriting the title name/id and correcting the checksum. Otherwise it will be using the time that HBC was launched from the system menu as the starting time...
I did use marc_max' code as base, but I modified it so that it uses the time you launch the game as the start time. My version never reads the existing playlog file, it just generates the whole thing and writes it to the specified location. Are you saying I don't need to use the ISFS Init/Deinit on the write access? I left that in there because of marc_max, but I'll try seeing what happens if I remove it. The only real issue with my method is that the write access fails if the file isn't there already, but works fine if it is.

Ah, what the hell. Here's my code for the playlog stuff:
/*
DIARIO.C
This code allows to modify play_rec.dat in order to store the
game time in Wii's log correctly.

by Marc
Thanks to tueidj for giving me some hints on how to do it
smile.gif

Most of the code was taken from here:
http://forum.wiibrew.org/read.php?27,22130
*/
// Changes by Clipper

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

#include "disc.h"
#include "fat.h"
#include "cache.h"
#include "gui.h"
#include "menu.h"
#include "partition.h"
#include "restart.h"
#include "sys.h"
#include "util.h"
#include "utils.h"
#include "video.h"
#include "wbfs.h"
#include "libwbfs/libwbfs.h"
#include "wpad.h"
#include "patchcode.h"
#include "cfg.h"
#include "http.h"
#include "dns.h"
#include "wdvd.h"
#include "music.h"
#include "subsystem.h"
#include "net.h"
#include "fst.h"
#include "wiip.h"
#include "frag.h"
#include "playlog.h"

u64 getWiiTime(void) {
time_t uTime;
uTime = time(NULL);
return TICKS_PER_SECOND * (uTime - SECONDS_TO_2000);
}

int set_playrec(u8 ID[6], u8 title[84]){
s32 ret,playrec_fd;
u32 sum = 0;
u8 i;
u64 stime;
myrec_struct playrec_buf;
//u32 flag;
//s32 err;
//Update channel name and ID


memcpy(playrec_buf.name, title, 84);
memcpy(playrec_buf.title_id, ID, 6);

stime = getWiiTime();

playrec_buf.ticks_boot = stime;
playrec_buf.ticks_last = stime;

memset(playrec_buf.unknown, 0, 18);

//printf("Wanting to play %s (%6s) at time %lld", playrec_buf.name, playrec_buf.title_id, playrec_buf.ticks_boot);
//printf("info\n");

//Calculate and update checksum
for(i=0; i
 
You can call ISFS_CreateFile first to make sure it exists, but make sure ISFS_Initialize has been called first. If you're not going to do that you don't need the ISFS_* functions at all, just use IOS_Open/Write/Close instead. And NEVER call ISFS_Deinitialize until you're about to leave the loader, because you won't be able to reinitialize it properly. Libogc blindly reimplements a lot of functions from the proper wii sdk, several of which are never called by games and contain bugs...

Edit: Not sure what getWiiTime() is doing, I use this:
CODE#include

...
playrec_buf.ticks_boot = playrec_buf.ticks_last = gettime();
 
tueidj said:
You can call ISFS_CreateFile first to make sure it exists, but make sure ISFS_Initialize has been called first. If you're not going to do that you don't need the ISFS_* functions at all, just use IOS_Open/Write/Close instead. And NEVER call ISFS_Deinitialize until you're about to leave the loader, because you won't be able to reinitialize it properly. Libogc blindly reimplements a lot of functions from the proper wii sdk, several of which are never called by games and contain bugs...

Edit: Not sure what getWiiTime() is doing, I use this:
CODE#include

...
playrec_buf.ticks_boot = playrec_buf.ticks_last = gettime();
And that works for you? gettime() for me was returning the time since the console was turned on. The log would always display 23:59 as played time and the numbers were unpredictable. Perhaps this has something to do with the version of devkitpro/libogc used, or as you suggested, it's libogc blindly reimplementing the gettime() function so that it works...

I'll remove the ISFS stuff for the next version and look into ISFS_CreateFile too. That would mean you could still get play log to work while skipping the Wii Menu, as long as you return to the Wii Menu when quitting the game.
 
gettime() should return proper tick values as long as this has been done somewhere earlier:
Code:
settime(secs_to_ticks(time(NULL) - 946684800));
I thought recent libogc included that in the startup code but I might be wrong.
 
tueidj said:
gettime() should return proper tick values as long as this has been done somewhere earlier:
Code:
settime(secs_to_ticks(time(NULL) - 946684800));
I thought recent libogc included that in the startup code but I might be wrong.
We're using a not so recent libogc - 1.7.1. But we do call the above piece of code before launching games, so i guess all we need to do is change the order so that the above is called before writing the playlog.
tueidj: thanks for the tips.
 
tueidj said:
gettime() should return proper tick values as long as this has been done somewhere earlier:
Code:
settime(secs_to_ticks(time(NULL) - 946684800));
I thought recent libogc included that in the startup code but I might be wrong.
Ah, that's actually what my getWiiTime function does. It's listed in my spoiler there. So no need to convert to gettime
smile.gif
.

And here it is again, just to prove it:

CODEu64 getWiiTime(void) {
ÂÂÂÂtime_t uTime;
ÂÂÂÂuTime = time(NULL);
ÂÂÂÂreturn TICKS_PER_SECOND * (uTime - SECONDS_TO_2000);
}
 
Dr. Clipper said:
@Jabe:

The play log actually works, you say... That's weird. What is the exact error that you get? Perhaps try temporarily disabling your hacks and see if any of them affect it? I doubt it, but I could see region free channels or skipping the warning screen having an affect, maybe.

My bad, I was wrong when I get this error the playlog doesn't work.
By the way the error is: ERROR ISFS problem (-22)

I thought it was working because most of the time I launch the game without problem (without error message) and it does save the history log.

But I double checked when I had this error again and it saves history as: "USBLoaderCFG" or "Others" inside message board.

Then I disabled priiloader hacks:
a) Disable check HAXX, DVDX, RZDX verification
b) Block game updates
c) Block online updates
d) Disable anti copy protection
e) Move Disc Channel
f) Replace warning health screen by wii menu

To keep only priiloader as cios70 autoboot menu which shows health screen.

And I also had playlog error!

But when I tried to reproduce the bug, as most of the time the bug doesn't happen so I had to figure out when exactly it happens…

Boot Sequence is as said before:
1. I turn on the Wii
2. BootMii as boot2 is disabled but was installed (I renamed bootmii folder into bootmii_off on SD card to turn it off)
3. Priiloader 0.3b as cios70 shows warning health screen (hacks disabled)
4. I select Narolez forwarder (I don't know the real name, but Narolez is written on it)

5. I press 1 twice to check if any updates are available
6. I press B because I don't want to update


7. I select and boot a game by pressing A
8. Error ISFS problem (-22) happens so I press A again to boot game

And error happens also when I go into other options for example:

5. I press 1 twice to download all missing covers
6. I press B to go back

etc.

If I just launch USB Loader to launch game without going into options no problem, so that's why it only happens sometimes, it just depends on what I'm doing before.

It's not very annoying for those who don't check updates, etc. and just launch games but it is annoying when you do.

Do you have the same bug? Any solution?
 
That's probably the ISFS_Deinitialize bug I mentioned. It deallocates the ISFS heap but doesn't clear the static heap id, so the next ISFS_Initialize() doesn't create a heap and any ISFS_* calls return ISFS_ENOMEM(IPC_ENOMEM).
 
using option ios 222-mload or ios 224-mload results in "wii exception dsi occurred" stack dump, blah, blah etc. ?
Reverting back to ios 249 and usb loader boots up fine again.
Happened after i installed the latest v53a and Hermes v5 (222, 223, 224 and 202).
 
Jabe said:
Do you have the same bug? Any solution?
I agree with tueidj, it's the ISFS thing. Those calls have been removed, so it should work every time for you in 53b. Thanks, tueidj.

blopa said:
someone have the "full channel" of v52? thx
Nobody bothers making full channels any more as they are essentially useless. If you really want one, you'll have to make your own. Just install Cfg on a FAT partition on your SD card or USB drive and use any of the newer forwarders.

QUOTE(bewitched @ Feb 19 2010, 06:08 AM)
using option ios 222-mload or ios 224-mload results in "wii exception dsi occurred" stack dump, blah, blah etc. ?
Reverting back to ios 249 and usb loader boots up fine again.
Happened after i installed the latest v53a and Hermes v5 (222, 223, 224 and 202).
It states it right in the upgrade notes that 223-mload and 224-mload won't work as startup ios. However, 222-mload should work. You're not the first person it has failed to work for, though. Please post the numbers from only the "Stack Dump" section of the DSI (either write them down or take a picture).
 
Does anybody have Splinter Cell : Double Agent working with cfg, Or any usb loader?

Or is this one of those games that just doesn't work?

I have tried all cIOS's(222/3/4 Im on FAT32) and all other options in the loader but no go.

It will load the wiimote strap screen, and get as far as the nintendo logo, but then it just black screens.

Is this an IOS Reloading game??
 
nikeymikey said:
Does anybody have Splinter Cell : Double Agent working with cfg, Or any usb loader?
no
Or is this one of those games that just doesn't work?
yes
I have tried all cIOS's(222/3/4 Im on FAT32) and all other options in the loader but no go.
and it won't work with any other /current) cIOS
It will load the wiimote strap screen, and get as far as the nintendo logo, but then it just black screens.
that's normal
Is this an IOS Reloading game??
it's at least a not-usb-game
 

Site & Scene News

Popular threads in this forum