Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,7 @@ menu "Emulators"
source "$BR2_EXTERNAL_BATOCERA_PATH/package/batocera/emulators/nanoboyadvance/Config.in"
source "$BR2_EXTERNAL_BATOCERA_PATH/package/batocera/emulators/shadps4-qtlauncher/Config.in"
source "$BR2_EXTERNAL_BATOCERA_PATH/package/batocera/emulators/drastic/Config.in"
source "$BR2_EXTERNAL_BATOCERA_PATH/package/batocera/emulators/pcsx2x6/Config.in"
endmenu

menu "WINE"
Expand Down
2 changes: 2 additions & 0 deletions batocera-Changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# 2026/xx/xx - batocera.linux 44 - xxxx
### Special Notes
- ShadPS4 has moved from the no longer maintained ShadPS4 Plus to standard ShadPS4
- The Play! emulator (and Libretro variant) has been removed in favor of PCSX2x6 for Namco2x6 systems as well as removed as a PS2 emulator.
### Hardware
- Anbernic RG-DS initial support
- Anbernic RG Vita Pro initial support
Expand All @@ -22,6 +23,7 @@
- Box64 userland x86_64 emulator for aarch64
- Legion Go / Go 2 LED controller support
- Libretro-Azahar
- PCSX2x6 emulator for Namco2x6 systems (see the _info.txt file for rom details)
- Xenia-Edge for x864_64 and select aarch64 devices
### Fixed
- BCC menu not showing on SM8250 devices (i.e. Retroid Pocket 5)
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -461,8 +461,8 @@ namco22:
emulator: libretro
core: mame
namco2x6:
emulator: play
core: play
emulator: pcsx2x6
core: pcsx2x6
namco3xx:
emulator: rpcs3
core: rpcs3
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[Desktop Entry]
Version=1.0
Icon=/usr/share/icons/batocera/pcsx2x6.png
Exec=/usr/bin/batocera-config-pcsx2x6
Terminal=false
Type=Application
Categories=Game;batocera.linux;
Name=pcsx2x6-config
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,13 @@ ifeq ($(BR2_PACKAGE_PCSX2),y)
BATOCERA_DESKTOPAPPS_ICONS += pcsx2.png
endif

# pcsx2x6
ifeq ($(BR2_PACKAGE_PCSX2X6),y)
BATOCERA_DESKTOPAPPS_SCRIPTS += batocera-config-pcsx2x6
BATOCERA_DESKTOPAPPS_APPS += pcsx2x6-config.desktop
BATOCERA_DESKTOPAPPS_ICONS += pcsx2x6.png
endif

# dolphin
ifeq ($(BR2_PACKAGE_DOLPHIN_EMU)$(BR2_PACKAGE_XORG7),yy)
BATOCERA_DESKTOPAPPS_SCRIPTS += batocera-config-dolphin
Expand Down Expand Up @@ -180,13 +187,6 @@ ifeq ($(BR2_PACKAGE_VITA3K),y)
BATOCERA_DESKTOPAPPS_ICONS += vita3k.png
endif

# play!
ifeq ($(BR2_PACKAGE_PLAY),y)
BATOCERA_DESKTOPAPPS_SCRIPTS += batocera-config-play
BATOCERA_DESKTOPAPPS_APPS += play-config.desktop
BATOCERA_DESKTOPAPPS_ICONS += play.png
endif

# shadPS4 - QT Launcher
ifeq ($(BR2_PACKAGE_SHADPS4),y)
BATOCERA_DESKTOPAPPS_SCRIPTS += batocera-config-shadps4
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash

# when the program is called from a non X environment, handle the mouse
# maybe an other choice is better

if test -z "${DISPLAY}"
then
export DISPLAY=$(getLocalXDisplay)
fi

export XDG_CONFIG_HOME=/userdata/system/configs

/usr/pcsx2x6/bin/pcsx2x6-qt
Original file line number Diff line number Diff line change
Expand Up @@ -997,6 +997,13 @@ systems = {
{ "md5": "1e6637f32aa7d1de03510030cac40bcf", "zippedFile": "bk11m_327_basic1.rom", "file": "bios/bk0010.zip", "emulator": "libretro", "core": "mame" },
{ "md5": "dc52f365d56fa1951f5d35b1101b9e3f", "zippedFile": "bk11m_325_ext.rom", "file": "bios/bk0010.zip", "emulator": "libretro", "core": "mame" },
{ "md5": "fe4627d1e3a1535874085050733263e7", "zippedFile": "bk11m_324_bos.rom", "file": "bios/bk0010.zip", "emulator": "libretro", "core": "mame" }] },

# ---------- Namco2x6 ---------- #
"namco2x6": { "name": "Namco2x6", "biosFiles": [
# Namco System 246
{ "md5": "52cca0058626569c7a9699838baab2d8", "file": "bios/namco2x6/r27v1602f.7d" },
# Namco System 256
{ "md5": "a58676c6bd79229bda967d07b4ec2e16", "file": "bios/namco2x6/r27v1602f.8g" }] },
}

class BiosStatus:
Expand Down
5 changes: 3 additions & 2 deletions package/batocera/core/batocera-system/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -1021,6 +1021,9 @@ config BR2_PACKAGE_BATOCERA_ARCADE_SYSTEMS
# Standalone MAME
select BR2_PACKAGE_MAME if BR2_x86_64 || ((BR2_arm || BR2_aarch64 || BR2_RISCV_64) && BR2_PACKAGE_BATOCERA_WAYLAND)

# Namco System246 and System256
select BR2_PACKAGE_PCSX2X6 if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY

help
Arcade cores/emulators

Expand Down Expand Up @@ -1555,8 +1558,6 @@ config BR2_PACKAGE_BATOCERA_CONSOLE_SYSTEMS
BR2_PACKAGE_BATOCERA_TARGET_SM8550 || \
BR2_PACKAGE_BATOCERA_TARGET_SM8750
select BR2_PACKAGE_LIBRETRO_PS2 if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
select BR2_PACKAGE_PLAY if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
select BR2_PACKAGE_LIBRETRO_PLAY if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY

# Sony PS3
select BR2_PACKAGE_RPCS3 if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
Expand Down
46 changes: 33 additions & 13 deletions package/batocera/emulationstation/batocera-es-system/es_systems.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2291,9 +2291,6 @@ ps2:
pcsx2: { requireAnyOf: [BR2_PACKAGE_PCSX2], incompatible_extensions: [m3u] }
libretro:
pcsx2: { requireAnyOf: [BR2_PACKAGE_LIBRETRO_PS2] }
play: { requireAnyOf: [BR2_PACKAGE_LIBRETRO_PLAY], incompatible_extensions: [m3u, zso] }
play:
play: { requireAnyOf: [BR2_PACKAGE_PLAY], incompatible_extensions: [m3u, zso] }
comment_en: |
For more info: https://wiki.batocera.org/systems:ps2
comment_fr: |
Expand Down Expand Up @@ -5273,22 +5270,45 @@ namco2x6:
manufacturer: Sony / Namco
release: 2000
hardware: arcade
extensions: [zip]
extensions: [acgame]
platform: namco, sega, arcade
emulators:
play:
play: { requireAnyOf: [BR2_PACKAGE_PLAY] }
pcsx2x6:
pcsx2x6: { requireAnyOf: [BR2_PACKAGE_PCSX2X6] }
comment_en: |
The Play! emulator provides `work in progress` support for Namco 246 & 256 systems.
Currently you will need a high performance system to be able to emulate supported games.
We recommend using the OpenGL API for now.
The PCSX2X6 emulator provides `work in progress` support for Namco 246 & 256 arcade systems.

This rom directory should include an .acgame file based on the gameid and a supporting files required to play.
The .acgame is the rom name EmulationStation uses to help launch the game using PCSX2x6.

Example:

Ridge Racer V Arcade Battle (RRV2 Ver. B).acgame

[game]
name=Ridge Racer V Arcade Battle (RRV2 Ver. B)
gameid=NM00001
platform=246

This rom directory should include a zip file based on the arcade id and a supporting folder with associated .chd file.
i.e. Tekken 4 - tekken4.zip
[data]
subdir=NM00001
elf=proverb.elf
dongle=NM00001 RRV2, Ver.B a025531981282a.ps2
mediasrc=NM00001 RRV1-A (CD-ROM).chd
media=CD

Based on this .acgame example, we create a subfolder called NM00001
Within it, we need the `proverb.elf`, `NM00001 RRV2, Ver.B a025531981282a.ps2` & `NM00001 RRV1-A (CD-ROM).chd` for the game.

i.e. Ridge Racer V Arcade Battle (RRV2 Ver. B).acgame
|
tekken4
NM00001
|
---tef1dvd0.chd
---proverb.elf
---NM00001 RRV2, Ver.B a025531981282a.ps2
---NM00001 RRV1-A (CD-ROM).chd

You will also need the Namco 246 & 256 BIOS files in the /userdata/bios/namco2x6 directory.

For more info: https://wiki.batocera.org/systems:namco2x6

Expand Down
69 changes: 69 additions & 0 deletions package/batocera/emulators/pcsx2x6/000-fix-arm-compilation.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
--- a/cmake/BuildParameters.cmake
+++ b/cmake/BuildParameters.cmake
@@ -78,8 +78,8 @@
#-------------------------------------------------------------------------------
# Select the architecture
#-------------------------------------------------------------------------------
-if("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "x86_64" OR "${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "amd64" OR
- "${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "AMD64" OR "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
+if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" OR "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "amd64" OR
+ "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "AMD64" OR "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
# Multi-ISA only exists on x86.
option(DISABLE_ADVANCE_SIMD "Disable advance use of SIMD (SSE2+ & AVX)" OFF)

@@ -105,12 +105,12 @@
add_compile_options("-msse" "-msse2" "-msse4.1" "-mfxsr")
else()
# Can't use march=native on Apple Silicon.
- if(NOT APPLE OR "${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
+ if(NOT APPLE OR "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
add_compile_options("-march=native")
endif()
endif()
endif()
-elseif("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "arm64" OR "${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "aarch64" OR
+elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm64" OR "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64" OR
"${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
message(STATUS "Building for Apple Silicon (ARM64).")
set(ARCH_ARM64 TRUE)
@@ -125,10 +125,27 @@
# If we're running on Linux, we need to detect the page/cache line size.
# It could be a virtual machine with 4K pages, or 16K with Asahi.
if(LINUX)
- detect_page_size()
- list(APPEND PCSX2_DEFS OVERRIDE_HOST_PAGE_SIZE=${HOST_PAGE_SIZE})
- detect_cache_line_size()
- list(APPEND PCSX2_DEFS OVERRIDE_HOST_CACHE_LINE_SIZE=${HOST_CACHE_LINE_SIZE})
+ if(CMAKE_CROSSCOMPILING)
+ # try_run() can't execute target binaries on the build host
+ # during cross-compilation, so detect_page_size()/
+ # detect_cache_line_size() can't work here. Fall back to the
+ # standard ARMv8 Linux values; override per-target if needed
+ # (e.g. 16K pages) via -DOVERRIDE_HOST_PAGE_SIZE=/
+ # -DOVERRIDE_HOST_CACHE_LINE_SIZE=.
+ if(NOT DEFINED OVERRIDE_HOST_PAGE_SIZE)
+ set(OVERRIDE_HOST_PAGE_SIZE 0x1000)
+ endif()
+ if(NOT DEFINED OVERRIDE_HOST_CACHE_LINE_SIZE)
+ set(OVERRIDE_HOST_CACHE_LINE_SIZE 64)
+ endif()
+ list(APPEND PCSX2_DEFS OVERRIDE_HOST_PAGE_SIZE=${OVERRIDE_HOST_PAGE_SIZE})
+ list(APPEND PCSX2_DEFS OVERRIDE_HOST_CACHE_LINE_SIZE=${OVERRIDE_HOST_CACHE_LINE_SIZE})
+ else()
+ detect_page_size()
+ list(APPEND PCSX2_DEFS OVERRIDE_HOST_PAGE_SIZE=${HOST_PAGE_SIZE})
+ detect_cache_line_size()
+ list(APPEND PCSX2_DEFS OVERRIDE_HOST_CACHE_LINE_SIZE=${HOST_CACHE_LINE_SIZE})
+ endif()
endif()

# Windows page/cache line size seems to match x68-64
@@ -138,7 +155,7 @@
list(APPEND PCSX2_DEFS OVERRIDE_HOST_CACHE_LINE_SIZE=64)
endif()
else()
- message(FATAL_ERROR "Unsupported architecture: ${CMAKE_HOST_SYSTEM_PROCESSOR}")
+ message(FATAL_ERROR "Unsupported architecture: ${CMAKE_SYSTEM_PROCESSOR}")
endif()

# Require C++20.
13 changes: 13 additions & 0 deletions package/batocera/emulators/pcsx2x6/001-fix-Savestates-path.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/pcsx2-qt/Settings/FolderSettingsWidget.cpp b/pcsx2-qt/Settings/FolderSettingsWidget.cpp
index 309f1e605c..5c4356e1b4 100644
--- a/pcsx2-qt/Settings/FolderSettingsWidget.cpp
+++ b/pcsx2-qt/Settings/FolderSettingsWidget.cpp
@@ -21,7 +21,7 @@ FolderSettingsWidget::FolderSettingsWidget(SettingsWindow* settings_dialog, QWid
SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.snapshots, m_ui.snapshotsBrowse, m_ui.snapshotsOpen, m_ui.snapshotsReset, "Folders", "Snapshots", Path::Combine(EmuFolders::DataRoot, "snaps"));
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.organizeSnapshotsByGame, "EmuCore/GS", "OrganizeScreenshotsByGame", false);
SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.saveStates, m_ui.saveStatesBrowse, m_ui.saveStatesOpen, m_ui.saveStatesReset,
- "Folders", "SaveStates", Path::Combine(EmuFolders::DataRoot, "sstates"));
+ "Folders", "Savestates", Path::Combine(EmuFolders::DataRoot, "sstates"));
SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.videoDumpingDirectory, m_ui.videoDumpingDirectoryBrowse, m_ui.videoDumpingDirectoryOpen, m_ui.videoDumpingDirectoryReset,
"Folders", "Videos", Path::Combine(EmuFolders::DataRoot, "videos"));
dialog()->registerWidgetHelp(m_ui.organizeSnapshotsByGame, tr("Organize Snapshots by Game"), tr("Unchecked"),
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
diff --git a/pcsx2/CDVD/CDVD.cpp b/pcsx2/CDVD/CDVD.cpp
index 757d7ae..79c4937 100644
--- a/pcsx2/CDVD/CDVD.cpp
+++ b/pcsx2/CDVD/CDVD.cpp
@@ -20,7 +20,7 @@
#include "CDVD/CDVD_internal.h"
#include "CDVD/IsoReader.h"
#include "CDVD/IsoFileFormats.h"
-#include "GS.h"
+#include "../GS.h" // for gsVideoMode
#include "SIO/Sio.h"
#include "Elfheader.h"
#include "ps2/BiosTools.h"
diff --git a/pcsx2/DebugTools/DebugInterface.cpp b/pcsx2/DebugTools/DebugInterface.cpp
index d29c2b0..2a89378 100644
--- a/pcsx2/DebugTools/DebugInterface.cpp
+++ b/pcsx2/DebugTools/DebugInterface.cpp
@@ -20,7 +20,7 @@
#include "R5900.h"
#include "Debug.h"
#include "VU.h"
-#include "GS.h" // Required for gsNonMirroredRead()
+#include "../GS.h" // Required for gsNonMirroredRead()
#include "Counters.h"

#include "R3000A.h"
13 changes: 13 additions & 0 deletions package/batocera/emulators/pcsx2x6/003-fix-linux-detection.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/cmake/Pcsx2Utils.cmake b/cmake/Pcsx2Utils.cmake.new
index 4c2d126e95..9f00c3be0f 100644
--- a/cmake/Pcsx2Utils.cmake
+++ b/cmake/Pcsx2Utils.cmake.new
@@ -3,7 +3,7 @@ function(detect_operating_system)
message(STATUS "CMake System Name: ${CMAKE_SYSTEM_NAME}")

# LINUX wasn't added until CMake 3.25.
- if (CMAKE_VERSION VERSION_LESS 3.25.0 AND CMAKE_SYSTEM_NAME MATCHES "Linux")
+ if (CMAKE_SYSTEM_NAME MATCHES "Linux")
# Have to make it visible in this scope as well for below.
set(LINUX TRUE PARENT_SCOPE)
set(LINUX TRUE)
13 changes: 13 additions & 0 deletions package/batocera/emulators/pcsx2x6/004-controller-db.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/pcsx2/Input/SDLInputSource.cpp b/pcsx2/Input/SDLInputSource.cpp
index 4993e43514..38f6a1da47 100644
--- a/pcsx2/Input/SDLInputSource.cpp
+++ b/pcsx2/Input/SDLInputSource.cpp
@@ -29,7 +29,7 @@
#include <bit>
#include <cmath>

-static constexpr const char* CONTROLLER_DB_FILENAME = "game_controller_db.txt";
+static constexpr const char* CONTROLLER_DB_FILENAME = "/userdata/system/configs/PCSX2x6/game_controller_db.txt";

static constexpr const char* s_sdl_axis_names[] = {
"LeftX", // SDL_CONTROLLER_AXIS_LEFTX
Loading
Loading