summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
Diffstat (limited to 'emulators')
-rw-r--r--emulators/86Box/Makefile4
-rw-r--r--emulators/86Box/distinfo6
-rw-r--r--emulators/86Box/files/86Box-install-roms.sh.in2
-rw-r--r--emulators/86Box/files/patch-src_cdrom_CMakeLists.txt10
-rw-r--r--emulators/86Box/files/patch-src_network_CMakeLists.txt10
-rw-r--r--emulators/86Box/files/patch-src_printer_CMakeLists.txt4
-rw-r--r--emulators/86Box/files/patch-src_qt_qt__mainwindow.cpp4
-rw-r--r--emulators/86Box/files/patch-src_qt_qt__vmmanager__details.cpp79
-rw-r--r--emulators/86Box/files/patch-src_qt_qt__vmmanager__detailsection.cpp11
-rw-r--r--emulators/86Box/files/patch-src_qt_qt__vmmanager__system.cpp219
-rw-r--r--emulators/86Box/files/patch-src_video_CMakeLists.txt11
-rw-r--r--emulators/Makefile2
-rw-r--r--emulators/Ymir/Makefile93
-rw-r--r--emulators/Ymir/distinfo5
-rw-r--r--emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt11
-rw-r--r--emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_app.cpp13
-rw-r--r--emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_cartridge__settings__view.cpp11
-rw-r--r--emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_general__settings__view.cpp11
-rw-r--r--emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_ipl__settings__view.cpp11
-rw-r--r--emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_system__settings__view.cpp11
-rw-r--r--emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_tweaks__settings__view.cpp11
-rw-r--r--emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt13
-rw-r--r--emulators/Ymir/files/patch-vendor_CMakeLists.txt100
-rw-r--r--emulators/Ymir/files/patch-vendor_mio_include_mio_detail_mmap.ipp13
-rw-r--r--emulators/Ymir/pkg-descr16
-rw-r--r--emulators/ares/Makefile16
-rw-r--r--emulators/ares/distinfo6
-rw-r--r--emulators/catapult/Makefile2
-rw-r--r--emulators/citra/Makefile2
-rw-r--r--emulators/dolphin-emu/Makefile1
-rw-r--r--emulators/dosbox-staging/Makefile3
-rw-r--r--emulators/dosbox-staging/distinfo6
-rw-r--r--emulators/dosbox-x/files/patch-fix-ffmpeg888
-rw-r--r--emulators/dps8m/Makefile3
-rw-r--r--emulators/dps8m/distinfo6
-rw-r--r--emulators/dps8m/files/patch-src_Makefile.mk11
-rw-r--r--emulators/es-de/Makefile5
-rw-r--r--emulators/es-de/distinfo6
-rw-r--r--emulators/es-de/files/patch-es-app_CMakeLists.txt11
-rw-r--r--emulators/es-de/pkg-plist23
-rw-r--r--emulators/flycast/Makefile18
-rw-r--r--emulators/flycast/Makefile.tuples4
-rw-r--r--emulators/flycast/files/gen_gh_tuple.sh29
-rw-r--r--emulators/flycast/files/patch-core_network_dcnet.cpp38
-rw-r--r--emulators/fs-uae-launcher/Makefile20
-rw-r--r--emulators/fs-uae-launcher/distinfo6
-rw-r--r--emulators/fuse/Makefile2
-rw-r--r--emulators/hatari/Makefile54
-rw-r--r--emulators/hatari/distinfo6
-rw-r--r--emulators/hatari/files/patch-tools_atari-hd-image.sh14
-rw-r--r--emulators/hatari/pkg-plist2
-rw-r--r--emulators/magia/Makefile2
-rw-r--r--emulators/mame/Makefile2
-rw-r--r--emulators/nemu/Makefile1
-rw-r--r--emulators/pcsx2/Makefile23
-rw-r--r--emulators/pcsx2/distinfo6
-rw-r--r--emulators/pcsx2/files/patch-cmake-SearchForStuff.cmake11
-rw-r--r--emulators/pcsx2/files/patch-common-CMakeLists.txt10
-rw-r--r--emulators/pcsx2/pkg-plist92
-rw-r--r--emulators/ppsspp/Makefile23
-rw-r--r--emulators/ppsspp/distinfo42
-rw-r--r--emulators/ppsspp/files/patch-Common_GPU_Vulkan_VulkanContext.cpp11
-rw-r--r--emulators/qemu-devel/Makefile6
-rw-r--r--emulators/qemu-devel/distinfo30
-rw-r--r--emulators/qemu-powernv/Makefile2
-rw-r--r--emulators/qemu/Makefile2
-rw-r--r--emulators/qemu/distinfo6
-rw-r--r--emulators/qemu/pkg-plist9
-rw-r--r--emulators/qemu8/Makefile194
-rw-r--r--emulators/qemu8/distinfo3
-rw-r--r--emulators/qemu8/files/patch-block_export_fuse.c69
-rw-r--r--emulators/qemu8/files/patch-bsd-user_host_i386_host-signal.h10
-rw-r--r--emulators/qemu8/files/patch-util_cpuinfo-ppc.c34
-rw-r--r--emulators/qemu8/files/patch-util_meson.build15
-rw-r--r--emulators/qemu8/files/qemu-ifdown.sample2
-rw-r--r--emulators/qemu8/files/qemu-ifup.sample2
-rw-r--r--emulators/qemu8/pkg-descr14
-rw-r--r--emulators/qemu8/pkg-message76
-rw-r--r--emulators/qemu8/pkg-plist180
-rw-r--r--emulators/sameboy/Makefile2
-rw-r--r--emulators/sameboy/distinfo6
-rw-r--r--emulators/sameboy/pkg-plist2
-rw-r--r--emulators/tiemu3/Makefile2
-rw-r--r--emulators/uconvert/Makefile2
-rw-r--r--emulators/virtualbox-ose-70/Makefile6
-rw-r--r--emulators/virtualbox-ose-71/Makefile8
-rw-r--r--emulators/virtualbox-ose-71/distinfo14
-rw-r--r--emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk14
-rw-r--r--emulators/virtualbox-ose-additions-legacy/Makefile4
-rw-r--r--emulators/virtualbox-ose-additions/Makefile4
-rw-r--r--emulators/virtualbox-ose-kmod-70/Makefile3
-rw-r--r--emulators/virtualbox-ose-kmod-71/Makefile5
-rw-r--r--emulators/virtualbox-ose-kmod-71/distinfo6
-rw-r--r--emulators/virtualbox-ose-kmod-legacy/Makefile3
-rw-r--r--emulators/virtualbox-ose-kmod/Makefile3
-rw-r--r--emulators/virtualbox-ose-legacy/Makefile6
-rw-r--r--emulators/virtualbox-ose-nox11-70/Makefile2
-rw-r--r--emulators/virtualbox-ose-nox11-71/Makefile2
-rw-r--r--emulators/virtualbox-ose-nox11-legacy/Makefile2
-rw-r--r--emulators/virtualbox-ose-nox11/Makefile2
-rw-r--r--emulators/virtualbox-ose/Makefile6
-rw-r--r--emulators/visualboyadvance-m/Makefile1
-rw-r--r--emulators/wine-devel/Makefile2
-rw-r--r--emulators/wine-devel/distinfo6
-rw-r--r--emulators/wine-devel/files/pkg32.sh16
-rw-r--r--emulators/wine-devel/pkg-plist21
-rw-r--r--emulators/wine-mono-devel/Makefile2
-rw-r--r--emulators/wine-mono-devel/distinfo6
-rw-r--r--emulators/wine/Makefile3
-rw-r--r--emulators/wine/files/pkg32.sh16
-rw-r--r--emulators/yuzu/Makefile4
111 files changed, 1174 insertions, 947 deletions
diff --git a/emulators/86Box/Makefile b/emulators/86Box/Makefile
index 001776a75946..35d2c1c01cf0 100644
--- a/emulators/86Box/Makefile
+++ b/emulators/86Box/Makefile
@@ -1,6 +1,6 @@
PORTNAME= 86Box
DISTVERSIONPREFIX= v
-DISTVERSION= 4.2.1
+DISTVERSION= 5.0
CATEGORIES= emulators
MAINTAINER= tiago.gasiba@gmail.com
@@ -72,8 +72,6 @@ ICON_RESOLUTIONS= 128x128 192x192 256x256 48x48 512x512 64x64 72x72 96x96
do-install:
${INSTALL_PROGRAM} ${WRKDIR}/.build/src/86Box ${STAGEDIR}${PREFIX}/bin
${INSTALL_SCRIPT} ${WRKDIR}/86Box-install-roms.sh ${STAGEDIR}${PREFIX}/bin
- ${REINPLACE_CMD} -e 's|Exec=86Box|Exec=/bin/sh -c "${PREFIX}/bin/86Box -C $${HOME}/.config/86Box.cfg"|' \
- ${WRKSRC}/src/unix/assets/net.86box.86Box.desktop
${INSTALL_DATA} ${WRKSRC}/src/unix/assets/net.86box.86Box.desktop \
${STAGEDIR}${DESKTOPDIR}
.for F in ${ICON_RESOLUTIONS}
diff --git a/emulators/86Box/distinfo b/emulators/86Box/distinfo
index 4c04656dbfcc..a08ab5ac5399 100644
--- a/emulators/86Box/distinfo
+++ b/emulators/86Box/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1728389339
-SHA256 (86Box-86Box-v4.2.1_GH0.tar.gz) = 9d5627ef96feb815e66b87f167a1b26f4615fccd730334053293eb038f5ec3a9
-SIZE (86Box-86Box-v4.2.1_GH0.tar.gz) = 5320110
+TIMESTAMP = 1756060000
+SHA256 (86Box-86Box-v5.0_GH0.tar.gz) = 00899cb06eb5591df57756d13929a470e50d5d87bc219d1d1d36ae7bbe83a4bf
+SIZE (86Box-86Box-v5.0_GH0.tar.gz) = 13880473
diff --git a/emulators/86Box/files/86Box-install-roms.sh.in b/emulators/86Box/files/86Box-install-roms.sh.in
index 0c0cf18f342b..6b899380545a 100644
--- a/emulators/86Box/files/86Box-install-roms.sh.in
+++ b/emulators/86Box/files/86Box-install-roms.sh.in
@@ -5,7 +5,7 @@ DEFAULT_TARGET_DIR="$HOME/.local/share/86Box/"
TARGET_DIR=${TARGET_DIR:-$DEFAULT_TARGET_DIR}
install_roms() {
- if [ -d "$TARGET_DIR" ] && [ "$(ls -A $TARGET_DIR)" ]; then
+ if [ -d "$TARGET_DIR/roms" ] && [ "$(ls -A $TARGET_DIR/roms)" ]; then
echo "ROMs already installed in $TARGET_DIR"
echo "To (re)install, please first remove ROMs with -r parameter"
exit 1
diff --git a/emulators/86Box/files/patch-src_cdrom_CMakeLists.txt b/emulators/86Box/files/patch-src_cdrom_CMakeLists.txt
new file mode 100644
index 000000000000..c02dd2399e58
--- /dev/null
+++ b/emulators/86Box/files/patch-src_cdrom_CMakeLists.txt
@@ -0,0 +1,10 @@
+--- src/cdrom/CMakeLists.txt.orig 2025-08-24 18:40:59 UTC
++++ src/cdrom/CMakeLists.txt
+@@ -26,6 +26,7 @@ target_link_libraries(86Box PkgConfig::SNDFILE)
+ cdrom_mke.c
+ )
+ target_link_libraries(86Box PkgConfig::SNDFILE)
++target_include_directories(cdrom PRIVATE /usr/local/include)
+
+ if(CDROM_MITSUMI)
+ target_compile_definitions(cdrom PRIVATE USE_CDROM_MITSUMI)
diff --git a/emulators/86Box/files/patch-src_network_CMakeLists.txt b/emulators/86Box/files/patch-src_network_CMakeLists.txt
new file mode 100644
index 000000000000..6009eef2e7cb
--- /dev/null
+++ b/emulators/86Box/files/patch-src_network_CMakeLists.txt
@@ -0,0 +1,10 @@
+--- src/network/CMakeLists.txt.orig 2025-08-24 18:50:29 UTC
++++ src/network/CMakeLists.txt
+@@ -71,6 +71,7 @@ if (UNIX)
+ endif()
+
+ if (UNIX)
++ set_source_files_properties(net_slirp.c PROPERTIES COMPILE_FLAGS "-I/usr/local/include")
+ find_path(HAS_VDE "libvdeplug.h" PATHS ${VDE_INCLUDE_DIR} "/usr/include /usr/local/include" "/opt/homebrew/include" )
+ if(HAS_VDE)
+ find_library(VDE_LIB vdeplug)
diff --git a/emulators/86Box/files/patch-src_printer_CMakeLists.txt b/emulators/86Box/files/patch-src_printer_CMakeLists.txt
index a6da4a25f91e..a07e28d70427 100644
--- a/emulators/86Box/files/patch-src_printer_CMakeLists.txt
+++ b/emulators/86Box/files/patch-src_printer_CMakeLists.txt
@@ -1,6 +1,6 @@
---- src/printer/CMakeLists.txt.orig 2024-08-02 00:15:09 UTC
+--- src/printer/CMakeLists.txt.orig 2025-08-24 12:26:31 UTC
+++ src/printer/CMakeLists.txt
-@@ -29,6 +29,7 @@ target_link_libraries(86Box PkgConfig::FREETYPE)
+@@ -37,6 +37,7 @@ target_link_libraries(86Box PkgConfig::FREETYPE)
find_package(PkgConfig REQUIRED)
pkg_check_modules(FREETYPE REQUIRED IMPORTED_TARGET freetype2)
target_link_libraries(86Box PkgConfig::FREETYPE)
diff --git a/emulators/86Box/files/patch-src_qt_qt__mainwindow.cpp b/emulators/86Box/files/patch-src_qt_qt__mainwindow.cpp
index e6bbf8c52860..89635e4db214 100644
--- a/emulators/86Box/files/patch-src_qt_qt__mainwindow.cpp
+++ b/emulators/86Box/files/patch-src_qt_qt__mainwindow.cpp
@@ -1,6 +1,6 @@
---- src/qt/qt_mainwindow.cpp.orig 2024-08-02 00:15:09 UTC
+--- src/qt/qt_mainwindow.cpp.orig 2025-08-24 12:26:31 UTC
+++ src/qt/qt_mainwindow.cpp
-@@ -378,6 +378,7 @@ MainWindow::MainWindow(QWidget *parent)
+@@ -469,6 +469,7 @@ MainWindow::MainWindow(QWidget *parent)
#if QT_CONFIG(vulkan)
bool vulkanAvailable = false;
diff --git a/emulators/86Box/files/patch-src_qt_qt__vmmanager__details.cpp b/emulators/86Box/files/patch-src_qt_qt__vmmanager__details.cpp
new file mode 100644
index 000000000000..6386154d5c15
--- /dev/null
+++ b/emulators/86Box/files/patch-src_qt_qt__vmmanager__details.cpp
@@ -0,0 +1,79 @@
+--- src/qt/qt_vmmanager_details.cpp.orig 2025-08-24 19:07:21 UTC
++++ src/qt/qt_vmmanager_details.cpp
+@@ -248,52 +248,52 @@ VMManagerDetails::updateConfig(VMManagerSystem *passed
+
+ // System
+ systemSection->clear();
+- systemSection->addSection("Machine", passed_sysconfig->getDisplayValue(Display::Name::Machine));
+- systemSection->addSection("CPU", passed_sysconfig->getDisplayValue(Display::Name::CPU));
+- systemSection->addSection("Memory", passed_sysconfig->getDisplayValue(Display::Name::Memory));
++ systemSection->addSection("Machine", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Machine));
++ systemSection->addSection("CPU", passed_sysconfig->getDisplayValue(VMManager::Display::Name::CPU));
++ systemSection->addSection("Memory", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Memory));
+
+ // Video
+ videoSection->clear();
+- videoSection->addSection("Video", passed_sysconfig->getDisplayValue(Display::Name::Video));
+- if(!passed_sysconfig->getDisplayValue(Display::Name::Voodoo).isEmpty()) {
+- videoSection->addSection("Voodoo", passed_sysconfig->getDisplayValue(Display::Name::Voodoo));
++ videoSection->addSection("Video", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Video));
++ if(!passed_sysconfig->getDisplayValue(VMManager::Display::Name::Voodoo).isEmpty()) {
++ videoSection->addSection("Voodoo", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Voodoo));
+ }
+
+ // Disks
+ storageSection->clear();
+- storageSection->addSection("Disks", passed_sysconfig->getDisplayValue(Display::Name::Disks));
+- storageSection->addSection("Floppy", passed_sysconfig->getDisplayValue(Display::Name::Floppy));
+- storageSection->addSection("CD-ROM", passed_sysconfig->getDisplayValue(Display::Name::CD));
+- storageSection->addSection("Removable disks", passed_sysconfig->getDisplayValue(Display::Name::RDisk));
+- storageSection->addSection("MO", passed_sysconfig->getDisplayValue(Display::Name::MO));
+- storageSection->addSection("SCSI", passed_sysconfig->getDisplayValue(Display::Name::SCSIController));
+- storageSection->addSection("Controllers", passed_sysconfig->getDisplayValue(Display::Name::StorageController));
++ storageSection->addSection("Disks", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Disks));
++ storageSection->addSection("Floppy", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Floppy));
++ storageSection->addSection("CD-ROM", passed_sysconfig->getDisplayValue(VMManager::Display::Name::CD));
++ storageSection->addSection("Removable disks", passed_sysconfig->getDisplayValue(VMManager::Display::Name::RDisk));
++ storageSection->addSection("MO", passed_sysconfig->getDisplayValue(VMManager::Display::Name::MO));
++ storageSection->addSection("SCSI", passed_sysconfig->getDisplayValue(VMManager::Display::Name::SCSIController));
++ storageSection->addSection("Controllers", passed_sysconfig->getDisplayValue(VMManager::Display::Name::StorageController));
+
+ // Audio
+ audioSection->clear();
+- audioSection->addSection("Audio", passed_sysconfig->getDisplayValue(Display::Name::Audio));
+- audioSection->addSection("MIDI Out", passed_sysconfig->getDisplayValue(Display::Name::MidiOut));
++ audioSection->addSection("Audio", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Audio));
++ audioSection->addSection("MIDI Out", passed_sysconfig->getDisplayValue(VMManager::Display::Name::MidiOut));
+
+ // Network
+ networkSection->clear();
+- networkSection->addSection("NIC", passed_sysconfig->getDisplayValue(Display::Name::NIC));
++ networkSection->addSection("NIC", passed_sysconfig->getDisplayValue(VMManager::Display::Name::NIC));
+
+ // Input
+ inputSection->clear();
+- inputSection->addSection("Keyboard", passed_sysconfig->getDisplayValue(Display::Name::Keyboard));
+- inputSection->addSection("Mouse", passed_sysconfig->getDisplayValue(Display::Name::Mouse));
+- inputSection->addSection("Joystick", passed_sysconfig->getDisplayValue(Display::Name::Joystick));
++ inputSection->addSection("Keyboard", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Keyboard));
++ inputSection->addSection("Mouse", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Mouse));
++ inputSection->addSection("Joystick", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Joystick));
+
+ // Ports
+ portsSection->clear();
+- portsSection->addSection("Serial ports", passed_sysconfig->getDisplayValue(Display::Name::Serial));
+- portsSection->addSection("Parallel ports", passed_sysconfig->getDisplayValue(Display::Name::Parallel));
++ portsSection->addSection("Serial ports", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Serial));
++ portsSection->addSection("Parallel ports", passed_sysconfig->getDisplayValue(VMManager::Display::Name::Parallel));
+
+ // Other devices
+ otherSection->clear();
+- otherSection->addSection("ISA RTC", passed_sysconfig->getDisplayValue(Display::Name::IsaRtc));
+- otherSection->addSection("ISA RAM", passed_sysconfig->getDisplayValue(Display::Name::IsaMem));
+- otherSection->addSection("ISA ROM", passed_sysconfig->getDisplayValue(Display::Name::IsaRom));
++ otherSection->addSection("ISA RTC", passed_sysconfig->getDisplayValue(VMManager::Display::Name::IsaRtc));
++ otherSection->addSection("ISA RAM", passed_sysconfig->getDisplayValue(VMManager::Display::Name::IsaMem));
++ otherSection->addSection("ISA ROM", passed_sysconfig->getDisplayValue(VMManager::Display::Name::IsaRom));
+
+ systemSection->setSections();
+ videoSection->setSections();
diff --git a/emulators/86Box/files/patch-src_qt_qt__vmmanager__detailsection.cpp b/emulators/86Box/files/patch-src_qt_qt__vmmanager__detailsection.cpp
new file mode 100644
index 000000000000..4b35ec0aa35b
--- /dev/null
+++ b/emulators/86Box/files/patch-src_qt_qt__vmmanager__detailsection.cpp
@@ -0,0 +1,11 @@
+--- src/qt/qt_vmmanager_detailsection.cpp.orig 2025-08-24 19:05:30 UTC
++++ src/qt/qt_vmmanager_detailsection.cpp
+@@ -145,7 +145,7 @@ void
+ }
+
+ void
+-VMManagerDetailSection::addSection(const QString &name, const QString &value, Display::Name displayField)
++VMManagerDetailSection::addSection(const QString &name, const QString &value, VMManager::Display::Name displayField)
+ {
+ const auto new_section = DetailSection { name, value};
+ sections.push_back(new_section);
diff --git a/emulators/86Box/files/patch-src_qt_qt__vmmanager__system.cpp b/emulators/86Box/files/patch-src_qt_qt__vmmanager__system.cpp
new file mode 100644
index 000000000000..aa94a21eab29
--- /dev/null
+++ b/emulators/86Box/files/patch-src_qt_qt__vmmanager__system.cpp
@@ -0,0 +1,219 @@
+--- src/qt/qt_vmmanager_system.cpp.orig 2025-08-24 19:09:53 UTC
++++ src/qt/qt_vmmanager_system.cpp
+@@ -557,7 +557,7 @@ VMManagerSystem::setupVars() {
+ }
+ }
+ }
+- display_table[Display::Name::Machine] = machine_name;
++ display_table[VMManager::Display::Name::Machine] = machine_name;
+
+ // CPU: Combine name with speed and FPU
+ QString cpu_name = "Unknown";
+@@ -592,34 +592,34 @@ VMManagerSystem::setupVars() {
+ // int speed_display = machine_config["cpu_speed"].toInt() / 1000000;
+ // cpu_name.append(QString::number(speed_display).prepend(" / "));
+ // cpu_name.append(QCoreApplication::translate("", "MHz").prepend(' '));
+- display_table[Display::Name::CPU] = cpu_name;
++ display_table[VMManager::Display::Name::CPU] = cpu_name;
+
+ // Memory
+ int divisor = (ram_granularity < 1024) ? 1 : 1024;
+ QString display_unit = (divisor == 1) ? "KB" : "MB";
+ auto mem_display = QString::number(machine_config["mem_size"].toInt() / divisor);
+ mem_display.append(QCoreApplication::translate("", display_unit.toUtf8().constData()).prepend(' '));
+- display_table[Display::Name::Memory] = mem_display;
++ display_table[VMManager::Display::Name::Memory] = mem_display;
+
+ // Video card
+ int video_int = video_get_video_from_internal_name(video_config["gfxcard"].toUtf8().data());
+ const device_t* video_dev = video_card_getdevice(video_int);
+- display_table[Display::Name::Video] = DeviceConfig::DeviceName(video_dev, video_get_internal_name(video_int), 1);
++ display_table[VMManager::Display::Name::Video] = DeviceConfig::DeviceName(video_dev, video_get_internal_name(video_int), 1);
+
+ // Secondary video
+ if (video_config.contains("gfxcard_2")) {
+ int video2_int = video_get_video_from_internal_name(video_config["gfxcard_2"].toUtf8().data());
+ const device_t* video2_dev = video_card_getdevice(video2_int);
+- display_table[Display::Name::Video].append(DeviceConfig::DeviceName(video2_dev, video_get_internal_name(video2_int), 1).prepend(VMManagerDetailSection::sectionSeparator));
++ display_table[VMManager::Display::Name::Video].append(DeviceConfig::DeviceName(video2_dev, video_get_internal_name(video2_int), 1).prepend(VMManagerDetailSection::sectionSeparator));
+ }
+
+ // Add-on video that's not Voodoo
+ if (video_config.contains("8514a") && (video_config["8514a"].toInt() != 0))
+- display_table[Display::Name::Video].append(tr("IBM 8514/A Graphics").prepend(VMManagerDetailSection::sectionSeparator));
++ display_table[VMManager::Display::Name::Video].append(tr("IBM 8514/A Graphics").prepend(VMManagerDetailSection::sectionSeparator));
+ if (video_config.contains("xga") && (video_config["xga"].toInt() != 0))
+- display_table[Display::Name::Video].append(tr("XGA Graphics").prepend(VMManagerDetailSection::sectionSeparator));
++ display_table[VMManager::Display::Name::Video].append(tr("XGA Graphics").prepend(VMManagerDetailSection::sectionSeparator));
+ if (video_config.contains("da2") && (video_config["da2"].toInt() != 0))
+- display_table[Display::Name::Video].append(tr("IBM PS/55 Display Adapter Graphics").prepend(VMManagerDetailSection::sectionSeparator));
++ display_table[VMManager::Display::Name::Video].append(tr("IBM PS/55 Display Adapter Graphics").prepend(VMManagerDetailSection::sectionSeparator));
+
+ // Voodoo
+ QString voodoo_name = "";
+@@ -641,7 +641,7 @@ VMManagerSystem::setupVars() {
+ break;
+ }
+ }
+- display_table[Display::Name::Voodoo] = voodoo_name;
++ display_table[VMManager::Display::Name::Voodoo] = voodoo_name;
+
+ // Drives
+ // First the number of disks
+@@ -666,7 +666,7 @@ VMManagerSystem::setupVars() {
+ if (disks.count()) {
+ disks_display.append(" / ").append(bus_types.keys().join(", ").toUpper());
+ }
+-// display_table[Display::Name::Disks] = disks_display;
++// display_table[VMManager::Display::Name::Disks] = disks_display;
+
+ // Drives
+ QString new_disk_display;
+@@ -699,7 +699,7 @@ VMManagerSystem::setupVars() {
+ if(new_disk_display.isEmpty()) {
+ new_disk_display = tr("No disks");
+ }
+- display_table[Display::Name::Disks] = new_disk_display;
++ display_table[VMManager::Display::Name::Disks] = new_disk_display;
+
+ // Floppy & CD-ROM
+ QStringList floppyDevices;
+@@ -748,8 +748,8 @@ VMManagerSystem::setupVars() {
+ }
+ }
+
+- display_table[Display::Name::Floppy] = floppyDevices.join(VMManagerDetailSection::sectionSeparator);
+- display_table[Display::Name::CD] = cdromDevices.join(VMManagerDetailSection::sectionSeparator);
++ display_table[VMManager::Display::Name::Floppy] = floppyDevices.join(VMManagerDetailSection::sectionSeparator);
++ display_table[VMManager::Display::Name::CD] = cdromDevices.join(VMManagerDetailSection::sectionSeparator);
+
+ // Removable disks & MO
+ QStringList rdiskDevices;
+@@ -786,8 +786,8 @@ VMManagerSystem::setupVars() {
+ }
+ }
+
+- display_table[Display::Name::RDisk] = rdiskDevices.join(VMManagerDetailSection::sectionSeparator);
+- display_table[Display::Name::MO] = moDevices.join(VMManagerDetailSection::sectionSeparator);
++ display_table[VMManager::Display::Name::RDisk] = rdiskDevices.join(VMManagerDetailSection::sectionSeparator);
++ display_table[VMManager::Display::Name::MO] = moDevices.join(VMManagerDetailSection::sectionSeparator);
+
+
+ // SCSI controllers
+@@ -805,7 +805,7 @@ VMManagerSystem::setupVars() {
+ }
+ }
+ }
+- display_table[Display::Name::SCSIController] = scsiControllers.join(VMManagerDetailSection::sectionSeparator);
++ display_table[VMManager::Display::Name::SCSIController] = scsiControllers.join(VMManagerDetailSection::sectionSeparator);
+
+ // Hard and floppy disk controllers
+ QStringList storageControllers;
+@@ -864,7 +864,7 @@ VMManagerSystem::setupVars() {
+ if (storage_config.contains(ide_qua_internal_name) && (storage_config[ide_qua_internal_name].toInt() != 0))
+ storageControllers.append(DeviceConfig::DeviceName(hdc_get_device(hdc_get_from_internal_name(ide_qua_internal_name.toUtf8().data())), ide_qua_internal_name.toUtf8().constData(), 1));
+
+- display_table[Display::Name::StorageController] = storageControllers.join(VMManagerDetailSection::sectionSeparator);
++ display_table[VMManager::Display::Name::StorageController] = storageControllers.join(VMManagerDetailSection::sectionSeparator);
+
+ // Audio
+ QStringList sndCards;
+@@ -889,7 +889,7 @@ VMManagerSystem::setupVars() {
+ if(sndCards.isEmpty()) {
+ sndCards.append(tr("None"));
+ }
+- display_table[Display::Name::Audio] = sndCards.join(VMManagerDetailSection::sectionSeparator);
++ display_table[VMManager::Display::Name::Audio] = sndCards.join(VMManagerDetailSection::sectionSeparator);
+
+ // MIDI
+ QString midiOutDev;
+@@ -901,7 +901,7 @@ VMManagerSystem::setupVars() {
+ midiOutDev = midiDevName;
+ }
+ }
+- display_table[Display::Name::MidiOut] = midiOutDev;
++ display_table[VMManager::Display::Name::MidiOut] = midiOutDev;
+
+ // midi_device = mt32 (output)
+ // mpu401_standalone = 1
+@@ -940,21 +940,21 @@ VMManagerSystem::setupVars() {
+ if(nicList.isEmpty()) {
+ nicList.append(tr("None"));
+ }
+- display_table[Display::Name::NIC] = nicList.join(VMManagerDetailSection::sectionSeparator);
++ display_table[VMManager::Display::Name::NIC] = nicList.join(VMManagerDetailSection::sectionSeparator);
+
+ // Input (Keyboard)
+ if (input_config.contains("keyboard_type")) {
+ auto keyboard_internal_name = input_config["keyboard_type"];
+ auto keyboard_dev = keyboard_get_from_internal_name(keyboard_internal_name.toUtf8().data());
+ auto keyboard_dev_name = DeviceConfig::DeviceName(keyboard_get_device(keyboard_dev), keyboard_get_internal_name(keyboard_dev), 0);
+- display_table[Display::Name::Keyboard] = keyboard_dev_name;
++ display_table[VMManager::Display::Name::Keyboard] = keyboard_dev_name;
+ }
+
+ // Input (Mouse)
+ auto mouse_internal_name = input_config["mouse_type"];
+ auto mouse_dev = mouse_get_from_internal_name(mouse_internal_name.toUtf8().data());
+ auto mouse_dev_name = DeviceConfig::DeviceName(mouse_get_device(mouse_dev), mouse_get_internal_name(mouse_dev), 0);
+- display_table[Display::Name::Mouse] = mouse_dev_name;
++ display_table[VMManager::Display::Name::Mouse] = mouse_dev_name;
+
+ // Input (joystick)
+ QString joystickDevice;
+@@ -965,7 +965,7 @@ VMManagerSystem::setupVars() {
+ joystickDevice = joystickName;
+ }
+ }
+- display_table[Display::Name::Joystick] = joystickDevice;
++ display_table[VMManager::Display::Name::Joystick] = joystickDevice;
+
+ // # Ports
+ // Serial
+@@ -1026,8 +1026,8 @@ VMManagerSystem::setupVars() {
+ if (portIndex == PARALLEL_MAX)
+ break;
+ }
+- display_table[Display::Name::Serial] = (serialFinal.empty() ? tr("None") : serialFinal.join(", "));
+- display_table[Display::Name::Parallel] = (lptFinal.empty() ? tr("None") : lptFinal.join((hasLptDevices ? VMManagerDetailSection::sectionSeparator : ", ")));
++ display_table[VMManager::Display::Name::Serial] = (serialFinal.empty() ? tr("None") : serialFinal.join(", "));
++ display_table[VMManager::Display::Name::Parallel] = (lptFinal.empty() ? tr("None") : lptFinal.join((hasLptDevices ? VMManagerDetailSection::sectionSeparator : ", ")));
+
+ // ISA RTC
+ QString isartc_dev_name = "";
+@@ -1036,7 +1036,7 @@ VMManagerSystem::setupVars() {
+ auto isartc_dev = isartc_get_from_internal_name(isartc_internal_name.toUtf8().data());
+ isartc_dev_name = DeviceConfig::DeviceName(isartc_get_device(isartc_dev), isartc_get_internal_name(isartc_dev), 0);
+ }
+- display_table[Display::Name::IsaRtc] = isartc_dev_name;
++ display_table[VMManager::Display::Name::IsaRtc] = isartc_dev_name;
+
+ // ISA RAM
+ QStringList IsaMemCards;
+@@ -1053,7 +1053,7 @@ VMManagerSystem::setupVars() {
+ }
+ }
+ }
+- display_table[Display::Name::IsaMem] = IsaMemCards.join(VMManagerDetailSection::sectionSeparator);
++ display_table[VMManager::Display::Name::IsaMem] = IsaMemCards.join(VMManagerDetailSection::sectionSeparator);
+
+ // ISA ROM
+ QStringList IsaRomCards;
+@@ -1070,7 +1070,7 @@ VMManagerSystem::setupVars() {
+ }
+ }
+ }
+- display_table[Display::Name::IsaRom] = IsaRomCards.join(VMManagerDetailSection::sectionSeparator);
++ display_table[VMManager::Display::Name::IsaRom] = IsaRomCards.join(VMManagerDetailSection::sectionSeparator);
+ }
+
+ bool
+@@ -1119,7 +1119,7 @@ QString
+ processStatusChanged();
+ }
+ QString
+-VMManagerSystem::getDisplayValue(Display::Name key)
++VMManagerSystem::getDisplayValue(VMManager::Display::Name key)
+ {
+ return (display_table.contains(key)) ? display_table[key] : "";
+ }
diff --git a/emulators/86Box/files/patch-src_video_CMakeLists.txt b/emulators/86Box/files/patch-src_video_CMakeLists.txt
new file mode 100644
index 000000000000..36e929c16c4b
--- /dev/null
+++ b/emulators/86Box/files/patch-src_video_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- src/video/CMakeLists.txt.orig 2025-08-24 18:56:26 UTC
++++ src/video/CMakeLists.txt
+@@ -143,6 +143,8 @@ add_library(vid OBJECT
+
+ )
+
++target_include_directories(vid PRIVATE /usr/local/include)
++
+ if(G100)
+ target_compile_definitions(vid PRIVATE USE_G100)
+ endif()
diff --git a/emulators/Makefile b/emulators/Makefile
index 16651319508e..3940ba358293 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -1,6 +1,7 @@
COMMENT = Emulators for other operating systems
SUBDIR += 86Box
+ SUBDIR += Ymir
SUBDIR += adamem
SUBDIR += almostti
SUBDIR += anese
@@ -120,7 +121,6 @@
SUBDIR += qemu-powernv
SUBDIR += qemu-user-static
SUBDIR += qemu-user-static-devel
- SUBDIR += qemu8
SUBDIR += qmc2
SUBDIR += quasi88
SUBDIR += reicast
diff --git a/emulators/Ymir/Makefile b/emulators/Ymir/Makefile
new file mode 100644
index 000000000000..b6cfa0301e45
--- /dev/null
+++ b/emulators/Ymir/Makefile
@@ -0,0 +1,93 @@
+PORTNAME= Ymir
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.1.7
+CATEGORIES= emulators
+
+MAINTAINER= bsdcode@disroot.org
+COMMENT= Sega Saturn emulator
+WWW= https://github.com/StrikerX3/Ymir/
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+ONLY_FOR_ARCHS= aarch64 amd64
+ONLY_FOR_ARCHS_REASON= upstream only supports aarch64 and amd64
+
+BUILD_DEPENDS= cereal>0:devel/cereal \
+ concurrentqueue>0:devel/concurrentqueue \
+ cxxopts>0:devel/cxxopts \
+ glslangValidator:graphics/glslang \
+ glslc:graphics/shaderc \
+ stb>0:devel/stb \
+ tomlplusplus>0:devel/tomlplusplus \
+ vulkan-headers>0:graphics/vulkan-headers
+LIB_DEPENDS= libchdr.so:devel/libchdr \
+ libfmt.so:devel/libfmt \
+ libglfw.so:graphics/glfw \
+ libimgui.so:x11-toolkits/imgui \
+ liblz4.so:archivers/liblz4 \
+ librtmidi.so:audio/rtmidi \
+ libvulkan.so:graphics/vulkan-loader \
+ libxxhash.so:devel/xxhash
+
+FLAVORS= gtk3 gtk4
+FLAVOR?= ${FLAVORS:[1]}
+gtk4_PKGNAMESUFFIX= -gtk4
+_gtk3_BR_DEPENDS= zenity:x11/zenity
+_gtk4_BR_DEPENDS= zenity:x11/zenity4
+${FLAVOR}_BUILD_DEPENDS= ${_${FLAVOR}_BR_DEPENDS}
+${FLAVOR}_RUN_DEPENDS= ${_${FLAVOR}_BR_DEPENDS}
+
+USES= cmake compiler:c++20-lang desktop-file-utils gl \
+ llvm${_LLVM_${ARCH}} pkgconfig sdl xorg
+_LLVM_aarch64= :min=21
+USE_GITHUB= yes
+GH_ACCOUNT= StrikerX3
+GH_TUPLE= StrikerX3:mio:c9dbe3a6f74b2c2c4a6c9621005c3df213a33eaa:mio/vendor/mio
+USE_GL= glut
+USE_SDL= sdl3
+USE_XORG= xi xmu
+
+CMAKE_OFF= Ymir_DEV_BUILD \
+ Ymir_ENABLE_IMGUI_DEMO \
+ Ymir_ENABLE_SANDBOX \
+ Ymir_ENABLE_TESTS \
+ Ymir_INCLUDE_PACKAGING \
+ Ymir_SHARED_LIBS
+
+CFLAGS+= -I${LOCALBASE}/include/concurrentqueue/moodycamel \
+ -I${LOCALBASE}/include/stb \
+ -I${WRKSRC}/vendor/imgui/ymir
+
+PLIST_FILES= bin/ymir-sdl3 \
+ share/applications/io.github.strikerx3.ymir.desktop \
+ share/icons/hicolor/256x256/apps/ymir.png \
+ share/metainfo/io.github.strikerx3.ymir.xml
+
+OPTIONS_DEFINE= LTO YMDASM
+OPTIONS_DEFAULT= LTO
+
+YMDASM_DESC= Include Ymir disassembly tool
+
+LTO_CMAKE_BOOL= Ymir_ENABLE_IPO
+
+YMDASM_CMAKE_BOOL= Ymir_ENABLE_YMDASM
+YMDASM_PLIST_FILES= bin/ymdasm
+
+post-install:
+ ${INSTALL_PROGRAM} ${INSTALL_WRKSRC}/apps/ymir-sdl3/ymir-sdl3-${DISTVERSION} \
+ ${STAGEDIR}${PREFIX}/bin/ymir-sdl3
+ ${INSTALL_DATA} ${WRKSRC}/apps/ymir-sdl3/res/io.github.strikerx3.ymir.desktop \
+ ${STAGEDIR}${DESKTOPDIR}
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps \
+ ${STAGEDIR}${PREFIX}/share/metainfo
+ ${INSTALL_DATA} ${WRKSRC}/apps/ymir-sdl3/res/ymir.png \
+ ${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps
+ ${INSTALL_DATA} ${WRKSRC}/apps/ymir-sdl3/res/io.github.strikerx3.ymir.xml \
+ ${STAGEDIR}${PREFIX}/share/metainfo
+
+post-install-YMDASM-on:
+ ${INSTALL_PROGRAM} ${INSTALL_WRKSRC}/apps/ymdasm/ymdasm-${DISTVERSION} \
+ ${STAGEDIR}${PREFIX}/bin/ymdasm
+
+.include <bsd.port.mk>
diff --git a/emulators/Ymir/distinfo b/emulators/Ymir/distinfo
new file mode 100644
index 000000000000..78b5b3eb2cee
--- /dev/null
+++ b/emulators/Ymir/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1754870707
+SHA256 (StrikerX3-Ymir-v0.1.7_GH0.tar.gz) = 8453407de50a4abef05c985f4eabf32b5185bf5a651583d250f820ff60bae93a
+SIZE (StrikerX3-Ymir-v0.1.7_GH0.tar.gz) = 5431708
+SHA256 (StrikerX3-mio-c9dbe3a6f74b2c2c4a6c9621005c3df213a33eaa_GH0.tar.gz) = 384d3a3ee249ebda0766fa5dc9f8bc5a871c8b2e3d3eedf46f330e6350058738
+SIZE (StrikerX3-mio-c9dbe3a6f74b2c2c4a6c9621005c3df213a33eaa_GH0.tar.gz) = 34871
diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt b/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt
new file mode 100644
index 000000000000..e18e7f768ee3
--- /dev/null
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- apps/ymir-sdl3/CMakeLists.txt.orig 2025-07-20 22:35:27 UTC
++++ apps/ymir-sdl3/CMakeLists.txt
+@@ -256,7 +256,7 @@ target_link_libraries(ymir-sdl3 PRIVATE
+ fmt
+ cxxopts
+ imgui::imgui
+- tomlplusplus::tomlplusplus
++# tomlplusplus::tomlplusplus
+ cereal::cereal
+ lz4::lz4
+ stb::stb
diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_app.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_app.cpp
new file mode 100644
index 000000000000..fc08ed1ec905
--- /dev/null
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_app.cpp
@@ -0,0 +1,13 @@
+--- apps/ymir-sdl3/src/app/app.cpp.orig 2025-08-11 00:12:19 UTC
++++ apps/ymir-sdl3/src/app/app.cpp
+@@ -114,8 +114,8 @@
+ #include <SDL3/SDL_messagebox.h>
+ #include <SDL3/SDL_misc.h>
+
+-#include <backends/imgui_impl_sdl3.h>
+-#include <backends/imgui_impl_sdlrenderer3.h>
++#include <imgui_impl_sdl3.h>
++#include <imgui_impl_sdlrenderer3.h>
+
+ #include <imgui.h>
+
diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_cartridge__settings__view.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_cartridge__settings__view.cpp
new file mode 100644
index 000000000000..1111d91b86b1
--- /dev/null
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_cartridge__settings__view.cpp
@@ -0,0 +1,11 @@
+--- apps/ymir-sdl3/src/app/ui/views/settings/cartridge_settings_view.cpp.orig 2025-07-20 22:35:27 UTC
++++ apps/ymir-sdl3/src/app/ui/views/settings/cartridge_settings_view.cpp
+@@ -13,7 +13,7 @@
+ #include <util/file_loader.hpp>
+ #include <util/sdl_file_dialog.hpp>
+
+-#include <misc/cpp/imgui_stdlib.h>
++#include <imgui_stdlib.h>
+
+ #include <fmt/std.h>
+
diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_general__settings__view.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_general__settings__view.cpp
new file mode 100644
index 000000000000..1c363ec3b61f
--- /dev/null
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_general__settings__view.cpp
@@ -0,0 +1,11 @@
+--- apps/ymir-sdl3/src/app/ui/views/settings/general_settings_view.cpp.orig 2025-07-20 22:35:27 UTC
++++ apps/ymir-sdl3/src/app/ui/views/settings/general_settings_view.cpp
+@@ -5,7 +5,7 @@
+
+ #include <app/ui/widgets/common_widgets.hpp>
+
+-#include <misc/cpp/imgui_stdlib.h>
++#include <imgui_stdlib.h>
+
+ #include <util/math.hpp>
+ #include <util/sdl_file_dialog.hpp>
diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_ipl__settings__view.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_ipl__settings__view.cpp
new file mode 100644
index 000000000000..b54026493c5c
--- /dev/null
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_ipl__settings__view.cpp
@@ -0,0 +1,11 @@
+--- apps/ymir-sdl3/src/app/ui/views/settings/ipl_settings_view.cpp.orig 2025-07-20 22:35:27 UTC
++++ apps/ymir-sdl3/src/app/ui/views/settings/ipl_settings_view.cpp
+@@ -4,7 +4,7 @@
+
+ #include <util/sdl_file_dialog.hpp>
+
+-#include <misc/cpp/imgui_stdlib.h>
++#include <imgui_stdlib.h>
+
+ #include <SDL3/SDL_misc.h>
+
diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_system__settings__view.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_system__settings__view.cpp
new file mode 100644
index 000000000000..dfde2460d6de
--- /dev/null
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_system__settings__view.cpp
@@ -0,0 +1,11 @@
+--- apps/ymir-sdl3/src/app/ui/views/settings/system_settings_view.cpp.orig 2025-07-20 22:35:27 UTC
++++ apps/ymir-sdl3/src/app/ui/views/settings/system_settings_view.cpp
+@@ -11,7 +11,7 @@
+ #include <util/regions.hpp>
+ #include <util/sdl_file_dialog.hpp>
+
+-#include <misc/cpp/imgui_stdlib.h>
++#include <imgui_stdlib.h>
+
+ #include <ymir/util/size_ops.hpp>
+
diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_tweaks__settings__view.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_tweaks__settings__view.cpp
new file mode 100644
index 000000000000..65fa660f361e
--- /dev/null
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_tweaks__settings__view.cpp
@@ -0,0 +1,11 @@
+--- apps/ymir-sdl3/src/app/ui/views/settings/tweaks_settings_view.cpp.orig 2025-07-20 22:35:27 UTC
++++ apps/ymir-sdl3/src/app/ui/views/settings/tweaks_settings_view.cpp
+@@ -4,7 +4,7 @@
+
+ #include <app/events/emu_event_factory.hpp>
+
+-#include <misc/cpp/imgui_stdlib.h>
++#include <imgui_stdlib.h>
+
+ #include <SDL3/SDL_clipboard.h>
+
diff --git a/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt b/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt
new file mode 100644
index 000000000000..2c971a407b7a
--- /dev/null
+++ b/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt
@@ -0,0 +1,13 @@
+--- libs/ymir-core/CMakeLists.txt.orig 2025-07-20 22:35:27 UTC
++++ libs/ymir-core/CMakeLists.txt
+@@ -239,7 +239,10 @@ target_compile_features(ymir-core PUBLIC cxx_std_20)
+ target_compile_features(ymir-core PUBLIC cxx_std_20)
+
+ ## Add dependencies
++find_package(Threads REQUIRED)
++
+ target_link_libraries(ymir-core PUBLIC
++ Threads::Threads
+ fmt
+ mio
+ concurrentqueue
diff --git a/emulators/Ymir/files/patch-vendor_CMakeLists.txt b/emulators/Ymir/files/patch-vendor_CMakeLists.txt
new file mode 100644
index 000000000000..c6c095066435
--- /dev/null
+++ b/emulators/Ymir/files/patch-vendor_CMakeLists.txt
@@ -0,0 +1,100 @@
+--- vendor/CMakeLists.txt.orig 2025-07-20 22:35:27 UTC
++++ vendor/CMakeLists.txt
+@@ -22,9 +22,12 @@ message(STATUS "Adding vendored libraries")
+
+ message(STATUS "Adding vendored libraries")
+
++find_package(PkgConfig REQUIRED)
++
+ # {fmt} - https://github.com/fmtlib/fmt
+ message(STATUS "==> {fmt}")
+-add_subdirectory(fmt EXCLUDE_FROM_ALL)
++pkg_check_modules(fmt REQUIRED IMPORTED_TARGET GLOBAL fmt)
++add_library(fmt ALIAS PkgConfig::fmt)
+
+ # mio - https://github.com/vimpunk/mio
+ # Notes:
+@@ -36,65 +39,55 @@ message(STATUS "==> SDL")
+
+ # SDL - https://github.com/libsdl-org/SDL
+ message(STATUS "==> SDL")
+-set(SDL_DISABLE_UNINSTALL ON)
+-set(SDL_TEST_LIBRARY OFF)
+-set(SDL_TESTS OFF)
+-set(SDL_EXAMPLES OFF)
+-if (BUILD_SHARED_LIBS)
+- set(SDL_SHARED ON)
+- set(SDL_STATIC OFF)
+-else ()
+- set(SDL_SHARED OFF)
+- set(SDL_STATIC ON)
+-endif ()
+-add_subdirectory_quiet(SDL EXCLUDE_FROM_ALL)
++find_package(SDL3 REQUIRED GLOBAL)
+
+ # cxxopts - https://github.com/jarro2783/cxxopts
+ message(STATUS "==> cxxopts")
+-add_subdirectory(cxxopts EXCLUDE_FROM_ALL)
++find_package(cxxopts REQUIRED GLOBAL)
++add_library(cxxopts ALIAS cxxopts::cxxopts)
+
+ # concurrentqueue - https://github.com/cameron314/concurrentqueue
+ message(STATUS "==> concurrentqueue")
+-add_subdirectory(concurrentqueue EXCLUDE_FROM_ALL)
++find_package(concurrentqueue REQUIRED GLOBAL)
++add_library(concurrentqueue ALIAS concurrentqueue::concurrentqueue)
+
+ # dear ImGui - https://github.com/ocornut/imgui
+ # docking branch
+ message(STATUS "==> dear ImGui")
+-add_subdirectory(imgui EXCLUDE_FROM_ALL)
++find_package(imgui REQUIRED GLOBAL)
+
+ # toml++ - https://github.com/marzer/tomlplusplus
+ message(STATUS "==> toml++")
+-add_subdirectory(tomlplusplus EXCLUDE_FROM_ALL)
++find_package(tomlplusplus REQUIRED GLOBAL)
+
+ # xxHash - https://github.com/Cyan4973/xxHash
+ message(STATUS "==> xxHash")
+-add_subdirectory(xxHash EXCLUDE_FROM_ALL)
++pkg_check_modules(libxxhash REQUIRED IMPORTED_TARGET GLOBAL libxxhash)
++add_library(xxHash::xxHash ALIAS PkgConfig::libxxhash)
+
+ # lz4 - https://github.com/lz4/lz4
+ message(STATUS "==> lz4")
+-add_subdirectory(lz4 EXCLUDE_FROM_ALL)
++pkg_check_modules(liblz4 REQUIRED IMPORTED_TARGET GLOBAL liblz4)
++add_library(lz4::lz4 ALIAS PkgConfig::liblz4)
+
+ # cereal - https://github.com/USCiLab/cereal
+ message(STATUS "==> cereal")
+-set(BUILD_DOC OFF)
+-set(BUILD_SANDBOX OFF)
+-set(JUST_INSTALL_CEREAL ON)
+-add_subdirectory(cereal EXCLUDE_FROM_ALL)
++find_package(cereal REQUIRED GLOBAL)
+
+ # stb - https://github.com/nothings/stb
+ message(STATUS "==> stb")
+-add_subdirectory(stb)
++add_library(stb INTERFACE)
++add_library(stb::stb ALIAS stb)
+
+ # libchdr - https://github.com/rtissera/libchdr
+ message(STATUS "==> libchdr")
+-set(BUILD_FUZZER OFF)
+-add_subdirectory(libchdr)
++pkg_check_modules(libchdr REQUIRED IMPORTED_TARGET GLOBAL libchdr)
++add_library(chdr-static ALIAS PkgConfig::libchdr)
+
+ # rtmidi - https://github.com/thestk/rtmidi
+ message(STATUS "==> rtmidi")
+-set(RTMIDI_BUILD_STATIC_LIBS ON)
+-set(RTMIDI_BUILD_TESTING OFF)
+-add_subdirectory(rtmidi)
++pkg_check_modules(rtmidi REQUIRED IMPORTED_TARGET GLOBAL rtmidi)
++add_library(rtmidi ALIAS PkgConfig::rtmidi)
+
+ # --------------------------------------------------------------------------------------------------
+ # Test dependencies
diff --git a/emulators/Ymir/files/patch-vendor_mio_include_mio_detail_mmap.ipp b/emulators/Ymir/files/patch-vendor_mio_include_mio_detail_mmap.ipp
new file mode 100644
index 000000000000..cf610729c0d1
--- /dev/null
+++ b/emulators/Ymir/files/patch-vendor_mio_include_mio_detail_mmap.ipp
@@ -0,0 +1,13 @@
+https://github.com/vimpunk/mio/issues/110
+
+--- vendor/mio/include/mio/detail/mmap.ipp.orig 2025-02-12 00:14:41 UTC
++++ vendor/mio/include/mio/detail/mmap.ipp
+@@ -208,7 +208,7 @@ inline mmap_context memory_map(const file_handle_type
+ char* mapping_start = static_cast<char*>(::mmap(
+ 0, // Don't give hint as to where to map.
+ length_to_map,
+- mode == access_mode::read ? PROT_READ : PROT_WRITE,
++ mode == access_mode::read ? PROT_READ : PROT_READ | PROT_WRITE,
+ mode == access_mode::copy_on_write ? MAP_PRIVATE : MAP_SHARED,
+ file_handle,
+ aligned_offset));
diff --git a/emulators/Ymir/pkg-descr b/emulators/Ymir/pkg-descr
new file mode 100644
index 000000000000..2eae362fc391
--- /dev/null
+++ b/emulators/Ymir/pkg-descr
@@ -0,0 +1,16 @@
+Ymir is a Sega Saturn emulator with the following features:
+
+- Load games from MAME CHD, BIN+CUE, IMG+CCD, MDF+MDS or ISO files
+- Automatic IPL (BIOS) ROM detection
+- Automatic region switching
+- Up to two players with standard Control Pads or 3D Control Pads on both ports
+- Fully customizable keybindings
+- Backup RAM, DRAM and ROM cartridges
+- Integrated backup memory manager to import and export saves, and transfer
+ between internal and cartridge RAM
+- Save states
+- Rewinding (up to one minute at 60 fps), turbo speed, frame step (forwards and
+ backwards)
+- Full screen mode with VRR support and low input lag
+- Optional deinterlaced/progressive rendering of high resolution modes
+- A feature-rich debugger
diff --git a/emulators/ares/Makefile b/emulators/ares/Makefile
index 6ec6dc0301ee..d2e59fa9646a 100644
--- a/emulators/ares/Makefile
+++ b/emulators/ares/Makefile
@@ -1,8 +1,10 @@
PORTNAME= ares
DISTVERSIONPREFIX= v
-DISTVERSION= 144
+DISTVERSION= 145
PORTREVISION= 1
CATEGORIES= emulators
+MASTER_SITES= https://github.com/${PORTNAME}-emulator/${PORTNAME}/releases/download/${DISTVERSIONFULL}/
+DISTNAME= ${PORTNAME}-source
MAINTAINER= bsdcode@disroot.org
COMMENT= Multi-system emulator
@@ -14,16 +16,14 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= librashader>0:devel/librashader
USES= cmake compiler:c++17-lang gl gnome pkgconfig xorg
-USE_GITHUB= yes
-GH_ACCOUNT= ares-emulator
USE_GL= opengl
USE_GNOME= gtk30
USE_XORG= x11 xext xrandr xrender
CMAKE_ARGS= -DARES_CORES="${_CORES:S/ /;/gW}" \
- -DARES_VERSION_OVERRIDE=${DISTVERSIONFULL} \
-DENABLE_CCACHE=${CCACHE_ENABLED}
-CMAKE_ON= ARES_SKIP_DEPS \
+CMAKE_ON= ARES_BUILD_OFFICIAL \
+ ARES_SKIP_DEPS \
ARES_UNITY_CORES
CMAKE_OFF= ARES_BUILD_LOCAL \
ARES_BUNDLE_SHADERS \
@@ -32,6 +32,8 @@ CMAKE_OFF= ARES_BUILD_LOCAL \
EXTRACT_AFTER_ARGS= --exclude thirdparty/librashader \
--no-same-owner --no-same-permissions
+WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}
+
OPTIONS_DEFINE= CHD SDL TOOLS
OPTIONS_DEFAULT= A26 ALSA AO CHD CV FC GB GBA LIBRASHADER \
LIBRETRO LTO MD MS MSX MYVISION N64 NG NGP \
@@ -62,7 +64,7 @@ GBA_DESC= Game Boy Advance
GB_DESC= Game Boy / Game Boy Color
HOTKEYS_DESC= Inofficial hotkeys locking patch
LIBRASHADER_DESC= Slang-shader support via librashader
-LIBRETRO_DESC= Install slang-shaders from libretro
+LIBRETRO_DESC= Install slang-shaders from libretro (implies ${LIBRETRO_IMPLIES})
MD_DESC= Sega Mega Drive / Genesis
MSX_DESC= Microsoft MSX
MS_DESC= Sega Master System / Mark III
@@ -155,6 +157,8 @@ SG_VARS= _CORES+=sg
SPEC_VARS= _CORES+=spec
+# https://github.com/ares-emulator/ares/issues/2090
+TOOLS_IMPLIES= GBA MD NG SFC
TOOLS_CMAKE_BOOL= ARES_BUILD_OPTIONAL_TARGETS
UDEV_LIB_DEPENDS= libudev.so:devel/libudev-devd
diff --git a/emulators/ares/distinfo b/emulators/ares/distinfo
index 67421c24b118..6d6b5f6a7b60 100644
--- a/emulators/ares/distinfo
+++ b/emulators/ares/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1745841018
-SHA256 (ares-emulator-ares-v144_GH0.tar.gz) = 8d66fc880375293aaddbff575f21571ed9c7bc05bd5dd0e8e9ea65b104d5a458
-SIZE (ares-emulator-ares-v144_GH0.tar.gz) = 8959609
+TIMESTAMP = 1752185303
+SHA256 (ares-source.tar.gz) = 7a76acf87cca2903552683347fdf6f1cd06f436fa4e0c247108688785cbbd14b
+SIZE (ares-source.tar.gz) = 8967048
diff --git a/emulators/catapult/Makefile b/emulators/catapult/Makefile
index 651e97e13a2f..307da6124c7b 100644
--- a/emulators/catapult/Makefile
+++ b/emulators/catapult/Makefile
@@ -1,6 +1,6 @@
PORTNAME= catapult
PORTVERSION= 18.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= emulators
MASTER_SITES= https://github.com/openMSX/openMSX/releases/download/RELEASE_${PORTVERSION:S/./_/g}/
DISTNAME= openmsx-${PORTNAME}-${PORTVERSION}
diff --git a/emulators/citra/Makefile b/emulators/citra/Makefile
index 5db1b3bb3ee3..56bda1777a87 100644
--- a/emulators/citra/Makefile
+++ b/emulators/citra/Makefile
@@ -104,7 +104,7 @@ post-patch:
.endif
post-configure:
- @${CP} ${DISTFILES:M*\:gamedb:C/\:.*//:S,^,${_DISTDIR},} \
+ @${CP} ${DISTFILES:M*\:gamedb:C/\:.*//:S,^,${DISTDIR}/,} \
${BUILD_WRKSRC}/dist/compatibility_list/
.include <bsd.port.post.mk>
diff --git a/emulators/dolphin-emu/Makefile b/emulators/dolphin-emu/Makefile
index 71612ba87946..28a4114b8714 100644
--- a/emulators/dolphin-emu/Makefile
+++ b/emulators/dolphin-emu/Makefile
@@ -1,5 +1,6 @@
PORTNAME= dolphin-emu
PORTVERSION= 2506
+PORTREVISION= 1
CATEGORIES= emulators
MAINTAINER= martymac@FreeBSD.org
diff --git a/emulators/dosbox-staging/Makefile b/emulators/dosbox-staging/Makefile
index 6725c4cfe143..0b75575cc5de 100644
--- a/emulators/dosbox-staging/Makefile
+++ b/emulators/dosbox-staging/Makefile
@@ -1,6 +1,7 @@
PORTNAME= dosbox-staging
DISTVERSIONPREFIX= v
-DISTVERSION= 0.82.1
+DISTVERSION= 0.82.2
+PORTREVISION= 1
CATEGORIES= emulators
MAINTAINER= makc@FreeBSD.org
diff --git a/emulators/dosbox-staging/distinfo b/emulators/dosbox-staging/distinfo
index 89226e511180..28eb774820ed 100644
--- a/emulators/dosbox-staging/distinfo
+++ b/emulators/dosbox-staging/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1744560172
-SHA256 (dosbox-staging-dosbox-staging-v0.82.1_GH0.tar.gz) = 9d943d6610b6773cb0b27ba24904c85459757fbbfa0f34c72e76082132f77568
-SIZE (dosbox-staging-dosbox-staging-v0.82.1_GH0.tar.gz) = 6691719
+TIMESTAMP = 1751131644
+SHA256 (dosbox-staging-dosbox-staging-v0.82.2_GH0.tar.gz) = 387c97b373c3164ab5abbbc2b210bf94b5567057abe44ee1e8b4d4e725bd422c
+SIZE (dosbox-staging-dosbox-staging-v0.82.2_GH0.tar.gz) = 6691414
diff --git a/emulators/dosbox-x/files/patch-fix-ffmpeg8 b/emulators/dosbox-x/files/patch-fix-ffmpeg8
new file mode 100644
index 000000000000..7c1782a7b3bd
--- /dev/null
+++ b/emulators/dosbox-x/files/patch-fix-ffmpeg8
@@ -0,0 +1,88 @@
+Fix build with FFmpeg 8
+https://github.com/joncampbell123/dosbox-x/issues/5803
+
+--- src/hardware/hardware.cpp.orig 2025-08-25 08:00:00 UTC
++++ src/hardware/hardware.cpp
+@@ -123,20 +123,18 @@ void ffmpeg_closeall() {
+ ffmpeg_avformat_began = false;
+ }
+ avio_close(ffmpeg_fmt_ctx->pb);
+- if (ffmpeg_vid_ctx != NULL) avcodec_close(ffmpeg_vid_ctx);
+- if (ffmpeg_aud_ctx != NULL) avcodec_close(ffmpeg_aud_ctx);
++ if (ffmpeg_vid_ctx != NULL) avcodec_free_context(&ffmpeg_vid_ctx);
++ if (ffmpeg_aud_ctx != NULL) avcodec_free_context(&ffmpeg_aud_ctx);
+ avformat_free_context(ffmpeg_fmt_ctx);
+ ffmpeg_fmt_ctx = NULL;
+ ffmpeg_vid_ctx = NULL; // NTS: avformat_free_context() freed this for us, don't free again
+ ffmpeg_aud_ctx = NULL; // NTS: avformat_free_context() freed this for us, don't free again
+ }
+ if (ffmpeg_vid_ctx != NULL) {
+- avcodec_close(ffmpeg_vid_ctx);
+ avcodec_free_context(&ffmpeg_vid_ctx);
+ ffmpeg_vid_ctx = NULL;
+ }
+ if (ffmpeg_aud_ctx != NULL) {
+- avcodec_close(ffmpeg_aud_ctx);
+ avcodec_free_context(&ffmpeg_aud_ctx);
+ ffmpeg_aud_ctx = NULL;
+ }
+@@ -171,7 +169,6 @@ void ffmpeg_audio_frame_send() {
+
+ if (!pkt) E_Exit("Error: Unable to alloc packet");
+
+- ffmpeg_aud_frame->key_frame = 1;
+ ffmpeg_aud_frame->pts = (int64_t)ffmpeg_audio_sample_counter;
+ r=avcodec_send_frame(ffmpeg_aud_ctx,ffmpeg_aud_frame);
+ if (r < 0 && r != AVERROR(EAGAIN))
+@@ -426,7 +423,6 @@ void ffmpeg_reopen_video(double fps,const int bpp) {
+
+ void ffmpeg_reopen_video(double fps,const int bpp) {
+ if (ffmpeg_vid_ctx != NULL) {
+- avcodec_close(ffmpeg_vid_ctx);
+ avcodec_free_context(&ffmpeg_vid_ctx);
+ ffmpeg_vid_ctx = NULL;
+ }
+@@ -1271,7 +1267,7 @@ skip_shot:
+ ffmpeg_aud_ctx->sample_rate = (int)capture.video.audiorate;
+ ffmpeg_aud_ctx->flags = 0; // do not use global headers
+ ffmpeg_aud_ctx->bit_rate = 320000;
+- ffmpeg_aud_ctx->profile = FF_PROFILE_AAC_LOW;
++ // ffmpeg_aud_ctx->profile = FF_PROFILE_AAC_LOW;
+
+ #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59,24,100)
+ ffmpeg_aud_ctx->channels = 2;
+@@ -1531,7 +1527,6 @@ skip_shot:
+
+ // encode it
+ ffmpeg_vid_frame->pts = (int64_t)capture.video.frames; // or else libx264 complains about non-monotonic timestamps
+- ffmpeg_vid_frame->key_frame = ((capture.video.frames % 15) == 0)?1:0;
+
+ r=avcodec_send_frame(ffmpeg_vid_ctx,ffmpeg_vid_frame);
+ if (r < 0 && r != AVERROR(EAGAIN))
+@@ -1768,7 +1763,7 @@ skip_mt_wav:
+ }
+
+ #pragma pack(push,1)
+-typedef struct pcap_hdr_struct_t {
++typedef struct {
+ uint32_t magic_number; /* magic number */
+ uint16_t version_major; /* major version number */
+ uint16_t version_minor; /* minor version number */
+@@ -1776,14 +1771,14 @@ typedef struct pcap_hdr_struct_t {
+ uint32_t sigfigs; /* accuracy of timestamps */
+ uint32_t snaplen; /* max length of captured packets, in octets */
+ uint32_t network; /* data link type */
+-};
++} pcap_hdr_struct_t;
+
+-typedef struct pcaprec_hdr_struct_t {
++typedef struct {
+ uint32_t ts_sec; /* timestamp seconds */
+ uint32_t ts_usec; /* timestamp microseconds */
+ uint32_t incl_len; /* number of octets of packet saved in file */
+ uint32_t orig_len; /* actual length of packet */
+-};
++} pcaprec_hdr_struct_t;
+ #pragma pack(pop)
+
+ void Capture_WritePacket(bool /*send*/,const unsigned char *buf,size_t len) {
diff --git a/emulators/dps8m/Makefile b/emulators/dps8m/Makefile
index 748efbfd4bd4..59c203adf4e2 100644
--- a/emulators/dps8m/Makefile
+++ b/emulators/dps8m/Makefile
@@ -1,7 +1,6 @@
PORTNAME= dps8m
DISTVERSIONPREFIX= R
-DISTVERSION= 3.0.1
-PORTREVISION= 1
+DISTVERSION= 3.1.0
CATEGORIES= emulators
MAINTAINER= gspurki@gmail.com
diff --git a/emulators/dps8m/distinfo b/emulators/dps8m/distinfo
index 3385ea725cbb..1da2f3f4a6e5 100644
--- a/emulators/dps8m/distinfo
+++ b/emulators/dps8m/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1691794269
-SHA256 (dps8m-R3.0.1.tar.bz2) = 583b2e333f094d5e2a5139c832d5aa907455be34edf61560590ac27398208147
-SIZE (dps8m-R3.0.1.tar.bz2) = 13052895
+TIMESTAMP = 1748948393
+SHA256 (dps8m-R3.1.0.tar.bz2) = ec9dd499eb5a32be717d7ad3f8a8e34f12ff5a66a44aa1ebb4bf6cf17ad3b88c
+SIZE (dps8m-R3.1.0.tar.bz2) = 15635134
diff --git a/emulators/dps8m/files/patch-src_Makefile.mk b/emulators/dps8m/files/patch-src_Makefile.mk
deleted file mode 100644
index be9c3e886588..000000000000
--- a/emulators/dps8m/files/patch-src_Makefile.mk
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/Makefile.mk.orig 2023-08-13 10:22:22 UTC
-+++ src/Makefile.mk
-@@ -294,7 +294,7 @@ endif
-
- _DEBUGOPTFLAG := -g
- ifndef TESTING
-- OPTFLAGS = -O3 $(_DEBUGOPTFLAG) -U_FORTIFY_SOURCE -fno-stack-protector
-+# OPTFLAGS = -O3 $(_DEBUGOPTFLAG) -U_FORTIFY_SOURCE -fno-stack-protector
- ifdef DUMA
- CFLAGS += -I../dps8 -I. -include dps8_duma.h
- OPTFLAGS += -DDUMA=1
diff --git a/emulators/es-de/Makefile b/emulators/es-de/Makefile
index 5e494aad2821..3695fa607252 100644
--- a/emulators/es-de/Makefile
+++ b/emulators/es-de/Makefile
@@ -1,7 +1,6 @@
PORTNAME= es-de
DISTVERSIONPREFIX= v
-DISTVERSION= 3.2.0
-PORTREVISION= 1
+DISTVERSION= 3.3.0
CATEGORIES= emulators
MAINTAINER= bsdcode@disroot.org
@@ -29,7 +28,7 @@ LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \
libharfbuzz.so:print/harfbuzz \
libicuuc.so:devel/icu \
liblunasvg.so:graphics/lunasvg \
- libpoppler.so:graphics/poppler \
+ libpoppler-cpp.so:graphics/poppler \
libpugixml.so:textproc/pugixml \
librlottie.so:graphics/rlottie
RUN_DEPENDS= ${_BR_DEPENDS}
diff --git a/emulators/es-de/distinfo b/emulators/es-de/distinfo
index c3e2a5486a63..d77a0d35d056 100644
--- a/emulators/es-de/distinfo
+++ b/emulators/es-de/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1743784837
-SHA256 (emulationstation-de-v3.2.0.tar.bz2) = dbe8e087042e49ec58d893a2408acbb45409b8b8f6f90afcbd9ad1219da612d3
-SIZE (emulationstation-de-v3.2.0.tar.bz2) = 72149068
+TIMESTAMP = 1752597245
+SHA256 (emulationstation-de-v3.3.0.tar.bz2) = e191f2ab66fdb0aea98369c4e5d94dd414a873d00b0129dfb65a502429f7eb93
+SIZE (emulationstation-de-v3.3.0.tar.bz2) = 72775703
diff --git a/emulators/es-de/files/patch-es-app_CMakeLists.txt b/emulators/es-de/files/patch-es-app_CMakeLists.txt
new file mode 100644
index 000000000000..534d9feeea1c
--- /dev/null
+++ b/emulators/es-de/files/patch-es-app_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- es-app/CMakeLists.txt.orig 2025-07-15 16:46:41 UTC
++++ es-app/CMakeLists.txt
+@@ -147,7 +147,7 @@ else()
+ else()
+ include_directories(${COMMON_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/src)
+ add_executable(es-de ${ES_SOURCES} ${ES_HEADERS})
+- target_link_libraries(es-de ${COMMON_LIBRARIES} ${CMAKE_DL_LIBS} es-core lunasvg::lunasvg)
++ target_link_libraries(es-de ${COMMON_LIBRARIES} ${CMAKE_DL_LIBS} es-core)
+ set_target_properties(es-de PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
+ endif()
+
diff --git a/emulators/es-de/pkg-plist b/emulators/es-de/pkg-plist
index b21bd1041343..75a84449b9d3 100644
--- a/emulators/es-de/pkg-plist
+++ b/emulators/es-de/pkg-plist
@@ -25,6 +25,9 @@ share/applications/org.es_de.frontend.desktop
%%DATADIR%%/licenses/DroidSans
%%DATADIR%%/licenses/FFmpeg
%%DATADIR%%/licenses/FontAwesome
+%%DATADIR%%/licenses/Fontconfig
+%%DATADIR%%/licenses/FreeImage
+%%DATADIR%%/licenses/FreeType
%%DATADIR%%/licenses/Freesound_CC0
%%DATADIR%%/licenses/Freesound_CCBY
%%DATADIR%%/licenses/GLEW
@@ -32,23 +35,31 @@ share/applications/org.es_de.frontend.desktop
%%DATADIR%%/licenses/GNUFreeFont
%%DATADIR%%/licenses/HarfBuzz
%%DATADIR%%/licenses/ICU
+%%DATADIR%%/licenses/LibTIFF
%%DATADIR%%/licenses/LunaSVG
%%DATADIR%%/licenses/MAME
%%DATADIR%%/licenses/NanumSquareNeo
%%DATADIR%%/licenses/NotoEmoji
%%DATADIR%%/licenses/Ogg
+%%DATADIR%%/licenses/OpenJPEG
+%%DATADIR%%/licenses/OpenSSL
%%DATADIR%%/licenses/OpenSans
%%DATADIR%%/licenses/Opus
%%DATADIR%%/licenses/PhosphorIcons
%%DATADIR%%/licenses/Poppler
+%%DATADIR%%/licenses/SDL
%%DATADIR%%/licenses/UTF8-CPP
%%DATADIR%%/licenses/Vorbis
+%%DATADIR%%/licenses/curl
%%DATADIR%%/licenses/libgit2
+%%DATADIR%%/licenses/libiconv
%%DATADIR%%/licenses/libintl
-%%DATADIR%%/licenses/libvpx
+%%DATADIR%%/licenses/libjpeg-turbo
+%%DATADIR%%/licenses/libpng
%%DATADIR%%/licenses/linear-es-de
%%DATADIR%%/licenses/modern-es-de
%%DATADIR%%/licenses/modern-es-de_nsoicons
+%%DATADIR%%/licenses/pugixml
%%DATADIR%%/licenses/rlottie
%%DATADIR%%/licenses/slate-es-de
%%DATADIR%%/licenses/ubuntu-font-licence-1.0
@@ -219,20 +230,24 @@ share/applications/org.es_de.frontend.desktop
%%DATADIR%%/resources/graphics/textinput_focused.svg
%%DATADIR%%/resources/graphics/white.png
%%DATADIR%%/resources/graphics/window_icon_256.png
+%%NLS%%%%DATADIR%%/resources/locale/bs_BA/LC_MESSAGES/bs_BA.mo
%%NLS%%%%DATADIR%%/resources/locale/ca_ES/LC_MESSAGES/ca_ES.mo
%%NLS%%%%DATADIR%%/resources/locale/de_DE/LC_MESSAGES/de_DE.mo
%%NLS%%%%DATADIR%%/resources/locale/en_GB/LC_MESSAGES/en_GB.mo
%%NLS%%%%DATADIR%%/resources/locale/en_US/LC_MESSAGES/en_US.mo
%%NLS%%%%DATADIR%%/resources/locale/es_ES/LC_MESSAGES/es_ES.mo
%%NLS%%%%DATADIR%%/resources/locale/fr_FR/LC_MESSAGES/fr_FR.mo
+%%NLS%%%%DATADIR%%/resources/locale/hr_HR/LC_MESSAGES/hr_HR.mo
%%NLS%%%%DATADIR%%/resources/locale/it_IT/LC_MESSAGES/it_IT.mo
%%NLS%%%%DATADIR%%/resources/locale/ja_JP/LC_MESSAGES/ja_JP.mo
%%NLS%%%%DATADIR%%/resources/locale/ko_KR/LC_MESSAGES/ko_KR.mo
%%NLS%%%%DATADIR%%/resources/locale/nl_NL/LC_MESSAGES/nl_NL.mo
%%NLS%%%%DATADIR%%/resources/locale/pl_PL/LC_MESSAGES/pl_PL.mo
%%NLS%%%%DATADIR%%/resources/locale/pt_BR/LC_MESSAGES/pt_BR.mo
+%%NLS%%%%DATADIR%%/resources/locale/pt_PT/LC_MESSAGES/pt_PT.mo
%%NLS%%%%DATADIR%%/resources/locale/ro_RO/LC_MESSAGES/ro_RO.mo
%%NLS%%%%DATADIR%%/resources/locale/ru_RU/LC_MESSAGES/ru_RU.mo
+%%NLS%%%%DATADIR%%/resources/locale/sr_RS/LC_MESSAGES/sr_RS.mo
%%NLS%%%%DATADIR%%/resources/locale/sv_SE/LC_MESSAGES/sv_SE.mo
%%NLS%%%%DATADIR%%/resources/locale/zh_CN/LC_MESSAGES/zh_CN.mo
%%NLS%%%%DATADIR%%/resources/locale/zh_TW/LC_MESSAGES/zh_TW.mo
@@ -252,17 +267,23 @@ share/applications/org.es_de.frontend.desktop
%%DATADIR%%/resources/sounds/select.wav
%%DATADIR%%/resources/sounds/systembrowse.wav
%%DATADIR%%/resources/systems/android/es_find_rules.xml
+%%DATADIR%%/resources/systems/android/es_import_rules.xml
%%DATADIR%%/resources/systems/android/es_systems.xml
%%DATADIR%%/resources/systems/haiku/es_find_rules.xml
+%%DATADIR%%/resources/systems/haiku/es_import_rules.xml
%%DATADIR%%/resources/systems/haiku/es_systems.xml
%%DATADIR%%/resources/systems/linux/es_find_rules.xml
+%%DATADIR%%/resources/systems/linux/es_import_rules.xml
%%DATADIR%%/resources/systems/linux/es_systems.xml
%%DATADIR%%/resources/systems/macos/es_find_rules.xml
+%%DATADIR%%/resources/systems/macos/es_import_rules.xml
%%DATADIR%%/resources/systems/macos/es_systems.xml
%%DATADIR%%/resources/systems/unix/es_find_rules.xml
+%%DATADIR%%/resources/systems/unix/es_import_rules.xml
%%DATADIR%%/resources/systems/unix/es_systems.xml
%%DATADIR%%/resources/systems/windows/es_find_rules.xml
%%DATADIR%%/resources/systems/windows/es_find_rules_portable.xml
+%%DATADIR%%/resources/systems/windows/es_import_rules.xml
%%DATADIR%%/resources/systems/windows/es_systems.xml
%%DATADIR%%/themes/linear-es-de/CREDITS.md
%%DATADIR%%/themes/linear-es-de/LICENSE
diff --git a/emulators/flycast/Makefile b/emulators/flycast/Makefile
index 40740987bb9b..770d580c03ca 100644
--- a/emulators/flycast/Makefile
+++ b/emulators/flycast/Makefile
@@ -1,7 +1,7 @@
PORTNAME= flycast
DISTVERSIONPREFIX= v
DISTVERSION= 2.5
-PORTREVISION= 1
+PORTREVISION= 5
CATEGORIES= emulators
MAINTAINER= bsdcode@disroot.org
@@ -20,10 +20,11 @@ LIB_DEPENDS= libchdr.so:devel/libchdr \
USES= cmake compiler:c++20-lang pkgconfig sdl
USE_GITHUB= yes
GH_ACCOUNT= flyinghead
+GH_TUPLE= vinniefalco:LuaBridge:5d21e35633a1f87ed08af115b07d3386096f792b:LuaBridge/core/deps/luabridge \
+ GPUOpen-LibrariesAndSDKs:VulkanMemoryAllocator:6eb62e1515072827db992c2befd80b71b2d04329:VulkanMemoryAllocator/core/deps/VulkanMemoryAllocator \
+ RetroAchievements:rcheevos:563230b1c249774b4852c944dc7cdcb952c9e8e8:rcheevos/core/deps/rcheevos
USE_SDL= sdl2
-.include "${.CURDIR}/Makefile.tuples"
-
CMAKE_ON= USE_HOST_LIBCHDR
OPTIONS_DEFINE= DOCS LUA OPENMP VULKAN
@@ -63,15 +64,4 @@ post-install-DOCS-on:
(cd ${WRKSRC}/docs && \
${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
-# For maintainer (do not forget to clean up Makefile.tuples afterwards to
-# remove useless submodules)
-Makefile.tuples::
- ${RM} -f ${.CURDIR}/Makefile.tuples
- ${RM} -rf ${WRKDIR}/.maintainer.checkout
- ${MKDIR} ${WRKDIR}/.maintainer.checkout
- (cd ${WRKDIR}/.maintainer.checkout && \
- git clone --recursive --branch=${DISTVERSIONPREFIX}${DISTVERSION} \
- https://github.com/${GH_ACCOUNT}/${PORTNAME} . && \
- ${SH} ${FILESDIR}/gen_gh_tuple.sh > ${.CURDIR}/Makefile.tuples)
-
.include <bsd.port.mk>
diff --git a/emulators/flycast/Makefile.tuples b/emulators/flycast/Makefile.tuples
deleted file mode 100644
index 3dc85b571e43..000000000000
--- a/emulators/flycast/Makefile.tuples
+++ /dev/null
@@ -1,4 +0,0 @@
-GH_TUPLE= \
- vinniefalco:LuaBridge:5d21e35633a1f87ed08af115b07d3386096f792b:LuaBridge/core/deps/luabridge \
- GPUOpen-LibrariesAndSDKs:VulkanMemoryAllocator:6eb62e1515072827db992c2befd80b71b2d04329:VulkanMemoryAllocator/core/deps/VulkanMemoryAllocator \
- RetroAchievements:rcheevos:563230b1c249774b4852c944dc7cdcb952c9e8e8:rcheevos/core/deps/rcheevos \
diff --git a/emulators/flycast/files/gen_gh_tuple.sh b/emulators/flycast/files/gen_gh_tuple.sh
deleted file mode 100644
index ab014ef5f473..000000000000
--- a/emulators/flycast/files/gen_gh_tuple.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-echo "GH_TUPLE= \\"
-for _sm_root in $(find . -type f -name .gitmodules | sed 's/\.gitmodules$//' | sort)
-do
- (
- cd "${_sm_root}"
-
- # Crawl name|path|url list of submodules within _sm_root
- grep -e '^\[submodule "' -e 'path = ' -e 'url = ' .gitmodules | \
- sed -E -e 's|.*"([^"]+)".*|\1|' -e 's|.*= ||' | \
- paste - - - | \
- sed -E 's/[[:space:]]+/|/g' | \
- while read _sm
- do
- _sm_name=$(echo "${_sm}" | cut -d '|' -f 1)
- _sm_path=$(echo "${_sm}" | cut -d '|' -f 2)
- _sm_url=$(echo "${_sm}" | cut -d '|' -f 3)
-
- _sm_prefix=$(echo "${_sm_root}" | sed 's|^\./||')
-
- _account_project=$(echo "${_sm_url}" | sed -e 's|^https://github.com/||' -e 's|/|:|g' -e 's|\.git$||')
- _group=$(echo "${_account_project}" | cut -d ':' -f 2 | tr -cd 'a-zA-Z0-9_')
- _tagname_group_subdir=$(git submodule status "${_sm_path}" | sed -E -e 's|^.||' -e "s|[[:space:]]+|:${_group}/${_sm_prefix}|" -e 's|[[:space:]]+.*$||')
- echo -e "\t${_account_project}:${_tagname_group_subdir} \\"
- done
- )
-done
-echo ""
diff --git a/emulators/flycast/files/patch-core_network_dcnet.cpp b/emulators/flycast/files/patch-core_network_dcnet.cpp
new file mode 100644
index 000000000000..cf7c76d929cf
--- /dev/null
+++ b/emulators/flycast/files/patch-core_network_dcnet.cpp
@@ -0,0 +1,38 @@
+--- core/network/dcnet.cpp.orig 2025-07-18 15:30:48 UTC
++++ core/network/dcnet.cpp
+@@ -222,7 +222,7 @@ class EthSocket (private)
+ }
+
+ private:
+- using iterator = asio::buffers_iterator<asio::const_buffers_1>;
++ using iterator = asio::buffers_iterator<asio::const_buffer>;
+
+ std::pair<iterator, bool>
+ static packetMatcher(iterator begin, iterator end)
+@@ -502,7 +502,7 @@ class AccessPointFinder (private)
+ {
+ std::error_code e;
+ socket.close(e);
+- timer.cancel(e);
++ timer.cancel();
+ if (ec) {
+ handler(ec, {}, {});
+ }
+@@ -584,7 +584,7 @@ class DCNetThread (public)
+ {
+ if (io_context == nullptr || pppSocket == nullptr)
+ return;
+- io_context->post([this, v]() {
++ asio::post([this, v]() {
+ pppSocket->send(v);
+ });
+ }
+@@ -593,7 +593,7 @@ class DCNetThread (public)
+ if (io_context != nullptr && ethSocket != nullptr)
+ {
+ std::vector<u8> vbuf(frame, frame + len);
+- io_context->post([this, vbuf]() {
++ asio::post([this, vbuf]() {
+ ethSocket->send(vbuf.data(), vbuf.size());
+ });
+ }
diff --git a/emulators/fs-uae-launcher/Makefile b/emulators/fs-uae-launcher/Makefile
index 869330b66d1f..dcd019265555 100644
--- a/emulators/fs-uae-launcher/Makefile
+++ b/emulators/fs-uae-launcher/Makefile
@@ -1,27 +1,29 @@
PORTNAME= fs-uae-launcher
-PORTVERSION= 3.1.68
-PORTREVISION= 2
+PORTVERSION= 3.1.70
CATEGORIES= emulators
MASTER_SITES= https://fs-uae.net/files/FS-UAE-Launcher/Stable/${PORTVERSION}/
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= atanubiswas484@gmail.com
COMMENT= GUI launcher for the FS-UAE Amiga emulator
WWW= http://fs-uae.net/launcher
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}python-lhafile>0:archivers/py-python-lhafile@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}python-lhafile>0:archivers/py-python-lhafile@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR}
-USES= gettext gmake gnome pathfix pyqt:5 python tar:xz
-USE_PYTHON= distutils autoplist noflavors
+USES= gmake gnome pathfix pyqt:5 python tar:xz
+USE_PYTHON= autoplist distutils noflavors
USE_PYQT= pyqt5
-MAKE_ARGS= prefix=${PREFIX} PYTHON=${PYTHON_CMD}
+MAKE_ARGS= prefix=${PREFIX} \
+ PYTHON=${PYTHON_CMD}
PYDISTUTILS_INSTALLARGS+= --install-lib=${PYTHON_SITELIBDIR}
-OPTIONS_DEFINE= DOCS
+OPTIONS_DEFINE= DOCS NLS
+OPTIONS_SUB= yes
+NLS_USES= gettext-tools
.include <bsd.port.mk>
diff --git a/emulators/fs-uae-launcher/distinfo b/emulators/fs-uae-launcher/distinfo
index b52e2b016ccb..776477a49ed6 100644
--- a/emulators/fs-uae-launcher/distinfo
+++ b/emulators/fs-uae-launcher/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1698712158
-SHA256 (fs-uae-launcher-3.1.68.tar.xz) = e36104442db278e0f1d073dbc2be2f9a937cd33e964968b75b324c393f8ec030
-SIZE (fs-uae-launcher-3.1.68.tar.xz) = 7736036
+TIMESTAMP = 1752274726
+SHA256 (fs-uae-launcher-3.1.70.tar.xz) = caf27cb1ae38575dd211427a0bd4a04be3766451f9fb6d134cbd88098f40dfa7
+SIZE (fs-uae-launcher-3.1.70.tar.xz) = 7707368
diff --git a/emulators/fuse/Makefile b/emulators/fuse/Makefile
index d1ba9c78eb75..0c368a701c7d 100644
--- a/emulators/fuse/Makefile
+++ b/emulators/fuse/Makefile
@@ -1,6 +1,6 @@
PORTNAME= fuse
PORTVERSION= 1.6.0
-PORTREVISION= 7
+PORTREVISION= 8
CATEGORIES= emulators
MASTER_SITES= SF/${PORTNAME}-emulator/${PORTNAME}/${PORTVERSION}
diff --git a/emulators/hatari/Makefile b/emulators/hatari/Makefile
index e4f43322717f..01c91dfe4cc4 100644
--- a/emulators/hatari/Makefile
+++ b/emulators/hatari/Makefile
@@ -1,8 +1,7 @@
PORTNAME= hatari
-PORTVERSION= 2.5.0
-PORTREVISION= 1
+DISTVERSIONPREFIX= v
+DISTVERSION= 2.6.1
CATEGORIES= emulators
-MASTER_SITES= http://download.tuxfamily.org/hatari/${PORTVERSION}/
MAINTAINER= laurent.chardon@gmail.com
COMMENT= Atari ST emulator
@@ -18,48 +17,56 @@ LIB_DEPENDS= libpng.so:graphics/png \
libreadline.so:devel/readline \
libcapstone.so:devel/capstone
-USES= cmake desktop-file-utils gnome python readline \
- sdl shared-mime-info shebangfix tar:bzip2 xorg iconv
+USES= cmake desktop-file-utils gnome localbase python readline sdl \
+ shared-mime-info shebangfix tar:bzip2 xorg
+
+USE_GITLAB= yes
+GL_SITE= https://framagit.org/
+
USE_GNOME= gtk30 pygobject3
-USE_XORG= sm ice x11 xext
USE_SDL= sdl2
+USE_XORG= ice sm x11 xext
SHEBANG_FILES= python-ui/*.py tools/*.py \
tools/debugger/*.py tools/hconsole/*.py
CMAKE_ARGS= -DETCDIR:PATH="${PREFIX}/etc"
-OPTIONS_DEFINE= DEBUG DOCS DSP TRACE SMALL
+TEST_TARGET= test
+
+OPTIONS_DEFINE= DEBUG DOCS DSP SMALL TRACE
OPTIONS_DEFAULT= DOCS DSP TRACE
DEBUG_DESC= Build with debug information
DOCS_DESC= Install extra documentation
DSP_DESC= DSP 56k emulator for Falcon mode
-TRACE_DESC= Tracing messages for debugging
SMALL_DESC= Use less memory at the expense of emulation speed
+TRACE_DESC= Tracing messages for debugging
DSP_CMAKE_BOOL= ENABLE_DSP_EMU
-TRACE_CMAKE_BOOL= ENABLE_TRACING
SMALL_CMAKE_BOOL= ENABLE_SMALL_MEM
-
-TEST_TARGET= test
+TRACE_CMAKE_BOOL= ENABLE_TRACING
.include <bsd.port.options.mk>
# CMAKE_ARGS CMAKE_BUILD_TYPE is getting overriden
.if ${PORT_OPTIONS:MDEBUG}
-CMAKE_BUILD_TYPE=Debug
-INSTALL_TARGET=install
+CMAKE_BUILD_TYPE= Debug
+INSTALL_TARGET= install
.else
-CMAKE_BUILD_TYPE=Release
+CMAKE_BUILD_TYPE= Release
.endif
post-patch:
-.for i in doc/*.1 python-ui/*.1 tools/*.1 tools/debugger/*.1 tools/hconsole/*.1 tools/hmsa/*.1
@${REINPLACE_CMD} -e \
's|^/etc/hatari.cfg .*|${PREFIX}/etc/hatari.cfg| ; \
- s|/usr/share|${PREFIX}/share|' ${WRKSRC}/${i}
-.endfor
+ s|/usr/share|${PREFIX}/share|' \
+ ${WRKSRC}/doc/*.1 \
+ ${WRKSRC}/python-ui/*.1 \
+ ${WRKSRC}/tools/*.1 \
+ ${WRKSRC}/tools/debugger/*.1 \
+ ${WRKSRC}/tools/hconsole/*.1 \
+ ${WRKSRC}/tools/hmsa/*.1
@${REINPLACE_CMD} -e \
's|-Wno-maybe-uninitialized||' ${WRKSRC}/src/cpu/CMakeLists.txt
@${REINPLACE_CMD} -e \
@@ -68,12 +75,13 @@ post-patch:
post-install:
${MKDIR} ${STAGEDIR}${PREFIX}/share/man/man1
- ${INSTALL_MAN} ${WRKSRC}/doc/*.1 ${STAGEDIR}${PREFIX}/share/man/man1
- ${INSTALL_MAN} ${WRKSRC}/python-ui/*.1 ${STAGEDIR}${PREFIX}/share/man/man1
- ${INSTALL_MAN} ${WRKSRC}/tools/*.1 ${STAGEDIR}${PREFIX}/share/man/man1
- ${INSTALL_MAN} ${WRKSRC}/tools/debugger/*.1 ${STAGEDIR}${PREFIX}/share/man/man1
- ${INSTALL_MAN} ${WRKSRC}/tools/hconsole/*.1 ${STAGEDIR}${PREFIX}/share/man/man1
- ${INSTALL_MAN} ${WRKSRC}/tools/hmsa/*.1 ${STAGEDIR}${PREFIX}/share/man/man1
+ ${INSTALL_MAN} ${WRKSRC}/doc/*.1 \
+ ${WRKSRC}/python-ui/*.1 \
+ ${WRKSRC}/tools/*.1 \
+ ${WRKSRC}/tools/debugger/*.1 \
+ ${WRKSRC}/tools/hconsole/*.1 \
+ ${WRKSRC}/tools/hmsa/*.1 \
+ ${STAGEDIR}${PREFIX}/share/man/man1
post-install-DOCS-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}
diff --git a/emulators/hatari/distinfo b/emulators/hatari/distinfo
index 5a3cac4e6c7d..b906c130c2ad 100644
--- a/emulators/hatari/distinfo
+++ b/emulators/hatari/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1714071173
-SHA256 (hatari-2.5.0.tar.bz2) = d76c22fc3de69fb1bb4af3e8ba500b7e40f5a2a45d07783f24cb7101e53c3457
-SIZE (hatari-2.5.0.tar.bz2) = 2820580
+TIMESTAMP = 1755395096
+SHA256 (hatari-v2.6.1.tar.bz2) = de2fd445c48ab1c79aebdebf722e1c9e6c8b9cc291a777409d8eb01d145da4f1
+SIZE (hatari-v2.6.1.tar.bz2) = 2128063
diff --git a/emulators/hatari/files/patch-tools_atari-hd-image.sh b/emulators/hatari/files/patch-tools_atari-hd-image.sh
index 9b92f43e239b..2b6cb31943d8 100644
--- a/emulators/hatari/files/patch-tools_atari-hd-image.sh
+++ b/emulators/hatari/files/patch-tools_atari-hd-image.sh
@@ -1,4 +1,4 @@
---- tools/atari-hd-image.sh.orig 2024-04-26 10:23:56 UTC
+--- tools/atari-hd-image.sh.orig 2025-08-09 22:33:00 UTC
+++ tools/atari-hd-image.sh
@@ -33,8 +33,8 @@ export PATH
export PATH
@@ -6,19 +6,17 @@
# check tools
-if [ -z "$(which mkdosfs)" ] || [ -z "$(which python3)" ]; then
- echo "ERROR: either mkdosfs or python3 missing!"
-+if [ -z "$(which mkdosfs)" ] || [ -z "$(which %%PYTHON_VERSION%%)" ]; then
-+ echo "ERROR: either mkdosfs or %%PYTHON_VERSION%% missing!"
++if [ -z "$(which mkdosfs)" ] || [ -z "$(which %%PYTHON_CMD%%)" ]; then
++ echo "ERROR: either mkdosfs or %%PYTHON_CMD%% missing!"
exit 1
fi
-@@ -147,8 +147,8 @@ echo "$step) Create DOS Master Boot Record / partition
+@@ -147,7 +147,7 @@ echo "$step) Create DOS Master Boot Record / partition
# - http://en.wikipedia.org/wiki/File_Allocation_Table#Boot_Sector
# For DOS MBR, the values are little endian.
# -----------
-python3 << EOF
--#!/usr/bin/env python3
-+%%PYTHON_VERSION%% << EOF
-+#!/usr/bin/env %%PYTHON_VERSION%%
++%%PYTHON_CMD%% << EOF
+ #!/usr/bin/python3
mbr = bytearray(512)
- def set_long(idx, value):
diff --git a/emulators/hatari/pkg-plist b/emulators/hatari/pkg-plist
index c1b06045aef2..a7923bf0d7ca 100644
--- a/emulators/hatari/pkg-plist
+++ b/emulators/hatari/pkg-plist
@@ -12,7 +12,6 @@ share/applications/hatariui.desktop
%%PORTDOCS%%%%DOCSDIR%%/CMakeLists.txt
%%PORTDOCS%%%%DOCSDIR%%/authors.txt
%%PORTDOCS%%%%DOCSDIR%%/bugs.txt
-%%PORTDOCS%%%%DOCSDIR%%/changelog.txt
%%PORTDOCS%%%%DOCSDIR%%/coding.txt
%%PORTDOCS%%%%DOCSDIR%%/compatibility.html
%%PORTDOCS%%%%DOCSDIR%%/debugger.html
@@ -80,7 +79,6 @@ share/applications/hatariui.desktop
%%DATADIR%%/hconsole/example-debugger
%%DATADIR%%/hconsole/example.py
%%DATADIR%%/hconsole/hconsole.py
-%%DATADIR%%/tos.img
share/icons/hicolor/128x128/apps/hatari.png
share/icons/hicolor/128x128/mimetypes/application-vnd.fastcopy-disk-image.png
share/icons/hicolor/128x128/mimetypes/application-vnd.msa-disk-image.png
diff --git a/emulators/magia/Makefile b/emulators/magia/Makefile
index 81588293a169..0adbb51276f9 100644
--- a/emulators/magia/Makefile
+++ b/emulators/magia/Makefile
@@ -1,7 +1,7 @@
PORTNAME= magia
DISTVERSIONPREFIX= v
DISTVERSION= 0.2.0
-PORTREVISION= 27
+PORTREVISION= 29
CATEGORIES= emulators
MAINTAINER= ports@FreeBSD.org
diff --git a/emulators/mame/Makefile b/emulators/mame/Makefile
index 793f30a06ba3..c4cda0872bf7 100644
--- a/emulators/mame/Makefile
+++ b/emulators/mame/Makefile
@@ -1,6 +1,6 @@
PORTNAME= mame
DISTVERSION= 0.277
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= emulators games
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
diff --git a/emulators/nemu/Makefile b/emulators/nemu/Makefile
index 38c020a170ad..e8a4917abe13 100644
--- a/emulators/nemu/Makefile
+++ b/emulators/nemu/Makefile
@@ -1,6 +1,7 @@
PORTNAME= nemu
DISTVERSIONPREFIX= v
DISTVERSION= 3.3.1
+PORTREVISION= 1
CATEGORIES= emulators
MAINTAINER= arrowd@FreeBSD.org
diff --git a/emulators/pcsx2/Makefile b/emulators/pcsx2/Makefile
index 886ef0e69fed..c9fcbf764fba 100644
--- a/emulators/pcsx2/Makefile
+++ b/emulators/pcsx2/Makefile
@@ -1,5 +1,6 @@
PORTNAME= pcsx2
-PORTVERSION= 2.3.212
+PORTVERSION= 2.3.439
+PORTREVISION= 1
DISTVERSIONPREFIX= v
CATEGORIES= emulators
@@ -12,6 +13,7 @@ LICENSE_COMB= multi
ONLY_FOR_ARCHS= amd64
+BUILD_DEPENDS= vulkan-headers>0:graphics/vulkan-headers
# Notes on dependencies (see cmake/SearchForStuff.cmake):
# - glad comes from 3rdparty/ (conflicts with libglvnd)
# - fmt, rapidyaml, soundtouch, zydis, libzip
@@ -21,18 +23,22 @@ LIB_DEPENDS= libpng.so:graphics/png \
liblz4.so:archivers/liblz4 \
libwebp.so:graphics/webp \
libfreetype.so:print/freetype2 \
- libdbus-1.so:devel/dbus \
+ libplutovg.so:graphics/plutovg \
+ libplutosvg.so:graphics/plutosvg \
+ libshaderc_shared.so:graphics/shaderc \
+ libcurl.so:ftp/curl \
libavcodec.so:multimedia/ffmpeg \
libavformat.so:multimedia/ffmpeg \
libavutil.so:multimedia/ffmpeg \
libswresample.so:multimedia/ffmpeg \
libswscale.so:multimedia/ffmpeg \
- libshaderc_shared.so:graphics/shaderc \
- libcurl.so:ftp/curl \
+ libbacktrace.so:devel/libbacktrace \
+ libdbus-1.so:devel/dbus \
libpulse.so:audio/pulseaudio \
libjack.so:audio/jack \
libsndio.so:audio/sndio \
- libbacktrace.so:devel/libbacktrace
+ libkddockwidgets-qt6.so:x11-toolkits/kddockwidgets \
+ libsysinfo.so:devel/libsysinfo
USES= cmake compiler:c++20-lang \
desktop-file-utils elfctl gl jpeg pkgconfig qt:6 sdl xorg
@@ -41,9 +47,9 @@ USE_GITHUB= yes
GH_PROJECT= pcsx2
USE_GL= egl
-USE_SDL= sdl3
-USE_XORG= ice x11 xcb xext xpm xrandr xrender
-USE_QT= base tools
+USE_SDL= sdl3 ttf3
+USE_XORG= ice x11 xcb xext xi xpm xrandr xrender
+USE_QT= base declarative tools
ELF_FEATURES= +wxneeded:bin/pcsx2-qt
# SSE 4.1 instructions are a hard requirement, if CPUTYPE is defined
@@ -60,6 +66,7 @@ EXTRA_PATCHES= ${PATCHDIR}/extra-patch-no-march-minimum-req
# XXX Vulkan comes from 3rdparty/
CMAKE_ARGS+= \
-DCMAKE_REQUIRED_INCLUDES:STRING=${LOCALBASE}/include/ \
+ -DCMAKE_LOCALBASE:STRING=${LOCALBASE} \
-DPCSX2_RESOURCES_PATH:STRING=${DATADIR}/resources \
-DUSE_VTUNE:BOOL=OFF \
-DWAYLAND_API=OFF \
diff --git a/emulators/pcsx2/distinfo b/emulators/pcsx2/distinfo
index 7ad172abe331..742e5ac06800 100644
--- a/emulators/pcsx2/distinfo
+++ b/emulators/pcsx2/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1749583437
-SHA256 (pcsx2-pcsx2-v2.3.212_GH0.tar.gz) = 4f4de87d324501818af0805f54f3fafe3be036badcdec86b93ac7895a2155fdb
-SIZE (pcsx2-pcsx2-v2.3.212_GH0.tar.gz) = 20115629
+TIMESTAMP = 1750709445
+SHA256 (pcsx2-pcsx2-v2.3.439_GH0.tar.gz) = ed75141b426964a63b87b19ddfdd7b3659d3652254de4e694eea1784cf3ace3f
+SIZE (pcsx2-pcsx2-v2.3.439_GH0.tar.gz) = 19851256
diff --git a/emulators/pcsx2/files/patch-cmake-SearchForStuff.cmake b/emulators/pcsx2/files/patch-cmake-SearchForStuff.cmake
new file mode 100644
index 000000000000..e67cb027fb7f
--- /dev/null
+++ b/emulators/pcsx2/files/patch-cmake-SearchForStuff.cmake
@@ -0,0 +1,11 @@
+--- cmake/SearchForStuff.cmake.orig 2025-06-23 10:47:03 UTC
++++ cmake/SearchForStuff.cmake
+@@ -1,6 +1,8 @@
+ #-------------------------------------------------------------------------------
+ # Search all libraries on the system
+ #-------------------------------------------------------------------------------
++list(APPEND CMAKE_MODULE_PATH ${CMAKE_LOCALBASE}/lib/cmake/SDL3_ttf)
++include(PkgConfigHelper)
+ find_package(Git)
+
+ # Require threads on all OSes.
diff --git a/emulators/pcsx2/files/patch-common-CMakeLists.txt b/emulators/pcsx2/files/patch-common-CMakeLists.txt
new file mode 100644
index 000000000000..f0918e407dde
--- /dev/null
+++ b/emulators/pcsx2/files/patch-common-CMakeLists.txt
@@ -0,0 +1,10 @@
+--- common/CMakeLists.txt.orig 2025-06-23 14:55:49 UTC
++++ common/CMakeLists.txt
+@@ -169,6 +169,7 @@ else()
+ X11::X11
+ X11::Xrandr
+ X11::Xi
++ -lsysinfo
+ )
+ if(USE_BACKTRACE)
+ target_compile_definitions(common PRIVATE "HAS_LIBBACKTRACE=1")
diff --git a/emulators/pcsx2/pkg-plist b/emulators/pcsx2/pkg-plist
index e6c42d69090c..bb7a5b01dff3 100644
--- a/emulators/pcsx2/pkg-plist
+++ b/emulators/pcsx2/pkg-plist
@@ -9,55 +9,57 @@ share/applications/PCSX2.desktop
%%DATADIR%%/resources/fonts/fa-solid-900.ttf
%%DATADIR%%/resources/fonts/promptfont-license
%%DATADIR%%/resources/fonts/promptfont.otf
-%%DATADIR%%/resources/fullscreenui/applications-system.png
-%%DATADIR%%/resources/fullscreenui/back-icon.png
-%%DATADIR%%/resources/fullscreenui/desktop-mode.png
-%%DATADIR%%/resources/fullscreenui/drive-cdrom.png
-%%DATADIR%%/resources/fullscreenui/exit.png
-%%DATADIR%%/resources/fullscreenui/game-list.png
-%%DATADIR%%/resources/fullscreenui/media-cdrom.png
+%%DATADIR%%/resources/fullscreenui/applications-system.svg
+%%DATADIR%%/resources/fullscreenui/back-icon.svg
+%%DATADIR%%/resources/fullscreenui/desktop-mode.svg
+%%DATADIR%%/resources/fullscreenui/drive-cdrom.svg
+%%DATADIR%%/resources/fullscreenui/exit.svg
+%%DATADIR%%/resources/fullscreenui/game-list.svg
+%%DATADIR%%/resources/fullscreenui/media-cdrom.svg
%%DATADIR%%/resources/fullscreenui/no-save.png
%%DATADIR%%/resources/fullscreenui/placeholder.png
-%%DATADIR%%/resources/fullscreenui/start-bios.png
-%%DATADIR%%/resources/fullscreenui/start-file.png
+%%DATADIR%%/resources/fullscreenui/start-bios.svg
+%%DATADIR%%/resources/fullscreenui/start-file.svg
%%DATADIR%%/resources/game_controller_db.txt
+%%DATADIR%%/resources/icons/AppBanner.svg
%%DATADIR%%/resources/icons/AppIconLarge.png
-%%DATADIR%%/resources/icons/flags/NTSC-B.png
-%%DATADIR%%/resources/icons/flags/NTSC-C.png
-%%DATADIR%%/resources/icons/flags/NTSC-HK.png
-%%DATADIR%%/resources/icons/flags/NTSC-J.png
-%%DATADIR%%/resources/icons/flags/NTSC-K.png
-%%DATADIR%%/resources/icons/flags/NTSC-T.png
-%%DATADIR%%/resources/icons/flags/NTSC-U.png
-%%DATADIR%%/resources/icons/flags/Other.png
-%%DATADIR%%/resources/icons/flags/PAL-A.png
-%%DATADIR%%/resources/icons/flags/PAL-AF.png
-%%DATADIR%%/resources/icons/flags/PAL-AU.png
-%%DATADIR%%/resources/icons/flags/PAL-BE.png
-%%DATADIR%%/resources/icons/flags/PAL-E.png
-%%DATADIR%%/resources/icons/flags/PAL-F.png
-%%DATADIR%%/resources/icons/flags/PAL-FI.png
-%%DATADIR%%/resources/icons/flags/PAL-G.png
-%%DATADIR%%/resources/icons/flags/PAL-GR.png
-%%DATADIR%%/resources/icons/flags/PAL-I.png
-%%DATADIR%%/resources/icons/flags/PAL-IN.png
-%%DATADIR%%/resources/icons/flags/PAL-M.png
-%%DATADIR%%/resources/icons/flags/PAL-NL.png
-%%DATADIR%%/resources/icons/flags/PAL-NO.png
-%%DATADIR%%/resources/icons/flags/PAL-P.png
-%%DATADIR%%/resources/icons/flags/PAL-PL.png
-%%DATADIR%%/resources/icons/flags/PAL-R.png
-%%DATADIR%%/resources/icons/flags/PAL-S.png
-%%DATADIR%%/resources/icons/flags/PAL-SC.png
-%%DATADIR%%/resources/icons/flags/PAL-SW.png
-%%DATADIR%%/resources/icons/flags/PAL-SWI.png
-%%DATADIR%%/resources/icons/flags/PAL-UK.png
-%%DATADIR%%/resources/icons/star-0.png
-%%DATADIR%%/resources/icons/star-1.png
-%%DATADIR%%/resources/icons/star-2.png
-%%DATADIR%%/resources/icons/star-3.png
-%%DATADIR%%/resources/icons/star-4.png
-%%DATADIR%%/resources/icons/star-5.png
+%%DATADIR%%/resources/icons/flags/LICENSE
+%%DATADIR%%/resources/icons/flags/NTSC-B.svg
+%%DATADIR%%/resources/icons/flags/NTSC-C.svg
+%%DATADIR%%/resources/icons/flags/NTSC-HK.svg
+%%DATADIR%%/resources/icons/flags/NTSC-J.svg
+%%DATADIR%%/resources/icons/flags/NTSC-K.svg
+%%DATADIR%%/resources/icons/flags/NTSC-T.svg
+%%DATADIR%%/resources/icons/flags/NTSC-U.svg
+%%DATADIR%%/resources/icons/flags/Other.svg
+%%DATADIR%%/resources/icons/flags/PAL-A.svg
+%%DATADIR%%/resources/icons/flags/PAL-AF.svg
+%%DATADIR%%/resources/icons/flags/PAL-AU.svg
+%%DATADIR%%/resources/icons/flags/PAL-BE.svg
+%%DATADIR%%/resources/icons/flags/PAL-E.svg
+%%DATADIR%%/resources/icons/flags/PAL-F.svg
+%%DATADIR%%/resources/icons/flags/PAL-FI.svg
+%%DATADIR%%/resources/icons/flags/PAL-G.svg
+%%DATADIR%%/resources/icons/flags/PAL-GR.svg
+%%DATADIR%%/resources/icons/flags/PAL-I.svg
+%%DATADIR%%/resources/icons/flags/PAL-IN.svg
+%%DATADIR%%/resources/icons/flags/PAL-M.svg
+%%DATADIR%%/resources/icons/flags/PAL-NL.svg
+%%DATADIR%%/resources/icons/flags/PAL-NO.svg
+%%DATADIR%%/resources/icons/flags/PAL-P.svg
+%%DATADIR%%/resources/icons/flags/PAL-PL.svg
+%%DATADIR%%/resources/icons/flags/PAL-R.svg
+%%DATADIR%%/resources/icons/flags/PAL-S.svg
+%%DATADIR%%/resources/icons/flags/PAL-SC.svg
+%%DATADIR%%/resources/icons/flags/PAL-SW.svg
+%%DATADIR%%/resources/icons/flags/PAL-SWI.svg
+%%DATADIR%%/resources/icons/flags/PAL-UK.svg
+%%DATADIR%%/resources/icons/star-0.svg
+%%DATADIR%%/resources/icons/star-1.svg
+%%DATADIR%%/resources/icons/star-2.svg
+%%DATADIR%%/resources/icons/star-3.svg
+%%DATADIR%%/resources/icons/star-4.svg
+%%DATADIR%%/resources/icons/star-5.svg
%%DATADIR%%/resources/shaders/common/ffx_a.h
%%DATADIR%%/resources/shaders/common/ffx_cas.h
%%DATADIR%%/resources/shaders/common/fxaa.fx
diff --git a/emulators/ppsspp/Makefile b/emulators/ppsspp/Makefile
index 8ae5f69a4b14..18747dd52b1d 100644
--- a/emulators/ppsspp/Makefile
+++ b/emulators/ppsspp/Makefile
@@ -1,6 +1,6 @@
PORTNAME= ppsspp
DISTVERSIONPREFIX= v
-DISTVERSION?= 1.19.2
+DISTVERSION?= 1.19.3
CATEGORIES= emulators
MAINTAINER= kreinholz@gmail.com
@@ -29,17 +29,18 @@ USES= cmake compiler:c++11-lib gl localbase:ldflags pkgconfig \
desktop-file-utils
USE_GITHUB= yes
GH_ACCOUNT= hrydgard
-GH_TUPLE?= hrydgard:glslang:8.13.3743-948-g50e0708:glslang/ext/glslang \
- google:cpu_features:v0.8.0-27-gfd4ffc1:cpu_features/ext/cpu_features \
+GH_TUPLE?= Kingcom:armips:v0.11.0-195-ga8d71f0:armips/ext/armips \
+ hrydgard:glslang:2.3-3991-g50e0708e:glslang/ext/glslang \
+ KhronosGroup:SPIRV-Cross:4212eef67ed0ca048cb726a6767185504e7695e5:SPIRVCross/ext/SPIRV-Cross \
+ Tencent:rapidjson:73063f5002612c6bf64fe24f851cd5cc0d83eef9:rapidjson/ext/rapidjson \
+ unknownbrackets:ppsspp-debugger:9776332f720c854ef26f325a0cf9e32c02115a9c:ppssppdebugger/assets/debugger \
+ google:cpu_features:v0.4.1-211-gfd4ffc1:cpu_features/ext/cpu_features \
+ RetroAchievements:rcheevos:v11.6.0-61-gef0e22b:rcheevos/ext/rcheevos \
rtissera:libchdr:26d27ca:libchdr/ext/libchdr \
- unknownbrackets:ppsspp-debugger:d358a87:debugger/assets/debugger \
- KhronosGroup:SPIRV-Cross:sdk-1.3.239.0:SPIRV/ext/SPIRV-Cross \
- Kingcom:armips:v0.11.0-195-ga8d71f0:armips/ext/armips \
- Kingcom:filesystem:v1.3.2-12-g3f1c185:filesystem/ext/armips/ext/filesystem \
- RetroAchievements:rcheevos:v11.6.0-gef0e22b:rcheevos/ext/rcheevos \
- Tencent:rapidjson:v1.1.0-415-g73063f5:rapidjson/ext/rapidjson \
- hrydgard:ppsspp-lua:7648485:lua/ext/lua
-EXCLUDE= libpng17 libzip zlib
+ hrydgard:ppsspp-lua:7648485f14e8e5ee45e8e39b1eb4d3206dbd405a:ppsspplua/ext/lua \
+ Kingcom:filesystem:v1.1.2-171-g3f1c185:filesystem/ext/armips/ext/filesystem
+
+EXCLUDE= libzip zlib
USE_GL= glew opengl
CMAKE_ON= ${LIBZIP MINIUPNPC SNAPPY ZSTD:L:S/^/USE_SYSTEM_/} USE_VULKAN_DISPLAY_KHR
CMAKE_OFF= USE_DISCORD
diff --git a/emulators/ppsspp/distinfo b/emulators/ppsspp/distinfo
index 5588a603ebe1..bfe6f531f0ef 100644
--- a/emulators/ppsspp/distinfo
+++ b/emulators/ppsspp/distinfo
@@ -1,23 +1,23 @@
-TIMESTAMP = 1750002545
-SHA256 (hrydgard-ppsspp-v1.19.2_GH0.tar.gz) = 4b3abbdc2f76daad5d038c0676ab0ec91a4588a30a894e6604b76a061d683583
-SIZE (hrydgard-ppsspp-v1.19.2_GH0.tar.gz) = 38797975
-SHA256 (hrydgard-glslang-8.13.3743-948-g50e0708_GH0.tar.gz) = c5d7837395b5c076371d74d9d8adf0d0408c002f2e4fe08bc3eef1db6f608ceb
-SIZE (hrydgard-glslang-8.13.3743-948-g50e0708_GH0.tar.gz) = 3689922
-SHA256 (google-cpu_features-v0.8.0-27-gfd4ffc1_GH0.tar.gz) = 0bcb1a537b8fc184b9df9ddde9d15868efe7f651139ea84d3e20ac9900a43c60
-SIZE (google-cpu_features-v0.8.0-27-gfd4ffc1_GH0.tar.gz) = 109044
-SHA256 (rtissera-libchdr-26d27ca_GH0.tar.gz) = 49e028fadd0640926da158408c9eafb22fc89ccb0de69c67b167ef0a11f6a0c5
-SIZE (rtissera-libchdr-26d27ca_GH0.tar.gz) = 4274377
-SHA256 (unknownbrackets-ppsspp-debugger-d358a87_GH0.tar.gz) = 468ec2ca27aefa81657bc679c0983dbbd693b99e8b803a465bb42cd8e2993cb2
-SIZE (unknownbrackets-ppsspp-debugger-d358a87_GH0.tar.gz) = 815889
-SHA256 (KhronosGroup-SPIRV-Cross-sdk-1.3.239.0_GH0.tar.gz) = a1695022880e7ef3c2d407647f79876045dc2a3ed012753adc71ead5cc5178ba
-SIZE (KhronosGroup-SPIRV-Cross-sdk-1.3.239.0_GH0.tar.gz) = 1707048
+TIMESTAMP = 1752627057
+SHA256 (hrydgard-ppsspp-v1.19.3_GH0.tar.gz) = 2e02c3e0a7f5a2311f6e37f3e2fc9760d14eb7af5051bc251f168505f1ca9ad8
+SIZE (hrydgard-ppsspp-v1.19.3_GH0.tar.gz) = 38805948
SHA256 (Kingcom-armips-v0.11.0-195-ga8d71f0_GH0.tar.gz) = 8a46d92b070de90cefcd89c2894344d040481e1cf6216b31f4a5e531254fed88
SIZE (Kingcom-armips-v0.11.0-195-ga8d71f0_GH0.tar.gz) = 223306
-SHA256 (Kingcom-filesystem-v1.3.2-12-g3f1c185_GH0.tar.gz) = 9fa5a690e341bea1935a7f6b256e1bbd864abee988f834f10307f646dc38e604
-SIZE (Kingcom-filesystem-v1.3.2-12-g3f1c185_GH0.tar.gz) = 163401
-SHA256 (RetroAchievements-rcheevos-v11.6.0-gef0e22b_GH0.tar.gz) = 5d424b58ae280f56ee04a846d7f5e90e289f747e9ae4ac2d29e46761133d009e
-SIZE (RetroAchievements-rcheevos-v11.6.0-gef0e22b_GH0.tar.gz) = 417751
-SHA256 (Tencent-rapidjson-v1.1.0-415-g73063f5_GH0.tar.gz) = bfc1c1d5fbd9dbc78600798d8a8bfcb93f9d308d55564e012b64e8ca272ecea4
-SIZE (Tencent-rapidjson-v1.1.0-415-g73063f5_GH0.tar.gz) = 1054127
-SHA256 (hrydgard-ppsspp-lua-7648485_GH0.tar.gz) = e7dba820ddd788976810b4f21d1c4781a617e66c7bd67ee71acedd5d60db608e
-SIZE (hrydgard-ppsspp-lua-7648485_GH0.tar.gz) = 239547
+SHA256 (hrydgard-glslang-2.3-3991-g50e0708e_GH0.tar.gz) = 720e01f16e5ee2f7ada49ba0464232380bf71339c836cc4fabbabef2a741818b
+SIZE (hrydgard-glslang-2.3-3991-g50e0708e_GH0.tar.gz) = 3689100
+SHA256 (KhronosGroup-SPIRV-Cross-4212eef67ed0ca048cb726a6767185504e7695e5_GH0.tar.gz) = a7adf77b5680795302aee160309c6cb81b0da341d92bd7face01f9a156b65aeb
+SIZE (KhronosGroup-SPIRV-Cross-4212eef67ed0ca048cb726a6767185504e7695e5_GH0.tar.gz) = 1703767
+SHA256 (Tencent-rapidjson-73063f5002612c6bf64fe24f851cd5cc0d83eef9_GH0.tar.gz) = 896eb817fb2bc62a0a84ca65fac3e3c385b410e6dbf70d69c411e25776663e39
+SIZE (Tencent-rapidjson-73063f5002612c6bf64fe24f851cd5cc0d83eef9_GH0.tar.gz) = 1054419
+SHA256 (unknownbrackets-ppsspp-debugger-9776332f720c854ef26f325a0cf9e32c02115a9c_GH0.tar.gz) = 495db15fa9716d78c4958004df5a1487a94155694cceabd61fb40a2d0090fea3
+SIZE (unknownbrackets-ppsspp-debugger-9776332f720c854ef26f325a0cf9e32c02115a9c_GH0.tar.gz) = 810347
+SHA256 (google-cpu_features-v0.4.1-211-gfd4ffc1_GH0.tar.gz) = 20115fd59cf2db71594d71acf3dacfdaf6c1bdf54c1656f781fce4844a803e08
+SIZE (google-cpu_features-v0.4.1-211-gfd4ffc1_GH0.tar.gz) = 109042
+SHA256 (RetroAchievements-rcheevos-v11.6.0-61-gef0e22b_GH0.tar.gz) = 11c12a5ce2e61917edbd4634fc0623528267c51dae2303bfc55cbbb7ee7299fa
+SIZE (RetroAchievements-rcheevos-v11.6.0-61-gef0e22b_GH0.tar.gz) = 417819
+SHA256 (rtissera-libchdr-26d27ca_GH0.tar.gz) = 49e028fadd0640926da158408c9eafb22fc89ccb0de69c67b167ef0a11f6a0c5
+SIZE (rtissera-libchdr-26d27ca_GH0.tar.gz) = 4274377
+SHA256 (hrydgard-ppsspp-lua-7648485f14e8e5ee45e8e39b1eb4d3206dbd405a_GH0.tar.gz) = ee31027159979d7be564e19710e10339179992f6d663d38337e78340dd31987b
+SIZE (hrydgard-ppsspp-lua-7648485f14e8e5ee45e8e39b1eb4d3206dbd405a_GH0.tar.gz) = 239843
+SHA256 (Kingcom-filesystem-v1.1.2-171-g3f1c185_GH0.tar.gz) = 9f3866efc8b8b29cd9ff51c0cce8a281ff88cd34694d8da0d064cb82d95b8b71
+SIZE (Kingcom-filesystem-v1.1.2-171-g3f1c185_GH0.tar.gz) = 163405
diff --git a/emulators/ppsspp/files/patch-Common_GPU_Vulkan_VulkanContext.cpp b/emulators/ppsspp/files/patch-Common_GPU_Vulkan_VulkanContext.cpp
deleted file mode 100644
index 4ecc5e23175e..000000000000
--- a/emulators/ppsspp/files/patch-Common_GPU_Vulkan_VulkanContext.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- Common/GPU/Vulkan/VulkanContext.cpp.orig 2025-06-11 21:04:20 UTC
-+++ Common/GPU/Vulkan/VulkanContext.cpp
-@@ -119,7 +119,7 @@ VkResult VulkanContext::CreateInstance(const CreateInf
- if (vkEnumerateInstanceVersion) {
- vkEnumerateInstanceVersion(&vulkanInstanceApiVersion_);
- vulkanInstanceApiVersion_ &= 0xFFFFF000; // Remove patch version.
-- vulkanInstanceApiVersion_ = std::min(VK_API_VERSION_1_4, vulkanInstanceApiVersion_);
-+ vulkanInstanceApiVersion_ = std::min(VK_API_VERSION_1_3, vulkanInstanceApiVersion_);
- std::string versionString = FormatAPIVersion(vulkanInstanceApiVersion_);
- INFO_LOG(Log::G3D, "Detected Vulkan API version: %s", versionString.c_str());
- }
diff --git a/emulators/qemu-devel/Makefile b/emulators/qemu-devel/Makefile
index f23a958cd677..35177ea0471e 100644
--- a/emulators/qemu-devel/Makefile
+++ b/emulators/qemu-devel/Makefile
@@ -1,5 +1,5 @@
PORTNAME= qemu
-DISTVERSION= 9.2.0.20250530
+DISTVERSION= 10.0.20250731
CATEGORIES= emulators
PKGNAMESUFFIX= -devel
DIST_SUBDIR= qemu/${PORTVERSION}
@@ -23,11 +23,11 @@ USES= bison compiler:c11 cpe gmake gnome iconv:wchar_t localbase:ldflags \
ninja perl5 pkgconfig python:build shebangfix tar:xz xorg
USE_GITLAB= yes
GL_ACCOUNT= qemu-project
-GL_TAGNAME= 3e82ddaa8db260a232dbbbf488d8ac7851d124c5
+GL_TAGNAME= cd9f752fee75238f842a91be1146c988bd16a010
GL_TUPLE= qemu-project:keycodemapdb:f5772a62ec52591ff6870b7e8ef32482371f22c6:keycodemapdb/subprojects/keycodemapdb \
qemu-project:dtc:b6910bec11614980a21e46fbccc35934b671bd81:dtc/subprojects/dtc \
qemu-project:libvfio-user:0b28d205572c80b568a1003db2c8f37ca333e4d7:libvfio/subprojects/libvfio-user \
- qemu-project:meson:f3adf71b85960da3ff22914cd1a5ce885d3b6a67:meson/meson \
+ qemu-project:meson:dd7cf67f00f1b08fc15885d9bade23f8e76845c0:meson/meson \
qemu-project:berkeley-softfloat-3:b64af41c3276f97f0e181920400ee056b9c88037:berkeleysoftfloat3/subprojects/berkeley-softfloat-3 \
qemu-project:berkeley-testfloat-3:e7af9751d9f9fd3b47911f51a5cfd08af256a9ab:berkeleytestfloat3/subprojects/berkeley-testfloat-3
USE_GNOME= cairo glib20
diff --git a/emulators/qemu-devel/distinfo b/emulators/qemu-devel/distinfo
index 14ddbab33df2..c95f967d168a 100644
--- a/emulators/qemu-devel/distinfo
+++ b/emulators/qemu-devel/distinfo
@@ -1,15 +1,15 @@
-TIMESTAMP = 1748977683
-SHA256 (qemu/9.2.0.20250530/qemu-project-qemu-3e82ddaa8db260a232dbbbf488d8ac7851d124c5_GL0.tar.gz) = 06463a3861b7a0dc1d219f408e8647e94117b28d43e967c58cdb0a099d57233d
-SIZE (qemu/9.2.0.20250530/qemu-project-qemu-3e82ddaa8db260a232dbbbf488d8ac7851d124c5_GL0.tar.gz) = 39823482
-SHA256 (qemu/9.2.0.20250530/qemu-project-keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6_GL0.tar.gz) = d014b53382dbb17b8196ad12f50de7f20d0ef1b9f7d54b0be51a6cbb14209195
-SIZE (qemu/9.2.0.20250530/qemu-project-keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6_GL0.tar.gz) = 29580
-SHA256 (qemu/9.2.0.20250530/qemu-project-dtc-b6910bec11614980a21e46fbccc35934b671bd81_GL0.tar.gz) = e115f987eec23a1ba25150a46ced1675de3716072d3b4905afb3a9cda0f007c7
-SIZE (qemu/9.2.0.20250530/qemu-project-dtc-b6910bec11614980a21e46fbccc35934b671bd81_GL0.tar.gz) = 205556
-SHA256 (qemu/9.2.0.20250530/qemu-project-libvfio-user-0b28d205572c80b568a1003db2c8f37ca333e4d7_GL0.tar.gz) = d2f60cd4f86f345aab1332953eb736cce3518159e6e99bcc2d10467c06f717fe
-SIZE (qemu/9.2.0.20250530/qemu-project-libvfio-user-0b28d205572c80b568a1003db2c8f37ca333e4d7_GL0.tar.gz) = 189943
-SHA256 (qemu/9.2.0.20250530/qemu-project-meson-f3adf71b85960da3ff22914cd1a5ce885d3b6a67_GL0.tar.gz) = 4397f6612c43c21f3db239c68138a51cbd2d3a20a2b905d0d85135159d70f605
-SIZE (qemu/9.2.0.20250530/qemu-project-meson-f3adf71b85960da3ff22914cd1a5ce885d3b6a67_GL0.tar.gz) = 4907863
-SHA256 (qemu/9.2.0.20250530/qemu-project-berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037_GL0.tar.gz) = faae889814ea6a292f7ca03d9b36e6c7e95bab2a64777804883cc822b8d48757
-SIZE (qemu/9.2.0.20250530/qemu-project-berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037_GL0.tar.gz) = 148741
-SHA256 (qemu/9.2.0.20250530/qemu-project-berkeley-testfloat-3-e7af9751d9f9fd3b47911f51a5cfd08af256a9ab_GL0.tar.gz) = e7a09d51dc7e96cb8422c919c85fc3833d4f788567638c9162ef5cd7db59b1df
-SIZE (qemu/9.2.0.20250530/qemu-project-berkeley-testfloat-3-e7af9751d9f9fd3b47911f51a5cfd08af256a9ab_GL0.tar.gz) = 139308
+TIMESTAMP = 1755427471
+SHA256 (qemu/10.0.20250731/qemu-project-qemu-cd9f752fee75238f842a91be1146c988bd16a010_GL0.tar.gz) = bf689d75145890fb417efe61d6e3a1bc017357c8a0490f920df7d1b7da5b02ab
+SIZE (qemu/10.0.20250731/qemu-project-qemu-cd9f752fee75238f842a91be1146c988bd16a010_GL0.tar.gz) = 40103786
+SHA256 (qemu/10.0.20250731/qemu-project-keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6_GL0.tar.gz) = d014b53382dbb17b8196ad12f50de7f20d0ef1b9f7d54b0be51a6cbb14209195
+SIZE (qemu/10.0.20250731/qemu-project-keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6_GL0.tar.gz) = 29580
+SHA256 (qemu/10.0.20250731/qemu-project-dtc-b6910bec11614980a21e46fbccc35934b671bd81_GL0.tar.gz) = e115f987eec23a1ba25150a46ced1675de3716072d3b4905afb3a9cda0f007c7
+SIZE (qemu/10.0.20250731/qemu-project-dtc-b6910bec11614980a21e46fbccc35934b671bd81_GL0.tar.gz) = 205556
+SHA256 (qemu/10.0.20250731/qemu-project-libvfio-user-0b28d205572c80b568a1003db2c8f37ca333e4d7_GL0.tar.gz) = d2f60cd4f86f345aab1332953eb736cce3518159e6e99bcc2d10467c06f717fe
+SIZE (qemu/10.0.20250731/qemu-project-libvfio-user-0b28d205572c80b568a1003db2c8f37ca333e4d7_GL0.tar.gz) = 189943
+SHA256 (qemu/10.0.20250731/qemu-project-meson-dd7cf67f00f1b08fc15885d9bade23f8e76845c0_GL0.tar.gz) = 16f79bf0ebccbc803045e802b8b7aa18913eed4c1195c485c6a25cf18526d563
+SIZE (qemu/10.0.20250731/qemu-project-meson-dd7cf67f00f1b08fc15885d9bade23f8e76845c0_GL0.tar.gz) = 4922724
+SHA256 (qemu/10.0.20250731/qemu-project-berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037_GL0.tar.gz) = faae889814ea6a292f7ca03d9b36e6c7e95bab2a64777804883cc822b8d48757
+SIZE (qemu/10.0.20250731/qemu-project-berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037_GL0.tar.gz) = 148741
+SHA256 (qemu/10.0.20250731/qemu-project-berkeley-testfloat-3-e7af9751d9f9fd3b47911f51a5cfd08af256a9ab_GL0.tar.gz) = e7a09d51dc7e96cb8422c919c85fc3833d4f788567638c9162ef5cd7db59b1df
+SIZE (qemu/10.0.20250731/qemu-project-berkeley-testfloat-3-e7af9751d9f9fd3b47911f51a5cfd08af256a9ab_GL0.tar.gz) = 139308
diff --git a/emulators/qemu-powernv/Makefile b/emulators/qemu-powernv/Makefile
index 7ad516404576..afa1246d1c90 100644
--- a/emulators/qemu-powernv/Makefile
+++ b/emulators/qemu-powernv/Makefile
@@ -1,6 +1,6 @@
PORTNAME= qemu-powernv
PORTVERSION= 3.0.50
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= emulators
MASTER_SITES= http://people.freebsd.org/~kbowling/distfiles/
diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile
index df1fa1174335..f6eff65b8ff2 100644
--- a/emulators/qemu/Makefile
+++ b/emulators/qemu/Makefile
@@ -1,5 +1,5 @@
PORTNAME= qemu
-DISTVERSION= 10.0.2
+DISTVERSION= 10.1.0
CATEGORIES= emulators
MASTER_SITES= https://download.qemu.org/
DIST_SUBDIR= qemu/${PORTVERSION}
diff --git a/emulators/qemu/distinfo b/emulators/qemu/distinfo
index 20b36677720e..da4eef02182e 100644
--- a/emulators/qemu/distinfo
+++ b/emulators/qemu/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1748524246
-SHA256 (qemu/10.0.2/qemu-10.0.2.tar.xz) = ef786f2398cb5184600f69aef4d5d691efd44576a3cff4126d38d4c6fec87759
-SIZE (qemu/10.0.2/qemu-10.0.2.tar.xz) = 135678180
+TIMESTAMP = 1756287018
+SHA256 (qemu/10.1.0/qemu-10.1.0.tar.xz) = e0517349b50ca73ebec2fa85b06050d5c463ca65c738833bd8fc1f15f180be51
+SIZE (qemu/10.1.0/qemu-10.1.0.tar.xz) = 141999456
diff --git a/emulators/qemu/pkg-plist b/emulators/qemu/pkg-plist
index 0622304d8a65..f6a824c2be31 100644
--- a/emulators/qemu/pkg-plist
+++ b/emulators/qemu/pkg-plist
@@ -53,10 +53,14 @@ include/qemu-plugin.h
@sample etc/qemu-ifdown.sample
%%DATADIR%%/QEMU,tcx.bin
%%DATADIR%%/QEMU,cgthree.bin
+%%DATADIR%%/ast27x0_bootrom.bin
%%DATADIR%%/bios-256k.bin
%%DATADIR%%/bios-microvm.bin
%%DATADIR%%/bios.bin
-%%DATADIR%%/canyonlands.dtb
+%%DATADIR%%/dtb/bamboo.dtb
+%%DATADIR%%/dtb/canyonlands.dtb
+%%DATADIR%%/dtb/petalogix-ml605.dtb
+%%DATADIR%%/dtb/petalogix-s3adsp1800.dtb
%%DATADIR%%/edk2-aarch64-code.fd
%%DATADIR%%/edk2-arm-code.fd
%%DATADIR%%/edk2-arm-vars.fd
@@ -134,7 +138,6 @@ include/qemu-plugin.h
%%DATADIR%%/opensbi-riscv32-generic-fw_dynamic.bin
%%DATADIR%%/opensbi-riscv64-generic-fw_dynamic.bin
%%DATADIR%%/palcode-clipper
-%%DATADIR%%/petalogix-ml605.dtb
%%DATADIR%%/pnv-pnor.bin
%%DATADIR%%/pxe-e1000.rom
%%DATADIR%%/pxe-eepro100.rom
@@ -157,8 +160,6 @@ include/qemu-plugin.h
%%DATADIR%%/vgabios-vmware.bin
%%DATADIR%%/skiboot.lid
%%DATADIR%%/trace-events-all
-%%DATADIR%%/petalogix-s3adsp1800.dtb
-%%DATADIR%%/bamboo.dtb
%%DATADIR%%/kvmvapic.bin
%%DATADIR%%/u-boot.e500
%%DATADIR%%/pvh.bin
diff --git a/emulators/qemu8/Makefile b/emulators/qemu8/Makefile
deleted file mode 100644
index 13f6e2a4ac07..000000000000
--- a/emulators/qemu8/Makefile
+++ /dev/null
@@ -1,194 +0,0 @@
-PORTNAME= qemu
-DISTVERSION= 8.2.10
-PORTREVISION= 2
-CATEGORIES= emulators
-MASTER_SITES= https://download.qemu.org/
-DIST_SUBDIR= qemu/${PORTVERSION}
-
-MAINTAINER= bofh@FreeBSD.org
-COMMENT= QEMU CPU Emulator ${${FLAVOR}_COMMENT} - 8.X.X
-WWW= https://www.qemu.org/
-
-LICENSE= GPLv2
-
-DEPRECATED= No value in maintaining older QEMU versions on FreeBSD
-EXPIRATION_DATE= 2025-06-30
-
-ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le
-# We need to check if it build with other ARCHS
-
-BUILD_DEPENDS= bash:shells/bash
-LIB_DEPENDS+= libfdt.so:sysutils/dtc \
- libzstd.so:archivers/zstd \
- libslirp.so:net/libslirp
-.if ${FLAVOR:U} != nox11
-LIB_DEPENDS+= libepoxy.so:graphics/libepoxy
-.endif
-
-FLAVORS= default nox11
-FLAVOR?= ${FLAVORS:[1]}
-default_PKGNAMESUFFIX= 8
-default_CONFLICTS_INSTALL= qemu-devel qemu-nox11 qemu-tools qemu-utils \
- qemu7* qemu8*
-nox11_PKGNAMESUFFIX= 8-nox11
-nox11_CONFLICTS_INSTALL= qemu qemu-devel qemu* qemu7* qemu-guest-agent
-nox11_COMMENT= (without X11)
-
-USES= cpe gmake gnome ninja perl5 pkgconfig python:build shebangfix tar:xz
-SHEBANG_FILES= scripts/xml-preprocess.py
-USE_GNOME= glib20
-USE_PERL5= build
-USES+= iconv:wchar_t
-.if ${FLAVOR:U} != nox11
-USE_GNOME+= cairo
-.endif
-
-HAS_CONFIGURE= yes
-CONFIGURE_ARGS+= --cc=${CC} \
- --disable-guest-agent \
- --disable-kvm \
- --disable-linux-aio \
- --disable-linux-user \
- --disable-xen \
- --extra-cflags=-I${WRKSRC}\ -I${LOCALBASE}/include\ -DPREFIX=\\\"\"${PREFIX}\\\"\" \
- --extra-ldflags=-L${LOCALBASE}/lib \
- --extra-ldflags=-L/usr/lib \
- --localstatedir=/var \
- --mandir=${PREFIX}/share/man \
- --prefix=${PREFIX} \
- --python=${PYTHON_CMD}
-CONFIGURE_ARGS+= --enable-fdt=system \
- --enable-netmap
-
-CFLAGS:= ${CFLAGS:C/-fno-tree-vrp//}
-WITHOUT_CPU_CFLAGS= yes #to avoid problems with register allocation
-
-PORTDOCS= .buildinfo _static/* about/* dbus-dbusindex.html devel/* docs \
- genindex.html index.html interop/* objects.inv search.html \
- searchindex.js specs/* system/* tools/* user/*
-
-OPTIONS_DEFINE= CAPSTONE CDROM_DMA CURL DEBUG DOCS GNUTLS GTK3 \
- ISCSI JPEG OPENGL PNG SAMBA SASL STATIC_LINK \
- STRIP USBREDIR VDE X11 X86_TARGETS
-OPTIONS_DEFAULT= CDROM_DMA CURL GNUTLS GTK3 JPEG NCURSES_DEFAULT \
- OPENGL PNG SASL VDE X11
-OPTIONS_SINGLE= NCURSES
-OPTIONS_SINGLE_NCURSES= NCURSES_BASE NCURSES_DEFAULT NCURSES_PORT
-.if ${FLAVOR:U} == nox11
-OPTIONS_EXCLUDE:= GTK3 OPENGL X11
-.endif
-OPTIONS_SUB= yes
-CAPSTONE_DESC= Disassembly framework support
-CDROM_DMA_DESC= IDE CDROM DMA
-GNUTLS_DESC= gnutls dependency (vnc encryption)
-ISCSI_DESC= libiscsi dependency (iSCSI client for emulated drives)
-JPEG_DESC= jpeg dependency (vnc lossy compression)
-NCURSES_BASE_DESC= Depend on ncurses in base
-NCURSES_DEFAULT_DESC= Depend on ncurses (ports if installed, otherwise base)
-NCURSES_PORT_DESC= Depend on devel/ncurses in ports
-PNG_DESC= png dependency (vnc compression)
-SAMBA_DESC= samba dependency (for -smb)
-SASL_DESC= cyrus-sasl dependency (vnc encryption)
-STATIC_LINK_DESC= Statically link the executables
-USBREDIR_DESC= usb device network redirection (experimental!)
-VDE_DESC= vde dependency (for vde networking)
-X86_TARGETS_DESC= Build only x86 system targets
-CAPSTONE_LIB_DEPENDS= libcapstone.so:devel/capstone
-CAPSTONE_CONFIGURE_ON= --enable-capstone \
- --extra-cflags=-I${LOCALBASE}/include/capstone
-CAPSTONE_CONFIGURE_OFF= --disable-capstone
-CURL_LIB_DEPENDS= libcurl.so:ftp/curl
-CURL_CONFIGURE_OFF= --disable-curl
-DEBUG_CONFIGURE_ON= --enable-debug
-DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR} \
- sphinx-build:textproc/py-sphinx@${PY_FLAVOR}
-DOCS_CONFIGURE_ENABLE= docs
-GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls
-GNUTLS_CONFIGURE_OFF= --disable-gnutls
-GTK3_LIB_DEPENDS= libxkbcommon.so:x11/libxkbcommon
-GTK3_USES= gettext gl
-GTK3_USE= GNOME=gdkpixbuf,gtk30,vte3 \
- XORG=x11,xext
-GTK3_CONFIGURE_OFF= --disable-gtk \
- --disable-vte
-ISCSI_LIB_DEPENDS= libiscsi.so:net/libiscsi
-ISCSI_CONFIGURE_OFF= --disable-libiscsi
-JPEG_USES= jpeg
-JPEG_CONFIGURE_OFF= --disable-vnc-jpeg
-NCURSES_BASE_USES= ncurses:base
-NCURSES_DEFAULT_USES= ncurses
-NCURSES_PORT_USES= ncurses:port
-OPENGL_USES= gl
-OPENGL_USE= GL=gbm,gl
-OPENGL_CONFIGURE_OFF= --disable-opengl
-PNG_LIB_DEPENDS= libpng.so:graphics/png
-PNG_CONFIGURE_OFF= --disable-png
-SAMBA_USES= samba:run # smbd
-SAMBA_CONFIGURE_ON= --smbd=${LOCALBASE}/sbin/smbd
-SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2
-SASL_CONFIGURE_OFF= --disable-vnc-sasl
-STATIC_LINK_PREVENTS= GTK3 X11
-STATIC_LINK_PREVENTS_MSG= X11 ui cannot be built static
-STATIC_LINK_CONFIGURE_ON= --static
-STRIP_CONFIGURE_OFF= --disable-strip
-USBREDIR_BUILD_DEPENDS= usbredir>=0.6:net/usbredir
-USBREDIR_RUN_DEPENDS= usbredir>=0.6:net/usbredir
-USBREDIR_CONFIGURE_OFF= --disable-usb-redir
-VDE_LIB_DEPENDS= libvdeplug.so:net/vde2
-VDE_CONFIGURE_OFF= --disable-vde
-X11_USES= sdl
-X11_USE= GNOME=gdkpixbuf \
- SDL=sdl2 \
- XORG=x11,xext
-X11_CONFIGURE_ENABLE= sdl
-.if (empty(FLAVOR) || ${FLAVOR:U} == default || ${FLAVOR:U} == nox11)
-X86_TARGETS_LIB_DEPENDS_OFF= libdw.so:devel/elfutils
-X86_TARGETS_USES_OFF= xorg
-X86_TARGETS_USE_OFF= XORG=pixman,x11
-X86_TARGETS_CONFIGURE_ON= --target-list='i386-softmmu i386-bsd-user x86_64-softmmu x86_64-bsd-user'
-.endif
-
-.include <bsd.port.options.mk>
-
-.if (empty(FLAVOR) || ${FLAVOR:U} == default || ${FLAVOR:U} == nox11)
-.if ${ARCH} == "amd64"
-MAKE_ARGS+= ARCH=x86_64
-.endif
-
-.if ${ARCH} == "powerpc"
-CFLAGS+= -D_CALL_SYSV
-MAKE_ARGS+= ARCH=ppc
-USE_GCC= yes
-.endif
-
-.if ${ARCH:Mpowerpc64*} || ${ARCH:Maarch64}
-CONFIGURE_ARGS+= --disable-bsd-user
-MAKE_ARGS+= ARCH=${ARCH:C/powerpc64.*/ppc64/}
-PLIST_SUB+= BSDUSER="@comment "
-.else
-PLIST_SUB+= BSDUSER=""
-.endif
-
-PLIST_SUB+= LINUXBOOT_DMA=""
-.endif
-
-post-patch-CDROM_DMA-off:
- @${REINPLACE_CMD} -e '/USE_DMA_CDROM/d' ${WRKSRC}/include/hw/ide/internal.h
-
-do-build:
- cd ${WRKSRC} && ${SETENVI} ${WRK_ENV} ${GMAKE} -j${MAKE_JOBS_NUMBER}
-
-do-install:
- cd ${WRKSRC} && ${SETENVI} ${WRK_ENV} DESTDIR=${STAGEDIR} ${GMAKE} install
-
-.if !target(post-install)
-post-install:
- ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifup.sample ${STAGEDIR}${PREFIX}/etc
- ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifdown.sample ${STAGEDIR}${PREFIX}/etc
- @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/qemu-*
-
-post-install-DOCS-on:
- @(cd ${WRKSRC} && ${COPYTREE_SHARE} docs ${STAGEDIR}${DOCSDIR}/)
-.endif
-
-.include <bsd.port.mk>
diff --git a/emulators/qemu8/distinfo b/emulators/qemu8/distinfo
deleted file mode 100644
index 4324ab19d3db..000000000000
--- a/emulators/qemu8/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1743065368
-SHA256 (qemu/8.2.10/qemu-8.2.10.tar.xz) = 37b4a643da8ed6015eef35f5d7f06e7259d9c95359965a0a98e9667c621ab2bb
-SIZE (qemu/8.2.10/qemu-8.2.10.tar.xz) = 132685948
diff --git a/emulators/qemu8/files/patch-block_export_fuse.c b/emulators/qemu8/files/patch-block_export_fuse.c
deleted file mode 100644
index 03b9cc8b5994..000000000000
--- a/emulators/qemu8/files/patch-block_export_fuse.c
+++ /dev/null
@@ -1,69 +0,0 @@
---- block/export/fuse.c.orig 2023-12-19 21:24:34 UTC
-+++ block/export/fuse.c
-@@ -690,12 +690,6 @@ static void fuse_fallocate(fuse_req_t req, fuse_ino_t
- return;
- }
-
--#ifdef CONFIG_FALLOCATE_PUNCH_HOLE
-- if (mode & FALLOC_FL_KEEP_SIZE) {
-- length = MIN(length, blk_len - offset);
-- }
--#endif /* CONFIG_FALLOCATE_PUNCH_HOLE */
--
- if (!mode) {
- /* We can only fallocate at the EOF with a truncate */
- if (offset < blk_len) {
-@@ -715,53 +709,6 @@ static void fuse_fallocate(fuse_req_t req, fuse_ino_t
- ret = fuse_do_truncate(exp, offset + length, true,
- PREALLOC_MODE_FALLOC);
- }
--#ifdef CONFIG_FALLOCATE_PUNCH_HOLE
-- else if (mode & FALLOC_FL_PUNCH_HOLE) {
-- if (!(mode & FALLOC_FL_KEEP_SIZE)) {
-- fuse_reply_err(req, EINVAL);
-- return;
-- }
--
-- do {
-- int size = MIN(length, BDRV_REQUEST_MAX_BYTES);
--
-- ret = blk_pwrite_zeroes(exp->common.blk, offset, size,
-- BDRV_REQ_MAY_UNMAP | BDRV_REQ_NO_FALLBACK);
-- if (ret == -ENOTSUP) {
-- /*
-- * fallocate() specifies to return EOPNOTSUPP for unsupported
-- * operations
-- */
-- ret = -EOPNOTSUPP;
-- }
--
-- offset += size;
-- length -= size;
-- } while (ret == 0 && length > 0);
-- }
--#endif /* CONFIG_FALLOCATE_PUNCH_HOLE */
--#ifdef CONFIG_FALLOCATE_ZERO_RANGE
-- else if (mode & FALLOC_FL_ZERO_RANGE) {
-- if (!(mode & FALLOC_FL_KEEP_SIZE) && offset + length > blk_len) {
-- /* No need for zeroes, we are going to write them ourselves */
-- ret = fuse_do_truncate(exp, offset + length, false,
-- PREALLOC_MODE_OFF);
-- if (ret < 0) {
-- fuse_reply_err(req, -ret);
-- return;
-- }
-- }
--
-- do {
-- int size = MIN(length, BDRV_REQUEST_MAX_BYTES);
--
-- ret = blk_pwrite_zeroes(exp->common.blk,
-- offset, size, 0);
-- offset += size;
-- length -= size;
-- } while (ret == 0 && length > 0);
-- }
--#endif /* CONFIG_FALLOCATE_ZERO_RANGE */
- else {
- ret = -EOPNOTSUPP;
- }
diff --git a/emulators/qemu8/files/patch-bsd-user_host_i386_host-signal.h b/emulators/qemu8/files/patch-bsd-user_host_i386_host-signal.h
deleted file mode 100644
index 07d731fd4f54..000000000000
--- a/emulators/qemu8/files/patch-bsd-user_host_i386_host-signal.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- bsd-user/host/i386/host-signal.h.orig 2022-12-14 16:28:45 UTC
-+++ bsd-user/host/i386/host-signal.h
-@@ -12,6 +12,7 @@
- #include <sys/param.h>
- #include <sys/ucontext.h>
- #include <machine/trap.h>
-+#include <vm/vm.h>
- #include <vm/pmap.h>
- #include <machine/pmap.h>
-
diff --git a/emulators/qemu8/files/patch-util_cpuinfo-ppc.c b/emulators/qemu8/files/patch-util_cpuinfo-ppc.c
deleted file mode 100644
index af9999a22108..000000000000
--- a/emulators/qemu8/files/patch-util_cpuinfo-ppc.c
+++ /dev/null
@@ -1,34 +0,0 @@
---- util/cpuinfo-ppc.c.orig 2024-01-29 19:13:22 UTC
-+++ util/cpuinfo-ppc.c
-@@ -6,13 +6,21 @@
- #include "qemu/osdep.h"
- #include "host/cpuinfo.h"
-
--#include <asm/cputable.h>
- #ifdef CONFIG_GETAUXVAL
- # include <sys/auxv.h>
- #else
-+# ifdef __linux__
-+# include <asm/cputable.h>
-+# elif defined(__FreeBSD__)
-+# include <machine/cpu.h>
-+# endif
- # include "elf.h"
- #endif
-
-+#ifndef PPC_FEATURE2_ARCH_3_1
-+# define PPC_FEATURE2_ARCH_3_1 0x00040000
-+#endif
-+
- unsigned cpuinfo;
-
- /* Called both as constructor and (possibly) via other constructors. */
-@@ -53,7 +61,7 @@ unsigned __attribute__((constructor)) cpuinfo_init(voi
- * always have both anyway, since VSX came with Power7
- * and crypto came with Power8.
- */
-- if (hwcap2 & PPC_FEATURE2_VEC_CRYPTO) {
-+ if (hwcap2 & PPC_FEATURE2_HAS_VEC_CRYPTO) {
- info |= CPUINFO_CRYPTO;
- }
- }
diff --git a/emulators/qemu8/files/patch-util_meson.build b/emulators/qemu8/files/patch-util_meson.build
deleted file mode 100644
index 1e42351652d7..000000000000
--- a/emulators/qemu8/files/patch-util_meson.build
+++ /dev/null
@@ -1,15 +0,0 @@
---- util/meson.build.orig 2023-12-19 21:24:35 UTC
-+++ util/meson.build
-@@ -102,11 +102,7 @@ if have_block
- util_ss.add(files('readline.c'))
- util_ss.add(files('throttle.c'))
- util_ss.add(files('timed-average.c'))
-- if config_host_data.get('CONFIG_INOTIFY1')
-- util_ss.add(files('filemonitor-inotify.c'))
-- else
-- util_ss.add(files('filemonitor-stub.c'))
-- endif
-+ util_ss.add(files('filemonitor-stub.c'))
- util_ss.add(when: 'CONFIG_LINUX', if_true: files('vfio-helpers.c'))
- endif
-
diff --git a/emulators/qemu8/files/qemu-ifdown.sample b/emulators/qemu8/files/qemu-ifdown.sample
deleted file mode 100644
index 89d9a9bff436..000000000000
--- a/emulators/qemu8/files/qemu-ifdown.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-exec true
diff --git a/emulators/qemu8/files/qemu-ifup.sample b/emulators/qemu8/files/qemu-ifup.sample
deleted file mode 100644
index 89d9a9bff436..000000000000
--- a/emulators/qemu8/files/qemu-ifup.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-exec true
diff --git a/emulators/qemu8/pkg-descr b/emulators/qemu8/pkg-descr
deleted file mode 100644
index 592b7660dd49..000000000000
--- a/emulators/qemu8/pkg-descr
+++ /dev/null
@@ -1,14 +0,0 @@
-QEMU is a FAST! processor emulator using dynamic translation to achieve
-good emulation speed.
-QEMU has two operating modes:
-
- * Full system emulation. In this mode, QEMU emulates a full system
-(for example a PC), including a processor and various peripherials.
-It can be used to launch different Operating Systems without rebooting
-the PC or to debug system code.
- * User mode emulation (Linux host only). In this mode, QEMU can launch
-Linux processes compiled for one CPU on another CPU. It can be used to
-launch the Wine Windows API emulator or to ease cross-compilation and
-cross-debugging.
-
-As QEMU requires no host kernel patches to run, it is very safe and easy to use.
diff --git a/emulators/qemu8/pkg-message b/emulators/qemu8/pkg-message
deleted file mode 100644
index ac6e871ff11c..000000000000
--- a/emulators/qemu8/pkg-message
+++ /dev/null
@@ -1,76 +0,0 @@
-[
-{ type: install
- message: <<EOM
-FreeBSD host notes
-==================
-
-- Needs to set net.link.tap.user_open sysctl in order to use /dev/tap*
- networking as non-root. Don't forget to adjust device node permissions in
- /etc/devfs.rules.
-
-- Expect timer problems when guest kernel HZ is > hosts. The linux 2.6
- kernel uses 1000 by default btw. (changed to 250 later, and recent linux
- kernels now no longer have a fixed HZ, aka `tickless kernel'...)
- Enabling /dev/rtc doesn't seem to help either (not included since it needs
- a patch to emulators/rtc.)
-
-- The -smb option (smb-export local dir to guest using the default
- slirp networking) needs the samba port/package installed
- in addition to qemu. (SAMBA knob.)
-
-- If you want to use usb devices connected to the host in the guest
- yot can use usbredir over the network (see below); also unless you are
- running qemu as root you then need to fix permissions for /dev/ugen*
- device nodes: if you are on 5.x or later (devfs) put a rule in
- /etc/devfs.rules, activate it in /etc/rc.conf and run /etc/rc.d/devfs
- restart. Example devfs.rules:
-
- [ugen_ruleset=20]
- add path 'ugen*' mode 660 group operator
-
- corresponding rc.conf line:
-
- devfs_system_ruleset="ugen_ruleset"
-
-- Still usb: since the hub is no longer attached to the uchi controller and
- the wakeup mechanism, resume interrupt is not implemented yet linux guests
- will suspend the bus, i.e. they wont see devices usb_add'ed after its
- (linux') uhci module got loaded. Workaround: either add devices before
- linux loads the module or rmmod and modprobe it afterwards. [Not sure
- if this still applies to the new libusb host code used on recent
- 10-current.]
-
-- If you get repeated `atapi_poll called!' console messages with FreeBSD
- guests or other weird cdrom problems then thats probably because the guest
- has atapicam loaded, which for reasons still to be determined has problems
- with qemu's now by default enabled cdrom dma. You can build the port with
- CDROM_DMA disabled to disable it. [Looks like this is fixed in recent
- FreeBSD guest versions.]
-
-- If you build qemu wihout SDL and then get crashes running it try passing it
- -nographic. This should probably be default in that case...
-
-- qemu's network boot roms (-boot n) have a bug when bootfiles sizes are a
- multiple of blksize, if this affects you (like with FreeBSD's /boot/pxeboot)
- you can do like
-
- cp /boot/pxeboot pxeboot-qemu && chmod +w pxeboot-qemu && echo >>pxeboot-qemu
-
- and then use pxeboot-qemu. Actually you need recent btx code
- (from after 7.0 was released) because of the real mode boot
- problem, so use at least pxeboot from there. And I just did that
- for the pxeboot extracted out of
-
- ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/200805/7.0-STABLE-200805-i386-bootonly.iso
-
- and placed it here:
-
- http://people.freebsd.org/~nox/qemu/pxeboot-qemu
-
-- If you use slirp (usernet, the default) and want to mount nfs into the guest
- and you are not running qemu as root, then mountd(8) on the exporting box
- needs to be run with -n in order to accept requests from ports >= 1024.
-
-EOM
-}
-]
diff --git a/emulators/qemu8/pkg-plist b/emulators/qemu8/pkg-plist
deleted file mode 100644
index ecfff8c9de72..000000000000
--- a/emulators/qemu8/pkg-plist
+++ /dev/null
@@ -1,180 +0,0 @@
-%%CURL%%bin/elf2dmp
-%%BSDUSER%%%%NO_X86_TARGETS%%bin/qemu-arm
-bin/qemu-edid
-%%BSDUSER%%bin/qemu-i386
-bin/qemu-img
-bin/qemu-io
-%%GTK3%%bin/qemu-keymap
-bin/qemu-nbd
-bin/qemu-storage-daemon
-%%NO_X86_TARGETS%%bin/qemu-system-aarch64
-%%NO_X86_TARGETS%%bin/qemu-system-alpha
-%%NO_X86_TARGETS%%bin/qemu-system-avr
-%%NO_X86_TARGETS%%bin/qemu-system-arm
-%%NO_X86_TARGETS%%bin/qemu-system-cris
-%%NO_X86_TARGETS%%bin/qemu-system-hppa
-bin/qemu-system-i386
-%%NO_X86_TARGETS%%bin/qemu-system-loongarch64
-%%NO_X86_TARGETS%%bin/qemu-system-m68k
-%%NO_X86_TARGETS%%bin/qemu-system-microblaze
-%%NO_X86_TARGETS%%bin/qemu-system-microblazeel
-%%NO_X86_TARGETS%%bin/qemu-system-mips
-%%NO_X86_TARGETS%%bin/qemu-system-mips64
-%%NO_X86_TARGETS%%bin/qemu-system-mips64el
-%%NO_X86_TARGETS%%bin/qemu-system-mipsel
-%%NO_X86_TARGETS%%bin/qemu-system-nios2
-%%NO_X86_TARGETS%%bin/qemu-system-or1k
-%%NO_X86_TARGETS%%bin/qemu-system-ppc
-%%NO_X86_TARGETS%%bin/qemu-system-ppc64
-%%NO_X86_TARGETS%%bin/qemu-system-riscv32
-%%NO_X86_TARGETS%%bin/qemu-system-riscv64
-%%NO_X86_TARGETS%%bin/qemu-system-rx
-%%NO_X86_TARGETS%%bin/qemu-system-s390x
-%%NO_X86_TARGETS%%bin/qemu-system-sh4
-%%NO_X86_TARGETS%%bin/qemu-system-sh4eb
-%%NO_X86_TARGETS%%bin/qemu-system-sparc
-%%NO_X86_TARGETS%%bin/qemu-system-sparc64
-%%NO_X86_TARGETS%%bin/qemu-system-tricore
-bin/qemu-system-x86_64
-%%NO_X86_TARGETS%%bin/qemu-system-xtensa
-%%NO_X86_TARGETS%%bin/qemu-system-xtensaeb
-%%BSDUSER%%bin/qemu-x86_64
-include/qemu-plugin.h
-%%PORTDOCS%%share/man/man1/qemu.1.gz
-%%PORTDOCS%%share/man/man1/qemu-img.1.gz
-%%PORTDOCS%%share/man/man7/qemu-block-drivers.7.gz
-%%PORTDOCS%%share/man/man7/qemu-cpu-models.7.gz
-%%PORTDOCS%%share/man/man8/qemu-nbd.8.gz
-%%PORTDOCS%%share/man/man8/qemu-pr-helper.8.gz
-%%PORTDOCS%%share/man/man7/qemu-qmp-ref.7.gz
-%%PORTDOCS%%share/man/man1/qemu-storage-daemon.1.gz
-%%PORTDOCS%%share/man/man7/qemu-storage-daemon-qmp-ref.7.gz
-@sample etc/qemu-ifup.sample
-@sample etc/qemu-ifdown.sample
-%%DATADIR%%/QEMU,tcx.bin
-%%DATADIR%%/QEMU,cgthree.bin
-%%DATADIR%%/bios-256k.bin
-%%DATADIR%%/bios-microvm.bin
-%%DATADIR%%/bios.bin
-%%DATADIR%%/canyonlands.dtb
-%%DATADIR%%/edk2-aarch64-code.fd
-%%DATADIR%%/edk2-arm-code.fd
-%%DATADIR%%/edk2-arm-vars.fd
-%%DATADIR%%/edk2-i386-code.fd
-%%DATADIR%%/edk2-i386-secure-code.fd
-%%DATADIR%%/edk2-i386-vars.fd
-%%DATADIR%%/edk2-licenses.txt
-%%DATADIR%%/edk2-x86_64-code.fd
-%%DATADIR%%/edk2-x86_64-secure-code.fd
-%%DATADIR%%/efi-e1000.rom
-%%DATADIR%%/efi-e1000e.rom
-%%DATADIR%%/efi-eepro100.rom
-%%DATADIR%%/efi-ne2k_pci.rom
-%%DATADIR%%/efi-pcnet.rom
-%%DATADIR%%/efi-rtl8139.rom
-%%DATADIR%%/efi-virtio.rom
-%%DATADIR%%/efi-vmxnet3.rom
-%%DATADIR%%/firmware/50-edk2-i386-secure.json
-%%DATADIR%%/firmware/50-edk2-x86_64-secure.json
-%%DATADIR%%/firmware/60-edk2-aarch64.json
-%%DATADIR%%/firmware/60-edk2-arm.json
-%%DATADIR%%/firmware/60-edk2-i386.json
-%%DATADIR%%/firmware/60-edk2-x86_64.json
-%%DATADIR%%/hppa-firmware.img
-%%DATADIR%%/keymaps/ar
-%%DATADIR%%/keymaps/bepo
-%%DATADIR%%/keymaps/cz
-%%DATADIR%%/keymaps/da
-%%DATADIR%%/keymaps/de
-%%DATADIR%%/keymaps/de-ch
-%%DATADIR%%/keymaps/en-gb
-%%DATADIR%%/keymaps/en-us
-%%DATADIR%%/keymaps/es
-%%DATADIR%%/keymaps/et
-%%DATADIR%%/keymaps/fi
-%%DATADIR%%/keymaps/fo
-%%DATADIR%%/keymaps/fr
-%%DATADIR%%/keymaps/fr-be
-%%DATADIR%%/keymaps/fr-ca
-%%DATADIR%%/keymaps/fr-ch
-%%DATADIR%%/keymaps/hr
-%%DATADIR%%/keymaps/hu
-%%DATADIR%%/keymaps/is
-%%DATADIR%%/keymaps/it
-%%DATADIR%%/keymaps/ja
-%%DATADIR%%/keymaps/lt
-%%DATADIR%%/keymaps/lv
-%%DATADIR%%/keymaps/mk
-%%DATADIR%%/keymaps/nl
-%%DATADIR%%/keymaps/no
-%%DATADIR%%/keymaps/pl
-%%DATADIR%%/keymaps/pt
-%%DATADIR%%/keymaps/pt-br
-%%DATADIR%%/keymaps/ru
-%%DATADIR%%/keymaps/sl
-%%DATADIR%%/keymaps/sv
-%%DATADIR%%/keymaps/th
-%%DATADIR%%/keymaps/tr
-%%DATADIR%%/linuxboot.bin
-%%LINUXBOOT_DMA%%%%DATADIR%%/linuxboot_dma.bin
-%%DATADIR%%/multiboot.bin
-%%DATADIR%%/multiboot_dma.bin
-%%DATADIR%%/npcm7xx_bootrom.bin
-%%DATADIR%%/openbios-ppc
-%%DATADIR%%/openbios-sparc32
-%%DATADIR%%/openbios-sparc64
-%%DATADIR%%/opensbi-riscv32-generic-fw_dynamic.bin
-%%DATADIR%%/opensbi-riscv64-generic-fw_dynamic.bin
-%%DATADIR%%/palcode-clipper
-%%DATADIR%%/petalogix-ml605.dtb
-%%DATADIR%%/pxe-e1000.rom
-%%DATADIR%%/pxe-eepro100.rom
-%%DATADIR%%/pxe-ne2k_pci.rom
-%%DATADIR%%/pxe-rtl8139.rom
-%%DATADIR%%/pxe-pcnet.rom
-%%DATADIR%%/pxe-virtio.rom
-%%DATADIR%%/qboot.rom
-%%DATADIR%%/qemu-nsis.bmp
-%%DATADIR%%/qemu_vga.ndrv
-%%DATADIR%%/s390-ccw.img
-%%DATADIR%%/s390-netboot.img
-%%DATADIR%%/slof.bin
-%%DATADIR%%/u-boot-sam460-20100605.bin
-%%DATADIR%%/vgabios.bin
-%%DATADIR%%/vgabios-ati.bin
-%%DATADIR%%/vgabios-cirrus.bin
-%%DATADIR%%/vgabios-qxl.bin
-%%DATADIR%%/vgabios-stdvga.bin
-%%DATADIR%%/vgabios-virtio.bin
-%%DATADIR%%/vgabios-vmware.bin
-%%DATADIR%%/skiboot.lid
-%%DATADIR%%/trace-events-all
-%%DATADIR%%/petalogix-s3adsp1800.dtb
-%%DATADIR%%/bamboo.dtb
-%%DATADIR%%/kvmvapic.bin
-%%DATADIR%%/u-boot.e500
-%%DATADIR%%/pvh.bin
-%%DATADIR%%/vgabios-bochs-display.bin
-%%DATADIR%%/vgabios-ramfb.bin
-%%DATADIR%%/vof-nvram.bin
-%%DATADIR%%/vof.bin
-share/icons/hicolor/128x128/apps/qemu.png
-share/icons/hicolor/16x16/apps/qemu.png
-share/icons/hicolor/24x24/apps/qemu.png
-share/icons/hicolor/256x256/apps/qemu.png
-share/icons/hicolor/32x32/apps/qemu.bmp
-share/icons/hicolor/32x32/apps/qemu.png
-share/icons/hicolor/48x48/apps/qemu.png
-share/icons/hicolor/512x512/apps/qemu.png
-share/icons/hicolor/64x64/apps/qemu.png
-share/icons/hicolor/scalable/apps/qemu.svg
-share/applications/qemu.desktop
-%%GTK3%%share/locale/bg/LC_MESSAGES/qemu.mo
-%%GTK3%%share/locale/de_DE/LC_MESSAGES/qemu.mo
-%%GTK3%%share/locale/fr_FR/LC_MESSAGES/qemu.mo
-%%GTK3%%share/locale/hu/LC_MESSAGES/qemu.mo
-%%GTK3%%share/locale/it/LC_MESSAGES/qemu.mo
-%%GTK3%%share/locale/sv/LC_MESSAGES/qemu.mo
-%%GTK3%%share/locale/tr/LC_MESSAGES/qemu.mo
-%%GTK3%%share/locale/uk/LC_MESSAGES/qemu.mo
-%%GTK3%%share/locale/zh_CN/LC_MESSAGES/qemu.mo
diff --git a/emulators/sameboy/Makefile b/emulators/sameboy/Makefile
index 065d043af171..7477c7e23aeb 100644
--- a/emulators/sameboy/Makefile
+++ b/emulators/sameboy/Makefile
@@ -1,6 +1,6 @@
PORTNAME= sameboy
DISTVERSIONPREFIX= v
-DISTVERSION= 1.0.1
+DISTVERSION= 1.0.2
CATEGORIES= emulators games
MAINTAINER= eduardo@FreeBSD.org
diff --git a/emulators/sameboy/distinfo b/emulators/sameboy/distinfo
index 733bf7a93e9c..2aabea89411a 100644
--- a/emulators/sameboy/distinfo
+++ b/emulators/sameboy/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1743805732
-SHA256 (LIJI32-SameBoy-v1.0.1_GH0.tar.gz) = ccaba9e567330e3c4ce4ac10e5a410797b148557b42482b4fd55c61d592cd0c9
-SIZE (LIJI32-SameBoy-v1.0.1_GH0.tar.gz) = 7438446
+TIMESTAMP = 1754069839
+SHA256 (LIJI32-SameBoy-v1.0.2_GH0.tar.gz) = 226fb89e0bffb750d59619a8da7d7885517a68d6be3eae682abc7a9a49b16571
+SIZE (LIJI32-SameBoy-v1.0.2_GH0.tar.gz) = 7852346
diff --git a/emulators/sameboy/pkg-plist b/emulators/sameboy/pkg-plist
index 63106b2c8e6b..afa3cc348a6f 100644
--- a/emulators/sameboy/pkg-plist
+++ b/emulators/sameboy/pkg-plist
@@ -20,7 +20,7 @@ share/icons/hicolor/512x512/mimetypes/x-gameboy-rom.png
share/icons/hicolor/64x64/apps/sameboy.png
share/icons/hicolor/64x64/mimetypes/x-gameboy-color-rom.png
share/icons/hicolor/64x64/mimetypes/x-gameboy-rom.png
-share/mime/sameboy.xml
+share/mime/packages/sameboy.xml
@comment %%DATADIR%%/LICENSE
%%DATADIR%%/Palettes/Canyon.sbp
%%DATADIR%%/Palettes/Desert.sbp
diff --git a/emulators/tiemu3/Makefile b/emulators/tiemu3/Makefile
index 85764c295d86..bbf1c7d55fcd 100644
--- a/emulators/tiemu3/Makefile
+++ b/emulators/tiemu3/Makefile
@@ -1,6 +1,6 @@
PORTNAME= tiemu3
PORTVERSION= 3.03
-PORTREVISION= 14
+PORTREVISION= 15
CATEGORIES= emulators
MASTER_SITES= SF/gtktiemu/tiemu-linux/TIEmu%20${DISTVERSION}
DISTNAME= tiemu-${DISTVERSION}
diff --git a/emulators/uconvert/Makefile b/emulators/uconvert/Makefile
index b09faab579bf..8fbd72f7e8ce 100644
--- a/emulators/uconvert/Makefile
+++ b/emulators/uconvert/Makefile
@@ -1,7 +1,7 @@
PORTNAME= uconvert
DISTVERSIONPREFIX= v
DISTVERSION= 1.01
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= emulators graphics
MAINTAINER= otis@FreeBSD.org
diff --git a/emulators/virtualbox-ose-70/Makefile b/emulators/virtualbox-ose-70/Makefile
index 19516c211e1f..4d7dea9d02ca 100644
--- a/emulators/virtualbox-ose-70/Makefile
+++ b/emulators/virtualbox-ose-70/Makefile
@@ -1,6 +1,6 @@
PORTNAME= virtualbox-ose
DISTVERSION= 7.0.26
-PORTREVISION?= 3
+PORTREVISION?= 4
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
LOCAL/vvd:docs
@@ -45,7 +45,9 @@ CONFLICTS_INSTALL= virtualbox-ose-legacy \
virtualbox-ose \
virtualbox-ose-nox11 \
virtualbox-ose-71 \
- virtualbox-ose-nox11-71
+ virtualbox-ose-nox11-71 \
+ virtualbox-ose-72 \
+ virtualbox-ose-nox11-72
PORTSCOUT= limit:^7\.0\.
SUB_FILES= pkg-message
diff --git a/emulators/virtualbox-ose-71/Makefile b/emulators/virtualbox-ose-71/Makefile
index 1941d1f63133..7b5d79a0d306 100644
--- a/emulators/virtualbox-ose-71/Makefile
+++ b/emulators/virtualbox-ose-71/Makefile
@@ -1,6 +1,6 @@
PORTNAME= virtualbox-ose
-DISTVERSION= 7.1.10
-PORTREVISION?= 1
+DISTVERSION= 7.1.12
+PORTREVISION?= 0
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
LOCAL/vvd:docs
@@ -44,7 +44,9 @@ CONFLICTS_INSTALL= virtualbox-ose-legacy \
virtualbox-ose \
virtualbox-ose-nox11 \
virtualbox-ose-70 \
- virtualbox-ose-nox11-70
+ virtualbox-ose-nox11-70 \
+ virtualbox-ose-72 \
+ virtualbox-ose-nox11-72
PORTSCOUT= limit:^7\.1\.
SUB_FILES= pkg-message
diff --git a/emulators/virtualbox-ose-71/distinfo b/emulators/virtualbox-ose-71/distinfo
index 36ff7a2f5869..e7b992b0b10c 100644
--- a/emulators/virtualbox-ose-71/distinfo
+++ b/emulators/virtualbox-ose-71/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1749075437
-SHA256 (VirtualBox-7.1.10.tar.bz2) = 7d60010a4c9102613554b46f61d17b825c30ee59d8be071e52d8aac664ca9869
-SIZE (VirtualBox-7.1.10.tar.bz2) = 233395034
-SHA256 (VirtualBox-docs-7.1.10.tar.bz2) = 5ff2827643d1d01ad6e26eb86dd7a2e1c9ce13c7049ab360054bd689253fd14b
-SIZE (VirtualBox-docs-7.1.10.tar.bz2) = 10113312
-SHA256 (VBoxGuestAdditions_7.1.10.iso) = 59c92f7f5fd7e081211e989f5117fc53ad8d8800ad74a01b21e97bb66fe62972
-SIZE (VBoxGuestAdditions_7.1.10.iso) = 61378560
+TIMESTAMP = 1752700000
+SHA256 (VirtualBox-7.1.12.tar.bz2) = 6f9618f39168898134975f51df7c2d6d5129c0aa82b6ae11cf47f920c70df276
+SIZE (VirtualBox-7.1.12.tar.bz2) = 214691769
+SHA256 (VirtualBox-docs-7.1.12.tar.bz2) = ba48f2da2593d8cae56fcf601c132d77dbf1d16b1e26db162c89449250c269bd
+SIZE (VirtualBox-docs-7.1.12.tar.bz2) = 10109084
+SHA256 (VBoxGuestAdditions_7.1.12.iso) = 256883e2eabf7ab5c10fb3b6831c294942ce34bc615807f9d0cf6c3d2e882236
+SIZE (VBoxGuestAdditions_7.1.12.iso) = 61331456
diff --git a/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk b/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk
deleted file mode 100644
index f13be222ea9a..000000000000
--- a/emulators/virtualbox-ose-71/files/patch-src-VBox-Runtime-Makefile.kmk
+++ /dev/null
@@ -1,14 +0,0 @@
---- src/VBox/Runtime/Makefile.kmk.orig 2021-01-07 15:41:50 UTC
-+++ src/VBox/Runtime/Makefile.kmk
-@@ -177,6 +177,11 @@ $(IPRT_OUT_DIR)/oiddb.h.ts +| $(IPRT_OUT_DIR)/oiddb.h:
-
-
- #
-+# Set the defines that utf8-posix.cpp needs. It's used by several targets.
-+#
-+r3/posix/utf8-posix.cpp_DEFS.freebsd = $(VBOX_ICONV_DEFS)
-+
-+#
- # Unicode Specification reader used to regenerate unidata-*.cpp.
- #
- uniread_TEMPLATE = VBoxBldProg
diff --git a/emulators/virtualbox-ose-additions-legacy/Makefile b/emulators/virtualbox-ose-additions-legacy/Makefile
index 36da35e3c79c..e9067d5fd9b4 100644
--- a/emulators/virtualbox-ose-additions-legacy/Makefile
+++ b/emulators/virtualbox-ose-additions-legacy/Makefile
@@ -42,7 +42,9 @@ CONFLICTS_INSTALL= virtualbox-ose-additions \
virtualbox-ose-additions-70 \
virtualbox-ose-additions-nox11-70 \
virtualbox-ose-additions-71 \
- virtualbox-ose-additions-nox11-71
+ virtualbox-ose-additions-nox11-71 \
+ virtualbox-ose-additions-72 \
+ virtualbox-ose-additions-nox11-72
PATCHDIR= ${.CURDIR}/../${PORTNAME}-legacy/files
EXTRACT_AFTER_ARGS= --exclude tools/*.x86 --exclude tools/*.amd64 --exclude Firmware
diff --git a/emulators/virtualbox-ose-additions/Makefile b/emulators/virtualbox-ose-additions/Makefile
index 58ad514e9a9b..2e5c8cc62bf2 100644
--- a/emulators/virtualbox-ose-additions/Makefile
+++ b/emulators/virtualbox-ose-additions/Makefile
@@ -42,7 +42,9 @@ CONFLICTS_INSTALL= virtualbox-ose-additions-legacy \
virtualbox-ose-additions-70 \
virtualbox-ose-additions-nox11-70 \
virtualbox-ose-additions-71 \
- virtualbox-ose-additions-nox11-71
+ virtualbox-ose-additions-nox11-71 \
+ virtualbox-ose-additions-72 \
+ virtualbox-ose-additions-nox11-72
PATCHDIR= ${.CURDIR}/../${PORTNAME}/files
EXTRACT_AFTER_ARGS= --exclude tools/*.x86 --exclude tools/*.amd64 --exclude Firmware
diff --git a/emulators/virtualbox-ose-kmod-70/Makefile b/emulators/virtualbox-ose-kmod-70/Makefile
index aecfea40859f..88de93b5d54a 100644
--- a/emulators/virtualbox-ose-kmod-70/Makefile
+++ b/emulators/virtualbox-ose-kmod-70/Makefile
@@ -35,7 +35,8 @@ CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-kmod-legacy \
virtualbox-ose-kmod \
- virtualbox-ose-kmod-71
+ virtualbox-ose-kmod-71 \
+ virtualbox-ose-kmod-72
PATCHDIR= ${.CURDIR}/../${PORTNAME}-70/files
PORTSCOUT= limit:^7\.0\.
diff --git a/emulators/virtualbox-ose-kmod-71/Makefile b/emulators/virtualbox-ose-kmod-71/Makefile
index 804952dba81b..75f20dc887fc 100644
--- a/emulators/virtualbox-ose-kmod-71/Makefile
+++ b/emulators/virtualbox-ose-kmod-71/Makefile
@@ -1,5 +1,5 @@
PORTNAME= virtualbox-ose
-DISTVERSION= 7.1.10
+DISTVERSION= 7.1.12
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/
PKGNAMESUFFIX= -kmod-71
@@ -35,7 +35,8 @@ CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-kmod-legacy \
virtualbox-ose-kmod \
- virtualbox-ose-kmod-70
+ virtualbox-ose-kmod-70 \
+ virtualbox-ose-kmod-72
PATCHDIR= ${.CURDIR}/../${PORTNAME}-71/files
PORTSCOUT= limit:^7\.1\.
diff --git a/emulators/virtualbox-ose-kmod-71/distinfo b/emulators/virtualbox-ose-kmod-71/distinfo
index 51307e08d320..fb7394d7745c 100644
--- a/emulators/virtualbox-ose-kmod-71/distinfo
+++ b/emulators/virtualbox-ose-kmod-71/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1749033863
-SHA256 (VirtualBox-7.1.10.tar.bz2) = 7d60010a4c9102613554b46f61d17b825c30ee59d8be071e52d8aac664ca9869
-SIZE (VirtualBox-7.1.10.tar.bz2) = 233395034
+TIMESTAMP = 1752700000
+SHA256 (VirtualBox-7.1.12.tar.bz2) = 6f9618f39168898134975f51df7c2d6d5129c0aa82b6ae11cf47f920c70df276
+SIZE (VirtualBox-7.1.12.tar.bz2) = 214691769
diff --git a/emulators/virtualbox-ose-kmod-legacy/Makefile b/emulators/virtualbox-ose-kmod-legacy/Makefile
index 15eb47c2a4a1..ba05f9a005aa 100644
--- a/emulators/virtualbox-ose-kmod-legacy/Makefile
+++ b/emulators/virtualbox-ose-kmod-legacy/Makefile
@@ -36,7 +36,8 @@ CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-kmod \
virtualbox-ose-kmod-70 \
- virtualbox-ose-kmod-71
+ virtualbox-ose-kmod-71 \
+ virtualbox-ose-kmod-72
PATCHDIR= ${.CURDIR}/../${PORTNAME}-legacy/files
PORTSCOUT= limit:^5\.
diff --git a/emulators/virtualbox-ose-kmod/Makefile b/emulators/virtualbox-ose-kmod/Makefile
index dd7d18bbdde5..1b0835a4d70c 100644
--- a/emulators/virtualbox-ose-kmod/Makefile
+++ b/emulators/virtualbox-ose-kmod/Makefile
@@ -36,7 +36,8 @@ CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-kmod-legacy \
virtualbox-ose-kmod-70 \
- virtualbox-ose-kmod-71
+ virtualbox-ose-kmod-71 \
+ virtualbox-ose-kmod-72
PATCHDIR= ${.CURDIR}/../${PORTNAME}/files
PORTSCOUT= limit:^6\.
diff --git a/emulators/virtualbox-ose-legacy/Makefile b/emulators/virtualbox-ose-legacy/Makefile
index 074579b964f6..77ed9000a262 100644
--- a/emulators/virtualbox-ose-legacy/Makefile
+++ b/emulators/virtualbox-ose-legacy/Makefile
@@ -1,6 +1,6 @@
PORTNAME= virtualbox-ose
DISTVERSION= 5.2.44
-PORTREVISION?= 32
+PORTREVISION?= 33
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
LOCAL/bofh/emulators/virtualbox-ose-legacy:docs
@@ -44,7 +44,9 @@ CONFLICTS_INSTALL= virtualbox-ose \
virtualbox-ose-70 \
virtualbox-ose-nox11-70 \
virtualbox-ose-71 \
- virtualbox-ose-nox11-71
+ virtualbox-ose-nox11-71 \
+ virtualbox-ose-72 \
+ virtualbox-ose-nox11-72
PORTSCOUT= limit:^5\.
SUB_LIST= VBOXDIR=${VBOX_DIR} \
diff --git a/emulators/virtualbox-ose-nox11-70/Makefile b/emulators/virtualbox-ose-nox11-70/Makefile
index 26ca950b260b..8a6125129844 100644
--- a/emulators/virtualbox-ose-nox11-70/Makefile
+++ b/emulators/virtualbox-ose-nox11-70/Makefile
@@ -1,4 +1,4 @@
-PORTREVISION= 3
+PORTREVISION= 4
PKGNAMESUFFIX= -nox11-70
MASTERDIR= ${.CURDIR}/../virtualbox-ose-70
diff --git a/emulators/virtualbox-ose-nox11-71/Makefile b/emulators/virtualbox-ose-nox11-71/Makefile
index 66d0c82c9bc9..bd1a0035d424 100644
--- a/emulators/virtualbox-ose-nox11-71/Makefile
+++ b/emulators/virtualbox-ose-nox11-71/Makefile
@@ -1,4 +1,4 @@
-PORTREVISION= 1
+PORTREVISION= 0
PKGNAMESUFFIX= -nox11-71
MASTERDIR= ${.CURDIR}/../virtualbox-ose-71
diff --git a/emulators/virtualbox-ose-nox11-legacy/Makefile b/emulators/virtualbox-ose-nox11-legacy/Makefile
index e99d77e7eb63..fcb49d1c8f52 100644
--- a/emulators/virtualbox-ose-nox11-legacy/Makefile
+++ b/emulators/virtualbox-ose-nox11-legacy/Makefile
@@ -1,4 +1,4 @@
-PORTREVISION= 32
+PORTREVISION= 33
PKGNAMESUFFIX= -nox11-legacy
MASTERDIR= ${.CURDIR}/../virtualbox-ose-legacy
diff --git a/emulators/virtualbox-ose-nox11/Makefile b/emulators/virtualbox-ose-nox11/Makefile
index a2dbb21fef32..12036182cd1e 100644
--- a/emulators/virtualbox-ose-nox11/Makefile
+++ b/emulators/virtualbox-ose-nox11/Makefile
@@ -1,4 +1,4 @@
-PORTREVISION= 15
+PORTREVISION= 16
PKGNAMESUFFIX= -nox11
MASTERDIR= ${.CURDIR}/../virtualbox-ose
diff --git a/emulators/virtualbox-ose/Makefile b/emulators/virtualbox-ose/Makefile
index 0ffd039cf2fe..3bb9bd477162 100644
--- a/emulators/virtualbox-ose/Makefile
+++ b/emulators/virtualbox-ose/Makefile
@@ -1,6 +1,6 @@
PORTNAME= virtualbox-ose
DISTVERSION= 6.1.50
-PORTREVISION?= 15
+PORTREVISION?= 16
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
LOCAL/bofh/emulators/virtualbox-ose:docs
@@ -42,7 +42,9 @@ CONFLICTS_INSTALL= virtualbox-ose-legacy \
virtualbox-ose-70 \
virtualbox-ose-nox11-70 \
virtualbox-ose-71 \
- virtualbox-ose-nox11-71
+ virtualbox-ose-nox11-71 \
+ virtualbox-ose-72 \
+ virtualbox-ose-nox11-72
PORTSCOUT= limit:^6\.
SUB_FILES= pkg-message
diff --git a/emulators/visualboyadvance-m/Makefile b/emulators/visualboyadvance-m/Makefile
index d15e80c07fef..c20867fd409d 100644
--- a/emulators/visualboyadvance-m/Makefile
+++ b/emulators/visualboyadvance-m/Makefile
@@ -58,6 +58,7 @@ GVBAM_USE= GNOME=gtkmm24,pangox-compat
GVBAM_CMAKE_BOOL= ENABLE_GTK
LINK_LIB_DEPENDS= libsfml-system.so:devel/sfml
LINK_CMAKE_BOOL= ENABLE_LINK
+LINK_BROKEN= Does not build
LIRC_LIB_DEPENDS= liblirc_client.so:comms/lirc
LIRC_RUN_DEPENDS= lircd:comms/lirc
LIRC_CMAKE_BOOL= ENABLE_LIRC
diff --git a/emulators/wine-devel/Makefile b/emulators/wine-devel/Makefile
index d98676b38c45..40a86f0e2c72 100644
--- a/emulators/wine-devel/Makefile
+++ b/emulators/wine-devel/Makefile
@@ -1,5 +1,5 @@
PORTNAME= wine
-DISTVERSION= 10.10
+DISTVERSION= 10.13
PORTEPOCH= 1
CATEGORIES= emulators
MASTER_SITES= https://dl.winehq.org/wine/source/10.x/
diff --git a/emulators/wine-devel/distinfo b/emulators/wine-devel/distinfo
index 261fa76cdef2..1edbe79f2454 100644
--- a/emulators/wine-devel/distinfo
+++ b/emulators/wine-devel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1749898973
-SHA256 (wine-10.10.tar.xz) = e76466a5ca3197f399ddf8069b0a79e5eb2dffe5b3b7db9eb7272288330c8596
-SIZE (wine-10.10.tar.xz) = 32528748
+TIMESTAMP = 1755295581
+SHA256 (wine-10.13.tar.xz) = f1f38df2055bdafa46b44c1edf8641e683330e3a146e09fd5219cfe93e33c531
+SIZE (wine-10.13.tar.xz) = 32681280
diff --git a/emulators/wine-devel/files/pkg32.sh b/emulators/wine-devel/files/pkg32.sh
index 64d82459c219..04595f6c104c 100644
--- a/emulators/wine-devel/files/pkg32.sh
+++ b/emulators/wine-devel/files/pkg32.sh
@@ -1,19 +1,23 @@
#!/bin/sh -e
-if [ "$(id -u)" = 0 ]
-then
+if [ "$(id -u)" = 0 ]; then
echo "Don't run this script as root!"
exit 1
fi
I386_ROOT="${WINE_i386_ROOT:-$HOME/.i386-wine-pkg}"
+ABI_FILE=/usr/lib32/libc.so.7
-if [ ! -d "$I386_ROOT/usr/share/keys/pkg" ]
-then
+if [ ! -f $ABI_FILE ]; then
+ echo "\"$ABI_FILE\" not found; exiting."
+ exit 1
+fi
+
+if [ ! -d "$I386_ROOT/usr/share/keys/pkg" ]; then
mkdir -p "$I386_ROOT/usr/share/keys"
ln -s /usr/share/keys/pkg "$I386_ROOT/usr/share/keys/pkg"
fi
# Show what we're going to do, then do it.
-echo pkg -o ABI_FILE=/usr/lib32/libc.so.7 -o INSTALL_AS_USER=true -o RUN_SCRIPTS=false --rootdir "$I386_ROOT" "$@"
-exec pkg -o ABI_FILE=/usr/lib32/libc.so.7 -o INSTALL_AS_USER=true -o RUN_SCRIPTS=false --rootdir "$I386_ROOT" "$@"
+echo pkg -o ABI_FILE=$ABI_FILE -o INSTALL_AS_USER=true -o RUN_SCRIPTS=false --rootdir "$I386_ROOT" "$@"
+exec pkg -o ABI_FILE=$ABI_FILE -o INSTALL_AS_USER=true -o RUN_SCRIPTS=false --rootdir "$I386_ROOT" "$@"
diff --git a/emulators/wine-devel/pkg-plist b/emulators/wine-devel/pkg-plist
index 90a35cde7ec4..cda30c39f38c 100644
--- a/emulators/wine-devel/pkg-plist
+++ b/emulators/wine-devel/pkg-plist
@@ -115,6 +115,7 @@ include/wine/windows/adserr.h
include/wine/windows/adshlp.h
include/wine/windows/advpub.h
include/wine/windows/af_irda.h
+include/wine/windows/afunix.h
include/wine/windows/amaudio.h
include/wine/windows/amsi.h
include/wine/windows/amsi.idl
@@ -177,8 +178,10 @@ include/wine/windows/bits5_0.h
include/wine/windows/bits5_0.idl
include/wine/windows/bitsmsg.h
include/wine/windows/bluetoothapis.h
+include/wine/windows/bluetoothleapis.h
include/wine/windows/bthdef.h
include/wine/windows/bthioctl.h
+include/wine/windows/bthledef.h
include/wine/windows/bthsdpdef.h
include/wine/windows/cderr.h
include/wine/windows/cdosys.h
@@ -356,6 +359,7 @@ include/wine/windows/dcomptypes.idl
include/wine/windows/dde.h
include/wine/windows/dde.rh
include/wine/windows/ddeml.h
+include/wine/windows/ddk/bthguid.h
include/wine/windows/ddk/compstui.h
include/wine/windows/ddk/csq.h
include/wine/windows/ddk/d3dkmthk.h
@@ -391,11 +395,14 @@ include/wine/windows/ddstream.h
include/wine/windows/ddstream.idl
include/wine/windows/delayloadhandler.h
include/wine/windows/devenum.idl
+include/wine/windows/devfiltertypes.h
include/wine/windows/devguid.h
include/wine/windows/devicetopology.h
include/wine/windows/devicetopology.idl
include/wine/windows/devpkey.h
include/wine/windows/devpropdef.h
+include/wine/windows/devquery.h
+include/wine/windows/devquerydef.h
include/wine/windows/dhcpcsdk.h
include/wine/windows/dhtmldid.h
include/wine/windows/dhtmled.h
@@ -504,6 +511,7 @@ include/wine/windows/dyngraph.idl
include/wine/windows/endpointvolume.h
include/wine/windows/endpointvolume.idl
include/wine/windows/errhandlingapi.h
+include/wine/windows/errlup.idl
include/wine/windows/errorrep.h
include/wine/windows/errors.h
include/wine/windows/errrec.idl
@@ -1129,6 +1137,10 @@ include/wine/windows/windows.data.json.h
include/wine/windows/windows.data.json.idl
include/wine/windows/windows.data.xml.dom.h
include/wine/windows/windows.data.xml.dom.idl
+include/wine/windows/windows.devices.bluetooth.advertisement.h
+include/wine/windows/windows.devices.bluetooth.advertisement.idl
+include/wine/windows/windows.devices.bluetooth.genericattributeprofile.h
+include/wine/windows/windows.devices.bluetooth.genericattributeprofile.idl
include/wine/windows/windows.devices.bluetooth.h
include/wine/windows/windows.devices.bluetooth.idl
include/wine/windows/windows.devices.bluetooth.rfcomm.h
@@ -1188,6 +1200,8 @@ include/wine/windows/windows.media.capture.h
include/wine/windows/windows.media.capture.idl
include/wine/windows/windows.media.closedcaptioning.h
include/wine/windows/windows.media.closedcaptioning.idl
+include/wine/windows/windows.media.core.h
+include/wine/windows/windows.media.core.idl
include/wine/windows/windows.media.devices.h
include/wine/windows/windows.media.devices.idl
include/wine/windows/windows.media.effects.h
@@ -1196,12 +1210,16 @@ include/wine/windows/windows.media.faceanalysis.h
include/wine/windows/windows.media.faceanalysis.idl
include/wine/windows/windows.media.h
include/wine/windows/windows.media.idl
+include/wine/windows/windows.media.mediaproperties.h
+include/wine/windows/windows.media.mediaproperties.idl
include/wine/windows/windows.media.render.h
include/wine/windows/windows.media.render.idl
include/wine/windows/windows.media.speechrecognition.h
include/wine/windows/windows.media.speechrecognition.idl
include/wine/windows/windows.media.speechsynthesis.h
include/wine/windows/windows.media.speechsynthesis.idl
+include/wine/windows/windows.media.transcoding.h
+include/wine/windows/windows.media.transcoding.idl
include/wine/windows/windows.networking.connectivity.h
include/wine/windows/windows.networking.connectivity.idl
include/wine/windows/windows.networking.h
@@ -1264,6 +1282,8 @@ include/wine/windows/windows.ui.viewmanagement.core.h
include/wine/windows/windows.ui.viewmanagement.core.idl
include/wine/windows/windows.ui.viewmanagement.h
include/wine/windows/windows.ui.viewmanagement.idl
+include/wine/windows/windows.ui.windowmanagement.h
+include/wine/windows/windows.ui.windowmanagement.idl
include/wine/windows/windows.ui.xaml.h
include/wine/windows/windows.ui.xaml.hosting.desktopwindowxamlsource.h
include/wine/windows/windows.ui.xaml.hosting.desktopwindowxamlsource.idl
@@ -2533,6 +2553,7 @@ lib/wine/%%WINEARCH%%-windows/usp10.dll
lib/wine/%%WINEARCH%%-windows/utildll.dll
lib/wine/%%WINEARCH%%-windows/uxtheme.dll
lib/wine/%%WINEARCH%%-windows/vbscript.dll
+lib/wine/%%WINEARCH%%-windows/vccorlib140.dll
lib/wine/%%WINEARCH%%-windows/vcomp.dll
lib/wine/%%WINEARCH%%-windows/vcomp100.dll
lib/wine/%%WINEARCH%%-windows/vcomp110.dll
diff --git a/emulators/wine-mono-devel/Makefile b/emulators/wine-mono-devel/Makefile
index f42c32b0d9d7..961040290d8a 100644
--- a/emulators/wine-mono-devel/Makefile
+++ b/emulators/wine-mono-devel/Makefile
@@ -1,5 +1,5 @@
PORTNAME= wine-mono
-DISTVERSION= 10.1.0
+DISTVERSION= 10.2.0
DISTVERSIONSUFFIX=-x86
CATEGORIES= emulators
MASTER_SITES= http://dl.winehq.org/wine/wine-mono/${DISTVERSION}/
diff --git a/emulators/wine-mono-devel/distinfo b/emulators/wine-mono-devel/distinfo
index 661b7fcc3160..c473cd4bba39 100644
--- a/emulators/wine-mono-devel/distinfo
+++ b/emulators/wine-mono-devel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1749978328
-SHA256 (wine-mono-10.1.0-x86.msi) = c88c2431890bc32cacec8d7ea70e53a5ae4b95c8c55ca6e75ef8db0e4ccf1070
-SIZE (wine-mono-10.1.0-x86.msi) = 85491712
+TIMESTAMP = 1755797604
+SHA256 (wine-mono-10.2.0-x86.msi) = 4e1ed3f02e92d053133d03ddfbefcf6db4a4dc231a9aed3367b17117a88847d8
+SIZE (wine-mono-10.2.0-x86.msi) = 85497856
diff --git a/emulators/wine/Makefile b/emulators/wine/Makefile
index 13b3d6e84b7c..013bd97963f6 100644
--- a/emulators/wine/Makefile
+++ b/emulators/wine/Makefile
@@ -1,6 +1,6 @@
PORTNAME= wine
DISTVERSION= 10.0
-PORTREVISION= 1
+PORTREVISION= 2
PORTEPOCH= 1
CATEGORIES= emulators
MASTER_SITES= https://dl.winehq.org/wine/source/10.0/
@@ -35,6 +35,7 @@ CONFIGURE_ARGS+=--verbose \
--without-capi \
--without-coreaudio \
--without-dbus \
+ --without-ffmpeg \
--without-gettext --without-gettextpo \
--without-gphoto \
--without-gssapi \
diff --git a/emulators/wine/files/pkg32.sh b/emulators/wine/files/pkg32.sh
index 64d82459c219..04595f6c104c 100644
--- a/emulators/wine/files/pkg32.sh
+++ b/emulators/wine/files/pkg32.sh
@@ -1,19 +1,23 @@
#!/bin/sh -e
-if [ "$(id -u)" = 0 ]
-then
+if [ "$(id -u)" = 0 ]; then
echo "Don't run this script as root!"
exit 1
fi
I386_ROOT="${WINE_i386_ROOT:-$HOME/.i386-wine-pkg}"
+ABI_FILE=/usr/lib32/libc.so.7
-if [ ! -d "$I386_ROOT/usr/share/keys/pkg" ]
-then
+if [ ! -f $ABI_FILE ]; then
+ echo "\"$ABI_FILE\" not found; exiting."
+ exit 1
+fi
+
+if [ ! -d "$I386_ROOT/usr/share/keys/pkg" ]; then
mkdir -p "$I386_ROOT/usr/share/keys"
ln -s /usr/share/keys/pkg "$I386_ROOT/usr/share/keys/pkg"
fi
# Show what we're going to do, then do it.
-echo pkg -o ABI_FILE=/usr/lib32/libc.so.7 -o INSTALL_AS_USER=true -o RUN_SCRIPTS=false --rootdir "$I386_ROOT" "$@"
-exec pkg -o ABI_FILE=/usr/lib32/libc.so.7 -o INSTALL_AS_USER=true -o RUN_SCRIPTS=false --rootdir "$I386_ROOT" "$@"
+echo pkg -o ABI_FILE=$ABI_FILE -o INSTALL_AS_USER=true -o RUN_SCRIPTS=false --rootdir "$I386_ROOT" "$@"
+exec pkg -o ABI_FILE=$ABI_FILE -o INSTALL_AS_USER=true -o RUN_SCRIPTS=false --rootdir "$I386_ROOT" "$@"
diff --git a/emulators/yuzu/Makefile b/emulators/yuzu/Makefile
index 247f106f1fc9..4d6c9dadcb8a 100644
--- a/emulators/yuzu/Makefile
+++ b/emulators/yuzu/Makefile
@@ -1,6 +1,6 @@
PORTNAME= yuzu
PORTVERSION= s20240301
-PORTREVISION= 7
+PORTREVISION= 9
CATEGORIES= emulators wayland
.if make(makesum)
MASTER_SITES= https://api.yuzu-emu.org/gamedb/?dummy=/:gamedb
@@ -136,7 +136,7 @@ WEBENGINE_CMAKE_BOOL= YUZU_USE_QT_WEB_ENGINE
WEBENGINE_IMPLIES= GUI
post-extract:
- @${CP} ${DISTFILES:M*\:gamedb:C/\:.*//:S,^,${_DISTDIR},} \
+ @${CP} ${DISTFILES:M*\:gamedb:C/\:.*//:S,^,${DISTDIR}/,} \
${WRKSRC}/dist/compatibility_list/
post-patch: