From c382f7ea5ac93d942a00d4e2d2e7d37346dca08b Mon Sep 17 00:00:00 2001 From: Libretro Updater <> Date: Fri, 8 Mar 2024 21:44:06 +0000 Subject: [PATCH 1/4] Update libretro branch to v0.16.2 --- .gitlab-ci.yml | 186 ++++++++++++++++++++++++++++++++ BootROMs/prebuilt/agb_boot.bin | Bin 0 -> 2304 bytes BootROMs/prebuilt/cgb0_boot.bin | Bin 0 -> 2304 bytes BootROMs/prebuilt/cgb_boot.bin | Bin 0 -> 2304 bytes BootROMs/prebuilt/dmg_boot.bin | Bin 0 -> 256 bytes BootROMs/prebuilt/mgb_boot.bin | Bin 0 -> 256 bytes BootROMs/prebuilt/sgb2_boot.bin | Bin 0 -> 256 bytes BootROMs/prebuilt/sgb_boot.bin | Bin 0 -> 256 bytes 8 files changed, 186 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 BootROMs/prebuilt/agb_boot.bin create mode 100644 BootROMs/prebuilt/cgb0_boot.bin create mode 100644 BootROMs/prebuilt/cgb_boot.bin create mode 100644 BootROMs/prebuilt/dmg_boot.bin create mode 100644 BootROMs/prebuilt/mgb_boot.bin create mode 100644 BootROMs/prebuilt/sgb2_boot.bin create mode 100644 BootROMs/prebuilt/sgb_boot.bin diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..690e563af --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,186 @@ +# DESCRIPTION: GitLab CI/CD for libRetro (NOT FOR GitLab-proper) + +############################################################################## +################################# BOILERPLATE ################################ +############################################################################## + +# Core definitions +.core-defs: + variables: + MAKEFILE_PATH: libretro + CORENAME: sameboy + BOOTROMS_DIR: ../BootROMs/prebuilt + +.core-defs-android: + extends: .core-defs + variables: + JNI_PATH: libretro + BOOTROMS_DIR: ../../BootROMs/prebuilt + +# Inclusion templates, required for the build to work +include: + ################################## DESKTOPS ################################ + # Windows 64-bit + - project: 'libretro-infrastructure/ci-templates' + file: '/windows-x64-mingw.yml' + + # Windows 32-bit + - project: 'libretro-infrastructure/ci-templates' + file: '/windows-i686-mingw.yml' + + # Linux 64-bit + - project: 'libretro-infrastructure/ci-templates' + file: '/linux-x64.yml' + + # Linux 32-bit + - project: 'libretro-infrastructure/ci-templates' + file: '/linux-i686.yml' + + # MacOS 64-bit + - project: 'libretro-infrastructure/ci-templates' + file: '/osx-x64.yml' + + # MacOS ARM 64-bit + - project: 'libretro-infrastructure/ci-templates' + file: '/osx-arm64.yml' + + ################################## CELLULAR ################################ + # Android + - project: 'libretro-infrastructure/ci-templates' + file: '/android-jni.yml' + + # iOS + - project: 'libretro-infrastructure/ci-templates' + file: '/ios-arm64.yml' + + # iOS (armv7) + - project: 'libretro-infrastructure/ci-templates' + file: '/ios9.yml' + + ################################## CONSOLES ################################ + # Nintendo WiiU + - project: 'libretro-infrastructure/ci-templates' + file: '/wiiu-static.yml' + + # Nintendo Switch + - project: 'libretro-infrastructure/ci-templates' + file: '/libnx-static.yml' + + # PlayStation Vita + - project: 'libretro-infrastructure/ci-templates' + file: '/vita-static.yml' + + # tvOS (AppleTV) + - project: 'libretro-infrastructure/ci-templates' + file: '/tvos-arm64.yml' + + #################################### MISC ################################## + +# Stages for building +stages: + - build-prepare + - build-shared + - build-static + +############################################################################## +#################################### STAGES ################################## +############################################################################## +# +################################### DESKTOPS ################################# +# Windows 64-bit +libretro-build-windows-x64: + extends: + - .libretro-windows-x64-mingw-make-default + - .core-defs + +# Windows 32-bit +libretro-build-windows-i686: + extends: + - .libretro-windows-i686-mingw-make-default + - .core-defs + +# Linux 64-bit +libretro-build-linux-x64: + extends: + - .libretro-linux-x64-make-default + - .core-defs + +# Linux 32-bit +libretro-build-linux-i686: + extends: + - .libretro-linux-i686-make-default + - .core-defs + +# MacOS 64-bit +libretro-build-osx-x64: + extends: + - .libretro-osx-x64-make-10-7 + - .core-defs + +# MacOS ARM 64-bit +libretro-build-osx-arm64: + extends: + - .libretro-osx-arm64-make-default + - .core-defs + +################################### CELLULAR ################################# +# Android ARMv7a +android-armeabi-v7a: + extends: + - .libretro-android-jni-armeabi-v7a + - .core-defs-android + +# Android ARMv8a +android-arm64-v8a: + extends: + - .libretro-android-jni-arm64-v8a + - .core-defs-android + +# Android 64-bit x86 +android-x86_64: + extends: + - .libretro-android-jni-x86_64 + - .core-defs-android + +# Android 32-bit x86 +android-x86: + extends: + - .libretro-android-jni-x86 + - .core-defs-android + +# iOS +libretro-build-ios-arm64: + extends: + - .libretro-ios-arm64-make-default + - .core-defs + +# iOS (armv7) [iOS 9 and up] +libretro-build-ios9: + extends: + - .libretro-ios9-make-default + - .core-defs + +# tvOS +libretro-build-tvos-arm64: + extends: + - .libretro-tvos-arm64-make-default + - .core-defs + +################################### CONSOLES ################################# +# Nintendo WiiU +libretro-build-wiiu: + extends: + - .libretro-wiiu-static-retroarch-master + - .core-defs + +# Nintendo Switch +libretro-build-libnx-aarch64: + extends: + - .libretro-libnx-static-retroarch-master + - .core-defs + +# PlayStation Vita +libretro-build-vita: + extends: + - .libretro-vita-static-retroarch-master + - .core-defs \ No newline at end of file diff --git a/BootROMs/prebuilt/agb_boot.bin b/BootROMs/prebuilt/agb_boot.bin new file mode 100644 index 0000000000000000000000000000000000000000..d3471b7b3b9f249c2f1e61cb12608755688a1fb7 GIT binary patch literal 2304 zcmd^B@lzDn9e;OwyBsZd+;IZSdEC9dLp?5V9Ey5zU=PmXp;*qMnIzNN({`q@CKfVj zMijVRV3i%tnA96M54M--;3G7EL|#Ozk&&N6IcODs z5Eb!B6fkO3oIx}Plv&!;nyP>a|_{IR+A=aFp^egOJ#| z*_U+i?r6!EMgu6gO2hG7XMQg4b)QmYsMza?G{pvO6a{DPl5v98Yq=vhT4uMKE%Pv7 zE}VbaCbP{Y_GsFZzM?ufp_sM&8>m{j!0;Y)iP0#z41ZLyF$|ry28gB9Xq8NcyM))n z`^rBV4Vygzx_WX(fC#EVdY~Q4>i=1E=54t8)xFABe^d3NrzF0)@adlytUtZt%!_Xy zuV~7}@6<=~4UaF(zrVF%^FH+J_~%*0Qy(3Bw^8-G=imEe_km}8&wjYYd2;ajn!W7L z_V?@V{|^Eh+F_?`+25f}MIEcGCArYHg64F3x{%Jvq}1kuf?}7s)Kyxv`dyc`*lwp? z49yj|Tu!xtNE)mu$}3=CR?&CYS~A(G#FS& z0;do}hE9VhRzv88FalvuS67|Y`c!A90YY-I2mzKQ9NI`7y^VI0F{)>O83V>gRF(sz) zGk-j2GCx~78pic6as=-TZEFk@9lRFaz6n{rp|B8I1;BpFrpCm^!Yx$}S!Z*EsCyuj z@J~}Vg1d{&AdBRM1wn0F)`()%P=$rNVS?MpN*^FrI-livBEOCIQE!s^uATkh zu^N4a$x`Dj$1`&%G&Y8PXg+$gd#QISdGjLQ-a7^GunjLc3q?y+CBE%Ft*cDCKR8NGjU z+t}C>V|W%deHDK&3m!cXT0g=*>xkvdAMh|p`b^gHw#7S%#Ml^lWx<12?A=tms<6m= zV9x>NKFw?NK!yp~I4c{gVB(P7VRuM(xNIyRleajN6VkWmCJh%PWa2x}3W)<^)Gj~g zd?+dF81spM#bPcjJRxuFlWUx6d85NFmrKg`8O6g`S|#qc8lxcUJzHq!290B*Z16%E zdMOu66r{JLJwXp8`%)dmt^RZB1e=kbUuia(a!ABgcJL=|k@OjTT-nA9=7oqH%?qV0 z@IMaYYZ|@QY_dCa@PU->8F^+#O-_3*)}^Pysca`*F`40{9PC{Cyse2u-OYvL5(D*+ z^pnf3(55F2ITdSRn_7?&yKZOE@S(&*1md7jF|GS35fi9`;Fp&1%geZP z)=8q`7beF8uE}vR@bDs*-)WHF_?2z?B5tuwU%;g<)bBzu7kb5oj-@L{{s_pgz|{eX ml&}6^0V$7^Ab!4J+HjmJJFd^Fa%$I-Z^xa@CT6AdG4)>rKRd_( literal 0 HcmV?d00001 diff --git a/BootROMs/prebuilt/cgb0_boot.bin b/BootROMs/prebuilt/cgb0_boot.bin new file mode 100644 index 0000000000000000000000000000000000000000..29f5c6b98b7971cae5707df41654629e656da904 GIT binary patch literal 2304 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 literal 0 HcmV?d00001 diff --git a/BootROMs/prebuilt/sgb_boot.bin b/BootROMs/prebuilt/sgb_boot.bin new file mode 100644 index 0000000000000000000000000000000000000000..e84b1cbc3e9bb94b05f7f3ca44e2161dc7a4e03a GIT binary patch literal 256 zcmXr~_g|5rVZGAn9F5<04G+{F2-5gyb3?4RMelz$78F(VFVP=~nJD2WU>SV)!01pBHL1<+= literal 0 HcmV?d00001 From 8aa19fe09277f2a373f2a5c647e44ffc14182a52 Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Fri, 8 Mar 2024 23:52:30 +0200 Subject: [PATCH 2/4] Update libretro's Makefile to support more targets (cherry picked from commit 17f0ff2cf782cd0f93fb680d23809894d0c7a66b) --- libretro/Makefile | 80 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 55 insertions(+), 25 deletions(-) diff --git a/libretro/Makefile b/libretro/Makefile index f4f068a24..0789d01a5 100644 --- a/libretro/Makefile +++ b/libretro/Makefile @@ -41,6 +41,9 @@ else ifneq ($(findstring Darwin,$(shell uname -a)),) ifeq ($(shell uname -p),powerpc) arch = ppc endif + ifeq ($(shell uname -p),arm) + arch = arm + endif else ifneq ($(findstring MINGW,$(shell uname -a)),) system_platform = win endif @@ -52,15 +55,8 @@ endif CORE_DIR = .. TARGET_NAME = sameboy -LIBM = -lm +LIBM = -lm -ifeq ($(ARCHFLAGS),) -ifeq ($(archs),ppc) - ARCHFLAGS = -arch ppc -arch ppc64 -else - ARCHFLAGS = -arch i386 -arch x86_64 -endif -endif ifneq ($(SANITIZER),) CFLAGS := -fsanitize=$(SANITIZER) $(CFLAGS) @@ -68,13 +64,6 @@ ifneq ($(SANITIZER),) LDFLAGS := -fsanitize=$(SANITIZER) $(LDFLAGS) -lasan endif -ifeq ($(platform), osx) -ifndef ($(NOUNIVERSAL)) - CFLAGS += $(ARCHFLAGS) - LFLAGS += $(ARCHFLAGS) -endif -endif - ifeq ($(STATIC_LINKING), 1) EXT := a endif @@ -91,7 +80,7 @@ else ifeq ($(platform), linux-portable) LIBM := # (armv7 a7, hard point, neon based) ### # NESC, SNESC, C64 mini -else ifeq ($(platform), classic_armv7_a7) +else ifeq ($(platform),$(filter $(platform),classic_armv7_a7 unix-armv7-hardfloat-neon)) TARGET := $(TARGET_NAME)_libretro.so fpic := -fPIC SHARED := -shared -Wl,--version-script=$(CORE_DIR)/libretro/link.T -Wl,--no-undefined @@ -149,8 +138,8 @@ else ifeq ($(platform), libnx) # Nintendo WiiU else ifeq ($(platform), wiiu) TARGET := $(TARGET_NAME)_libretro_$(platform).a - CC ?= $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT) - AR ?= $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT) + CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT) + AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT) CFLAGS += -DGEKKO -DHW_RVL -DWIIU -mwup -mcpu=750 -meabi -mhard-float -D__ppc__ -DMSB_FIRST -I$(DEVKITPRO)/libogc/include CFLAGS += -U__INT32_TYPE__ -U __UINT32_TYPE__ -D__INT32_TYPE__=int STATIC_LINKING = 1 @@ -158,10 +147,40 @@ else ifneq (,$(findstring osx,$(platform))) TARGET := $(TARGET_NAME)_libretro.dylib fpic := -fPIC SHARED := -dynamiclib + MACSOSVER = `sw_vers -productVersion | cut -d. -f 1` + OSXVER = `sw_vers -productVersion | cut -d. -f 2` + OSX_LT_MAVERICKS = `(( $(OSXVER) <= 9)) && echo "YES"` + MINVERSION := + +ifeq ($(UNIVERSAL),1) + ifeq ($(archs),ppc) + ARCHFLAGS = -arch ppc -arch ppc64 + else ifeq ($(archs),arm64) + ARCHFLAGS = -arch x86_64 -arch arm64 + else + ARCHFLAGS = -arch i386 -arch x86_64 + endif + CFLAGS += $(ARCHFLAGS) + LFLAGS += $(ARCHFLAGS) + endif + + ifeq ($(CROSS_COMPILE),1) + TARGET_RULE = -target $(LIBRETRO_APPLE_PLATFORM) -isysroot $(LIBRETRO_APPLE_ISYSROOT) + CFLAGS += $(TARGET_RULE) + CPPFLAGS += $(TARGET_RULE) + CXXFLAGS += $(TARGET_RULE) + LDFLAGS += $(TARGET_RULE) + endif + + CFLAGS += $(ARCHFLAGS) + CXXFLAGS += $(ARCHFLAGS) + LDFLAGS += $(ARCHFLAGS) + else ifneq (,$(findstring ios,$(platform))) - TARGET := $(TARGET_NAME)_libretro_ios.dylib + TARGET := $(TARGET_NAME)_libretro_ios.dylib fpic := -fPIC SHARED := -dynamiclib + MINVERSION := ifeq ($(IOSSDK),) IOSSDK := $(shell xcodebuild -version -sdk iphoneos Path) @@ -169,17 +188,28 @@ endif DEFINES := -DIOS ifeq ($(platform),ios-arm64) - CC = cc -arch armv64 -isysroot $(IOSSDK) + CC = cc -arch armv64 -isysroot $(IOSSDK) else - CC = cc -arch armv7 -isysroot $(IOSSDK) + CC = cc -arch armv7 -isysroot $(IOSSDK) endif ifeq ($(platform),$(filter $(platform),ios9 ios-arm64)) -CC += -miphoneos-version-min=8.0 -CFLAGS += -miphoneos-version-min=8.0 + MINVERSION = -miphoneos-version-min=8.0 else -CC += -miphoneos-version-min=5.0 -CFLAGS += -miphoneos-version-min=5.0 + MINVERSION = -miphoneos-version-min=5.0 endif + CFLAGS += $(MINVERSION) + +else ifeq ($(platform), tvos-arm64) + EXT?=dylib + TARGET := $(TARGET_NAME)_libretro_tvos.$(EXT) + fpic := -fPIC + SHARED := -dynamiclib + DEFINES := -DIOS +ifeq ($(IOSSDK),) + IOSSDK := $(shell xcodebuild -version -sdk appletvos Path) +endif + CC = cc -arch arm64 -isysroot $(IOSSDK) + else ifneq (,$(findstring qnx,$(platform))) TARGET := $(TARGET_NAME)_libretro_qnx.so fpic := -fPIC From 6eedee78db71e9639cf7d4aaa13470601dcf8c65 Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Sat, 9 Mar 2024 02:20:53 +0200 Subject: [PATCH 3/4] Better path handling in libretro's Makefile --- .gitlab-ci.yml | 17 ++++++----------- Makefile | 2 +- libretro/Makefile | 9 +++++++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 690e563af..e0fced51c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,15 +7,10 @@ # Core definitions .core-defs: variables: + JNI_PATH: libretro MAKEFILE_PATH: libretro CORENAME: sameboy - BOOTROMS_DIR: ../BootROMs/prebuilt - -.core-defs-android: - extends: .core-defs - variables: - JNI_PATH: libretro - BOOTROMS_DIR: ../../BootROMs/prebuilt + BOOTROMS_DIR: BootROMs/prebuilt # Inclusion templates, required for the build to work include: @@ -128,25 +123,25 @@ libretro-build-osx-arm64: android-armeabi-v7a: extends: - .libretro-android-jni-armeabi-v7a - - .core-defs-android + - .core-defs # Android ARMv8a android-arm64-v8a: extends: - .libretro-android-jni-arm64-v8a - - .core-defs-android + - .core-defs # Android 64-bit x86 android-x86_64: extends: - .libretro-android-jni-x86_64 - - .core-defs-android + - .core-defs # Android 32-bit x86 android-x86: extends: - .libretro-android-jni-x86 - - .core-defs-android + - .core-defs # iOS libretro-build-ios-arm64: diff --git a/Makefile b/Makefile index c25f38b2e..411781692 100644 --- a/Makefile +++ b/Makefile @@ -631,7 +631,7 @@ $(BIN)/BootROMs/%.bin: BootROMs/%.asm $(OBJ)/BootROMs/SameBoyLogo.pb12 # Libretro Core (uses its own build system) libretro: - CFLAGS="$(WARNINGS)" $(MAKE) -C libretro BOOTROMS_DIR=$(abspath $(BOOTROMS_DIR)) + CFLAGS="$(WARNINGS)" $(MAKE) -C libretro BOOTROMS_DIR=$(BOOTROMS_DIR) BIN=$(BIN) # install for Linux/FreeDesktop/etc. # Does not install mimetype icons because FreeDesktop is cursed abomination with no right to exist. diff --git a/libretro/Makefile b/libretro/Makefile index 0789d01a5..3158edb38 100644 --- a/libretro/Makefile +++ b/libretro/Makefile @@ -211,7 +211,7 @@ endif CC = cc -arch arm64 -isysroot $(IOSSDK) else ifneq (,$(findstring qnx,$(platform))) - TARGET := $(TARGET_NAME)_libretro_qnx.so + TARGET := $(TARGET_NAME)_libretro_qnx.so fpic := -fPIC SHARED := -shared -Wl,--version-script=$(CORE_DIR)/libretro/link.T -Wl,--no-undefined else ifeq ($(platform), emscripten) @@ -326,7 +326,10 @@ else SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=$(CORE_DIR)/libretro/link.T -Wl,--no-undefined endif -TARGET := $(CORE_DIR)/build/bin/$(TARGET) +BIN ?= $(realpath -m $(CORE_DIR)) +override BIN := $(shell cd .. && realpath -m $(BIN)) +TARGET := $(BIN)/$(TARGET) + # To force use of the Unix version instead of the Windows version MKDIR := $(shell which mkdir) @@ -365,6 +368,8 @@ CFLAGS += -D__LIBRETRO__ $(fpic) $(INCFLAGS) -std=gnu11 -D_GNU_SOURCE -D_USE_M all: $(TARGET) +override BOOTROMS_DIR := $(shell cd .. && realpath -m $(BOOTROMS_DIR)) + $(CORE_DIR)/libretro/%_boot.c: $(BOOTROMS_DIR)/%_boot.bin echo "/* AUTO-GENERATED */" > $@ echo "const unsigned char $(notdir $(@:%.c=%))[] = {" >> $@ From 2d29ece3b8e7ec44347c9daad0fabb84912ed44f Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Sat, 9 Mar 2024 03:22:40 +0200 Subject: [PATCH 4/4] Various libretro buildbot fixes --- libretro/Makefile | 7 ++++++- libretro/jni/Android.mk | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/libretro/Makefile b/libretro/Makefile index 3158edb38..d3e6cee5f 100644 --- a/libretro/Makefile +++ b/libretro/Makefile @@ -188,7 +188,7 @@ endif DEFINES := -DIOS ifeq ($(platform),ios-arm64) - CC = cc -arch armv64 -isysroot $(IOSSDK) + CC = cc -arch arm64 -isysroot $(IOSSDK) else CC = cc -arch armv7 -isysroot $(IOSSDK) endif @@ -326,7 +326,12 @@ else SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=$(CORE_DIR)/libretro/link.T -Wl,--no-undefined endif +ifeq ($(STATIC_LINKING), 1) +# For some reason libretro's buildbot expects the output to be at ./libretro/ for static targets +BIN ?= $(realpath -m $(CORE_DIR)/libretro) +else BIN ?= $(realpath -m $(CORE_DIR)) +endif override BIN := $(shell cd .. && realpath -m $(BIN)) TARGET := $(BIN)/$(TARGET) diff --git a/libretro/jni/Android.mk b/libretro/jni/Android.mk index 8ac1b3bab..d1b7f67ac 100644 --- a/libretro/jni/Android.mk +++ b/libretro/jni/Android.mk @@ -22,7 +22,9 @@ LOCAL_CFLAGS := -std=c99 $(COREFLAGS) $(CFLAGS) LOCAL_LDFLAGS := -Wl,-version-script=$(CORE_DIR)/libretro/link.T include $(BUILD_SHARED_LIBRARY) -$(CORE_DIR)/libretro/%_boot.c: $(CORE_DIR)/build/bin/BootROMs/%_boot.bin +override BOOTROMS_DIR := $(shell cd ../.. && realpath -m $(BOOTROMS_DIR)) + +$(CORE_DIR)/libretro/%_boot.c: $(BOOTROMS_DIR)/%_boot.bin echo "/* AUTO-GENERATED */" > $@ echo "const unsigned char $(notdir $(@:%.c=%))[] = {" >> $@ hexdump -v -e '/1 "0x%02x, "' $< >> $@