dimok789 / loadiine_gx2

A WiiU SD Loader with GX2 GUI
GNU General Public License v3.0
287 stars 78 forks source link

Unable to build #177

Open ssorgatem opened 5 years ago

ssorgatem commented 5 years ago

I followed the instructions (used provided portlibs and libogc, etc) and everythin seemed to go well until the very end... when linking it failed with this:

linking ... loadiine_gx2.elf /opt/devkitpro/devkitPPC/lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld: /opt/devkitpro/portlibs/ppc/lib/libvorbisidec.a(info.o): in functiontagcompare': info.c:(.text+0x40): undefined reference to __locale_ctype_ptr' /opt/devkitpro/devkitPPC/lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld: info.c:(.text+0x70): undefined reference tolocale_ctype_ptr' /opt/devkitpro/devkitPPC/lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld: info.c:(.text+0x90): undefined reference to `locale_ctype_ptr' collect2: error: ld returned 1 exit status `

Any ideas? Google wasn't extremely helpful on this one :/

xavave commented 5 years ago

same for me :

linking ... loadiine_gx2.elf
c:/devkitpro/devkitppc/bin/../lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld.exe: C:/devkitpro/portlibs/ppc/lib\libvorbisidec.a(info.o): in function `vorbis_comment_query_count':
info.c:(.text+0xa16): undefined reference to `__ctype_ptr__'
c:/devkitpro/devkitppc/bin/../lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld.exe: info.c:(.text+0xa1e): undefined reference to `__ctype_ptr__'
c:/devkitpro/devkitppc/bin/../lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld.exe: C:/devkitpro/portlibs/ppc/lib\libvorbisidec.a(info.o): in function `vorbis_comment_query':
info.c:(.text+0xbaa): undefined reference to `__ctype_ptr__'
c:/devkitpro/devkitppc/bin/../lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld.exe: info.c:(.text+0xbb2): undefined reference to `__ctype_ptr__'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/home/User/Desktop/testloadiine/testcomp/test4/loadiine_gx2/Makefile:184: /home/User/Desktop/testloadiine/testcomp/test4/loadiine_gx2/loadiine_gx2.elf] Error 1
make: *** [Makefile:152: build] Error 2
piratesephiroth commented 5 years ago

This project is currently irrelevant and therefore dead. I doubt anyone cares about your issues.

ssorgatem commented 5 years ago

I found a solution. You need to build with devkitPPC r29. I successfully built it with this one: https://wii.leseratte10.de/devkitPro/devkitPPC/r29-1%20(2017)/

bog-dan-ro commented 5 years ago

This project is currently irrelevant and therefore dead. I doubt anyone cares about your issues.

Why is irrelevant? Is there any other (better?) alternative?

xavave commented 5 years ago

I found a solution. You need to build with devkitPPC r29. I successfully built it with this one: https://wii.leseratte10.de/devkitPro/devkitPPC/r29-1%20(2017)/

I found the same link yesterday but i was less lucky: still some errors:

     linking ... loadiine_gx2.elf
C:/devkitpro/portlibs/ppc/lib\libvorbisidec.a(info.o): In function `vorbis_comment_query_count':
info.c:(.text+0xa16): undefined reference to `__ctype_ptr__'
info.c:(.text+0xa1e): undefined reference to `__ctype_ptr__'
C:/devkitpro/portlibs/ppc/lib\libvorbisidec.a(info.o): In function `vorbis_comment_query':
info.c:(.text+0xbaa): undefined reference to `__ctype_ptr__'
info.c:(.text+0xbb2): undefined reference to `__ctype_ptr__'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/home/User/Desktop/testloadiine/testcomp/test5/loadiine_gx2/Makefile:184: /home/User/Desktop/testloadiine/testcomp/test5/loadiine_gx2/loadiine_gx2.elf] Error 1
make: *** [Makefile:152: build] Error 2

maybe i missed something , i'll try again later

xavave commented 5 years ago

I found a solution. You need to build with devkitPPC r29. I successfully built it with this one: https://wii.leseratte10.de/devkitPro/devkitPPC/r29-1%20(2017)/

My idea was to add this code (found in https://github.com/billy-acuna/loadiine_gx2/commit/7226a6516aa457fc9244e852a17c68c17ebe633e in the latest loadiine build to make a new forwarder compatible version based on latest loadiine build : https://github.com/dimok789/loadiine_gx2/releases/tag/Loadiine-nightly-2ae7fe4

adding forwarder in loadiine_gx2\src\entry.cpp:

OSGetTitleID() != 0x0005000013374C44 && // forwarder

 if (OSGetTitleID != 0 &&
        OSGetTitleID() != 0x000500101004A200 && // mii maker eur
        OSGetTitleID() != 0x000500101004A100 && // mii maker usa
        OSGetTitleID() != 0x000500101004A000 && // mii maker jpn
    OSGetTitleID() != 0x0005000013374C44 && // forwarder
        OSGetTitleID() != 0x0005000013374842)   // hbl channel

and also in src\kernel\kernel_functions.c:

|| ((strncasecmp("loadiine_gx2.rpx", xmlKernelInfo->rpx_name, FS_MAX_ENTNAME_SIZE) == 0) && (LOADIINE_MODE == LOADIINE_MODE_MII_MAKER))

if(GAME_LAUNCHED &&
       (   ((strncasecmp("ffl_app.rpx", xmlKernelInfo->rpx_name, FS_MAX_ENTNAME_SIZE) == 0) && (LOADIINE_MODE == LOADIINE_MODE_MII_MAKER))
        || ((strncasecmp("homebrew_launcher.rpx", xmlKernelInfo->rpx_name, FS_MAX_ENTNAME_SIZE) == 0) && (LOADIINE_MODE == LOADIINE_MODE_MII_MAKER))
        || ((strncasecmp("loadiine_gx2.rpx", xmlKernelInfo->rpx_name, FS_MAX_ENTNAME_SIZE) == 0) && (LOADIINE_MODE == LOADIINE_MODE_MII_MAKER))
        || ((strncasecmp("cross_f.rpx", xmlKernelInfo->rpx_name, FS_MAX_ENTNAME_SIZE) == 0) && (LOADIINE_MODE == LOADIINE_MODE_SMASH_BROS))
        || ((strncasecmp("app.rpx", xmlKernelInfo->rpx_name, FS_MAX_ENTNAME_SIZE) == 0) && (LOADIINE_MODE == LOADIINE_MODE_KARAOKE))
        || ((strncasecmp("Treasure.rpx", xmlKernelInfo->rpx_name, FS_MAX_ENTNAME_SIZE) == 0) && (LOADIINE_MODE == LOADIINE_MODE_ART_ATELIER))))

if you can build it with this new code ,could you share your new loadiine.elf please ? thx

xavave commented 5 years ago

I finally could compile the elf file by removing in the MAKEFILE some options for code generation I didn't test the .elf file yet

make file line 68:

from:

CFLAGS  :=  -std=gnu11 -mrvl -mcpu=750 -meabi -mhard-float -ffast-math \
            -O3 -Wall -Wextra -Wno-unused-parameter -Wno-strict-aliasing $(INCLUDE)
CXXFLAGS := -std=gnu++11 -mrvl -mcpu=750 -meabi -mhard-float -ffast-math \
            -O3 -Wall -Wextra -Wno-unused-parameter -D_GNU_SOURCE -Wno-strict-aliasing $(INCLUDE)

to

CFLAGS  :=  -O3 -Wall -Wextra -Wno-unused-parameter -Wno-strict-aliasing $(INCLUDE)

CXXFLAGS :=  -O3 -Wall -Wextra -Wno-unused-parameter -D_GNU_SOURCE -Wno-strict-aliasing $(INCLUDE)

C:\loadiine_gx2\loadiine_gx2>make ...... done. ...... done. ...... done. ...... done. ...... done. ...... done. ...... done. ...... done. ...... done. ...... done. make[1]: '/c/loadiine_gx2/loadiine_gx2/loadiine_gx2.elf' is up to date.

xavave commented 5 years ago

I tried with devkitppc r29 (not r29 1) https://wii.leseratte10.de/devkitPro/devkitPPC/r29%20(2017)/

Then I reused makefile from latest build for testing: https://github.com/dimok789/loadiine_gx2/blob/Loadiine-nightly-2ae7fe4/Makefile

and I left it untouched:

#---------------------------------------------------------------------------------
# options for code generation  -std=gnu11 -mrvl -mcpu=750 -meabi -mhard-float -ffast-math \   -std=gnu++11 -mrvl -mcpu=750 -meabi -mhard-float -ffast-math \
#---------------------------------------------------------------------------------
CFLAGS  :=  -std=gnu11 -mrvl -mcpu=750 -meabi -mhard-float -ffast-math \
            -O3 -Wall -Wextra -Wno-unused-parameter -Wno-strict-aliasing $(INCLUDE)
CXXFLAGS := -std=gnu++11 -mrvl -mcpu=750 -meabi -mhard-float -ffast-math \
            -O3 -Wall -Wextra -Wno-unused-parameter -D_GNU_SOURCE -Wno-strict-aliasing $(INCLUDE)
ASFLAGS := -mregnames
LDFLAGS := -nostartfiles -Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,-wrap,valloc,-wrap,_valloc_r,-wrap,_pvalloc_r,--gc-sections

and the .elf generation worked

linking ... loadiine_gx2.elf (loadiine_gx2.elf : 3407 ko)

xavave commented 5 years ago

loadiine_gx2.zip

This project is currently irrelevant and therefore dead. I doubt anyone cares about your issues.

It's not dead : i can now play all wiiu loadiine games copied directly on my fat32 usb SSD with loadiine_gx2 and mocha CFW FAT32 loaded at start with CBHC 1.6 ; my new version of loadiine_gx2 is in attachment (working with loadiine gx2 hbw forwarder) (just replace your sdcard/wiiu/apps/loadiine_gx2/loadiine_gx2.elf with mine) you will need a dual cable for SSD power : https://www.lightinthebox.com/en/p/black-usb-3-0-female-to-dual-usb-male-extra-power-data-y-extension-cable-for-2-5-mobile-hard-disk_p2863534.html

link for loadiine forwarder : https://gbatemp.net/threads/release-loadiine-forwarder-channel.455939/

wiiu mocha loadiine loadiine_usb

jokerServer commented 3 years ago

It's not dead : i can now play all wiiu loadiine games copied directly on my fat32 usb SSD with loadiine_gx2 and mocha CFW FAT32 loaded at start with CBHC 1.6 ; my new version of loadiine_gx2 is in attachment (working with loadiine gx2 hbw forwarder) (just replace your sdcard/wiiu/apps/loadiine_gx2/loadiine_gx2.elf with mine) you will need a dual cable for SSD power : https://www.lightinthebox.com/en/p/black-usb-3-0-female-to-dual-usb-male-extra-power-data-y-extension-cable-for-2-5-mobile-hard-disk_p2863534.html

sorry for the necromancy, but how does loadiine need to be configured to load of the hard drive? it seems logical to modify the GamePath config in sd:/wiiu/apps/loadiine_gx2.cfg, but I'm unable to find any documentation on how to do it, or even that somebody besides @xavave has done it

xavave commented 3 years ago

It's not dead : i can now play all wiiu loadiine games copied directly on my fat32 usb SSD with loadiine_gx2 and mocha CFW FAT32 loaded at start with CBHC 1.6 ; my new version of loadiine_gx2 is in attachment (working with loadiine gx2 hbw forwarder) (just replace your sdcard/wiiu/apps/loadiine_gx2/loadiine_gx2.elf with mine)

you will need a dual cable for SSD power : https://www.lightinthebox.com/en/p/black-usb-3-0-female-to-dual-usb-male-extra-power-data-y-extension-cable-for-2-5-mobile-hard-disk_p2863534.html

sorry for the necromancy, but how does loadiine need to be configured to load of the hard drive? it seems logical to modify the GamePath config in sd:/wiiu/apps/loadiine_gx2.cfg, but I'm unable to find any documentation on how to do it, or even that somebody besides @xavave has done it

Hi It's been a long time indeed. I didn't even remember that I had posted this. Your ssd doesn't load ? Did you use a dual usb cable? It's mandatory. image

xavave commented 3 years ago

It's not dead : i can now play all wiiu loadiine games copied directly on my fat32 usb SSD with loadiine_gx2 and mocha CFW FAT32 loaded at start with CBHC 1.6 ; my new version of loadiine_gx2 is in attachment (working with loadiine gx2 hbw forwarder) (just replace your sdcard/wiiu/apps/loadiine_gx2/loadiine_gx2.elf with mine)

you will need a dual cable for SSD power : https://www.lightinthebox.com/en/p/black-usb-3-0-female-to-dual-usb-male-extra-power-data-y-extension-cable-for-2-5-mobile-hard-disk_p2863534.html

sorry for the necromancy, but how does loadiine need to be configured to load of the hard drive? it seems logical to modify the GamePath config in sd:/wiiu/apps/loadiine_gx2.cfg, but I'm unable to find any documentation on how to do it, or even that somebody besides @xavave has done it

Here is the cfg content on my sd card But I'm not sure that loadiine is responsible for ssd loading. It's more about mocha firmware if I well remember ...? Or it's because I used a custom version of loadiine ? (You can find it in attachement above) image

jokerServer commented 3 years ago

Your ssd doesn't load ? Did you use a dual usb cable? It's mandatory.

yup, I'm using dual usb cable, the disk shows up in the normal wiiU menu and I get prompts to format it, so I assume its working

Here is the cfg content on my sd card

thanks, sadly it just says sd:/ was hoping for something like usb1:/ :D

But I'm not sure that loadiine is responsible for ssd loading. It's more about mocha firmware if I well remember ...? Or it's because I used a custom version of loadiine ? (You can find it in attachement above)

I'm using your build at the moment, but havnt looked into mocha yet. I'm using CBHC at the moment

xavave commented 3 years ago

Your ssd doesn't load ? Did you use a dual usb cable? It's mandatory.

yup, I'm using dual usb cable, the disk shows up in the normal wiiU menu and I get prompts to format it, so I assume its working

Here is the cfg content on my sd card

thanks, sadly it just says sd:/ was hoping for something like usb1:/ :D

But I'm not sure that loadiine is responsible for ssd loading. It's more about mocha firmware if I well remember ...? Or it's because I used a custom version of loadiine ? (You can find it in attachement above)

I'm using your build at the moment, but havnt looked into mocha yet. I'm using CBHC at the moment

https://www.cfwaifu.com/wiiu-mocha/

here is also a download link to my full sd card: http://gofile.me/6Nhoj/vPJyperdf

jokerServer commented 3 years ago

https://www.cfwaifu.com/wiiu-mocha/

what mocha setting would help? I've loaded it onto the WiiU and have run Loadiine from Mocha, but as far as I could tell, it still references only the SD card

xavave commented 3 years ago

https://www.cfwaifu.com/wiiu-mocha/

what mocha setting would help? I've loaded it onto the WiiU and have run Loadiine from Mocha, but as far as I could tell, it still references only the SD card

I've updated my answer to include a link a download the content of my whole sd card. Maybe you can try with it?

jokerServer commented 3 years ago

booted succesfully into mocha with your SD card, though homebrew channel displayed nothing, is loadiine maybe also installed on your hard drive?

edit: with booting using cbhc and loading mocha_fshax I could start ftpiiu, and with that I could confirm that I now have access to a level above of what I could before grafik

edit2: default mocha and mocha_fat32 result in the before mentioned completely empty Homebrew Launcher Screen

jokerServer commented 3 years ago

I got it to work! placing loadiine onto the hard drive gave me access to those and loadiine now references the HDD instead of SD.

With a bit of comparing, it seems like the default mocha.elf seems to be replaced by the mocha_fat32/mocha.elf. So it seems that custom version of mocha plus your custom version of loadiine is needed.

I'm so happy we got this to work! Thanks so much!

xavave commented 3 years ago

I got it to work! placing loadiine onto the hard drive gave me access to those and loadiine now references the HDD instead of SD.

With a bit of comparing, it seems like the default mocha.elf seems to be replaced by the mocha_fat32/mocha.elf. So it seems that custom version of mocha plus your custom version of loadiine is needed.

I'm so happy we got this to work! Thanks so much!

You're welcome :)