Hacking 5.4.0 progress

  • Thread starter Thread starter BootsLoader
  • Start date Start date
  • Views Views 477,956
  • Replies Replies 3,092
  • Likes Likes 13
Hi,
I read carefully everything that has been going on and I'm very grateful that a lot of people are working on this great project. I'm using a 5.4.0E Wii U, I tried the Unknown loadiine (from 05SonicBlue) and it seems to work, I mean, I can use the Kernel OS driver for the loadiine, then the loadiine, then the miimaker and I get the menu with the game I loaded with the new SD hierarchy. I checked the compatibility list and put Donkey Kong tropical Freeze and Captain Toad Treasure Tracker on the SD card. But I get an error, it says 'Can't launch game!' and I can't get out of the menu afterwards. I don't have a Smash Bros maybe that's why it says that, I don't know, do you have any idea why?
Loadiine V2 only supports SSB, also make sure you got the right folder structure.
 
@Onion_Knight Are you reinitializing the network using nn_ac.rpl?
Code:
You need to re-intiialize the network.


typedef struct {
unsigned char *data_elf;
unsigned int coreinit_handle;
/* function pointers */
void*(*memset)(void * dest, unsigned int value, unsigned int bytes);

void*(*MEMAllocFromDefaultHeapEx)(unsigned int size, unsigned int align);
void(*MEMFreeToDefaultHeap)(void *ptr);

void*(*curl_easy_init)();
void(*curl_easy_setopt)(void *handle, unsigned int param, void *op);
int(*curl_easy_perform)(void *handle);
void(*curl_easy_getinfo)(void *handle, unsigned int param, void *op);
void (*curl_easy_cleanup)(void *handle);

int(*ACInitialize)();
int(*ACGetStartupId) (unsigned int *id);
int(*ACConnectWithConfigId) (unsigned int id);


} private_data_t;


inside the thread
Code:
unsigned int nn_ac_handle;
OSDynLoad_Acquire("nn_ac.rpl", &nn_ac_handle);

OSDynLoad_FindExport(nn_ac_handle, 0, "ACInitialize", &private_data->ACInitialize);
OSDynLoad_FindExport(nn_ac_handle, 0, "ACGetStartupId", &private_data->ACGetStartupId);
OSDynLoad_FindExport(nn_ac_handle, 0, "ACConnectWithConfigId",&private_data->ACConnectWithConfigId);

private_data->ACInitialize();
int myid;
private_data->ACGetStartupId(&myid);
private_data->ACConnectWithConfigId(myid);
 
I understand. Why not initialize after killing the browser threads in the main thread before creating the curl one though? I'm sure you have tried that already, did it not work?
 
Simply install WAMP
Wow, that worked perfectly straight out the box. Just had to comment out some lines in the .conf so the Wii U didn't get an Apache Access Denied page.

I wish someone had suggested WAMP yesterday before I had tore my hair out in rage from XAMPP.
 
Wow, that worked perfectly straight out the box. Just had to comment out some lines in the .conf so the Wii U didn't get an Apache Access Denied page.

I wish someone had suggested WAMP yesterday before I had tore my hair out in rage from XAMPP.
XAMPP works out of the box for me. Just curious, what was your problem? Anywho,glad WAMP worked instead. If you look for a lighter solution in the future, there are a couple web servers that are a single exe wit just an htdocs folder that will work on lan 99% of the time just fine. Cheers~
 
XAMPP works out of the box for me. Just curious, what was your problem? Anywho,glad WAMP worked instead. If you look for a lighter solution in the future, there are a couple web servers that are a single exe wit just an htdocs folder that will work on lan 99% of the time just fine. Cheers~
I'm assuming it had to do with port issues, even though I opened up everything in the firewall.
I don't suppose you have the names of those lighterweight versions?
 
It does not work.
I don't know if you have use the same method as of the loadiine (v3) for 4.1.0 or 5.0.0 firmware, but here is what i've done :
In "launcher.c", move this piece of code :
Code:
        /* Get functions to send restart signal */
        int(*IM_Open)();
        int(*IM_Close)(int fd);
        int(*IM_SetDeviceState)(int fd, void *mem, int state, int a, int b);
        void*(*OSAllocFromSystem)(unsigned int size, int align);
        void(*OSFreeToSystem)(void *ptr);
        OSDynLoad_FindExport(coreinit_handle, 0, "IM_Open", &IM_Open);
        OSDynLoad_FindExport(coreinit_handle, 0, "IM_Close", &IM_Close);
        OSDynLoad_FindExport(coreinit_handle, 0, "IM_SetDeviceState", &IM_SetDeviceState);
        OSDynLoad_FindExport(coreinit_handle, 0, "OSAllocFromSystem", &OSAllocFromSystem);
        OSDynLoad_FindExport(coreinit_handle, 0, "OSFreeToSystem", &OSFreeToSystem);

        /* Send restart signal to get rid of uneeded threads */
        /* Cause the other browser threads to exit */
        int fd = IM_Open();
        void *mem = OSAllocFromSystem(0x100, 64);
        memset(mem, 0, 0x100);

        /* Sets wanted flag */
        IM_SetDeviceState(fd, mem, 3, 0, 0);
        IM_Close(fd);
        OSFreeToSystem(mem);

        /* Waits for thread exits */
        unsigned int t1 = 0x1FFFFFFF;
        while(t1--) ;
Just before these lines :
Code:
        /* while we are downloading let the user select his IP stuff */
        unsigned int ip_address = 0;
        int result = show_ip_selection_screen(coreinit_handle, &ip_address);
 
Last edited by ptitleray,
  • Like
Reactions: Onion_Knight

Site & Scene News

Popular threads in this forum