emukidid / swiss-gc

Swiss - The swiss army knife of GameCube homebrew
GNU General Public License v2.0
1.23k stars 93 forks source link

[Question]: Can we get a Compiling Swiss Guide? #872

Closed Dracrius closed 1 month ago

Dracrius commented 1 month ago

Describe your question

I'm just trying to play around with some minor visual tweaks (I got teased by Custom Backdrops but they don't load until post dvd drive read ) but I can't get it to build. I tried to track down a guide but the github completely lacks any kind of a compile guide despite the fact that it seems to use none standard libraries. I think providing proper build instructions is key to a healthy open source echo system as it allows for more people to contribute and develop the project!

So far I've figured out it requires a custom version of devkitpro's libogc (https://github.com/Extrems/libogc2) but unfortunatly this was the easiest hurdle to get past. After that you will run into a missing psoarchive/PRS.h after a lot of searching I found Extrems also has a fork of libpsoarchive ( https://github.com/extremscorner/libpsoarchive) but unfortunately the install instructions on that repo don't work. If I "cheat" and just copy PRS.h & psoarchive-error.h I can make it further along to a xxhash.h missing file include.

This is where I get stumped as installing xxhash via apt-get install libxxhash and dkp-pacman -S switch-xxhash made no difference (not that I thought the last one would but it was the only xxhash related library I could find in devkitpro's install list.

I usually build devkitpro stuff on a Ubuntu VM but I've tried building it from windows as well but it did not go much better as I can't even install libogc2 due to

make[1]: Entering directory '/opt/devkitpro/libogc2/wii'
mp3player.c
In file included from C:/devkitPro/libogc2/libasnd/mp3player.c:22:
C:/devkitPro/libogc2/gc/mp3player.h:4:10: fatal error: mad.h: No such file or directory

Another missing library it seems! It is a little concerning that for such a popular/important piece of software we have such little documentation as god forbid anything ever happen to Extremis or emukidid it seems like the hunt would be on just to figure out how to compile swiss haha. Love yall's work though don't get me wrong!!

Extrems commented 1 month ago

https://github.com/extremscorner/libogc2 is the proper home for libogc2. Please follow the instructions from https://github.com/extremscorner/pacman-packages#readme to get started.

Extrems commented 1 month ago

These are all the APT packages you will need for a full build:

You can get a working executable without them, but no extras.

These are all the pacman packages you will need:

Dracrius commented 1 month ago

These are all the APT packages you will need for a full build:

* `gcc`

* `gcc-mingw-w64-i686`

* `libc6-dev`

* `libc6-i386`

* `p7zip-full`

* `xorriso`

You can get a working executable without them, but no extras.

These are all the pacman packages you will need:

* `gamecube-tools-git` (replaces `gamecube-tools`)

* `libogc2-git`

* `ppc-libmad`

* `ppc-libpsoarchive`

* `ppc-libxxhash`

* `ppc-zlib-ng-compat` or `ppc-zlib`

Amazing thank you so much!! I'd suggest adding this to the README.md

By following https://github.com/extremscorner/pacman-packages#readme first as you suggested the rest was as easy as a bunch of sudo dkp-pacman -S commands!! I feel like I should of just asked earlier but it is really appreciated that you got to me so quickly once I did thanks again!