diff --git a/CHANGELOG.md b/CHANGELOG.md index 88c44a0c6fc253a657b982221cde228853b6bd86..4c3c880e69f4c43f5e20015708d916d8e95a5be2 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 fff55c6fb21a261c4b767d08fb55d256fb808327..69185612aecb6812ee79a67bcc5036e4e9943882 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 43e53229cb383fa0c1477f8cc0efacf8585ea77f..f6fc2249c03dd5b68ad2b4e02fa410feb4d0dbbf 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 52bbe067508c581d92626369c033edfb848c9f75..2dfab83faac4d08817ebfc2be8aa37faf5bd0174 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 0d4eff95ed36aee0f8ff0180abf952bfa0228565..8d73de109109b54805cffd337191f9ea66e0d2fc 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 @@ - + @@ -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 b13b16cd1565dbcd21cd05d2aa547831de9a8ce1..2dd001f3a5d619684f877790968f0881290708cd 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 : @@ -188,28 +189,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 0f0c17e4954df6fed6a2adf7d8a3a80b695e1f10..e60300a427ae4ab47988daf0bdecf6dc8457491f 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 : @@ -188,28 +189,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 48860bb88ab4551ec5e3b7967a80c1ac4e6c90e5..e7841093c4c4188b488bf8bd53fca00519297edf 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-prosystem/libretro-prosystem.mk b/package/libretro-prosystem/libretro-prosystem.mk index 318d36554a3849a054ca8e8de45687b80e11da37..ed0418dcc699d79123c9825c56fed159aad4d6da 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 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 0000000000000000000000000000000000000000..b97c95b4c06867687432cfd902952646e6fb0130 --- /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 0000000000000000000000000000000000000000..5d24f47d590df32a7825ecaf28e5846d2b7b9fef --- /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 0000000000000000000000000000000000000000..363080af34b9f05f163721b471e7f17c8cdcc66f --- /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 0000000000000000000000000000000000000000..b2c316227444b809f83876f8c00e7709e84e308b --- /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 4d431b38d70054003171a54a083440c2954fc6d7..edd77c655c122aa959dfd6b5b9236437bffbf152 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