From 454c1ebaa5f09ad713b59050c5f0807397da389a Mon Sep 17 00:00:00 2001 From: Chips-fr Date: Thu, 28 Oct 2021 20:11:50 +0200 Subject: [PATCH 1/2] feat(core): add uae4all core for rpi1 & 0 --- CHANGELOG.md | 1 + Config.in | 1 + RELEASE-NOTES.md | 1 + TESTING.md | 1 + .../system/.emulationstation/es_bios.xml | 2 +- .../recalbox/share_upgrade/bios/lisez-moi.txt | 26 ++++++++-------- .../recalbox/share_upgrade/bios/readme.txt | 26 ++++++++-------- configs/recalbox-rpi1_defconfig | 1 + .../0001-Use-cyclone-core.patch | 27 +++++++++++++++++ .../0002-lower-cycle-unit-value.patch | 30 +++++++++++++++++++ package/libretro-uae4all/Config.in | 8 +++++ package/libretro-uae4all/libretro-uae4all.mk | 29 ++++++++++++++++++ .../systems/amiga600/system.ini | 12 ++++++++ 13 files changed, 138 insertions(+), 27 deletions(-) create mode 100644 package/libretro-uae4all/0001-Use-cyclone-core.patch create mode 100644 package/libretro-uae4all/0002-lower-cycle-unit-value.patch create mode 100644 package/libretro-uae4all/Config.in create mode 100644 package/libretro-uae4all/libretro-uae4all.mk diff --git a/CHANGELOG.md b/CHANGELOG.md index 88c44a0c6f..4c3c880e69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ All notable changes to this project have been documented in this file since 8.1. - Fix 4k resolution issue on 4k tv ## NEXT +- Add amiga support for Raspberry Pi Zero and one through new uae4all core (#2051) - Add support for GPi CASE 2 (#2042) ## [8.0.1-Electron] diff --git a/Config.in b/Config.in index fff55c6fb2..69185612ae 100644 --- a/Config.in +++ b/Config.in @@ -226,6 +226,7 @@ menu "Libretro Cores" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-tyrquake/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-uae/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-uae4arm/Config.in" + source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-uae4all/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-uzem/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-vecx/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-vice/Config.in" diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 43e53229cb..f6fc2249c0 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -218,6 +218,7 @@ as release notes for end user on a Recalbox upgrade. ## NEXT ### Improvements +- Add amiga support for Raspberry Pi Zero and one through new uae4all core - Add native support for GPi Case 2 / CM4 diff --git a/TESTING.md b/TESTING.md index 52bbe06750..2dfab83faa 100644 --- a/TESTING.md +++ b/TESTING.md @@ -18,6 +18,7 @@ Pour les pending features, elles ne seront activées que si les beta testeurs le - [ ] Check PiBoy controls are working from fresh (#2133) - [ ] Test wifi connection still works (#1768) - [ ] Test WPA3 wifi connection works (#1768) +- [ ] Check amiga support in Raspberry Pi Zero or one (#2051). - [ ] Test hardware detection (gpicase, piboy, nespi4case) still works (#2042) - [ ] Test gpicase2 is correctly detected and working, look at /boot/hardware.log (#2042) diff --git a/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_bios.xml b/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_bios.xml index 0d4eff95ed..63c566789b 100644 --- a/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_bios.xml +++ b/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_bios.xml @@ -2,7 +2,7 @@ - + diff --git a/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/lisez-moi.txt b/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/lisez-moi.txt index b13b16cd15..ce3ca22b48 100644 --- a/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/lisez-moi.txt +++ b/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/lisez-moi.txt @@ -188,28 +188,28 @@ cb0a5cfcf7247a7eab74bb2716260269 keropi/cgrom.dat - Amiga 600 : -85ad74194e87c08904327de1a9443b7a kick33180.A500.rom -82a21c1890cae844b3df741f2762d48d kick34005.A500.rom -dc10d7bdd1b6f450773dfb558477c230 kick37175.A500.rom -0b839c665635a249c5736118c68a69a7 kick40063.A600.rom +85ad74194e87c08904327de1a9443b7a kick33180.A500 +82a21c1890cae844b3df741f2762d48d kick34005.A500 +dc10d7bdd1b6f450773dfb558477c230 kick37175.A500 +0b839c665635a249c5736118c68a69a7 kick40063.A600 - Amiga 1200 : -b7cc148386aa631136f510cd29e42fc3 kick39106.A1200.rom -646773759326fbac3b2311fd8c8793ee kick40068.A1200.rom -9bdedde6a4f33555b4a270c8ca53297d kick40068.A4000.rom +b7cc148386aa631136f510cd29e42fc3 kick39106.A1200 +646773759326fbac3b2311fd8c8793ee kick40068.A1200 +9bdedde6a4f33555b4a270c8ca53297d kick40068.A4000 - Amiga CD32 : -5f8924d013dd57a89cf349f4cdedc6b1 kick40060.CD32.rom -bb72565701b1b6faece07d68ea5da639 kick40060.CD32.ext.rom +5f8924d013dd57a89cf349f4cdedc6b1 kick40060.CD32 +bb72565701b1b6faece07d68ea5da639 kick40060.CD32.ext - Amiga 600 & 1200 (libretro-uae) : -82a21c1890cae844b3df741f2762d48d kick34005.A500.rom -dc10d7bdd1b6f450773dfb558477c230 kick37175.A500.rom -0b839c665635a249c5736118c68a69a7 kick40063.A600.rom -646773759326fbac3b2311fd8c8793ee kick40068.A1200.rom +82a21c1890cae844b3df741f2762d48d kick34005.A500 +dc10d7bdd1b6f450773dfb558477c230 kick37175.A500 +0b839c665635a249c5736118c68a69a7 kick40063.A600 +646773759326fbac3b2311fd8c8793ee kick40068.A1200 - ATARI 800 & 5200 : diff --git a/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/readme.txt b/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/readme.txt index 0f0c17e495..65ae845421 100644 --- a/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/readme.txt +++ b/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/readme.txt @@ -188,28 +188,28 @@ cb0a5cfcf7247a7eab74bb2716260269 keropi/cgrom.dat - Amiga 600 : -85ad74194e87c08904327de1a9443b7a kick33180.A500.rom -82a21c1890cae844b3df741f2762d48d kick34005.A500.rom -dc10d7bdd1b6f450773dfb558477c230 kick37175.A500.rom -e40a5dfb3d017ba8779faba30cbd1c8e kick40063.A600.rom +85ad74194e87c08904327de1a9443b7a kick33180.A500 +82a21c1890cae844b3df741f2762d48d kick34005.A500 +dc10d7bdd1b6f450773dfb558477c230 kick37175.A500 +e40a5dfb3d017ba8779faba30cbd1c8e kick40063.A600 - Amiga 1200 : -b7cc148386aa631136f510cd29e42fc3 kick39106.A1200.rom -646773759326fbac3b2311fd8c8793ee kick40068.A1200.rom -9bdedde6a4f33555b4a270c8ca53297d kick40068.A4000.rom +b7cc148386aa631136f510cd29e42fc3 kick39106.A1200 +646773759326fbac3b2311fd8c8793ee kick40068.A1200 +9bdedde6a4f33555b4a270c8ca53297d kick40068.A4000 - Amiga CD32 : -5f8924d013dd57a89cf349f4cdedc6b1 kick40060.CD32.rom -bb72565701b1b6faece07d68ea5da639 kick40060.CD32.ext.rom +5f8924d013dd57a89cf349f4cdedc6b1 kick40060.CD32 +bb72565701b1b6faece07d68ea5da639 kick40060.CD32.ext - Amiga 600 & 1200 (libretro-uae) : -82a21c1890cae844b3df741f2762d48d kick34005.A500.rom -dc10d7bdd1b6f450773dfb558477c230 kick37175.A500.rom -e40a5dfb3d017ba8779faba30cbd1c8e kick40063.A600.rom -646773759326fbac3b2311fd8c8793ee kick40068.A1200.rom +82a21c1890cae844b3df741f2762d48d kick34005.A500 +dc10d7bdd1b6f450773dfb558477c230 kick37175.A500 +e40a5dfb3d017ba8779faba30cbd1c8e kick40063.A600 +646773759326fbac3b2311fd8c8793ee kick40068.A1200 - ATARI 800 & 5200 : diff --git a/configs/recalbox-rpi1_defconfig b/configs/recalbox-rpi1_defconfig index 48860bb88a..e7841093c4 100644 --- a/configs/recalbox-rpi1_defconfig +++ b/configs/recalbox-rpi1_defconfig @@ -270,6 +270,7 @@ BR2_PACKAGE_LIBRETRO_UZEM=y BR2_PACKAGE_LIBRETRO_VECX=y BR2_PACKAGE_LIBRETRO_VICE=y BR2_PACKAGE_LIBRETRO_XMIL=y +BR2_PACKAGE_LIBRETRO_UAE4ALL=y BR2_PACKAGE_LIBRETRO_XRICK=y BR2_PACKAGE_JSTEST2=y BR2_PACKAGE_WSD=y diff --git a/package/libretro-uae4all/0001-Use-cyclone-core.patch b/package/libretro-uae4all/0001-Use-cyclone-core.patch new file mode 100644 index 0000000000..b97c95b4c0 --- /dev/null +++ b/package/libretro-uae4all/0001-Use-cyclone-core.patch @@ -0,0 +1,27 @@ +From 80d2b45e9c6c471ad3b5903cd26a0d4f82ae869c Mon Sep 17 00:00:00 2001 +From: Chips-fr +Date: Tue, 16 Nov 2021 09:33:10 +0100 +Subject: [PATCH] Use cyclone core + +--- + Makefile.libretro | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.libretro b/Makefile.libretro +index 74fa095..a57a2fc 100644 +--- a/Makefile.libretro ++++ b/Makefile.libretro +@@ -9,8 +9,8 @@ TARGET = $(NAME)_libretro.so + + all: $(TARGET) + +-#CYCLONE_CORE=1 +-FAME_CORE=1 ++CYCLONE_CORE=1 ++#FAME_CORE=1 + FAME_CORE_C=1 + #LIB7Z=1 + +-- +2.20.1 + diff --git a/package/libretro-uae4all/0002-lower-cycle-unit-value.patch b/package/libretro-uae4all/0002-lower-cycle-unit-value.patch new file mode 100644 index 0000000000..5d24f47d59 --- /dev/null +++ b/package/libretro-uae4all/0002-lower-cycle-unit-value.patch @@ -0,0 +1,30 @@ +From 4bba831e1e5a78bd516b59c5651d2a00b51cce11 Mon Sep 17 00:00:00 2001 +From: Chips-fr +Date: Sun, 10 Jul 2022 17:02:30 +0200 +Subject: [PATCH 1/1] lower cycle unit value + +--- + src/include/sysdeps.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/include/sysdeps.h b/src/include/sysdeps.h +index 147be7a..961699d 100644 +--- a/src/include/sysdeps.h ++++ b/src/include/sysdeps.h +@@ -425,11 +425,11 @@ extern int console_get (char *, int); + + We define this value here rather than in events.h so that gencpu.c sees + it. */ +-#define CYCLE_UNIT 512 ++#define CYCLE_UNIT 1 + + /* This one is used by cfgfile.c. We could reduce the CYCLE_UNIT back to 1, + I'm not 100% sure this code is bug free yet. */ +-#define OFFICIAL_CYCLE_UNIT 512 ++#define OFFICIAL_CYCLE_UNIT 1 + + /* + * You can specify numbers from 0 to 5 here. It is possible that higher +-- +2.25.1 + diff --git a/package/libretro-uae4all/Config.in b/package/libretro-uae4all/Config.in new file mode 100644 index 0000000000..363080af34 --- /dev/null +++ b/package/libretro-uae4all/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_LIBRETRO_UAE4ALL + bool "libretro-uae4all" + depends on BR2_PACKAGE_RETROARCH + select BR2_PACKAGE_RECALBOX_ROMFS_AMIGA600 + help + A fast libretro AMIGA emulator core. + + https://github.com/Chips-fr/uae4all-rpi diff --git a/package/libretro-uae4all/libretro-uae4all.mk b/package/libretro-uae4all/libretro-uae4all.mk new file mode 100644 index 0000000000..b2c3162274 --- /dev/null +++ b/package/libretro-uae4all/libretro-uae4all.mk @@ -0,0 +1,29 @@ +################################################################################ +# +# UAE4ALL +# +################################################################################ + +LIBRETRO_UAE4ALL_VERSION = ae7eb74cfbe726a45f5b791484948676dcba1aef +LIBRETRO_UAE4ALL_SITE = $(call github,Chips-fr,uae4all-rpi,$(LIBRETRO_UAE4ALL_VERSION)) +LIBRETRO_UAE4ALL_BRANCH = master +LIBRETRO_UAE4ALL_LICENSE = GPL-2.0 +LIBRETRO_UAE4ALL_LICENSE_FILES = COPYING +#LIBRETRO_UAE4ALL_DEPENDENCIES = flac mpg123 + +LIBRETRO_UAE4ALL_COMPILER_COMMONS_CFLAGS = $(COMPILER_COMMONS_CFLAGS_NOLTO) +LIBRETRO_UAE4ALL_COMPILER_COMMONS_CXXFLAGS = $(COMPILER_COMMONS_CXXFLAGS_NOLTO) +LIBRETRO_UAE4ALL_COMPILER_COMMONS_LDFLAGS = $(COMPILER_COMMONS_LDFLAGS_NOLTO) + +define LIBRETRO_UAE4ALL_BUILD_CMDS + CFLAGS="$(TARGET_CFLAGS) $(LIBRETRO_UAE4ALL_COMPILER_COMMONS_CFLAGS)" \ + $(MAKE) CXX="$(TARGET_CXX)" CC="$(TARGET_CC)" AS="$(TARGET_AS)" -C $(@D)/ -f Makefile.libretro +endef + +define LIBRETRO_UAE4ALL_INSTALL_TARGET_CMDS + $(INSTALL) -D $(@D)/uae4all_libretro.so \ + $(TARGET_DIR)/usr/lib/libretro/uae4all_libretro.so + mkdir -p $(TARGET_DIR)/recalbox/share_upgrade/bios/uae_data +endef + +$(eval $(generic-package)) diff --git a/package/recalbox-romfs2/systems/amiga600/system.ini b/package/recalbox-romfs2/systems/amiga600/system.ini index 4d431b38d7..edd77c655c 100644 --- a/package/recalbox-romfs2/systems/amiga600/system.ini +++ b/package/recalbox-romfs2/systems/amiga600/system.ini @@ -73,3 +73,15 @@ softpatching = 0 compatibility = high speed = high crt.available = 1 + +[core.3] +package = BR2_PACKAGE_LIBRETRO_UAE4ALL +priority = 4 +emulator = "libretro" +core = "uae4all" +extensions = ".adf .adz .zip" +netplay = 0 +softpatching = 0 +compatibility = low +speed = high +crt.available = 1 -- GitLab From 0e74cb46843c333dd58e6146ffacdb25ea8e7b5b Mon Sep 17 00:00:00 2001 From: Chips-fr Date: Sun, 22 Jan 2023 10:11:51 +0100 Subject: [PATCH 2/2] fix: add atari 7800 pal bios support --- .../recalbox/share_init/system/.emulationstation/es_bios.xml | 3 ++- .../fsoverlay/recalbox/share_upgrade/bios/lisez-moi.txt | 1 + .../recalbox/fsoverlay/recalbox/share_upgrade/bios/readme.txt | 1 + package/libretro-prosystem/libretro-prosystem.mk | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_bios.xml b/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_bios.xml index 63c566789b..8d73de1091 100644 --- a/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_bios.xml +++ b/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_bios.xml @@ -39,7 +39,8 @@ - + + diff --git a/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/lisez-moi.txt b/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/lisez-moi.txt index ce3ca22b48..2dd001f3a5 100644 --- a/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/lisez-moi.txt +++ b/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/lisez-moi.txt @@ -120,6 +120,7 @@ fcd403db69f54290b51035d82f835e7b lynxboot.img - ATARI 7800 : 0763f1ffb006ddbe32e52d497ee848ae 7800 BIOS (U).rom +397bb566584be7b9764e7a68974c4263 7800 BIOS (E).rom - ATARI ST : diff --git a/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/readme.txt b/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/readme.txt index 65ae845421..e60300a427 100644 --- a/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/readme.txt +++ b/board/recalbox/fsoverlay/recalbox/share_upgrade/bios/readme.txt @@ -120,6 +120,7 @@ fcd403db69f54290b51035d82f835e7b lynxboot.img - ATARI 7800 : 0763f1ffb006ddbe32e52d497ee848ae 7800 BIOS (U).rom +397bb566584be7b9764e7a68974c4263 7800 BIOS (E).rom - ATARI ST : diff --git a/package/libretro-prosystem/libretro-prosystem.mk b/package/libretro-prosystem/libretro-prosystem.mk index 318d36554a..ed0418dcc6 100644 --- a/package/libretro-prosystem/libretro-prosystem.mk +++ b/package/libretro-prosystem/libretro-prosystem.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBRETRO_PROSYSTEM_VERSION = 6f7e34aea89db5ba2fbf674e5ff0ad6fc68a198e +LIBRETRO_PROSYSTEM_VERSION = da596828a6c65753f771bc9bbea5c428ae73af76 LIBRETRO_PROSYSTEM_SITE = $(call github,libretro,prosystem-libretro,$(LIBRETRO_PROSYSTEM_VERSION)) LIBRETRO_PROSYSTEM_LICENSE = GPL-2.0 LIBRETRO_PROSYSTEM_LICENSE_FILES = License.txt -- GitLab