diff --git a/.gitattributes b/.gitattributes index c8c2e077..13abbc77 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3,3 +3,5 @@ # do not convert line ending of windows batch files *.cmd -text + +/shared/packages.sh -diff -linguist-generated diff --git a/3ds/2_build_toolchain.sh b/3ds/2_build_toolchain.sh index a1928739..ac49d04d 100755 --- a/3ds/2_build_toolchain.sh +++ b/3ds/2_build_toolchain.sh @@ -25,7 +25,6 @@ else msg "The following tools need to be installed to allow building .cia" msg "bundles or creating custom banners:" msg " https://github.com/dnasdw/3dstool" - #msg " https://github.com/Steveice10/bannertool" msg " https://github.com/carstene1ns/3ds-bannertool" msg " https://github.com/profi200/Project_CTR" fi @@ -37,31 +36,29 @@ if [ ! -f .patches-applied ]; then patches_common - # Fix pixman + verbosemsg "pixman" (cd $PIXMAN_DIR patch -Np1 < $SCRIPT_DIR/../shared/extra/pixman-no-tls.patch patch -Np1 < $SCRIPT_DIR/pixman-fix-types.patch ) - # Fix mpg123 + verbosemsg "mpg123" (cd $MPG123_DIR patch -Np1 < $SCRIPT_DIR/../shared/extra/mpg123.patch autoreconf -fi ) - # Fix tremor + verbosemsg "tremor" patch -d $TREMOR_DIR -Np1 < $SCRIPT_DIR/tremor-fix-types.patch - # Fix opusfile + verbosemsg "opusfile" patch -d $OPUSFILE_DIR -Np1 < $SCRIPT_DIR/../shared/extra/opusfile-devkit.patch - # Fix lhasa + verbosemsg "lhasa" patch -d $LHASA_DIR -Np1 < $SCRIPT_DIR/../shared/extra/lhasa.patch - # Fix icu build - # Remove mutexes (crashes) + verbosemsg "ICU" patch -Np0 < $SCRIPT_DIR/../shared/extra/icu-no-mutex.patch - # Fix char16 detection patch -Np0 < $SCRIPT_DIR/icu-data-char16.patch touch .patches-applied @@ -101,7 +98,7 @@ install_lib_cmake $LIBPNG_DIR $LIBPNG_ARGS install_lib_cmake $FREETYPE_DIR $FREETYPE_ARGS -DFT_DISABLE_HARFBUZZ=ON #install_lib_meson $HARFBUZZ_DIR $HARFBUZZ_ARGS #install_lib_cmake $FREETYPE_DIR $FREETYPE_ARGS -DFT_DISABLE_HARFBUZZ=OFF -install_lib_meson $PIXMAN_DIR $PIXMAN_ARGS +install_lib_meson $PIXMAN_DIR $PIXMAN_ARGS -Dneon=disabled install_lib_cmake $EXPAT_DIR $EXPAT_ARGS install_lib $LIBOGG_DIR $LIBOGG_ARGS install_lib $TREMOR_DIR $TREMOR_ARGS @@ -109,8 +106,10 @@ install_lib $MPG123_DIR $MPG123_ARGS install_lib_cmake $LIBXMP_LITE_DIR $LIBXMP_LITE_ARGS install_lib $SPEEXDSP_DIR $SPEEXDSP_ARGS install_lib_cmake $WILDMIDI_DIR $WILDMIDI_ARGS -install_lib $OPUS_DIR $OPUS_ARGS --disable-asm -install_lib $OPUSFILE_DIR $OPUSFILE_ARGS +# asm support is missing in opus cmake, but might be added one day, +# likely -DOPUS_ASM=OFF then, beware if switching to meson +install_lib_cmake $OPUS_DIR $OPUS_ARGS -DOPUS_FIXED_POINT=ON +install_lib $OPUSFILE_DIR $OPUSFILE_ARGS --enable-fixed-point install_lib_cmake $FLUIDLITE_DIR $FLUIDLITE_ARGS install_lib_meson $INIH_DIR $INIH_ARGS install_lib $LHASA_DIR $LHASA_ARGS diff --git a/3ds/README.md b/3ds/README.md index 6cd9714d..702037a1 100644 --- a/3ds/README.md +++ b/3ds/README.md @@ -10,3 +10,13 @@ ### Local build process: - Run `0_build_everything.sh` in a terminal + +## Developer's notes + +The 3DS supports: +- ✘ ARM NEON intrinsiscs +- ✘ TLS (thread local storage) +- ✔ floating point hardware (albeit slow) +- ✔ mediocre CPU performance and memory size + +These often need to be patched in or out of the libraries. \ No newline at end of file diff --git a/android/2_build_toolchain.sh b/android/2_build_toolchain.sh index 276b1fa5..6e299a79 100755 --- a/android/2_build_toolchain.sh +++ b/android/2_build_toolchain.sh @@ -113,7 +113,7 @@ function build() { install_lib_cmake $LIBXMP_LITE_DIR $LIBXMP_LITE_ARGS install_lib $SPEEXDSP_DIR $SPEEXDSP_ARGS install_lib_cmake $WILDMIDI_DIR $WILDMIDI_ARGS - install_lib $OPUS_DIR $OPUS_ARGS + install_lib_cmake $OPUS_DIR $OPUS_ARGS install_lib $OPUSFILE_DIR $OPUSFILE_ARGS install_lib_cmake $FLUIDSYNTH_DIR $FLUIDSYNTH_ARGS install_lib_cmake $NLOHMANNJSON_DIR $NLOHMANNJSON_ARGS diff --git a/emscripten/2_build_toolchain.sh b/emscripten/2_build_toolchain.sh index 7ea26bf8..6fca1a54 100755 --- a/emscripten/2_build_toolchain.sh +++ b/emscripten/2_build_toolchain.sh @@ -109,7 +109,7 @@ install_lib $LIBSNDFILE_DIR $LIBSNDFILE_ARGS install_lib_cmake $LIBXMP_LITE_DIR $LIBXMP_LITE_ARGS install_lib $SPEEXDSP_DIR $SPEEXDSP_ARGS #install_lib_cmake $WILDMIDI_DIR $WILDMIDI_ARGS -install_lib $OPUS_DIR $OPUS_ARGS --disable-stack-protector +install_lib_cmake $OPUS_DIR $OPUS_ARGS -DOPUS_STACK_PROTECTOR=OFF install_lib $OPUSFILE_DIR $OPUSFILE_ARGS install_lib_cmake $FLUIDSYNTH_DIR $FLUIDSYNTH_ARGS install_lib_cmake $NLOHMANNJSON_DIR $NLOHMANNJSON_ARGS diff --git a/ios/2_build_toolchain.sh b/ios/2_build_toolchain.sh index 4e38bebe..9eb29fcb 100755 --- a/ios/2_build_toolchain.sh +++ b/ios/2_build_toolchain.sh @@ -74,7 +74,7 @@ function build() { install_lib_cmake $LIBXMP_LITE_DIR $LIBXMP_LITE_ARGS install_lib $SPEEXDSP_DIR $SPEEXDSP_ARGS install_lib_cmake $WILDMIDI_DIR $WILDMIDI_ARGS - install_lib $OPUS_DIR $OPUS_ARGS + install_lib_cmake $OPUS_DIR $OPUS_ARGS install_lib $OPUSFILE_DIR $OPUSFILE_ARGS install_lib_cmake $FLUIDSYNTH_DIR $FLUIDSYNTH_ARGS -DCMAKE_MACOSX_BUNDLE=OFF install_lib_cmake $NLOHMANNJSON_DIR $NLOHMANNJSON_ARGS diff --git a/linux-static/2_build_toolchain.sh b/linux-static/2_build_toolchain.sh index 8aeefee3..6ba186bf 100755 --- a/linux-static/2_build_toolchain.sh +++ b/linux-static/2_build_toolchain.sh @@ -57,7 +57,7 @@ install_lib $LIBSNDFILE_DIR $LIBSNDFILE_ARGS install_lib_cmake $LIBXMP_LITE_DIR $LIBXMP_LITE_ARGS install_lib $SPEEXDSP_DIR $SPEEXDSP_ARGS install_lib_cmake $WILDMIDI_DIR $WILDMIDI_ARGS -install_lib $OPUS_DIR $OPUS_ARGS +install_lib_cmake $OPUS_DIR $OPUS_ARGS install_lib $OPUSFILE_DIR $OPUSFILE_ARGS install_lib_cmake $FLUIDSYNTH_DIR $FLUIDSYNTH_ARGS install_lib_cmake $NLOHMANNJSON_DIR $NLOHMANNJSON_ARGS diff --git a/macos/2_build_toolchain.sh b/macos/2_build_toolchain.sh index 9475333c..b2bf1793 100755 --- a/macos/2_build_toolchain.sh +++ b/macos/2_build_toolchain.sh @@ -74,7 +74,7 @@ function build() { install_lib_cmake $LIBXMP_LITE_DIR $LIBXMP_LITE_ARGS install_lib $SPEEXDSP_DIR $SPEEXDSP_ARGS install_lib_cmake $WILDMIDI_DIR $WILDMIDI_ARGS - install_lib $OPUS_DIR $OPUS_ARGS + install_lib_cmake $OPUS_DIR $OPUS_ARGS install_lib $OPUSFILE_DIR $OPUSFILE_ARGS install_lib_cmake $FLUIDSYNTH_DIR $FLUIDSYNTH_ARGS install_lib_cmake $NLOHMANNJSON_DIR $NLOHMANNJSON_ARGS diff --git a/shared/common.sh b/shared/common.sh index 084cf7d6..f32865fb 100644 --- a/shared/common.sh +++ b/shared/common.sh @@ -366,17 +366,7 @@ function patches_common { verbosemsg "tremor" (cd $TREMOR_DIR - perl -pi -e 's/XIPH_PATH_OGG.*//' configure.in - autoreconf -fi - ) - fi - - # libsamplerate: disable examples - if [ -d "$LIBSAMPLERATE_DIR" ]; then - verbosemsg "libsamplerate" - - (cd $LIBSAMPLERATE_DIR - patch -Np1 < $_SCRIPT_DIR/libsamplerate-no-examples.patch + perl -pi -e 's/XIPH_PATH_OGG.*//' configure.ac autoreconf -fi ) fi diff --git a/shared/extra/mpg123.patch b/shared/extra/mpg123.patch index 31a98140..cb3ad3d8 100644 --- a/shared/extra/mpg123.patch +++ b/shared/extra/mpg123.patch @@ -1,7 +1,7 @@ -diff '--color=auto' -Naur mpg123-1.28.1-orig/configure.ac mpg123-1.28.1/configure.ac ---- mpg123-1.28.1-orig/configure.ac 2021-07-12 00:49:40.906632272 +0200 -+++ mpg123-1.28.1/configure.ac 2021-07-12 00:52:50.956634812 +0200 -@@ -1318,6 +1318,20 @@ +diff --color -Naur mpg123-1.33.3.orig/configure.ac mpg123-1.33.3/configure.ac +--- mpg123-1.33.3.orig/configure.ac 2025-10-05 22:59:02.000000000 +0200 ++++ mpg123-1.33.3/configure.ac 2025-10-21 14:49:00.629579286 +0200 +@@ -1582,6 +1582,20 @@ # Optionally use platform macros for byte swapping. AC_CHECK_HEADERS([byteswap.h]) @@ -22,10 +22,22 @@ diff '--color=auto' -Naur mpg123-1.28.1-orig/configure.ac mpg123-1.28.1/configur dnl ############## Choose compiler flags and CPU # do not assume gcc here, so no flags by default -diff '--color=auto' -Naur mpg123-1.28.1-orig/src/compat/compat.h mpg123-1.28.1/src/compat/compat.h ---- mpg123-1.28.1-orig/src/compat/compat.h 2021-07-12 00:49:40.876632271 +0200 -+++ mpg123-1.28.1/src/compat/compat.h 2021-07-12 00:52:50.956634812 +0200 -@@ -86,7 +86,8 @@ +diff --color -Naur mpg123-1.33.3.orig/src/compat/compat.c mpg123-1.33.3/src/compat/compat.c +--- mpg123-1.33.3.orig/src/compat/compat.c 2025-10-05 22:59:02.000000000 +0200 ++++ mpg123-1.33.3/src/compat/compat.c 2025-10-21 15:10:38.369364458 +0200 +@@ -520,7 +520,7 @@ + + #ifdef DONT_CATCH_SIGNALS + fprintf (stderr, "Not catching any signals.\n"); +- return ((void (*)()) -1); ++ return ((void (*)(int)) -1); + #endif + + new_sa.sa_handler = handler; +diff --color -Naur mpg123-1.33.3.orig/src/compat/compat.h mpg123-1.33.3/src/compat/compat.h +--- mpg123-1.33.3.orig/src/compat/compat.h 2025-10-05 22:59:02.000000000 +0200 ++++ mpg123-1.33.3/src/compat/compat.h 2025-10-21 14:49:00.630023566 +0200 +@@ -94,7 +94,8 @@ #include #endif /* For select(), I need select.h according to POSIX 2001, else: sys/time.h sys/types.h unistd.h */ @@ -35,12 +47,12 @@ diff '--color=auto' -Naur mpg123-1.28.1-orig/src/compat/compat.h mpg123-1.28.1/s #include #endif -diff '--color=auto' -Naur mpg123-1.28.1-orig/src/control_generic.c mpg123-1.28.1/src/control_generic.c ---- mpg123-1.28.1-orig/src/control_generic.c 2021-07-12 00:49:40.876632271 +0200 -+++ mpg123-1.28.1/src/control_generic.c 2021-07-12 00:54:20.726636012 +0200 -@@ -28,8 +28,10 @@ +diff --color -Naur mpg123-1.33.3.orig/src/control_generic.c mpg123-1.33.3/src/control_generic.c +--- mpg123-1.33.3.orig/src/control_generic.c 2025-10-05 22:59:02.000000000 +0200 ++++ mpg123-1.33.3/src/control_generic.c 2025-10-21 14:49:00.630277569 +0200 +@@ -29,8 +29,10 @@ #include - #if !defined (WIN32) || defined (__CYGWIN__) + #if !defined (_WIN32) || defined (__CYGWIN__) #include +#ifdef NETWORK #include @@ -49,7 +61,7 @@ diff '--color=auto' -Naur mpg123-1.28.1-orig/src/control_generic.c mpg123-1.28.1 #include #include -@@ -397,7 +399,10 @@ +@@ -408,7 +410,10 @@ outstream = stdout; out_is_term = stdout_is_term; } @@ -61,10 +73,10 @@ diff '--color=auto' -Naur mpg123-1.28.1-orig/src/control_generic.c mpg123-1.28.1 setlinebuf(outstream); #else /* perhaps just use setvbuf as it's C89 */ /* -diff '--color=auto' -Naur mpg123-1.28.1-orig/src/mpg123.c mpg123-1.28.1/src/mpg123.c ---- mpg123-1.28.1-orig/src/mpg123.c 2021-07-12 00:49:40.876632271 +0200 -+++ mpg123-1.28.1/src/mpg123.c 2021-07-12 00:52:50.956634812 +0200 -@@ -1353,6 +1353,8 @@ +diff --color -Naur mpg123-1.33.3.orig/src/mpg123.c mpg123-1.33.3/src/mpg123.c +--- mpg123-1.33.3.orig/src/mpg123.c 2025-10-05 22:59:02.000000000 +0200 ++++ mpg123-1.33.3/src/mpg123.c 2025-10-21 14:49:00.630634577 +0200 +@@ -1341,6 +1341,8 @@ if(param.verbose > 2) fprintf(stderr, "Note: pausing %i seconds before next track.\n", param.delay); #ifdef WIN32 Sleep(param.delay*1000); diff --git a/shared/libsamplerate-no-examples.patch b/shared/libsamplerate-no-examples.patch deleted file mode 100644 index 78daa026..00000000 --- a/shared/libsamplerate-no-examples.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --color -Naur libsamplerate-0.2.1.orig/Makefile.am libsamplerate-0.2.1/Makefile.am ---- libsamplerate-0.2.1.orig/Makefile.am 2021-01-21 13:59:01.000000000 +0100 -+++ libsamplerate-0.2.1/Makefile.am 2021-10-06 23:12:49.487204865 +0200 -@@ -58,22 +58,6 @@ - docs/download.md docs/lists.md docs/quality.md docs/win32.md docs/faq.md docs/api.md \ - docs/api_simple.md docs/api_callback.md docs/api_full.md docs/api_misc.md docs/bugs.md - --############# --# examples/ # --############# -- --if HAVE_LIBSNDFILE --noinst_PROGRAMS = examples/varispeed-play examples/timewarp-file -- --examples_varispeed_play_SOURCES = examples/varispeed-play.c examples/audio_out.c examples/audio_out.h --examples_varispeed_play_CFLAGS = $(SNDFILE_CFLAGS) $(AUDIO_CFLAGS) --examples_varispeed_play_LDADD = src/libsamplerate.la $(SNDFILE_LIBS) $(AUDIO_LIBS) -- --examples_timewarp_file_SOURCES = examples/timewarp-file.c --examples_timewarp_file_CFLAGS = $(SNDFILE_CFLAGS) --examples_timewarp_file_LDADD = src/libsamplerate.la $(SNDFILE_LIBS) --endif -- - ########## - # tests/ # - ########## diff --git a/shared/packages.ini b/shared/packages.ini index 113fb681..0c91a1d3 100644 --- a/shared/packages.ini +++ b/shared/packages.ini @@ -8,25 +8,25 @@ arguments = "-DZLIB_BUILD_EXAMPLES=OFF" anitya_id = 5303 [libpng] -version = 1.6.48 +version = 1.6.50 url = "https://download.sourceforge.net/libpng/libpng-${version}.tar.xz" -arguments = "-DPNG_SHARED=OFF -DPNG_EXECUTABLES=OFF -DPNG_TESTS=OFF" +arguments = "-DPNG_SHARED=OFF -DPNG_TOOLS=OFF -DPNG_TESTS=OFF" anitya_id = 1705 [freetype] -version = 2.13.3 +version = 2.14.1 url = "https://download.savannah.gnu.org/releases/freetype/freetype-${version}.tar.xz" arguments = "-DFT_DISABLE_BZIP2=ON -DFT_DISABLE_BROTLI=ON" anitya_id = 854 [harfbuzz] -version = 11.2.1 +version = 12.1.0 url = "https://github.com/harfbuzz/harfbuzz/releases/download/${version}/harfbuzz-${version}.tar.xz" arguments = "-Dfreetype=enabled -Dicu=disabled -Dtests=disabled -Dutilities=disabled" # TODO disable subset anitya_id = 1299 [pixman] -version = 0.46.0 +version = 0.46.4 url = "https://cairographics.org/releases/pixman-${version}.tar.gz" arguments = "-Dtests=disabled -Ddemos=disabled -Dlibpng=disabled" anitya_id = 3648 @@ -34,7 +34,7 @@ anitya_id = 3648 [expat] version_major = 2 version_minor = 7 -version_patch = 1 +version_patch = 3 version = ${version_major}.${version_minor}.${version_patch} version_url = ${version_major}_${version_minor}_${version_patch} url = "https://github.com/libexpat/libexpat/releases/download/R_${version_url}/expat-${version}.tar.bz2" @@ -43,7 +43,7 @@ arguments = "-DEXPAT_BUILD_TOOLS=OFF -DEXPAT_BUILD_EXAMPLES=OFF anitya_id = 770 [libogg] -version = 1.3.5 +version = 1.3.6 url = "https://downloads.xiph.org/releases/ogg/libogg-${version}.tar.xz" anitya_id = 1694 @@ -53,11 +53,11 @@ url = "https://downloads.xiph.org/releases/vorbis/libvorbis-${version}.tar.xz" anitya_id = 1758 [tremor] -version = 7c30a66346199f3f09017a09567c6c8a3a0eedc8 +version = 820fb3237ea81af44c9cc468c8b4e20128e3e5ad url = "https://gitlab.xiph.org/xiph/tremor/-/archive/${version}/tremor-${version}.tar.bz2" [mpg123] -version = 1.32.10 +version = 1.33.3 url = "https://www.mpg123.de/download/mpg123-${version}.tar.bz2" arguments = "--with-cpu=generic --disable-fifo --disable-ipv6 --disable-network --disable-int-quality --with-default-audio=dummy --with-optimization=2 @@ -85,6 +85,7 @@ anitya_id = 8419 [libsamplerate] version = 0.2.2 url = "https://github.com/libsndfile/libsamplerate/releases/download/${version}/libsamplerate-${version}.tar.xz" +arguments = "-DLIBSAMPLERATE_EXAMPLES=OFF -DBUILD_TESTING=OFF" anitya_id = 1716 [wildmidi] @@ -97,7 +98,7 @@ anitya_id = 9179 [opus] version = 1.5.2 url = "https://downloads.xiph.org/releases/opus/opus-${version}.tar.gz" -arguments = "--disable-intrinsics --disable-extra-programs" +arguments = "-DOPUS_DISABLE_INTRINSICS=ON" anitya_id = 11081 [opusfile] @@ -113,7 +114,7 @@ arguments = "-DLIB_SUFFIX=''" anitya_id = 10437 [FluidLite] -version = 57a0e74e708f699b13d7c85b28a4e1ff5b71887c +version = 4a01cf1c67419e71da971d209f2855bbf4f3bab8 url = "https://github.com/divideconcept/FluidLite/archive/${version}.zip" arguments = "-DFLUIDLITE_BUILD_STATIC=ON -DFLUIDLITE_BUILD_SHARED=OFF" @@ -125,19 +126,19 @@ arguments = "-DJSON_BuildTests=OFF" anitya_id = 11152 [fmt] -version = 11.2.0 +version = 12.0.0 url = "https://github.com/fmtlib/fmt/releases/download/${version}/fmt-${version}.zip" arguments = "-DFMT_DOC=OFF -DFMT_TEST=OFF" anitya_id = 11526 [inih] -version = 60 +version = 62 url = "https://github.com/benhoyt/inih/archive/refs/tags/r${version}.tar.gz" directory = "inih-r${version}" anitya_id = 11600 [lhasa] -version = 0.4.0 +version = 0.5.0 url = "https://github.com/fragglet/lhasa/releases/download/v${version}/lhasa-${version}.tar.gz" anitya_id = 14822 @@ -152,7 +153,7 @@ arguments = "--enable-strict=no --disable-tests --disable-samples --disable-dyload --disable-extras --disable-icuio --with-data-packaging=static --disable-layout --disable-layoutex --enable-draft=no" -anitya_id = 16134 +anitya_id = 379847 [icudata] version_major = 77 @@ -162,7 +163,6 @@ _ini_comment = empty on purpose, otherwise polluted by default section directory = url = https://ci.easyrpg.org/job/icudata/lastSuccessfulBuild/artifact/icudata${version_major}_all.tar.gz files = "icudt*.dat" -anitya_id = 16134 [SDL2] version = 2.32.6 diff --git a/shared/packages.sh b/shared/packages.sh index 80235966..0aff40b5 100644 --- a/shared/packages.sh +++ b/shared/packages.sh @@ -9,41 +9,41 @@ ZLIB_URL="https://zlib.net/fossils/zlib-1.3.1.tar.gz" ZLIB_ARGS="-DZLIB_BUILD_EXAMPLES=OFF" ZLIB_DIR="zlib-1.3.1" -LIBPNG_URL="https://download.sourceforge.net/libpng/libpng-1.6.48.tar.xz" -LIBPNG_ARGS="-DPNG_SHARED=OFF -DPNG_EXECUTABLES=OFF -DPNG_TESTS=OFF" -LIBPNG_DIR="libpng-1.6.48" +LIBPNG_URL="https://download.sourceforge.net/libpng/libpng-1.6.50.tar.xz" +LIBPNG_ARGS="-DPNG_SHARED=OFF -DPNG_TOOLS=OFF -DPNG_TESTS=OFF" +LIBPNG_DIR="libpng-1.6.50" -FREETYPE_URL="https://download.savannah.gnu.org/releases/freetype/freetype-2.13.3.tar.xz" +FREETYPE_URL="https://download.savannah.gnu.org/releases/freetype/freetype-2.14.1.tar.xz" FREETYPE_ARGS="-DFT_DISABLE_BZIP2=ON -DFT_DISABLE_BROTLI=ON" -FREETYPE_DIR="freetype-2.13.3" +FREETYPE_DIR="freetype-2.14.1" -HARFBUZZ_URL="https://github.com/harfbuzz/harfbuzz/releases/download/11.2.1/harfbuzz-11.2.1.tar.xz" +HARFBUZZ_URL="https://github.com/harfbuzz/harfbuzz/releases/download/12.1.0/harfbuzz-12.1.0.tar.xz" HARFBUZZ_ARGS="-Dfreetype=enabled -Dicu=disabled -Dtests=disabled -Dutilities=disabled" # TODO disable subset -HARFBUZZ_DIR="harfbuzz-11.2.1" +HARFBUZZ_DIR="harfbuzz-12.1.0" -PIXMAN_URL="https://cairographics.org/releases/pixman-0.46.0.tar.gz" +PIXMAN_URL="https://cairographics.org/releases/pixman-0.46.4.tar.gz" PIXMAN_ARGS="-Dtests=disabled -Ddemos=disabled -Dlibpng=disabled" -PIXMAN_DIR="pixman-0.46.0" +PIXMAN_DIR="pixman-0.46.4" -EXPAT_URL="https://github.com/libexpat/libexpat/releases/download/R_2_7_1/expat-2.7.1.tar.bz2" +EXPAT_URL="https://github.com/libexpat/libexpat/releases/download/R_2_7_3/expat-2.7.3.tar.bz2" EXPAT_ARGS="-DEXPAT_BUILD_TOOLS=OFF -DEXPAT_BUILD_EXAMPLES=OFF \ -DEXPAT_BUILD_TESTS=OFF -DEXPAT_BUILD_DOCS=OFF -DEXPAT_SHARED_LIBS=OFF" -EXPAT_DIR="expat-2.7.1" +EXPAT_DIR="expat-2.7.3" -LIBOGG_URL="https://downloads.xiph.org/releases/ogg/libogg-1.3.5.tar.xz" -LIBOGG_DIR="libogg-1.3.5" +LIBOGG_URL="https://downloads.xiph.org/releases/ogg/libogg-1.3.6.tar.xz" +LIBOGG_DIR="libogg-1.3.6" LIBVORBIS_URL="https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.xz" LIBVORBIS_DIR="libvorbis-1.3.7" -TREMOR_URL="https://gitlab.xiph.org/xiph/tremor/-/archive/7c30a66346199f3f09017a09567c6c8a3a0eedc8/tremor-7c30a66346199f3f09017a09567c6c8a3a0eedc8.tar.bz2" -TREMOR_DIR="tremor-7c30a66346199f3f09017a09567c6c8a3a0eedc8" +TREMOR_URL="https://gitlab.xiph.org/xiph/tremor/-/archive/820fb3237ea81af44c9cc468c8b4e20128e3e5ad/tremor-820fb3237ea81af44c9cc468c8b4e20128e3e5ad.tar.bz2" +TREMOR_DIR="tremor-820fb3237ea81af44c9cc468c8b4e20128e3e5ad" -MPG123_URL="https://www.mpg123.de/download/mpg123-1.32.10.tar.bz2" +MPG123_URL="https://www.mpg123.de/download/mpg123-1.33.3.tar.bz2" MPG123_ARGS="--with-cpu=generic --disable-fifo --disable-ipv6 --disable-network \ --disable-int-quality --with-default-audio=dummy --with-optimization=2 \ --disable-components --enable-libmpg123" -MPG123_DIR="mpg123-1.32.10" +MPG123_DIR="mpg123-1.33.3" LIBSNDFILE_URL="https://github.com/libsndfile/libsndfile/releases/download/1.2.2/libsndfile-1.2.2.tar.xz" LIBSNDFILE_ARGS="--disable-alsa --disable-sqlite --disable-full-suite --disable-external-libs --disable-mpeg" @@ -58,6 +58,7 @@ SPEEXDSP_ARGS="--disable-sse --disable-neon" SPEEXDSP_DIR="speexdsp-1.2.1" LIBSAMPLERATE_URL="https://github.com/libsndfile/libsamplerate/releases/download/0.2.2/libsamplerate-0.2.2.tar.xz" +LIBSAMPLERATE_ARGS="-DLIBSAMPLERATE_EXAMPLES=OFF -DBUILD_TESTING=OFF" LIBSAMPLERATE_DIR="libsamplerate-0.2.2" WILDMIDI_URL="https://github.com/Mindwerks/wildmidi/archive/wildmidi-0.4.6.tar.gz" @@ -65,7 +66,7 @@ WILDMIDI_DIR="wildmidi-wildmidi-0.4.6" WILDMIDI_ARGS="-DWANT_PLAYER=OFF -DWANT_STATIC=ON" OPUS_URL="https://downloads.xiph.org/releases/opus/opus-1.5.2.tar.gz" -OPUS_ARGS="--disable-intrinsics --disable-extra-programs" +OPUS_ARGS="-DOPUS_DISABLE_INTRINSICS=ON" OPUS_DIR="opus-1.5.2" OPUSFILE_URL="https://github.com/xiph/opusfile/releases/download/v0.12/opusfile-0.12.tar.gz" @@ -76,23 +77,23 @@ FLUIDSYNTH_URL="https://github.com/FluidSynth/fluidsynth/archive/refs/tags/v2.4. FLUIDSYNTH_ARGS="-DLIB_SUFFIX=''" FLUIDSYNTH_DIR="fluidsynth-2.4.6" -FLUIDLITE_URL="https://github.com/divideconcept/FluidLite/archive/57a0e74e708f699b13d7c85b28a4e1ff5b71887c.zip" +FLUIDLITE_URL="https://github.com/divideconcept/FluidLite/archive/4a01cf1c67419e71da971d209f2855bbf4f3bab8.zip" FLUIDLITE_ARGS="-DFLUIDLITE_BUILD_STATIC=ON -DFLUIDLITE_BUILD_SHARED=OFF" -FLUIDLITE_DIR="FluidLite-57a0e74e708f699b13d7c85b28a4e1ff5b71887c" +FLUIDLITE_DIR="FluidLite-4a01cf1c67419e71da971d209f2855bbf4f3bab8" NLOHMANNJSON_URL="https://github.com/nlohmann/json/archive/v3.12.0.tar.gz" NLOHMANNJSON_DIR="json-3.12.0" NLOHMANNJSON_ARGS="-DJSON_BuildTests=OFF" -FMT_URL="https://github.com/fmtlib/fmt/releases/download/11.2.0/fmt-11.2.0.zip" +FMT_URL="https://github.com/fmtlib/fmt/releases/download/12.0.0/fmt-12.0.0.zip" FMT_ARGS="-DFMT_DOC=OFF -DFMT_TEST=OFF" -FMT_DIR="fmt-11.2.0" +FMT_DIR="fmt-12.0.0" -INIH_URL="https://github.com/benhoyt/inih/archive/refs/tags/r60.tar.gz" -INIH_DIR="inih-r60" +INIH_URL="https://github.com/benhoyt/inih/archive/refs/tags/r62.tar.gz" +INIH_DIR="inih-r62" -LHASA_URL="https://github.com/fragglet/lhasa/releases/download/v0.4.0/lhasa-0.4.0.tar.gz" -LHASA_DIR="lhasa-0.4.0" +LHASA_URL="https://github.com/fragglet/lhasa/releases/download/v0.5.0/lhasa-0.5.0.tar.gz" +LHASA_DIR="lhasa-0.5.0" ICU_URL="https://github.com/unicode-org/icu/releases/download/release-77-1/icu4c-77_1-src.tgz" ICU_DIR="icu" diff --git a/shared/updater.py b/shared/updater.py index a2744164..17eaba99 100755 --- a/shared/updater.py +++ b/shared/updater.py @@ -24,7 +24,7 @@ def query_anitya(id): if not response: print("Error querying Anitya!") return None - return response.json()["version"] + return response.json()["stable_versions"][0] if __name__ == '__main__': diff --git a/switch/1_download_library.sh b/switch/1_download_library.sh index 565a63a1..d61f738b 100755 --- a/switch/1_download_library.sh +++ b/switch/1_download_library.sh @@ -44,9 +44,9 @@ download_and_extract $EXPAT_URL rm -rf $LIBOGG_DIR download_and_extract $LIBOGG_URL -# tremor -rm -rf $TREMOR_DIR -download_and_extract $TREMOR_URL +# libvorbis +rm -rf $LIBVORBIS_DIR +download_and_extract $LIBVORBIS_URL # mpg123 rm -rf $MPG123_DIR diff --git a/switch/2_build_toolchain.sh b/switch/2_build_toolchain.sh index e29f50e5..3ff1ef44 100755 --- a/switch/2_build_toolchain.sh +++ b/switch/2_build_toolchain.sh @@ -28,24 +28,18 @@ if [ ! -f .patches-applied ]; then patches_common - # Fix mpg123 + verbosemsg "mpeg123" (cd $MPG123_DIR patch -Np1 < $SCRIPT_DIR/../shared/extra/mpg123.patch autoreconf -fi ) - # Fix opusfile + verbosemsg "opusfile" (cd $OPUSFILE_DIR patch -Np1 < $SCRIPT_DIR/../shared/extra/opusfile-devkit.patch ) - # disable libsamplerate examples and tests - (cd $LIBSAMPLERATE_DIR - perl -pi -e 's/examples tests//' Makefile.am - autoreconf -fi - ) - - # Fix lhasa + verbosemsg "lhasa" (cd $LHASA_DIR patch -Np1 < $SCRIPT_DIR/../shared/extra/lhasa.patch ) @@ -90,12 +84,12 @@ install_lib_cmake $FREETYPE_DIR $FREETYPE_ARGS -DFT_DISABLE_HARFBUZZ=OFF install_lib_meson $PIXMAN_DIR $PIXMAN_ARGS install_lib_cmake $EXPAT_DIR $EXPAT_ARGS install_lib $LIBOGG_DIR $LIBOGG_ARGS -install_lib $TREMOR_DIR $TREMOR_ARGS +install_lib $LIBVORBIS_DIR $LIBVORBIS_ARGS install_lib $MPG123_DIR $MPG123_ARGS install_lib_cmake $LIBXMP_LITE_DIR $LIBXMP_LITE_ARGS -install_lib $LIBSAMPLERATE_DIR $LIBSAMPLERATE_ARGS +install_lib_cmake $LIBSAMPLERATE_DIR $LIBSAMPLERATE_ARGS install_lib_cmake $WILDMIDI_DIR $WILDMIDI_ARGS -install_lib $OPUS_DIR $OPUS_ARGS +install_lib_cmake $OPUS_DIR $OPUS_ARGS install_lib $OPUSFILE_DIR $OPUSFILE_ARGS install_lib_cmake $FLUIDSYNTH_DIR $FLUIDSYNTH_ARGS install_lib_meson $INIH_DIR $INIH_ARGS diff --git a/switch/README.md b/switch/README.md index e7950be4..11a95ce2 100644 --- a/switch/README.md +++ b/switch/README.md @@ -4,9 +4,19 @@ ### Prequisites: -- Install devkitA64, libnx, switch-tools, switch-cmake. +- Install devkitA64, libnx, switch-tools, switch-glad and switch-cmake. (Environment variables `DEVKITPRO` needs to be set) ### Local build process: - Run `0_build_everything.sh` in a terminal + +## Developer's notes + +The switch supports: +- ✔ ARM NEON intrinsiscs +- ✔ TLS (thread local storage) +- ✔ PIC (position independent code) +- ✔ floating point hardware + +These often need to be patched in or out of the libraries. \ No newline at end of file diff --git a/tvos/2_build_toolchain.sh b/tvos/2_build_toolchain.sh index 86d1d869..4a4e723f 100755 --- a/tvos/2_build_toolchain.sh +++ b/tvos/2_build_toolchain.sh @@ -74,7 +74,7 @@ function build() { install_lib_cmake $LIBXMP_LITE_DIR $LIBXMP_LITE_ARGS install_lib $SPEEXDSP_DIR $SPEEXDSP_ARGS install_lib_cmake $WILDMIDI_DIR $WILDMIDI_ARGS - install_lib $OPUS_DIR $OPUS_ARGS + install_lib_cmake $OPUS_DIR $OPUS_ARGS install_lib $OPUSFILE_DIR $OPUSFILE_ARGS install_lib_cmake $FLUIDSYNTH_DIR $FLUIDSYNTH_ARGS -DCMAKE_MACOSX_BUNDLE=OFF install_lib_cmake $NLOHMANNJSON_DIR $NLOHMANNJSON_ARGS diff --git a/vita/1_download_library.sh b/vita/1_download_library.sh index 2db71352..01132033 100755 --- a/vita/1_download_library.sh +++ b/vita/1_download_library.sh @@ -11,7 +11,7 @@ source $SCRIPT_DIR/../shared/import.sh msg " [1] Installing local Vita SDK" export VITASDK=$PWD/vitasdk -VERSION=master-linux-v2.527/vitasdk-x86_64-linux-gnu-2024-08-09_11-28-39.tar.bz2 +VERSION=master-linux-v2.535/vitasdk-x86_64-linux-gnu-2025-07-20_13-03-36.tar.bz2 export URL="https://github.com/vitasdk/autobuilds/releases/download/$VERSION" mkdir -p vitasdk diff --git a/vita/2_build_toolchain.sh b/vita/2_build_toolchain.sh index da8ef3a3..4c2f56a0 100755 --- a/vita/2_build_toolchain.sh +++ b/vita/2_build_toolchain.sh @@ -19,30 +19,30 @@ if [ ! -f .patches-applied ]; then patches_common - # Fix mpg123 + verbosemsg "mpg123" (cd $MPG123_DIR patch -Np1 < $SCRIPT_DIR/../shared/extra/mpg123.patch autoreconf -fi ) - # Fix lhasa + verbosemsg "lhasa" (cd $LHASA_DIR patch -Np1 < $SCRIPT_DIR/../shared/extra/lhasa.patch ) - # Fix fmt + verbosemsg "fmt" (cd $FMT_DIR # Fix undefined reference to funlockfile perl -pi -e 's/define FMT_USE_FALLBACK_FILE 0/define FMT_USE_FALLBACK_FILE 1/' include/fmt/format-inl.h ) - # Fix icu build + verbosemsg "ICU" # Remove mutexes (crashes) patch -Np0 < $SCRIPT_DIR/../shared/extra/icu-no-mutex.patch # Vita specific fixes patch -Np0 < $SCRIPT_DIR/icu-vita.patch - # Disable vita2dlib jpeg dependency + verbosemsg "vita2d" patch -Np0 < $SCRIPT_DIR/libvita2d-no-jpeg.patch # Allow the cmake toolchain finding libfmt @@ -71,7 +71,7 @@ function set_build_flags { export CXXFLAGS="$CFLAGS" export CPPFLAGS="-DPSP2" export CMAKE_SYSTEM_NAME="Generic" - export CMAKE_EXTRA_ARGS="-DCMAKE_SYSTEM_PROCESSOR=arm64" + export CMAKE_EXTRA_ARGS="-DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_POSITION_INDEPENDENT_CODE=OFF" make_meson_cross vita > $PLATFORM_PREFIX/meson-cross.txt } @@ -104,7 +104,7 @@ install_lib_cmake $LIBXMP_LITE_DIR $LIBXMP_LITE_ARGS install_lib $SPEEXDSP_DIR $SPEEXDSP_ARGS install_lib_cmake $WILDMIDI_DIR $WILDMIDI_ARGS install_lib_cmake $FLUIDLITE_DIR $FLUIDLITE_ARGS -DENABLE_SF3=ON -install_lib $OPUS_DIR $OPUS_ARGS +install_lib_cmake $OPUS_DIR $OPUS_ARGS install_lib $OPUSFILE_DIR $OPUSFILE_ARGS install_lib_meson $INIH_DIR $INIH_ARGS install_lib $LHASA_DIR $LHASA_ARGS diff --git a/vita/README.md b/vita/README.md index f8b0255e..4765c2af 100644 --- a/vita/README.md +++ b/vita/README.md @@ -9,3 +9,13 @@ Run `0_build_everything.sh` in a terminal Note: Since we overwrite some libraries from vitasdk with newer versions, we use our own local installation. This means you need to redefine `$VITASDK` when targetting our builds. + +## Developer's notes + +The PSVita supports: +- ✔ ARM NEON intrinsiscs +- ✘ PIC (position independent code) +- ✔ floating point hardware +- ✘ problematic file access (slow, partly unsupported posix stuff) + +These often need to be patched in or out of the libraries. \ No newline at end of file diff --git a/vita/vitasdk-cmake.patch b/vita/vitasdk-cmake.patch index 06d8b651..a3707ff3 100644 --- a/vita/vitasdk-cmake.patch +++ b/vita/vitasdk-cmake.patch @@ -1,14 +1,13 @@ ---- vitasdk/share/vita.toolchain.cmake.old 2021-08-02 22:01:20.150687989 +0200 -+++ vitasdk/share/vita.toolchain.cmake 2021-08-02 21:34:41.281377970 +0200 -@@ -108,6 +108,11 @@ - set( CMAKE_FIND_ROOT_PATH "${VITASDK}/bin" "${VITASDK}/arm-vita-eabi" "${CMAKE_INSTALL_PREFIX}" "${CMAKE_INSTALL_PREFIX}/share" ) +--- vitasdk/share/vita.toolchain.cmake.orig 2025-07-20 15:04:17.000000000 +0200 ++++ vitasdk/share/vita.toolchain.cmake 2025-10-21 20:34:29.213607535 +0200 +@@ -109,6 +109,10 @@ + set( CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_FIND_ROOT_PATH}) set( CMAKE_INSTALL_PREFIX "${VITASDK}/arm-vita-eabi" CACHE PATH "default install path" ) set( PKG_CONFIG_EXECUTABLE "${VITASDK}/bin/arm-vita-eabi-pkg-config" CACHE PATH "Path of pkg-config executable" ) -+set( CMAKE_SYSTEM_PREFIX_PATH "${VITASDK}/arm-vita-eabi") +if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.16) + set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF) + string(REPLACE ":" ";" CMAKE_SYSTEM_PROGRAM_PATH "$ENV{PATH}") +endif() - + # only search for libraries and includes in vita toolchain if( NOT CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ) diff --git a/wii/0_build_everything.sh b/wii/0_build_everything.sh index 58217f49..150efebc 100755 --- a/wii/0_build_everything.sh +++ b/wii/0_build_everything.sh @@ -1,5 +1,8 @@ -#!/bin/sh +#!/bin/bash -./1_download_library.sh \ - && ./2_build_toolchain.sh \ - && ./3_cleanup.sh +# abort on errors +set -e + +./1_download_library.sh +./2_build_toolchain.sh +./3_cleanup.sh diff --git a/wii/1_download_library.sh b/wii/1_download_library.sh index 38d6f796..4c9d7adf 100755 --- a/wii/1_download_library.sh +++ b/wii/1_download_library.sh @@ -94,8 +94,6 @@ download_and_extract $ICU_URL rm -f $ICUDATA_FILES download_and_extract $ICUDATA_URL -msg " [3] Downloading platform libraries" - # liblcf rm -rf liblcf download_liblcf diff --git a/wii/2_build_toolchain.sh b/wii/2_build_toolchain.sh index f481ef46..df5b4143 100755 --- a/wii/2_build_toolchain.sh +++ b/wii/2_build_toolchain.sh @@ -26,32 +26,19 @@ if [ ! -f .patches-applied ]; then patches_common - # Fix pixman + verbosemsg "pixman" patch -d $PIXMAN_DIR -Np1 < $SCRIPT_DIR/../shared/extra/pixman-no-tls.patch - # Fix mpg123 + verbosemsg "mpg123" (cd $MPG123_DIR patch -Np1 < $SCRIPT_DIR/../shared/extra/mpg123.patch autoreconf -fi ) - # Fix opus - (cd $OPUS_DIR - # do not fortify source - perl -pi -e 's/AX_ADD_FORTIFY_SOURCE//' configure.ac - autoreconf -fi - ) - - # Fix Fluidlite - (cd $FLUIDLITE_DIR - # enable big endian - perl -pi -e 's/#undef WORDS_BIGENDIAN/#define WORDS_BIGENDIAN/' src/fluid_config.h - ) - - # Fix lhasa + verbosemsg "lhasa" patch -d $LHASA_DIR -Np1 < $SCRIPT_DIR/../shared/extra/lhasa.patch - # Fix icu build + verbosemsg "ICU" # Do not write objects, but source files perl -pi -e 's|#ifndef U_DISABLE_OBJ_CODE|#if 0 // U_DISABLE_OBJ_CODE|' icu/source/tools/toolutil/pkg_genc.h # Emit correct bigendian icudata header @@ -104,8 +91,8 @@ install_lib_cmake $LIBXMP_LITE_DIR $LIBXMP_LITE_ARGS install_lib $SPEEXDSP_DIR $SPEEXDSP_ARGS install_lib_cmake $WILDMIDI_DIR $WILDMIDI_ARGS install_lib_cmake $FLUIDLITE_DIR $FLUIDLITE_ARGS -install_lib $OPUS_DIR $OPUS_ARGS -install_lib $OPUSFILE_DIR $OPUSFILE_ARGS +install_lib_cmake $OPUS_DIR $OPUS_ARGS -DOPUS_FIXED_POINT=ON -DOPUS_FORTIFY_SOURCE=OFF +install_lib $OPUSFILE_DIR $OPUSFILE_ARGS --enable-fixed-point install_lib_meson $INIH_DIR $INIH_ARGS install_lib $LHASA_DIR $LHASA_ARGS install_lib_cmake $FMT_DIR $FMT_ARGS diff --git a/wii/README.md b/wii/README.md index 441a5515..9e727930 100644 --- a/wii/README.md +++ b/wii/README.md @@ -4,9 +4,19 @@ ### Prequisites: -- Install devkitPPC, libogc, libfat-ogc, gamecube-tools and wii-cmake. +- Install devkitPPC, libogc, libfat-ogc, gamecube-tools, wii-sdl2 and wii-cmake. (Environment variables `DEVKITPRO` and `DEVKITPPC` need to be set) ### Local build process: - Run `0_build_everything.sh` in a terminal + +## Developer's notes + +The Wii supports: +- ✘ VMX intrinsics +- ✘ TLS (thread local storage) +- ✔ floating point hardware (albeit slow) +- ✘ slow CPU performance and little memory size + +These often need to be patched in or out of the libraries. \ No newline at end of file diff --git a/wiiu/1_download_library.sh b/wiiu/1_download_library.sh index d61a006c..3195b8e5 100755 --- a/wiiu/1_download_library.sh +++ b/wiiu/1_download_library.sh @@ -42,7 +42,7 @@ download_and_extract $EXPAT_URL rm -rf $LIBOGG_DIR download_and_extract $LIBOGG_URL -# tremor +# libvorbis rm -rf $LIBVORBIS_DIR download_and_extract $LIBVORBIS_URL @@ -90,8 +90,6 @@ download_and_extract $ICU_URL rm -f $ICUDATA_FILES download_and_extract $ICUDATA_URL -msg " [3] Downloading platform libraries" - # liblcf rm -rf liblcf download_liblcf diff --git a/wiiu/2_build_toolchain.sh b/wiiu/2_build_toolchain.sh index 4bbbaaab..eaa386ae 100755 --- a/wiiu/2_build_toolchain.sh +++ b/wiiu/2_build_toolchain.sh @@ -26,27 +26,27 @@ if [ ! -f .patches-applied ]; then patches_common - # Fix pixman + verbosemsg "pixman" (cd $PIXMAN_DIR patch -Np1 < $SCRIPT_DIR/../shared/extra/pixman-no-tls.patch ) - # Fix expat + verbosemsg "expat" (cd $EXPAT_DIR perl -pi -e 's/.*arc4random.*//g' ConfigureChecks.cmake ) - # Fix lhasa + verbosemsg "lhasa" (cd $LHASA_DIR patch -Np1 < $SCRIPT_DIR/../shared/extra/lhasa.patch ) - # Fix fluidsynth + verbosemsg "fluidsynth" (cd $FLUIDSYNTH_DIR patch -Np1 < $SCRIPT_DIR/fluidsynth-no-pthread.patch ) - # Fix icu build + verbosemsg "ICU" # Do not write objects, but source files perl -pi -e 's|#ifndef U_DISABLE_OBJ_CODE.*|#if 0 // U_DISABLE_OBJ_CODE|' icu/source/tools/toolutil/pkg_genc.h # Emit correct bigendian icudata header @@ -98,7 +98,7 @@ install_lib $MPG123_DIR $MPG123_ARGS install_lib_cmake $LIBXMP_LITE_DIR $LIBXMP_LITE_ARGS install_lib $SPEEXDSP_DIR $SPEEXDSP_ARGS install_lib_cmake $FLUIDSYNTH_DIR $FLUIDSYNTH_ARGS -install_lib $OPUS_DIR $OPUS_ARGS +install_lib_cmake $OPUS_DIR $OPUS_ARGS install_lib $OPUSFILE_DIR $OPUSFILE_ARGS install_lib_meson $INIH_DIR $INIH_ARGS install_lib $LHASA_DIR $LHASA_ARGS diff --git a/wiiu/README.md b/wiiu/README.md index 131219d6..69ea088f 100644 --- a/wiiu/README.md +++ b/wiiu/README.md @@ -10,3 +10,12 @@ ### Local build process: - Run `0_build_everything.sh` in a terminal + +## Developer's notes + +The Wii U supports: +- ✘ VMX intrinsics +- ✘ TLS (thread local storage) +- ✔ floating point hardware (slow, but present) + +These often need to be patched in or out of the libraries. \ No newline at end of file