Merge branch 'JustEnoughLinuxOS:main' into gliden64test
This commit is contained in:
commit
8b777776ad
438 changed files with 33274 additions and 5215 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -54,5 +54,6 @@ packages/sx05re/experimental/
|
||||||
release/
|
release/
|
||||||
|
|
||||||
.lastbuild
|
.lastbuild
|
||||||
|
.jelos
|
||||||
|
|
||||||
SOURCES
|
SOURCES
|
||||||
|
|
10
Makefile
10
Makefile
|
@ -23,14 +23,14 @@ distclean:
|
||||||
src-pkg:
|
src-pkg:
|
||||||
tar cvJf sources.tar.xz sources .stamps
|
tar cvJf sources.tar.xz sources .stamps
|
||||||
|
|
||||||
world: RG552 RG503 RG353P RG351P RG351V RG351MP
|
world: RG552 RG503 RG353P RG351P RG351V RG351MP handheld
|
||||||
|
|
||||||
X86_64:
|
handheld:
|
||||||
PROJECT=PC DEVICE=X86_64 ARCH=x86_64 ./scripts/build_distro
|
DEVICE_ROOT=handheld PROJECT=PC DEVICE=handheld ARCH=x86_64 ./scripts/build_distro
|
||||||
|
|
||||||
RG552:
|
RG552:
|
||||||
PROJECT=Rockchip DEVICE=RG552 ARCH=arm ./scripts/build_distro
|
DEVICE_ROOT=RG552 PROJECT=Rockchip DEVICE=RG552 ARCH=arm ./scripts/build_distro
|
||||||
PROJECT=Rockchip DEVICE=RG552 ARCH=aarch64 ./scripts/build_distro
|
DEVICE_ROOT=RG552 PROJECT=Rockchip DEVICE=RG552 ARCH=aarch64 ./scripts/build_distro
|
||||||
|
|
||||||
RG503:
|
RG503:
|
||||||
DEVICE_ROOT=RG503 PROJECT=Rockchip DEVICE=RG503 ARCH=arm ./scripts/build_distro
|
DEVICE_ROOT=RG503 PROJECT=Rockchip DEVICE=RG503 ARCH=arm ./scripts/build_distro
|
||||||
|
|
15
README.md
15
README.md
|
@ -1,15 +1,15 @@
|
||||||
<img src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/dev/distributions/JELOS/logos/jelos-logo.png" width=192> [![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
|
<img src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/dev/distributions/JELOS/logos/jelos-logo.png" width=192> [![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
|
||||||
#
|
#
|
||||||
Just Enough Linux Operating System (JELOS) is a simple Linux distribution for ARM based devices that specializes in handhelds. My goal is to build an operating system that has the features and capabilities that I need, and to have fun building it.
|
Just Enough Linux Operating System (JELOS) is a community developed Linux distribution for handheld gaming devices. Our goal is to produce an operating system that has the features and capabilities that we need, and to have fun as we develop it.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
* A 64bit Linux Operating System.
|
* A 64bit Linux Operating System.
|
||||||
* An easy to use interface using EmulationStation
|
* An easy to use interface using EmulationStation
|
||||||
* Provides RetroArch, a variety of cores, Stand Alone Emulators, PortMaster, and ThemeMaster.
|
* Provides RetroArch, a variety of cores, Stand Alone Emulators, PortMaster, and ThemeMaster.
|
||||||
* Supports FAT32, ExFAT, and EXT4 file systems on devices with a second card slot.
|
* Supports FAT32, ExFAT, and EXT4 file systems on removable storage (slot/device #2).
|
||||||
* 2.4GHz and 5GHz 802.11 A/B/G/N/AC WIFI support.
|
* 2.4GHz and 5GHz 802.11 A/B/G/N/AC WIFI support.
|
||||||
* Online updates for easy access to stable or development builds.
|
* Online update capability for easy access to stable or development builds.
|
||||||
* Supports Anbernic's RG552, RG503, RG353P, RG351P/M, RG351MP, and RG351V.
|
* Support for the Anbernic WIN600, RG552, RG503, RG353P, RG351P/M, RG351MP, RG351V.
|
||||||
* Developed by a small, friendly community.
|
* Developed by a small, friendly community.
|
||||||
|
|
||||||
## Licenses
|
## Licenses
|
||||||
|
@ -42,13 +42,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
## Installation
|
## Flashing
|
||||||
* Download the latest [version of JELOS](https://github.com/JustEnoughLinuxOS/distribution/releases) (.img.gz) for your device.
|
* Download the latest [version of JELOS](https://github.com/JustEnoughLinuxOS/distribution/releases) (.img.gz) for your device.
|
||||||
* Decompress the image.
|
* Decompress the image.
|
||||||
* Write the image to an SDCARD using an imaging tool. Common imaging tools include [Balena Etcher](https://www.balena.io/etcher/), [Raspberry Pi Imager](https://www.raspberrypi.com/software/), and [Win32 Disk Imager](https://sourceforge.net/projects/win32diskimager/). If you're skilled with the command line, dd works fine too.
|
* Write the image to an SDCARD using an imaging tool. Common imaging tools include [Balena Etcher](https://www.balena.io/etcher/), [Raspberry Pi Imager](https://www.raspberrypi.com/software/), and [Win32 Disk Imager](https://sourceforge.net/projects/win32diskimager/). If you're skilled with the command line, dd works fine too.
|
||||||
|
|
||||||
> This repository hosts stable versions of JELOS. If you would like to install the unstable development version, please visit the [development build repository](https://github.com/JustEnoughLinuxOS/distribution-dev).
|
> This repository hosts stable versions of JELOS. If you would like to install the unstable development version, please visit the [development build repository](https://github.com/JustEnoughLinuxOS/distribution-dev).
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
* x86_64 versions of JELOS include an installation tool. This tool may be run from the boot menu or from within JELOS by switching to desktop mode and running "installer" in a terminal.
|
||||||
|
|
||||||
## Upgrading
|
## Upgrading
|
||||||
* Download and install the update online via the System Settings menu.
|
* Download and install the update online via the System Settings menu.
|
||||||
* Download the latest [version of JELOS](https://github.com/JustEnoughLinuxOS/distribution/releases) (.tar) for your device.
|
* Download the latest [version of JELOS](https://github.com/JustEnoughLinuxOS/distribution/releases) (.tar) for your device.
|
||||||
|
@ -56,7 +59,7 @@ limitations under the License.
|
||||||
* Reboot the device, and the update will begin automatically.
|
* Reboot the device, and the update will begin automatically.
|
||||||
|
|
||||||
## Network Access
|
## Network Access
|
||||||
* The username for ssh and samba access is "root". The root password is generated during every boot, it can be found in the System Settings menu.
|
* External services are disabled by default in stable builds. When enabled, the username for ssh and samba access is "root". The root password is generated during every boot, it can be found in the System Settings menu.
|
||||||
|
|
||||||
## RetroArch Hotkeys
|
## RetroArch Hotkeys
|
||||||
* Hotkey Enable: Select (Hold)
|
* Hotkey Enable: Select (Hold)
|
||||||
|
|
|
@ -545,7 +545,7 @@ debug_strip() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${BUILD_WITH_DEBUG}" != "yes" ] && flag_enabled "strip" "yes"; then
|
if [ "${BUILD_WITH_DEBUG}" != "yes" ] && flag_enabled "strip" "yes"; then
|
||||||
find $* -type f -executable | xargs $STRIP 2>/dev/null || :
|
find $* -type f \( -executable ! -iname "*.AppImage" \) | xargs $STRIP 2>/dev/null || :
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ DISTRO="${DISTRO:-JELOS}"
|
||||||
PROJECT="${PROJECT:-Rockchip}"
|
PROJECT="${PROJECT:-Rockchip}"
|
||||||
|
|
||||||
# determines TARGET_ARCH, if not forced by user
|
# determines TARGET_ARCH, if not forced by user
|
||||||
ARCH="${ARCH:-arm}"
|
ARCH="${ARCH:-aarch64}"
|
||||||
TARGET_ARCH="${ARCH}"
|
TARGET_ARCH="${ARCH}"
|
||||||
|
|
||||||
# include helper functions
|
# include helper functions
|
||||||
|
@ -84,13 +84,18 @@ VERBOSE="${VERBOSE:-yes}"
|
||||||
CCACHE_CACHE_SIZE="20G"
|
CCACHE_CACHE_SIZE="20G"
|
||||||
|
|
||||||
# read local persistent options from $ROOT if available
|
# read local persistent options from $ROOT if available
|
||||||
if [ -f "${ROOT}/.coreelec/options" ]; then
|
if [ -f "${ROOT}/.jelos/options" ]; then
|
||||||
. "${ROOT}/.coreelec/options"
|
. "${ROOT}/.jelos/options"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# read global persistent options from $HOME if available
|
# read global persistent options from $HOME if available
|
||||||
if [ -f "${HOME}/.coreelec/options" ]; then
|
if [ -f "${HOME}/.jelos/options" ]; then
|
||||||
. "${HOME}/.coreelec/options"
|
. "${HOME}/.jelos/options"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# read global persistent options from ${DOCKER_WORK_DIR} if available
|
||||||
|
if [ -f "${DOCKER_WORK_DIR}/.jelos/options" ]; then
|
||||||
|
. "${DOCKER_WORK_DIR}/.jelos/options"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# overwrite OEM_SUPPORT via commandline
|
# overwrite OEM_SUPPORT via commandline
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
# INTEL HBR WORKAROUND FOR DTS-MA & Dolby TrueHD PLAYBACK
|
|
||||||
|
|
||||||
# Uncomment the following lines to disable any S/PDIF out to deliver
|
|
||||||
# bitstreamed audio on Intel builds. This is a rough workaround for
|
|
||||||
# users that have both S/PDIF and HDMI audio outputs on their motherboard
|
|
||||||
# or motherboard+discrete graphics combo.
|
|
||||||
|
|
||||||
# EVEN IF YOU ARE NOT USING THE S/PDIF OUTPUT
|
|
||||||
# but still have one, you will need to uncomment the lines below !
|
|
||||||
|
|
||||||
# after uncommenting these lines, you must reboot for these settings to take effect
|
|
||||||
|
|
||||||
# blacklist snd_hda_codec_realtek
|
|
||||||
# blacklist snd_hda_codec_sigmatel
|
|
||||||
# blacklist snd_hda_codec_cirrus
|
|
||||||
|
|
|
@ -9,14 +9,14 @@ options saa7134-alsa index=-2
|
||||||
options snd-atiixp-modem index=-2
|
options snd-atiixp-modem index=-2
|
||||||
options snd-intel8x0m index=-2
|
options snd-intel8x0m index=-2
|
||||||
options snd-via82xx-modem index=-2
|
options snd-via82xx-modem index=-2
|
||||||
options snd-usb-audio index=-2
|
|
||||||
options snd-usb-usx2y index=-2
|
options snd-usb-usx2y index=-2
|
||||||
options snd-usb-caiaq index=-2
|
options snd-usb-caiaq index=-2
|
||||||
options snd-cmipci mpu_port=0x330 fm_port=0x388
|
options snd-cmipci mpu_port=0x330 fm_port=0x388
|
||||||
|
|
||||||
# Some Toshiba laptops might require this
|
# Some Toshiba laptops might require this
|
||||||
# options snd-hda-intel model=toshiba
|
# options snd-hda-intel model=toshiba
|
||||||
options snd-hda-intel model=auto
|
|
||||||
|
options snd-hda-intel model=auto index=1,2
|
||||||
|
|
||||||
# RG552 shouldn't grab index 0
|
# RG552 shouldn't grab index 0
|
||||||
options dw_hdmi_i2s_audio index=1
|
options dw_hdmi_i2s_audio index=1
|
||||||
|
|
|
@ -28,9 +28,3 @@ post_configure_target() {
|
||||||
sed -i 's/.*PKGLIBDIR.*/#define PKGLIBDIR ""/' include/config.h
|
sed -i 's/.*PKGLIBDIR.*/#define PKGLIBDIR ""/' include/config.h
|
||||||
}
|
}
|
||||||
|
|
||||||
post_makeinstall_target() {
|
|
||||||
rm -rf ${INSTALL}/usr/bin
|
|
||||||
|
|
||||||
mkdir -p ${INSTALL}/usr/config
|
|
||||||
cp -PR ${PKG_DIR}/config/modprobe.d ${INSTALL}/usr/config
|
|
||||||
}
|
|
||||||
|
|
10
packages/audio/soundtouch/package.mk
Normal file
10
packages/audio/soundtouch/package.mk
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
# Copyright (C) 2020-present Fewtarius
|
||||||
|
|
||||||
|
PKG_NAME="soundtouch"
|
||||||
|
PKG_VERSION="2.3.1"
|
||||||
|
PKG_LICENSE="LGPL-2.1+"
|
||||||
|
PKG_SITE="https://www.surina.net/soundtouch"
|
||||||
|
PKG_URL="https://codeberg.org/soundtouch/soundtouch/archive/${PKG_VERSION}.tar.gz"
|
||||||
|
PKG_DEPENDS_TARGET="toolchain"
|
||||||
|
PKG_LONGDESC="SoundTouch Audio Processing Library"
|
|
@ -14,9 +14,8 @@ makeinstall_target() {
|
||||||
cd ${PKG_BUILD}
|
cd ${PKG_BUILD}
|
||||||
LIBROOT="${ROOT}/build.${DISTRO}-${DEVICE}.arm/image/system/"
|
LIBROOT="${ROOT}/build.${DISTRO}-${DEVICE}.arm/image/system/"
|
||||||
if [ "${ARCH}" = "aarch64" ]; then
|
if [ "${ARCH}" = "aarch64" ]; then
|
||||||
mkdir -p ${INSTALL}/usr/lib32/pulseaudio
|
mkdir -p ${INSTALL}/usr/lib32
|
||||||
rsync -l ${LIBROOT}/usr/lib/* ${INSTALL}/usr/lib32 >/dev/null 2>&1
|
rsync -al ${LIBROOT}/usr/lib/* ${INSTALL}/usr/lib32 >/dev/null 2>&1
|
||||||
rsync -l ${LIBROOT}/usr/lib/pulseaudio/* ${INSTALL}/usr/lib32/pulseaudio >/dev/null 2>&1
|
|
||||||
chmod -f +x ${INSTALL}/usr/lib32/* || :
|
chmod -f +x ${INSTALL}/usr/lib32/* || :
|
||||||
fi
|
fi
|
||||||
mkdir -p ${INSTALL}/usr/lib
|
mkdir -p ${INSTALL}/usr/lib
|
||||||
|
@ -25,4 +24,8 @@ makeinstall_target() {
|
||||||
mkdir -p "${INSTALL}/etc/ld.so.conf.d"
|
mkdir -p "${INSTALL}/etc/ld.so.conf.d"
|
||||||
echo "/usr/lib32" > "${INSTALL}/etc/ld.so.conf.d/arm-lib32.conf"
|
echo "/usr/lib32" > "${INSTALL}/etc/ld.so.conf.d/arm-lib32.conf"
|
||||||
echo "/usr/lib32/pulseaudio" >"${INSTALL}/etc/ld.so.conf.d/arm-lib32-pulseaudio.conf"
|
echo "/usr/lib32/pulseaudio" >"${INSTALL}/etc/ld.so.conf.d/arm-lib32-pulseaudio.conf"
|
||||||
|
if [ -d "${LIBROOT}/usr/lib/dri" ]
|
||||||
|
then
|
||||||
|
echo "/usr/lib32/dri" >"${INSTALL}/etc/ld.so.conf.d/arm-lib32-dri.conf"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,18 +3,9 @@
|
||||||
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
PKG_NAME="libzip"
|
PKG_NAME="libzip"
|
||||||
PKG_VERSION="0.11.2"
|
PKG_VERSION="1.9.2"
|
||||||
PKG_SHA256="7cfbbc2c540e154b933b6e9ec781e2671086bd8114eb744ae1a1ade34d2bb6bb"
|
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://www.nih.at/libzip/"
|
PKG_SITE="https://libzip.org/download"
|
||||||
PKG_URL="http://www.nih.at/libzip/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
PKG_URL="${PKG_SITE}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||||
PKG_DEPENDS_TARGET="toolchain zlib"
|
PKG_DEPENDS_TARGET="toolchain zlib"
|
||||||
PKG_LONGDESC="A C library for reading, creating, and modifying zip archives."
|
PKG_LONGDESC="A C library for reading, creating, and modifying zip archives."
|
||||||
PKG_TOOLCHAIN="configure"
|
|
||||||
|
|
||||||
PKG_CONFIGURE_OPTS_TARGET="--disable-shared --enable-static"
|
|
||||||
|
|
||||||
post_makeinstall_target() {
|
|
||||||
rm -rf $INSTALL/usr/bin
|
|
||||||
rm -rf $INSTALL/usr/lib
|
|
||||||
}
|
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||||
|
|
||||||
PKG_NAME="zlib"
|
PKG_NAME="zlib"
|
||||||
PKG_VERSION="1.2.11"
|
PKG_VERSION="1.2.12"
|
||||||
PKG_SHA256="4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066"
|
|
||||||
PKG_LICENSE="OSS"
|
PKG_LICENSE="OSS"
|
||||||
PKG_SITE="http://www.zlib.net"
|
PKG_SITE="http://www.zlib.net"
|
||||||
PKG_URL="http://zlib.net/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
PKG_URL="http://zlib.net/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||||
|
|
|
@ -3,15 +3,21 @@
|
||||||
|
|
||||||
PKG_NAME="libunwind"
|
PKG_NAME="libunwind"
|
||||||
PKG_VERSION="1.6.2"
|
PKG_VERSION="1.6.2"
|
||||||
|
PKG_SHA256="4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://www.nongnu.org/libunwind/"
|
PKG_SITE="http://www.nongnu.org/libunwind/"
|
||||||
PKG_URL="http://download.savannah.nongnu.org/releases/libunwind/libunwind-${PKG_VERSION}.tar.gz"
|
PKG_URL="http://download.savannah.nongnu.org/releases/libunwind/libunwind-${PKG_VERSION}.tar.gz"
|
||||||
PKG_DEPENDS_TARGET="gcc:host"
|
PKG_DEPENDS_TARGET="toolchain zlib"
|
||||||
PKG_LONGDESC="library to determine the call-chain of a program"
|
PKG_LONGDESC="library to determine the call-chain of a program"
|
||||||
|
PKG_BUILD_FLAGS="+pic"
|
||||||
|
PKG_TOOLCHAIN="autotools"
|
||||||
|
|
||||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static \
|
PKG_CONFIGURE_OPTS_TARGET="--enable-static \
|
||||||
--disable-shared"
|
--disable-shared \
|
||||||
|
--disable-minidebuginfo \
|
||||||
|
--disable-documentation \
|
||||||
|
--disable-tests"
|
||||||
|
|
||||||
makeinstall_target() {
|
makeinstall_target() {
|
||||||
make DESTDIR=$SYSROOT_PREFIX install
|
make DESTDIR=${SYSROOT_PREFIX} install
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
From f40db1e2562934fd21485ba7f62e4521945f17e4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: MilhouseVH <milhouseVH.github@nmacleod.com>
|
||||||
|
Date: Mon, 17 Feb 2020 05:52:10 +0000
|
||||||
|
Subject: [PATCH] fix multiple definition
|
||||||
|
|
||||||
|
https://lists.nongnu.org/archive/html/libunwind-devel/2017-08/msg00039.html
|
||||||
|
https://github.com/libunwind/libunwind/commit/0e74e583ae18d6852835f327921ee130a5fa3e6f
|
||||||
|
---
|
||||||
|
include/tdep-arm/ex_tables.h | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/include/tdep-arm/ex_tables.h b/include/tdep-arm/ex_tables.h
|
||||||
|
index 9df5e0a..0b5388a 100644
|
||||||
|
--- a/include/tdep-arm/ex_tables.h
|
||||||
|
+++ b/include/tdep-arm/ex_tables.h
|
||||||
|
@@ -47,6 +47,7 @@ struct arm_exbuf_data
|
||||||
|
#define arm_exidx_extract UNW_OBJ(arm_exidx_extract)
|
||||||
|
#define arm_exidx_decode UNW_OBJ(arm_exidx_decode)
|
||||||
|
#define arm_exidx_apply_cmd UNW_OBJ(arm_exidx_apply_cmd)
|
||||||
|
+#define arm_search_unwind_table UNW_OBJ(arm_search_unwind_table)
|
||||||
|
|
||||||
|
int arm_exidx_extract (struct dwarf_cursor *c, uint8_t *buf);
|
||||||
|
int arm_exidx_decode (const uint8_t *buf, uint8_t len, struct dwarf_cursor *c);
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
--- a/src/unwind/libunwind.pc.in 2020-11-10 16:14:18.000000000 +0000
|
||||||
|
+++ b/src/unwind/libunwind.pc.in 2021-12-05 08:16:04.467881118 +0000
|
||||||
|
@@ -6,6 +6,6 @@
|
||||||
|
Name: libunwind
|
||||||
|
Description: libunwind base library
|
||||||
|
Version: @VERSION@
|
||||||
|
-Libs: -L${libdir} -lunwind
|
||||||
|
+Libs: -L${libdir} -lunwind @LIBLZMA@ @LIBZ@
|
||||||
|
Libs.private: @LIBLZMA@ @LIBZ@
|
||||||
|
Cflags: -I${includedir}
|
11
packages/devel/asn1c/package.mk
Normal file
11
packages/devel/asn1c/package.mk
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
|
PKG_NAME="asn1c"
|
||||||
|
PKG_VERSION="0.9.28"
|
||||||
|
PKG_SHA256="8007440b647ef2dd9fb73d931c33ac11764e6afb2437dbe638bb4e5fc82386b9"
|
||||||
|
PKG_LICENSE="BSD"
|
||||||
|
PKG_SITE="http://lionet.info/asn1c/blog/"
|
||||||
|
PKG_URL="https://github.com/vlm/asn1c/releases/download/v${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||||
|
PKG_DEPENDS_HOST="ccache:host"
|
||||||
|
PKG_LONGDESC="The ASN.1 Compiler"
|
|
@ -0,0 +1,56 @@
|
||||||
|
From f6ca3217ec2fad93d078fa0121aa8f88d7d12ccb Mon Sep 17 00:00:00 2001
|
||||||
|
From: lualiliu <lualiliu@outlook.com>
|
||||||
|
Date: Wed, 7 Sep 2022 10:57:49 +0800
|
||||||
|
Subject: [PATCH] Add a patch about fakeroot(_STAT_VER undeclared)
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
solve it:
|
||||||
|
libfakeroot.c:99:40: error: ‘_STAT_VER’ undeclared (first use in this
|
||||||
|
function)
|
||||||
|
---
|
||||||
|
...fine-_STAT_VER-if-not-already-define.patch | 34 +++++++++++++++++++
|
||||||
|
1 file changed, 34 insertions(+)
|
||||||
|
create mode 100644 packages/devel/fakeroot/patches/0001-libfakeroot.c-define-_STAT_VER-if-not-already-define.patch
|
||||||
|
|
||||||
|
diff --git a/packages/devel/fakeroot/patches/0001-libfakeroot.c-define-_STAT_VER-if-not-already-define.patch b/packages/devel/fakeroot/patches/0001-libfakeroot.c-define-_STAT_VER-if-not-already-define.patch
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000..613d0c95
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/packages/devel/fakeroot/patches/0001-libfakeroot.c-define-_STAT_VER-if-not-already-define.patch
|
||||||
|
@@ -0,0 +1,34 @@
|
||||||
|
+From ca68c7336dea4a07cf5b77c1fdc9e9aee4984ca5 Mon Sep 17 00:00:00 2001
|
||||||
|
+From: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
|
||||||
|
+Date: Thu, 11 Feb 2021 20:59:25 -0800
|
||||||
|
+Subject: [PATCH 1/3] libfakeroot.c: define _STAT_VER if not already defined
|
||||||
|
+
|
||||||
|
+Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
|
||||||
|
+---
|
||||||
|
+ libfakeroot.c | 10 ++++++++++
|
||||||
|
+ 1 file changed, 10 insertions(+)
|
||||||
|
+
|
||||||
|
+diff --git a/libfakeroot.c b/libfakeroot.c
|
||||||
|
+index 3e80e38..14cdbc4 100644
|
||||||
|
+--- a/libfakeroot.c
|
||||||
|
++++ b/libfakeroot.c
|
||||||
|
+@@ -90,6 +90,16 @@
|
||||||
|
+ #define SEND_GET_XATTR64(a,b,c) send_get_xattr64(a,b)
|
||||||
|
+ #endif
|
||||||
|
+
|
||||||
|
++#ifndef _STAT_VER
|
||||||
|
++ #if defined (__aarch64__)
|
||||||
|
++ #define _STAT_VER 0
|
||||||
|
++ #elif defined (__x86_64__)
|
||||||
|
++ #define _STAT_VER 1
|
||||||
|
++ #else
|
||||||
|
++ #define _STAT_VER 3
|
||||||
|
++ #endif
|
||||||
|
++#endif
|
||||||
|
++
|
||||||
|
+ /*
|
||||||
|
+ These INT_* (which stands for internal) macros should always be used when
|
||||||
|
+ the fakeroot library owns the storage of the stat variable.
|
||||||
|
+--
|
||||||
|
+2.30.1
|
||||||
|
+
|
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
PKG_NAME="glib"
|
PKG_NAME="glib"
|
||||||
PKG_VERSION="2.71.0"
|
PKG_VERSION="2.71.0"
|
||||||
PKG_SHA256="926816526f6e4bba9af726970ff87be7dac0b70d5805050c6207b7bb17ea4fca"
|
|
||||||
PKG_LICENSE="LGPL"
|
PKG_LICENSE="LGPL"
|
||||||
PKG_SITE="https://www.gtk.org/"
|
PKG_SITE="https://www.gtk.org/"
|
||||||
PKG_URL="https://download.gnome.org/sources/glib/$(get_pkg_version_maj_min)/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
PKG_URL="https://download.gnome.org/sources/glib/$(get_pkg_version_maj_min)/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||||
|
@ -13,7 +12,7 @@ PKG_DEPENDS_TARGET="toolchain pcre zlib libffi Python3:host util-linux"
|
||||||
PKG_LONGDESC="A library which includes support routines for C such as lists, trees, hashes, memory allocation."
|
PKG_LONGDESC="A library which includes support routines for C such as lists, trees, hashes, memory allocation."
|
||||||
PKG_TOOLCHAIN="meson"
|
PKG_TOOLCHAIN="meson"
|
||||||
|
|
||||||
PKG_MESON_OPTS_HOST="-Ddefault_library=static \
|
PKG_MESON_OPTS_HOST="-Ddefault_library=shared \
|
||||||
-Dinstalled_tests=false \
|
-Dinstalled_tests=false \
|
||||||
-Dlibmount=disabled \
|
-Dlibmount=disabled \
|
||||||
-Dtests=false"
|
-Dtests=false"
|
||||||
|
@ -21,7 +20,6 @@ PKG_MESON_OPTS_HOST="-Ddefault_library=static \
|
||||||
PKG_MESON_OPTS_TARGET="-Ddefault_library=shared \
|
PKG_MESON_OPTS_TARGET="-Ddefault_library=shared \
|
||||||
-Dinstalled_tests=false \
|
-Dinstalled_tests=false \
|
||||||
-Dselinux=disabled \
|
-Dselinux=disabled \
|
||||||
-Dfam=false \
|
|
||||||
-Dxattr=true \
|
-Dxattr=true \
|
||||||
-Dgtk_doc=false \
|
-Dgtk_doc=false \
|
||||||
-Dman=false \
|
-Dman=false \
|
||||||
|
|
|
@ -13,12 +13,12 @@ PKG_DEPENDS_INIT="glibc"
|
||||||
PKG_LONGDESC="The Glibc package contains the main C library."
|
PKG_LONGDESC="The Glibc package contains the main C library."
|
||||||
PKG_BUILD_FLAGS="-gold"
|
PKG_BUILD_FLAGS="-gold"
|
||||||
|
|
||||||
case "${TARGET_ARCH}" in
|
case "${DEVICE}" in
|
||||||
arm|aarch64)
|
RG351P|RG351V|RG351MP|RG503|RG353P)
|
||||||
OPT_ENABLE_KERNEL=4.4.0
|
OPT_ENABLE_KERNEL=4.4.0
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
OPT_ENABLE_KERNEL=5.10.0
|
OPT_ENABLE_KERNEL=5.15.0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
80
packages/devel/gobject-introspection/package.mk
Normal file
80
packages/devel/gobject-introspection/package.mk
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||||
|
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
# Copyright (C) 2020-present Team CoreELEC (https://coreelec.org)
|
||||||
|
|
||||||
|
PKG_NAME="gobject-introspection"
|
||||||
|
PKG_VERSION="1.72.0"
|
||||||
|
PKG_SHA256="07c30d7f465dabd861c03a950430343e976d445179ad451a4dd1b17329e1cbae"
|
||||||
|
PKG_ARCH="any"
|
||||||
|
PKG_LICENSE="LGPL"
|
||||||
|
PKG_SITE="http://www.gtk.org/"
|
||||||
|
PKG_URL="https://github.com/GNOME/$PKG_NAME/archive/$PKG_VERSION.tar.gz"
|
||||||
|
PKG_DEPENDS_TARGET="toolchain libffi glib Python3 qemu:host gobject-introspection:host"
|
||||||
|
PKG_DEPENDS_HOST="libffi:host glib:host"
|
||||||
|
PKG_SECTION="devel"
|
||||||
|
PKG_SHORTDESC="glib: C support library"
|
||||||
|
PKG_LONGDESC="GLib is a library which includes support routines for C such as lists, trees, hashes, memory allocation, and many other things."
|
||||||
|
PKG_TOOLCHAIN="meson"
|
||||||
|
|
||||||
|
pre_configure_host() {
|
||||||
|
PKG_MESON_OPTS_HOST="-Ddoctool=disabled"
|
||||||
|
|
||||||
|
# prevent g-ir-scanner from writing cache data to $HOME
|
||||||
|
export GI_SCANNER_DISABLE_CACHE="1"
|
||||||
|
}
|
||||||
|
|
||||||
|
pre_configure_target() {
|
||||||
|
GLIBC_DYNAMIC_LINKER="$(ls ${SYSROOT_PREFIX}/usr/lib/ld-linux-*.so.*)"
|
||||||
|
QEMU_BINARY="${TOOLCHAIN}/bin/qemu-${TARGET_ARCH}"
|
||||||
|
PKG_CONFIG_PATH="${SYSROOT_PREFIX}/usr/lib/pkgconfig"
|
||||||
|
|
||||||
|
# for gi this variables must be defined for target and not for host
|
||||||
|
# because they are used in
|
||||||
|
# toolchain/lib/gobject-introspection/giscanner/ccompiler.py
|
||||||
|
CC="${TARGET_CC}"
|
||||||
|
CXX="${TARGET_CXX}"
|
||||||
|
AR="${TARGET_AR}"
|
||||||
|
CPP="${TARGET_PREFIX}cpp"
|
||||||
|
CPPFLAGS="${TARGET_CPPFLAGS}"
|
||||||
|
CFLAGS="${TARGET_CFLAGS}"
|
||||||
|
LDFLAGS="${TARGET_LDFLAGS}"
|
||||||
|
|
||||||
|
PKG_MESON_OPTS_TARGET=" \
|
||||||
|
-Ddoctool=disabled \
|
||||||
|
-Dpython=${TOOLCHAIN}/bin/${PKG_PYTHON_VERSION} \
|
||||||
|
-Dgi_cross_use_prebuilt_gi=true \
|
||||||
|
-Dgi_cross_binary_wrapper=${TOOLCHAIN}/bin/g-ir-scanner-binary-wrapper \
|
||||||
|
-Dgi_cross_ldd_wrapper=${TOOLCHAIN}/bin/g-ir-scanner-ldd-wrapper \
|
||||||
|
-Dbuild_introspection_data=true"
|
||||||
|
|
||||||
|
# prevent g-ir-scanner from writing cache data to $HOME
|
||||||
|
export GI_SCANNER_DISABLE_CACHE="1"
|
||||||
|
|
||||||
|
# write out a qemu wrapper that will be given to gi-scanner
|
||||||
|
# so that it can run target helper binaries through that
|
||||||
|
cat > ${TOOLCHAIN}/bin/g-ir-scanner-binary-wrapper << EOF
|
||||||
|
#!/bin/sh
|
||||||
|
${QEMU_BINARY} \
|
||||||
|
-E LD_LIBRARY_PATH="${SYSROOT_PREFIX}/usr/lib:${TOOLCHAIN}/${TARGET_NAME}/lib" \
|
||||||
|
-L ${SYSROOT_PREFIX}/usr \
|
||||||
|
"\$@"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# write out a wrapper to use instead of ldd, which does not
|
||||||
|
# work when a binary is built for a different architecture
|
||||||
|
cat > ${TOOLCHAIN}/bin/g-ir-scanner-ldd-wrapper << EOF
|
||||||
|
#!/bin/sh
|
||||||
|
${QEMU_BINARY} \
|
||||||
|
-E LD_LIBRARY_PATH="${SYSROOT_PREFIX}/usr/lib:${TOOLCHAIN}/${TARGET_NAME}/lib" \
|
||||||
|
${GLIBC_DYNAMIC_LINKER} --list "\$1"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod +x ${TOOLCHAIN}/bin/g-ir-scanner-*-wrapper
|
||||||
|
}
|
||||||
|
|
||||||
|
post_makeinstall_target() {
|
||||||
|
rm -rf ${INSTALL}/usr/bin
|
||||||
|
rm -rf ${INSTALL}/usr/lib/gobject-introspection
|
||||||
|
rm -rf ${INSTALL}/usr/share
|
||||||
|
}
|
|
@ -3,12 +3,12 @@
|
||||||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
PKG_NAME="heimdal"
|
PKG_NAME="heimdal"
|
||||||
PKG_VERSION="7.7.0"
|
PKG_VERSION="c0bc8beb07d9733d4c8c17d120916552fe172f50"
|
||||||
PKG_SHA256="f7d414d0914abb0e151a276b4de22cf4977fd6c28bd9ecdd990407b1138a945c"
|
PKG_SHA256="601e9a772063c72b391d593df8ae5e05ec779fefdf1502b7d88fbbe016ceb4dd"
|
||||||
PKG_LICENSE="BSD-3c"
|
PKG_LICENSE="BSD-3c"
|
||||||
PKG_SITE="http://www.h5l.org/"
|
PKG_SITE="http://www.h5l.org/"
|
||||||
PKG_URL="https://github.com/heimdal/heimdal/archive/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
PKG_URL="https://github.com/heimdal/heimdal/archive/${PKG_VERSION}.tar.gz"
|
||||||
PKG_DEPENDS_HOST="toolchain:host Python3:host ncurses:host"
|
PKG_DEPENDS_HOST="toolchain:host Python3:host ncurses:host asn1c:host"
|
||||||
PKG_LONGDESC="Kerberos 5, PKIX, CMS, GSS-API, SPNEGO, NTLM, Digest-MD5 and, SASL implementation."
|
PKG_LONGDESC="Kerberos 5, PKIX, CMS, GSS-API, SPNEGO, NTLM, Digest-MD5 and, SASL implementation."
|
||||||
PKG_TOOLCHAIN="autotools"
|
PKG_TOOLCHAIN="autotools"
|
||||||
PKG_BUILD_FLAGS="-parallel"
|
PKG_BUILD_FLAGS="-parallel"
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
From 872222db35384f343a8a566a56a28c4eb73d38ed Mon Sep 17 00:00:00 2001
|
|
||||||
From: Damir Franusic <df@release14.org>
|
|
||||||
Date: Sun, 9 Dec 2018 19:50:47 +0100
|
|
||||||
Subject: [PATCH] AC_FIND_FUNC_NO_LIBS should check libtinfo for tgetent
|
|
||||||
|
|
||||||
---
|
|
||||||
configure.ac | 2 +-
|
|
||||||
lib/libedit/config.h.in | 3 +++
|
|
||||||
lib/libedit/configure.ac | 3 ++-
|
|
||||||
3 files changed, 6 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index f1e8d7b15e..f98a3c555e 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -456,7 +456,7 @@ AC_FIND_FUNC_NO_LIBS(openpty, util,[
|
|
||||||
#endif
|
|
||||||
],[0,0,0,0,0])
|
|
||||||
|
|
||||||
-AC_FIND_FUNC_NO_LIBS(tgetent, termcap ncurses curses,[
|
|
||||||
+AC_FIND_FUNC_NO_LIBS(tgetent, termcap ncurses curses tinfo,[
|
|
||||||
#ifdef HAVE_TERMCAP_H
|
|
||||||
#include <termcap.h>
|
|
||||||
#endif
|
|
||||||
diff --git a/lib/libedit/config.h.in b/lib/libedit/config.h.in
|
|
||||||
index ba283cc39f..059e5abc6a 100644
|
|
||||||
--- a/lib/libedit/config.h.in
|
|
||||||
+++ b/lib/libedit/config.h.in
|
|
||||||
@@ -42,6 +42,9 @@
|
|
||||||
/* Define to 1 if you have the `ncurses' library (-lncurses). */
|
|
||||||
#undef HAVE_LIBNCURSES
|
|
||||||
|
|
||||||
+/* Define to 1 if you have the `tinfo' library (-ltinfo). */
|
|
||||||
+#undef HAVE_LIBTINFO
|
|
||||||
+
|
|
||||||
/* Define to 1 if you have the <limits.h> header file. */
|
|
||||||
#undef HAVE_LIMITS_H
|
|
||||||
|
|
||||||
diff --git a/lib/libedit/configure.ac b/lib/libedit/configure.ac
|
|
||||||
index 90c8ca57d7..89a9376b06 100644
|
|
||||||
--- a/lib/libedit/configure.ac
|
|
||||||
+++ b/lib/libedit/configure.ac
|
|
||||||
@@ -36,7 +36,8 @@ EL_MANTYPE
|
|
||||||
|
|
||||||
AC_CHECK_LIB(curses, tgetent,,
|
|
||||||
[AC_CHECK_LIB(ncurses, tgetent,,
|
|
||||||
- [AC_MSG_ERROR([libcurses or libncurses are required!])] )] )
|
|
||||||
+ [AC_CHECK_LIB(tinfo, tgetent,,
|
|
||||||
+ [AC_MSG_ERROR([libcurses or libncurses are required!])] )] )] )
|
|
||||||
|
|
||||||
|
|
||||||
# Checks for header files.
|
|
|
@ -1,24 +0,0 @@
|
||||||
From 5e7bc8d8811fa401fa14adb9787504c0b460c7df Mon Sep 17 00:00:00 2001
|
|
||||||
From: Earl Chew <earl_chew@yahoo.com>
|
|
||||||
Date: Wed, 20 May 2020 09:46:28 -0700
|
|
||||||
Subject: [PATCH] [libedit/configure.ac] Refactor tgetent message to reflect
|
|
||||||
libraries searched
|
|
||||||
|
|
||||||
Signed-off-by: Earl Chew <earl_chew@yahoo.com>
|
|
||||||
---
|
|
||||||
lib/libedit/configure.ac | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/libedit/configure.ac b/lib/libedit/configure.ac
|
|
||||||
index 89a9376b06..b94bafc6b9 100644
|
|
||||||
--- a/lib/libedit/configure.ac
|
|
||||||
+++ b/lib/libedit/configure.ac
|
|
||||||
@@ -37,7 +37,7 @@ EL_MANTYPE
|
|
||||||
AC_CHECK_LIB(curses, tgetent,,
|
|
||||||
[AC_CHECK_LIB(ncurses, tgetent,,
|
|
||||||
[AC_CHECK_LIB(tinfo, tgetent,,
|
|
||||||
- [AC_MSG_ERROR([libcurses or libncurses are required!])] )] )] )
|
|
||||||
+ [AC_MSG_ERROR([libcurses, libncurses, or tinfo are required!])] )] )] )
|
|
||||||
|
|
||||||
|
|
||||||
# Checks for header files.
|
|
|
@ -1,29 +0,0 @@
|
||||||
From 22352b90e78e2d162b98b5ef6c84672c397be40a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lars Wendler <polynomial-c@gentoo.org>
|
|
||||||
Date: Wed, 17 Mar 2021 17:49:18 +0100
|
|
||||||
Subject: [PATCH] autoconf-2.70 fix
|
|
||||||
|
|
||||||
autoconf-2.70 and newer are more strict with quoting etc. and thus generate
|
|
||||||
a broken configure file:
|
|
||||||
|
|
||||||
configure: 20855: Syntax error: ")" unexpected (expecting "fi")
|
|
||||||
|
|
||||||
Gentoo-bug: https://bugs.gentoo.org/776241
|
|
||||||
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
|
|
||||||
---
|
|
||||||
cf/check-var.m4 | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/cf/check-var.m4 b/cf/check-var.m4
|
|
||||||
index 2fd7bca6f0..71d6f70ca8 100644
|
|
||||||
--- a/cf/check-var.m4
|
|
||||||
+++ b/cf/check-var.m4
|
|
||||||
@@ -20,7 +20,7 @@ AC_MSG_RESULT($ac_foo)
|
|
||||||
if test "$ac_foo" = yes; then
|
|
||||||
AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_[]$1), 1,
|
|
||||||
[Define if you have the `]$1[' variable.])
|
|
||||||
- m4_ifval([$2], AC_CHECK_DECLS([$1],[],[],[$2]))
|
|
||||||
+ m4_ifval([$2], [AC_CHECK_DECLS([$1],[],[],[$2])])
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
From c4cff6859d183a40fb35a76e2bc1ce084b3a6d67 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Luke Howard <lukeh@padl.com>
|
|
||||||
Date: Mon, 24 Dec 2018 02:21:32 +0000
|
|
||||||
Subject: [PATCH] hx509: fix dependency, hxtool requires ASN.1 headers
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/hx509/Makefile.am | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/hx509/Makefile.am b/lib/hx509/Makefile.am
|
|
||||||
index c7ef53182d..b21d85202c 100644
|
|
||||||
--- a/lib/hx509/Makefile.am
|
|
||||||
+++ b/lib/hx509/Makefile.am
|
|
||||||
@@ -164,7 +164,7 @@ hxtool-commands.c hxtool-commands.h: hxtool-commands.in $(SLC)
|
|
||||||
dist_hxtool_SOURCES = hxtool.c
|
|
||||||
nodist_hxtool_SOURCES = hxtool-commands.c hxtool-commands.h
|
|
||||||
|
|
||||||
-$(hxtool_OBJECTS): hxtool-commands.h hx509_err.h
|
|
||||||
+$(hxtool_OBJECTS): hxtool-commands.h $(nodist_include_HEADERS)
|
|
||||||
|
|
||||||
hxtool_LDADD = \
|
|
||||||
libhx509.la \
|
|
|
@ -1,22 +0,0 @@
|
||||||
From cc6a3f337bac0411d0bb1c924fd857603a258d2f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Nicolas Williams <nico@twosigma.com>
|
|
||||||
Date: Tue, 17 Mar 2020 19:46:37 -0500
|
|
||||||
Subject: [PATCH] hcrypto: Fix Makefile build race
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/hcrypto/Makefile.am | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/hcrypto/Makefile.am b/lib/hcrypto/Makefile.am
|
|
||||||
index 195117d174..3c6ee3ca84 100644
|
|
||||||
--- a/lib/hcrypto/Makefile.am
|
|
||||||
+++ b/lib/hcrypto/Makefile.am
|
|
||||||
@@ -298,7 +298,7 @@ ltmsources = \
|
|
||||||
libtommath/bn_mp_to_unsigned_bin_n.c
|
|
||||||
|
|
||||||
|
|
||||||
-$(libhcrypto_la_OBJECTS): hcrypto-link
|
|
||||||
+$(libhcrypto_la_OBJECTS) $(test_rand_OBJECTS): hcrypto-link
|
|
||||||
|
|
||||||
libhcrypto_la_CPPFLAGS = -DBUILD_HCRYPTO_LIB $(AM_CPPFLAGS)
|
|
||||||
|
|
|
@ -1,83 +0,0 @@
|
||||||
From 79b8337d54b2d85f73eff2d033ca592447ac5fce Mon Sep 17 00:00:00 2001
|
|
||||||
From: heitbaum <rudi@heitbaum.com>
|
|
||||||
Date: Fri, 10 Sep 2021 00:28:16 +1000
|
|
||||||
Subject: [PATCH] yyerror: update to POSIX standard
|
|
||||||
|
|
||||||
To comply with the latest POSIX standard, in Yacc compatibility mode
|
|
||||||
(options `-y`/`--yacc`) Bison now generates prototypes for yyerror and
|
|
||||||
yylex. In some situations, this is breaking compatibility: if the user
|
|
||||||
has already declared these functions but with some differences (e.g., to
|
|
||||||
declare them as static, or to use specific attributes), the generated
|
|
||||||
parser will fail to compile. To disable these prototypes, #define yyerror
|
|
||||||
(to `yyerror`), and likewise for yylex.
|
|
||||||
|
|
||||||
refer: https://git.savannah.gnu.org/cgit/bison.git/tree/NEWS
|
|
||||||
|
|
||||||
GNU Bison 3.8
|
|
||||||
---
|
|
||||||
lib/asn1/asn1parse.y | 1 +
|
|
||||||
lib/com_err/parse.y | 5 +++--
|
|
||||||
lib/sl/slc-lex.l | 2 +-
|
|
||||||
lib/sl/slc.h | 3 ++-
|
|
||||||
4 files changed, 7 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/asn1/asn1parse.y b/lib/asn1/asn1parse.y
|
|
||||||
index 9d8b76f582..91b163a28b 100644
|
|
||||||
--- a/lib/asn1/asn1parse.y
|
|
||||||
+++ b/lib/asn1/asn1parse.y
|
|
||||||
@@ -65,6 +65,7 @@ static void validate_object_set(IOSObjectSet *);
|
|
||||||
static struct constraint_spec *new_constraint_spec(enum ctype);
|
|
||||||
static Type *new_tag(int tagclass, int tagvalue, int tagenv, Type *oldtype);
|
|
||||||
void yyerror (const char *);
|
|
||||||
+#define yyerror yyerror
|
|
||||||
static struct objid *new_objid(const char *label, int value);
|
|
||||||
static void add_oid_to_tail(struct objid *, struct objid *);
|
|
||||||
static void fix_labels(Symbol *s);
|
|
||||||
diff --git a/lib/com_err/parse.y b/lib/com_err/parse.y
|
|
||||||
index 0c2e5084b5..bcb9b05204 100644
|
|
||||||
--- a/lib/com_err/parse.y
|
|
||||||
+++ b/lib/com_err/parse.y
|
|
||||||
@@ -35,7 +35,8 @@
|
|
||||||
#include "compile_et.h"
|
|
||||||
#include "lex.h"
|
|
||||||
|
|
||||||
-void yyerror (char *s);
|
|
||||||
+void yyerror (const char *s);
|
|
||||||
+#define yyerror yyerror
|
|
||||||
static long name2number(const char *str);
|
|
||||||
|
|
||||||
extern char *yytext;
|
|
||||||
@@ -168,7 +169,7 @@ name2number(const char *str)
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
-yyerror (char *s)
|
|
||||||
+yyerror (const char *s)
|
|
||||||
{
|
|
||||||
_lex_error_message ("%s\n", s);
|
|
||||||
}
|
|
||||||
diff --git a/lib/sl/slc-lex.l b/lib/sl/slc-lex.l
|
|
||||||
index 50965bccd7..3a37302336 100644
|
|
||||||
--- a/lib/sl/slc-lex.l
|
|
||||||
+++ b/lib/sl/slc-lex.l
|
|
||||||
@@ -78,7 +78,7 @@ error_message (const char *format, ...)
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
-yyerror (char *s)
|
|
||||||
+yyerror (const char *s)
|
|
||||||
{
|
|
||||||
error_message("%s\n", s);
|
|
||||||
}
|
|
||||||
diff --git a/lib/sl/slc.h b/lib/sl/slc.h
|
|
||||||
index 6e45ed2f15..e4dc2cba6b 100644
|
|
||||||
--- a/lib/sl/slc.h
|
|
||||||
+++ b/lib/sl/slc.h
|
|
||||||
@@ -51,5 +51,6 @@ extern char *filename;
|
|
||||||
extern int error_flag;
|
|
||||||
void error_message (const char *format, ...);
|
|
||||||
int yylex(void);
|
|
||||||
-void yyerror (char *s);
|
|
||||||
+void yyerror (const char *s);
|
|
||||||
+#define yyerror yyerror
|
|
||||||
extern unsigned lineno;
|
|
|
@ -3,22 +3,16 @@
|
||||||
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
PKG_NAME="libaio"
|
PKG_NAME="libaio"
|
||||||
PKG_VERSION="0.3.112"
|
PKG_VERSION="0.3.113"
|
||||||
PKG_SHA256="f69e5800425f4ea957426693ac09f9896bb993db5490fa021644454adcc72a32"
|
PKG_SHA256="716c7059703247344eb066b54ecbc3ca2134f0103307192e6c2b7dab5f9528ab"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://lse.sourceforge.net/io/aio.html"
|
PKG_SITE="https://pagure.io/libaio"
|
||||||
PKG_URL="http://http.debian.net/debian/pool/main/liba/libaio/${PKG_NAME}_${PKG_VERSION}.orig.tar.xz"
|
PKG_URL="https://pagure.io/${PKG_NAME}/archive/${PKG_NAME}-${PKG_VERSION}/${PKG_NAME}-${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||||
PKG_DEPENDS_TARGET="toolchain"
|
PKG_DEPENDS_TARGET="toolchain"
|
||||||
PKG_LONGDESC="Kernel Asynchronous I/O (AIO) Support for Linux."
|
PKG_LONGDESC="Kernel Asynchronous I/O (AIO) Support for Linux."
|
||||||
|
PKG_BUILD_FLAGS="-lto"
|
||||||
|
|
||||||
make_target() {
|
make_target() {
|
||||||
make -C src
|
make -C src
|
||||||
}
|
}
|
||||||
|
|
||||||
makeinstall_target() {
|
|
||||||
mkdir -p ${SYSROOT_PREFIX}/usr/lib
|
|
||||||
cp -PR src/libaio.a ${SYSROOT_PREFIX}/usr/lib
|
|
||||||
|
|
||||||
mkdir -p ${SYSROOT_PREFIX}/usr/include
|
|
||||||
cp -PR src/libaio.h ${SYSROOT_PREFIX}/usr/include
|
|
||||||
}
|
|
||||||
|
|
13
packages/devel/libaio/patches/001-ldflags.patch
Normal file
13
packages/devel/libaio/patches/001-ldflags.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
We need to place LDFLAGS earlier to ensure e.g. as-needed works correctly.
|
||||||
|
--- a/src/Makefile
|
||||||
|
+++ b/src/Makefile
|
||||||
|
@@ -56,7 +56,7 @@ libaio.a: $(libaio_objs)
|
||||||
|
|
||||||
|
$(libname): $(libaio_sobjs) libaio.map
|
||||||
|
$(CC) $(CFLAGS) -c struct_offsets.c
|
||||||
|
- $(CC) $(SO_CFLAGS) -Wl,--version-script=libaio.map -Wl,-soname=$(soname) -o $@ $(libaio_sobjs) $(LINK_FLAGS)
|
||||||
|
+ $(CC) $(SO_CFLAGS) $(LINK_FLAGS) -Wl,--version-script=libaio.map -Wl,-soname=$(soname) -o $@ $(libaio_sobjs)
|
||||||
|
|
||||||
|
install: $(all_targets)
|
||||||
|
install -D -m 644 libaio.h $(includedir)/libaio.h
|
||||||
|
|
|
@ -3,22 +3,16 @@
|
||||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
PKG_NAME="ncurses"
|
PKG_NAME="ncurses"
|
||||||
PKG_VERSION="6.1-20181215"
|
PKG_VERSION="6.3"
|
||||||
PKG_SHA256="08b07c3e792961f300829512c283d5fefc0b1c421a57b76922c3d13303ed677d"
|
|
||||||
PKG_LICENSE="MIT"
|
PKG_LICENSE="MIT"
|
||||||
PKG_SITE="http://www.gnu.org/software/ncurses/"
|
PKG_SITE="http://www.gnu.org/software/ncurses/"
|
||||||
PKG_URL="http://invisible-mirror.net/archives/ncurses/current/ncurses-${PKG_VERSION}.tgz"
|
PKG_URL="http://invisible-mirror.net/archives/ncurses/ncurses-${PKG_VERSION}.tar.gz"
|
||||||
PKG_DEPENDS_HOST="ccache:host"
|
PKG_DEPENDS_HOST="ccache:host"
|
||||||
PKG_DEPENDS_TARGET="toolchain zlib ncurses:host"
|
PKG_DEPENDS_TARGET="toolchain zlib ncurses:host"
|
||||||
PKG_LONGDESC="A library is a free software emulation of curses in System V Release 4.0, and more."
|
PKG_LONGDESC="A library is a free software emulation of curses in System V Release 4.0, and more."
|
||||||
# causes some segmentation fault's (dialog) when compiled with gcc's link time optimization.
|
PKG_BUILD_FLAGS="+pic +pic:host"
|
||||||
PKG_BUILD_FLAGS="+pic"
|
|
||||||
PKG_TOOLCHAIN="auto"
|
PKG_TOOLCHAIN="auto"
|
||||||
|
|
||||||
pre_configure_target() {
|
|
||||||
export CFLAGS="${CFLAGS} -fcommon -fPIC"
|
|
||||||
}
|
|
||||||
|
|
||||||
PKG_CONFIGURE_OPTS_TARGET="
|
PKG_CONFIGURE_OPTS_TARGET="
|
||||||
--without-ada \
|
--without-ada \
|
||||||
--without-cxx \
|
--without-cxx \
|
||||||
|
@ -53,23 +47,39 @@ PKG_CONFIGURE_OPTS_TARGET="
|
||||||
--disable-sigwinch \
|
--disable-sigwinch \
|
||||||
--enable-pc-files \
|
--enable-pc-files \
|
||||||
--with-pkg-config-libdir=/usr/lib/pkgconfig \
|
--with-pkg-config-libdir=/usr/lib/pkgconfig \
|
||||||
--disable-tcap-names \
|
--enable-tcap-names \
|
||||||
--without-develop \
|
--without-develop \
|
||||||
--disable-hard-tabs \
|
--disable-hard-tabs \
|
||||||
--disable-xmc-glitch \
|
--disable-xmc-glitch \
|
||||||
--disable-hashmap \
|
--disable-hashmap \
|
||||||
--disable-safe-sprintf \
|
--disable-safe-sprintf \
|
||||||
--disable-scroll-hints \
|
--disable-scroll-hints \
|
||||||
--disable-widec \
|
--enable-widec \
|
||||||
--disable-echo \
|
--disable-echo \
|
||||||
--disable-warnings \
|
--disable-warnings \
|
||||||
--disable-home-terminfo \
|
--enable-home-terminfo \
|
||||||
|
--enable-lib-suffixes \
|
||||||
--disable-assertions"
|
--disable-assertions"
|
||||||
|
|
||||||
|
PKG_CONFIGURE_OPTS_HOST="--enable-termcap \
|
||||||
|
--with-termlib \
|
||||||
|
--without-shared \
|
||||||
|
--enable-pc-files \
|
||||||
|
--without-tests \
|
||||||
|
--without-manpages"
|
||||||
|
|
||||||
post_makeinstall_target() {
|
post_makeinstall_target() {
|
||||||
#cp -rf ${INSTALL}/usr/lib/* ${TOOLCHAIN}/${TARGET_ARCH}-libreelec-linux-gnu${TARGET_ABI}/lib
|
local f
|
||||||
cp misc/ncurses-config ${TOOLCHAIN}/bin
|
cp misc/ncurses-config ${TOOLCHAIN}/bin
|
||||||
chmod +x ${TOOLCHAIN}/bin/ncurses-config
|
chmod +x ${TOOLCHAIN}/bin/ncurses-config
|
||||||
sed -e "s:\(['=\" ]\)/usr:\\1${SYSROOT_PREFIX}/usr:g" -i ${TOOLCHAIN}/bin/ncurses-config
|
sed -e "s:\(['=\" ]\)/usr:\\1${PKG_ORIG_SYSROOT_PREFIX}/usr:g" -i ${TOOLCHAIN}/bin/ncurses-config
|
||||||
#rm -rf ${INSTALL}/usr/bin
|
rm -f ${TOOLCHAIN}/bin/ncurses6-config
|
||||||
|
rm -rf ${INSTALL}/usr/bin
|
||||||
|
# create links to be compatible with any ncurses include path and lib names
|
||||||
|
ln -sf . ${SYSROOT_PREFIX}/usr/include/ncursesw
|
||||||
|
ln -sf . ${SYSROOT_PREFIX}/usr/include/ncurses
|
||||||
|
for f in form menu ncurses panel tinfo; do
|
||||||
|
ln -sf lib${f}w.a ${SYSROOT_PREFIX}/usr/lib/lib${f}.a
|
||||||
|
ln -sf ${f}w.pc ${SYSROOT_PREFIX}/usr/lib/pkgconfig/${f}.pc
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
|
|
||||||
Remove recent xterm terminfo features to be compatible with other emulations
|
Remove recent xterm terminfo features to be compatible with other emulations
|
||||||
|
|
||||||
--- a/misc/terminfo.src 2018-12-21 18:53:11.000000000 +0100
|
--- a/misc/terminfo.src 2021-03-20 22:45:39.000000000 +0100
|
||||||
+++ a/misc/terminfo.src 2018-12-22 22:56:47.000000000 +0100
|
+++ b/misc/terminfo.src 2021-06-01 23:53:10.335516419 +0200
|
||||||
@@ -4335,8 +4335,8 @@ xterm-xfree86|xterm terminal emulator (X
|
@@ -4808,8 +4808,8 @@ xterm-xfree86|xterm terminal emulator (X
|
||||||
xterm-new|modern xterm terminal emulator,
|
xterm+nofkeys|building block for xterm fkey-variants,
|
||||||
npc,
|
npc,
|
||||||
indn=\E[%p1%dS, kb2=\EOE, kcbt=\E[Z, kent=\EOM,
|
kcbt=\E[Z, kent=\EOM, nel=\EE, use=ecma+index,
|
||||||
- rin=\E[%p1%dT, use=ansi+rep, use=ecma+strikeout,
|
- use=ansi+rep, use=ecma+strikeout, use=vt420+lrmm,
|
||||||
- use=xterm+sm+1006, use=xterm+pcfkeys, use=xterm+tmux,
|
- use=xterm+sm+1006, use=xterm+tmux, use=ecma+italics,
|
||||||
+ rin=\E[%p1%dT, use=ecma+strikeout,
|
+ use=ecma+strikeout, use=vt420+lrmm,
|
||||||
+ use=xterm+sm+1005, use=xterm+pcfkeys, use=xterm+tmux,
|
+ use=xterm+sm+1005, use=xterm+tmux, use=ecma+italics,
|
||||||
use=xterm-basic,
|
use=xterm+keypad, use=xterm-basic,
|
||||||
|
|
||||||
# This fragment is for people who cannot agree on what the backspace key
|
# This version reflects the current xterm features.
|
||||||
|
|
|
@ -1,19 +1,8 @@
|
||||||
Fix freeing not allocated fallback entries by allocating a copy.
|
Fix freeing not allocated fallback entries by allocating a copy.
|
||||||
|
|
||||||
--- a/ncurses/tinfo/lib_setup.c 2018-11-24 23:13:16.000000000 +0100
|
|
||||||
+++ b/ncurses/tinfo/lib_setup.c 2018-12-29 10:31:01.000000000 +0100
|
|
||||||
@@ -756,6 +756,8 @@ TINFO_SETUP_TERM(TERMINAL **tp,
|
|
||||||
if (status != TGETENT_YES) {
|
|
||||||
const TERMTYPE2 *fallback = _nc_fallback2(tname);
|
|
||||||
|
|
||||||
+ if (fallback)
|
|
||||||
+ fallback = _nc_copy_entry(fallback);
|
|
||||||
if (fallback) {
|
|
||||||
T(("found fallback entry"));
|
|
||||||
TerminalType(termp) = *fallback;
|
|
||||||
--- a/ncurses/tinfo/tinfo_driver.c 2018-11-24 23:17:03.000000000 +0100
|
--- a/ncurses/tinfo/tinfo_driver.c 2018-11-24 23:17:03.000000000 +0100
|
||||||
+++ b/ncurses/tinfo/tinfo_driver.c 2018-12-29 10:27:19.000000000 +0100
|
+++ b/ncurses/tinfo/tinfo_driver.c 2018-12-29 10:27:19.000000000 +0100
|
||||||
@@ -172,6 +172,8 @@ drv_CanHandle(TERMINAL_CONTROL_BLOCK * T
|
@@ -180,6 +180,8 @@ drv_CanHandle(TERMINAL_CONTROL_BLOCK * T
|
||||||
if (status != TGETENT_YES) {
|
if (status != TGETENT_YES) {
|
||||||
const TERMTYPE2 *fallback = _nc_fallback2(tname);
|
const TERMTYPE2 *fallback = _nc_fallback2(tname);
|
||||||
|
|
||||||
|
|
18
packages/devel/ncurses/patches/ncurses-003-fix_hints.patch
Normal file
18
packages/devel/ncurses/patches/ncurses-003-fix_hints.patch
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
Fix USE_SCROLL_HINTS/USE_HASHMAP logic
|
||||||
|
|
||||||
|
--- a/ncurses/curses.priv.h 2018-12-16 02:16:58.000000000 +0100
|
||||||
|
+++ a/ncurses/curses.priv.h 2021-05-30 00:12:14.086528124 +0200
|
||||||
|
@@ -258,10 +258,9 @@ extern NCURSES_EXPORT(void *) _nc_memmov
|
||||||
|
/*
|
||||||
|
* Scroll hints are useless when hashmap is used
|
||||||
|
*/
|
||||||
|
-#if !USE_SCROLL_HINTS
|
||||||
|
-#if !USE_HASHMAP
|
||||||
|
-#define USE_SCROLL_HINTS 1
|
||||||
|
-#else
|
||||||
|
+#if USE_SCROLL_HINTS
|
||||||
|
+#if USE_HASHMAP
|
||||||
|
+#undef USE_SCROLL_HINTS
|
||||||
|
#define USE_SCROLL_HINTS 0
|
||||||
|
#endif
|
||||||
|
#endif
|
|
@ -0,0 +1,13 @@
|
||||||
|
Fix configure option --with-pkg-config-libdir is broken for cross compilation
|
||||||
|
|
||||||
|
--- a/configure 2021-10-17 17:12:23.000000000 +0200
|
||||||
|
+++ b/configure 2021-11-26 00:27:00.224815736 +0100
|
||||||
|
@@ -4229,7 +4229,7 @@ echo $ECHO_N "checking for first directo
|
||||||
|
cf_pkg_config_path=none
|
||||||
|
for cf_config in $cf_search_path
|
||||||
|
do
|
||||||
|
- if test -d "$cf_config"
|
||||||
|
+ if test -n "$cf_config"
|
||||||
|
then
|
||||||
|
cf_pkg_config_path=$cf_config
|
||||||
|
break
|
|
@ -3,13 +3,13 @@
|
||||||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
PKG_NAME="pcre"
|
PKG_NAME="pcre"
|
||||||
PKG_VERSION="8.44"
|
PKG_VERSION="8.45"
|
||||||
PKG_SHA256="19108658b23b3ec5058edc9f66ac545ea19f9537234be1ec62b714c84399366d"
|
PKG_SHA256="4dae6fdcd2bb0bb6c37b5f97c33c2be954da743985369cddac3546e3218bffb8"
|
||||||
PKG_LICENSE="OSS"
|
PKG_LICENSE="OSS"
|
||||||
PKG_SITE="http://www.pcre.org/"
|
PKG_SITE="http://www.pcre.org/"
|
||||||
PKG_URL="https://downloads.sourceforge.net/sourceforge/pcre/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
PKG_URL="${SOURCEFORGE_SRC}/pcre/${PKG_NAME}/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||||
PKG_DEPENDS_HOST="toolchain:host"
|
PKG_DEPENDS_HOST="toolchain:host"
|
||||||
PKG_DEPENDS_TARGET="toolchain"
|
PKG_DEPENDS_TARGET="toolchain pcre:host"
|
||||||
PKG_LONGDESC="A set of functions that implement regular expression pattern matching."
|
PKG_LONGDESC="A set of functions that implement regular expression pattern matching."
|
||||||
PKG_TOOLCHAIN="configure"
|
PKG_TOOLCHAIN="configure"
|
||||||
PKG_BUILD_FLAGS="+pic"
|
PKG_BUILD_FLAGS="+pic"
|
||||||
|
@ -20,8 +20,7 @@ PKG_CONFIGURE_OPTS_HOST="--prefix=${TOOLCHAIN} \
|
||||||
--enable-unicode-properties \
|
--enable-unicode-properties \
|
||||||
--with-gnu-ld"
|
--with-gnu-ld"
|
||||||
|
|
||||||
PKG_CONFIGURE_OPTS_TARGET="--disable-shared \
|
PKG_CONFIGURE_OPTS_TARGET="--enable-static \
|
||||||
--enable-static \
|
|
||||||
--enable-utf8 \
|
--enable-utf8 \
|
||||||
--enable-pcre16 \
|
--enable-pcre16 \
|
||||||
--enable-unicode-properties \
|
--enable-unicode-properties \
|
||||||
|
@ -29,5 +28,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-shared \
|
||||||
|
|
||||||
post_makeinstall_target() {
|
post_makeinstall_target() {
|
||||||
rm -rf ${INSTALL}/usr/bin
|
rm -rf ${INSTALL}/usr/bin
|
||||||
sed -e "s:\(['= ]\)/usr:\\1${SYSROOT_PREFIX}/usr:g" -i ${SYSROOT_PREFIX}/usr/bin/${PKG_NAME}-config
|
cp ${PKG_NAME}-config ${TOOLCHAIN}/bin
|
||||||
|
sed -e "s:\(['= ]\)/usr:\\1${PKG_ORIG_SYSROOT_PREFIX}/usr:g" -i ${TOOLCHAIN}/bin/${PKG_NAME}-config
|
||||||
|
chmod +x ${TOOLCHAIN}/bin/${PKG_NAME}-config
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org)
|
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
PKG_NAME="pcre2"
|
PKG_NAME="pcre2"
|
||||||
PKG_VERSION="10.33"
|
PKG_VERSION="10.40"
|
||||||
PKG_SHA256="35514dff0ccdf02b55bd2e9fa586a1b9d01f62332c3356e379eabb75f789d8aa"
|
PKG_SHA256="14e4b83c4783933dc17e964318e6324f7cae1bc75d8f3c79bc6969f00c159d68"
|
||||||
PKG_LICENSE="BSD"
|
PKG_LICENSE="BSD"
|
||||||
PKG_SITE="http://www.pcre.org/"
|
PKG_SITE="http://www.pcre.org/"
|
||||||
PKG_URL="https://ftp.pcre.org/pub/pcre/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
PKG_URL="https://github.com/PCRE2Project/pcre2/releases/download/pcre2-${PKG_VERSION}/pcre2-${PKG_VERSION}.tar.bz2"
|
||||||
PKG_DEPENDS_HOST="gcc:host"
|
PKG_DEPENDS_HOST="toolchain:host"
|
||||||
PKG_DEPENDS_TARGET="toolchain"
|
PKG_DEPENDS_TARGET="toolchain"
|
||||||
PKG_LONGDESC="A set of functions that implement regular expression pattern matching."
|
PKG_LONGDESC="A set of functions that implement regular expression pattern matching using the same syntax."
|
||||||
PKG_TOOLCHAIN="configure"
|
PKG_BUILD_FLAGS="+pic +pic:host"
|
||||||
PKG_BUILD_FLAGS="+pic"
|
|
||||||
|
|
||||||
PKG_CONFIGURE_OPTS_HOST="--prefix=${TOOLCHAIN} \
|
PKG_CMAKE_OPTS_HOST="-DBUILD_SHARED_LIBS=OFF \
|
||||||
--enable-static \
|
-DBUILD_STATIC_LIBS=ON \
|
||||||
--enable-utf8 \
|
-DPCRE2_BUILD_PCRE2_8=ON \
|
||||||
--enable-unicode-properties \
|
-DPCRE2_BUILD_PCRE2_16=ON \
|
||||||
--with-gnu-ld"
|
-DPCRE2_BUILD_PCRE2_32=ON \
|
||||||
|
-DPCRE2_SUPPORT_JIT=ON \
|
||||||
|
-DPCRE2_BUILD_TESTS=OFF \
|
||||||
|
-DPCRE2_SUPPORT_LIBEDIT=OFF \
|
||||||
|
-DPCRE2_SUPPORT_LIBREADLINE=OFF"
|
||||||
|
|
||||||
PKG_CONFIGURE_OPTS_TARGET="--disable-shared \
|
PKG_CMAKE_OPTS_TARGET="-DBUILD_SHARED_LIBS=OFF \
|
||||||
--enable-static \
|
-DPCRE2_BUILD_PCRE2_16=ON \
|
||||||
--enable-utf8 \
|
-DPCRE2_SUPPORT_LIBEDIT=OFF \
|
||||||
--enable-pcre2-16 \
|
-DPCRE2_SUPPORT_LIBREADLINE=OFF"
|
||||||
--enable-unicode-properties \
|
|
||||||
--with-gnu-ld"
|
|
||||||
|
|
||||||
post_makeinstall_target() {
|
post_makeinstall_target() {
|
||||||
safe_remove ${INSTALL}/usr/bin
|
safe_remove ${INSTALL}/usr/bin
|
||||||
sed -e "s:\(['= ]\)/usr:\\1${SYSROOT_PREFIX}/usr:g" -i ${SYSROOT_PREFIX}/usr/bin/${PKG_NAME}-config
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,20 +3,21 @@
|
||||||
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
PKG_NAME="readline"
|
PKG_NAME="readline"
|
||||||
PKG_VERSION="8.0"
|
PKG_VERSION="8.1.2"
|
||||||
PKG_SHA256="e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461"
|
PKG_SHA256="7589a2381a8419e68654a47623ce7dfcb756815c8fee726b98f90bf668af7bc6"
|
||||||
PKG_LICENSE="MIT"
|
PKG_LICENSE="MIT"
|
||||||
PKG_SITE="http://www.gnu.org/software/readline/"
|
PKG_SITE="http://www.gnu.org/software/readline/"
|
||||||
PKG_URL="http://ftpmirror.gnu.org/readline/$PKG_NAME-$PKG_VERSION.tar.gz"
|
PKG_URL="http://ftpmirror.gnu.org/readline/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||||
PKG_DEPENDS_TARGET="toolchain ncurses"
|
PKG_DEPENDS_TARGET="toolchain ncurses"
|
||||||
PKG_LONGDESC="The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in."
|
PKG_LONGDESC="The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in."
|
||||||
PKG_BUILD_FLAGS="+pic"
|
PKG_BUILD_FLAGS="+pic"
|
||||||
|
|
||||||
PKG_CONFIGURE_OPTS_TARGET="bash_cv_wcwidth_broken=no \
|
PKG_CONFIGURE_OPTS_TARGET="bash_cv_wcwidth_broken=no \
|
||||||
--disable-shared \
|
--enable-shared \
|
||||||
--enable-static \
|
--disable-static \
|
||||||
--with-curses"
|
--with-curses"
|
||||||
|
|
||||||
post_makeinstall_target() {
|
post_makeinstall_target() {
|
||||||
rm -rf $INSTALL/usr/share/readline
|
sed -i 's/-lreadline/-lreadline -lncursesw/' ${SYSROOT_PREFIX}/usr/lib/pkgconfig/readline.pc
|
||||||
|
rm -rf ${INSTALL}/usr/share/readline
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Copyright (C) 2019-present Shanti Gilbert (https://github.com/shantigilbert)
|
# Copyright (C) 2019-present Shanti Gilbert (https://github.com/shantigilbert)
|
||||||
# Copyright (C) 2022-present Fewtarius
|
# Copyright (C) 2022-present Fewtarius
|
||||||
PKG_NAME="PPSSPPSDL"
|
PKG_NAME="PPSSPPSDL"
|
||||||
PKG_VERSION="d11640a070d7516b6a4660a0543dd9ee285e0d53"
|
PKG_VERSION="9fe6338"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPLv2"
|
PKG_LICENSE="GPLv2"
|
||||||
|
@ -32,17 +32,27 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then
|
||||||
-DUSING_X11_VULKAN=OFF"
|
-DUSING_X11_VULKAN=OFF"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${ARCH}" = "x86_64" ]
|
### Vulkan is still not working for PPSSPP on the win600 yet.
|
||||||
then
|
#if [ "${VULKAN_SUPPORT}" = "yes" ]
|
||||||
PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers"
|
#then
|
||||||
PKG_CMAKE_OPTS_TARGET+=" -DUSE_VULKAN_DISPLAY_KHR=ON \
|
# PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers"
|
||||||
-DVULKAN=ON \
|
# PKG_CMAKE_OPTS_TARGET+=" -DUSE_VULKAN_DISPLAY_KHR=ON \
|
||||||
-DUSING_X11_VULKAN=ON"
|
# -DVULKAN=ON \
|
||||||
|
# -DEGL_NO_X11=1
|
||||||
|
# -DMESA_EGL_NO_X11_HEADERS=1"
|
||||||
|
#else
|
||||||
|
PKG_CMAKE_OPTS_TARGET+=" -DVULKAN=OFF"
|
||||||
|
#fi
|
||||||
|
|
||||||
|
if [ "${DISPLAYSERVER}" = "wl" ]; then
|
||||||
|
PKG_DEPENDS_TARGET+=" wayland ${WINDOWMANAGER}"
|
||||||
|
PKG_CMAKE_OPTS_TARGET+=" -DUSE_WAYLAND_WSI=ON"
|
||||||
|
else
|
||||||
|
PKG_CMAKE_OPTS_TARGET+=" -DUSE_WAYLAND_WSI=OFF"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PKG_CMAKE_OPTS_TARGET+="${PKG_CMAKE_OPTS_TARGET} \
|
PKG_CMAKE_OPTS_TARGET+="${PKG_CMAKE_OPTS_TARGET} \
|
||||||
-DUSE_SYSTEM_FFMPEG=OFF \
|
-DUSE_SYSTEM_FFMPEG=OFF \
|
||||||
-DUSE_WAYLAND_WSI=OFF \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_SYSTEM_NAME=Linux \
|
-DCMAKE_SYSTEM_NAME=Linux \
|
||||||
-DBUILD_SHARED_LIBS=OFF \
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp
|
||||||
|
index 7551231..475bb63 100644
|
||||||
|
--- a/SDL/SDLMain.cpp
|
||||||
|
+++ b/SDL/SDLMain.cpp
|
||||||
|
@@ -420,11 +420,11 @@ void ToggleFullScreenIfFlagSet(SDL_Window *window) {
|
||||||
|
|
||||||
|
Uint32 window_flags = SDL_GetWindowFlags(window);
|
||||||
|
if (g_ToggleFullScreenType == -1) {
|
||||||
|
- window_flags ^= SDL_WINDOW_FULLSCREEN_DESKTOP;
|
||||||
|
+ window_flags ^= SDL_WINDOW_FULLSCREEN;
|
||||||
|
} else if (g_ToggleFullScreenType == 1) {
|
||||||
|
- window_flags |= SDL_WINDOW_FULLSCREEN_DESKTOP;
|
||||||
|
+ window_flags |= SDL_WINDOW_FULLSCREEN;
|
||||||
|
} else {
|
||||||
|
- window_flags &= ~SDL_WINDOW_FULLSCREEN_DESKTOP;
|
||||||
|
+ window_flags &= ~SDL_WINDOW_FULLSCREEN;
|
||||||
|
}
|
||||||
|
SDL_SetWindowFullscreen(window, window_flags);
|
||||||
|
}
|
||||||
|
@@ -524,7 +524,7 @@ int main(int argc, char *argv[]) {
|
||||||
|
Uint32 mode = 0;
|
||||||
|
for (int i = 1; i < argc; i++) {
|
||||||
|
if (!strcmp(argv[i],"--fullscreen"))
|
||||||
|
- mode |= SDL_WINDOW_FULLSCREEN_DESKTOP;
|
||||||
|
+ mode |= SDL_WINDOW_FULLSCREEN;
|
||||||
|
else if (set_xres == -2)
|
||||||
|
set_xres = parseInt(argv[i]);
|
||||||
|
else if (set_yres == -2)
|
||||||
|
@@ -596,19 +596,19 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
|
// Force fullscreen if the resolution is too low to run windowed.
|
||||||
|
if (g_DesktopWidth < 480 * 2 && g_DesktopHeight < 272 * 2) {
|
||||||
|
- mode |= SDL_WINDOW_FULLSCREEN_DESKTOP;
|
||||||
|
+ mode |= SDL_WINDOW_FULLSCREEN;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we're on mobile, don't try for windowed either.
|
||||||
|
#if defined(MOBILE_DEVICE) && !PPSSPP_PLATFORM(SWITCH)
|
||||||
|
mode |= SDL_WINDOW_FULLSCREEN;
|
||||||
|
#elif defined(USING_FBDEV) || PPSSPP_PLATFORM(SWITCH)
|
||||||
|
- mode |= SDL_WINDOW_FULLSCREEN_DESKTOP;
|
||||||
|
+ mode |= SDL_WINDOW_FULLSCREEN;
|
||||||
|
#else
|
||||||
|
mode |= SDL_WINDOW_RESIZABLE;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- if (mode & SDL_WINDOW_FULLSCREEN_DESKTOP) {
|
||||||
|
+ if (mode & SDL_WINDOW_FULLSCREEN) {
|
||||||
|
pixel_xres = g_DesktopWidth;
|
||||||
|
pixel_yres = g_DesktopHeight;
|
||||||
|
g_Config.bFullScreen = true;
|
||||||
|
@@ -716,7 +716,7 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
|
// Use the setting from the config when initing the window.
|
||||||
|
if (g_Config.UseFullScreen())
|
||||||
|
- mode |= SDL_WINDOW_FULLSCREEN_DESKTOP;
|
||||||
|
+ mode |= SDL_WINDOW_FULLSCREEN;
|
||||||
|
|
||||||
|
int x = SDL_WINDOWPOS_UNDEFINED_DISPLAY(getDisplayNumber());
|
||||||
|
int y = SDL_WINDOWPOS_UNDEFINED;
|
|
@ -1,145 +0,0 @@
|
||||||
diff -rupN PPSSPPSDL.orig/Core/Config.cpp PPSSPPSDL/Core/Config.cpp
|
|
||||||
--- PPSSPPSDL.orig/Core/Config.cpp 2022-07-11 09:42:33.527206786 -0400
|
|
||||||
+++ PPSSPPSDL/Core/Config.cpp 2022-07-11 09:44:08.327266817 -0400
|
|
||||||
@@ -873,6 +873,7 @@ static ConfigSetting graphicsSettings[]
|
|
||||||
#if defined(USING_WIN_UI)
|
|
||||||
ConfigSetting("RestartRequired", &g_Config.bRestartRequired, false, false),
|
|
||||||
#endif
|
|
||||||
+ ReportedConfigSetting("ForceMaxEmulatedFPS", &g_Config.iForceMaxEmulatedFPS, 0, true, true),
|
|
||||||
|
|
||||||
// Most low-performance (and many high performance) mobile GPUs do not support aniso anyway so defaulting to 4 is fine.
|
|
||||||
ConfigSetting("AnisotropyLevel", &g_Config.iAnisotropyLevel, 4, true, true),
|
|
||||||
diff -rupN PPSSPPSDL.orig/Core/Config.h PPSSPPSDL/Core/Config.h
|
|
||||||
--- PPSSPPSDL.orig/Core/Config.h 2022-07-11 09:42:33.527206786 -0400
|
|
||||||
+++ PPSSPPSDL/Core/Config.h 2022-07-11 09:44:57.431275968 -0400
|
|
||||||
@@ -214,6 +214,7 @@ public:
|
|
||||||
bool bTexHardwareScaling;
|
|
||||||
int iFpsLimit1;
|
|
||||||
int iFpsLimit2;
|
|
||||||
+ int iForceMaxEmulatedFPS;
|
|
||||||
int iAnalogFpsLimit;
|
|
||||||
int iAnalogFpsMode; // 0 = auto, 1 = single direction, 2 = mapped to opposite
|
|
||||||
int iMaxRecent;
|
|
||||||
Binary files PPSSPPSDL.orig/Core/.Config.h.rej.swp and PPSSPPSDL/Core/.Config.h.rej.swp differ
|
|
||||||
diff -rupN PPSSPPSDL.orig/Core/HLE/sceDisplay.cpp PPSSPPSDL/Core/HLE/sceDisplay.cpp
|
|
||||||
--- PPSSPPSDL.orig/Core/HLE/sceDisplay.cpp 2022-07-11 09:42:33.531206790 -0400
|
|
||||||
+++ PPSSPPSDL/Core/HLE/sceDisplay.cpp 2022-07-11 09:44:08.327266817 -0400
|
|
||||||
@@ -820,8 +820,13 @@ u32 sceDisplaySetFramebuf(u32 topaddr, i
|
|
||||||
hleEatCycles(290);
|
|
||||||
|
|
||||||
s64 delayCycles = 0;
|
|
||||||
+
|
|
||||||
+ int MaxFPS = g_Config.iForceMaxEmulatedFPS;
|
|
||||||
+ if (MaxFPS == 0 && PSP_CoreParameter().compat.flags().ForceMax60FPS) {
|
|
||||||
+ MaxFPS = 60;
|
|
||||||
+ }
|
|
||||||
// Don't count transitions between display off and display on.
|
|
||||||
- if (topaddr != 0 && topaddr != framebuf.topaddr && framebuf.topaddr != 0 && PSP_CoreParameter().compat.flags().ForceMax60FPS) {
|
|
||||||
+ if (topaddr != 0 && topaddr != framebuf.topaddr && framebuf.topaddr != 0 && MaxFPS > 0) {
|
|
||||||
// sceDisplaySetFramebuf() isn't supposed to delay threads at all. This is a hack.
|
|
||||||
// So let's only delay when it's more than 1ms.
|
|
||||||
const s64 FLIP_DELAY_CYCLES_MIN = usToCycles(1000);
|
|
||||||
@@ -845,7 +850,7 @@ u32 sceDisplaySetFramebuf(u32 topaddr, i
|
|
||||||
}
|
|
||||||
|
|
||||||
// 1001 to account for NTSC timing (59.94 fps.)
|
|
||||||
- u64 expected = msToCycles(1001) / 60 - LEEWAY_CYCLES_PER_FLIP;
|
|
||||||
+ u64 expected = msToCycles(1001) / MaxFPS - LEEWAY_CYCLES_PER_FLIP;
|
|
||||||
lastFlipCycles = now;
|
|
||||||
nextFlipCycles = std::max(lastFlipCycles, nextFlipCycles) + expected;
|
|
||||||
}
|
|
||||||
diff -rupN PPSSPPSDL.orig/libretro/libretro.cpp PPSSPPSDL/libretro/libretro.cpp
|
|
||||||
--- PPSSPPSDL.orig/libretro/libretro.cpp 2022-07-11 09:42:36.443209544 -0400
|
|
||||||
+++ PPSSPPSDL/libretro/libretro.cpp 2022-07-11 09:44:08.331266818 -0400
|
|
||||||
@@ -538,6 +538,7 @@ static RetroOption<int> ppsspp_rendering
|
|
||||||
static RetroOption<bool> ppsspp_auto_frameskip("ppsspp_auto_frameskip", "Auto Frameskip", false);
|
|
||||||
static RetroOption<int> ppsspp_frameskip("ppsspp_frameskip", "Frameskip", { "Off", "1", "2", "3", "4", "5", "6", "7", "8" });
|
|
||||||
static RetroOption<int> ppsspp_frameskiptype("ppsspp_frameskiptype", "Frameskip Type", { {"Number of frames", 0}, {"Percent of FPS", 1} });
|
|
||||||
+static RetroOption<int> ppsspp_force_max_fps("ppsspp_force_max_fps", "Force Max FPS", { {"Auto", 0}, {"10", 10}, {"20", 20}, {"30", 30}, {"40", 40}, {"50", 50}, {"60", 60}, {"70", 70}, {"80", 80} });
|
|
||||||
static RetroOption<int> ppsspp_internal_resolution("ppsspp_internal_resolution", "Internal Resolution (Restart)", 1, { "480x272", "960x544", "1440x816", "1920x1088", "2400x1360", "2880x1632", "3360x1904", "3840x2176", "4320x2448", "4800x2720" });
|
|
||||||
static RetroOption<int> ppsspp_button_preference("ppsspp_button_preference", "Confirmation Button", { { "Cross", PSP_SYSTEMPARAM_BUTTON_CROSS }, { "Circle", PSP_SYSTEMPARAM_BUTTON_CIRCLE } });
|
|
||||||
static RetroOption<bool> ppsspp_fast_memory("ppsspp_fast_memory", "Fast Memory (Speedhack)", true);
|
|
||||||
@@ -690,6 +691,7 @@ void retro_set_environment(retro_environ
|
|
||||||
vars.push_back(ppsspp_frameskip.GetOptions());
|
|
||||||
vars.push_back(ppsspp_frameskiptype.GetOptions());
|
|
||||||
vars.push_back(ppsspp_frame_duplication.GetOptions());
|
|
||||||
+ vars.push_back(ppsspp_force_max_fps.GetOptions());
|
|
||||||
vars.push_back(ppsspp_detect_vsync_swap_interval.GetOptions());
|
|
||||||
vars.push_back(ppsspp_vertex_cache.GetOptions());
|
|
||||||
vars.push_back(ppsspp_fast_memory.GetOptions());
|
|
||||||
@@ -820,6 +822,7 @@ static void check_variables(CoreParamete
|
|
||||||
ppsspp_cheats.Update(&g_Config.bEnableCheats);
|
|
||||||
ppsspp_locked_cpu_speed.Update(&g_Config.iLockedCPUSpeed);
|
|
||||||
ppsspp_rendering_mode.Update(&g_Config.iRenderingMode);
|
|
||||||
+ ppsspp_force_max_fps.Update(&g_Config.iForceMaxEmulatedFPS);
|
|
||||||
ppsspp_cpu_core.Update((CPUCore *)&g_Config.iCpuCore);
|
|
||||||
ppsspp_io_timing_method.Update((IOTimingMethods *)&g_Config.iIOTimingMethod);
|
|
||||||
ppsspp_lower_resolution_for_effects.Update(&g_Config.iBloomHack);
|
|
||||||
diff -rupN PPSSPPSDL.orig/UI/GameSettingsScreen.cpp PPSSPPSDL/UI/GameSettingsScreen.cpp
|
|
||||||
--- PPSSPPSDL.orig/UI/GameSettingsScreen.cpp 2022-07-11 09:42:33.551206809 -0400
|
|
||||||
+++ PPSSPPSDL/UI/GameSettingsScreen.cpp 2022-07-11 09:44:08.331266818 -0400
|
|
||||||
@@ -200,6 +200,8 @@ void GameSettingsScreen::CreateViews() {
|
|
||||||
g_Config.loadGameConfig(gameID_, info->GetTitle());
|
|
||||||
}
|
|
||||||
|
|
||||||
+ maxFpsChoice = (g_Config.iForceMaxEmulatedFPS / 10);
|
|
||||||
+
|
|
||||||
iAlternateSpeedPercent1_ = g_Config.iFpsLimit1 < 0 ? -1 : (g_Config.iFpsLimit1 * 100) / 60;
|
|
||||||
iAlternateSpeedPercent2_ = g_Config.iFpsLimit2 < 0 ? -1 : (g_Config.iFpsLimit2 * 100) / 60;
|
|
||||||
iAlternateSpeedPercentAnalog_ = (g_Config.iAnalogFpsLimit * 100) / 60;
|
|
||||||
@@ -326,7 +328,10 @@ void GameSettingsScreen::CreateViews() {
|
|
||||||
graphicsSettings->Add(new PopupMultiChoice(&g_Config.iFrameSkipType, gr->T("Frame Skipping Type"), frameSkipType, 0, ARRAY_SIZE(frameSkipType), gr->GetName(), screenManager()));
|
|
||||||
frameSkipAuto_ = graphicsSettings->Add(new CheckBox(&g_Config.bAutoFrameSkip, gr->T("Auto FrameSkip")));
|
|
||||||
frameSkipAuto_->OnClick.Handle(this, &GameSettingsScreen::OnAutoFrameskip);
|
|
||||||
-
|
|
||||||
+ static const char *maxFps[] = {"Auto", "10", "20", "30", "40", "50", "60", "70", "80"};
|
|
||||||
+ maxFps_ = graphicsSettings->Add(new PopupMultiChoice(&maxFpsChoice, gr->T("Force Max FPS (lower helps GoW)"), maxFps, 0, ARRAY_SIZE(maxFps), gr->GetName(), screenManager()));
|
|
||||||
+ maxFps_->OnChoice.Handle(this, &GameSettingsScreen::OnForceMaxEmulatedFPS);
|
|
||||||
+
|
|
||||||
PopupSliderChoice *altSpeed1 = graphicsSettings->Add(new PopupSliderChoice(&iAlternateSpeedPercent1_, 0, 1000, gr->T("Alternative Speed", "Alternative speed"), 5, screenManager(), gr->T("%, 0:unlimited")));
|
|
||||||
altSpeed1->SetFormat("%i%%");
|
|
||||||
altSpeed1->SetZeroLabel(gr->T("Unlimited"));
|
|
||||||
@@ -1295,6 +1300,16 @@ UI::EventReturn GameSettingsScreen::OnDi
|
|
||||||
return UI::EVENT_DONE;
|
|
||||||
};
|
|
||||||
|
|
||||||
+UI::EventReturn GameSettingsScreen::OnForceMaxEmulatedFPS(UI::EventParams &e) {
|
|
||||||
+ if (maxFpsChoice > 0) {
|
|
||||||
+ g_Config.iForceMaxEmulatedFPS = (maxFpsChoice * 10);
|
|
||||||
+ } else {
|
|
||||||
+ g_Config.iForceMaxEmulatedFPS = 0;
|
|
||||||
+ }
|
|
||||||
+ Reporting::UpdateConfig();
|
|
||||||
+ return UI::EVENT_DONE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
UI::EventReturn GameSettingsScreen::OnResolutionChange(UI::EventParams &e) {
|
|
||||||
if (g_Config.iAndroidHwScale == 1) {
|
|
||||||
RecreateActivity();
|
|
||||||
diff -rupN PPSSPPSDL.orig/UI/GameSettingsScreen.h PPSSPPSDL/UI/GameSettingsScreen.h
|
|
||||||
--- PPSSPPSDL.orig/UI/GameSettingsScreen.h 2022-07-11 09:42:33.551206809 -0400
|
|
||||||
+++ PPSSPPSDL/UI/GameSettingsScreen.h 2022-07-11 09:44:08.331266818 -0400
|
|
||||||
@@ -59,6 +59,7 @@ private:
|
|
||||||
UI::Choice *displayEditor_;
|
|
||||||
UI::Choice *backgroundChoice_ = nullptr;
|
|
||||||
UI::PopupMultiChoice *resolutionChoice_;
|
|
||||||
+ UI::PopupMultiChoice *maxFps_;
|
|
||||||
UI::CheckBox *frameSkipAuto_;
|
|
||||||
SettingInfoMessage *settingInfo_;
|
|
||||||
UI::Choice *clearSearchChoice_;
|
|
||||||
@@ -107,6 +108,7 @@ private:
|
|
||||||
UI::EventReturn OnFullscreenMultiChange(UI::EventParams &e);
|
|
||||||
UI::EventReturn OnDisplayLayoutEditor(UI::EventParams &e);
|
|
||||||
UI::EventReturn OnResolutionChange(UI::EventParams &e);
|
|
||||||
+ UI::EventReturn OnForceMaxEmulatedFPS(UI::EventParams &e);
|
|
||||||
UI::EventReturn OnHwScaleChange(UI::EventParams &e);
|
|
||||||
UI::EventReturn OnRestoreDefaultSettings(UI::EventParams &e);
|
|
||||||
UI::EventReturn OnRenderingMode(UI::EventParams &e);
|
|
||||||
@@ -135,6 +137,7 @@ private:
|
|
||||||
UI::EventReturn OnClearSearchFilter(UI::EventParams &e);
|
|
||||||
|
|
||||||
// Temporaries to convert setting types, cache enabled, etc.
|
|
||||||
+ int maxFpsChoice;
|
|
||||||
int iAlternateSpeedPercent1_;
|
|
||||||
int iAlternateSpeedPercent2_;
|
|
||||||
int iAlternateSpeedPercentAnalog_;
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
[ControlMapping]
|
||||||
|
Up = 10-19,1-19
|
||||||
|
Down = 10-20,1-20
|
||||||
|
Left = 10-21,1-21
|
||||||
|
Right = 10-22,1-22
|
||||||
|
Circle = 10-190,1-52,10-4004
|
||||||
|
Cross = 10-189,1-54,10-4006
|
||||||
|
Square = 10-191,1-29,10-4005
|
||||||
|
Triangle = 10-188,1-47,10-4007
|
||||||
|
Start = 10-197,1-62
|
||||||
|
Select = 10-196,1-66
|
||||||
|
L = 10-193,1-45
|
||||||
|
R = 10-192,1-51
|
||||||
|
An.Up = 10-4003
|
||||||
|
An.Down = 10-4002
|
||||||
|
An.Left = 10-4001
|
||||||
|
An.Right = 10-4000
|
||||||
|
Analog limiter = 1-60
|
||||||
|
RapidFire = 1-59
|
||||||
|
Fast-forward = 1-61
|
||||||
|
SpeedToggle = 1-68
|
||||||
|
Pause = 1-111,10-106,10-107
|
||||||
|
Rewind = 1-67
|
512
packages/games/emulators/PPSSPPSDL/sources/handheld/ppsspp.ini
Executable file
512
packages/games/emulators/PPSSPPSDL/sources/handheld/ppsspp.ini
Executable file
|
@ -0,0 +1,512 @@
|
||||||
|
[General]
|
||||||
|
FirstRun = False
|
||||||
|
RunCount = 16
|
||||||
|
Enable Logging = False
|
||||||
|
AutoRun = True
|
||||||
|
Browse = False
|
||||||
|
IgnoreBadMemAccess = False
|
||||||
|
CurrentDirectory = /storage/roms/psp
|
||||||
|
ShowDebuggerOnLoad = False
|
||||||
|
CheckForNewVersion = True
|
||||||
|
Language = en_US
|
||||||
|
ForceLagSync = False
|
||||||
|
DiscordPresence = False
|
||||||
|
NumWorkerThreads = 8
|
||||||
|
AutoLoadSaveState = 0
|
||||||
|
EnableCheats = True
|
||||||
|
CwCheatRefreshRate = 77
|
||||||
|
ScreenshotsAsPNG = False
|
||||||
|
UseFFV1 = False
|
||||||
|
DumpFrames = False
|
||||||
|
DumpAudio = False
|
||||||
|
SaveLoadResetsAVdumping = False
|
||||||
|
StateSlot = 0
|
||||||
|
EnableStateUndo = True
|
||||||
|
RewindFlipFrequency = 0
|
||||||
|
GridView1 = True
|
||||||
|
GridView2 = True
|
||||||
|
GridView3 = False
|
||||||
|
ComboMode = 0
|
||||||
|
ReportingHost = default
|
||||||
|
AutoSaveSymbolMap = False
|
||||||
|
CacheFullIsoInRam = False
|
||||||
|
RemoteISOPort = 0
|
||||||
|
LastRemoteISOServer =
|
||||||
|
LastRemoteISOPort = 0
|
||||||
|
RemoteISOManualConfig = False
|
||||||
|
RemoteShareOnStartup = False
|
||||||
|
RemoteISOSubdir = /
|
||||||
|
RemoteDebuggerOnStartup = False
|
||||||
|
InternalScreenRotation = 1
|
||||||
|
PauseWhenMinimized = False
|
||||||
|
DumpDecryptedEboots = False
|
||||||
|
MemStickInserted = True
|
||||||
|
ForceLagSync2 = False
|
||||||
|
UISound = True
|
||||||
|
CwCheatScrollPosition = 0.000000
|
||||||
|
DumpVideoOutput = False
|
||||||
|
ShowRegionOnGameIcon = False
|
||||||
|
ShowIDOnGameIcon = False
|
||||||
|
GameGridScale = 1.000000
|
||||||
|
RightAnalogUp = 0
|
||||||
|
RightAnalogDown = 0
|
||||||
|
RightAnalogLeft = 0
|
||||||
|
RightAnalogRight = 0
|
||||||
|
RightAnalogPress = 0
|
||||||
|
RightAnalogCustom = False
|
||||||
|
LoadPlugins = False
|
||||||
|
GameListScrollPosition = 0.000000
|
||||||
|
StateLoadUndoGame = NA
|
||||||
|
StateUndoLastSaveGame = NA
|
||||||
|
StateUndoLastSaveSlot = -5
|
||||||
|
ShowOnScreenMessage = True
|
||||||
|
RightAnalogDisableDiagonal = False
|
||||||
|
SwipeUp = 0
|
||||||
|
SwipeDown = 0
|
||||||
|
SwipeLeft = 0
|
||||||
|
SwipeRight = 0
|
||||||
|
SwipeSensitivity = 1.000000
|
||||||
|
SwipeSmoothing = 0.300000
|
||||||
|
DoubleTapGesture = 0
|
||||||
|
GestureControlEnabled = False
|
||||||
|
BackgroundAnimation = 1
|
||||||
|
EnablePlugins = True
|
||||||
|
[CPU]
|
||||||
|
CPUCore = 1
|
||||||
|
SeparateSASThread = True
|
||||||
|
SeparateIOThread = True
|
||||||
|
IOTimingMethod = 0
|
||||||
|
FastMemoryAccess = True
|
||||||
|
FuncReplacements = True
|
||||||
|
HideSlowWarnings = False
|
||||||
|
HideStateWarnings = False
|
||||||
|
PreloadFunctions = False
|
||||||
|
CPUSpeed = 0
|
||||||
|
JitDisableFlags = 0x00000000
|
||||||
|
FunctionReplacements = True
|
||||||
|
[Graphics]
|
||||||
|
EnableCardboard = False
|
||||||
|
CardboardScreenSize = 50
|
||||||
|
CardboardXShift = 0
|
||||||
|
CardboardYShift = 0
|
||||||
|
ShowFPSCounter = 3
|
||||||
|
GraphicsBackend = 0 (OPENGL)
|
||||||
|
FailedGraphicsBackends =
|
||||||
|
VulkanDevice =
|
||||||
|
RenderingMode = 0
|
||||||
|
SoftwareRenderer = False
|
||||||
|
HardwareTransform = True
|
||||||
|
SoftwareSkinning = True
|
||||||
|
TextureFiltering = 1
|
||||||
|
BufferFiltering = 1
|
||||||
|
InternalResolution = 0
|
||||||
|
AndroidHwScale = 1
|
||||||
|
HighQualityDepth = 1
|
||||||
|
FrameSkip = 0
|
||||||
|
FrameSkipType = 0
|
||||||
|
AutoFrameSkip = False
|
||||||
|
FrameRate = 0
|
||||||
|
FrameRate2 = -1
|
||||||
|
FrameSkipUnthrottle = True
|
||||||
|
ForceMaxEmulatedFPS = 30
|
||||||
|
AnisotropyLevel = 0
|
||||||
|
VertexDecCache = True
|
||||||
|
TextureBackoffCache = True
|
||||||
|
TextureSecondaryCache = False
|
||||||
|
FullScreen = True
|
||||||
|
FullScreenMulti = False
|
||||||
|
SmallDisplayZoomType = 2
|
||||||
|
SmallDisplayOffsetX = 0.500000
|
||||||
|
SmallDisplayOffsetY = 0.500000
|
||||||
|
SmallDisplayZoomLevel = 1.000000
|
||||||
|
ImmersiveMode = False
|
||||||
|
SustainedPerformanceMode = False
|
||||||
|
TrueColor = True
|
||||||
|
ReplaceTextures = True
|
||||||
|
SaveNewTextures = False
|
||||||
|
IgnoreTextureFilenames = True
|
||||||
|
TexScalingLevel = 1
|
||||||
|
TexScalingType = 3
|
||||||
|
TexDeposterize = False
|
||||||
|
VSyncInterval = True
|
||||||
|
DisableStencilTest = False
|
||||||
|
BloomHack = 2
|
||||||
|
TimerHack = False
|
||||||
|
SplineBezierQuality = 0
|
||||||
|
HardwareTessellation = False
|
||||||
|
PostShader = Off
|
||||||
|
MemBlockTransferGPU = True
|
||||||
|
DisableSlowFramebufEffects = True
|
||||||
|
FragmentTestCache = True
|
||||||
|
LogFrameDrops = False
|
||||||
|
EnableCardboardVR = False
|
||||||
|
DisabledGraphicsBackends =
|
||||||
|
CameraDevice =
|
||||||
|
UnthrottleMode = CONTINUOUS
|
||||||
|
IgnoreScreenInsets = True
|
||||||
|
TexHardwareScaling = False
|
||||||
|
TextureShader = Off
|
||||||
|
InflightFrames = 2
|
||||||
|
RenderDuplicateFrames = True
|
||||||
|
ShaderChainRequires60FPS = False
|
||||||
|
ClearFramebuffersOnFirstUseHack = False
|
||||||
|
SoftwareRendererJit = True
|
||||||
|
UnthrottlingMode = CONTINUOUS
|
||||||
|
ReplaceTexturesAllowLate = True
|
||||||
|
[Sound]
|
||||||
|
Enable = True
|
||||||
|
AudioBackend = 0
|
||||||
|
AudioLatency = 1
|
||||||
|
ExtraAudioBuffering = False
|
||||||
|
SoundSpeedHack = False
|
||||||
|
AudioResampler = False
|
||||||
|
GlobalVolume = 10
|
||||||
|
AltSpeedVolume = -1
|
||||||
|
AudioDevice = es8316, ff890000.i2s-ES8316 HiFi ES8316 HiFi-0
|
||||||
|
AutoAudioDevice = False
|
||||||
|
ReverbVolume = 10
|
||||||
|
[Control]
|
||||||
|
HapticFeedback = False
|
||||||
|
ShowTouchCross = True
|
||||||
|
ShowTouchCircle = True
|
||||||
|
ShowTouchSquare = True
|
||||||
|
ShowTouchTriangle = True
|
||||||
|
ComboKey0Mapping = 0
|
||||||
|
ComboKey1Mapping = 0
|
||||||
|
ComboKey2Mapping = 0
|
||||||
|
ComboKey3Mapping = 0
|
||||||
|
ComboKey4Mapping = 0
|
||||||
|
ShowTouchPause = False
|
||||||
|
ShowTouchControls = False
|
||||||
|
DisableDpadDiagonals = False
|
||||||
|
GamepadOnlyFocused = False
|
||||||
|
TouchButtonStyle = 1
|
||||||
|
TouchButtonOpacity = 65
|
||||||
|
TouchButtonHideSeconds = 20
|
||||||
|
AutoCenterTouchAnalog = False
|
||||||
|
ActionButtonSpacing2 = 1.000000
|
||||||
|
ActionButtonCenterX = 0.937500
|
||||||
|
ActionButtonCenterY = 0.900000
|
||||||
|
ActionButtonScale = 1.150000
|
||||||
|
DPadX = 0.074479
|
||||||
|
DPadY = 0.760000
|
||||||
|
DPadScale = 1.150000
|
||||||
|
ShowTouchDpad = True
|
||||||
|
DPadSpacing = 1.000000
|
||||||
|
StartKeyX = 0.559896
|
||||||
|
StartKeyY = 0.942500
|
||||||
|
StartKeyScale = 1.150000
|
||||||
|
ShowTouchStart = True
|
||||||
|
SelectKeyX = 0.500000
|
||||||
|
SelectKeyY = 0.942500
|
||||||
|
SelectKeyScale = 1.150000
|
||||||
|
ShowTouchSelect = True
|
||||||
|
UnthrottleKeyX = 0.440104
|
||||||
|
UnthrottleKeyY = 0.942500
|
||||||
|
UnthrottleKeyScale = 1.150000
|
||||||
|
ShowTouchUnthrottle = True
|
||||||
|
LKeyX = 0.035937
|
||||||
|
LKeyY = 0.635833
|
||||||
|
LKeyScale = 1.150000
|
||||||
|
ShowTouchLTrigger = True
|
||||||
|
RKeyX = 0.964063
|
||||||
|
RKeyY = 0.635833
|
||||||
|
RKeyScale = 1.150000
|
||||||
|
ShowTouchRTrigger = True
|
||||||
|
AnalogStickX = 0.074479
|
||||||
|
AnalogStickY = 0.923333
|
||||||
|
AnalogStickScale = 1.150000
|
||||||
|
ShowAnalogStick = True
|
||||||
|
fcombo0X = 0.571875
|
||||||
|
fcombo0Y = 0.500000
|
||||||
|
comboKeyScale0 = 1.150000
|
||||||
|
ShowComboKey0 = False
|
||||||
|
fcombo1X = 0.631771
|
||||||
|
fcombo1Y = 0.500000
|
||||||
|
comboKeyScale1 = 1.150000
|
||||||
|
ShowComboKey1 = False
|
||||||
|
fcombo2X = 0.691667
|
||||||
|
fcombo2Y = 0.500000
|
||||||
|
comboKeyScale2 = 1.150000
|
||||||
|
ShowComboKey2 = False
|
||||||
|
fcombo3X = 0.571875
|
||||||
|
fcombo3Y = 0.333333
|
||||||
|
comboKeyScale3 = 1.150000
|
||||||
|
ShowComboKey3 = False
|
||||||
|
fcombo4X = 0.631771
|
||||||
|
fcombo4Y = 0.333333
|
||||||
|
comboKeyScale4 = 1.150000
|
||||||
|
ShowComboKey4 = False
|
||||||
|
Speed1KeyX = 0.440104
|
||||||
|
Speed1KeyY = 0.885000
|
||||||
|
Speed1KeyScale = 1.150000
|
||||||
|
ShowSpeed1Key = False
|
||||||
|
Speed2KeyX = 0.500000
|
||||||
|
Speed2KeyY = 0.885000
|
||||||
|
Speed2KeyScale = 1.150000
|
||||||
|
ShowSpeed2Key = False
|
||||||
|
XInputAnalogSensitivity = 1.000000
|
||||||
|
AnalogLimiterDeadzone = 0.600000
|
||||||
|
UseMouse = False
|
||||||
|
MapMouse = False
|
||||||
|
ConfineMap = False
|
||||||
|
MouseSensitivity = 0.100000
|
||||||
|
MouseSmoothing = 0.900000
|
||||||
|
ComboKey0Toggle = False
|
||||||
|
ComboKey1Toggle = False
|
||||||
|
ComboKey2Toggle = False
|
||||||
|
ComboKey3Toggle = False
|
||||||
|
ComboKey4Toggle = False
|
||||||
|
AnalogAutoRotSpeed = 15.000000
|
||||||
|
TouchSnapToGrid = False
|
||||||
|
TouchSnapGridSize = 64
|
||||||
|
RightAnalogStickX = 0.875000
|
||||||
|
RightAnalogStickY = 0.856250
|
||||||
|
RightAnalogStickScale = 1.150000
|
||||||
|
ShowRightAnalogStick = False
|
||||||
|
RapidFireKeyX = 0.619792
|
||||||
|
RapidFireKeyY = 0.784375
|
||||||
|
RapidFireKeyScale = 1.150000
|
||||||
|
ShowRapidFireKey = False
|
||||||
|
AnalogRotationCWKeyX = 0.500000
|
||||||
|
AnalogRotationKeyCWY = 0.676562
|
||||||
|
AnalogRotationKeyCWScale = 1.150000
|
||||||
|
ShowAnalogRotationCWKey = False
|
||||||
|
AnalogRotationCCWKeyX = 0.380208
|
||||||
|
AnalogRotationKeyCCWY = 0.676562
|
||||||
|
AnalogRotationKeyCCWScale = 1.150000
|
||||||
|
ShowAnalogRotationCCWKey = False
|
||||||
|
Custom0Mapping = 0x0000000000000000
|
||||||
|
Custom0Image = 0
|
||||||
|
Custom0Shape = 0
|
||||||
|
Custom0Toggle = False
|
||||||
|
Custom1Mapping = 0x0000000000000000
|
||||||
|
Custom1Image = 1
|
||||||
|
Custom1Shape = 0
|
||||||
|
Custom1Toggle = False
|
||||||
|
Custom2Mapping = 0x0000000000000000
|
||||||
|
Custom2Image = 2
|
||||||
|
Custom2Shape = 0
|
||||||
|
Custom2Toggle = False
|
||||||
|
Custom3Mapping = 0x0000000000000000
|
||||||
|
Custom3Image = 3
|
||||||
|
Custom3Shape = 0
|
||||||
|
Custom3Toggle = False
|
||||||
|
Custom4Mapping = 0x0000000000000000
|
||||||
|
Custom4Image = 4
|
||||||
|
Custom4Shape = 0
|
||||||
|
Custom4Toggle = False
|
||||||
|
Custom5Mapping = 0x0000000000000000
|
||||||
|
Custom5Image = 0
|
||||||
|
Custom5Shape = 1
|
||||||
|
Custom5Toggle = False
|
||||||
|
Custom6Mapping = 0x0000000000000000
|
||||||
|
Custom6Image = 1
|
||||||
|
Custom6Shape = 1
|
||||||
|
Custom6Toggle = False
|
||||||
|
Custom7Mapping = 0x0000000000000000
|
||||||
|
Custom7Image = 2
|
||||||
|
Custom7Shape = 1
|
||||||
|
Custom7Toggle = False
|
||||||
|
Custom8Mapping = 0x0000000000000000
|
||||||
|
Custom8Image = 3
|
||||||
|
Custom8Shape = 1
|
||||||
|
Custom8Toggle = False
|
||||||
|
Custom9Mapping = 0x0000000000000000
|
||||||
|
Custom9Image = 4
|
||||||
|
Custom9Shape = 1
|
||||||
|
Custom9Toggle = False
|
||||||
|
fcombo5X = 0.428125
|
||||||
|
fcombo5Y = 0.500000
|
||||||
|
comboKeyScale5 = 1.150000
|
||||||
|
ShowComboKey5 = False
|
||||||
|
fcombo6X = 0.368229
|
||||||
|
fcombo6Y = 0.500000
|
||||||
|
comboKeyScale6 = 1.150000
|
||||||
|
ShowComboKey6 = False
|
||||||
|
fcombo7X = 0.308333
|
||||||
|
fcombo7Y = 0.500000
|
||||||
|
comboKeyScale7 = 1.150000
|
||||||
|
ShowComboKey7 = False
|
||||||
|
fcombo8X = 0.428125
|
||||||
|
fcombo8Y = 0.333333
|
||||||
|
comboKeyScale8 = 1.150000
|
||||||
|
ShowComboKey8 = False
|
||||||
|
fcombo9X = 0.368229
|
||||||
|
fcombo9Y = 0.333333
|
||||||
|
comboKeyScale9 = 1.150000
|
||||||
|
ShowComboKey9 = False
|
||||||
|
AnalogDeadzone = 0.150000
|
||||||
|
AnalogInverseDeadzone = 0.000000
|
||||||
|
AnalogSensitivity = 1.100000
|
||||||
|
AnalogIsCircular = False
|
||||||
|
LeftStickHeadScale = 1.000000
|
||||||
|
RightStickHeadScale = 1.000000
|
||||||
|
HideStickBackground = False
|
||||||
|
SystemControls = True
|
||||||
|
[Network]
|
||||||
|
EnableWlan = False
|
||||||
|
EnableAdhocServer = False
|
||||||
|
proAdhocServer = myneighborsushicat.com
|
||||||
|
PortOffset = 0
|
||||||
|
MinTimeout = 1
|
||||||
|
TCPNoDelay = False
|
||||||
|
EnableUPnP = False
|
||||||
|
UPnPUseOriginalPort = True
|
||||||
|
EnableNetworkChat = False
|
||||||
|
ChatButtonPosition = 0
|
||||||
|
ChatScreenPosition = 0
|
||||||
|
EnableQuickChat = True
|
||||||
|
QuickChat1 = Quick Chat 1
|
||||||
|
QuickChat2 = Quick Chat 2
|
||||||
|
QuickChat3 = Quick Chat 3
|
||||||
|
QuickChat4 = Quick Chat 4
|
||||||
|
QuickChat5 = Quick Chat 5
|
||||||
|
ForcedFirstConnect = False
|
||||||
|
[SystemParam]
|
||||||
|
PSPModel = 0
|
||||||
|
PSPFirmwareVersion = 660
|
||||||
|
NickName = PPSSPP
|
||||||
|
proAdhocServer = black-seraph.com
|
||||||
|
MacAddress = 4e:7a:78:d9:49:32
|
||||||
|
PortOffset = 0
|
||||||
|
Language = 1
|
||||||
|
TimeFormat = 1
|
||||||
|
DateFormat = 1
|
||||||
|
TimeZone = 0
|
||||||
|
DayLightSavings = False
|
||||||
|
ButtonPreference = 1
|
||||||
|
LockParentalLevel = 0
|
||||||
|
WlanAdhocChannel = 0
|
||||||
|
WlanPowerSave = False
|
||||||
|
EncryptSave = True
|
||||||
|
SavedataUpgradeVersion = True
|
||||||
|
ParamTimeFormat = 0
|
||||||
|
ParamDateFormat = 0
|
||||||
|
MemStickSize = 16
|
||||||
|
[Debugger]
|
||||||
|
DisasmWindowX = -1
|
||||||
|
DisasmWindowY = -1
|
||||||
|
DisasmWindowW = -1
|
||||||
|
DisasmWindowH = -1
|
||||||
|
GEWindowX = -1
|
||||||
|
GEWindowY = -1
|
||||||
|
GEWindowW = -1
|
||||||
|
GEWindowH = -1
|
||||||
|
ConsoleWindowX = -1
|
||||||
|
ConsoleWindowY = -1
|
||||||
|
FontWidth = 8
|
||||||
|
FontHeight = 12
|
||||||
|
DisplayStatusBar = True
|
||||||
|
ShowBottomTabTitles = True
|
||||||
|
ShowDeveloperMenu = False
|
||||||
|
SkipDeadbeefFilling = False
|
||||||
|
FuncHashMap = False
|
||||||
|
DrawFrameGraph = False
|
||||||
|
MemInfoDetailed = False
|
||||||
|
[Upgrade]
|
||||||
|
UpgradeMessage =
|
||||||
|
UpgradeVersion = 1.12.0
|
||||||
|
DismissedVersion =
|
||||||
|
[Theme]
|
||||||
|
ItemStyleFg = 0xffffffff
|
||||||
|
ItemStyleBg = 0x55000000
|
||||||
|
ItemFocusedStyleFg = 0xffffffff
|
||||||
|
ItemFocusedStyleBg = 0xffedc24c
|
||||||
|
ItemDownStyleFg = 0xffffffff
|
||||||
|
ItemDownStyleBg = 0xffbd9939
|
||||||
|
ItemDisabledStyleFg = 0x80eeeeee
|
||||||
|
ItemDisabledStyleBg = 0x55e0d4af
|
||||||
|
ItemHighlightedStyleFg = 0xffffffff
|
||||||
|
ItemHighlightedStyleBg = 0x55bdbb39
|
||||||
|
ButtonStyleFg = 0xffffffff
|
||||||
|
ButtonStyleBg = 0x55000000
|
||||||
|
ButtonFocusedStyleFg = 0xffffffff
|
||||||
|
ButtonFocusedStyleBg = 0xffedc24c
|
||||||
|
ButtonDownStyleFg = 0xffffffff
|
||||||
|
ButtonDownStyleBg = 0xffbd9939
|
||||||
|
ButtonDisabledStyleFg = 0x80eeeeee
|
||||||
|
ButtonDisabledStyleBg = 0x55e0d4af
|
||||||
|
ButtonHighlightedStyleFg = 0xffffffff
|
||||||
|
ButtonHighlightedStyleBg = 0x55bdbb39
|
||||||
|
HeaderStyleFg = 0xffffffff
|
||||||
|
InfoStyleFg = 0xffffffff
|
||||||
|
InfoStyleBg = 0x00000000
|
||||||
|
PopupTitleStyleFg = 0xffe3be59
|
||||||
|
PopupStyleFg = 0xffffffff
|
||||||
|
PopupStyleBg = 0xff303030
|
||||||
|
[Recent]
|
||||||
|
MaxRecent = 30
|
||||||
|
[Log]
|
||||||
|
SYSTEMEnabled = True
|
||||||
|
SYSTEMLevel = 4
|
||||||
|
BOOTEnabled = True
|
||||||
|
BOOTLevel = 4
|
||||||
|
COMMONEnabled = True
|
||||||
|
COMMONLevel = 4
|
||||||
|
CPUEnabled = True
|
||||||
|
CPULevel = 4
|
||||||
|
FILESYSEnabled = True
|
||||||
|
FILESYSLevel = 4
|
||||||
|
G3DEnabled = True
|
||||||
|
G3DLevel = 4
|
||||||
|
HLEEnabled = True
|
||||||
|
HLELevel = 4
|
||||||
|
JITEnabled = True
|
||||||
|
JITLevel = 4
|
||||||
|
LOADEREnabled = True
|
||||||
|
LOADERLevel = 4
|
||||||
|
MEEnabled = True
|
||||||
|
MELevel = 4
|
||||||
|
MEMMAPEnabled = True
|
||||||
|
MEMMAPLevel = 4
|
||||||
|
SASMIXEnabled = True
|
||||||
|
SASMIXLevel = 4
|
||||||
|
SAVESTATEEnabled = True
|
||||||
|
SAVESTATELevel = 4
|
||||||
|
FRAMEBUFEnabled = True
|
||||||
|
FRAMEBUFLevel = 4
|
||||||
|
SCEAUDIOEnabled = True
|
||||||
|
SCEAUDIOLevel = 4
|
||||||
|
SCECTRLEnabled = True
|
||||||
|
SCECTRLLevel = 4
|
||||||
|
SCEDISPEnabled = True
|
||||||
|
SCEDISPLevel = 4
|
||||||
|
SCEFONTEnabled = True
|
||||||
|
SCEFONTLevel = 4
|
||||||
|
SCEGEEnabled = True
|
||||||
|
SCEGELevel = 4
|
||||||
|
SCEINTCEnabled = True
|
||||||
|
SCEINTCLevel = 4
|
||||||
|
SCEIOEnabled = True
|
||||||
|
SCEIOLevel = 4
|
||||||
|
SCEKERNELEnabled = True
|
||||||
|
SCEKERNELLevel = 4
|
||||||
|
SCEMODULEEnabled = True
|
||||||
|
SCEMODULELevel = 4
|
||||||
|
SCENETEnabled = True
|
||||||
|
SCENETLevel = 4
|
||||||
|
SCERTCEnabled = True
|
||||||
|
SCERTCLevel = 4
|
||||||
|
SCESASEnabled = True
|
||||||
|
SCESASLevel = 4
|
||||||
|
SCEUTILEnabled = True
|
||||||
|
SCEUTILLevel = 4
|
||||||
|
SCEMISCEnabled = True
|
||||||
|
SCEMISCLevel = 4
|
||||||
|
AUDIOEnabled = True
|
||||||
|
AUDIOLevel = 2
|
||||||
|
IOEnabled = True
|
||||||
|
IOLevel = 2
|
||||||
|
[PostShaderSetting]
|
||||||
|
BloomSettingValue1 = 0.600000
|
||||||
|
BloomSettingValue2 = 0.500000
|
||||||
|
CRTSettingValue1 = 1.000000
|
||||||
|
CartoonSettingValue1 = 0.500000
|
||||||
|
ColorCorrectionSettingValue1 = 1.000000
|
||||||
|
ColorCorrectionSettingValue2 = 1.000000
|
||||||
|
ColorCorrectionSettingValue3 = 1.000000
|
||||||
|
ColorCorrectionSettingValue4 = 1.000000
|
||||||
|
ScanlinesSettingValue1 = 1.000000
|
||||||
|
ScanlinesSettingValue2 = 0.500000
|
||||||
|
SharpenSettingValue1 = 1.500000
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
PKG_NAME="amiberry"
|
PKG_NAME="amiberry"
|
||||||
PKG_ARCH="arm aarch64"
|
PKG_ARCH="arm aarch64"
|
||||||
PKG_VERSION="bd47107842453368024b4a76530159e64bd30ab8"
|
PKG_VERSION="59d6cc9986f41b59f78f5c30d2d98ed3b955d39e"
|
||||||
PKG_LICENSE="GPLv3"
|
PKG_LICENSE="GPLv3"
|
||||||
PKG_SITE="https://github.com/midwan/amiberry"
|
PKG_SITE="https://github.com/midwan/amiberry"
|
||||||
PKG_URL="${PKG_SITE}.git"
|
PKG_URL="${PKG_SITE}.git"
|
||||||
|
|
1
packages/games/emulators/dolphinsa/config/RG503
Symbolic link
1
packages/games/emulators/dolphinsa/config/RG503
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
RG353P
|
148
packages/games/emulators/dolphinsa/config/RG552/Dolphin.ini
Normal file
148
packages/games/emulators/dolphinsa/config/RG552/Dolphin.ini
Normal file
|
@ -0,0 +1,148 @@
|
||||||
|
[General]
|
||||||
|
LastFilename =
|
||||||
|
ShowLag = False
|
||||||
|
ShowFrameCount = False
|
||||||
|
ISOPaths = 1
|
||||||
|
RecursiveISOPaths = False
|
||||||
|
NANDRootPath =
|
||||||
|
WirelessMac =
|
||||||
|
[Interface]
|
||||||
|
ConfirmStop = True
|
||||||
|
UsePanicHandlers = True
|
||||||
|
OnScreenDisplayMessages = True
|
||||||
|
HideCursor = False
|
||||||
|
AutoHideCursor = False
|
||||||
|
MainWindowPosX = 403
|
||||||
|
MainWindowPosY = 148
|
||||||
|
MainWindowWidth = 800
|
||||||
|
MainWindowHeight = 600
|
||||||
|
Language = 0
|
||||||
|
ShowToolbar = True
|
||||||
|
ShowStatusbar = True
|
||||||
|
ShowLogWindow = False
|
||||||
|
ShowLogConfigWindow = False
|
||||||
|
ExtendedFPSInfo = False
|
||||||
|
ThemeName40 = Clean Blue
|
||||||
|
PauseOnFocusLost = False
|
||||||
|
[Display]
|
||||||
|
FullscreenResolution = Auto
|
||||||
|
Fullscreen = True
|
||||||
|
RenderToMain = False
|
||||||
|
RenderWindowXPos = -1
|
||||||
|
RenderWindowYPos = -1
|
||||||
|
RenderWindowWidth = 640
|
||||||
|
RenderWindowHeight = 480
|
||||||
|
RenderWindowAutoSize = False
|
||||||
|
KeepWindowOnTop = False
|
||||||
|
ProgressiveScan = False
|
||||||
|
PAL60 = True
|
||||||
|
DisableScreenSaver = True
|
||||||
|
ForceNTSCJ = False
|
||||||
|
[GameList]
|
||||||
|
ListDrives = False
|
||||||
|
ListWad = True
|
||||||
|
ListElfDol = True
|
||||||
|
ListWii = True
|
||||||
|
ListGC = True
|
||||||
|
ListJap = True
|
||||||
|
ListPal = True
|
||||||
|
ListUsa = True
|
||||||
|
ListAustralia = True
|
||||||
|
ListFrance = True
|
||||||
|
ListGermany = True
|
||||||
|
ListItaly = True
|
||||||
|
ListKorea = True
|
||||||
|
ListNetherlands = True
|
||||||
|
ListRussia = True
|
||||||
|
ListSpain = True
|
||||||
|
ListTaiwan = True
|
||||||
|
ListWorld = True
|
||||||
|
ListUnknown = True
|
||||||
|
ListSort = 3
|
||||||
|
ListSortSecondary = 0
|
||||||
|
ColorCompressed = True
|
||||||
|
ColumnPlatform = True
|
||||||
|
ColumnBanner = True
|
||||||
|
ColumnNotes = True
|
||||||
|
ColumnFileName = False
|
||||||
|
ColumnID = False
|
||||||
|
ColumnRegion = True
|
||||||
|
ColumnSize = True
|
||||||
|
ColumnState = True
|
||||||
|
[Core]
|
||||||
|
HLE_BS2 = False
|
||||||
|
TimingVariance = 40
|
||||||
|
CPUCore = 4
|
||||||
|
Fastmem = True
|
||||||
|
CPUThread = True
|
||||||
|
DSPHLE = True
|
||||||
|
SkipIdle = True
|
||||||
|
SyncOnSkipIdle = True
|
||||||
|
SyncGPU = False
|
||||||
|
SyncGpuMaxDistance = 200000
|
||||||
|
SyncGpuMinDistance = -200000
|
||||||
|
SyncGpuOverclock = 1.00000000
|
||||||
|
FPRF = False
|
||||||
|
AccurateNaNs = False
|
||||||
|
DefaultISO =
|
||||||
|
DVDRoot =
|
||||||
|
Apploader =
|
||||||
|
EnableCheats = True
|
||||||
|
SelectedLanguage = 0
|
||||||
|
OverrideGCLang = False
|
||||||
|
DPL2Decoder = False
|
||||||
|
Latency = 2
|
||||||
|
MemcardAPath =
|
||||||
|
MemcardBPath =
|
||||||
|
AgpCartAPath =
|
||||||
|
AgpCartBPath =
|
||||||
|
SlotA = 1
|
||||||
|
SlotB = 255
|
||||||
|
SerialPort1 = 255
|
||||||
|
BBA_MAC =
|
||||||
|
SIDevice0 = 6
|
||||||
|
AdapterRumble0 = True
|
||||||
|
SimulateKonga0 = False
|
||||||
|
SIDevice1 = 6
|
||||||
|
AdapterRumble1 = True
|
||||||
|
SimulateKonga1 = False
|
||||||
|
SIDevice2 = 0
|
||||||
|
AdapterRumble2 = True
|
||||||
|
SimulateKonga2 = False
|
||||||
|
SIDevice3 = 0
|
||||||
|
AdapterRumble3 = True
|
||||||
|
SimulateKonga3 = False
|
||||||
|
WiiSDCard = False
|
||||||
|
WiiKeyboard = False
|
||||||
|
WiimoteContinuousScanning = False
|
||||||
|
WiimoteEnableSpeaker = False
|
||||||
|
RunCompareServer = False
|
||||||
|
RunCompareClient = False
|
||||||
|
EmulationSpeed = 1.00000000
|
||||||
|
FrameSkip = 0x00000003
|
||||||
|
Overclock = 4.00000000
|
||||||
|
OverclockEnable = False
|
||||||
|
GFXBackend =
|
||||||
|
GPUDeterminismMode = auto
|
||||||
|
PerfMapDir =
|
||||||
|
[Movie]
|
||||||
|
PauseMovie = False
|
||||||
|
Author =
|
||||||
|
DumpFrames = False
|
||||||
|
DumpFramesSilent = False
|
||||||
|
ShowInputDisplay = False
|
||||||
|
[DSP]
|
||||||
|
EnableJIT = True
|
||||||
|
DumpAudio = False
|
||||||
|
DumpUCode = False
|
||||||
|
Backend = ALSA
|
||||||
|
Volume = 100
|
||||||
|
CaptureLog = False
|
||||||
|
[Input]
|
||||||
|
BackgroundInput = False
|
||||||
|
[FifoPlayer]
|
||||||
|
LoopReplay = True
|
||||||
|
[Analytics]
|
||||||
|
ID = 5082f0c30a7e422b1220107f69d6c108
|
||||||
|
Enabled = False
|
||||||
|
PermissionAsked = True
|
29
packages/games/emulators/dolphinsa/config/RG552/GCPadNew.ini
Normal file
29
packages/games/emulators/dolphinsa/config/RG552/GCPadNew.ini
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
[GCPad1]
|
||||||
|
Device = evdev/0/retrogame_joypad
|
||||||
|
Buttons/A = Button 0
|
||||||
|
Buttons/B = Button 1
|
||||||
|
Buttons/Start = Button 9
|
||||||
|
Buttons/X = Button 3
|
||||||
|
Buttons/Y = Button 2
|
||||||
|
Buttons/Z = Button 7
|
||||||
|
Buttons/Hotkey = Button 8
|
||||||
|
C-Stick/Dead Zone = 25.000000000000000
|
||||||
|
C-Stick/Down = Axis 3+
|
||||||
|
C-Stick/Left = Axis 2-
|
||||||
|
C-Stick/Modifier = Control_L
|
||||||
|
C-Stick/Modifier/Range = 50.000000000000000
|
||||||
|
C-Stick/Right = Axis 2+
|
||||||
|
C-Stick/Up = Axis 3-
|
||||||
|
D-Pad/Down = Button 14
|
||||||
|
D-Pad/Left = Button 15
|
||||||
|
D-Pad/Right = Button 16
|
||||||
|
D-Pad/Up = Button 13
|
||||||
|
Main Stick/Dead Zone = 25.000000000000000
|
||||||
|
Main Stick/Down = Axis 1+
|
||||||
|
Main Stick/Left = Axis 0-
|
||||||
|
Main Stick/Modifier = Shift_L
|
||||||
|
Main Stick/Modifier/Range = 50.000000000000000
|
||||||
|
Main Stick/Right = Axis 0+
|
||||||
|
Main Stick/Up = Axis 1-
|
||||||
|
Triggers/L = Button 4
|
||||||
|
Triggers/R = Button 5
|
55
packages/games/emulators/dolphinsa/config/RG552/GFX.ini
Normal file
55
packages/games/emulators/dolphinsa/config/RG552/GFX.ini
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
[Hardware]
|
||||||
|
VSync = False
|
||||||
|
Adapter = 0
|
||||||
|
[Settings]
|
||||||
|
AspectRatio = 2
|
||||||
|
Crop = False
|
||||||
|
wideScreenHack = False
|
||||||
|
UseXFB = False
|
||||||
|
UseRealXFB = False
|
||||||
|
SafeTextureCacheColorSamples = 128
|
||||||
|
ShowFPS = False
|
||||||
|
LogRenderTimeToFile = False
|
||||||
|
OverlayStats = False
|
||||||
|
OverlayProjStats = False
|
||||||
|
DumpTextures = False
|
||||||
|
HiresTextures = False
|
||||||
|
ConvertHiresTextures = False
|
||||||
|
CacheHiresTextures = False
|
||||||
|
DumpEFBTarget = False
|
||||||
|
FreeLook = False
|
||||||
|
UseFFV1 = False
|
||||||
|
EnablePixelLighting = False
|
||||||
|
FastDepthCalc = True
|
||||||
|
MSAA = 1
|
||||||
|
SSAA = False
|
||||||
|
EFBScale = 2
|
||||||
|
TexFmtOverlayEnable = False
|
||||||
|
TexFmtOverlayCenter = False
|
||||||
|
Wireframe = False
|
||||||
|
DisableFog = False
|
||||||
|
EnableShaderDebugging = False
|
||||||
|
BorderlessFullscreen = False
|
||||||
|
SWZComploc = True
|
||||||
|
SWZFreeze = True
|
||||||
|
SWDumpObjects = False
|
||||||
|
SWDumpTevStages = False
|
||||||
|
SWDumpTevTexFetches = False
|
||||||
|
SWDrawStart = 0
|
||||||
|
SWDrawEnd = 100000
|
||||||
|
[Enhancements]
|
||||||
|
ForceFiltering = False
|
||||||
|
MaxAnisotropy = 0
|
||||||
|
PostProcessingShader =
|
||||||
|
[Stereoscopy]
|
||||||
|
StereoMode = 0
|
||||||
|
StereoDepth = 20
|
||||||
|
StereoConvergencePercentage = 100
|
||||||
|
StereoSwapEyes = False
|
||||||
|
[Hacks]
|
||||||
|
EFBAccessEnable = False
|
||||||
|
BBoxEnable = False
|
||||||
|
ForceProgressive = True
|
||||||
|
EFBToTextureEnable = True
|
||||||
|
EFBScaledCopy = False
|
||||||
|
EFBEmulateFormatChanges = False
|
148
packages/games/emulators/dolphinsa/config/handheld/Dolphin.ini
Normal file
148
packages/games/emulators/dolphinsa/config/handheld/Dolphin.ini
Normal file
|
@ -0,0 +1,148 @@
|
||||||
|
[General]
|
||||||
|
LastFilename =
|
||||||
|
ShowLag = False
|
||||||
|
ShowFrameCount = False
|
||||||
|
ISOPaths = 1
|
||||||
|
RecursiveISOPaths = False
|
||||||
|
NANDRootPath =
|
||||||
|
WirelessMac =
|
||||||
|
[Interface]
|
||||||
|
ConfirmStop = True
|
||||||
|
UsePanicHandlers = True
|
||||||
|
OnScreenDisplayMessages = True
|
||||||
|
HideCursor = False
|
||||||
|
AutoHideCursor = False
|
||||||
|
MainWindowPosX = 403
|
||||||
|
MainWindowPosY = 148
|
||||||
|
MainWindowWidth = 800
|
||||||
|
MainWindowHeight = 600
|
||||||
|
Language = 0
|
||||||
|
ShowToolbar = True
|
||||||
|
ShowStatusbar = True
|
||||||
|
ShowLogWindow = False
|
||||||
|
ShowLogConfigWindow = False
|
||||||
|
ExtendedFPSInfo = False
|
||||||
|
ThemeName40 = Clean Blue
|
||||||
|
PauseOnFocusLost = False
|
||||||
|
[Display]
|
||||||
|
FullscreenResolution = Auto
|
||||||
|
Fullscreen = True
|
||||||
|
RenderToMain = False
|
||||||
|
RenderWindowXPos = -1
|
||||||
|
RenderWindowYPos = -1
|
||||||
|
RenderWindowWidth = 640
|
||||||
|
RenderWindowHeight = 480
|
||||||
|
RenderWindowAutoSize = False
|
||||||
|
KeepWindowOnTop = False
|
||||||
|
ProgressiveScan = False
|
||||||
|
PAL60 = True
|
||||||
|
DisableScreenSaver = True
|
||||||
|
ForceNTSCJ = False
|
||||||
|
[GameList]
|
||||||
|
ListDrives = False
|
||||||
|
ListWad = True
|
||||||
|
ListElfDol = True
|
||||||
|
ListWii = True
|
||||||
|
ListGC = True
|
||||||
|
ListJap = True
|
||||||
|
ListPal = True
|
||||||
|
ListUsa = True
|
||||||
|
ListAustralia = True
|
||||||
|
ListFrance = True
|
||||||
|
ListGermany = True
|
||||||
|
ListItaly = True
|
||||||
|
ListKorea = True
|
||||||
|
ListNetherlands = True
|
||||||
|
ListRussia = True
|
||||||
|
ListSpain = True
|
||||||
|
ListTaiwan = True
|
||||||
|
ListWorld = True
|
||||||
|
ListUnknown = True
|
||||||
|
ListSort = 3
|
||||||
|
ListSortSecondary = 0
|
||||||
|
ColorCompressed = True
|
||||||
|
ColumnPlatform = True
|
||||||
|
ColumnBanner = True
|
||||||
|
ColumnNotes = True
|
||||||
|
ColumnFileName = False
|
||||||
|
ColumnID = False
|
||||||
|
ColumnRegion = True
|
||||||
|
ColumnSize = True
|
||||||
|
ColumnState = True
|
||||||
|
[Core]
|
||||||
|
HLE_BS2 = False
|
||||||
|
TimingVariance = 40
|
||||||
|
CPUCore = 4
|
||||||
|
Fastmem = True
|
||||||
|
CPUThread = True
|
||||||
|
DSPHLE = True
|
||||||
|
SkipIdle = True
|
||||||
|
SyncOnSkipIdle = True
|
||||||
|
SyncGPU = False
|
||||||
|
SyncGpuMaxDistance = 200000
|
||||||
|
SyncGpuMinDistance = -200000
|
||||||
|
SyncGpuOverclock = 1.00000000
|
||||||
|
FPRF = False
|
||||||
|
AccurateNaNs = False
|
||||||
|
DefaultISO =
|
||||||
|
DVDRoot =
|
||||||
|
Apploader =
|
||||||
|
EnableCheats = True
|
||||||
|
SelectedLanguage = 0
|
||||||
|
OverrideGCLang = False
|
||||||
|
DPL2Decoder = False
|
||||||
|
Latency = 2
|
||||||
|
MemcardAPath =
|
||||||
|
MemcardBPath =
|
||||||
|
AgpCartAPath =
|
||||||
|
AgpCartBPath =
|
||||||
|
SlotA = 1
|
||||||
|
SlotB = 255
|
||||||
|
SerialPort1 = 255
|
||||||
|
BBA_MAC =
|
||||||
|
SIDevice0 = 6
|
||||||
|
AdapterRumble0 = True
|
||||||
|
SimulateKonga0 = False
|
||||||
|
SIDevice1 = 6
|
||||||
|
AdapterRumble1 = True
|
||||||
|
SimulateKonga1 = False
|
||||||
|
SIDevice2 = 0
|
||||||
|
AdapterRumble2 = True
|
||||||
|
SimulateKonga2 = False
|
||||||
|
SIDevice3 = 0
|
||||||
|
AdapterRumble3 = True
|
||||||
|
SimulateKonga3 = False
|
||||||
|
WiiSDCard = False
|
||||||
|
WiiKeyboard = False
|
||||||
|
WiimoteContinuousScanning = False
|
||||||
|
WiimoteEnableSpeaker = False
|
||||||
|
RunCompareServer = False
|
||||||
|
RunCompareClient = False
|
||||||
|
EmulationSpeed = 1.00000000
|
||||||
|
FrameSkip = 0x00000003
|
||||||
|
Overclock = 4.00000000
|
||||||
|
OverclockEnable = False
|
||||||
|
GFXBackend =
|
||||||
|
GPUDeterminismMode = auto
|
||||||
|
PerfMapDir =
|
||||||
|
[Movie]
|
||||||
|
PauseMovie = False
|
||||||
|
Author =
|
||||||
|
DumpFrames = False
|
||||||
|
DumpFramesSilent = False
|
||||||
|
ShowInputDisplay = False
|
||||||
|
[DSP]
|
||||||
|
EnableJIT = True
|
||||||
|
DumpAudio = False
|
||||||
|
DumpUCode = False
|
||||||
|
Backend = ALSA
|
||||||
|
Volume = 100
|
||||||
|
CaptureLog = False
|
||||||
|
[Input]
|
||||||
|
BackgroundInput = False
|
||||||
|
[FifoPlayer]
|
||||||
|
LoopReplay = True
|
||||||
|
[Analytics]
|
||||||
|
ID = 5082f0c30a7e422b1220107f69d6c108
|
||||||
|
Enabled = False
|
||||||
|
PermissionAsked = True
|
|
@ -0,0 +1,30 @@
|
||||||
|
[GCPad1]
|
||||||
|
Device = evdev/0/Microsoft X-Box 360 pad
|
||||||
|
Buttons/A = Button 1
|
||||||
|
Buttons/B = Button 0
|
||||||
|
Buttons/Start = Button 7
|
||||||
|
Buttons/X = Button 3
|
||||||
|
Buttons/Y = Button 2
|
||||||
|
Buttons/Z = Button 5
|
||||||
|
C-Stick/Dead Zone = 25.000000000000000
|
||||||
|
C-Stick/Down = Axis 4+
|
||||||
|
C-Stick/Left = Axis 3-
|
||||||
|
C-Stick/Modifier = Control_L
|
||||||
|
C-Stick/Modifier/Range = 50.000000000000000
|
||||||
|
C-Stick/Right = Axis 3+
|
||||||
|
C-Stick/Up = Axis 4-
|
||||||
|
D-Pad/Down = Axis 7+
|
||||||
|
D-Pad/Left = Axis 6-
|
||||||
|
D-Pad/Right = Axis 6+
|
||||||
|
D-Pad/Up = Axis 7-
|
||||||
|
Main Stick/Dead Zone = 25.000000000000000
|
||||||
|
Main Stick/Down = Axis 1+
|
||||||
|
Main Stick/Left = Axis 0-
|
||||||
|
Main Stick/Modifier = Shift_L
|
||||||
|
Main Stick/Modifier/Range = 50.000000000000000
|
||||||
|
Main Stick/Right = Axis 0+
|
||||||
|
Main Stick/Up = Axis 1-
|
||||||
|
Triggers/L = Axis 2+
|
||||||
|
Triggers/L = Axis 2+
|
||||||
|
Triggers/R = Axis 5+
|
||||||
|
Triggers/R = Axis 5+
|
55
packages/games/emulators/dolphinsa/config/handheld/GFX.ini
Normal file
55
packages/games/emulators/dolphinsa/config/handheld/GFX.ini
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
[Hardware]
|
||||||
|
VSync = False
|
||||||
|
Adapter = 0
|
||||||
|
[Settings]
|
||||||
|
AspectRatio = 2
|
||||||
|
Crop = False
|
||||||
|
wideScreenHack = False
|
||||||
|
UseXFB = False
|
||||||
|
UseRealXFB = False
|
||||||
|
SafeTextureCacheColorSamples = 128
|
||||||
|
ShowFPS = False
|
||||||
|
LogRenderTimeToFile = False
|
||||||
|
OverlayStats = False
|
||||||
|
OverlayProjStats = False
|
||||||
|
DumpTextures = False
|
||||||
|
HiresTextures = False
|
||||||
|
ConvertHiresTextures = False
|
||||||
|
CacheHiresTextures = False
|
||||||
|
DumpEFBTarget = False
|
||||||
|
FreeLook = False
|
||||||
|
UseFFV1 = False
|
||||||
|
EnablePixelLighting = False
|
||||||
|
FastDepthCalc = True
|
||||||
|
MSAA = 1
|
||||||
|
SSAA = False
|
||||||
|
EFBScale = 2
|
||||||
|
TexFmtOverlayEnable = False
|
||||||
|
TexFmtOverlayCenter = False
|
||||||
|
Wireframe = False
|
||||||
|
DisableFog = False
|
||||||
|
EnableShaderDebugging = False
|
||||||
|
BorderlessFullscreen = False
|
||||||
|
SWZComploc = True
|
||||||
|
SWZFreeze = True
|
||||||
|
SWDumpObjects = False
|
||||||
|
SWDumpTevStages = False
|
||||||
|
SWDumpTevTexFetches = False
|
||||||
|
SWDrawStart = 0
|
||||||
|
SWDrawEnd = 100000
|
||||||
|
[Enhancements]
|
||||||
|
ForceFiltering = False
|
||||||
|
MaxAnisotropy = 0
|
||||||
|
PostProcessingShader =
|
||||||
|
[Stereoscopy]
|
||||||
|
StereoMode = 0
|
||||||
|
StereoDepth = 20
|
||||||
|
StereoConvergencePercentage = 100
|
||||||
|
StereoSwapEyes = False
|
||||||
|
[Hacks]
|
||||||
|
EFBAccessEnable = False
|
||||||
|
BBoxEnable = False
|
||||||
|
ForceProgressive = True
|
||||||
|
EFBToTextureEnable = True
|
||||||
|
EFBScaledCopy = False
|
||||||
|
EFBEmulateFormatChanges = False
|
|
@ -2,36 +2,85 @@
|
||||||
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
|
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
|
||||||
|
|
||||||
PKG_NAME="dolphinsa"
|
PKG_NAME="dolphinsa"
|
||||||
PKG_VERSION="0b160db48796f727311cea16072174d96b784f80"
|
|
||||||
PKG_GIT_CLONE_BRANCH="egldrm"
|
|
||||||
PKG_ARCH="aarch64"
|
|
||||||
PKG_LICENSE="GPLv2"
|
PKG_LICENSE="GPLv2"
|
||||||
PKG_SITE="https://github.com/rtissera/dolphin"
|
|
||||||
PKG_URL="$PKG_SITE.git"
|
|
||||||
PKG_DEPENDS_TARGET="toolchain libevdev libdrm ffmpeg zlib libpng lzo libusb"
|
PKG_DEPENDS_TARGET="toolchain libevdev libdrm ffmpeg zlib libpng lzo libusb"
|
||||||
PKG_LONGDESC="Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements. "
|
PKG_LONGDESC="Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements. "
|
||||||
|
|
||||||
PKG_CMAKE_OPTS_TARGET=" -DENABLE_HEADLESS=ON \
|
case ${DEVICE} in
|
||||||
-DENABLE_EGL=ON \
|
RG552|handheld)
|
||||||
-DENABLE_EVDEV=ON \
|
PKG_SITE="https://github.com/dolphin-emu/dolphin"
|
||||||
-DLINUX_LOCAL_DEV=ON \
|
PKG_URL="${PKG_SITE}.git"
|
||||||
-DOpenGL_GL_PREFERENCE=GLVND \
|
PKG_VERSION="d0ed09ab6fe8e19a64e8f1bb2867f9c439616d4c"
|
||||||
-DENABLE_TESTS=OFF \
|
PKG_PATCH_DIRS+=" new"
|
||||||
-DENABLE_LLVM=OFF \
|
;;
|
||||||
-DENABLE_ANALYTICS=OFF \
|
*)
|
||||||
-DENABLE_X11=OFF \
|
PKG_SITE="https://github.com/rtissera/dolphin"
|
||||||
-DENABLE_LTO=ON \
|
PKG_URL="${PKG_SITE}.git"
|
||||||
-DENABLE_QT=OFF \
|
PKG_VERSION="0b160db48796f727311cea16072174d96b784f80"
|
||||||
-DENCODE_FRAMEDUMPS=OFF"
|
PKG_GIT_CLONE_BRANCH="egldrm"
|
||||||
|
PKG_PATCH_DIRS+=" legacy"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ ! "${OPENGL}" = "no" ]; then
|
||||||
|
PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd"
|
||||||
|
PKG_CONFIGURE_OPTS_TARGET+=" -DENABLE_X11=OFF \
|
||||||
|
-DENABLE_EGL=ON"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${OPENGLES_SUPPORT}" = yes ]; then
|
||||||
|
PKG_DEPENDS_TARGET+=" ${OPENGLES}"
|
||||||
|
PKG_CONFIGURE_OPTS_TARGET+=" -DENABLE_X11=OFF \
|
||||||
|
-DENABLE_EGL=ON"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${DISPLAYSERVER}" = "wl" ]; then
|
||||||
|
PKG_DEPENDS_TARGET+=" wayland ${WINDOWMANAGER} xorg-server xrandr libXi"
|
||||||
|
PKG_CONFIGURE_OPTS_TARGET+=" -DENABLE_X11=ON \
|
||||||
|
-DENABLE_EGL=ON"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${VULKAN_SUPPORT}" = "yes" ]
|
||||||
|
then
|
||||||
|
PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers"
|
||||||
|
PKG_CONFIGURE_OPTS_TARGET+=" -DENABLE_VULKAN=ON"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PKG_CMAKE_OPTS_TARGET+=" -DENABLE_HEADLESS=ON \
|
||||||
|
-DENABLE_EVDEV=ON \
|
||||||
|
-DTHREADS_PTHREAD_ARG=OFF \
|
||||||
|
-DUSE_DISCORD_PRESENCE=OFF \
|
||||||
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
|
-DUSE_MGBA=OFF \
|
||||||
|
-DLINUX_LOCAL_DEV=ON \
|
||||||
|
-DENABLE_TESTS=OFF \
|
||||||
|
-DENABLE_LLVM=OFF \
|
||||||
|
-DENABLE_ANALYTICS=OFF \
|
||||||
|
-DENABLE_LTO=ON \
|
||||||
|
-DENABLE_QT=OFF \
|
||||||
|
-DENCODE_FRAMEDUMPS=OFF"
|
||||||
|
|
||||||
makeinstall_target() {
|
makeinstall_target() {
|
||||||
mkdir -p $INSTALL/usr/bin
|
mkdir -p ${INSTALL}/usr/bin
|
||||||
cp -rf $PKG_BUILD/.${TARGET_NAME}/Binaries/dolphin* $INSTALL/usr/bin
|
cp -rf ${PKG_BUILD}/.${TARGET_NAME}/Binaries/dolphin* ${INSTALL}/usr/bin
|
||||||
cp -rf $PKG_DIR/scripts/* $INSTALL/usr/bin
|
cp -rf ${PKG_DIR}/scripts/* ${INSTALL}/usr/bin
|
||||||
|
|
||||||
chmod +x ${INSTALL}/usr/bin/dolphin.sh
|
chmod +x ${INSTALL}/usr/bin/start_dolphin.sh
|
||||||
|
|
||||||
mkdir -p $INSTALL/usr/config/dolphin-emu
|
mkdir -p ${INSTALL}/usr/config/dolphin-emu
|
||||||
cp -rf $PKG_BUILD/Data/Sys/* $INSTALL/usr/config/dolphin-emu
|
cp -rf ${PKG_BUILD}/Data/Sys/* ${INSTALL}/usr/config/dolphin-emu
|
||||||
cp -rf $PKG_DIR/config/* $INSTALL/usr/config/dolphin-emu
|
cp -rf ${PKG_DIR}/config/${DEVICE}/* ${INSTALL}/usr/config/dolphin-emu
|
||||||
|
}
|
||||||
|
|
||||||
|
post_install() {
|
||||||
|
case ${DEVICE} in
|
||||||
|
RG503|RG353P)
|
||||||
|
DOLPHIN_PLATFORM="drm"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
DOLPHIN_PLATFORM="x11"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
sed -e "s/@DOLPHIN_PLATFORM@/${DOLPHIN_PLATFORM}/g" \
|
||||||
|
-i ${INSTALL}/usr/bin/start_dolphin.sh
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
diff --git a/Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp b/Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp
|
||||||
|
index 6df37b4..64ade4a 100644
|
||||||
|
--- a/Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp
|
||||||
|
+++ b/Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp
|
||||||
|
@@ -392,6 +392,65 @@ void Init()
|
||||||
|
StartHotplugThread();
|
||||||
|
}
|
||||||
|
|
||||||
|
+struct joypad_udev_entry
|
||||||
|
+{
|
||||||
|
+ const char *devnode;
|
||||||
|
+ struct udev_device *dev;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+int isNumber(const char *s) {
|
||||||
|
+ int n;
|
||||||
|
+
|
||||||
|
+ if(strlen(s) == 0) {
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ for(n=0; n<strlen(s); n++) {
|
||||||
|
+ if(!(s[n] == '0' || s[n] == '1' || s[n] == '2' || s[n] == '3' || s[n] == '4' ||
|
||||||
|
+ s[n] == '5' || s[n] == '6' || s[n] == '7' || s[n] == '8' || s[n] == '9'))
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ return 1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+// compare /dev/input/eventX and /dev/input/eventY where X and Y are numbers
|
||||||
|
+int strcmp_events(const char* x, const char* y) {
|
||||||
|
+
|
||||||
|
+ // find a common string
|
||||||
|
+ int n, common, is_number;
|
||||||
|
+ int a, b;
|
||||||
|
+
|
||||||
|
+ n=0;
|
||||||
|
+ while(x[n] == y[n] && x[n] != '\0' && y[n] != '\0') {
|
||||||
|
+ n++;
|
||||||
|
+ }
|
||||||
|
+ common = n;
|
||||||
|
+
|
||||||
|
+ // check if remaining string is a number
|
||||||
|
+ is_number = 1;
|
||||||
|
+ if(isNumber(x+common) == 0) is_number = 0;
|
||||||
|
+ if(isNumber(y+common) == 0) is_number = 0;
|
||||||
|
+
|
||||||
|
+ if(is_number == 1) {
|
||||||
|
+ a = atoi(x+common);
|
||||||
|
+ b = atoi(y+common);
|
||||||
|
+
|
||||||
|
+ if(a == b) return 0;
|
||||||
|
+ if(a < b) return -1;
|
||||||
|
+ return 1;
|
||||||
|
+ } else {
|
||||||
|
+ return strcmp(x, y);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/* Used for sorting devnodes to appear in the correct order */
|
||||||
|
+static int sort_devnodes(const void *a, const void *b)
|
||||||
|
+{
|
||||||
|
+ const struct joypad_udev_entry *aa = (const struct joypad_udev_entry *) a;
|
||||||
|
+ const struct joypad_udev_entry *bb = (const struct joypad_udev_entry *) b;
|
||||||
|
+ return strcmp_events(aa->devnode, bb->devnode);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
// Only call this when ControllerInterface::m_devices_population_mutex is locked
|
||||||
|
void PopulateDevices()
|
||||||
|
{
|
||||||
|
@@ -404,6 +463,10 @@ void PopulateDevices()
|
||||||
|
// We use udev to iterate over all /dev/input/event* devices.
|
||||||
|
// Note: the Linux kernel is currently limited to just 32 event devices. If
|
||||||
|
// this ever changes, hopefully udev will take care of this.
|
||||||
|
+ unsigned sorted_count = 0;
|
||||||
|
+ struct joypad_udev_entry sorted[64];
|
||||||
|
+ const char* devnode;
|
||||||
|
+ int i;
|
||||||
|
|
||||||
|
udev* const udev = udev_new();
|
||||||
|
ASSERT_MSG(CONTROLLERINTERFACE, udev != nullptr, "Couldn't initialize libudev.");
|
||||||
|
@@ -422,11 +485,25 @@ void PopulateDevices()
|
||||||
|
|
||||||
|
udev_device* dev = udev_device_new_from_syspath(udev, path);
|
||||||
|
|
||||||
|
- if (const char* devnode = udev_device_get_devnode(dev))
|
||||||
|
- AddDeviceNode(devnode);
|
||||||
|
-
|
||||||
|
- udev_device_unref(dev);
|
||||||
|
+ devnode = udev_device_get_devnode(dev);
|
||||||
|
+ if (devnode != NULL && sorted_count < 64) {
|
||||||
|
+ sorted[sorted_count].devnode = devnode;
|
||||||
|
+ sorted[sorted_count].dev = dev;
|
||||||
|
+ sorted_count++;
|
||||||
|
+ } else {
|
||||||
|
+ udev_device_unref(dev);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ /* Sort the udev entries by devnode name so that they are
|
||||||
|
+ * created in the proper order */
|
||||||
|
+ qsort(sorted, sorted_count, sizeof(struct joypad_udev_entry), sort_devnodes);
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < sorted_count; i++) {
|
||||||
|
+ AddDeviceNode(sorted[i].devnode);
|
||||||
|
+ udev_device_unref(sorted[i].dev);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
udev_enumerate_unref(enumerate);
|
||||||
|
udev_unref(udev);
|
||||||
|
}
|
7495
packages/games/emulators/dolphinsa/patches/new/002-egldrm.patch
Normal file
7495
packages/games/emulators/dolphinsa/patches/new/002-egldrm.patch
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,118 @@
|
||||||
|
diff --git a/Source/Core/Core/HW/GCPadEmu.cpp b/Source/Core/Core/HW/GCPadEmu.cpp
|
||||||
|
index c8e7016..fb089c4 100644
|
||||||
|
--- a/Source/Core/Core/HW/GCPadEmu.cpp
|
||||||
|
+++ b/Source/Core/Core/HW/GCPadEmu.cpp
|
||||||
|
@@ -26,6 +26,7 @@ static const u16 button_bitmasks[] = {
|
||||||
|
PAD_BUTTON_Y,
|
||||||
|
PAD_TRIGGER_Z,
|
||||||
|
PAD_BUTTON_START,
|
||||||
|
+ PAD_BUTTON_HOTKEY,
|
||||||
|
0 // MIC HAX
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -37,7 +38,7 @@ static const u16 trigger_bitmasks[] = {
|
||||||
|
static const u16 dpad_bitmasks[] = {PAD_BUTTON_UP, PAD_BUTTON_DOWN, PAD_BUTTON_LEFT,
|
||||||
|
PAD_BUTTON_RIGHT};
|
||||||
|
|
||||||
|
-static const char* const named_buttons[] = {"A", "B", "X", "Y", "Z", "Start"};
|
||||||
|
+static const char* const named_buttons[] = {"A", "B", "X", "Y", "Z", "Start", "Hotkey"};
|
||||||
|
|
||||||
|
static const char* const named_triggers[] = {
|
||||||
|
// i18n: The left trigger button (labeled L on real controllers)
|
||||||
|
diff --git a/Source/Core/DolphinNoGUI/PlatformDRM.cpp b/Source/Core/DolphinNoGUI/PlatformDRM.cpp
|
||||||
|
index b210cea..77d4e86 100644
|
||||||
|
--- a/Source/Core/DolphinNoGUI/PlatformDRM.cpp
|
||||||
|
+++ b/Source/Core/DolphinNoGUI/PlatformDRM.cpp
|
||||||
|
@@ -11,6 +11,12 @@
|
||||||
|
#include "Core/Core.h"
|
||||||
|
#include "Core/State.h"
|
||||||
|
|
||||||
|
+#include "Core/HW/GCPad.h"
|
||||||
|
+#include "InputCommon/GCPadStatus.h"
|
||||||
|
+#include <fmt/format.h>
|
||||||
|
+#include "Core/Config/GraphicsSettings.h"
|
||||||
|
+#include "VideoCommon/VideoConfig.h"
|
||||||
|
+
|
||||||
|
#include <climits>
|
||||||
|
#include <cstdio>
|
||||||
|
|
||||||
|
@@ -54,9 +60,67 @@ void PlatformDRM::MainLoop()
|
||||||
|
{
|
||||||
|
while (IsRunning())
|
||||||
|
{
|
||||||
|
+ static int hotkey = 0;
|
||||||
|
+ static int slot = 0;
|
||||||
|
+ static int stereo = 0;
|
||||||
|
+
|
||||||
|
UpdateRunningFlag();
|
||||||
|
Core::HostDispatchJobs();
|
||||||
|
|
||||||
|
+ if(Pad::IsInitialized()) {
|
||||||
|
+ GCPadStatus x = Pad::GetStatus(0);
|
||||||
|
+
|
||||||
|
+ if( (x.button & PAD_BUTTON_HOTKEY) == PAD_BUTTON_HOTKEY) { // hotkey pressed
|
||||||
|
+ if(hotkey == 1) {
|
||||||
|
+ hotkey = 2;
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
+ hotkey = 1; // assure hotkey is released between actions
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if(hotkey == 2) { // hotkey pressed
|
||||||
|
+ if( (x.button & PAD_BUTTON_START) == PAD_BUTTON_START) {
|
||||||
|
+ RequestShutdown();
|
||||||
|
+ hotkey = 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if( (x.button & PAD_BUTTON_Y) == PAD_BUTTON_Y) {
|
||||||
|
+ State::Load(slot);
|
||||||
|
+ hotkey = 0;
|
||||||
|
+ }
|
||||||
|
+ if( (x.button & PAD_BUTTON_B) == PAD_BUTTON_B) {
|
||||||
|
+ State::Save(slot);
|
||||||
|
+ hotkey = 0;
|
||||||
|
+ }
|
||||||
|
+ if( (x.button & PAD_BUTTON_DOWN) == PAD_BUTTON_DOWN) {
|
||||||
|
+ if(slot > 0) slot--;
|
||||||
|
+ Core::DisplayMessage(fmt::format("Slot {} selected", slot), 4000);
|
||||||
|
+ hotkey = 0;
|
||||||
|
+ }
|
||||||
|
+ if( (x.button & PAD_BUTTON_UP) == PAD_BUTTON_UP) {
|
||||||
|
+ if(slot < 10) slot++;
|
||||||
|
+ Core::DisplayMessage(fmt::format("Slot {} selected", slot), 4000);
|
||||||
|
+ hotkey = 0;
|
||||||
|
+ }
|
||||||
|
+ if( (x.button & PAD_TRIGGER_L) == PAD_TRIGGER_L) {
|
||||||
|
+ Core::SaveScreenShot();
|
||||||
|
+ hotkey = 0;
|
||||||
|
+ }
|
||||||
|
+ if( (x.button & PAD_TRIGGER_R) == PAD_TRIGGER_R) {
|
||||||
|
+ if(stereo == 0) {
|
||||||
|
+ Config::SetCurrent(Config::GFX_STEREO_MODE, StereoMode::SBS);
|
||||||
|
+ stereo = 1;
|
||||||
|
+ } else {
|
||||||
|
+ Config::SetCurrent(Config::GFX_STEREO_MODE, StereoMode::Off);
|
||||||
|
+ stereo = 0;
|
||||||
|
+ }
|
||||||
|
+ hotkey = 0;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+ //
|
||||||
|
+
|
||||||
|
// TODO: Is this sleep appropriate?
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
||||||
|
}
|
||||||
|
diff --git a/Source/Core/InputCommon/GCPadStatus.h b/Source/Core/InputCommon/GCPadStatus.h
|
||||||
|
index 7da1bbd..57d294d 100644
|
||||||
|
--- a/Source/Core/InputCommon/GCPadStatus.h
|
||||||
|
+++ b/Source/Core/InputCommon/GCPadStatus.h
|
||||||
|
@@ -27,6 +27,7 @@ enum PadButton
|
||||||
|
PAD_BUTTON_X = 0x0400,
|
||||||
|
PAD_BUTTON_Y = 0x0800,
|
||||||
|
PAD_BUTTON_START = 0x1000,
|
||||||
|
+ PAD_BUTTON_HOTKEY = 0x2000,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GCPadStatus
|
|
@ -0,0 +1,56 @@
|
||||||
|
diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp
|
||||||
|
index f848761..676c886 100644
|
||||||
|
--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp
|
||||||
|
+++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp
|
||||||
|
@@ -819,37 +819,24 @@ static bool gfx_ctx_drm_set_video_mode(void* data, unsigned width, unsigned heig
|
||||||
|
if (!drm)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
- /* Find desired video mode, and use that.
|
||||||
|
- * If not fullscreen, we get desired windowed size,
|
||||||
|
- * which is not appropriate. */
|
||||||
|
- if ((width == 0 && height == 0) || !fullscreen)
|
||||||
|
- drm->drm_mode = &drm->drm_connector->modes[0];
|
||||||
|
- else
|
||||||
|
+ // batocera - set resolution
|
||||||
|
{
|
||||||
|
- /* Try to match refresh_rate as closely as possible.
|
||||||
|
- *
|
||||||
|
- * Lower resolutions tend to have multiple supported
|
||||||
|
- * refresh rates as well.
|
||||||
|
- */
|
||||||
|
- float minimum_fps_diff = 0.0f;
|
||||||
|
-
|
||||||
|
- /* Find best match. */
|
||||||
|
- for (i = 0; i < drm->drm_connector->count_modes; i++)
|
||||||
|
- {
|
||||||
|
- float diff;
|
||||||
|
- if (width != drm->drm_connector->modes[i].hdisplay ||
|
||||||
|
- height != drm->drm_connector->modes[i].vdisplay)
|
||||||
|
- continue;
|
||||||
|
-
|
||||||
|
- diff = fabsf(drm->drm_connector->modes[i].vrefresh - video_refresh_rate);
|
||||||
|
-
|
||||||
|
- if (!drm->drm_mode || diff < minimum_fps_diff)
|
||||||
|
- {
|
||||||
|
- drm->drm_mode = &drm->drm_connector->modes[i];
|
||||||
|
- minimum_fps_diff = diff;
|
||||||
|
+ FILE* fdDrmMode;
|
||||||
|
+ int drmMode;
|
||||||
|
+ if((fdDrmMode = fopen("/var/run/drmMode", "r")) != NULL) {
|
||||||
|
+ if(fscanf(fdDrmMode, "%i", &drmMode) == 1) {
|
||||||
|
+ if(drmMode>=0 && drmMode<drm->drm_connector->count_modes) {
|
||||||
|
+ drmModeCrtc *pcrtc = drmModeGetCrtc(drm->drm_fd, drm->drm_encoder->crtc_id);
|
||||||
|
+ if(pcrtc != NULL) {
|
||||||
|
+ drmModeSetCrtc(drm->drm_fd, pcrtc->crtc_id, pcrtc->buffer_id, 0, 0, &drm->drm_connector->connector_id, 1, &drm->drm_connector->modes[drmMode]);
|
||||||
|
+ drm->drm_mode = &drm->drm_connector->modes[drmMode];
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
+ fclose(fdDrmMode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ //
|
||||||
|
|
||||||
|
if (!drm->drm_mode)
|
||||||
|
{
|
13
packages/games/emulators/dolphinsa/patches/new/004-git.patch
Normal file
13
packages/games/emulators/dolphinsa/patches/new/004-git.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index eb0f83f..9d41166 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -128,7 +128,7 @@ endif()
|
||||||
|
include(CCache)
|
||||||
|
|
||||||
|
# for revision info
|
||||||
|
-find_package(Git)
|
||||||
|
+#find_package(Git)
|
||||||
|
if(GIT_FOUND)
|
||||||
|
# make sure version information gets re-run when the current Git HEAD changes
|
||||||
|
execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --git-path HEAD
|
|
@ -0,0 +1,13 @@
|
||||||
|
--- a/Source/Core/VideoBackends/OGL/OGLRender.cpp 2020-12-31 00:27:53.998709857 +0100
|
||||||
|
+++ b/Source/Core/VideoBackends/OGL/OGLRender.cpp 2020-12-31 00:28:40.414557344 +0100
|
||||||
|
@@ -736,10 +736,6 @@
|
||||||
|
g_Config.VerifyValidity();
|
||||||
|
UpdateActiveConfig();
|
||||||
|
|
||||||
|
- OSD::AddMessage(fmt::format("Video Info: {}, {}, {}", g_ogl_config.gl_vendor,
|
||||||
|
- g_ogl_config.gl_renderer, g_ogl_config.gl_version),
|
||||||
|
- 5000);
|
||||||
|
-
|
||||||
|
if (!g_ogl_config.bSupportsGLBufferStorage && !g_ogl_config.bSupportsGLPinnedMemory)
|
||||||
|
{
|
||||||
|
OSD::AddMessage(fmt::format("Your OpenGL driver does not support {}_buffer_storage.",
|
|
@ -0,0 +1,17 @@
|
||||||
|
diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp
|
||||||
|
index 20572d8..b79b2a7 100644
|
||||||
|
--- a/Source/Core/DolphinQt/MainWindow.cpp
|
||||||
|
+++ b/Source/Core/DolphinQt/MainWindow.cpp
|
||||||
|
@@ -1768,7 +1768,12 @@ void MainWindow::Show()
|
||||||
|
// If the booting of a game was requested on start up, do that now
|
||||||
|
if (m_pending_boot != nullptr)
|
||||||
|
{
|
||||||
|
+ m_menu_bar->hide();
|
||||||
|
+ m_tool_bar->hide();
|
||||||
|
+ m_game_list->hide();
|
||||||
|
StartGame(std::move(m_pending_boot));
|
||||||
|
m_pending_boot.reset();
|
||||||
|
+ } else {
|
||||||
|
+ m_tool_bar->show();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp
|
||||||
|
index 55efc47..b96768f 100644
|
||||||
|
--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp
|
||||||
|
+++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp
|
||||||
|
@@ -371,14 +371,33 @@ static bool drm_get_connector(GFXContextDRMData* drm, int fd)
|
||||||
|
unsigned i;
|
||||||
|
unsigned monitor_index_count = 0;
|
||||||
|
unsigned monitor = 1;
|
||||||
|
+ int drmConn = 0;
|
||||||
|
|
||||||
|
/* Enumerate all connectors. */
|
||||||
|
|
||||||
|
INFO_LOG(VIDEO, "[DRM]: Found %d connectors.\n", drm->drm_resources->count_connectors);
|
||||||
|
|
||||||
|
+ // batocera
|
||||||
|
+ {
|
||||||
|
+ FILE* fdDrmConn;
|
||||||
|
+ int drmConnRead;
|
||||||
|
+ if((fdDrmConn = fopen("/var/run/drmConn", "r")) != NULL) {
|
||||||
|
+ if(fscanf(fdDrmConn, "%i", &drmConnRead) == 1) {
|
||||||
|
+ if(drmConnRead>=0 && drmConn<drm->drm_resources->count_connectors) {
|
||||||
|
+ drmConn = drmConnRead;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ //
|
||||||
|
+
|
||||||
|
for (i = 0; (int)i < drm->drm_resources->count_connectors; i++)
|
||||||
|
{
|
||||||
|
- drmModeConnectorPtr conn = drmModeGetConnector(fd, drm->drm_resources->connectors[i]);
|
||||||
|
+ drmModeConnectorPtr conn;
|
||||||
|
+
|
||||||
|
+ if(i != drmConn) continue;
|
||||||
|
+
|
||||||
|
+ conn = drmModeGetConnector(fd, drm->drm_resources->connectors[i]);
|
||||||
|
|
||||||
|
if (conn)
|
||||||
|
{
|
||||||
|
@@ -399,6 +418,8 @@ static bool drm_get_connector(GFXContextDRMData* drm, int fd)
|
||||||
|
|
||||||
|
for (i = 0; (int)i < drm->drm_resources->count_connectors; i++)
|
||||||
|
{
|
||||||
|
+ if(i != drmConn) continue;
|
||||||
|
+
|
||||||
|
drm->drm_connector = drmModeGetConnector(fd, drm->drm_resources->connectors[i]);
|
||||||
|
|
||||||
|
if (!drm->drm_connector)
|
2
packages/games/emulators/dolphinsa/scripts/dolphin.sh → packages/games/emulators/dolphinsa/scripts/start_dolphin.sh
Normal file → Executable file
2
packages/games/emulators/dolphinsa/scripts/dolphin.sh → packages/games/emulators/dolphinsa/scripts/start_dolphin.sh
Normal file → Executable file
|
@ -18,4 +18,4 @@ rm -rf /storage/.local/share/dolphin-emu
|
||||||
|
|
||||||
ln -sfv /storage/.config/dolphin-emu /storage/.local/share/dolphin-emu
|
ln -sfv /storage/.config/dolphin-emu /storage/.local/share/dolphin-emu
|
||||||
|
|
||||||
/usr/bin/dolphin-emu-nogui -p drm -a HLE -e "${1}"
|
/usr/bin/dolphin-emu-nogui -p @DOLPHIN_PLATFORM@ -a HLE -e "${1}"
|
|
@ -9,17 +9,15 @@ echo -e $(date -u)" - Script started.\n" >> /tmp/logs/dosbox_scan.log
|
||||||
|
|
||||||
EE_DEVICE=$(cat /ee_arch)
|
EE_DEVICE=$(cat /ee_arch)
|
||||||
|
|
||||||
source /usr/bin/env.sh
|
|
||||||
source /etc/profile
|
source /etc/profile
|
||||||
rp_registerAllModules
|
rp_registerAllModules
|
||||||
|
|
||||||
joy2keyStart
|
clear
|
||||||
clear >/dev/console
|
|
||||||
|
|
||||||
#rm "/storage/.config/dosbox/games/*.conf"
|
#rm "/storage/.config/dosbox/games/*.conf"
|
||||||
|
|
||||||
function create_launcher() {
|
function create_launcher() {
|
||||||
message_stream "\nAdding $2..." 0
|
echo "\nAdding $2..."
|
||||||
launcher_name="$1 ($2)"
|
launcher_name="$1 ($2)"
|
||||||
cp /storage/.config/dosbox/dosbox-SDL2.conf "/storage/.config/dosbox/games/$launcher_name.conf"
|
cp /storage/.config/dosbox/dosbox-SDL2.conf "/storage/.config/dosbox/games/$launcher_name.conf"
|
||||||
cat <<EOF >> "/storage/.config/dosbox/games/$launcher_name.conf"
|
cat <<EOF >> "/storage/.config/dosbox/games/$launcher_name.conf"
|
||||||
|
@ -30,7 +28,7 @@ exit
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
message_stream "Scanning for games...\n" 0
|
echo "Scanning for games...\n"
|
||||||
|
|
||||||
OIFS="$IFS"
|
OIFS="$IFS"
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
|
@ -42,7 +40,7 @@ do
|
||||||
do
|
do
|
||||||
echo "Testing (exe) $executable"
|
echo "Testing (exe) $executable"
|
||||||
executable_case="$(basename "$executable" | tr '[:lower:]' '[:upper:]')"
|
executable_case="$(basename "$executable" | tr '[:lower:]' '[:upper:]')"
|
||||||
echo "Case $executable"
|
echo "Case $executable" >> /tmp/logs/dosbox_scan.log
|
||||||
case "$executable_case" in
|
case "$executable_case" in
|
||||||
"SETUP.EXE" | "INSTALL.EXE" | "INSTALLER.EXE" | \
|
"SETUP.EXE" | "INSTALL.EXE" | "INSTALLER.EXE" | \
|
||||||
"APOGEE.BAT" | "CATALOG.EXE" | "DEALERS.EXE" | \
|
"APOGEE.BAT" | "CATALOG.EXE" | "DEALERS.EXE" | \
|
||||||
|
@ -66,7 +64,6 @@ do
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
message_stream "Restarting EmulationStation...\n" 0
|
echo "Restarting EmulationStation...\n"
|
||||||
echo echo "Restarting EmulationStation..." >> /tmp/logs/dosbox_scan.log
|
echo "Restarting EmulationStation..." >> /tmp/logs/dosbox_scan.log
|
||||||
systemctl restart emustation
|
clear
|
||||||
clear >/dev/console
|
|
||||||
|
|
|
@ -6,11 +6,11 @@
|
||||||
|
|
||||||
if [ ! -d "/storage/.config/drastic" ]; then
|
if [ ! -d "/storage/.config/drastic" ]; then
|
||||||
|
|
||||||
echo "Drastic emulator not installed." >/dev/console 2>&1
|
echo "Drastic emulator not installed." 2>&1
|
||||||
echo "Please install through the Jelos Add Ons tool." >/dev/console 2>&1
|
echo "Please install through the Jelos Add Ons tool." 2>&1
|
||||||
|
|
||||||
sleep 5
|
sleep 5
|
||||||
clear >/dev/console
|
clear
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
|
|
1
packages/games/emulators/duckstationsa/config/RG353P
Symbolic link
1
packages/games/emulators/duckstationsa/config/RG353P
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
RG503/
|
|
@ -4,7 +4,7 @@ StartFullscreen = true
|
||||||
EmulationSpeed = 1.000000
|
EmulationSpeed = 1.000000
|
||||||
FastForwardSpeed = 0.000000
|
FastForwardSpeed = 0.000000
|
||||||
TurboSpeed = 0.000000
|
TurboSpeed = 0.000000
|
||||||
SyncToHostRefreshRate = true
|
SyncToHostRefreshRate = false
|
||||||
IncreaseTimerResolution = true
|
IncreaseTimerResolution = true
|
||||||
InhibitScreensaver = true
|
InhibitScreensaver = true
|
||||||
StartPaused = false
|
StartPaused = false
|
||||||
|
@ -38,7 +38,7 @@ ResolutionScale = 1
|
||||||
Multisamples = 1
|
Multisamples = 1
|
||||||
UseDebugDevice = false
|
UseDebugDevice = false
|
||||||
PerSampleShading = false
|
PerSampleShading = false
|
||||||
UseThread = false
|
UseThread = true
|
||||||
ThreadedPresentation = true
|
ThreadedPresentation = true
|
||||||
UseSoftwareRendererForReadbacks = false
|
UseSoftwareRendererForReadbacks = false
|
||||||
TrueColor = false
|
TrueColor = false
|
||||||
|
@ -61,7 +61,6 @@ PGXPDepthClearThreshold = 300.000000
|
||||||
|
|
||||||
|
|
||||||
[Display]
|
[Display]
|
||||||
Rotate = 1
|
|
||||||
CropMode = Overscan
|
CropMode = Overscan
|
||||||
ActiveStartOffset = 0
|
ActiveStartOffset = 0
|
||||||
ActiveEndOffset = 0
|
ActiveEndOffset = 0
|
328
packages/games/emulators/duckstationsa/config/RG552/settings.ini
Normal file
328
packages/games/emulators/duckstationsa/config/RG552/settings.ini
Normal file
|
@ -0,0 +1,328 @@
|
||||||
|
[Main]
|
||||||
|
SettingsVersion = 3
|
||||||
|
EmulationSpeed = 1.000000
|
||||||
|
FastForwardSpeed = 0.000000
|
||||||
|
TurboSpeed = 0.000000
|
||||||
|
SyncToHostRefreshRate = false
|
||||||
|
IncreaseTimerResolution = true
|
||||||
|
InhibitScreensaver = true
|
||||||
|
StartPaused = false
|
||||||
|
StartFullscreen = true
|
||||||
|
PauseOnFocusLoss = false
|
||||||
|
PauseOnMenu = true
|
||||||
|
SaveStateOnExit = true
|
||||||
|
CreateSaveStateBackups = true
|
||||||
|
CompressSaveStates = true
|
||||||
|
ConfirmPowerOff = true
|
||||||
|
LoadDevicesFromSaveStates = false
|
||||||
|
ApplyCompatibilitySettings = true
|
||||||
|
ApplyGameSettings = true
|
||||||
|
AutoLoadCheats = true
|
||||||
|
DisableAllEnhancements = false
|
||||||
|
RewindEnable = false
|
||||||
|
RewindFrequency = 10.000000
|
||||||
|
RewindSaveSlots = 10
|
||||||
|
RunaheadFrameCount = 0
|
||||||
|
|
||||||
|
|
||||||
|
[Console]
|
||||||
|
Region = Auto
|
||||||
|
Enable8MBRAM = false
|
||||||
|
|
||||||
|
|
||||||
|
[CPU]
|
||||||
|
ExecutionMode = Recompiler
|
||||||
|
OverclockEnable = false
|
||||||
|
OverclockNumerator = 1
|
||||||
|
OverclockDenominator = 1
|
||||||
|
RecompilerMemoryExceptions = false
|
||||||
|
RecompilerBlockLinking = true
|
||||||
|
RecompilerICache = false
|
||||||
|
FastmemMode = MMap
|
||||||
|
|
||||||
|
|
||||||
|
[GPU]
|
||||||
|
Renderer = Software
|
||||||
|
Adapter =
|
||||||
|
ResolutionScale = 1
|
||||||
|
Multisamples = 1
|
||||||
|
UseDebugDevice = false
|
||||||
|
PerSampleShading = false
|
||||||
|
UseThread = true
|
||||||
|
ThreadedPresentation = true
|
||||||
|
UseSoftwareRendererForReadbacks = false
|
||||||
|
TrueColor = true
|
||||||
|
ScaledDithering = true
|
||||||
|
TextureFilter = Nearest
|
||||||
|
DownsampleMode = Disabled
|
||||||
|
DisableInterlacing = true
|
||||||
|
ForceNTSCTimings = false
|
||||||
|
WidescreenHack = false
|
||||||
|
ChromaSmoothing24Bit = false
|
||||||
|
PGXPEnable = false
|
||||||
|
PGXPCulling = true
|
||||||
|
PGXPTextureCorrection = true
|
||||||
|
PGXPVertexCache = false
|
||||||
|
PGXPCPU = false
|
||||||
|
PGXPPreserveProjFP = false
|
||||||
|
PGXPTolerance = -1.000000
|
||||||
|
PGXPDepthBuffer = false
|
||||||
|
PGXPDepthClearThreshold = 1228800.000000
|
||||||
|
FullscreenMode =
|
||||||
|
|
||||||
|
|
||||||
|
[Display]
|
||||||
|
CropMode = Overscan
|
||||||
|
ActiveStartOffset = 0
|
||||||
|
ActiveEndOffset = 0
|
||||||
|
LineStartOffset = 0
|
||||||
|
LineEndOffset = 0
|
||||||
|
Force4_3For24Bit = false
|
||||||
|
AspectRatio = Auto (Game Native)
|
||||||
|
CustomAspectRatioNumerator = 0
|
||||||
|
LinearFiltering = true
|
||||||
|
IntegerScaling = false
|
||||||
|
Stretch = false
|
||||||
|
PostProcessing = false
|
||||||
|
ShowOSDMessages = true
|
||||||
|
ShowFPS = false
|
||||||
|
ShowSpeed = false
|
||||||
|
ShowResolution = false
|
||||||
|
ShowCPU = false
|
||||||
|
ShowGPU = false
|
||||||
|
ShowStatusIndicators = true
|
||||||
|
ShowInputs = false
|
||||||
|
ShowEnhancements = false
|
||||||
|
DisplayAllFrames = false
|
||||||
|
InternalResolutionScreenshots = false
|
||||||
|
VSync = false
|
||||||
|
MaxFPS = 0.000000
|
||||||
|
OSDScale = 100.000000
|
||||||
|
|
||||||
|
|
||||||
|
[CDROM]
|
||||||
|
ReadaheadSectors = 8
|
||||||
|
RegionCheck = false
|
||||||
|
LoadImageToRAM = false
|
||||||
|
LoadImagePatches = false
|
||||||
|
MuteCDAudio = false
|
||||||
|
ReadSpeedup = 1
|
||||||
|
SeekSpeedup = 1
|
||||||
|
|
||||||
|
|
||||||
|
[Audio]
|
||||||
|
Backend = Cubeb
|
||||||
|
Driver =
|
||||||
|
StretchMode = TimeStretch
|
||||||
|
BufferMS = 50
|
||||||
|
OutputLatencyMS = 20
|
||||||
|
OutputVolume = 100
|
||||||
|
FastForwardVolume = 100
|
||||||
|
OutputMuted = false
|
||||||
|
DumpOnBoot = false
|
||||||
|
|
||||||
|
|
||||||
|
[Hacks]
|
||||||
|
DMAMaxSliceTicks = 1000
|
||||||
|
DMAHaltTicks = 100
|
||||||
|
GPUFIFOSize = 16
|
||||||
|
GPUMaxRunAhead = 128
|
||||||
|
|
||||||
|
|
||||||
|
[BIOS]
|
||||||
|
SearchDirectory = /storage/roms/bios
|
||||||
|
PathNTSCU =
|
||||||
|
PathNTSCJ =
|
||||||
|
PathPAL =
|
||||||
|
PatchTTYEnable = false
|
||||||
|
PatchFastBoot = true
|
||||||
|
|
||||||
|
|
||||||
|
[Controller1]
|
||||||
|
Type = AnalogController
|
||||||
|
|
||||||
|
|
||||||
|
[Controller2]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Controller3]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Controller4]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Controller5]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Controller6]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Controller7]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Controller8]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[MemoryCards]
|
||||||
|
Card1Type = PerGameTitle
|
||||||
|
Card2Type = None
|
||||||
|
UsePlaylistTitle = true
|
||||||
|
Directory = memcards
|
||||||
|
|
||||||
|
|
||||||
|
[ControllerPorts]
|
||||||
|
MultitapMode = Disabled
|
||||||
|
PointerXScale = 8.000000
|
||||||
|
PointerYScale = 8.000000
|
||||||
|
PointerXInvert = false
|
||||||
|
PointerYInvert = false
|
||||||
|
|
||||||
|
|
||||||
|
[Cheevos]
|
||||||
|
Enabled = false
|
||||||
|
TestMode = false
|
||||||
|
UnofficialTestMode = false
|
||||||
|
UseFirstDiscFromPlaylist = true
|
||||||
|
RichPresence = false
|
||||||
|
ChallengeMode = false
|
||||||
|
|
||||||
|
|
||||||
|
[Logging]
|
||||||
|
LogLevel = Debug
|
||||||
|
LogFilter =
|
||||||
|
LogToConsole = true
|
||||||
|
LogToDebug = true
|
||||||
|
LogToWindow = false
|
||||||
|
LogToFile = true
|
||||||
|
|
||||||
|
|
||||||
|
[Debug]
|
||||||
|
ShowVRAM = false
|
||||||
|
DumpCPUToVRAMCopies = false
|
||||||
|
DumpVRAMToCPUCopies = false
|
||||||
|
ShowGPUState = false
|
||||||
|
ShowCDROMState = false
|
||||||
|
ShowSPUState = false
|
||||||
|
ShowTimersState = false
|
||||||
|
ShowMDECState = false
|
||||||
|
ShowDMAState = false
|
||||||
|
|
||||||
|
|
||||||
|
[TextureReplacements]
|
||||||
|
EnableVRAMWriteReplacements = false
|
||||||
|
PreloadTextures = false
|
||||||
|
DumpVRAMWrites = false
|
||||||
|
DumpVRAMWriteForceAlphaChannel = true
|
||||||
|
DumpVRAMWriteWidthThreshold = 128
|
||||||
|
DumpVRAMWriteHeightThreshold = 128
|
||||||
|
|
||||||
|
|
||||||
|
[Folders]
|
||||||
|
Cache = cache
|
||||||
|
Cheats = cheats
|
||||||
|
Covers = covers
|
||||||
|
Dumps = dump
|
||||||
|
GameSettings = gamesettings
|
||||||
|
InputProfiles = inputprofiles
|
||||||
|
SaveStates = savestates
|
||||||
|
Screenshots = screenshots
|
||||||
|
Shaders = shaders
|
||||||
|
Textures = textures
|
||||||
|
|
||||||
|
|
||||||
|
[InputSources]
|
||||||
|
SDL = true
|
||||||
|
SDLControllerEnhancedMode = false
|
||||||
|
Evdev = false
|
||||||
|
XInput = false
|
||||||
|
RawInput = false
|
||||||
|
|
||||||
|
|
||||||
|
[Pad1]
|
||||||
|
Type = AnalogController
|
||||||
|
Up = SDL-0/DPadUp
|
||||||
|
Right = SDL-0/DPadRight
|
||||||
|
Down = SDL-0/DPadDown
|
||||||
|
Left = SDL-0/DPadLeft
|
||||||
|
Triangle = SDL-0/X
|
||||||
|
Circle = SDL-0/A
|
||||||
|
Cross = SDL-0/B
|
||||||
|
Square = SDL-0/Y
|
||||||
|
Select = SDL-0/Back
|
||||||
|
Start = SDL-0/Start
|
||||||
|
L1 = SDL-0/LeftShoulder
|
||||||
|
R1 = SDL-0/RightShoulder
|
||||||
|
L2 = SDL-0/+LeftTrigger
|
||||||
|
R2 = SDL-0/+RightTrigger
|
||||||
|
L3 = SDL-0/LeftStick & SDL-0/-LeftX
|
||||||
|
R3 = SDL-0/RightStick
|
||||||
|
LLeft = SDL-0/-LeftX
|
||||||
|
LRight = SDL-0/+LeftX
|
||||||
|
LDown = SDL-0/+LeftY
|
||||||
|
LUp = SDL-0/-LeftY
|
||||||
|
RLeft = SDL-0/-RightX
|
||||||
|
RRight = SDL-0/+RightX
|
||||||
|
RDown = SDL-0/+RightY
|
||||||
|
RUp = SDL-0/-RightY
|
||||||
|
|
||||||
|
|
||||||
|
[Pad2]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Pad3]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Pad4]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Pad5]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Pad6]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Pad7]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Pad8]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Hotkeys]
|
||||||
|
Screenshot = SDL-0/Back & SDL-0/A
|
||||||
|
ToggleWidescreen = SDL-0/Back & SDL-0/Y
|
||||||
|
OpenPauseMenu = SDL-0/Back & SDL-0/X
|
||||||
|
LoadSelectedSaveState = SDL-0/Back & SDL-0/LeftShoulder
|
||||||
|
SaveSelectedSaveState = SDL-0/Back & SDL-0/RightShoulder
|
||||||
|
SelectPreviousSaveStateSlot = SDL-0/Back & SDL-0/+RightY
|
||||||
|
SelectNextSaveStateSlot = SDL-0/Back & SDL-0/-RightY
|
||||||
|
ToggleFastForward = SDL-0/Back & SDL-0/+RightTrigger
|
||||||
|
PowerOff = SDL-0/Back & SDL-0/Start
|
||||||
|
Reset = SDL-0/Back & SDL-0/B
|
||||||
|
ChangeDisc = SDL-0/Back & SDL-0/-RightX
|
||||||
|
SwapMemoryCards = SDL-0/Back & SDL-0/+RightX
|
||||||
|
Rewind = SDL-0/Back & SDL-0/+LeftTrigger
|
||||||
|
|
||||||
|
|
||||||
|
[NoGUI]
|
||||||
|
WindowX = 0
|
||||||
|
WindowY = 0
|
||||||
|
WindowWidth = 1920
|
||||||
|
WindowHeight = 1152
|
||||||
|
|
||||||
|
|
||||||
|
[GameList]
|
||||||
|
RecursivePaths = /storage/roms/psx
|
|
@ -0,0 +1,316 @@
|
||||||
|
[Main]
|
||||||
|
SettingsVersion = 3
|
||||||
|
EmulationSpeed = 1.000000
|
||||||
|
FastForwardSpeed = 0.000000
|
||||||
|
TurboSpeed = 0.000000
|
||||||
|
SyncToHostRefreshRate = false
|
||||||
|
IncreaseTimerResolution = true
|
||||||
|
InhibitScreensaver = true
|
||||||
|
StartPaused = false
|
||||||
|
StartFullscreen = true
|
||||||
|
PauseOnFocusLoss = false
|
||||||
|
PauseOnMenu = true
|
||||||
|
SaveStateOnExit = true
|
||||||
|
CreateSaveStateBackups = true
|
||||||
|
CompressSaveStates = true
|
||||||
|
ConfirmPowerOff = true
|
||||||
|
LoadDevicesFromSaveStates = false
|
||||||
|
ApplyCompatibilitySettings = true
|
||||||
|
ApplyGameSettings = true
|
||||||
|
AutoLoadCheats = true
|
||||||
|
DisableAllEnhancements = false
|
||||||
|
RewindEnable = false
|
||||||
|
RewindFrequency = 10.000000
|
||||||
|
RewindSaveSlots = 10
|
||||||
|
RunaheadFrameCount = 0
|
||||||
|
|
||||||
|
|
||||||
|
[Console]
|
||||||
|
Region = Auto
|
||||||
|
Enable8MBRAM = false
|
||||||
|
|
||||||
|
|
||||||
|
[CPU]
|
||||||
|
ExecutionMode = Recompiler
|
||||||
|
OverclockEnable = false
|
||||||
|
OverclockNumerator = 1
|
||||||
|
OverclockDenominator = 1
|
||||||
|
RecompilerMemoryExceptions = false
|
||||||
|
RecompilerBlockLinking = true
|
||||||
|
RecompilerICache = false
|
||||||
|
FastmemMode = MMap
|
||||||
|
|
||||||
|
|
||||||
|
[GPU]
|
||||||
|
Renderer = OpenGL
|
||||||
|
Adapter =
|
||||||
|
ResolutionScale = 3
|
||||||
|
Multisamples = 1
|
||||||
|
UseDebugDevice = false
|
||||||
|
PerSampleShading = false
|
||||||
|
UseThread = true
|
||||||
|
ThreadedPresentation = true
|
||||||
|
UseSoftwareRendererForReadbacks = false
|
||||||
|
TrueColor = true
|
||||||
|
ScaledDithering = true
|
||||||
|
TextureFilter = Nearest
|
||||||
|
DownsampleMode = Disabled
|
||||||
|
DisableInterlacing = true
|
||||||
|
ForceNTSCTimings = false
|
||||||
|
WidescreenHack = false
|
||||||
|
ChromaSmoothing24Bit = false
|
||||||
|
PGXPEnable = false
|
||||||
|
PGXPCulling = true
|
||||||
|
PGXPTextureCorrection = true
|
||||||
|
PGXPVertexCache = false
|
||||||
|
PGXPCPU = false
|
||||||
|
PGXPPreserveProjFP = false
|
||||||
|
PGXPTolerance = -1.000000
|
||||||
|
PGXPDepthBuffer = false
|
||||||
|
PGXPDepthClearThreshold = 1228800.000000
|
||||||
|
|
||||||
|
|
||||||
|
[Display]
|
||||||
|
CropMode = Overscan
|
||||||
|
ActiveStartOffset = 0
|
||||||
|
ActiveEndOffset = 0
|
||||||
|
LineStartOffset = 0
|
||||||
|
LineEndOffset = 0
|
||||||
|
Force4_3For24Bit = false
|
||||||
|
AspectRatio = Auto (Game Native)
|
||||||
|
CustomAspectRatioNumerator = 0
|
||||||
|
LinearFiltering = true
|
||||||
|
IntegerScaling = false
|
||||||
|
Stretch = false
|
||||||
|
PostProcessing = false
|
||||||
|
ShowOSDMessages = true
|
||||||
|
ShowFPS = false
|
||||||
|
ShowSpeed = false
|
||||||
|
ShowResolution = false
|
||||||
|
ShowCPU = false
|
||||||
|
ShowGPU = false
|
||||||
|
ShowStatusIndicators = true
|
||||||
|
ShowInputs = false
|
||||||
|
ShowEnhancements = false
|
||||||
|
DisplayAllFrames = false
|
||||||
|
InternalResolutionScreenshots = false
|
||||||
|
VSync = false
|
||||||
|
MaxFPS = 0.000000
|
||||||
|
OSDScale = 100.000000
|
||||||
|
|
||||||
|
|
||||||
|
[CDROM]
|
||||||
|
ReadaheadSectors = 8
|
||||||
|
RegionCheck = false
|
||||||
|
LoadImageToRAM = false
|
||||||
|
LoadImagePatches = false
|
||||||
|
MuteCDAudio = false
|
||||||
|
ReadSpeedup = 1
|
||||||
|
SeekSpeedup = 1
|
||||||
|
|
||||||
|
|
||||||
|
[Audio]
|
||||||
|
Backend = Cubeb
|
||||||
|
Driver =
|
||||||
|
StretchMode = TimeStretch
|
||||||
|
BufferMS = 50
|
||||||
|
OutputLatencyMS = 20
|
||||||
|
OutputVolume = 100
|
||||||
|
FastForwardVolume = 100
|
||||||
|
OutputMuted = false
|
||||||
|
DumpOnBoot = false
|
||||||
|
|
||||||
|
|
||||||
|
[Hacks]
|
||||||
|
DMAMaxSliceTicks = 1000
|
||||||
|
DMAHaltTicks = 100
|
||||||
|
GPUFIFOSize = 16
|
||||||
|
GPUMaxRunAhead = 128
|
||||||
|
|
||||||
|
|
||||||
|
[BIOS]
|
||||||
|
PatchTTYEnable = false
|
||||||
|
PatchFastBoot = false
|
||||||
|
SearchDirectory = /storage/roms/bios
|
||||||
|
|
||||||
|
|
||||||
|
[Controller1]
|
||||||
|
Type = AnalogController
|
||||||
|
|
||||||
|
|
||||||
|
[Controller2]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Controller3]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Controller4]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Controller5]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Controller6]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Controller7]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Controller8]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[MemoryCards]
|
||||||
|
Card1Type = PerGameTitle
|
||||||
|
Card2Type = None
|
||||||
|
UsePlaylistTitle = true
|
||||||
|
Directory = memcards
|
||||||
|
|
||||||
|
|
||||||
|
[ControllerPorts]
|
||||||
|
MultitapMode = Disabled
|
||||||
|
PointerXScale = 8.000000
|
||||||
|
PointerYScale = 8.000000
|
||||||
|
PointerXInvert = false
|
||||||
|
PointerYInvert = false
|
||||||
|
|
||||||
|
|
||||||
|
[Cheevos]
|
||||||
|
Enabled = false
|
||||||
|
TestMode = false
|
||||||
|
UnofficialTestMode = false
|
||||||
|
UseFirstDiscFromPlaylist = true
|
||||||
|
RichPresence = false
|
||||||
|
ChallengeMode = false
|
||||||
|
|
||||||
|
|
||||||
|
[Logging]
|
||||||
|
LogLevel = Info
|
||||||
|
LogFilter =
|
||||||
|
LogToConsole = true
|
||||||
|
LogToDebug = false
|
||||||
|
LogToWindow = false
|
||||||
|
LogToFile = false
|
||||||
|
|
||||||
|
|
||||||
|
[Debug]
|
||||||
|
ShowVRAM = false
|
||||||
|
DumpCPUToVRAMCopies = false
|
||||||
|
DumpVRAMToCPUCopies = false
|
||||||
|
ShowGPUState = false
|
||||||
|
ShowCDROMState = false
|
||||||
|
ShowSPUState = false
|
||||||
|
ShowTimersState = false
|
||||||
|
ShowMDECState = false
|
||||||
|
ShowDMAState = false
|
||||||
|
|
||||||
|
|
||||||
|
[TextureReplacements]
|
||||||
|
EnableVRAMWriteReplacements = false
|
||||||
|
PreloadTextures = false
|
||||||
|
DumpVRAMWrites = false
|
||||||
|
DumpVRAMWriteForceAlphaChannel = true
|
||||||
|
DumpVRAMWriteWidthThreshold = 128
|
||||||
|
DumpVRAMWriteHeightThreshold = 128
|
||||||
|
|
||||||
|
|
||||||
|
[Folders]
|
||||||
|
Cache = cache
|
||||||
|
Cheats = cheats
|
||||||
|
Covers = covers
|
||||||
|
Dumps = dump
|
||||||
|
GameSettings = gamesettings
|
||||||
|
InputProfiles = inputprofiles
|
||||||
|
SaveStates = savestates
|
||||||
|
Screenshots = screenshots
|
||||||
|
Shaders = shaders
|
||||||
|
Textures = textures
|
||||||
|
|
||||||
|
|
||||||
|
[InputSources]
|
||||||
|
SDL = true
|
||||||
|
SDLControllerEnhancedMode = false
|
||||||
|
Evdev = false
|
||||||
|
XInput = false
|
||||||
|
RawInput = false
|
||||||
|
|
||||||
|
|
||||||
|
[Pad1]
|
||||||
|
Type = AnalogController
|
||||||
|
Up = SDL-0/DPadUp
|
||||||
|
Right = SDL-0/DPadRight
|
||||||
|
Down = SDL-0/DPadDown
|
||||||
|
Left = SDL-0/DPadLeft
|
||||||
|
Triangle = SDL-0/Y
|
||||||
|
Circle = SDL-0/B
|
||||||
|
Cross = SDL-0/A
|
||||||
|
Square = SDL-0/X
|
||||||
|
Select = SDL-0/Back
|
||||||
|
Start = SDL-0/Start
|
||||||
|
L1 = SDL-0/LeftShoulder
|
||||||
|
R1 = SDL-0/RightShoulder
|
||||||
|
L2 = SDL-0/+LeftTrigger
|
||||||
|
R2 = SDL-0/+RightTrigger
|
||||||
|
L3 = SDL-0/LeftStick
|
||||||
|
R3 = SDL-0/RightStick
|
||||||
|
LLeft = SDL-0/-LeftX
|
||||||
|
LRight = SDL-0/+LeftX
|
||||||
|
LDown = SDL-0/+LeftY
|
||||||
|
LUp = SDL-0/-LeftY
|
||||||
|
RLeft = SDL-0/-RightX & SDL-0/-RightY
|
||||||
|
RRight = SDL-0/+RightX & SDL-0/+RightY
|
||||||
|
RDown = SDL-0/+RightY
|
||||||
|
RUp = SDL-0/-RightY
|
||||||
|
|
||||||
|
|
||||||
|
[Pad2]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Pad3]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Pad4]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Pad5]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Pad6]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Pad7]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Pad8]
|
||||||
|
Type = None
|
||||||
|
|
||||||
|
|
||||||
|
[Hotkeys]
|
||||||
|
Screenshot = SDL-0/Back & SDL-0/B
|
||||||
|
ToggleFullscreen = SDL-0/Back & SDL-0/X
|
||||||
|
OpenPauseMenu = SDL-0/Back & SDL-0/Y
|
||||||
|
LoadSelectedSaveState = SDL-0/Back & SDL-0/LeftShoulder
|
||||||
|
SaveSelectedSaveState = SDL-0/Back & SDL-0/RightShoulder
|
||||||
|
SelectPreviousSaveStateSlot = SDL-0/Back & SDL-0/+RightY
|
||||||
|
SelectNextSaveStateSlot = SDL-0/Back & SDL-0/-RightY
|
||||||
|
ToggleFastForward = SDL-0/Back & SDL-0/+RightTrigger
|
||||||
|
PowerOff = SDL-0/Back & SDL-0/Start
|
||||||
|
Reset = SDL-0/Back & SDL-0/A
|
||||||
|
Rewind = SDL-0/Back & SDL-0/+LeftTrigger
|
||||||
|
SwapMemoryCards = SDL-0/Back & SDL-0/-RightX & SDL-0/-RightY
|
||||||
|
ChangeDisc = SDL-0/Back & SDL-0/+RightX
|
||||||
|
|
||||||
|
[GameList]
|
||||||
|
RecursivePaths = /storage/roms/psx
|
|
@ -1,40 +1,55 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
# Copyright (C) 2021-present Shanti Gilbert (https://github.com/shantigilbert)
|
|
||||||
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
|
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
|
||||||
|
|
||||||
PKG_NAME="duckstationsa"
|
PKG_NAME="duckstationsa"
|
||||||
PKG_VERSION="5ab5070d73f1acc51e064bd96be4ba6ce3c06f5c"
|
|
||||||
PKG_LICENSE="GPLv3"
|
PKG_LICENSE="GPLv3"
|
||||||
|
PKG_DEPENDS_TARGET="toolchain SDL2 nasm:host pulseaudio openssl libidn2 nghttp2 zlib curl libevdev"
|
||||||
PKG_SITE="https://github.com/stenzek/duckstation"
|
PKG_SITE="https://github.com/stenzek/duckstation"
|
||||||
PKG_URL="${PKG_SITE}.git"
|
PKG_URL="${PKG_SITE}.git"
|
||||||
PKG_DEPENDS_TARGET="toolchain SDL2 nasm:host pulseaudio openssl libidn2 nghttp2 zlib curl libevdev"
|
|
||||||
PKG_SECTION="libretro"
|
|
||||||
PKG_SHORTDESC="Fast PlayStation 1 emulator for x86-64/AArch32/AArch64 "
|
PKG_SHORTDESC="Fast PlayStation 1 emulator for x86-64/AArch32/AArch64 "
|
||||||
PKG_TOOLCHAIN="cmake"
|
|
||||||
PKG_PATCH_DIRS+=" ${DEVICE}"
|
case ${DEVICE} in
|
||||||
|
RG552|handheld)
|
||||||
|
PKG_VERSION="ef3ad91ad0969013bc29ad1276c13aa2842ecc2b"
|
||||||
|
PKG_PATCH_DIRS+=" new"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
PKG_VERSION="5ab5070d73f1acc51e064bd96be4ba6ce3c06f5c"
|
||||||
|
PKG_PATCH_DIRS+=" legacy"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
if [ ! "${OPENGL}" = "no" ]; then
|
if [ ! "${OPENGL}" = "no" ]; then
|
||||||
PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd"
|
PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd"
|
||||||
|
PKG_CMAKE_OPTS_TARGET+=" -DUSE_X11=OFF"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${OPENGLES_SUPPORT}" = yes ]; then
|
if [ "${OPENGLES_SUPPORT}" = yes ]; then
|
||||||
PKG_DEPENDS_TARGET+=" ${OPENGLES}"
|
PKG_DEPENDS_TARGET+=" ${OPENGLES}"
|
||||||
PKG_CMAKE_OPTS_TARGET+=" -DUSE_EGL=ON -DUSE_DRMKMS=ON -DUSE_MALI=OFF"
|
PKG_CMAKE_OPTS_TARGET+=" -DUSE_X11=OFF \
|
||||||
|
-DUSE_DRMKMS=ON \
|
||||||
|
-DENABLE_EGL=ON \
|
||||||
|
-DUSE_MALI=OFF"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "${DISPLAYSERVER}" = "wl" ]; then
|
||||||
|
PKG_DEPENDS_TARGET+=" wayland ${WINDOWMANAGER} xorg-server xrandr libXi"
|
||||||
|
PKG_CMAKE_OPTS_TARGET+=" -DUSE_X11=ON"
|
||||||
|
fi
|
||||||
|
|
||||||
pre_configure_target() {
|
pre_configure_target() {
|
||||||
PKG_CMAKE_OPTS_TARGET+=" -DANDROID=OFF \
|
PKG_CMAKE_OPTS_TARGET+=" -DANDROID=OFF \
|
||||||
-DENABLE_DISCORD_PRESENCE=OFF \
|
-DENABLE_DISCORD_PRESENCE=OFF \
|
||||||
-DUSE_X11=OFF \
|
-DBUILD_QT_FRONTEND=OFF \
|
||||||
-DBUILD_QT_FRONTEND=OFF \
|
-DBUILD_NOGUI_FRONTEND=ON \
|
||||||
-DBUILD_NOGUI_FRONTEND=ON \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
-DBUILD_SHARED_LIBS=OFF \
|
-DUSE_SDL2=ON \
|
||||||
-DUSE_SDL2=ON \
|
-DENABLE_CHEEVOS=ON \
|
||||||
-DENABLE_CHEEVOS=ON \
|
-DUSE_FBDEV=OFF \
|
||||||
-DUSE_FBDEV=OFF \
|
-DUSE_WAYLAND=OFF \
|
||||||
-DUSE_EVDEV=ON"
|
-DENABLE_VULKAN=OFF
|
||||||
|
-DUSE_EVDEV=ON"
|
||||||
}
|
}
|
||||||
|
|
||||||
makeinstall_target() {
|
makeinstall_target() {
|
||||||
|
@ -44,15 +59,10 @@ makeinstall_target() {
|
||||||
|
|
||||||
mkdir -p ${INSTALL}/usr/config/duckstation
|
mkdir -p ${INSTALL}/usr/config/duckstation
|
||||||
cp -rf ${PKG_BUILD}/.${TARGET_NAME}/bin/* ${INSTALL}/usr/config/duckstation
|
cp -rf ${PKG_BUILD}/.${TARGET_NAME}/bin/* ${INSTALL}/usr/config/duckstation
|
||||||
cp -rf ${PKG_DIR}/config/* ${INSTALL}/usr/config/duckstation
|
cp -rf ${PKG_DIR}/config/${DEVICE}/* ${INSTALL}/usr/config/duckstation
|
||||||
|
|
||||||
rm -rf ${INSTALL}/usr/config/duckstation/duckstation-nogui
|
rm -rf ${INSTALL}/usr/config/duckstation/duckstation-nogui
|
||||||
rm -rf ${INSTALL}/usr/config/duckstation/common-tests
|
rm -rf ${INSTALL}/usr/config/duckstation/common-tests
|
||||||
|
|
||||||
chmod +x ${INSTALL}/usr/bin/duckstation.sh
|
chmod +x ${INSTALL}/usr/bin/start_duckstation.sh
|
||||||
|
|
||||||
if [[ "${DEVICE}" != RG552 ]]
|
|
||||||
then
|
|
||||||
sed -i '/Rotate = 1/d' ${INSTALL}/usr/config/duckstation/settings.ini
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
RG503
|
|
|
@ -1,129 +0,0 @@
|
||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
||||||
index a02270e7..dbb48953 100644
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -40,6 +40,7 @@ if(SUPPORTS_WAYLAND)
|
|
||||||
endif()
|
|
||||||
if((LINUX OR FREEBSD) OR ANDROID)
|
|
||||||
option(USE_EGL "Support EGL OpenGL context creation" ON)
|
|
||||||
+ option(USE_MALI "Link with libmali for EGL support" OFF)
|
|
||||||
endif()
|
|
||||||
if((LINUX OR FREEBSD) AND NOT ANDROID)
|
|
||||||
option(USE_DRMKMS "Support DRM/KMS OpenGL contexts" OFF)
|
|
||||||
@@ -232,7 +233,7 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86" OR ${CMAKE_SYSTEM_PROCESSOR} STR
|
|
||||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm64")
|
|
||||||
set(CPU_ARCH "aarch64")
|
|
||||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "armv7-a" OR
|
|
||||||
- ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "armv7l")
|
|
||||||
+ ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "armv7l" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "armv8l")
|
|
||||||
set(CPU_ARCH "aarch32")
|
|
||||||
if(ANDROID)
|
|
||||||
# Force ARM mode, since apparently ANDROID_ARM_MODE isn't working..
|
|
||||||
@@ -240,8 +241,13 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm" OR ${CMAKE_SYSTEM_PROCESSOR} STR
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -marm")
|
|
||||||
else()
|
|
||||||
# Enable NEON.
|
|
||||||
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -marm -march=armv7-a")
|
|
||||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -marm -march=armv7-a")
|
|
||||||
+ if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "armv8l")
|
|
||||||
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -marm -mtune=cortex-a72")
|
|
||||||
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -marm -mtune=cortex-a72")
|
|
||||||
+ else()
|
|
||||||
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -marm -march=armv7-a")
|
|
||||||
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -marm -march=armv7-a")
|
|
||||||
+ endif()
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "Unknown system processor: " ${CMAKE_SYSTEM_PROCESSOR})
|
|
||||||
diff -u -r /home/romain/duckstation/CMakeModules/FindEGL.cmake ./CMakeModules/FindEGL.cmake
|
|
||||||
--- /home/romain/duckstation/CMakeModules/FindEGL.cmake 2021-02-13 00:29:48.693304818 +0100
|
|
||||||
+++ ./CMakeModules/FindEGL.cmake 2021-02-13 00:45:35.564462969 +0100
|
|
||||||
@@ -86,6 +86,17 @@
|
|
||||||
${PKG_EGL_LIBRARY_DIRS}
|
|
||||||
)
|
|
||||||
|
|
||||||
+if(USE_MALI)
|
|
||||||
+pkg_check_modules(PKG_MALI QUIET mali)
|
|
||||||
+find_library(MALI_LIBRARY
|
|
||||||
+ NAMES
|
|
||||||
+ mali
|
|
||||||
+ HINTS
|
|
||||||
+ ${PKG_MALI_LIBRARY_DIRS}
|
|
||||||
+)
|
|
||||||
+endif()
|
|
||||||
+
|
|
||||||
+
|
|
||||||
# NB: We do *not* use the version information from pkg-config, as that
|
|
||||||
# is the implementation version (eg: the Mesa version)
|
|
||||||
if(EGL_INCLUDE_DIR)
|
|
||||||
@@ -117,7 +128,11 @@
|
|
||||||
|
|
||||||
cmake_push_check_state(RESET)
|
|
||||||
list(APPEND CMAKE_REQUIRED_LIBRARIES "${EGL_LIBRARY}")
|
|
||||||
+if(USE_MALI)
|
|
||||||
+list(APPEND CMAKE_REQUIRED_LIBRARIES "${MALI_LIBRARY}")
|
|
||||||
+endif()
|
|
||||||
list(APPEND CMAKE_REQUIRED_INCLUDES "${EGL_INCLUDE_DIR}")
|
|
||||||
+list(APPEND CMAKE_REQUIRED_DEFINITIONS "-DEGL_NO_X11 -DUSE_X11=NO")
|
|
||||||
|
|
||||||
check_cxx_source_compiles("
|
|
||||||
#include <EGL/egl.h>
|
|
||||||
@@ -161,7 +176,11 @@
|
|
||||||
mark_as_advanced(EGL_LIBRARY EGL_INCLUDE_DIR HAVE_EGL)
|
|
||||||
|
|
||||||
# compatibility variables
|
|
||||||
+if (USE_MALI)
|
|
||||||
+set(EGL_LIBRARIES ${EGL_LIBRARY} ${MALI_LIBRARY})
|
|
||||||
+else()
|
|
||||||
set(EGL_LIBRARIES ${EGL_LIBRARY})
|
|
||||||
+endif()
|
|
||||||
set(EGL_INCLUDE_DIRS ${EGL_INCLUDE_DIR})
|
|
||||||
set(EGL_VERSION_STRING ${EGL_VERSION})
|
|
||||||
|
|
||||||
Seulement dans ./CMakeModules: FindEGL.cmake.orig
|
|
||||||
diff -u -r /home/romain/duckstation/dep/glad/CMakeLists.txt ./dep/glad/CMakeLists.txt
|
|
||||||
--- /home/romain/duckstation/dep/glad/CMakeLists.txt 2021-02-13 00:29:48.765302377 +0100
|
|
||||||
+++ ./dep/glad/CMakeLists.txt 2021-02-13 00:42:20.848512028 +0100
|
|
||||||
@@ -17,8 +17,9 @@
|
|
||||||
target_sources(glad PRIVATE src/glad_wgl.c)
|
|
||||||
else()
|
|
||||||
if(USE_EGL)
|
|
||||||
+ target_compile_definitions(glad PRIVATE -DEGL_NO_X11)
|
|
||||||
target_sources(glad PRIVATE src/glad_egl.c)
|
|
||||||
- target_link_libraries(glad PRIVATE EGL::EGL)
|
|
||||||
+ target_link_libraries(glad PRIVATE EGL)
|
|
||||||
endif()
|
|
||||||
if(USE_X11)
|
|
||||||
target_sources(glad PRIVATE src/glad_glx.c)
|
|
||||||
diff -u -r /home/romain/duckstation/src/common/CMakeLists.txt ./src/common/CMakeLists.txt
|
|
||||||
--- /home/romain/duckstation/src/common/CMakeLists.txt 2021-02-13 00:29:48.885298307 +0100
|
|
||||||
+++ ./src/common/CMakeLists.txt 2021-02-13 00:42:20.848512028 +0100
|
|
||||||
@@ -175,12 +175,13 @@
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
if(USE_DRMKMS)
|
|
||||||
+ target_compile_definitions(common PRIVATE "-DEGL_NO_X11=1")
|
|
||||||
target_compile_definitions(common PRIVATE "-DUSE_GBM=1")
|
|
||||||
target_sources(common PRIVATE
|
|
||||||
gl/context_egl_gbm.cpp
|
|
||||||
gl/context_egl_gbm.h
|
|
||||||
)
|
|
||||||
- target_link_libraries(common PUBLIC GBM::GBM)
|
|
||||||
+ target_link_libraries(common PUBLIC gbm EGL)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
diff -u -r /home/romain/duckstation/src/duckstation-nogui/CMakeLists.txt ./src/duckstation-nogui/CMakeLists.txt
|
|
||||||
--- /home/romain/duckstation/src/duckstation-nogui/CMakeLists.txt 2021-02-13 00:29:48.901297765 +0100
|
|
||||||
+++ ./src/duckstation-nogui/CMakeLists.txt 2021-02-13 00:56:19.913224314 +0100
|
|
||||||
@@ -29,6 +29,10 @@
|
|
||||||
target_compile_definitions(duckstation-nogui PRIVATE "-DUSE_LIBEVDEV=1")
|
|
||||||
target_include_directories(duckstation-nogui PRIVATE ${LIBEVDEV_INCLUDE_DIRS})
|
|
||||||
target_link_libraries(duckstation-nogui PRIVATE ${LIBEVDEV_LIBRARIES})
|
|
||||||
+if (USE_MALI)
|
|
||||||
+ target_link_libraries(duckstation-nogui PRIVATE ${MALI_LIBRARY})
|
|
||||||
+endif()
|
|
||||||
+
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32)
|
|
|
@ -1,14 +0,0 @@
|
||||||
diff --git a/src/common/file_system.cpp b/src/common/file_system.cpp
|
|
||||||
index ceb2f08..0fa5a04 100644
|
|
||||||
--- a/src/common/file_system.cpp
|
|
||||||
+++ b/src/common/file_system.cpp
|
|
||||||
@@ -683,6 +683,9 @@ std::string GetDisplayNameFromPath(const std::string_view& path)
|
|
||||||
|
|
||||||
std::string_view GetPathDirectory(const std::string_view& path)
|
|
||||||
{
|
|
||||||
+
|
|
||||||
+ return "/storage/.config/duckstation";
|
|
||||||
+
|
|
||||||
std::string::size_type pos = GetLastSeperatorPosition(path, false);
|
|
||||||
if (pos == std::string_view::npos)
|
|
||||||
return {};
|
|
|
@ -1,13 +0,0 @@
|
||||||
diff --git a/src/duckstation-qt/qthostinterface.cpp b/src/duckstation-qt/qthostinterface.cpp
|
|
||||||
index 8052278..4f338d7 100644
|
|
||||||
--- a/src/duckstation-qt/qthostinterface.cpp
|
|
||||||
+++ b/src/duckstation-qt/qthostinterface.cpp
|
|
||||||
@@ -137,7 +137,7 @@ void QtHostInterface::installTranslator()
|
|
||||||
const QString language(QString::fromStdString(GetStringSettingValue("Main", "Language", "en")));
|
|
||||||
|
|
||||||
// install the base qt translation first
|
|
||||||
- const QString base_dir(QStringLiteral("%1/translations").arg(qApp->applicationDirPath()));
|
|
||||||
+ const QString base_dir(QStringLiteral("%1/translations").arg("/storage/.config/duckstation"));
|
|
||||||
const QString base_path(QStringLiteral("%1/qtbase_%2.qm").arg(base_dir).arg(language));
|
|
||||||
if (QFile::exists(base_path))
|
|
||||||
{
|
|
|
@ -1,389 +0,0 @@
|
||||||
diff --git a/src/common/gl/program.h b/src/common/gl/program.h
|
|
||||||
index d877a462..3fa9a7a7 100644
|
|
||||||
--- a/src/common/gl/program.h
|
|
||||||
+++ b/src/common/gl/program.h
|
|
||||||
@@ -40,6 +40,7 @@ public:
|
|
||||||
void Destroy();
|
|
||||||
|
|
||||||
int RegisterUniform(const char* name);
|
|
||||||
+ GLint GetUniformLocation(int index) const { return m_uniform_locations[index]; }
|
|
||||||
void Uniform1ui(int index, u32 x) const;
|
|
||||||
void Uniform2ui(int index, u32 x, u32 y) const;
|
|
||||||
void Uniform3ui(int index, u32 x, u32 y, u32 z) const;
|
|
||||||
@@ -97,6 +98,6 @@ private:
|
|
||||||
GLuint m_fragment_shader_id = 0;
|
|
||||||
|
|
||||||
std::vector<GLint> m_uniform_locations;
|
|
||||||
-};
|
|
||||||
+}; // namespace GL
|
|
||||||
|
|
||||||
} // namespace GL
|
|
||||||
\ No newline at end of file
|
|
||||||
diff --git a/src/core/host_display.cpp b/src/core/host_display.cpp
|
|
||||||
index d0469fd3..790be30f 100644
|
|
||||||
--- a/src/core/host_display.cpp
|
|
||||||
+++ b/src/core/host_display.cpp
|
|
||||||
@@ -103,6 +103,11 @@ bool HostDisplay::GetHostRefreshRate(float* refresh_rate)
|
|
||||||
return WindowInfo::QueryRefreshRateForWindow(m_window_info, refresh_rate);
|
|
||||||
}
|
|
||||||
|
|
||||||
+bool HostDisplay::SetDisplayRotation(Rotation rotation)
|
|
||||||
+{
|
|
||||||
+ return false;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void HostDisplay::SetSoftwareCursor(std::unique_ptr<HostDisplayTexture> texture, float scale /*= 1.0f*/)
|
|
||||||
{
|
|
||||||
m_cursor_texture = std::move(texture);
|
|
||||||
diff --git a/src/core/host_display.h b/src/core/host_display.h
|
|
||||||
index ea01f846..b5a3563e 100644
|
|
||||||
--- a/src/core/host_display.h
|
|
||||||
+++ b/src/core/host_display.h
|
|
||||||
@@ -60,6 +60,15 @@ public:
|
|
||||||
std::vector<std::string> fullscreen_modes;
|
|
||||||
};
|
|
||||||
|
|
||||||
+ enum class Rotation
|
|
||||||
+ {
|
|
||||||
+ None,
|
|
||||||
+ R90Degrees,
|
|
||||||
+ R180Degrees,
|
|
||||||
+ R270Degrees,
|
|
||||||
+ Count
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
virtual ~HostDisplay();
|
|
||||||
|
|
||||||
ALWAYS_INLINE const WindowInfo& GetWindowInfo() const { return m_window_info; }
|
|
||||||
@@ -201,6 +210,7 @@ public:
|
|
||||||
virtual bool SetDisplayPixels(HostDisplayPixelFormat format, u32 width, u32 height, const void* buffer, u32 pitch);
|
|
||||||
|
|
||||||
virtual bool GetHostRefreshRate(float* refresh_rate);
|
|
||||||
+ virtual bool SetDisplayRotation(Rotation rotation);
|
|
||||||
|
|
||||||
void SetDisplayLinearFiltering(bool enabled) { m_display_linear_filtering = enabled; }
|
|
||||||
void SetDisplayTopMargin(s32 height) { m_display_top_margin = height; }
|
|
||||||
@@ -283,6 +293,7 @@ protected:
|
|
||||||
|
|
||||||
s32 m_display_top_margin = 0;
|
|
||||||
Alignment m_display_alignment = Alignment::Center;
|
|
||||||
+ Rotation m_display_rotation = Rotation::None;
|
|
||||||
|
|
||||||
std::unique_ptr<HostDisplayTexture> m_cursor_texture;
|
|
||||||
float m_cursor_texture_scale = 1.0f;
|
|
||||||
diff --git a/src/core/settings.cpp b/src/core/settings.cpp
|
|
||||||
index 833b6b9f..4381b848 100644
|
|
||||||
--- a/src/core/settings.cpp
|
|
||||||
+++ b/src/core/settings.cpp
|
|
||||||
@@ -230,6 +230,7 @@ void Settings::Load(SettingsInterface& si)
|
|
||||||
display_line_start_offset = static_cast<s8>(si.GetIntValue("Display", "LineStartOffset", 0));
|
|
||||||
display_line_end_offset = static_cast<s8>(si.GetIntValue("Display", "LineEndOffset", 0));
|
|
||||||
display_linear_filtering = si.GetBoolValue("Display", "LinearFiltering", true);
|
|
||||||
+ display_rotate = static_cast<s8>(si.GetIntValue("Display", "Rotate", 0));
|
|
||||||
display_integer_scaling = si.GetBoolValue("Display", "IntegerScaling", false);
|
|
||||||
display_stretch = si.GetBoolValue("Display", "Stretch", false);
|
|
||||||
display_post_processing = si.GetBoolValue("Display", "PostProcessing", false);
|
|
||||||
diff --git a/src/core/settings.h b/src/core/settings.h
|
|
||||||
index e837f8b2..199ecac7 100644
|
|
||||||
--- a/src/core/settings.h
|
|
||||||
+++ b/src/core/settings.h
|
|
||||||
@@ -136,6 +136,7 @@ struct Settings
|
|
||||||
s16 display_active_end_offset = 0;
|
|
||||||
s8 display_line_start_offset = 0;
|
|
||||||
s8 display_line_end_offset = 0;
|
|
||||||
+ s8 display_rotate = 0;
|
|
||||||
bool display_force_4_3_for_24bit = false;
|
|
||||||
bool gpu_24bit_chroma_smoothing = false;
|
|
||||||
bool display_linear_filtering = true;
|
|
||||||
diff --git a/src/duckstation-nogui/nogui_host_interface.cpp b/src/duckstation-nogui/nogui_host_interface.cpp
|
|
||||||
index 638af4ea..6cef355a 100644
|
|
||||||
--- a/src/duckstation-nogui/nogui_host_interface.cpp
|
|
||||||
+++ b/src/duckstation-nogui/nogui_host_interface.cpp
|
|
||||||
@@ -136,6 +136,15 @@ bool NoGUIHostInterface::CreateDisplay(bool fullscreen)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ switch(g_settings.display_rotate & 3)
|
|
||||||
+ {
|
|
||||||
+ case 1: m_display->SetDisplayRotation(HostDisplay::Rotation::R90Degrees);
|
|
||||||
+ case 2: m_display->SetDisplayRotation(HostDisplay::Rotation::R180Degrees);
|
|
||||||
+ case 3: m_display->SetDisplayRotation(HostDisplay::Rotation::R270Degrees);
|
|
||||||
+ case 0:
|
|
||||||
+ default: break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (fullscreen)
|
|
||||||
SetFullscreen(true);
|
|
||||||
|
|
||||||
diff --git a/src/frontend-common/opengl_host_display.cpp b/src/frontend-common/opengl_host_display.cpp
|
|
||||||
index 7092b455..ff1c7939 100644
|
|
||||||
--- a/src/frontend-common/opengl_host_display.cpp
|
|
||||||
+++ b/src/frontend-common/opengl_host_display.cpp
|
|
||||||
@@ -203,6 +203,77 @@ void OpenGLHostDisplay::UpdateDisplayPixelsTextureFilter()
|
|
||||||
m_display_texture_is_linear_filtered = m_display_linear_filtering;
|
|
||||||
}
|
|
||||||
|
|
||||||
+bool OpenGLHostDisplay::SetDisplayRotation(Rotation rotation)
|
|
||||||
+{
|
|
||||||
+ m_display_rotation = rotation;
|
|
||||||
+ UpdateDisplayRotationFramebuffer();
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void OpenGLHostDisplay::UpdateDisplayRotationFramebuffer()
|
|
||||||
+{
|
|
||||||
+ m_window_info.surface_width = m_gl_context->GetSurfaceWidth();
|
|
||||||
+ m_window_info.surface_height = m_gl_context->GetSurfaceHeight();
|
|
||||||
+
|
|
||||||
+ if (m_display_rotation_framebuffer_fbo != 0)
|
|
||||||
+ {
|
|
||||||
+ glDeleteFramebuffers(1, &m_display_rotation_framebuffer_fbo);
|
|
||||||
+ m_display_rotation_framebuffer_fbo = 0;
|
|
||||||
+ glDeleteTextures(1, &m_display_rotation_framebuffer_texture);
|
|
||||||
+ m_display_rotation_framebuffer_texture = 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (m_display_rotation != Rotation::None)
|
|
||||||
+ {
|
|
||||||
+ if (m_display_rotation_framebuffer_texture == 0)
|
|
||||||
+ glGenTextures(1, &m_display_rotation_framebuffer_texture);
|
|
||||||
+ if (m_display_rotation_framebuffer_fbo == 0)
|
|
||||||
+ glGenFramebuffers(1, &m_display_rotation_framebuffer_fbo);
|
|
||||||
+
|
|
||||||
+ if (m_display_rotation == Rotation::R90Degrees || m_display_rotation == Rotation::R270Degrees)
|
|
||||||
+ std::swap(m_window_info.surface_width, m_window_info.surface_height);
|
|
||||||
+
|
|
||||||
+ GLint old_texture;
|
|
||||||
+ glGetIntegerv(GL_TEXTURE_BINDING_2D, &old_texture);
|
|
||||||
+
|
|
||||||
+ glBindTexture(GL_TEXTURE_2D, m_display_rotation_framebuffer_texture);
|
|
||||||
+
|
|
||||||
+ if (GLAD_GL_ARB_texture_storage || GLAD_GL_ES_VERSION_3_1)
|
|
||||||
+ {
|
|
||||||
+ glTexStorage2D(GL_TEXTURE_2D, 1, GL_RGBA8, m_window_info.surface_width, m_window_info.surface_height);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, m_window_info.surface_width, m_window_info.surface_height, 0, GL_RGBA,
|
|
||||||
+ GL_UNSIGNED_BYTE, nullptr);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
|
||||||
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
|
||||||
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
|
||||||
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
|
||||||
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 1);
|
|
||||||
+
|
|
||||||
+ const GLenum framebuffer_binding = m_use_gles2_draw_path ? GL_FRAMEBUFFER : GL_DRAW_FRAMEBUFFER;
|
|
||||||
+ GLint old_framebuffer;
|
|
||||||
+ glGetIntegerv(m_use_gles2_draw_path ? GL_FRAMEBUFFER_BINDING : GL_DRAW_FRAMEBUFFER_BINDING, &old_framebuffer);
|
|
||||||
+
|
|
||||||
+ glBindFramebuffer(framebuffer_binding, m_display_rotation_framebuffer_fbo);
|
|
||||||
+ glFramebufferTexture2D(framebuffer_binding, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
|
|
||||||
+ m_display_rotation_framebuffer_texture, 0);
|
|
||||||
+ Assert(glCheckFramebufferStatus(framebuffer_binding) == GL_FRAMEBUFFER_COMPLETE);
|
|
||||||
+
|
|
||||||
+ glBindFramebuffer(framebuffer_binding, old_framebuffer);
|
|
||||||
+ glBindTexture(GL_TEXTURE_2D, old_texture);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (ImGui::GetCurrentContext())
|
|
||||||
+ {
|
|
||||||
+ ImGui::GetIO().DisplaySize =
|
|
||||||
+ ImVec2(static_cast<float>(m_window_info.surface_width), static_cast<float>(m_window_info.surface_height));
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
bool OpenGLHostDisplay::SupportsDisplayPixelFormat(HostDisplayPixelFormat format) const
|
|
||||||
{
|
|
||||||
const auto [gl_internal_format, gl_format, gl_type] = GetPixelFormatMapping(m_gl_context->IsGLES(), format);
|
|
||||||
@@ -435,7 +506,7 @@ bool OpenGLHostDisplay::InitializeRenderDevice(std::string_view shader_cache_dir
|
|
||||||
glDebugMessageCallback(GLDebugCallback, nullptr);
|
|
||||||
|
|
||||||
glEnable(GL_DEBUG_OUTPUT);
|
|
||||||
- // glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS);
|
|
||||||
+ glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!CreateResources())
|
|
||||||
@@ -484,7 +555,17 @@ bool OpenGLHostDisplay::ChangeRenderWindow(const WindowInfo& new_wi)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
- m_window_info = m_gl_context->GetWindowInfo();
|
|
||||||
+ m_window_info = new_wi;
|
|
||||||
+ m_window_info.surface_width = m_gl_context->GetSurfaceWidth();
|
|
||||||
+ m_window_info.surface_height = m_gl_context->GetSurfaceHeight();
|
|
||||||
+
|
|
||||||
+ if (ImGui::GetCurrentContext())
|
|
||||||
+ {
|
|
||||||
+ ImGui::GetIO().DisplaySize.x = static_cast<float>(m_window_info.surface_width);
|
|
||||||
+ ImGui::GetIO().DisplaySize.y = static_cast<float>(m_window_info.surface_height);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ UpdateDisplayRotationFramebuffer();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -494,7 +575,16 @@ void OpenGLHostDisplay::ResizeRenderWindow(s32 new_window_width, s32 new_window_
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_gl_context->ResizeSurface(static_cast<u32>(new_window_width), static_cast<u32>(new_window_height));
|
|
||||||
- m_window_info = m_gl_context->GetWindowInfo();
|
|
||||||
+ m_window_info.surface_width = m_gl_context->GetSurfaceWidth();
|
|
||||||
+ m_window_info.surface_height = m_gl_context->GetSurfaceHeight();
|
|
||||||
+
|
|
||||||
+ if (ImGui::GetCurrentContext())
|
|
||||||
+ {
|
|
||||||
+ ImGui::GetIO().DisplaySize.x = static_cast<float>(m_window_info.surface_width);
|
|
||||||
+ ImGui::GetIO().DisplaySize.y = static_cast<float>(m_window_info.surface_height);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ UpdateDisplayRotationFramebuffer();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool OpenGLHostDisplay::SupportsFullscreen() const
|
|
||||||
@@ -560,12 +650,17 @@ bool OpenGLHostDisplay::CreateResources()
|
|
||||||
{
|
|
||||||
static constexpr char fullscreen_quad_vertex_shader[] = R"(
|
|
||||||
uniform vec4 u_src_rect;
|
|
||||||
+uniform mat2 u_rotation_matrix;
|
|
||||||
out vec2 v_tex0;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
vec2 pos = vec2(float((gl_VertexID << 1) & 2), float(gl_VertexID & 2));
|
|
||||||
- v_tex0 = u_src_rect.xy + pos * u_src_rect.zw;
|
|
||||||
+ v_tex0 = (u_src_rect.xy + pos * u_src_rect.zw);
|
|
||||||
+
|
|
||||||
+ vec2 center = vec2(0.5, 0.5);
|
|
||||||
+ v_tex0 = center + (u_rotation_matrix * (v_tex0 - center));
|
|
||||||
+
|
|
||||||
gl_Position = vec4(pos * vec2(2.0f, -2.0f) + vec2(-1.0f, 1.0f), 0.0f, 1.0f);
|
|
||||||
}
|
|
||||||
)";
|
|
||||||
@@ -617,12 +712,14 @@ void main()
|
|
||||||
|
|
||||||
m_display_program.Bind();
|
|
||||||
m_display_program.RegisterUniform("u_src_rect");
|
|
||||||
+ m_display_program.RegisterUniform("u_rotation_matrix");
|
|
||||||
m_display_program.RegisterUniform("samp0");
|
|
||||||
- m_display_program.Uniform1i(1, 0);
|
|
||||||
+ m_display_program.Uniform1i(2, 0);
|
|
||||||
m_cursor_program.Bind();
|
|
||||||
m_cursor_program.RegisterUniform("u_src_rect");
|
|
||||||
+ m_cursor_program.RegisterUniform("u_rotation_matrix");
|
|
||||||
m_cursor_program.RegisterUniform("samp0");
|
|
||||||
- m_cursor_program.Uniform1i(1, 0);
|
|
||||||
+ m_cursor_program.Uniform1i(2, 0);
|
|
||||||
|
|
||||||
glGenVertexArrays(1, &m_display_vao);
|
|
||||||
|
|
||||||
@@ -749,7 +846,7 @@ bool OpenGLHostDisplay::Render()
|
|
||||||
}
|
|
||||||
|
|
||||||
glDisable(GL_SCISSOR_TEST);
|
|
||||||
- glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
|
|
||||||
+ glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_display_rotation_framebuffer_fbo);
|
|
||||||
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
@@ -760,6 +857,12 @@ bool OpenGLHostDisplay::Render()
|
|
||||||
|
|
||||||
RenderSoftwareCursor();
|
|
||||||
|
|
||||||
+ if (m_display_rotation_framebuffer_fbo != 0)
|
|
||||||
+ {
|
|
||||||
+ glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
|
|
||||||
+ RenderRotatedFramebuffer();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
m_gl_context->SwapBuffers();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
@@ -833,6 +936,13 @@ void OpenGLHostDisplay::RenderDisplay()
|
|
||||||
m_display_texture_view_width, m_display_texture_view_height, m_display_linear_filtering);
|
|
||||||
}
|
|
||||||
|
|
||||||
+static const std::array<std::array<float, 4>, static_cast<u32>(HostDisplay::Rotation::Count)> s_rotation_matrices = {{
|
|
||||||
+ {{1.0f, 0.0f, 0.0f, 1.0f}},
|
|
||||||
+ {{0.0f, 1.0f, 1.0f, 0.0f}},
|
|
||||||
+ {{-1.0f, 0.0f, 0.0f, 1.0f}},
|
|
||||||
+ {{0.0f, -1.0f, -1.0f, 0.0f}},
|
|
||||||
+}};
|
|
||||||
+
|
|
||||||
static void DrawFullscreenQuadES2(s32 tex_view_x, s32 tex_view_y, s32 tex_view_width, s32 tex_view_height,
|
|
||||||
s32 tex_width, s32 tex_height)
|
|
||||||
{
|
|
||||||
@@ -879,6 +989,8 @@ void OpenGLHostDisplay::RenderDisplay(s32 left, s32 bottom, s32 width, s32 heigh
|
|
||||||
(static_cast<float>(texture_view_y) + (position_adjust * flip_adjust)) / static_cast<float>(texture_height),
|
|
||||||
(static_cast<float>(texture_view_width) - size_adjust) / static_cast<float>(texture_width),
|
|
||||||
(static_cast<float>(texture_view_height) - (size_adjust * flip_adjust)) / static_cast<float>(texture_height));
|
|
||||||
+ glUniformMatrix2fv(m_display_program.GetUniformLocation(1), 1, GL_TRUE,
|
|
||||||
+ s_rotation_matrices[static_cast<u32>(HostDisplay::Rotation::None)].data());
|
|
||||||
glBindSampler(0, linear_filter ? m_display_linear_sampler : m_display_nearest_sampler);
|
|
||||||
glBindVertexArray(m_display_vao);
|
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 3);
|
|
||||||
@@ -894,6 +1006,30 @@ void OpenGLHostDisplay::RenderDisplay(s32 left, s32 bottom, s32 width, s32 heigh
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+void OpenGLHostDisplay::RenderRotatedFramebuffer()
|
|
||||||
+{
|
|
||||||
+ const u32 width = m_gl_context->GetSurfaceWidth();
|
|
||||||
+ const u32 height = m_gl_context->GetSurfaceHeight();
|
|
||||||
+
|
|
||||||
+ glViewport(0, 0, width, height);
|
|
||||||
+ glDisable(GL_BLEND);
|
|
||||||
+ glDisable(GL_CULL_FACE);
|
|
||||||
+ glDisable(GL_DEPTH_TEST);
|
|
||||||
+ glDisable(GL_SCISSOR_TEST);
|
|
||||||
+ glDepthMask(GL_FALSE);
|
|
||||||
+
|
|
||||||
+ glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
+
|
|
||||||
+ m_display_program.Bind();
|
|
||||||
+ m_display_program.Uniform4f(0, 0.0f, 0.0f, 1.0f, 1.0f);
|
|
||||||
+ glUniformMatrix2fv(m_display_program.GetUniformLocation(1), 1, GL_TRUE,
|
|
||||||
+ s_rotation_matrices[static_cast<u32>(m_display_rotation)].data());
|
|
||||||
+ glBindTexture(GL_TEXTURE_2D, m_display_rotation_framebuffer_texture);
|
|
||||||
+
|
|
||||||
+ glBindVertexArray(m_display_vao);
|
|
||||||
+ glDrawArrays(GL_TRIANGLES, 0, 3);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void OpenGLHostDisplay::RenderSoftwareCursor()
|
|
||||||
{
|
|
||||||
if (!HasSoftwareCursor())
|
|
||||||
diff --git a/src/frontend-common/opengl_host_display.h b/src/frontend-common/opengl_host_display.h
|
|
||||||
index 23e8d700..585ab4b5 100644
|
|
||||||
--- a/src/frontend-common/opengl_host_display.h
|
|
||||||
+++ b/src/frontend-common/opengl_host_display.h
|
|
||||||
@@ -51,6 +51,8 @@ public:
|
|
||||||
|
|
||||||
bool SetPostProcessingChain(const std::string_view& config) override;
|
|
||||||
|
|
||||||
+ bool SetDisplayRotation(Rotation rotation) override;
|
|
||||||
+
|
|
||||||
std::unique_ptr<HostDisplayTexture> CreateTexture(u32 width, u32 height, u32 layers, u32 levels, u32 samples,
|
|
||||||
HostDisplayPixelFormat format, const void* data, u32 data_stride,
|
|
||||||
bool dynamic = false) override;
|
|
||||||
@@ -83,6 +85,8 @@ protected:
|
|
||||||
|
|
||||||
void BindDisplayPixelsTexture();
|
|
||||||
void UpdateDisplayPixelsTextureFilter();
|
|
||||||
+ void UpdateDisplayRotationFramebuffer();
|
|
||||||
+ void RenderRotatedFramebuffer();
|
|
||||||
|
|
||||||
void RenderDisplay();
|
|
||||||
void RenderImGui();
|
|
||||||
@@ -121,6 +125,9 @@ protected:
|
|
||||||
u32 m_display_pixels_texture_pbo_map_size = 0;
|
|
||||||
std::vector<u8> m_gles_pixels_repack_buffer;
|
|
||||||
|
|
||||||
+ GLuint m_display_rotation_framebuffer_texture = 0;
|
|
||||||
+ GLuint m_display_rotation_framebuffer_fbo = 0;
|
|
||||||
+
|
|
||||||
PostProcessingChain m_post_processing_chain;
|
|
||||||
GL::Texture m_post_processing_input_texture;
|
|
||||||
std::unique_ptr<GL::StreamBuffer> m_post_processing_ubo;
|
|
|
@ -1,110 +0,0 @@
|
||||||
diff --git a/src/frontend-common/sdl_controller_interface.cpp b/src/frontend-common/sdl_controller_interface.cpp
|
|
||||||
index 20e81daf..1deac2ce 100644
|
|
||||||
--- a/src/frontend-common/sdl_controller_interface.cpp
|
|
||||||
+++ b/src/frontend-common/sdl_controller_interface.cpp
|
|
||||||
@@ -6,6 +6,7 @@
|
|
||||||
#include "core/host_interface.h"
|
|
||||||
#include "core/system.h"
|
|
||||||
#include "sdl_initializer.h"
|
|
||||||
+#include "fullscreen_ui.h"
|
|
||||||
#include <SDL.h>
|
|
||||||
#include <cmath>
|
|
||||||
Log_SetChannel(SDLControllerInterface);
|
|
||||||
@@ -93,6 +94,8 @@ void SDLControllerInterface::PollEvents()
|
|
||||||
|
|
||||||
bool SDLControllerInterface::ProcessSDLEvent(const SDL_Event* event)
|
|
||||||
{
|
|
||||||
+ if (m_slots < 0) { m_host_interface->AddOSDMessage("State Slot set to #0", 5.f); m_slots = 0; }
|
|
||||||
+
|
|
||||||
switch (event->type)
|
|
||||||
{
|
|
||||||
case SDL_CONTROLLERDEVICEADDED:
|
|
||||||
@@ -204,6 +207,7 @@ bool SDLControllerInterface::OpenGameController(int index)
|
|
||||||
cd.joystick_id = joystick_id;
|
|
||||||
cd.haptic_left_right_effect = -1;
|
|
||||||
cd.game_controller = gcontroller;
|
|
||||||
+ cd.hotkey_down = false;
|
|
||||||
|
|
||||||
#if SDL_VERSION_ATLEAST(2, 0, 9)
|
|
||||||
cd.use_game_controller_rumble = (SDL_GameControllerRumble(gcontroller, 0, 0, 0) == 0);
|
|
||||||
@@ -712,15 +716,59 @@ bool SDLControllerInterface::HandleControllerButtonEvent(const SDL_ControllerBut
|
|
||||||
m_host_interface->SetControllerNavigationButtonState(nav_button_mapping[ev->button], pressed);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (ev->button >= MAX_NUM_BUTTONS)
|
|
||||||
+ return false;
|
|
||||||
+
|
|
||||||
+ //------ Mimic Retroarch
|
|
||||||
+ if (ev->button == SDL_CONTROLLER_BUTTON_GUIDE || ev->button == SDL_CONTROLLER_BUTTON_BACK) it->hotkey_down = pressed;
|
|
||||||
+ else if (it->hotkey_down)
|
|
||||||
+ {
|
|
||||||
+ if (!pressed)
|
|
||||||
+ switch(ev->button)
|
|
||||||
+ {
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_A : m_host_interface->SaveScreenshot(); break;
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_B : m_host_interface->ResetSystem(); break;
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_X : if (FullscreenUI::HasActiveWindow()) FullscreenUI::CloseQuickMenu(); else FullscreenUI::OpenQuickMenu(); break;
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_Y : m_host_interface->ToggleWidescreen(); break;
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_START :
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_LEFTSTICK :
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_RIGHTSTICK : break;
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_LEFTSHOULDER : m_host_interface->LoadState(false, m_slots); break;
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER: m_host_interface->SaveState(false, m_slots); break;
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_DPAD_UP : m_slots = ++m_slots % 10; m_host_interface->AddOSDMessage(std::string("State Slot set to #") + (char)(0x30 + m_slots), 5.f); break;
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_DPAD_DOWN : m_slots = (m_slots + 9) % 10; m_host_interface->AddOSDMessage(std::string("State Slot set to #") + (char)(0x30 + m_slots), 5.f); break;
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_DPAD_LEFT : m_host_interface->SetRewindState(!System::IsRewinding()); break;
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_DPAD_RIGHT : m_host_interface->SetFastForwardEnabled(!m_host_interface->IsFastForwardEnabled()); break;
|
|
||||||
+ default: break;
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ switch(ev->button)
|
|
||||||
+ {
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_START : m_host_interface->RequestExit(); break;
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_A :
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_B :
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_X :
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_Y :
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_LEFTSTICK :
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_RIGHTSTICK :
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_LEFTSHOULDER :
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER:
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_DPAD_UP :
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_DPAD_DOWN :
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_DPAD_LEFT :
|
|
||||||
+ case SDL_CONTROLLER_BUTTON_DPAD_RIGHT :
|
|
||||||
+ default: break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (m_host_interface->IsControllerNavigationActive())
|
|
||||||
{
|
|
||||||
// UI consumed the event
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (ev->button >= MAX_NUM_BUTTONS)
|
|
||||||
- return false;
|
|
||||||
-
|
|
||||||
const ButtonCallback& cb = it->button_mapping[ev->button];
|
|
||||||
if (cb)
|
|
||||||
{
|
|
||||||
diff --git a/src/frontend-common/sdl_controller_interface.h b/src/frontend-common/sdl_controller_interface.h
|
|
||||||
index 06963a5c..ffc2ffac 100644
|
|
||||||
--- a/src/frontend-common/sdl_controller_interface.h
|
|
||||||
+++ b/src/frontend-common/sdl_controller_interface.h
|
|
||||||
@@ -57,6 +57,7 @@ private:
|
|
||||||
int joystick_id;
|
|
||||||
int player_id;
|
|
||||||
bool use_game_controller_rumble;
|
|
||||||
+ bool hotkey_down;
|
|
||||||
|
|
||||||
float deadzone = 0.25f;
|
|
||||||
|
|
||||||
@@ -93,4 +94,5 @@ private:
|
|
||||||
Hook::Callback m_event_intercept_callback;
|
|
||||||
|
|
||||||
bool m_sdl_subsystem_initialized = false;
|
|
||||||
+ int m_slots = -1;
|
|
||||||
};
|
|
|
@ -1,13 +0,0 @@
|
||||||
diff --git a/src/frontend-common/controller_interface.h b/src/frontend-common/controller_interface.h
|
|
||||||
index f97d0f6..563b5f4 100644
|
|
||||||
--- a/src/frontend-common/sdl_controller_interface.h
|
|
||||||
+++ b/src/frontend-common/sdl_controller_interface.h
|
|
||||||
@@ -46,7 +46,7 @@
|
|
||||||
enum : int
|
|
||||||
{
|
|
||||||
MAX_NUM_AXES = 7,
|
|
||||||
- MAX_NUM_BUTTONS = 16,
|
|
||||||
+ MAX_NUM_BUTTONS = 256,
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ControllerData
|
|
|
@ -1,19 +1,19 @@
|
||||||
diff --git a/src/common/file_system.cpp b/src/common/file_system.cpp
|
diff --git a/src/common/file_system.cpp b/src/common/file_system.cpp
|
||||||
index 6a24732..a287703 100644
|
index b22db26e..092fa9ee 100644
|
||||||
--- a/src/common/file_system.cpp
|
--- a/src/common/file_system.cpp
|
||||||
+++ b/src/common/file_system.cpp
|
+++ b/src/common/file_system.cpp
|
||||||
@@ -1179,6 +1179,8 @@ bool FileSystem::DeleteDirectory(const char* Path, bool Recursive)
|
@@ -1308,6 +1308,8 @@ bool FileSystem::DeleteDirectory(const char* path)
|
||||||
|
|
||||||
std::string GetProgramPath()
|
std::string FileSystem::GetProgramPath()
|
||||||
{
|
{
|
||||||
+ return "/storage/.config/duckstation";
|
+ return "/storage/.config/duckstation";
|
||||||
+
|
+
|
||||||
std::wstring buffer;
|
std::wstring buffer;
|
||||||
buffer.resize(MAX_PATH);
|
buffer.resize(MAX_PATH);
|
||||||
|
|
||||||
@@ -1549,6 +1551,8 @@ bool DeleteDirectory(const char* Path, bool Recursive)
|
@@ -1789,6 +1791,8 @@ bool FileSystem::DeleteDirectory(const char* path)
|
||||||
|
|
||||||
std::string GetProgramPath()
|
std::string FileSystem::GetProgramPath()
|
||||||
{
|
{
|
||||||
+ return "/storage/.config/duckstation";
|
+ return "/storage/.config/duckstation";
|
||||||
+
|
+
|
|
@ -0,0 +1,14 @@
|
||||||
|
diff --git a/src/common/file_system.cpp b/src/common/file_system.cpp
|
||||||
|
index b22db26e..ad856d93 100644
|
||||||
|
--- a/src/common/file_system.cpp
|
||||||
|
+++ b/src/common/file_system.cpp
|
||||||
|
@@ -315,6 +315,9 @@ std::string FileSystem::GetDisplayNameFromPath(const std::string_view& path)
|
||||||
|
|
||||||
|
std::string_view Path::GetDirectory(const std::string_view& path)
|
||||||
|
{
|
||||||
|
+
|
||||||
|
+return "/storage/.config/duckstation";
|
||||||
|
+
|
||||||
|
const std::string::size_type pos = GetLastSeperatorPosition(path, false);
|
||||||
|
if (pos == std::string_view::npos)
|
||||||
|
return {};
|
|
@ -0,0 +1,33 @@
|
||||||
|
diff --git a/src/frontend-common/fullscreen_ui.cpp b/src/frontend-common/fullscreen_ui.cpp
|
||||||
|
index ce53e69f..fc0b24d5 100644
|
||||||
|
--- a/src/frontend-common/fullscreen_ui.cpp
|
||||||
|
+++ b/src/frontend-common/fullscreen_ui.cpp
|
||||||
|
@@ -244,6 +244,7 @@ static void DoChangeDiscFromFile();
|
||||||
|
static void DoChangeDisc();
|
||||||
|
static void DoRequestExit();
|
||||||
|
static void DoToggleFullscreen();
|
||||||
|
+static void EnableDoToggleFullscreen();
|
||||||
|
static void DoCheatsMenu();
|
||||||
|
static void DoToggleAnalogMode();
|
||||||
|
|
||||||
|
@@ -1038,6 +1039,11 @@ void FullscreenUI::DoToggleFullscreen()
|
||||||
|
Host::RunOnCPUThread([]() { Host::SetFullscreen(!Host::IsFullscreen()); });
|
||||||
|
}
|
||||||
|
|
||||||
|
+void FullscreenUI::EnableDoToggleFullscreen()
|
||||||
|
+{
|
||||||
|
+ Host::SetFullscreen(true);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
// Landing Window
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
@@ -1050,6 +1056,8 @@ void FullscreenUI::SwitchToLanding()
|
||||||
|
|
||||||
|
void FullscreenUI::DrawLandingWindow()
|
||||||
|
{
|
||||||
|
+ EnableDoToggleFullscreen();
|
||||||
|
+
|
||||||
|
BeginFullscreenColumns(nullptr, 0.0f, true);
|
||||||
|
|
||||||
|
if (BeginFullscreenColumnWindow(0.0f, -710.0f, "logo", UIPrimaryDarkColor))
|
|
@ -21,5 +21,6 @@ fi
|
||||||
ln -sfv "/storage/roms/savestates/psx" "/storage/.config/duckstation/savestates"
|
ln -sfv "/storage/roms/savestates/psx" "/storage/.config/duckstation/savestates"
|
||||||
|
|
||||||
cp -rf /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt /storage/.config/duckstation/database/gamecontrollerdb.txt
|
cp -rf /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt /storage/.config/duckstation/database/gamecontrollerdb.txt
|
||||||
|
cp -rf /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt /storage/.config/duckstation/resources/gamecontrollerdb.txt
|
||||||
|
|
||||||
duckstation-nogui -fullscreen -settings "/storage/.config/duckstation/settings.ini" -- "${1}" > /dev/null 2>&1
|
duckstation-nogui -fullscreen -settings "/storage/.config/duckstation/settings.ini" -- "${1}" > /dev/null 2>&1
|
|
@ -8,17 +8,18 @@
|
||||||
. /etc/os-release
|
. /etc/os-release
|
||||||
|
|
||||||
EE_DEVICE=${HW_DEVICE}
|
EE_DEVICE=${HW_DEVICE}
|
||||||
|
RUN_DIR="/storage/roms/ecwolf"
|
||||||
CONFIG_DIR="/storage/.config/game/ecwolf"
|
CONFIG_DIR="/storage/.config/game/ecwolf"
|
||||||
CONFIG_FILE="${CONFIG_DIR}/ecwolf.cfg"
|
CONFIG_FILE="${CONFIG_DIR}/ecwolf.cfg"
|
||||||
|
PK3_FILE="${CONFIG_DIR}/ecwolf.pk3"
|
||||||
SAVE_DIR="/storage/roms/gamedata/ecwolf"
|
SAVE_DIR="/storage/roms/gamedata/ecwolf"
|
||||||
|
LEGACY=true
|
||||||
|
|
||||||
if [ ! -L "/storage/.config/ecwolf" ]
|
if [ ! -L "/storage/.config/ecwolf" ]; then
|
||||||
then
|
|
||||||
ln -sf "/storage/.config/game/ecwolf" "/storage/.config/ecwolf"
|
ln -sf "/storage/.config/game/ecwolf" "/storage/.config/ecwolf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f "/storage/.config/game/ecwolf/ecwolf.cfg" ]
|
if [ ! -f "/storage/.config/game/ecwolf/ecwolf.cfg" ]; then
|
||||||
then
|
|
||||||
cp -rf /usr/config/game/ecwolf/ecwolf.cfg /storage/.config/game/ecwolf/
|
cp -rf /usr/config/game/ecwolf/ecwolf.cfg /storage/.config/game/ecwolf/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -27,34 +28,82 @@ mkdir -p ${SAVE_DIR}
|
||||||
params=" --config ${CONFIG_FILE} --savedir ${SAVE_DIR}"
|
params=" --config ${CONFIG_FILE} --savedir ${SAVE_DIR}"
|
||||||
|
|
||||||
# data can be SD2 SD3 SOD WL6 or N3D and it's passed as the ROM
|
# data can be SD2 SD3 SOD WL6 or N3D and it's passed as the ROM
|
||||||
DATA=${1#*.}
|
EXT=${1##*.}
|
||||||
|
|
||||||
# If its a mod (extension .ecwolf) read the file and parse the data
|
# If its a mod (extension .ecwolf) read the file and parse the data
|
||||||
if [ ${DATA} == "ecwolf" ]; then
|
if [ ${EXT} == "ecwolf" ]; then
|
||||||
dos2unix "${1}"
|
dos2unix "${1}"
|
||||||
|
|
||||||
|
# We don't want to break users that have .ecwolf files that predate the PATH
|
||||||
|
# option, so we'll track that here so we can handle it by:
|
||||||
|
# 1. Parsing PK3[_N] keys
|
||||||
|
# 2. Ignoring MOD and PATH keys
|
||||||
|
# 3. Running from the config dir
|
||||||
|
if grep -q "^PATH=" "${1}"; then
|
||||||
|
LEGACY=false
|
||||||
|
fi
|
||||||
|
|
||||||
while IFS== read -r key value; do
|
while IFS== read -r key value; do
|
||||||
|
if $LEGACY; then
|
||||||
|
if [ "$key" == "PK3" ]; then
|
||||||
|
params+=" --file $value"
|
||||||
|
fi
|
||||||
|
if [ "$key" == "PK3_1" ]; then
|
||||||
|
params+=" --file $value"
|
||||||
|
fi
|
||||||
|
if [ "$key" == "PK3_2" ]; then
|
||||||
|
params+=" --file $value"
|
||||||
|
fi
|
||||||
|
if [ "$key" == "PK3_3" ]; then
|
||||||
|
params+=" --file $value"
|
||||||
|
fi
|
||||||
|
if [ "$key" == "PK3_4" ]; then
|
||||||
|
params+=" --file $value"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ "$key" == "PATH" ]; then
|
||||||
|
# Unquote path value
|
||||||
|
temp="${value}"
|
||||||
|
temp="${temp%\"}"
|
||||||
|
temp="${temp#\"}"
|
||||||
|
RUN_DIR+="/$temp"
|
||||||
|
fi
|
||||||
|
if [ "$key" == "MOD" ]; then
|
||||||
|
params+=" --file $value"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$key" == "DATA" ]; then
|
if [ "$key" == "DATA" ]; then
|
||||||
params+=" --data $value"
|
params+=" --data $value"
|
||||||
fi
|
fi
|
||||||
if [ "$key" == "PK3" ]; then
|
done <"${1}"
|
||||||
params+=" --file $value"
|
|
||||||
fi
|
|
||||||
if [ "$key" == "PK3_1" ]; then
|
|
||||||
params+=" --file $value"
|
|
||||||
fi
|
|
||||||
if [ "$key" == "PK3_2" ]; then
|
|
||||||
params+=" --file $value"
|
|
||||||
fi
|
|
||||||
if [ "$key" == "PK3_3" ]; then
|
|
||||||
params+=" --file $value"
|
|
||||||
fi
|
|
||||||
if [ "$key" == "PK3_4" ]; then
|
|
||||||
params+=" --file $value"
|
|
||||||
fi
|
|
||||||
done < "${1}"
|
|
||||||
else
|
else
|
||||||
params+=" --data ${DATA}"
|
params+=" --data ${EXT}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd "${CONFIG_DIR}"
|
if $LEGACY; then
|
||||||
/usr/bin/ecwolf ${params} > /var/log/ecwolf.log 2>&1
|
cd "${CONFIG_DIR}"
|
||||||
|
else
|
||||||
|
|
||||||
|
# There doesn't appear to be a way to tell the engine with command line
|
||||||
|
# arguments where the ecwolf.pk3 is located -- it just looks in the current
|
||||||
|
# working directory. To work around this, we'll bind the ecwolf.pk3 file that
|
||||||
|
# ships with the distribution into the provided game path, if one isn't
|
||||||
|
# already present.
|
||||||
|
DST_PK3_FILE="${RUN_DIR}/ecwolf.pk3"
|
||||||
|
|
||||||
|
if [ ! -e "$DST_PK3_FILE" ]; then
|
||||||
|
do_cleanup() {
|
||||||
|
umount "$DST_PK3_FILE" &>/dev/null
|
||||||
|
rm "${DST_PK3_FILE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
touch "$DST_PK3_FILE"
|
||||||
|
mount -o ro,bind "$PK3_FILE" "$DST_PK3_FILE" >/dev/null 2>&1
|
||||||
|
trap do_cleanup EXIT
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${RUN_DIR}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ${params} | xargs /usr/bin/ecwolf >/var/log/ecwolf.log 2>&1
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
# Copyright (C) 2022-present Fewtarius
|
# Copyright (C) 2022-present Fewtarius
|
||||||
|
|
||||||
PKG_NAME="flycastsa"
|
PKG_NAME="flycastsa"
|
||||||
PKG_VERSION="7457db8bba3277dcc9b4ec0c3556847f5082a455"
|
PKG_VERSION="aa97a6d64fb47d3ce0febaa575b26d975dd916e4"
|
||||||
PKG_LICENSE="GPLv2"
|
PKG_LICENSE="GPLv2"
|
||||||
PKG_SITE="https://github.com/flyinghead/flycast"
|
PKG_SITE="https://github.com/flyinghead/flycast"
|
||||||
PKG_URL="${PKG_SITE}.git"
|
PKG_URL="${PKG_SITE}.git"
|
||||||
|
@ -22,7 +22,7 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then
|
||||||
PKG_CMAKE_OPTS_TARGET+=" -DUSE_GLES=ON"
|
PKG_CMAKE_OPTS_TARGET+=" -DUSE_GLES=ON"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${ARCH}" = "x86_64" ]
|
if [ "${VULKAN_SUPPORT}" = "yes" ]
|
||||||
then
|
then
|
||||||
PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers"
|
PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers"
|
||||||
PKG_CMAKE_OPTS_TARGET+=" -DUSE_VULKAN=ON"
|
PKG_CMAKE_OPTS_TARGET+=" -DUSE_VULKAN=ON"
|
||||||
|
|
|
@ -4,40 +4,40 @@
|
||||||
[IWADSearch.Directories]
|
[IWADSearch.Directories]
|
||||||
Path=.
|
Path=.
|
||||||
Path=$DOOMWADDIR
|
Path=$DOOMWADDIR
|
||||||
Path=/storage/.config/distribution/gzdoom
|
Path=/storage/.config/game/gzdoom
|
||||||
Path=/storage/roms/doom
|
Path=/storage/roms/doom
|
||||||
|
|
||||||
# These are the directories to search for wads added with the -file
|
# These are the directories to search for wads added with the -file
|
||||||
# command line parameter, if they cannot be found with the path
|
# command line parameter, if they cannot be found with the path
|
||||||
# as-is. Layout is the same as for IWADSearch.Directories
|
# as-is. Layout is the same as for IWADSearch.Directories
|
||||||
[FileSearch.Directories]
|
[FileSearch.Directories]
|
||||||
Path=/storage/.config/distribution/gzdoom
|
Path=/storage/.config/game/gzdoom
|
||||||
Path=/storage/roms/doom
|
Path=/storage/roms/doom
|
||||||
Path=$DOOMWADDIR
|
Path=$DOOMWADDIR
|
||||||
|
|
||||||
# These are the directories to search for soundfonts that let listed in the menu.
|
# These are the directories to search for soundfonts that let listed in the menu.
|
||||||
# Layout is the same as for IWADSearch.Directories
|
# Layout is the same as for IWADSearch.Directories
|
||||||
[SoundfontSearch.Directories]
|
[SoundfontSearch.Directories]
|
||||||
Path=/storage/.config/distribution/gzdoom/soundfonts
|
Path=/storage/.config/game/gzdoom/soundfonts
|
||||||
Path=/storage/.config/distribution/gzdoom/fm_banks
|
Path=/storage/.config/game/gzdoom/fm_banks
|
||||||
|
|
||||||
# Files to automatically execute when running the corresponding game.
|
# Files to automatically execute when running the corresponding game.
|
||||||
# Each file should be on its own line, preceded by Path=
|
# Each file should be on its own line, preceded by Path=
|
||||||
|
|
||||||
[Doom.AutoExec]
|
[Doom.AutoExec]
|
||||||
Path=/storage/.config/distribution/gzdoom/autoexec.cfg
|
Path=/storage/.config/game/gzdoom/autoexec.cfg
|
||||||
|
|
||||||
[Heretic.AutoExec]
|
[Heretic.AutoExec]
|
||||||
Path=/storage/.config/distribution/gzdoom/autoexec.cfg
|
Path=/storage/.config/game/gzdoom/autoexec.cfg
|
||||||
|
|
||||||
[Hexen.AutoExec]
|
[Hexen.AutoExec]
|
||||||
Path=/storage/.config/distribution/gzdoom/autoexec.cfg
|
Path=/storage/.config/game/gzdoom/autoexec.cfg
|
||||||
|
|
||||||
[Strife.AutoExec]
|
[Strife.AutoExec]
|
||||||
Path=/storage/.config/distribution/gzdoom/autoexec.cfg
|
Path=/storage/.config/game/gzdoom/autoexec.cfg
|
||||||
|
|
||||||
[Chex.AutoExec]
|
[Chex.AutoExec]
|
||||||
Path=/storage/.config/distribution/gzdoom/autoexec.cfg
|
Path=/storage/.config/game/gzdoom/autoexec.cfg
|
||||||
|
|
||||||
# WAD files to always load. These are loaded after the IWAD but before
|
# WAD files to always load. These are loaded after the IWAD but before
|
||||||
# any files added with -file. Place each file on its own line, preceded
|
# any files added with -file. Place each file on its own line, preceded
|
||||||
|
|
|
@ -4,40 +4,40 @@
|
||||||
[IWADSearch.Directories]
|
[IWADSearch.Directories]
|
||||||
Path=.
|
Path=.
|
||||||
Path=$DOOMWADDIR
|
Path=$DOOMWADDIR
|
||||||
Path=/storage/.config/distribution/gzdoom
|
Path=/storage/.config/game/gzdoom
|
||||||
Path=/storage/roms/doom
|
Path=/storage/roms/doom
|
||||||
|
|
||||||
# These are the directories to search for wads added with the -file
|
# These are the directories to search for wads added with the -file
|
||||||
# command line parameter, if they cannot be found with the path
|
# command line parameter, if they cannot be found with the path
|
||||||
# as-is. Layout is the same as for IWADSearch.Directories
|
# as-is. Layout is the same as for IWADSearch.Directories
|
||||||
[FileSearch.Directories]
|
[FileSearch.Directories]
|
||||||
Path=/storage/.config/distribution/gzdoom
|
Path=/storage/.config/game/gzdoom
|
||||||
Path=/storage/roms/doom
|
Path=/storage/roms/doom
|
||||||
Path=$DOOMWADDIR
|
Path=$DOOMWADDIR
|
||||||
|
|
||||||
# These are the directories to search for soundfonts that let listed in the menu.
|
# These are the directories to search for soundfonts that let listed in the menu.
|
||||||
# Layout is the same as for IWADSearch.Directories
|
# Layout is the same as for IWADSearch.Directories
|
||||||
[SoundfontSearch.Directories]
|
[SoundfontSearch.Directories]
|
||||||
Path=/storage/.config/distribution/gzdoom/soundfonts
|
Path=/storage/.config/game/gzdoom/soundfonts
|
||||||
Path=/storage/.config/distribution/gzdoom/fm_banks
|
Path=/storage/.config/game/gzdoom/fm_banks
|
||||||
|
|
||||||
# Files to automatically execute when running the corresponding game.
|
# Files to automatically execute when running the corresponding game.
|
||||||
# Each file should be on its own line, preceded by Path=
|
# Each file should be on its own line, preceded by Path=
|
||||||
|
|
||||||
[Doom.AutoExec]
|
[Doom.AutoExec]
|
||||||
Path=/storage/.config/distribution/gzdoom/autoexec.cfg
|
Path=/storage/.config/game/gzdoom/autoexec.cfg
|
||||||
|
|
||||||
[Heretic.AutoExec]
|
[Heretic.AutoExec]
|
||||||
Path=/storage/.config/distribution/gzdoom/autoexec.cfg
|
Path=/storage/.config/game/gzdoom/autoexec.cfg
|
||||||
|
|
||||||
[Hexen.AutoExec]
|
[Hexen.AutoExec]
|
||||||
Path=/storage/.config/distribution/gzdoom/autoexec.cfg
|
Path=/storage/.config/game/gzdoom/autoexec.cfg
|
||||||
|
|
||||||
[Strife.AutoExec]
|
[Strife.AutoExec]
|
||||||
Path=/storage/.config/distribution/gzdoom/autoexec.cfg
|
Path=/storage/.config/game/gzdoom/autoexec.cfg
|
||||||
|
|
||||||
[Chex.AutoExec]
|
[Chex.AutoExec]
|
||||||
Path=/storage/.config/distribution/gzdoom/autoexec.cfg
|
Path=/storage/.config/game/gzdoom/autoexec.cfg
|
||||||
|
|
||||||
# WAD files to always load. These are loaded after the IWAD but before
|
# WAD files to always load. These are loaded after the IWAD but before
|
||||||
# any files added with -file. Place each file on its own line, preceded
|
# any files added with -file. Place each file on its own line, preceded
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/src/common/menu/menu.cpp b/src/common/menu/menu.cpp
|
||||||
|
index 4532dae1d..c81ec2e9a 100644
|
||||||
|
--- a/src/common/menu/menu.cpp
|
||||||
|
+++ b/src/common/menu/menu.cpp
|
||||||
|
@@ -702,7 +702,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
mkey = MKEY_Back;
|
||||||
|
break;
|
||||||
|
|
||||||
|
- case KEY_JOY4:
|
||||||
|
+ case KEY_JOY3:
|
||||||
|
case KEY_PAD_X:
|
||||||
|
mkey = MKEY_Clear;
|
||||||
|
break;
|
49
packages/games/emulators/gzdoom/patches/RG503/01-fixes.patch
Normal file
49
packages/games/emulators/gzdoom/patches/RG503/01-fixes.patch
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
diff --git a/src/common/menu/menu.cpp b/src/common/menu/menu.cpp
|
||||||
|
index 4532dae1d..8c394dc79 100644
|
||||||
|
--- a/src/common/menu/menu.cpp
|
||||||
|
+++ b/src/common/menu/menu.cpp
|
||||||
|
@@ -702,7 +702,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
mkey = MKEY_Back;
|
||||||
|
break;
|
||||||
|
|
||||||
|
- case KEY_JOY4:
|
||||||
|
+ case KEY_JOY3:
|
||||||
|
case KEY_PAD_X:
|
||||||
|
mkey = MKEY_Clear;
|
||||||
|
break;
|
||||||
|
@@ -721,7 +721,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
case KEY_PAD_LTHUMB_UP:
|
||||||
|
case KEY_JOYAXIS2MINUS:
|
||||||
|
case KEY_JOYPOV1_UP:
|
||||||
|
- case KEY_JOY9:
|
||||||
|
+ case KEY_JOY14:
|
||||||
|
mkey = MKEY_Up;
|
||||||
|
break;
|
||||||
|
|
||||||
|
@@ -729,7 +729,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
case KEY_PAD_LTHUMB_DOWN:
|
||||||
|
case KEY_JOYAXIS2PLUS:
|
||||||
|
case KEY_JOYPOV1_DOWN:
|
||||||
|
- case KEY_JOY10:
|
||||||
|
+ case KEY_JOY15:
|
||||||
|
mkey = MKEY_Down;
|
||||||
|
break;
|
||||||
|
|
||||||
|
@@ -737,7 +737,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
case KEY_PAD_LTHUMB_LEFT:
|
||||||
|
case KEY_JOYAXIS1MINUS:
|
||||||
|
case KEY_JOYPOV1_LEFT:
|
||||||
|
- case KEY_JOY11:
|
||||||
|
+ case KEY_JOY16:
|
||||||
|
mkey = MKEY_Left;
|
||||||
|
break;
|
||||||
|
|
||||||
|
@@ -745,7 +745,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
case KEY_PAD_LTHUMB_RIGHT:
|
||||||
|
case KEY_JOYAXIS1PLUS:
|
||||||
|
case KEY_JOYPOV1_RIGHT:
|
||||||
|
- case KEY_JOY12:
|
||||||
|
+ case KEY_JOY17:
|
||||||
|
mkey = MKEY_Right;
|
||||||
|
break;
|
||||||
|
}
|
91
packages/games/emulators/gzdoom/patches/RG552/01-fixes.patch
Normal file
91
packages/games/emulators/gzdoom/patches/RG552/01-fixes.patch
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
diff --git a/src/common/menu/menu.cpp b/src/common/menu/menu.cpp
|
||||||
|
index 4532dae1d..8c394dc79 100644
|
||||||
|
--- a/src/common/menu/menu.cpp
|
||||||
|
+++ b/src/common/menu/menu.cpp
|
||||||
|
@@ -702,7 +702,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
mkey = MKEY_Back;
|
||||||
|
break;
|
||||||
|
|
||||||
|
- case KEY_JOY4:
|
||||||
|
+ case KEY_JOY3:
|
||||||
|
case KEY_PAD_X:
|
||||||
|
mkey = MKEY_Clear;
|
||||||
|
break;
|
||||||
|
@@ -721,7 +721,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
case KEY_PAD_LTHUMB_UP:
|
||||||
|
case KEY_JOYAXIS2MINUS:
|
||||||
|
case KEY_JOYPOV1_UP:
|
||||||
|
- case KEY_JOY9:
|
||||||
|
+ case KEY_JOY14:
|
||||||
|
mkey = MKEY_Up;
|
||||||
|
break;
|
||||||
|
|
||||||
|
@@ -729,7 +729,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
case KEY_PAD_LTHUMB_DOWN:
|
||||||
|
case KEY_JOYAXIS2PLUS:
|
||||||
|
case KEY_JOYPOV1_DOWN:
|
||||||
|
- case KEY_JOY10:
|
||||||
|
+ case KEY_JOY15:
|
||||||
|
mkey = MKEY_Down;
|
||||||
|
break;
|
||||||
|
|
||||||
|
@@ -737,7 +737,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
case KEY_PAD_LTHUMB_LEFT:
|
||||||
|
case KEY_JOYAXIS1MINUS:
|
||||||
|
case KEY_JOYPOV1_LEFT:
|
||||||
|
- case KEY_JOY11:
|
||||||
|
+ case KEY_JOY16:
|
||||||
|
mkey = MKEY_Left;
|
||||||
|
break;
|
||||||
|
|
||||||
|
@@ -745,7 +745,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
case KEY_PAD_LTHUMB_RIGHT:
|
||||||
|
case KEY_JOYAXIS1PLUS:
|
||||||
|
case KEY_JOYPOV1_RIGHT:
|
||||||
|
- case KEY_JOY12:
|
||||||
|
+ case KEY_JOY17:
|
||||||
|
mkey = MKEY_Right;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/common/console/keydef.h b/src/common/console/keydef.h
|
||||||
|
index 971ab398f..726a2c432 100644
|
||||||
|
--- a/src/common/console/keydef.h
|
||||||
|
+++ b/src/common/console/keydef.h
|
||||||
|
@@ -68,20 +68,22 @@ enum EKeyCodes
|
||||||
|
|
||||||
|
KEY_FIRSTJOYBUTTON = 0x108,
|
||||||
|
KEY_JOY1 = KEY_FIRSTJOYBUTTON+0,
|
||||||
|
- KEY_JOY2,
|
||||||
|
- KEY_JOY3,
|
||||||
|
- KEY_JOY4,
|
||||||
|
- KEY_JOY5,
|
||||||
|
- KEY_JOY6,
|
||||||
|
- KEY_JOY7,
|
||||||
|
- KEY_JOY8,
|
||||||
|
- KEY_JOY9,
|
||||||
|
- KEY_JOY10,
|
||||||
|
- KEY_JOY11,
|
||||||
|
- KEY_JOY12,
|
||||||
|
- KEY_JOY13,
|
||||||
|
- KEY_JOY14,
|
||||||
|
- KEY_JOY15,
|
||||||
|
+ KEY_JOY2 = KEY_FIRSTJOYBUTTON+1,
|
||||||
|
+ KEY_JOY3 = KEY_FIRSTJOYBUTTON+2,
|
||||||
|
+ KEY_JOY4 = KEY_FIRSTJOYBUTTON+3,
|
||||||
|
+ KEY_JOY5 = KEY_FIRSTJOYBUTTON+4,
|
||||||
|
+ KEY_JOY6 = KEY_FIRSTJOYBUTTON+5,
|
||||||
|
+ KEY_JOY7 = KEY_FIRSTJOYBUTTON+6,
|
||||||
|
+ KEY_JOY8 = KEY_FIRSTJOYBUTTON+7,
|
||||||
|
+ KEY_JOY9 = KEY_FIRSTJOYBUTTON+8,
|
||||||
|
+ KEY_JOY10 = KEY_FIRSTJOYBUTTON+9,
|
||||||
|
+ KEY_JOY11 = KEY_FIRSTJOYBUTTON+10,
|
||||||
|
+ KEY_JOY12 = KEY_FIRSTJOYBUTTON+11,
|
||||||
|
+ KEY_JOY13 = KEY_FIRSTJOYBUTTON+12,
|
||||||
|
+ KEY_JOY14 = KEY_FIRSTJOYBUTTON+13,
|
||||||
|
+ KEY_JOY15 = KEY_FIRSTJOYBUTTON+14,
|
||||||
|
+ KEY_JOY16 = KEY_FIRSTJOYBUTTON+15,
|
||||||
|
+ KEY_JOY17 = KEY_FIRSTJOYBUTTON+16,
|
||||||
|
KEY_LASTJOYBUTTON = 0x187,
|
||||||
|
KEY_JOYPOV1_UP = 0x188,
|
||||||
|
KEY_JOYPOV1_RIGHT = 0x189,
|
|
@ -2,8 +2,8 @@
|
||||||
# Copyright (C) 2018-present 5schatten (https://github.com/5schatten)
|
# Copyright (C) 2018-present 5schatten (https://github.com/5schatten)
|
||||||
|
|
||||||
PKG_NAME="hatarisa"
|
PKG_NAME="hatarisa"
|
||||||
PKG_VERSION="e81c9addd39898e2897056b2bc3fd6908afabf9e"
|
PKG_VERSION="4a4c2f174bd1f5e5da87a109c02a046fe30dbfa0"
|
||||||
PKG_SHA256="d3dc44ea719695be0bce2646ca4a431470b2008b7f9ed4c243b2f867a432996c"
|
PKG_SHA256="1e6ba340b380006aa18842f6890bd393e816ef23cbf3c51312d5ffa7a3026697"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="https://github.com/hatari/hatari"
|
PKG_SITE="https://github.com/hatari/hatari"
|
||||||
PKG_URL="https://github.com/hatari/hatari/archive/${PKG_VERSION}.tar.gz"
|
PKG_URL="https://github.com/hatari/hatari/archive/${PKG_VERSION}.tar.gz"
|
||||||
|
|
|
@ -3,13 +3,13 @@
|
||||||
# Copyright (C) 2022-present Fewtarius
|
# Copyright (C) 2022-present Fewtarius
|
||||||
|
|
||||||
PKG_NAME="hypseus-singe"
|
PKG_NAME="hypseus-singe"
|
||||||
PKG_VERSION="9d20d5f92ab612ac7596da05b991d89333679ae5"
|
PKG_VERSION="a0c3de2c02d210dfe78a7ecb54781f3842d817b9"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL3"
|
PKG_LICENSE="GPL3"
|
||||||
PKG_SITE="https://github.com/DirtBagXon/hypseus-singe"
|
PKG_SITE="https://github.com/DirtBagXon/hypseus-singe"
|
||||||
PKG_URL="${PKG_SITE}.git"
|
PKG_URL="${PKG_SITE}.git"
|
||||||
PKG_DEPENDS_TARGET="toolchain SDL2 SDL2_ttf SDL2_image libogg libvorbis"
|
PKG_DEPENDS_TARGET="toolchain SDL2 SDL2_ttf SDL2_image libmpeg2 libogg libvorbis"
|
||||||
PKG_LONGDESC="Hypseus is a fork of Daphne. A program that lets one play the original versions of many laserdisc arcade games on one's PC."
|
PKG_LONGDESC="Hypseus is a fork of Daphne. A program that lets one play the original versions of many laserdisc arcade games on one's PC."
|
||||||
PKG_TOOLCHAIN="cmake"
|
PKG_TOOLCHAIN="cmake"
|
||||||
GET_HANDLER_SUPPORT="git"
|
GET_HANDLER_SUPPORT="git"
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
diff --git a/src/menu/menu.cpp b/src/menu/menu.cpp
|
||||||
|
index 2af6616fa0..8ef95e1358 100644
|
||||||
|
--- a/src/menu/menu.cpp
|
||||||
|
+++ b/src/menu/menu.cpp
|
||||||
|
@@ -666,17 +666,17 @@ bool M_Responder (event_t *ev)
|
||||||
|
ch = ev->data1;
|
||||||
|
switch (ch)
|
||||||
|
{
|
||||||
|
- case KEY_JOY2:
|
||||||
|
+ case KEY_JOY1: //B button
|
||||||
|
case KEY_PAD_A:
|
||||||
|
mkey = MKEY_Back;
|
||||||
|
break;
|
||||||
|
|
||||||
|
- case KEY_JOY1:
|
||||||
|
+ case KEY_JOY2: //A button
|
||||||
|
case KEY_PAD_B:
|
||||||
|
mkey = MKEY_Enter;
|
||||||
|
break;
|
||||||
|
|
||||||
|
- case KEY_JOY4:
|
||||||
|
+ case KEY_JOY3: //X button
|
||||||
|
case KEY_PAD_X:
|
||||||
|
mkey = MKEY_Clear;
|
||||||
|
break;
|
||||||
|
@@ -695,7 +695,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
case KEY_PAD_LTHUMB_UP:
|
||||||
|
case KEY_JOYAXIS2MINUS:
|
||||||
|
case KEY_JOYPOV1_UP:
|
||||||
|
- case KEY_JOY9:
|
||||||
|
+ case KEY_JOY9: //Dpad up
|
||||||
|
mkey = MKEY_Up;
|
||||||
|
break;
|
||||||
|
|
||||||
|
@@ -703,7 +703,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
case KEY_PAD_LTHUMB_DOWN:
|
||||||
|
case KEY_JOYAXIS2PLUS:
|
||||||
|
case KEY_JOYPOV1_DOWN:
|
||||||
|
- case KEY_JOY10:
|
||||||
|
+ case KEY_JOY10: //Dpad down
|
||||||
|
mkey = MKEY_Down;
|
||||||
|
break;
|
||||||
|
|
||||||
|
@@ -711,7 +711,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
case KEY_PAD_LTHUMB_LEFT:
|
||||||
|
case KEY_JOYAXIS1MINUS:
|
||||||
|
case KEY_JOYPOV1_LEFT:
|
||||||
|
- case KEY_JOY11:
|
||||||
|
+ case KEY_JOY11: //Dpad left
|
||||||
|
mkey = MKEY_Left;
|
||||||
|
break;
|
||||||
|
|
||||||
|
@@ -719,7 +719,7 @@ bool M_Responder (event_t *ev)
|
||||||
|
case KEY_PAD_LTHUMB_RIGHT:
|
||||||
|
case KEY_JOYAXIS1PLUS:
|
||||||
|
case KEY_JOYPOV1_RIGHT:
|
||||||
|
- case KEY_JOY12:
|
||||||
|
+ case KEY_JOY12: //Dpad right
|
||||||
|
mkey = MKEY_Right;
|
||||||
|
break;
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue