Link - Mii Maker & Wii Shop Channel BGM on Homebrew Channel & Loadiine GX2

Discussion in 'Wii U - Homebrew' started by HomeStarRunnerTron, Aug 22, 2019.

  1. HomeStarRunnerTron
    OP

    HomeStarRunnerTron Member

    Newcomer
    1
    Jul 24, 2019
    United States
    EDIT 8/24/2019: In this link, I have the Homebrew Channel with a loop of the Mii Maker song over it, Loadiine GX2 with a loop of the Wii Shop Channel song over it, then a custom ELF of WUP Installer GX2 that CreeperMario so graciously helped me compile-- it has a long 5-minute loop of Steve Reich's Music for 18 Musicians over it!! Perfect installing music, I think.

    https://mega.nz/#F!jhYhgAJJ!lINP9Ap4YHL79xHyP9o91g

    I think it makes everything that much more fun to navigate. : ) These loops never get old for me.
     
    Last edited by HomeStarRunnerTron, Aug 25, 2019
  2. CreeperMario

    CreeperMario GBAtemp Advanced Fan

    Member
    5
    Jun 18, 2016
    Australia
    Adelaide, South Australia
    In order to install something, WUPInstaller has to switch the running title to the Wii U Menu in order to gain access to the install functions. During this state, although the console's title installer is reading from the SD card, WUPInstaller itself cannot access it, and so it falls back to the music included with the app (which is already loaded in RAM).

    If you want to change the music during this step, you will need to retrieve the source code for the app, change the music in the source code folder, recompile the app and use your modified version.
     
    HomeStarRunnerTron likes this.
  3. HomeStarRunnerTron
    OP

    HomeStarRunnerTron Member

    Newcomer
    1
    Jul 24, 2019
    United States
    Ahhh, thank you so much for the explanation. So... I see that the source code is here: https://sourceforge.net/p/wup-installer-gx2/code/HEAD/tree/ ... Is there any good tutorials about how to properly recompile the app afterward? Sorry for the trouble-- it'd mean so much to me. : )

    EDIT: I've installed devkitPro pacman, still trying to figure out exactly what commands to run, hahaha...
    EDIT 2: Okay, so I've gotten libogc & portlibs installed... but still no luck. I get this gobbledygook...

    Code:
    Generating filelist.h for 0 files.
    svnrev.c created at Rev 1
    Application.cpp
    main.cpp
    CFile.cpp
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/CFile.cpp: In member function 'int CFile::fwrite(const char*, ...)':
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/CFile.cpp:185:6: error: 'vasprintf' was not declared in this scope
      if((vasprintf(&tmp, format, va) >= 0) && tmp)
          ^~~~~~~~~
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/CFile.cpp:185:6: note: suggested alternative: 'vasnprintf'
      if((vasprintf(&tmp, format, va) >= 0) && tmp)
          ^~~~~~~~~
          vasnprintf
    make[1]: *** [CFile.o] Error 1
    make: *** [build] Error 2
     
    Last edited by HomeStarRunnerTron, Aug 22, 2019
  4. CreeperMario

    CreeperMario GBAtemp Advanced Fan

    Member
    5
    Jun 18, 2016
    Australia
    Adelaide, South Australia
    I just tried building it myself and I can safely say that you haven't done anything wrong, its just that WUPInstaller GX2 is relatively old code that needs to be changed slightly to work with the newer compiler toolchains devkitPro provide.

    The error that you are receiving states that the standard library function 'vasprintf' couldn't be found, this is because in newer versions of devkitPPC, the function seems to be hidden behind the compile-time definiton '_GNU_SOURCE'.

    In addition to this, there are more errors you may receive later on regarding missing function definitions for bzip2 and ogg-related functions.

    I was able to make it work by opening the Makefile in a plain text editor and making the following changes:

    Underneath the "options for code generation" comment, find the CFLAGS and CXXFLAGS variables and change them to the following:
    Code:
    CFLAGS    :=  -std=gnu11 -D_GNU_SOURCE -mrvl -mcpu=750 -meabi -mhard-float \
                -ffast-math -O3 -Wall -Wextra -Wno-unused-parameter \
                -Wno-strict-aliasing $(INCLUDE)
    CXXFLAGS := -std=gnu++11 -D_GNU_SOURCE -mrvl -mcpu=750 -meabi -mhard-float \
                -ffast-math -O3 -Wall -Wextra -Wno-unused-parameter \
                -Wno-strict-aliasing $(INCLUDE)
    This sets the flag enabling access to the 'vasprintf' function.

    Also look for the LIBS variable shortly undernath and add '-logg -lbz2' to the end, so that it looks like this:
    Code:
    LIBS    := -lgcc -lgd -lpng -lz -lfreetype -lmad -lvorbisidec -logg -lbz2
    This is done to resolve functions for ogg and bzip file reading. With previous versions of devkitPPC, we were able to provide our own portlibs packages (which contain external functions such as image and sound file processing), however since moving to pacman, its easier to just use devkitPro's own portlibs packages, which are synchronised using pacman. However, because these are newer versions, they contain extra dependencies (in this case libogg and libbz2) that weren't previously necessary, so we have to manually add them to WUPInstaller.

    Also make sure that the necessary portlibs packages have been installed: "pacman -S ppc-bzip2 ppc-freetype ppc-glm ppc-libgd ppc-libjpeg-turbo ppc-libmad ppc-libogg ppc-libpng ppc-vorbisidec ppc-zlib"
     
    HomeStarRunnerTron likes this.
  5. HomeStarRunnerTron
    OP

    HomeStarRunnerTron Member

    Newcomer
    1
    Jul 24, 2019
    United States
    Wow, absolutely amazing. Thank you SO much for doing all you have to help me out. I added in your Makefile additions, and the process went MUCH farther, but still ultimately failed. When I tried to install ppc-vorbisidec, it said there wasn't such a thing to download? Everything else SEEMED to be installed, though... Perhaps I'm wrong, though! (When I look for ppc-vorbisidec.a in that folder, though, it's there!) Here's the whole thing...

    Code:
    Generating filelist.h for 0 files.
    
    CFile.cpp
    
    CFolderList.cpp
    
    DirList.cpp
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/DirList.cpp: In member function 'bool DirList::LoadPath(const string&, const char*, u32, u32)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/DirList.cpp:75:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(folderpath.find('/') == std::string::npos)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/DirList.cpp:78:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return InternalLoadPath(folderpath);
    
      ^~~~~~
    
    FreeTypeGX.cpp
    
    GuiButton.cpp
    
    GuiElement.cpp
    
    GuiFrame.cpp
    
    GuiImage.cpp
    
    GuiImageAsync.cpp
    
    GuiImageData.cpp
    
    GuiParticleImage.cpp
    
    GuiSound.cpp
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp: In member function 'bool GuiSound::Load(const char*)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:67:5:warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(voice < 0)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:70:2:note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return true;
    
      ^~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp: In member function 'bool GuiSound::Load(const u8*, s32)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:101:5 warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(voice < 0)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:104:2 note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return true;
    
      ^~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp: In member function 'bool GuiSound::IsPlaying()':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:164:5 warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(v)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:167:2 note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return false;
    
      ^~~~~~
    
    GuiText.cpp
    
    GuiTrigger.cpp
    
    MessageBox.cpp
    
    Scrollbar.cpp
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/Scrollbar.cpp: In member function 'void Scrollbar::OnBoxButtonHold(GuiButton*, const GuiController*, GuiTrigger*)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/Scrollbar.cpp:167:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(EntrieCount == 0)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/Scrollbar.cpp:170:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      if(!controller->data.validPointer)
    
      ^~
    
    BrowserWindow.cpp
    
    HomeImg.cpp
    
    InstallWindow.cpp
    
    MainWindow.cpp
    
    ProgressWindow.cpp
    
    Resources.cpp
    
    BufferCircle.cpp
    
    Mp3Decoder.cpp
    
    OggDecoder.cpp
    
    SoundDecoder.cpp
    
    SoundHandler.cpp
    
    WavDecoder.cpp
    
    AsyncDeleter.cpp
    
    power.cpp
    
    StringTools.cpp
    
    CVideo.cpp
    
    ColorShader.cpp
    
    FXAAShader.cpp
    
    Shader3D.cpp
    
    ShaderFractalColor.cpp
    
    Texture2DShader.cpp
    
    entry.c
    
    retain_vars.c
    
    svnrev.c
    
    ax_functions.c
    
    fs_functions.c
    
    gx2_functions.c
    
    os_functions.c
    
    padscore_functions.c
    
    socket_functions.c
    
    sys_functions.c
    
    vpad_functions.c
    
    fs_utils.c
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/fs_utils.c: In function 'LoadFileToMem':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/fs_utils.c:98:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(size)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/fs_utils.c:101:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return filesize;
    
      ^~~~~~
    
    sd_fat_devoptab.c
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:833:5: warning: initialization of 'int (*)(struct _reent *, void *)' from incompatible pointer type 'int (*)(struct _reent *, int)' [-Wincompatible-pointer-types]
    
        sd_fat_close_r,
    
        ^~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:833:5: note: (near initialization for 'devops_sd_fat.close_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:834:5: warning: initialization of 'ssize_t (*)(struct _reent *, void *, const char *, size_t)' {aka 'int (*)(struct _reent *, void *, const char *, unsigned int)'} from incompatible pointer type 'ssize_t (*)(struct _reent *, int,  const char *, size_t)' {aka 'int (*)(struct _reent *, int,  const char *, unsigned int)'} -Wincompatible-pointer-types]
    
        sd_fat_write_r,
    
        ^~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:834:5: note: (near initialization for 'devops_sd_fat.write_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:835:5: warning: initialization of 'ssize_t (*)(struct _reent *, void *, char *, size_t)' {aka 'int (*)(struct _reent *, void *, char *, unsigned int)'} from incompatible pointer type 'ssize_t (*)(struct _reent *, int,  char *, size_t)' {aka int (*)(struct _reent *, int,  char *, unsigned int)'} [-Wincompatible-pointer-types]
    
        sd_fat_read_r,
    
        ^~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:835:5: note: (near initialization for 'devops_sd_fat.read_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:836:5: warning: initialization of 'off_t (*)(struct _reent *, void *, off_t,  int' {aka 'long long int (*)(struct _reent *, void *, long long int,  int)'} from incompatible pointer type 'off_t (*)(struct _reent *, int,  off_t,  int)' {aka 'long long int (*)(struct _reent *, int,  long long int,  int)'} [-Wincompatible-pointer-types]
    
        sd_fat_seek_r,
    
        ^~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:836:5: note: (near initialization for 'devops_sd_fat.seek_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:837:5: warning: initialization of 'int (*)(struct _reent *, void *, struct stat *' from incompatible pointer type 'int (*)(struct _reent *, int,  struct stat *)' [-Wincompatible-pointer-types]
    
        sd_fat_fstat_r,
    
        ^~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:837:5: note: (near initialization for 'devops_sd_fat.fstat_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:850:5: warning: initialization of 'int (*)(struct _reent *, void *, off_t)' {aka int (*)(struct _reent *, void *, long long int)'} from incompatible pointer type 'int (*)(struct _reent *, int,  off_t)' {aka 'int (*)(struct _reent *, int,  long long int)'} [-Wincompatible-pointer-types]
    
        sd_fat_ftruncate_r,
    
        ^~~~~~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:850:5: note: (near initialization for 'devops_sd_fat.ftruncate_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:851:5: warning: initialization of 'int (*)(struct _reent *, void *)' from incompatible pointer type 'int (*)(struct _reent *, int)' [-Wincompatible-pointer-types]
    
        sd_fat_fsync_r,
    
        ^~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:851:5: note: (near initialization for 'devops_sd_fat.fsync_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:855:1: warning: missing initializer for field 'rmdir_r' of 'devoptab_t' {aka 'const struct <anonymous>'} [-Wmissing-field-initializers]
    
     };
    
     ^
    
    In file included from /opt/devkitpro/devkitPPC/powerpc-eabi/include/sys/dirent.h:12,
    
                    from /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:27:
    
    /opt/devkitpro/devkitPPC/powerpc-eabi/include/sys/iosupport.h:65:8: note: 'rmdir_r' declared here
    
      int (*rmdir_r)(struct _reent *r, const char *name);
    
            ^~~~~~~
    
    exception_handler.c
    
    memory.c
    
    logger.c
    
    choiceCheckedRectangle.png
    
    /bin/sh: bin2s: command not found
    
    choiceSelectedRectangle.png
    
    /bin/sh: bin2s: command not found
    
    choiceUncheckedRectangle.png
    
    /bin/sh: bin2s: command not found
    
    errorIcon.png
    
    /bin/sh: bin2s: command not found
    
    exclamationIcon.png
    
    /bin/sh: bin2s: command not found
    
    home.png
    
    /bin/sh: bin2s: command not found
    
    informationIcon.png
    
    /bin/sh: bin2s: command not found
    
    messageBox.png
    
    /bin/sh: bin2s: command not found
    
    messageBoxButton.png
    
    /bin/sh: bin2s: command not found
    
    messageBoxButtonSelected.png
    
    /bin/sh: bin2s: command not found
    
    minus.png
    
    /bin/sh: bin2s: command not found
    
    player1_point.png
    
    /bin/sh: bin2s: command not found
    
    player2_point.png
    
    /bin/sh: bin2s: command not found
    
    player3_point.png
    
    /bin/sh: bin2s: command not found
    
    player4_point.png
    
    /bin/sh: bin2s: command not found
    
    plus.png
    
    /bin/sh: bin2s: command not found
    
    progressBar.png
    
    /bin/sh: bin2s: command not found
    
    progressWindow.png
    
    /bin/sh: bin2s: command not found
    
    questionIcon.png
    
    /bin/sh: bin2s: command not found
    
    scrollbarButton.png
    
    /bin/sh: bin2s: command not found
    
    scrollbarLine.png
    
    /bin/sh: bin2s: command not found
    
    select_button.png
    
    /bin/sh: bin2s: command not found
    
    splash.png
    
    /bin/sh: bin2s: command not found
    
    titleHeader.png
    
    /bin/sh: bin2s: command not found
    
    validIcon.png
    
    /bin/sh: bin2s: command not found
    
    warningIcon.png
    
    /bin/sh: bin2s: command not found
    
    font.ttf
    
    /bin/sh: bin2s: command not found
    
    bgMusic.ogg
    
    /bin/sh: bin2s: command not found
    
    button_click.mp3
    
    /bin/sh: bin2s: command not found
    
    linking ... wup_installer_gx2.elf
    
    /opt/devkitpro/devkitPPC/bin/../lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld: /opt/devkitpro/portlibs/ppc/lib/libvorbisidec.a(info.o): in function `vorbis_comment_query_count':
    
    info.c:(.text+0xa16): undefined reference to `__ctype_ptr__'
    
    /opt/devkitpro/devkitPPC/bin/../lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld: info.c:(.text+0xa1e): undefined reference to `__ctype_ptr__'
    
    /opt/devkitpro/devkitPPC/bin/../lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld: /opt/devkitpro/portlibs/ppc/lib/libvorbisidec.a(info.o): in function `vorbis_comment_query':
    
    info.c:(.text+0xbaa): undefined reference to `__ctype_ptr__'
    
    /opt/devkitpro/devkitPPC/bin/../lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld: info.c:(.text+0xbb2): undefined reference to `__ctype_ptr__'
    
    collect2: error: ld returned 1 exit status
    
    make[1]: *** [/Users/account/Desktop/wup-installer-gx2-code-r21-trunk/wup_installer_gx2.elf] Error 1
    
    make: *** [build] Error 2
     
    Last edited by HomeStarRunnerTron, Aug 24, 2019
  6. CreeperMario

    CreeperMario GBAtemp Advanced Fan

    Member
    5
    Jun 18, 2016
    Australia
    Adelaide, South Australia
    To resolve the "bin2s: command not found" warning, install devkitPro's general-tools package with "pacman -S general-tools".

    As for the other error (undefined reference to '__ctype_ptr__' in libvorbisidec) I have no idea what's causing that. I can't reproduce this on my machine.

    You mentioned before that the package 'ppc-vorbisidec' doesn't exist, and you are correct - I meant to say 'ppc-libvorbisidec', sorry! But you also mentioned that the file was already there - it might be an outdated version?

    I really don't have a solution I'm 100% confident in, but there are two things you can try that might solve this. Use 'pacman -S ppc-libvorbisidec' to (re-)install libvorbisidec, which will ensure that you are using the same version I am, which seems to work on my end.

    If that doesn't work, something that might help is updating the LIBDIRS variable in the Makefile, it contains the path "$(DEVKITPPC)/lib/gcc/powerpc-eabi/4.8.2", changing it to "$(DEVKITPPC)/lib/gcc/powerpc-eabi/8.3.0" might resolve the issue.

    If not, then I don't know. Best of luck!
     
    HomeStarRunnerTron likes this.
  7. HomeStarRunnerTron
    OP

    HomeStarRunnerTron Member

    Newcomer
    1
    Jul 24, 2019
    United States
    WHOOHOO, okay, final stretch here-- I deleted all my old versions of portlibs stuff & reinstalled everything, including ppc-libvorbisidec (so glad I mentioned that), and it does, in-fact make a .elf. HOWEVER, it's not actually putting in any images or sounds still-- it STILL comes up with a bin2s error, and I have the newest versions of those general-tools installed.

    Here's the very long bit of code--

    Code:
    ./filelist.sh: line 27: gfind: command not found
    
    Generating filelist.h for 0 files.
    
    Application.cpp
    
    main.cpp
    
    CFile.cpp
    
    CFolderList.cpp
    
    DirList.cpp
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/DirList.cpp: In member function 'bool DirList::LoadPath(const string&, const char*, u32, u32)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/DirList.cpp:75:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(folderpath.find('/') == std::string::npos)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/DirList.cpp:78:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return InternalLoadPath(folderpath);
    
      ^~~~~~
    
    FreeTypeGX.cpp
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/FreeTypeGX.cpp: In member function 'void FreeTypeGX::loadGlyphData(FT_Bitmap*, ftgxCharData*)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/FreeTypeGX.cpp:290:15: warning: comparison of integer expressions of different signedness: 'int32_' {aka 'int'} and 'unsigned int' [-Wsign-compare]
    
      for(y = 0; y < bmp->rows; y++)
    
                ~~^~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/FreeTypeGX.cpp:292:16: warning: comparison of integer expressions of different signedness: 'int32_' {aka 'int'} and 'unsigned int' [-Wsign-compare]
    
       for(x = 0; x < bmp->width; x++)
    
                  ~~^~~~~~~~~~~~
    
    GuiButton.cpp
    
    GuiElement.cpp
    
    GuiFrame.cpp
    
    GuiImage.cpp
    
    GuiImageAsync.cpp
    
    GuiImageData.cpp
    
    GuiParticleImage.cpp
    
    GuiSound.cpp
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp: In member function 'bool GuiSound::Load(const char*)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:67:5:warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(voice < 0)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:70:2:note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return true;
    
      ^~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp: In member function 'bool GuiSound::Load(const u8*, s32)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:101:5 warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(voice < 0)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:104:2 note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return true;
    
      ^~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp: In member function 'bool GuiSound::IsPlaying()':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:164:5 warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(v)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:167:2 note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return false;
    
      ^~~~~~
    
    GuiText.cpp
    
    GuiTrigger.cpp
    
    MessageBox.cpp
    
    Scrollbar.cpp
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/Scrollbar.cpp: In member function 'void Scrollbar::OnBoxButtonHold(GuiButton*, const GuiController*, GuiTrigger*)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/Scrollbar.cpp:167:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(EntrieCount == 0)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/Scrollbar.cpp:170:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      if(!controller->data.validPointer)
    
      ^~
    
    BrowserWindow.cpp
    
    HomeImg.cpp
    
    InstallWindow.cpp
    
    MainWindow.cpp
    
    ProgressWindow.cpp
    
    Resources.cpp
    
    BufferCircle.cpp
    
    Mp3Decoder.cpp
    
    OggDecoder.cpp
    
    SoundDecoder.cpp
    
    SoundHandler.cpp
    
    WavDecoder.cpp
    
    AsyncDeleter.cpp
    
    power.cpp
    
    StringTools.cpp
    
    CVideo.cpp
    
    ColorShader.cpp
    
    FXAAShader.cpp
    
    Shader3D.cpp
    
    ShaderFractalColor.cpp
    
    Texture2DShader.cpp
    
    entry.c
    
    retain_vars.c
    
    svnrev.c
    
    ax_functions.c
    
    fs_functions.c
    
    gx2_functions.c
    
    os_functions.c
    
    padscore_functions.c
    
    socket_functions.c
    
    sys_functions.c
    
    vpad_functions.c
    
    fs_utils.c
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/fs_utils.c: In function 'LoadFileToMem':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/fs_utils.c:98:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(size)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/fs_utils.c:101:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return filesize;
    
      ^~~~~~
    
    sd_fat_devoptab.c
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:833:5: warning: initialization of 'int (*)(struct _reent *, void *)' from incompatible pointer type 'int (*)(struct _reent *, int)' [-Wincompatible-pointer-types]
    
        sd_fat_close_r,
    
        ^~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:833:5: note: (near initialization for 'devops_sd_fat.close_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:834:5: warning: initialization of 'ssize_t (*)(struct _reent *, void *, const char *, size_t)' {aka 'int (*)(struct _reent *, void *, const char *, unsigned int)'} from incompatible pointer type 'ssize_t (*)(struct _reent *, int,  const char *, size_t)' {aka 'int (*)(struct _reent *, int,  const char *, unsigned int)'} -Wincompatible-pointer-types]
    
        sd_fat_write_r,
    
        ^~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:834:5: note: (near initialization for 'devops_sd_fat.write_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:835:5: warning: initialization of 'ssize_t (*)(struct _reent *, void *, char *, size_t)' {aka 'int (*)(struct _reent *, void *, char *, unsigned int)'} from incompatible pointer type 'ssize_t (*)(struct _reent *, int,  char *, size_t)' {aka int (*)(struct _reent *, int,  char *, unsigned int)'} [-Wincompatible-pointer-types]
    
        sd_fat_read_r,
    
        ^~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:835:5: note: (near initialization for 'devops_sd_fat.read_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:836:5: warning: initialization of 'off_t (*)(struct _reent *, void *, off_t,  int' {aka 'long long int (*)(struct _reent *, void *, long long int,  int)'} from incompatible pointer type 'off_t (*)(struct _reent *, int,  off_t,  int)' {aka 'long long int (*)(struct _reent *, int,  long long int,  int)'} [-Wincompatible-pointer-types]
    
        sd_fat_seek_r,
    
        ^~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:836:5: note: (near initialization for 'devops_sd_fat.seek_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:837:5: warning: initialization of 'int (*)(struct _reent *, void *, struct stat *' from incompatible pointer type 'int (*)(struct _reent *, int,  struct stat *)' [-Wincompatible-pointer-types]
    
        sd_fat_fstat_r,
    
        ^~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:837:5: note: (near initialization for 'devops_sd_fat.fstat_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:850:5: warning: initialization of 'int (*)(struct _reent *, void *, off_t)' {aka int (*)(struct _reent *, void *, long long int)'} from incompatible pointer type 'int (*)(struct _reent *, int,  off_t)' {aka 'int (*)(struct _reent *, int,  long long int)'} [-Wincompatible-pointer-types]
    
        sd_fat_ftruncate_r,
    
        ^~~~~~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:850:5: note: (near initialization for 'devops_sd_fat.ftruncate_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:851:5: warning: initialization of 'int (*)(struct _reent *, void *)' from incompatible pointer type 'int (*)(struct _reent *, int)' [-Wincompatible-pointer-types]
    
        sd_fat_fsync_r,
    
        ^~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:851:5: note: (near initialization for 'devops_sd_fat.fsync_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:855:1: warning: missing initializer for field 'rmdir_r' of 'devoptab_t' {aka 'const struct <anonymous>'} [-Wmissing-field-initializers]
    
     };
    
     ^
    
    In file included from /opt/devkitpro/devkitPPC/powerpc-eabi/include/sys/dirent.h:12,
    
                    from /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:27:
    
    /opt/devkitpro/devkitPPC/powerpc-eabi/include/sys/iosupport.h:65:8: note: 'rmdir_r' declared here
    
      int (*rmdir_r)(struct _reent *r, const char *name);
    
            ^~~~~~~
    
    exception_handler.c
    
    memory.c
    
    logger.c
    
    choiceCheckedRectangle.png
    
    /bin/sh: bin2s: command not found
    
    choiceSelectedRectangle.png
    
    /bin/sh: bin2s: command not found
    
    choiceUncheckedRectangle.png
    
    /bin/sh: bin2s: command not found
    
    errorIcon.png
    
    /bin/sh: bin2s: command not found
    
    exclamationIcon.png
    
    /bin/sh: bin2s: command not found
    
    home.png
    
    /bin/sh: bin2s: command not found
    
    informationIcon.png
    
    /bin/sh: bin2s: command not found
    
    messageBox.png
    
    /bin/sh: bin2s: command not found
    
    messageBoxButton.png
    
    /bin/sh: bin2s: command not found
    
    messageBoxButtonSelected.png
    
    /bin/sh: bin2s: command not found
    
    minus.png
    
    /bin/sh: bin2s: command not found
    
    player1_point.png
    
    /bin/sh: bin2s: command not found
    
    player2_point.png
    
    /bin/sh: bin2s: command not found
    
    player3_point.png
    
    /bin/sh: bin2s: command not found
    
    player4_point.png
    
    /bin/sh: bin2s: command not found
    
    plus.png
    
    /bin/sh: bin2s: command not found
    
    progressBar.png
    
    /bin/sh: bin2s: command not found
    
    progressWindow.png
    
    /bin/sh: bin2s: command not found
    
    questionIcon.png
    
    /bin/sh: bin2s: command not found
    
    scrollbarButton.png
    
    /bin/sh: bin2s: command not found
    
    scrollbarLine.png
    
    /bin/sh: bin2s: command not found
    
    select_button.png
    
    /bin/sh: bin2s: command not found
    
    splash.png
    
    /bin/sh: bin2s: command not found
    
    titleHeader.png
    
    /bin/sh: bin2s: command not found
    
    validIcon.png
    
    /bin/sh: bin2s: command not found
    
    warningIcon.png
    
    /bin/sh: bin2s: command not found
    
    font.ttf
    
    /bin/sh: bin2s: command not found
    
    bgMusic.ogg
    
    /bin/sh: bin2s: command not found
    
    button_click.mp3
    
    /bin/sh: bin2s: command not found
    
    linking ... wup_installer_gx2.elf
    
    accounts-MacBook-Pro:wup-installer-gx2-code-r21-trunk account$ sudo pacman -S general-tools
    
    Password:
    
    sudo: pacman: command not found
    
    accounts-MacBook-Pro:wup-installer-gx2-code-r21-trunk account$ sudo dkp-pacman -S general-tools
    
    warning: general-tools-1.0.2-3 is up to date -- reinstalling
    
    resolving dependencies...
    
    looking for conflicting packages...
    
    
    Packages (1) general-tools-1.0.2-3
    
    
    Total Installed Size:  0.10 MiB
    
    Net Upgrade Size:      0.00 MiB
    
    
    :: Proceed with installation? [Y/n] Y
    
    (1/1) checking package integrity                         [##############################] 100%
    
    (1/1) loading package files                              [##############################] 100%
    
    (1/1) checking for file conflicts                        [##############################] 100%
    
    (1/1) checking available disk space                      [##############################] 100%
    
    :: Processing package changes...
    
    (1/1) reinstalling general-tools                         [##############################] 100%
    
    accounts-MacBook-Pro:wup-installer-gx2-code-r21-trunk account$ sudo dkp-pacman -S general-tools
    
    warning: general-tools-1.0.2-3 is up to date -- reinstalling
    
    resolving dependencies...
    
    looking for conflicting packages...
    
    
    Packages (1) general-tools-1.0.2-3
    
    
    Total Installed Size:  0.10 MiB
    
    Net Upgrade Size:      0.00 MiB
    
    
    :: Proceed with installation? [Y/n] Y
    
    (1/1) checking package integrity                         [##############################] 100%
    
    (1/1) loading package files                              [##############################] 100%
    
    (1/1) checking for file conflicts                        [##############################] 100%
    
    (1/1) checking available disk space                      [##############################] 100%
    
    warning: could not get file information for opt/devkitpro/tools/
    
    warning: could not get file information for opt/devkitpro/tools/bin/
    
    warning: could not get file information for opt/devkitpro/tools/bin/bin2s
    
    warning: could not get file information for opt/devkitpro/tools/bin/bmp2bin
    
    warning: could not get file information for opt/devkitpro/tools/bin/padbin
    
    warning: could not get file information for opt/devkitpro/tools/bin/raw2c
    
    :: Processing package changes...
    
    (1/1) reinstalling general-tools                         [##############################] 100%
    
    accounts-MacBook-Pro:wup-installer-gx2-code-r21-trunk account$ make
    
    ./filelist.sh: line 27: gfind: command not found
    
    Generating filelist.h for 0 files.
    
    Application.cpp
    
    main.cpp
    
    CFile.cpp
    
    CFolderList.cpp
    
    DirList.cpp
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/DirList.cpp: In member function 'bool DirList::LoadPath(const string&, const char*, u32, u32)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/DirList.cpp:75:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(folderpath.find('/') == std::string::npos)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/DirList.cpp:78:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return InternalLoadPath(folderpath);
    
      ^~~~~~
    
    FreeTypeGX.cpp
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/FreeTypeGX.cpp: In member function 'void FreeTypeGX::loadGlyphData(FT_Bitmap*, ftgxCharData*)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/FreeTypeGX.cpp:290:15: warning: comparison of integer expressions of different signedness: 'int32_t' {aka 'int'} and 'unsigned int' [-Wsign-compare]
    
      for(y = 0; y < bmp->rows; y++)
    
                ~~^~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/FreeTypeGX.cpp:292:16: warning: comparison of integer expressions of different signedness: 'int32_t' {aka 'int'} and 'unsigned int' [-Wsign-compare]
    
       for(x = 0; x < bmp->width; x++)
    
                  ~~^~~~~~~~~~~~
    
    GuiButton.cpp
    
    GuiElement.cpp
    
    GuiFrame.cpp
    
    GuiImage.cpp
    
    GuiImageAsync.cpp
    
    GuiImageData.cpp
    
    GuiParticleImage.cpp
    
    GuiSound.cpp
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp: In member function 'bool GuiSound::Load(const char*)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:67:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(voice < 0)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:70:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return true;
    
      ^~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp: In member function 'bool GuiSound::Load(const u8*, s32)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:101:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(voice < 0)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:104:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return true;
    
      ^~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp: In member function 'bool GuiSound::IsPlaying()':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:164:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(v)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/GuiSound.cpp:167:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return false;
    
      ^~~~~~
    
    GuiText.cpp
    
    GuiTrigger.cpp
    
    MessageBox.cpp
    
    Scrollbar.cpp
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/Scrollbar.cpp: In member function 'void Scrollbar::OnBoxButtonHold(GuiButton*, const GuiController*, GuiTrigger*)':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/Scrollbar.cpp:167:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
    
        if(EntrieCount == 0)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/gui/Scrollbar.cpp:170:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      if(!controller->data.validPointer)
    
      ^~
    
    BrowserWindow.cpp
    
    HomeImg.cpp
    
    InstallWindow.cpp
    
    MainWindow.cpp
    
    ProgressWindow.cpp
    
    Resources.cpp
    
    BufferCircle.cpp
    
    Mp3Decoder.cpp
    
    OggDecoder.cpp
    
    SoundDecoder.cpp
    
    SoundHandler.cpp
    
    WavDecoder.cpp
    
    AsyncDeleter.cpp
    
    power.cpp
    
    StringTools.cpp
    
    CVideo.cpp
    
    ColorShader.cpp
    
    FXAAShader.cpp
    
    Shader3D.cpp
    
    ShaderFractalColor.cpp
    
    Texture2DShader.cpp
    
    entry.c
    
    retain_vars.c
    
    svnrev.c
    
    ax_functions.c
    
    fs_functions.c
    
    gx2_functions.c
    
    os_functions.c
    
    padscore_functions.c
    
    socket_functions.c
    
    sys_functions.c
    
    vpad_functions.c
    
    fs_utils.c
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/fs_utils.c: In function 'LoadFileToMem':
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/fs_utils.c:98:5: warning: this 'i' clause does not guard... [-Wmisleading-indentation]
    
        if(size)
    
        ^~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/fs_utils.c:101:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    
      return filesize;
    
      ^~~~~~
    
    sd_fat_devoptab.c
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:833:5: warning:initialization of 'int (*)(struct _reent *, void *)' from incompatible pointer type 'int (*)(struct _reent *, int)' [-Wincompatible-pointer-types]
    
        sd_fat_close_r,
    
        ^~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:833:5: note: (near initialization for 'devops_sd_fat.close_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:834:5: warning:initialization of 'ssize_t (*)(struct _reent *, void *, const char *, size_t)' {aka 'int (*)(struct _reent *, void *, const char *, unsigned int)'} from incompatible pointer type 'ssize_t (*)(struct _reent *, int,  const char *, size_t)' {aka 'int (*)(struct _reent *, int,  const char *, unsigned int)'} [-Wincompatible-pointer-types]
    
        sd_fat_write_r,
    
        ^~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:834:5: note: (near initialization for 'devops_sd_fat.write_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:835:5: warning:initialization of 'ssize_t (*)(struct _reent *, void *, char *, size_t)' {aka 'int (*)(struct _reent *, void *, char *, unsigned int)'} from incompatible pointer type 'ssize_t (*)(struct _reent *, int,  char *, size_t)' {aka 'int (*)(struct _reent *, int,  char *, unsigned int)'} -Wincompatible-pointer-types]
    
        sd_fat_read_r,
    
        ^~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:835:5: note: (near initialization for 'devops_sd_fat.read_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:836:5: warning:initialization of 'off_t (*)(struct _reent *, void *, off_t,  int)' {aka 'long long int (*)(struct _reent *, void *, long long int,  int)'} from incompatible pointer type 'off_t (*)(struct _reent *, int,  off_t,  int)' {aka 'long long int (*)(struct _reent *, int,  long long int,  int)'} [-Wincompatible-pointer-types]
    
        sd_fat_seek_r,
    
        ^~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:836:5: note: (near initialization for 'devops_sd_fat.seek_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:837:5: warning:initialization of 'int (*)(struct _reent *, void *, struct stat *)' from incompatible pointer type 'int (*)(struct _reent *, int,  struct stat *)' [-Wincompatible-pointer-types]
    
        sd_fat_fstat_r,
    
        ^~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:837:5: note: (near initialization for 'devops_sd_fat.fstat_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:850:5: warning:initialization of 'int (*)(struct _reent *, void *, off_t)' {aka 'int (*)(struct _reent *, void *, long long int)'} from incompatible pointer type 'int (*)(struct _reent *, int,  off_t)' {aka 'int (*)(struct _reent *, int,  long long int)'} [-Wincompatible-pointer-types]
    
        sd_fat_ftruncate_r,
    
        ^~~~~~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:850:5: note: (near initialization for 'devops_sd_fat.ftruncate_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:851:5: warning:initialization of 'int (*)(struct _reent *, void *)' from incompatible pointer type 'int (*)(struct _reent *, int)' [-Wincompatible-pointer-types]
    
        sd_fat_fsync_r,
    
        ^~~~~~~~~~~~~~
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:851:5: note: (near initialization for 'devops_sd_fat.fsync_r')
    
    /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:855:1: warning:missing initializer for field 'rmdir_r' of 'devoptab_t' {aka 'const struct <anonymous>'} [-Wmissing-field-initializers]
    
     };
    
     ^
    
    In file included from /opt/devkitpro/devkitPPC/powerpc-eabi/include/sys/dirent.h:12,
    
                    from /Users/account/Desktop/wup-installer-gx2-code-r21-trunk/src/fs/sd_fat_devoptab.c:27:
    
    /opt/devkitpro/devkitPPC/powerpc-eabi/include/sys/iosupport.h:65:8: note: 'rmdir_r' declared here
    
      int (*rmdir_r)(struct _reent *r, const char *name);
    
            ^~~~~~~
    
    exception_handler.c
    
    memory.c
    
    logger.c
    
    choiceCheckedRectangle.png
    
    /bin/sh: bin2s: command not found
    
    choiceSelectedRectangle.png
    
    /bin/sh: bin2s: command not found
    
    choiceUncheckedRectangle.png
    
    /bin/sh: bin2s: command not found
    
    errorIcon.png
    
    /bin/sh: bin2s: command not found
    
    exclamationIcon.png
    
    /bin/sh: bin2s: command not found
    
    home.png
    
    /bin/sh: bin2s: command not found
    
    informationIcon.png
    
    /bin/sh: bin2s: command not found
    
    messageBox.png
    
    /bin/sh: bin2s: command not found
    
    messageBoxButton.png
    
    /bin/sh: bin2s: command not found
    
    messageBoxButtonSelected.png
    
    /bin/sh: bin2s: command not found
    
    minus.png
    
    /bin/sh: bin2s: command not found
    
    player1_point.png
    
    /bin/sh: bin2s: command not found
    
    player2_point.png
    
    /bin/sh: bin2s: command not found
    
    player3_point.png
    
    /bin/sh: bin2s: command not found
    
    player4_point.png
    
    /bin/sh: bin2s: command not found
    
    plus.png
    
    /bin/sh: bin2s: command not found
    
    progressBar.png
    
    /bin/sh: bin2s: command not found
    
    progressWindow.png
    
    /bin/sh: bin2s: command not found
    
    questionIcon.png
    
    /bin/sh: bin2s: command not found
    
    scrollbarButton.png
    
    /bin/sh: bin2s: command not found
    
    scrollbarLine.png
    
    /bin/sh: bin2s: command not found
    
    select_button.png
    
    /bin/sh: bin2s: command not found
    
    splash.png
    
    /bin/sh: bin2s: command not found
    
    titleHeader.png
    
    /bin/sh: bin2s: command not found
    
    validIcon.png
    
    /bin/sh: bin2s: command not found
    
    warningIcon.png
    
    /bin/sh: bin2s: command not found
    
    font.ttf
    
    /bin/sh: bin2s: command not found
    
    bgMusic.ogg
    
    /bin/sh: bin2s: command not found
    
    button_click.mp3
    
    /bin/sh: bin2s: command not found
    
    linking ... wup_installer_gx2.elf
    Due to not having any graphics or sounds in it, the ELF only comes out to be about 1.8MB, as opposed to its normal size of 2.8MB. Since there'll be no images or sounds, I don't think it's safe to try it out, hahaha.

    Once again, thank you SO much for your help. : )
     
    Last edited by HomeStarRunnerTron, Aug 25, 2019
  8. CreeperMario

    CreeperMario GBAtemp Advanced Fan

    Member
    5
    Jun 18, 2016
    Australia
    Adelaide, South Australia
    At the top there's the error message "gfind - command not found" - you wouldn't happen to be using macOS, would you? :P

    So next you'll need to install the GNU coreutils package - if you are using macOS, this is not provided through pacman, but rather Homebrew. Install Homebrew and then run "brew install coreutils" - this will give you gfind (GNU find).

    On Windows and Linux, the PATH variable (basically a list of locations where software is stored) is updated automatically when installing devkitPro software, but on macOS, it is not. You may need to run "export DEVKITPRO=/opt/devkitpro" and then "export PATH=$PATH:$DEVKITPRO/tools/bin" which adds devkitPro's general-tools directory to the PATH. Then try running "bin2s" from your Terminal and see if it works.
     
    HomeStarRunnerTron likes this.
  9. HomeStarRunnerTron
    OP

    HomeStarRunnerTron Member

    Newcomer
    1
    Jul 24, 2019
    United States
    (Yes, hahaha, I AM using macOS!) IT ALL WORKS!! I didn't need to install coreutils, it was findutils! ^_^ Thankyousosoextremelymuch.

    ONE MINOR SNAG... ... my music file is too big to use, HAHAHAH. WAAAHhahaha.

    Do you happen to know what's the absolute biggest I can make my ELF and still have it run? You are da' realest.

    vlcsnap-2019-08-24-16h26m27s338.

    EDIT: I made the entire ELF JUST shy of 5MB, compressing my OGG waaay way down (& also shortening the loop to about 5 minutes), and it TOTALLY WORKS. Completely worth it to me, and hopefully to, like... one other person in the world who loves both Nintendo Homebrew & Steve Reich. Thank you so, so much for all of your help! Just fixed the download in the first post to have this new ELF. I also uploaded the other ELF that gets made? DBG, it says? Do you know what the difference is? It appears to be very, very slightly larger than the other, but they both work just fine.

    Here's some footage of it working... where I accidentally caught myself dancing in the reflection of the TV screen.
     
    Last edited by HomeStarRunnerTron, Aug 25, 2019
  10. CreeperMario

    CreeperMario GBAtemp Advanced Fan

    Member
    5
    Jun 18, 2016
    Australia
    Adelaide, South Australia
    I believe HBL has an upper limit of ~6.5MB for ELF files. If its more than that, you may need to decrease the bitrate of your sound file.
     
    HomeStarRunnerTron likes this.
Loading...