Merge branch 'dev' into dev

This commit is contained in:
fewtarius 2022-03-18 16:45:14 -04:00 committed by GitHub
commit 0478c2ca2f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
158 changed files with 3124 additions and 1008 deletions

View file

@ -1,11 +1,17 @@
# JELOS - Just enough Linux Operating System
&nbsp;&nbsp;<img src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/dev/distributions/JELOS/logos/jelos-logo.png" width=192>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[![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.
## Features
* Supports the Anbernic RG552 handheld.
* A 64bit Operating System.
* Supports FAT32, ExFAT, and EXT4 file systems.
* Filesystem compatibility with Android
* Filesystem compatibility with Android.
* Utilizes the whole SDCARD for EXT4 storage.
* Supports FAT32, ExFAT, and EXT4 file systems on the second card.
* Provides overclock and cooling profiles.
* Supports 2.4GHz and 5GHz 802.11 A/B/G/N/AC WIFI.
* Includes RetroArch, a variety of cores, Stand Alone Emulators, as well as PortMaster.
* Supports the Anbernic RG552 handheld.
* Maintained by a small but growing community of contributors.
## Licenses
JELOS is a Linux distribution that is made up of many open-source components. Components are provided under their respective licenses. This distribution includes components licensed for non-commercial use only.
@ -43,18 +49,19 @@ limitations under the License.
* 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.
## Upgrading
* Download and install the update online via the System Settings menu.
* Download the latest [version of JELOS](https://github.com/JustEnoughLinuxOS/distribution/releases) (.tar or .img.gz) for your device.
* Copy the update to your device over the network or to the sdcard's update folder.
* Reboot the device, and the update will begin automatically.
## 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 Network Settings menu.
* 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
* Hotkey Enable: Select (Hold)
* Exit: Start (Press Twice)
* Menu: Y
* Show/Hide FPS: X
* Menu: X
* Show/Hide FPS: Y
* Save State: R1
* Load State: L1
* Rewind: L2
@ -64,21 +71,21 @@ limitations under the License.
Like any Linux distribution, this project is not the work of one person. It is the work of many persons all over the world who have developed the open source bits without which this project could not exist. Special thanks to 351ELEC, EmuELEC, CoreELEC, LibreELEC, Anbernic, and developers across the ARM handheld community.
## Frequently Asked Questions
* Does JELOS offer any support?
* No. JELOS is something that I develop for fun, it is provided as-is. If you require a distribution with support, I recommend you choose a community supported distribution instead.
* Does JELOS offer any formal support?
* No. JELOS is something that we develop for fun, it is provided as-is. There are a variety of avenues to seek community help, but this is a tinkerer's distribution so you may need to get your hands dirty to solve your problems.
* Do you plan to add additional ports, software, or emulators?
* I add things to JELOS as I have an itch to scratch. The community has updated PortMaster to work with JELOS.
* I add things to JELOS as I have an itch to scratch, as does the community of contributors. If you would like to add something to JELOS, pull requests are welcomed.
* What about N64, Dreamcast, Saturn, Jaguar, PSP, etc on the 552?
* Those platforms perform best in Android on the 552, and I have no interest in them. I recommend that you use Android instead for those.
* Which emulators and game engines are supported by JELOS?
* [See JELOS emulators and game engines](https://github.com/JustEnoughLinuxOS/distribution/blob/gh-pages/JELOS%20emulators%20and%20game%20engines.md)
* Will you support my device?
* If you send me a device and source code, I'll consider it.
* I'm using brand-y microSD and after flashing it partitions, reboots, and hangs.
* When this happens the indicator is a short vibration like it's restarting normally but the power LED does not turn on. Press reset, and it will continue normally.
* How can I disable root password rotation?
* SSH to the handheld and run the following commands.
* ```set_setting rotate.root.password 0```
* ```passwd root```
* ```smbpasswd root```
* Password rotation can be disabled in the System Settings menu. Once committed the root password may be edited in the same menu.
* To set the root password over ssh and keep it in sync with EmulationStation, use ```setrootpass mynewpassword```.
* Alternatively, copy your ssh key with ssh-copy-id, and leave rotation enabled.
* ```ssh-copy-id root@jelos```
* I want to add games to SD Card 1 and see them in my EmulationStation games list.

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View file

@ -73,7 +73,7 @@
# for a list of additional drivers see packages/linux-drivers
# Space separated list is supported,
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
ADDITIONAL_DRIVERS="RTL8821CU"
ADDITIONAL_DRIVERS="RTL8821CU RTL8812AU RTL8821AU RTL8812BU"
# build and install bluetooth support (yes / no)
BLUETOOTH_SUPPORT="yes"

View file

@ -50,7 +50,9 @@ makeinstall_target() {
--with-date_time \
--with-filesystem \
--with-iostreams \
--with-program_options \
--with-python \
--with-locale \
--with-random \
--with-regex -sICU_PATH="${SYSROOT_PREFIX}/usr" \
--with-serialization \

View file

@ -0,0 +1,11 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2022-present Fewtarius
PKG_NAME="libao"
PKG_VERSION="cafce902"
PKG_LICENSE="GPL"
PKG_SITE="https://gitlab.xiph.org/xiph/libao"
PKG_URL="${PKG_SITE}.git"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="Audio output portability library."
PKG_TOOLCHAIN="autotools"

View file

@ -2,7 +2,7 @@
# Copyright (C) 2019-present Shanti Gilbert (https://github.com/shantigilbert)
PKG_NAME="PPSSPPSDL"
PKG_VERSION="47ff758af11369f1dc602ec39cc710f33ac44bc3"
PKG_VERSION="97bc7a1ae3b3a87bff211bd3ece33e9c3012725a"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"

View file

@ -2,8 +2,8 @@
# Copyright (C) 2018-present 5schatten (https://github.com/5schatten)
PKG_NAME="hatarisa"
PKG_VERSION="f95b4fbc760371dbb60a16128408eb51260d3846"
PKG_SHA256="d6e8a04be1e9f9b0188461487177a9306c759a2d16c1a5d54e751cfa14f20c13"
PKG_VERSION="c895a8b5f0f5637bc0ed8e7f17633823558953bd"
PKG_SHA256="a765713166dce3ce9275a88846190009f00bf88e2de22ff4735c12187e842a4f"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/hatari/hatari"
PKG_URL="https://github.com/hatari/hatari/archive/$PKG_VERSION.tar.gz"

View file

@ -54,13 +54,13 @@ EnableDebugger = False
# Save state slot (0-9) to use when saving/loading the emulator state
CurrentStateSlot = 0
# Path to directory where screenshots are saved. If this is blank, the default value of ${UserDataPath}/screenshot will be used
ScreenshotPath = "/storage/roms/n64"
ScreenshotPath = "/storage/roms/screenshots"
# Path to directory where emulator save states (snapshots) are saved. If this is blank, the default value of ${UserDataPath}/save will be used
SaveStatePath = "/storage/roms/n64"
# Path to directory where SRAM/EEPROM data (in-game saves) are stored. If this is blank, the default value of ${UserDataPath}/save will be used
SaveSRAMPath = "/storage/roms/n64"
# Path to a directory to search when looking for shared data files
SharedDataPath = "/storage/roms/gamedata/mupen64plussa"
SharedDataPath = "/storage/.config/game/configs/mupen64plussa"
# Force number of cycles per emulated instruction
CountPerOp = 0
# Randomize PI/SI Interrupt Timing
@ -110,23 +110,23 @@ Kbd Mapping Frame Advance = 47
# SDL keysym for pressing the game shark button
Kbd Mapping Gameshark = 103
# Joystick event string for stopping the emulator
Joy Mapping Stop = "J0B12/B13"
Joy Mapping Stop = "J0B8/B9"
# Joystick event string for switching between fullscreen/windowed modes
Joy Mapping Fullscreen = ""
# Joystick event string for saving the emulator state
Joy Mapping Save State = "J0B12/B5"
Joy Mapping Save State = "J0B8/B5"
# Joystick event string for loading the emulator state
Joy Mapping Load State = "J0B12/B4"
Joy Mapping Load State = "J0B8/B4"
# Joystick event string for advancing the save state slot
Joy Mapping Increment Slot = ""
# Joystick event string for resetting the emulator
Joy Mapping Reset = ""
Joy Mapping Reset = "J0B8/B0"
# Joystick event string for slowing down the emulator
Joy Mapping Speed Down = ""
# Joystick event string for speeding up the emulator
Joy Mapping Speed Up = ""
# Joystick event string for taking a screenshot
Joy Mapping Screenshot = ""
Joy Mapping Screenshot = "J0B8/B3"
# Joystick event string for pausing the emulator
Joy Mapping Pause = "J0B12/B1"
# Joystick event string for muting/unmuting the sound
@ -140,7 +140,7 @@ Joy Mapping Fast Forward = ""
# Joystick event string for advancing by one frame when paused
Joy Mapping Frame Advance = ""
# Joystick event string for pressing the game shark button
Joy Mapping Gameshark = ""
Joy Mapping Gameshark = "J0B8/B2"
# SDL keysym for save slot 0
Kbd Mapping Slot 0 = 48
# SDL keysym for save slot 1
@ -172,7 +172,7 @@ mode = 2
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = 0
# SDL joystick name (or Keyboard)
name = "GO-Super Gamepad"
name = "retrogame_joypad"
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = True
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
@ -186,25 +186,25 @@ AnalogDeadzone = "0,0"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = "button(11)"
DPad L = "button(10)"
DPad D = "button(9)"
DPad U = "button(8)"
Start = "button(13)"
Z Trig = "button(15)"
B Button = "button(3)"
A Button = "button(0)"
C Button R = "button(7)"
C Button L = "button(2)"
C Button D = "button(1)"
C Button U = "button(6)"
R Trig = "button(5)"
L Trig = "button(4)"
Mempak switch = ""
Rumblepak switch = ""
DPad R = button(16)
DPad L = button(15)
DPad D = button(14)
DPad U = button(13)
Start = button(9)
Z Trig = button(5)
B Button = button(3)
A Button = button(0)
C Button R = axis(2+)
C Button L = axis(2-)
C Button D = axis(3+)
C Button U = axis(3-)
R Trig = button(7)
L Trig = button(4)
Mempak switch =
Rumblepak switch =
# Analog axis configuration mappings
X Axis = "axis(0-,0+)"
Y Axis = "axis(1-,1+)"
X Axis = axis(0-,0+)
Y Axis = axis(1-,1+)
[Input-SDL-Control2]
@ -627,4 +627,3 @@ ForcePolygonOffset = False
PolygonOffsetFactor = 0.000000
# Is multiplied by an implementation-specific value to create a constant depth offset
PolygonOffsetUnits = 0.000000

View file

@ -1,23 +1,114 @@
#!/bin/bash
if [[ ! -f "/storage/roms/gamedata/mupen64plussa/InputAutoCfg.ini" ]]; then
mkdir -p /storage/roms/gamedata/mupen64plussa
cp /usr/local/share/mupen64plus/InputAutoCfg.ini /storage/roms/gamedata/mupen64plussa/
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2021-present 351ELEC (https://github.com/351ELEC)
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
. /etc/profile
echo 'starting mupen64plus stand alone emulator...'
CORE="$1"
ROM="${2##*/}"
PLATFORM="n64"
SHARE="/usr/local/share/mupen64plus"
INPUTCFGBASE="$SHARE/InputAutoCfg.ini"
CONF="/storage/.config/system/configs/system.cfg"
M64PCONF="/storage/.config/game/configs/mupen64plussa/mupen64plus.cfg"
TMP="/tmp/mupen64plussa"
GAMEDATA="/storage/.config/game/configs/mupen64plussa"
rm -rf $TMP
mkdir -p $TMP
function get_setting() {
#We look for the setting on the ROM first, if not found we search for platform and lastly we search globally
PAT="s|^${PLATFORM}\[\"${ROM}\"\].*${1}=\(.*\)|\1|p"
EES=$(sed -n "${PAT}" "${CONF}" | head -1)
if [ -z "${EES}" ]; then
PAT="s|^${PLATFORM}[\.-]${1}=\(.*\)|\1|p"
EES=$(sed -n "${PAT}" "${CONF}" | head -1)
fi
if [ -z "${EES}" ]; then
PAT="s|^global[\.-].*${1}=\(.*\)|\1|p"
EES=$(sed -n "${PAT}" "${CONF}" | head -1)
fi
[ -z "${EES}" ] && EES="false"
}
if [[ ! -f "$GAMEDATA/custominput.ini" ]]; then
mkdir -p $GAMEDATA
cp $SHARE/default.ini $GAMEDATA/custominput.ini
fi
if [[ ! -f "/storage/.config/mupen64plussa/mupen64plus.cfg" ]]; then
mkdir -p /storage/.config/mupen64plussa
cp /usr/local/share/mupen64plus/mupen64plus.cfg /storage/.config/mupen64plussa/
if [[ ! -f "$M64PCONF" ]]; then
mkdir -p /storage/.config/game/configs/mupen64plussa
cp $SHARE/mupen64plus.cfg $M64PCONF
fi
cp $M64PCONF $TMP
RESOLUTION=$(batocera-resolution "currentResolution")
echo ${RESOLUTION}
RESA=${RESOLUTION%x*}
RESB=${RESOLUTION#*x}
SCREENWIDTH=$((RESA>=RESB ? RESA : RESB))
echo ${SCREENWIDTH}
SCREENHEIGHT=$((RESA<RESB ? RESA : RESB))
echo ${SCREENHEIGHT}
SET_PARAMS="--set Core[SharedDataPath]=$TMP --set Video-Rice[ResolutionWidth]=$SCREENWIDTH"
# Game Aspect Ratio
# Get configuration from system.cfg
get_setting "game_aspect_ratio"
echo ${EES}
if [ "${EES}" == "fullscreen" ]; then
# TODO: Set aspect ratio to fullscreen
SET_PARAMS="$SET_PARAMS --set Video-General[ScreenWidth]=$SCREENWIDTH --set Video-General[ScreenHeight]=$SCREENHEIGHT --set Video-Glide64mk2[aspect]=2"
else
# TODO: Set aspect ratio to 4:3
GAMEWIDTH=$(((SCREENHEIGHT * 4) / 3))
SET_PARAMS="$SET_PARAMS --set Video-General[ScreenWidth]=$GAMEWIDTH --set Video-General[ScreenHeight]=$SCREENHEIGHT"
fi
# Game Aspect Ratio
# Get configuration from system.cfg
get_setting "input_configuration"
echo ${EES}
if [ "${EES}" == "zlswap" ]; then
#cat $INPUTCFGBASE <(echo) $SHARE/zlswap.ini > $TMP/InputAutoCfg.ini
cp $SHARE/zlswap.ini $TMP/InputAutoCfg.ini
elif [ "${EES}" == "custom" ]; then
cp $GAMEDATA/custominput.ini $TMP/InputAutoCfg.ini
else
# Default
cp $SHARE/default.ini $TMP/InputAutoCfg.ini
fi
# Show FPS
# Get configuration from system.cfg
get_setting "show_fps"
echo ${EES}
if [ "${EES}" == "auto" ] || [ "${EES}" == "disabled" ] || [ "${EES}" == "false" ] || [ "${EES}" == "none" ] || [ "${EES}" == "0" ]; then
SET_PARAMS="$SET_PARAMS --set Video-Glide64mk2[show_fps]=0 --set Video-Rice[ShowFPS]=\"False\""
else
SET_PARAMS="$SET_PARAMS --set Video-Glide64mk2[show_fps]=1 --set Video-Rice[ShowFPS]=\"True\""
fi
echo ${SET_PARAMS}
case $1 in
"m64p_gl64mk2")
/usr/local/bin/mupen64plus --configdir /storage/.config/mupen64plussa --gfx mupen64plus-video-glide64mk2 "$2"
/usr/local/bin/mupen64plus --configdir $TMP --gfx mupen64plus-video-glide64mk2 $SET_PARAMS "$2"
;;
"m64p_rice")
/usr/local/bin/mupen64plus --configdir /storage/.config/mupen64plussa --gfx mupen64plus-video-rice "$2"
/usr/local/bin/mupen64plus --configdir $TMP --gfx mupen64plus-video-rice $SET_PARAMS "$2"
;;
*)
/usr/local/bin/mupen64plus --configdir /storage/.config/mupen64plussa --gfx mupen64plus-video-rice "$2"
/usr/local/bin/mupen64plus --configdir $TMP --gfx mupen64plus-video-rice $SET_PARAMS "$2"
;;
esac

View file

@ -2,8 +2,8 @@
# Copyright (C) 2019-present Shanti Gilbert (https://github.com/shantigilbert)
PKG_NAME="mupen64plussa-core"
PKG_VERSION="1f495d5514c04b0ab1af3a86851f0f5270d4cb00"
PKG_SHA256="9e2a23f97c71cb59463a24560acdd8d1db1aadcc26fd50f1642f3ccac6d05f1f"
PKG_VERSION="49dd0bfc8f48afd04ddd1762ea9d9e89a85fc8a2"
PKG_SHA256="dc1c344044bebaacc1aa4dcc7cb072cbd3677261bfe4f4e748fe6144f02f08b3"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/mupen64plus/mupen64plus-core"

View file

@ -2124,26 +2124,26 @@ Rumblepak switch =
X Axis = axis(0+,0-)
Y Axis = axis(1+,1-)
; RG351MP Gamepad
; RG552 Gamepad
[retrogame_joypad]
plugged = True
mouse = False
AnalogDeadzone = 0,0
AnalogPeak = 32768,32768
DPad R = button(11)
DPad L = button(10)
DPad D = button(9)
DPad U = button(8)
Start = button(13)
Z Trig = button(15)
DPad R = button(16)
DPad L = button(15)
DPad D = button(14)
DPad U = button(13)
Start = button(9)
Z Trig = button(4)
B Button = button(3)
A Button = button(0)
C Button R = button(7)
C Button L = button(2)
C Button D = button(1)
C Button U = button(6)
C Button R = axis(2+)
C Button L = axis(2-)
C Button D = axis(3+)
C Button U = axis(3-)
R Trig = button(5)
L Trig = button(4)
L Trig = button(6)
Mempak switch =
Rumblepak switch =
# Analog axis configuration mappings

View file

@ -0,0 +1,25 @@
; RG552 Gamepad - default.ini
[retrogame_joypad]
plugged = True
mouse = False
AnalogDeadzone = 0,0
AnalogPeak = 32768,32768
DPad R = button(16)
DPad L = button(15)
DPad D = button(14)
DPad U = button(13)
Start = button(9)
Z Trig = button(6)
B Button = button(3)
A Button = button(0)
C Button R = axis(2+)
C Button L = axis(2-)
C Button D = axis(3+)
C Button U = axis(3-)
R Trig = button(5)
L Trig = button(4)
Mempak switch =
Rumblepak switch =
# Analog axis configuration mappings
X Axis = axis(0-,0+)
Y Axis = axis(1-,1+)

View file

@ -0,0 +1,25 @@
; RG552 Gamepad - zlswap.ini
[retrogame_joypad]
plugged = True
mouse = False
AnalogDeadzone = 0,0
AnalogPeak = 32768,32768
DPad R = button(16)
DPad L = button(15)
DPad D = button(14)
DPad U = button(13)
Start = button(9)
Z Trig = button(4)
B Button = button(3)
A Button = button(0)
C Button R = axis(2+)
C Button L = axis(2-)
C Button D = axis(3+)
C Button U = axis(3-)
R Trig = button(5)
L Trig = button(6)
Mempak switch =
Rumblepak switch =
# Analog axis configuration mappings
X Axis = axis(0-,0+)
Y Axis = axis(1-,1+)

View file

@ -39,7 +39,6 @@ makeinstall_target() {
#$STRIP ${UPLUGINDIR}/mupen64plus-input-sdl.so
chmod 0644 ${UPLUGINDIR}/mupen64plus-input-sdl.so
mkdir -p ${USHAREDIR}
cp ${PKG_DIR}/config/InputAutoCfg.ini ${USHAREDIR}
cp ${PKG_DIR}/config/* ${USHAREDIR}
chmod 644 ${USHAREDIR}/InputAutoCfg.ini
}

View file

@ -2,8 +2,8 @@
# Copyright (C) 2019-present Shanti Gilbert (https://github.com/shantigilbert)
PKG_NAME="mupen64plussa-ui-console"
PKG_VERSION="32e27344214946f0dce3cd2b4fff152a3538bd8f"
PKG_SHA256="7d4a0a71545caec19d007f34038cffaee36b75d27de615cd4e175bb5ab2e227d"
PKG_VERSION="b5f62979ed77e526877c9c67dbb8568a3511347c"
PKG_SHA256="0e7da477e58652ecadcf78a474fd9007f613ba9062364bf197ea88f5a7c12ed1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/mupen64plus/mupen64plus-ui-console"

View file

@ -0,0 +1,76 @@
diff --git a/src/Config.cpp b/src/Config.cpp
index 961a1c7..1b4ef28 100644
--- a/src/Config.cpp
+++ b/src/Config.cpp
@@ -425,6 +425,12 @@ static void ReadConfiguration(void)
windowSetting.uDisplayWidth = ConfigGetParamInt(l_ConfigVideoGeneral, "ScreenWidth");
windowSetting.uDisplayHeight = ConfigGetParamInt(l_ConfigVideoGeneral, "ScreenHeight");
windowSetting.bVerticalSync = ConfigGetParamBool(l_ConfigVideoGeneral, "VerticalSync");
+ windowSetting.uResolutionWidth = ConfigGetParamInt(l_ConfigVideoRice, "ResolutionWidth");
+ if (windowSetting.uResolutionWidth) {
+ windowSetting.uXOffset = (windowSetting.uResolutionWidth - windowSetting.uDisplayWidth)/2;
+ } else {
+ windowSetting.uXOffset = 0;
+ }
defaultRomOptions.N64FrameBufferEmuType = ConfigGetParamInt(l_ConfigVideoRice, "FrameBufferSetting");
defaultRomOptions.N64FrameBufferWriteBackControl = ConfigGetParamInt(l_ConfigVideoRice, "FrameBufferWriteBackControl");
diff --git a/src/OGLRender.cpp b/src/OGLRender.cpp
index 6f9d0e2..6618d21 100644
--- a/src/OGLRender.cpp
+++ b/src/OGLRender.cpp
@@ -935,7 +935,7 @@ void OGLRender::UpdateScissor()
uint32 height = (gRDP.scissor.right*gRDP.scissor.bottom)/width;
glEnable(GL_SCISSOR_TEST);
OPENGL_CHECK_ERRORS;
- glScissor(0, int(height*windowSetting.fMultY+windowSetting.statusBarHeightToUse),
+ glScissor(windowSetting.uXOffset, int(height*windowSetting.fMultY+windowSetting.statusBarHeightToUse),
int(width*windowSetting.fMultX), int(height*windowSetting.fMultY) );
OPENGL_CHECK_ERRORS;
}
@@ -956,13 +956,13 @@ void OGLRender::ApplyRDPScissor(bool force)
uint32 height = (gRDP.scissor.right*gRDP.scissor.bottom)/width;
glEnable(GL_SCISSOR_TEST);
OPENGL_CHECK_ERRORS;
- glScissor(0, int(height*windowSetting.fMultY+windowSetting.statusBarHeightToUse),
+ glScissor(windowSetting.uXOffset, int(height*windowSetting.fMultY+windowSetting.statusBarHeightToUse),
int(width*windowSetting.fMultX), int(height*windowSetting.fMultY) );
OPENGL_CHECK_ERRORS;
}
else
{
- glScissor(int(gRDP.scissor.left*windowSetting.fMultX), int((windowSetting.uViHeight-gRDP.scissor.bottom)*windowSetting.fMultY+windowSetting.statusBarHeightToUse),
+ glScissor(int(gRDP.scissor.left*windowSetting.fMultX + windowSetting.uXOffset), int((windowSetting.uViHeight-gRDP.scissor.bottom)*windowSetting.fMultY+windowSetting.statusBarHeightToUse),
int((gRDP.scissor.right-gRDP.scissor.left)*windowSetting.fMultX), int((gRDP.scissor.bottom-gRDP.scissor.top)*windowSetting.fMultY ));
OPENGL_CHECK_ERRORS;
}
@@ -976,7 +976,7 @@ void OGLRender::ApplyScissorWithClipRatio(bool force)
glEnable(GL_SCISSOR_TEST);
OPENGL_CHECK_ERRORS;
- glScissor(windowSetting.clipping.left, int((windowSetting.uViHeight-gRSP.real_clip_scissor_bottom)*windowSetting.fMultY)+windowSetting.statusBarHeightToUse,
+ glScissor(windowSetting.clipping.left + windowSetting.uXOffset, int((windowSetting.uViHeight-gRSP.real_clip_scissor_bottom)*windowSetting.fMultY)+windowSetting.statusBarHeightToUse,
windowSetting.clipping.width, windowSetting.clipping.height);
OPENGL_CHECK_ERRORS;
@@ -1019,7 +1019,7 @@ void OGLRender::glViewportWrapper(GLint x, GLint y, GLsizei width, GLsizei heigh
mflag=flag;
glLoadIdentity();
OPENGL_CHECK_ERRORS;
- glViewport(x,y,width,height);
+ glViewport(windowSetting.uXOffset + x,y,width,height);
OPENGL_CHECK_ERRORS;
}
}
diff --git a/src/Video.h b/src/Video.h
index 7fbbcaa..25812c9 100644
--- a/src/Video.h
+++ b/src/Video.h
@@ -37,6 +37,7 @@ typedef struct {
float fViWidth, fViHeight;
unsigned short uViWidth, uViHeight;
unsigned short uDisplayWidth, uDisplayHeight;
+ unsigned short uResolutionWidth, uXOffset;
BOOL bDisplayFullscreen;
BOOL bVerticalSync;

View file

@ -3,7 +3,8 @@
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="mupen64plussa"
PKG_VERSION=""
PKG_VERSION="ac505d43051a4ffbe7a05608afaa865631f27eb7"
PKG_SHA256=""
PKG_LICENSE="GPL"
PKG_SITE="https://mupen64plus.org/"
PKG_URL=""

View file

@ -2,7 +2,7 @@
# Copyright (C) 2021-present 351ELEC (https://github.com/351ELEC)
PKG_NAME="retroarch"
PKG_VERSION="3e4201ed3038eb56da01d2c5b3851d428dc6b333"
PKG_VERSION="6d67c1650773090a2e4fa09b333280b308c6c568"
PKG_SITE="https://github.com/libretro/RetroArch"
PKG_URL="$PKG_SITE.git"
PKG_LICENSE="GPLv3"
@ -92,6 +92,18 @@ makeinstall_target() {
}
post_install() {
mkdir -p ${INSTALL}/etc/retroarch-joypad-autoconfig
cp -r ${PKG_DIR}/gamepads/* ${INSTALL}/etc/retroarch-joypad-autoconfig
# Remove unnecesary Retroarch Assets and overlays
for i in branding nuklear nxrgui pkg switch wallpapers zarch COPYING; do
rm -rf "${INSTALL}/usr/share/retroarch-assets/$i"
done
for i in automatic dot-art flatui neoactive pixel retroactive retrosystem systematic convert.sh NPMApng2PMApng.py; do
rm -rf "${INSTALL}/usr/share/retroarch-assets/xmb/$i"
done
enable_service retroarch.service
enable_service tmp-cores.mount
enable_service tmp-joypads.mount

View file

@ -1,22 +1,21 @@
diff --git a/menu/drivers/ozone.c b/menu/drivers/ozone.c
index cab4491028..97a614ff63 100644
--- a/menu/drivers/ozone.c
+++ b/menu/drivers/ozone.c
@@ -6837,7 +6837,7 @@ static void *ozone_init(void **userdata, bool video_is_threaded)
diff -rupN retroarch.orig/menu/drivers/ozone.c retroarch/menu/drivers/ozone.c
--- retroarch.orig/menu/drivers/ozone.c 2022-03-12 06:46:06.484390460 -0500
+++ retroarch/menu/drivers/ozone.c 2022-03-12 06:46:56.572060794 -0500
@@ -7066,7 +7066,7 @@ static void *ozone_init(void **userdata,
ozone->last_width = width;
ozone->last_height = height;
ozone->last_scale_factor = gfx_display_get_dpi_scale(p_disp,
- settings, width, height, false, false);
+ settings, width, height, false, false) * 2.000f;
ozone->last_thumbnail_scale_factor = settings->floats.ozone_thumbnail_scale_factor;
file_list_initialize(&ozone->selection_buf_old);
@@ -7902,7 +7902,7 @@ static void ozone_render(void *data,
@@ -8166,7 +8166,7 @@ static void ozone_render(void *data,
/* Check whether screen dimensions or menu scale
* factor have changed */
scale_factor = gfx_display_get_dpi_scale(p_disp, settings,
- width, height, false, false);
+ width, height, false, false) * 2.000f;
thumbnail_scale_factor = settings->floats.ozone_thumbnail_scale_factor;
if ((scale_factor != ozone->last_scale_factor) ||
(width != ozone->last_width) ||

View file

@ -0,0 +1,12 @@
diff -rupN retroarch.orig/menu/menu_setting.c retroarch/menu/menu_setting.c
--- retroarch.orig/menu/menu_setting.c 2022-03-05 15:34:24.206615672 -0500
+++ retroarch/menu/menu_setting.c 2022-03-05 20:09:51.435336191 -0500
@@ -9321,7 +9321,7 @@ static bool setting_append_list(
CONFIG_ACTION(
list, list_info,
MENU_ENUM_LABEL_QUIT_RETROARCH,
- MENU_ENUM_LABEL_VALUE_RESTART_RETROARCH,
+ MENU_ENUM_LABEL_VALUE_QUIT_RETROARCH,
&group_info,
&subgroup_info,
parent_group);

View file

@ -3,8 +3,8 @@
# Copyright (C) 2020-present Fewtarius
PKG_NAME="scummvmsa"
PKG_VERSION="fa9f8850bfaa8ec7dc9cf750e5861a5bf6140add"
PKG_SHA256="26a7eca69f96a13a8cd66624c98a37e7a4a72fdcf5e6897cdeacb6e172df91d2"
PKG_VERSION="be3e42a2bb29637905c5be7d735788833fed7ace"
PKG_SHA256="cbe0a4b4c122d295dc75321756a3a6625b4dc522fe470f791b747cf3354db1a8"
PKG_REV="1"
PKG_LICENSE="GPL2"
PKG_SITE="https://github.com/scummvm/scummvm"

View file

@ -0,0 +1,52 @@
# VICE hotkey mapping file
#
# A hotkey map is read in as a patch to the current map.
#
# File format:
# - comment lines start with '#'
# - keyword lines start with '!keyword'
# - normal line has 'keynum path&to&menuitem'
#
# Keywords and their lines are:
# '!CLEAR' clear all mappings
#
!CLEAR
300 Machine settings&Joystick settings&Swap native joystick ports
1072 Drive&Attach disk image to drive 10
1073 Drive&Attach disk image to drive 11
1076 Printer&Printer #4 form feed
1077 Printer&Printer #5 form feed
1078 Printer&Printer #6 form feed
1080 Drive&Attach disk image to drive 8
1081 Drive&Attach disk image to drive 9
1121 Autostart image
1122 Statusbar
1123 Cartridge&Attach CRT image
1125 Snapshot&Set recording milestone
1128 Monitor&Start monitor
1129 Drive&Fliplist settings&Add current image to fliplist
1130 Machine settings&Joystick settings&Swap native joystick ports
1131 Drive&Fliplist settings&Remove current image from fliplist
1132 Snapshot&Load snapshot image
1133 Machine settings&Mouse emulation&Grab mouse events
1134 Drive&Fliplist settings&Attach next image in fliplist
1136 Pause
1137 Quit emulator
1139 Snapshot&Save snapshot image
1140 Tape&Attach tape image
1141 Snapshot&Return to milestone
1143 Speed settings&Warp mode
1146 Cartridge&Cartridge freeze
1151 Edit&Copy to Clipboard
1301 Edit&Paste from Clipboard
1314 Reset&Soft
1315 Snapshot&Quickload snapshot.vsf
1316 Snapshot&Quicksave snapshot.vsf
1317 Reset&Hard
1642 Machine settings&Joystick settings&Allow keyset joystick
1648 Advance Frame
1650 Save media file
1651 Save media file&Create sound recording&Stop recording
3182 Drive&Fliplist settings&Attach previous image in fliplist

View file

@ -0,0 +1,52 @@
# VICE hotkey mapping file
#
# A hotkey map is read in as a patch to the current map.
#
# File format:
# - comment lines start with '#'
# - keyword lines start with '!keyword'
# - normal line has 'keynum path&to&menuitem'
#
# Keywords and their lines are:
# '!CLEAR' clear all mappings
#
!CLEAR
300 Machine settings&Joystick settings&Swap native joystick ports
1072 Drive&Attach disk image to drive 10
1073 Drive&Attach disk image to drive 11
1076 Printer&Printer #4 form feed
1077 Printer&Printer #5 form feed
1078 Printer&Printer #6 form feed
1080 Drive&Attach disk image to drive 8
1081 Drive&Attach disk image to drive 9
1121 Autostart image
1122 Statusbar
1123 Cartridge&Attach CRT image
1125 Snapshot&Set recording milestone
1128 Monitor&Start monitor
1129 Drive&Fliplist settings&Add current image to fliplist
1130 Machine settings&Joystick settings&Swap native joystick ports
1131 Drive&Fliplist settings&Remove current image from fliplist
1132 Snapshot&Load snapshot image
1133 Machine settings&Mouse emulation&Grab mouse events
1134 Drive&Fliplist settings&Attach next image in fliplist
1136 Pause
1137 Quit emulator
1139 Snapshot&Save snapshot image
1140 Tape&Attach tape image
1141 Snapshot&Return to milestone
1143 Speed settings&Warp mode
1146 Cartridge&Cartridge freeze
1151 Edit&Copy to Clipboard
1301 Edit&Paste from Clipboard
1314 Reset&Soft
1315 Snapshot&Quickload snapshot.vsf
1316 Snapshot&Quicksave snapshot.vsf
1317 Reset&Hard
1642 Machine settings&Joystick settings&Allow keyset joystick
1648 Advance Frame
1650 Save media file
1651 Save media file&Create sound recording&Stop recording
3182 Drive&Fliplist settings&Attach previous image in fliplist

View file

@ -0,0 +1,48 @@
# VICE hotkey mapping file
#
# A hotkey map is read in as a patch to the current map.
#
# File format:
# - comment lines start with '#'
# - keyword lines start with '!keyword'
# - normal line has 'keynum path&to&menuitem'
#
# Keywords and their lines are:
# '!CLEAR' clear all mappings
#
!CLEAR
1072 Drive&Attach disk image to drive 10
1073 Drive&Attach disk image to drive 11
1076 Printer&Printer #4 form feed
1077 Printer&Printer #5 form feed
1078 Printer&Printer #6 form feed
1080 Drive&Attach disk image to drive 8
1081 Drive&Attach disk image to drive 9
1121 Autostart image
1122 Statusbar
1125 Snapshot&Set recording milestone
1128 Monitor&Start monitor
1129 Drive&Fliplist settings&Add current image to fliplist
1131 Drive&Fliplist settings&Remove current image from fliplist
1132 Snapshot&Load snapshot image
1133 Machine settings&Mouse emulation&Grab mouse events
1134 Drive&Fliplist settings&Attach next image in fliplist
1136 Pause
1137 Quit emulator
1139 Snapshot&Save snapshot image
1140 Tape&Attach tape image
1141 Snapshot&Return to milestone
1143 Speed settings&Warp mode
1151 Edit&Copy to Clipboard
1301 Edit&Paste from Clipboard
1314 Reset&Soft
1315 Snapshot&Quickload snapshot.vsf
1316 Snapshot&Quicksave snapshot.vsf
1317 Reset&Hard
1642 Machine settings&Joystick settings&Allow keyset joystick
1648 Advance Frame
1650 Save media file
1651 Save media file&Create sound recording&Stop recording
3182 Drive&Fliplist settings&Attach previous image in fliplist

View file

@ -0,0 +1,64 @@
# VICE joystick mapping file
#
# A joystick map is read in as patch to the current map.
#
# File format:
# - comment lines start with '#'
# - keyword lines start with '!keyword'
# - normal line has 'joynum inputtype inputindex action'
#
# Keywords and their lines are:
# '!CLEAR' clear all mappings
#
# inputtype:
# 0 axis
# 1 button
# 2 hat
# 3 ball
#
# Note that each axis has 2 inputindex entries and each hat has 4.
#
# action [action_parameters]:
# 0 none
# 1 port pin joystick (pin: 1/2/4/8/16/32/64/128/256/512/1024/2048 = u/d/l/r/fire(A)/fire2(B)/fire3(X)/Y/LB/RB/select/start)
# 2 row col keyboard
# 3 map
# 4 UI activate
# 5 path&to&item UI function
# 6 pot axis joystick (pot: 1/2/3/4 = x1/y1/x2/y2)
#
!CLEAR
# retrogame_joypad
0 0 0 1 0 8
0 0 1 1 0 4
0 0 2 1 0 2
0 0 3 1 0 1
0 0 4 1 1 8
0 0 5 1 1 4
0 0 6 1 1 2
0 0 7 1 1 1
0 1 0 1 0 16
0 1 1 4
0 1 2 3
0 1 3 1 1 16
0 1 4 1 0 16
0 1 5 4
0 1 6 3
0 1 7 5 Machine settings&Joystick settings&Swap native joystick ports
0 1 8 5 Virtual keyboard
0 1 9 4
0 1 10 3
0 1 11 1 1 16
0 1 12 1 0 16
0 1 13 1 0 1
0 1 14 1 0 2
0 1 15 1 0 4
0 1 16 1 0 8

View file

@ -0,0 +1,64 @@
# VICE joystick mapping file
#
# A joystick map is read in as patch to the current map.
#
# File format:
# - comment lines start with '#'
# - keyword lines start with '!keyword'
# - normal line has 'joynum inputtype inputindex action'
#
# Keywords and their lines are:
# '!CLEAR' clear all mappings
#
# inputtype:
# 0 axis
# 1 button
# 2 hat
# 3 ball
#
# Note that each axis has 2 inputindex entries and each hat has 4.
#
# action [action_parameters]:
# 0 none
# 1 port pin joystick (pin: 1/2/4/8/16/32/64/128/256/512/1024/2048 = u/d/l/r/fire(A)/fire2(B)/fire3(X)/Y/LB/RB/select/start)
# 2 row col keyboard
# 3 map
# 4 UI activate
# 5 path&to&item UI function
# 6 pot axis joystick (pot: 1/2/3/4 = x1/y1/x2/y2)
#
!CLEAR
# retrogame_joypad
0 0 0 1 0 8
0 0 1 1 0 4
0 0 2 1 0 2
0 0 3 1 0 1
0 0 4 1 1 8
0 0 5 1 1 4
0 0 6 1 1 2
0 0 7 1 1 1
0 1 0 1 0 16
0 1 1 4
0 1 2 3
0 1 3 1 1 16
0 1 4 1 0 16
0 1 5 4
0 1 6 3
0 1 7 5 Machine settings&Joystick settings&Swap native joystick ports
0 1 8 5 Virtual keyboard
0 1 9 4
0 1 10 3
0 1 11 1 1 16
0 1 12 1 0 16
0 1 13 1 0 1
0 1 14 1 0 2
0 1 15 1 0 4
0 1 16 1 0 8

View file

@ -0,0 +1,64 @@
# VICE joystick mapping file
#
# A joystick map is read in as patch to the current map.
#
# File format:
# - comment lines start with '#'
# - keyword lines start with '!keyword'
# - normal line has 'joynum inputtype inputindex action'
#
# Keywords and their lines are:
# '!CLEAR' clear all mappings
#
# inputtype:
# 0 axis
# 1 button
# 2 hat
# 3 ball
#
# Note that each axis has 2 inputindex entries and each hat has 4.
#
# action [action_parameters]:
# 0 none
# 1 port pin joystick (pin: 1/2/4/8/16/32/64/128/256/512/1024/2048 = u/d/l/r/fire(A)/fire2(B)/fire3(X)/Y/LB/RB/select/start)
# 2 row col keyboard
# 3 map
# 4 UI activate
# 5 path&to&item UI function
# 6 pot axis joystick (pot: 1/2/3/4 = x1/y1/x2/y2)
#
!CLEAR
# retrogame_joypad
0 0 0 1 0 8
0 0 1 1 0 4
0 0 2 1 0 2
0 0 3 1 0 1
0 0 4 1 1 8
0 0 5 1 1 4
0 0 6 1 1 2
0 0 7 1 1 1
0 1 0 1 0 16
0 1 1 4
0 1 2 3
0 1 3 1 1 16
0 1 4 1 0 16
0 1 5 4
0 1 6 3
0 1 7 5 Machine settings&Joystick settings&Swap native joystick ports
0 1 8 5 Virtual keyboard
0 1 9 4
0 1 10 3
0 1 11 1 1 16
0 1 12 1 0 16
0 1 13 1 0 1
0 1 14 1 0 2
0 1 15 1 0 4
0 1 16 1 0 8

View file

@ -0,0 +1,55 @@
[C64SC]
SoundDeviceName="alsa"
SDLCustomWidth=640
SDLCustomHeight=480
MachineVideoStandard=2
IECReset=1
CIA1Model=0
CIA2Model=0
VICIIModel=3
SidModel=0
JoyDevice1=4
JoyDevice2=4
GlueLogic=0
[C128]
SoundDeviceName="alsa"
SDLCustomWidth=640
SDLCustomHeight=480
MachineVideoStandard=2
IECReset=1
CIA1Model=0
CIA2Model=0
VICIIModel=3
SidModel=0
JoyDevice1=4
JoyDevice2=4
GlueLogic=0
[VIC-20]
SoundDeviceName="alsa"
SDLCustomWidth=640
SDLCustomHeight=480
MachineVideoStandard=2
IECReset=1
CIA1Model=0
CIA2Model=0
VICIIModel=3
SidModel=0
JoyDevice1=4
JoyDevice2=4
GlueLogic=0
[PLUS4]
SoundDeviceName="alsa"
SDLCustomWidth=640
SDLCustomHeight=480
MachineVideoStandard=2
IECReset=1
CIA1Model=0
CIA2Model=0
VICIIModel=3
SidModel=0
JoyDevice1=4
JoyDevice2=4
GlueLogic=0

View file

@ -0,0 +1,23 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2020-present Fewtarius
PKG_NAME="vicesa"
PKG_VERSION="3.6.1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"
PKG_SITE="https://sourceforge.net/projects/vice-emu"
PKG_URL="${PKG_SITE}/files/releases/vice-${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain xa:host SDL2 ${OPENGLES}"
PKG_PRIORITY="optional"
PKG_SECTION="emulators"
PKG_SHORTDESC="Commodore 8-bit Emulator"
PKG_LONGDESC="Commodore 8-bit Emulator"
PKG_CONFIGURE_OPTS_TARGET+="--disable-pdf-docs"
post_makeinstall_target() {
mkdir -p ${INSTALL}/usr/config/vice
cp -f ${PKG_DIR}/config/${DEVICE}/* ${INSTALL}/usr/config/vice
cp -f ${PKG_DIR}/sources/* ${INSTALL}/usr/bin
chmod 0755 ${INSTALL}/usr/bin/*
}

View file

@ -0,0 +1,9 @@
#!/bin/sh
# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2021-present - Fewtarius
. /etc/profile
ARG=${1//[\\]/}
export SDL_AUDIODRIVER=alsa
${FAST_CORES} x128 -sounddev alsa -sdl2renderer opengles2 "$ARG"

View file

@ -0,0 +1,10 @@
#!/bin/sh
# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2021-present - Fewtarius
. /etc/profile
ARG=${1//[\\]/}
export SDL_AUDIODRIVER=alsa
echo "[${ARG}]"
${FAST_CORES} x64sc -sounddev alsa -sdl2renderer opengles2 "$ARG"

View file

@ -0,0 +1,10 @@
#!/bin/sh
# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2021-present - Fewtarius
. /etc/profile
ARG=${1//[\\]/}
export SDL_AUDIODRIVER=alsa
echo "[${ARG}]"
${FAST_CORES} xplus4 -sounddev alsa -sdl2renderer opengles2 "$ARG"

View file

@ -0,0 +1,10 @@
#!/bin/sh
# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2021-present - Fewtarius
. /etc/profile
ARG=${1//[\\]/}
export SDL_AUDIODRIVER=alsa
echo "[${ARG}]"
${FAST_CORES} xvic -sounddev alsa -sdl2renderer opengles2 "$ARG"

View file

@ -0,0 +1,47 @@
PKG_NAME="yabasanshiroSA"
PKG_VERSION="f6f41dd6485c638ab661f3acd2951c9522f34450"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/devmiyax/yabause"
PKG_URL="${PKG_SITE}.git"
PKG_DEPENDS_TARGET="toolchain SDL2 boost openal-soft ${OPENGLES} zlib"
PKG_LONGDESC="Yabause is a Sega Saturn emulator and took over as Yaba Sanshiro"
PKG_TOOLCHAIN="cmake-make"
GET_HANDLER_SUPPORT="git"
PKG_GIT_CLONE_BRANCH="pi4"
PKG_BUILD_FLAGS="+speed"
post_unpack() {
# use host versions
sed -i "s|COMMAND m68kmake|COMMAND ${PKG_BUILD}/m68kmake_host|" ${PKG_BUILD}/yabause/src/musashi/CMakeLists.txt
sed -i "s|COMMAND ./bin2c|COMMAND ${PKG_BUILD}/bin2c_host|" ${PKG_BUILD}/yabause/src/retro_arena/nanogui-sdl/CMakeLists.txt
}
pre_make_target() {
# runs on host so make them manually if package is not crosscompile friendly
${HOST_CC} ${PKG_BUILD}/yabause/src/retro_arena/nanogui-sdl/resources/bin2c.c -o ${PKG_BUILD}/bin2c_host
${HOST_CC} ${PKG_BUILD}/yabause/src/musashi/m68kmake.c -o ${PKG_BUILD}/m68kmake_host
}
pre_configure_target() {
PKG_CMAKE_OPTS_TARGET="${PKG_BUILD}/yabause \
-DYAB_PORTS=retro_arena \
-DYAB_WANT_DYNAREC_DEVMIYAX=ON \
-DYAB_WANT_ARM7=ON \
-DCMAKE_TOOLCHAIN_FILE=${PKG_BUILD}/yabause/src/retro_arena/n2.cmake \
-DYAB_WANT_VULKAN=OFF \
-DOPENGL_INCLUDE_DIR=${SYSROOT_PREFIX}/usr/include \
-DOPENGL_opengl_LIBRARY=${SYSROOT_PREFIX}/usr/lib \
-DOPENGL_glx_LIBRARY=${SYSROOT_PREFIX}/usr/lib \
-DLIBPNG_LIB_DIR=${SYSROOT_PREFIX}/usr/lib \
-Dpng_STATIC_LIBRARIES=${SYSROOT_PREFIX}/usr/lib/libpng16.so \
-DCMAKE_BUILD_TYPE=Release"
}
makeinstall_target() {
mkdir -p ${INSTALL}/usr/bin
cp -a ${PKG_BUILD}/src/retro_arena/yabasanshiro ${INSTALL}/usr/bin
cp -a ${PKG_DIR}/sources/* ${INSTALL}/usr/bin
chmod 0755 ${INSTALL}/usr/bin/yabasanshiro.sh
}

View file

@ -0,0 +1,11 @@
--- a/yabause/src/threads.h 2022-01-05 15:41:03.685887385 -0600
+++ b/yabause/src/threads.h 2022-01-05 15:43:05.404177636 -0600
@@ -115,6 +115,8 @@
int YabCopyFile(const char * src, const char * dst);
int YabMakeCleanDir( const char * dirname );
+
+#include <core.h>
int YabNanosleep(u64 ns);
///////////////////////////////////////////////////////////////////////////

View file

@ -0,0 +1,11 @@
--- a/yabause/src/retro_arena/CMakeLists.txt 2022-01-05 15:44:20.891135756 -0600
+++ b/yabause/src/retro_arena/CMakeLists.txt 2022-01-05 15:44:41.738849860 -0600
@@ -22,7 +22,7 @@
add_subdirectory(nanogui-sdl)
#include( ../glfw/external_zlib.cmake )
-include( ${CMAKE_SOURCE_DIR}/CMake/Packages/external_libpng.cmake )
+#include( ${CMAKE_SOURCE_DIR}/CMake/Packages/external_libpng.cmake )
#------------------------------------------------------------------------------
# nlohmann/json

View file

@ -0,0 +1,20 @@
--- a/yabause/src/ygl.h
+++ b/yabause/src/ygl.h
@@ -50,7 +50,6 @@
#include <glsm/glsm.h>
#elif defined(__ANDROID__)
#include <GLES3/gl31.h>
- #include <GLES3/gl3ext.h>
#include <EGL/egl.h>
--- a/yabause/src/nanovg/nanovg_osdcore.c
+++ b/yabause/src/nanovg/nanovg_osdcore.c
@@ -36,7 +36,6 @@
#if defined(_OGLES3_)
#include <GLES3/gl3.h>
-#include <GLES3/gl3ext.h>
#else
#include "ygl.h"
#endif

View file

@ -0,0 +1,85 @@
--- a/yabause/src/retro_arena/main.cpp
+++ b/yabause/src/retro_arena/main.cpp
@@ -286,12 +286,12 @@
// Inisialize home directory
std::string home_dir = getenv("HOME");
- home_dir += "/.yabasanshiro/";
+ home_dir = "/storage/roms/saturn/yabasanshiro/";
struct stat st = {0};
if (stat(home_dir.c_str(), &st) == -1) {
mkdir(home_dir.c_str(), 0700);
}
- std::string bckup_dir = home_dir + "backup.bin";
+ std::string bckup_dir = "/storage/roms/bios/yabasanshiro/backup.bin";
strcpy( buppath, bckup_dir.c_str() );
strcpy( s_savepath, home_dir.c_str() );
g_keymap_filename = home_dir + "keymapv2.json";
@@ -597,7 +597,7 @@
if( ret == 0 ){
char pngname[256];
snprintf(pngname,256,"%s/%s_%d.png", s_savepath, cdip->itemnum, e.user.code);
- fs::copy(tmpfilename, pngname, fs::copy_options::overwrite_existing );
+ system((std::string("cp -f ") + tmpfilename + " " + pngname).c_str());
}
hideMenuScreen();
}
--- a/yabause/src/retro_arena/Preference.cpp
+++ b/yabause/src/retro_arena/Preference.cpp
@@ -17,7 +17,7 @@
}
std::string home_dir = getenv("HOME");
- home_dir += "/.yabasanshiro/";
+ home_dir = "/storage/roms/saturn/yabasanshiro/";
this->filename = home_dir + input_trace_filename + ".config";
--- a/yabause/src/retro_arena/InputManager.cpp
+++ b/yabause/src/retro_arena/InputManager.cpp
@@ -213,7 +213,7 @@
if( SDL_NumJoysticks() == 0 ){
- PADLOG("No joy stic is found force to keyboard\n");
+ PADLOG("No joystick is found force to keyboard\n");
padbits = PerPadAdd(&PORTDATA1);
if( configs.find("player1") == configs.end() ){
return setDefalutSettings(padbits);
@@ -460,22 +460,22 @@
}
Input result;
- inputconfig->getInputByName("a", &result);
+ inputconfig->getInputByName("y", &result);
player[guid]["a"] ={ { "type", input_types[result.type] },{ "id", result.id },{ "value", result.value } };
inputconfig->getInputByName("b", &result);
player[guid]["b"] = { { "type", input_types[result.type] },{ "id", result.id },{ "value", result.value } };
- inputconfig->getInputByName("rightshoulder", &result);
+ inputconfig->getInputByName("a", &result);
player[guid]["c"] = { { "type", input_types[result.type] },{ "id", result.id },{ "value", result.value } } ;
inputconfig->getInputByName("x", &result);
player[guid]["x"] = { { "type", input_types[result.type] },{ "id", result.id },{ "value", result.value } };
- inputconfig->getInputByName("y", &result);
+ inputconfig->getInputByName("leftshoulder", &result);
player[guid]["y"] = { { "type", input_types[result.type] },{ "id", result.id },{ "value", result.value } };
- inputconfig->getInputByName("leftshoulder", &result);
+ inputconfig->getInputByName("rightshoulder", &result);
player[guid]["z"] = { { "type", input_types[result.type] },{ "id", result.id },{ "value", result.value } };
inputconfig->getInputByName("lefttrigger", &result);
@@ -1209,7 +1209,7 @@
std::string InputManager::getConfigPath()
{
std::string path = getenv("HOME");
- path += "/.emulationstation/es_temporaryinput.cfg";
+ path = "/storage/roms/saturn/yabasanshiro/input.cfg";
return path;
}

View file

@ -0,0 +1,169 @@
diff --git a/yabause/src/retro_arena/MenuScreen.cpp b/yabause/src/retro_arena/MenuScreen.cpp
index 33591a44..ccbdc843 100644
--- a/yabause/src/retro_arena/MenuScreen.cpp
+++ b/yabause/src/retro_arena/MenuScreen.cpp
@@ -77,7 +77,7 @@ MenuScreen::MenuScreen( SDL_Window* pwindow, int rwidth, int rheight, const std:
swindow = nullptr;
imageWindow = nullptr;
- int image_pix_size_w = this->width() / 2;
+/* int image_pix_size_w = this->width() / 2;
int image_pix_size_h = this->height() / 2;
imageWindow = new Window(this, "About");
imageWindow->setPosition(Vector2i(0, 0));
@@ -92,7 +92,7 @@ MenuScreen::MenuScreen( SDL_Window* pwindow, int rwidth, int rheight, const std:
imageView->setFixedWidth(image_pix_size_w);
imageView->setFixedHeight(image_pix_size_h);
imageWindow->center();
- //imageWindow->setModal(true);
+ //imageWindow->setModal(true);*/
std::string title = "Yaba Sanshiro "+ std::string(YAB_VERSION) +" Menu";
window = new Window(this, title);
@@ -102,7 +102,7 @@ MenuScreen::MenuScreen( SDL_Window* pwindow, int rwidth, int rheight, const std:
tools = new Widget(window);
pushActiveMenu(tools, nullptr );
tools->setLayout(new BoxLayout(Orientation::Vertical,Alignment::Middle, 0, 5));
- tools->setFixedWidth(256);
+ tools->setFixedWidth(560);
PlayerConfig tmp;
tmp.player = new PopupButton(tools, "Player1", ENTYPO_ICON_EXPORT);
@@ -114,14 +114,14 @@ MenuScreen::MenuScreen( SDL_Window* pwindow, int rwidth, int rheight, const std:
PopupButton * ps_config = new PopupButton(tools, "Config");
- ps_config->setFixedWidth(248);
+ ps_config->setFixedWidth(530);
showConfigDialog(ps_config);
ps_config->setCallback([this,ps_config]() {
pushActiveMenu(ps_config->popup(),ps_config);
});
Button *b0 = new Button(tools, "Exit");
- b0->setFixedWidth(248);
+ b0->setFixedWidth(530);
b0->setCallback([this]() {
MENU_LOG("Exit\n");
SDL_Event* quit = new SDL_Event();
@@ -130,7 +130,7 @@ MenuScreen::MenuScreen( SDL_Window* pwindow, int rwidth, int rheight, const std:
});
Button *b1 = new Button(tools, "Reset");
- b1->setFixedWidth(248);
+ b1->setFixedWidth(530);
b1->setCallback([this]() {
MENU_LOG("Reset\n");
SDL_Event event = {};
@@ -142,14 +142,14 @@ MenuScreen::MenuScreen( SDL_Window* pwindow, int rwidth, int rheight, const std:
});
PopupButton * ps = new PopupButton(tools, "Save State");
- ps->setFixedWidth(248);
+ ps->setFixedWidth(530);
ps->setCallback([this,ps]() {
showSaveStateDialog( ps->popup());
pushActiveMenu(ps->popup(),ps);
});
ps = new PopupButton(tools, "Load State");
- ps->setFixedWidth(248);
+ ps->setFixedWidth(530);
ps->setCallback([this,ps]() {
showLoadStateDialog( ps->popup());
pushActiveMenu(ps->popup(),ps);
@@ -158,7 +158,7 @@ MenuScreen::MenuScreen( SDL_Window* pwindow, int rwidth, int rheight, const std:
bCdTray = new Button(tools, "Open CD Tray");
- bCdTray->setFixedWidth(248);
+ bCdTray->setFixedWidth(530);
bCdTray->setCallback([this]() {
if( this->is_cdtray_open_ ){
MENU_LOG("Close CD Tray\n");
@@ -194,7 +194,7 @@ MenuScreen::MenuScreen( SDL_Window* pwindow, int rwidth, int rheight, const std:
Button *b2 = new Button(tools, "Show/Hide FPS");
- b2->setFixedWidth(248);
+ b2->setFixedWidth(530);
b2->setCallback([this]() {
MENU_LOG("Show/Hide FPS\n");
SDL_Event event = {};
@@ -206,7 +206,7 @@ MenuScreen::MenuScreen( SDL_Window* pwindow, int rwidth, int rheight, const std:
});
Button *b3 = new Button(tools, "Enable/Disable Frame Skip");
- b3->setFixedWidth(248);
+ b3->setFixedWidth(530);
b3->setCallback([this]() {
MENU_LOG("Reset\n");
SDL_Event event = {};
@@ -218,7 +218,7 @@ MenuScreen::MenuScreen( SDL_Window* pwindow, int rwidth, int rheight, const std:
});
#if 0
Button *b4 = new Button(tools, "About");
- b4->setFixedWidth(248);
+ b4->setFixedWidth(530);
b4->setCallback([this,b4]() {
int image_pix_size_w = this->width() / 2;
int image_pix_size_h = this->height() / 2;
@@ -600,7 +600,7 @@ void MenuScreen::getSelectedGUID( int user_index, std::string & selguid ){
void MenuScreen::setupPlayerPsuhButton( int user_index, PopupButton *player, const std::string & label, ComboBox **cbo ){
- player->setFixedWidth(248);
+ player->setFixedWidth(530);
Popup *popup = player->popup();
popup->setLayout(new GroupLayout(4,2,2,2));
new Label(popup, label);
diff --git a/yabause/src/retro_arena/nanogui-sdl/src/theme.cpp b/yabause/src/retro_arena/nanogui-sdl/src/theme.cpp
index 3d126ad2..a6689df4 100644
--- a/yabause/src/retro_arena/nanogui-sdl/src/theme.cpp
+++ b/yabause/src/retro_arena/nanogui-sdl/src/theme.cpp
@@ -18,20 +18,20 @@
NAMESPACE_BEGIN(nanogui)
Theme::Theme(NVGcontext *ctx) {
- mStandardFontSize = 16;
- mButtonFontSize = 20;
- mTextBoxFontSize = 20;
- mWindowCornerRadius = 2;
- mWindowHeaderHeight = 30;
- mWindowDropShadowSize = 10;
- mButtonCornerRadius = 2;
+ mStandardFontSize = 32;
+ mButtonFontSize = 40;
+ mTextBoxFontSize = 40;
+ mWindowCornerRadius = 4;
+ mWindowHeaderHeight = 60;
+ mWindowDropShadowSize = 20;
+ mButtonCornerRadius = 4;
mTabBorderWidth = 0.75f;
- mTabInnerMargin = 5;
+ mTabInnerMargin = 10;
mTabMinButtonWidth = 20;
- mTabMaxButtonWidth = 160;
- mTabControlWidth = 20;
- mTabButtonHorizontalPadding = 10;
- mTabButtonVerticalPadding = 2;
+ mTabMaxButtonWidth = 500;
+ mTabControlWidth = 40;
+ mTabButtonHorizontalPadding = 20;
+ mTabButtonVerticalPadding = 4;
mDropShadow = Color(0, 128);
mTransparent = Color(0, 0);
diff --git a/yabause/src/retro_arena/nanogui-sdl/src/window.cpp b/yabause/src/retro_arena/nanogui-sdl/src/window.cpp
index cf3998c5..51e02022 100644
--- a/yabause/src/retro_arena/nanogui-sdl/src/window.cpp
+++ b/yabause/src/retro_arena/nanogui-sdl/src/window.cpp
@@ -119,7 +119,7 @@ void Window::draw(NVGcontext *ctx) {
nvgStrokeColor(ctx, mTheme->mWindowHeaderSepBot);
nvgStroke(ctx);
- nvgFontSize(ctx, 18.0f);
+ nvgFontSize(ctx, 40.0f);
nvgFontFace(ctx, "sans-bold");
nvgTextAlign(ctx, NVG_ALIGN_CENTER | NVG_ALIGN_MIDDLE);

View file

@ -0,0 +1,52 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2021-present Shanti Gilbert (https://github.com/shantigilbert)
# Copyright (C) 2022-present Fewtarius
# Source predefined functions and variables
. /etc/profile
ROM_DIR="/storage/roms/saturn/yabasanshiro"
CONFIG_DIR="/storage/.config/game/configs/yabasanshiro"
SOURCE_DIR="/usr/config/game/configs/yabasanshiro"
BIOS_BACKUP="/storage/roms/bios/yabasanshiro"
if [ ! -d "${ROM_DIR}" ]
then
mkdir -p "${ROM_DIR}"
fi
if [ ! -d "${BIOS_BACKUP}" ]
then
mkdir -p "${BIOS_BACKUP}"
fi
if [ ! -e "${ROM_DIR}/${ROM_DIR}/input.cfg" ]
then
GAMEPAD=$(grep -b4 $(readlink ${DEVICE_CONTROLLER_DEV} | sed "s#^.*/##") /proc/bus/input/devices | awk 'BEGIN {FS="\""}; /Name/ {printf $2}')
GAMEPADCONFIG=$(xmlstarlet sel -t -c '//inputList/inputConfig[@deviceName="'${GAMEPAD}'"]' -n /storage/.emulationstation/es_input.cfg)
if [ ! -z "${GAMEPADCONFIG}" ]
then
cat <<EOF >${ROM_DIR}/input.cfg
<?xml version="1.0"?>
<inputList>
${GAMEPADCONFIG}
</inputList>
EOF
fi
fi
BIOS=""
for BIOS in saturn_bios.bin sega_101.bin mpr-17933.bin mpr-18811-mx.ic1 mpr-19367-mx.ic1 stvbios.zip
do
BIOS=$(find /storage/roms/bios -name ${BIOS} -print 2>/dev/null)
if [ ! -z "${BIOS}" ]
then
BIOS="-b ${BIOS}"
break
fi
done
yabasanshiro -r 2 -i "${1}" ${BIOS} >/var/log/exec.log 2>&1 ||:

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="TIC-80"
PKG_VERSION="263b3213f90362fd427d9f8a281698f5fe7284a6"
PKG_VERSION="a1f80a22e682ec7d28a7b0ee78140ddb8732bc69"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"

View file

@ -20,8 +20,8 @@
################################################################################
PKG_NAME="beetle-pcfx"
PKG_VERSION="6d2b11e17ad5a95907c983e7c8a70e75508c2d41"
PKG_SHA256="b5a0d170aa1944aa47726e42c230550294d44ecd5565d460bc943a68dc781b5a"
PKG_VERSION="00abc26cafb15cc33dcd73f4bd6b93cbaab6e1ea"
PKG_SHA256="df7a77235c1de48e6fa1f2178ede44c8506606eab657f534d8caf1036944e5ee"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="beetle-supafaust"
PKG_VERSION="4204c34edc44fa7605edeb700014d984f3c0ab7f"
PKG_VERSION="a106dbdc8c5ef11f216b21f4ba1b22cb637e599d"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"

View file

@ -21,8 +21,8 @@
################################################################################
PKG_NAME="cannonball"
PKG_VERSION="97c075d30db52a11873ded66da26aaf81003d9fd"
PKG_SHA256="de1ab0d363a74c9626986da15be0156a04e22b1182488b3087b0f13cd435c2b2"
PKG_VERSION="8fb0d9561ee110f31f45610661649f0c1ff068ee"
PKG_SHA256="04c4789fc4c8433db8649654ecc59d84a8a7422b3b2e53892b0ca7febbe2c05c"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/libretro/cannonball"

View file

@ -20,8 +20,8 @@
################################################################################
PKG_NAME="cap32"
PKG_VERSION="15b7f539b75445aa334fc218b7aa5c57ccb77f0e"
PKG_SHA256="c0cbae028a69b8df868b2ccfba4df5220f5be087ff1f85476e560093d3c0c599"
PKG_VERSION="ef0ee894ea77b6d82b61201b69f40a717afc08a9"
PKG_SHA256="8bae91d366a58f3ed7eddc45eec35088e85e1aca4842d6f554eb48737faa51d4"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"

View file

@ -2,6 +2,7 @@
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2020 351ELEC team (https://github.com/fewtarius/351ELEC)
# Copyright (C) 2022-present Fewtarius
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -19,16 +20,14 @@
# http://www.gnu.org/copyleft/gpl.html
################################################################################
### Don't update, newer commits have issues.
PKG_NAME="common-shaders"
PKG_VERSION="55e401834b732e62c34411321c4ffd82524345d4"
PKG_SHA256="6dae9d4464febf556f4b419df51d2eb9c09f1e62666493e03cf6cc6cc447aa86"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/libretro/common-shaders"
PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_URL="${PKG_SITE}.git"
PKG_DEPENDS_TARGET="toolchain glsl-shaders"
PKG_PRIORITY="optional"
PKG_SECTION="libretro"
PKG_SHORTDESC="Libretro common shaders"

View file

@ -0,0 +1,21 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
PKG_NAME="duckstation"
PKG_VERSION="0162b33835e09984ab9dca6f0b1295343e2dcbc3"
PKG_SHA256="2e419f6a57d4135a548d025252b7cc293204c0c0f80af49b9d72bf1c7c9d0634"
PKG_ARCH="aarch64"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/brooksytech/duckstation-libretro"
PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_SECTION="libretro"
PKG_SHORTDESC="DuckStation - PlayStation 1, aka. PSX Emulator"
PKG_TOOLCHAIN="cmake"
PKG_BUILD_FLAGS="-lto"
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/libretro
cp $PKG_BUILD/.$TARGET_NAME/duckstation_libretro.so $INSTALL/usr/lib/libretro/
}

View file

@ -1,6 +1,7 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2022-present Fewtarius
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -23,7 +24,7 @@ PKG_VERSION="69aaeb2d8bf17eee565ac3e46a98809a9ebe4df0"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/easyrpg/player"
PKG_URL="$PKG_SITE.git"
PKG_URL="${PKG_SITE}.git"
PKG_GIT_CLONE_BRANCH="0-7-0-stable"
PKG_DEPENDS_TARGET="toolchain zlib libfmt liblcf pixman libspeexdsp mpg123 libsndfile libvorbis opusfile wildmidi libxmp-lite fluidsynth-git harfbuzz libpng"
PKG_PRIORITY="optional"
@ -41,14 +42,15 @@ PKG_CMAKE_OPTS_TARGET="-DPLAYER_TARGET_PLATFORM=libretro \
-DCMAKE_BUILD_TYPE=Release"
pre_make_target() {
find $PKG_BUILD -name flags.make -exec sed -i "s:isystem :I:g" \{} \;
find $PKG_BUILD -name build.ninja -exec sed -i "s:isystem :I:g" \{} \;
find ${PKG_BUILD} -name flags.make -exec sed -i "s:isystem :I:g" \{} \;
find ${PKG_BUILD} -name build.ninja -exec sed -i "s:isystem :I:g" \{} \;
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/libretro
cp $PKG_BUILD/.$TARGET_NAME/easyrpg_libretro.so $INSTALL/usr/lib/libretro/
mkdir -p ${INSTALL}/usr/lib/libretro
cp $PKG_BUILD/.$TARGET_NAME/easyrpg_libretro.so ${INSTALL}/usr/lib/libretro/
mkdir -p $INSTALL/usr/bin
cp ${PKG_DIR}/easyrpg.sh $INSTALL/usr/bin
mkdir -p ${INSTALL}/usr/bin
cp ${PKG_DIR}/easyrpg.sh ${INSTALL}/usr/bin
chmod 0755 ${INSTALL}/usr/bin/easyrpg.sh
}

View file

@ -3,8 +3,8 @@
# Maintenance 2020 351ELEC team (https://github.com/fewtarius/351ELEC)
PKG_NAME="fbneo"
PKG_VERSION="bcca25956723e8ad3123b6a7ca280ce09e08a0bf"
PKG_SHA256="735025d75e2695c552f4ac8fa43fcc03170a8cca513e63398cdce09d3bcf0b91"
PKG_VERSION="83b7d4dd4f0c0c9232f5d847202508eb06674307"
PKG_SHA256="0b4b34cbf5abfbf516a8e8d4c8ada56a4f4f9fd09a80a5ede39f10575e7eaae5"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Non-commercial"

View file

@ -20,8 +20,8 @@
################################################################################
PKG_NAME="fceumm"
PKG_VERSION="0b77d74f87da8ee50033afe9b8a0ebe38f38f31a"
PKG_SHA256="d26db3c09d7fc7f84b6e25256e3af51ae81e0f5decb00a9a306ea881cfa39d9d"
PKG_VERSION="f52037ad7a558d1e8765d448a34d85569e4ca822"
PKG_SHA256="dbb34d805ef05af63ce4fafd04a120611e14a82e099cc757f5e37ecc1c85786a"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"

View file

@ -20,8 +20,8 @@
################################################################################
PKG_NAME="fmsx"
PKG_VERSION="0abd34399c756a8767edf7ccd28b940335312a8e"
PKG_SHA256="3f979dfa3dba4f7ac32d89a86f6c2a8ebf5f81ad29026d2a5a4180d20068c65f"
PKG_VERSION="f9ea9eacd49297783c216d147dcc1a22465b2749"
PKG_SHA256="0c67bd4034adb0d5fa2ac73e764a57809bae4cf445050040efb35310bf572e45"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"

View file

@ -1,5 +1,5 @@
PKG_NAME="freechaf"
PKG_VERSION="1da54f014fd590313b0ad5871cf8b9eaa87ecf9f"
PKG_VERSION="bc5a4ee2889930b7b8d1dd390c8c6ba29f7644dd"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"

View file

@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2021-present 351ELEC (https://github.com/351ELEC)
# Copyright (C) 2022-present Fewtarius
PKG_NAME="freej2me"
PKG_VERSION="f9f91e57e01ccd34438a1b509397b7bc4e1dd233"
@ -7,7 +8,7 @@ PKG_SHA256="abea8a29e2347b21e266b0cd8112c73a0426dfaaf033d78b303e74b306498c05"
PKG_REV="1"
PKG_ARCH="any"
PKG_SITE="https://github.com/hex007/freej2me"
PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain apache-ant:host"
PKG_PRIORITY="optional"
PKG_SECTION="libretro"
@ -24,12 +25,13 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/libretro
cp ${PKG_BUILD}/src/libretro/freej2me_libretro.so $INSTALL/usr/lib/libretro/
mkdir -p ${INSTALL}/usr/lib/libretro
cp ${PKG_BUILD}/src/libretro/freej2me_libretro.so ${INSTALL}/usr/lib/libretro/
mkdir -p $INSTALL/usr/config/game/freej2me
cp ${PKG_BUILD}/build/freej2me-lr.jar $INSTALL/usr/config/game/freej2me
mkdir -p ${INSTALL}/usr/config/game/freej2me
cp ${PKG_BUILD}/build/freej2me-lr.jar ${INSTALL}/usr/config/game/freej2me
mkdir -p $INSTALL/usr/bin
cp ${PKG_DIR}/freej2me.sh $INSTALL/usr/bin
mkdir -p ${INSTALL}/usr/bin
cp ${PKG_DIR}/freej2me.sh ${INSTALL}/usr/bin
chmod 0755 ${INSTALL}/usr/bin/freej2me.sh
}

View file

@ -15,8 +15,8 @@
################################################################################
PKG_NAME="gearboy"
PKG_VERSION="8427845c60eb99974fdce3535e7f80828fbf6818"
PKG_SHA256="08c384979c820361cf4eaefb648e88d5816866574167f15c5188d95e3920d7b0"
PKG_VERSION="2cb66cdcb05f77147b9a5941e8ab92bceea828ae"
PKG_SHA256="84d61bb13f71dd280ac7158ca19c4befac302276aec4bca56d69a5d218b67c07"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View file

@ -15,8 +15,8 @@
################################################################################
PKG_NAME="gearcoleco"
PKG_VERSION="95c534c2a61b01b0c919344ac11ac3797bb0611f"
PKG_SHA256="16d97f3b572e8a60c826ec725b21c5195dcce2f53ab9fa612102874f93f338c4"
PKG_VERSION="443207ea3cf3df75299f3346692b873189c44183"
PKG_SHA256="97dd3eb67c5388431d6ecfb7b54842d753520a489abb3e3529d349cdc8431d5a"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View file

@ -20,8 +20,7 @@
################################################################################
PKG_NAME="gearsystem"
PKG_VERSION="005afd28a807f311f2674dfb6253ba49aebee902"
PKG_SHA256=""
PKG_VERSION="a6849bfa6973af6417678d9b1ea893064aa3910c"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"

View file

@ -20,8 +20,8 @@
################################################################################
PKG_NAME="genesis-plus-gx"
PKG_VERSION="3ba8e40c23961542161dbbff9123156c3228f0db"
PKG_SHA256="83410b9ce4a87030f046c305048d4bc30eba2d319f7017047dbf5da476eddd69"
PKG_VERSION="ed5c591fb2319f12b1058a6f138766d5fdcdd0d8"
PKG_SHA256="f91988c0744035bd46e1783ad5cc5dbdca02fb7c2ae8a5d967dd5fe3daf1c16d"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Non-commercial"

View file

@ -21,12 +21,11 @@
PKG_NAME="glsl-shaders"
PKG_VERSION="20801b38aa2c89a2beb9f57ffbbbcea7256e2523"
PKG_SHA256="d4fc1d591b658f0c579b0a2ed0df92682dd22fddaae3d3ffa269646b68905977"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/libretro/glsl-shaders"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
PKG_URL="${PKG_SITE}.git"
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="libretro"

View file

@ -20,8 +20,8 @@
################################################################################
PKG_NAME="gme"
PKG_VERSION="7fc3fb00f6c28aef7ebcb6d50c54b801ab4aa53c"
PKG_SHA256="fddbd0a86e012d35030dfd0a582cb8d2d598f9e48a9999431d62e3af37b830d9"
PKG_VERSION="f3a74b624a7aa2b4a9a86bccc0f4bdfe2d61d053"
PKG_SHA256="0cee65f8562804dedcac844e7ff71d887682be3487152abd84f77667e7ed5eef"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"

View file

@ -20,8 +20,8 @@
################################################################################
PKG_NAME="libretro-database"
PKG_VERSION="543233a8a20f39ce15ed038017bfe364e24e4eff"
PKG_SHA256="9dd32322cc1df2c40eff129a41f51a8aba980556daeae05932d30b6c858f1ada"
PKG_VERSION="8d51b3b6a0bebf881ed8a203d252b0854eef2ad5"
PKG_SHA256="19ff7fa9928f9ea590525e925187ec104619c05efc159a50d24da65ed722f310"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View file

@ -2,8 +2,8 @@
# Copyright (C) 2019 Trond Haugland (trondah@gmail.com)
PKG_NAME="mame"
PKG_VERSION="ec47e94c7eed598e87a6da898821b5c8024c21a5"
PKG_SHA256="e4469c140787f846f31eec0e1bdb3992ce5fe8394aa3c2e88f20c8044a528a9d"
PKG_VERSION="eb2ade4912908f4a9ee2d24e74521b6cd6d1675d"
PKG_SHA256="8f59abdec54d5f57c66a38d7c6c2b207e27d171dd122855929a33a4f40032a9a"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/mame"

View file

@ -20,8 +20,8 @@
################################################################################
PKG_NAME="mame2003-plus"
PKG_VERSION="29ac9a30929f82f68424e10175e6b64e06136b27"
PKG_SHA256="a88d461a2fa7d97a9d85de19c62000334882854ffa31c09a7094d62a36f60d77"
PKG_VERSION="bb8d16eeb19eae1d88c01e84c11c6dbee01fe085"
PKG_SHA256="eb8f00d2270ec22478f8fff625b2d2bb7337efc2bbedcbfa51b3b863564df386"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="MAME"

View file

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="mrboom"
PKG_VERSION="9b51b0faa49ab4f5008a3fff4d67681a920c344f"
PKG_VERSION="64e874abdd11b845c013ea74e5a62ed1e12d09e2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"

View file

@ -21,7 +21,6 @@ then
PKG_MAKE_OPTS_TARGET=" platform=Amlogic"
else
PKG_MAKE_OPTS_TARGET=" platform=rpi4_64"
#PKG_MAKE_OPTS_TARGET=" platform=emuelec64-armv8"
fi
pre_configure_target() {

View file

@ -7,8 +7,8 @@ PKG_SHA256="03ebfd3b27f8d6d2846d180c2dba6ae5dd36f1f1ebea79db8c41817525ce38d2"
PKG_REV="2"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/parallel-n64"
PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain $OPENGLES core-info"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain ${OPENGLES} core-info"
PKG_SECTION="libretro"
PKG_SHORTDESC="Optimized/rewritten Nintendo 64 emulator made specifically for Libretro. Originally based on Mupen64 Plus."
PKG_LONGDESC="Optimized/rewritten Nintendo 64 emulator made specifically for Libretro. Originally based on Mupen64 Plus."
@ -16,36 +16,30 @@ PKG_TOOLCHAIN="make"
PKG_BUILD_FLAGS="-lto"
PKG_PATCH_DIRS+="${DEVICE}"
if [[ "$ARCH" == "arm" ]]; then
PKG_MAKE_OPTS_TARGET=" platform=${PROJECT}"
if [[ "${DEVICE}" =~ RG552 ]]; then
PKG_MAKE_OPTS_TARGET=" platform=Odroidgoa"
else
PKG_MAKE_OPTS_TARGET=" platform=Amlogic"
fi
if [ "${ARCH}" = "arm" ]
then
PKG_MAKE_OPTS_TARGET=" platform=Amlogic"
else
PKG_MAKE_OPTS_TARGET=" platform=emuelec64-armv8"
PKG_MAKE_OPTS_TARGET=" platform=rpi4_64"
fi
pre_configure_target() {
sed -i 's/info->library_name = "ParaLLEl N64";/info->library_name = "ParaLLEl N64 GLN64";/g' $PKG_BUILD/libretro/libretro.c
sed -i 's/"GFX Plugin; auto|glide64|gln64|rice/"GFX Plugin; gln64|auto|glide64|rice/g' $PKG_BUILD/libretro/libretro.c
sed -i 's/"Resolution (restart); 320x240|640x480|960x720/"Resolution (restart); 640x480|320x240|960x720/g' $PKG_BUILD/libretro/libretro.c
sed -i 's/"Framerate (restart); original|fullspeed"/"Framerate (restart); fullspeed|original"/g' $PKG_BUILD/libretro/libretro.c
sed -i 's/"GFX Accuracy (restart); veryhigh|high|medium|low"/"GFX Accuracy (restart); medium|veryhigh|high|low"/g' $PKG_BUILD/libretro/libretro.c
sed -i 's/"(Glide64) Texture Filtering; automatic|N64 3-point|bilinear|nearest"/"(Glide64) Texture Filtering; nearest|automatic|N64 3-point|bilinear"/g' $PKG_BUILD/libretro/libretro.c
sed -i 's/info->library_name = "ParaLLEl N64";/info->library_name = "ParaLLEl N64 GLN64";/g' ${PKG_BUILD}/libretro/libretro.c
sed -i 's/"GFX Plugin; auto|glide64|gln64|rice/"GFX Plugin; gln64|auto|glide64|rice/g' ${PKG_BUILD}/libretro/libretro.c
sed -i 's/"Resolution (restart); 320x240|640x480|960x720/"Resolution (restart); 640x480|320x240|960x720/g' ${PKG_BUILD}/libretro/libretro.c
sed -i 's/"Framerate (restart); original|fullspeed"/"Framerate (restart); fullspeed|original"/g' ${PKG_BUILD}/libretro/libretro.c
sed -i 's/"GFX Accuracy (restart); veryhigh|high|medium|low"/"GFX Accuracy (restart); medium|veryhigh|high|low"/g' ${PKG_BUILD}/libretro/libretro.c
sed -i 's/"(Glide64) Texture Filtering; automatic|N64 3-point|bilinear|nearest"/"(Glide64) Texture Filtering; nearest|automatic|N64 3-point|bilinear"/g' ${PKG_BUILD}/libretro/libretro.c
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/libretro
if [[ "$DEVICE" =~ RG552 ]] && [[ "$ARCH" == "aarch64" ]]
mkdir -p ${INSTALL}/usr/lib/libretro
if [[ "${DEVICE}" =~ RG552 ]] && [[ "${ARCH}" == "aarch64" ]]
then
cp -vP $PKG_BUILD/../../build.${DISTRO}-${DEVICE}.arm/parallel-n64_gln64-*/.install_pkg/usr/lib/libretro/parallel_n64_gln64_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.so
cp -vP $PKG_BUILD/../core-info-*/parallel_n64_libretro.info ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.info
sed -i 's/ParaLLEl N64/ParaLLEl N64 GLN64/g' $INSTALL/usr/lib/libretro/parallel_n64_gln64_libretro.info
cp -vP ${PKG_BUILD}/../../build.${DISTRO}-${DEVICE}.arm/parallel-n64_gln64-*/.install_pkg/usr/lib/libretro/parallel_n64_gln64_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.so
cp -vP ${PKG_BUILD}/../core-info-*/parallel_n64_libretro.info ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.info
sed -i 's/ParaLLEl N64/ParaLLEl N64 GLN64/g' ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.info
else
cp parallel_n64_libretro.so $INSTALL/usr/lib/libretro/parallel_n64_gln64_libretro.so
cp parallel_n64_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.so
fi
}

View file

@ -2,8 +2,8 @@
# Copyright (C) 2020 Trond Haugland (trondah@gmail.com)
PKG_NAME="pcsx_rearmed"
PKG_VERSION="40b19b536c6af2474d679d7ec1a529fcbe17a87c"
PKG_SHA256="05ef261b4ca8a116090be1505881bfd3bb3f51f75de5ca512a32db1839c01278"
PKG_VERSION="75d5614bce62f7c2b3ca196574cf28bc9d050cdb"
PKG_SHA256="c8eedaafa1977d1f6d429541681bbf133c9e8aa04e09c7015bf582cc4e146ab5"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"

View file

@ -1,5 +1,5 @@
PKG_NAME="picodrive"
PKG_VERSION="ee6b7139175a3270e9be314218b22baa592610f2"
PKG_VERSION="6a0f515f95ea2080c8ac6b0bd2c194b48d991892"
PKG_LICENSE="MAME"
PKG_SITE="https://github.com/libretro/picodrive"
PKG_URL="$PKG_SITE.git"

View file

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="ppsspp"
PKG_VERSION="47ff758af11369f1dc602ec39cc710f33ac44bc3"
PKG_VERSION="97bc7a1ae3b3a87bff211bd3ece33e9c3012725a"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/hrydgard/ppsspp"
PKG_URL="https://github.com/hrydgard/ppsspp.git"

View file

@ -19,8 +19,8 @@
################################################################################
PKG_NAME="px68k"
PKG_VERSION="b309941140f03b3d52e4c1720d6f4cbc0581f301"
PKG_SHA256="23deb839b10b5104d29d2b9a4492b834b9605d5727c4d332188f0655e5844aff"
PKG_VERSION="0183381d655be213d9c27207e1a29ad372a7a16d"
PKG_SHA256="9f26706569d8c9711565cf23a6f5f5683e262f48d8a8e8820514bda0e9680cd9"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Unknown"

View file

@ -2,7 +2,7 @@
# Copyright (C) 2019-present asakous (https://github.com/asakous)
PKG_NAME="quasi88"
PKG_VERSION="15ff9fd94aa9db45a5519d00227180b04e074157"
PKG_VERSION="2548625ba2bc3b5a9ecae7db24fdd5d42570e578"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="BSD3"

View file

@ -0,0 +1,49 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2020 351ELEC team (https://github.com/fewtarius/351ELEC)
# Copyright (C) 2022 Fewtarius
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="retropie-shaders"
PKG_VERSION="015fe2aaad5f4a219c8fd85b9a4fd71bc4f1f731"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/RetroPie/common-shaders"
PKG_URL="${PKG_SITE}.git"
PKG_GIT_CLONE_BRANCH="rpi"
PKG_DEPENDS_TARGET="toolchain glsl-shaders"
PKG_PRIORITY="optional"
PKG_SECTION="libretro"
PKG_SHORTDESC="Libretro common shaders from retropie"
PKG_LONGDESC="Libretro common shaders from retropie"
PKG_TOOLCHAIN="manual"
make_target() {
:
}
makeinstall_target() {
if [ ! -d "${INSTALL}/usr/share/common-shaders" ]
then
mkdir -p ${INSTALL}/usr/share/common-shaders
fi
rsync -a ${BUILD}/${PKG_NAME}-${PKG_VERSION}/* ${INSTALL}/usr/share/common-shaders/
rm -f ${INSTALL}/usr/share/common-shaders/{Makefile,configure}
}

View file

@ -19,8 +19,8 @@
################################################################################
PKG_NAME="snes9x"
PKG_VERSION="d2959e06c1c028e1b25250f5552c5900fafe943d"
PKG_SHA256="20d11b5268bc44fe33830c76f3887e11395839645aaedeb48de1bc04e436e990"
PKG_VERSION="361f073be2b1d01a1fe592c2980790f20f1d80f6"
PKG_SHA256="618417913acaa1ce8b452ee70c3728e1d106eaa75028ec8fc5d033b9a211f670"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Non-commercial"

View file

@ -19,8 +19,8 @@
################################################################################
PKG_NAME="snes9x2002"
PKG_VERSION="53c2aa4d615b97c5678eccce541326fb18afdaf2"
PKG_SHA256="c08a97f729c402be0ef1b9c6c10dea4c7e61657a0943e0f19d53cf36ebd0a18a"
PKG_VERSION="4a5c4cadd53264f3a6ce6b76caae0375390b8ffc"
PKG_SHA256="019f4c435036ec5d616ece0a229d928168e4cf9e5aaedd08cfa3b00eae705cdf"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Non-commercial"

View file

@ -19,8 +19,8 @@
################################################################################
PKG_NAME="stella"
PKG_VERSION="24e491bcde5c37611c79a81f035c2218ab426230"
PKG_SHA256="667442ab931d74b54fe73f56f38b677c5608f9d3cdd57ade61c22dbc8b1bc8ff"
PKG_VERSION="6d07ba4072bd1471512e35f0d0ca13b8c6a9672f"
PKG_SHA256="9b2088feda7f5d72e258b6e627591491a5fb5354d2610cffe2e534115977db2d"
PKG_REV="1"
PKG_LICENSE="GPL2"
PKG_SITE="https://github.com/stella-emu/stella"

View file

@ -3,8 +3,8 @@
# Maintenance 2020 351ELEC team (https://github.com/fewtarius/351ELEC)
PKG_NAME="swanstation"
PKG_VERSION="20ed86f7e93481d21bc27f3f1e36636c453b1328"
PKG_SHA256="0e3f12b29ce3db3c8cb70a609fe393f69659cc829ac7ae57fa75fa628c71f9ae"
PKG_VERSION="74b958ceae11a1b72ba17d5b783b5eb1a6166701"
PKG_SHA256="a5c3aa606c0a7d9b963f661cb3cc385974f0c67a41dbe860022d6616fae580da"
PKG_ARCH="aarch64"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/libretro/swanstation"

View file

@ -19,8 +19,8 @@
################################################################################
PKG_NAME="tyrquake"
PKG_VERSION="423a217d7ef0f913bc711dc9fceff707196c0f2f"
PKG_SHA256="0db39ba41e321b843f436b9b0184bc1b74b853948307f827dcc54a5043c09249"
PKG_VERSION="0e75ab87dd94fabc801263978c5bdf98cdbc293a"
PKG_SHA256="55f1bc77134cb3370036c5a123053e330ab71c875faa96469554c7afcbc565f2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"

View file

@ -20,8 +20,8 @@
################################################################################
PKG_NAME="vice"
PKG_VERSION="a45757e66e6fc0b48c6a22354f06ca0e988aa5a5"
PKG_SHA256="f1d8cfa205f69e68ed818f52f1c54d59f47b8f8cbf144e7b298d3090717b622f"
PKG_VERSION="55880704618ef53ca219043b4a4c6a404dc1c683"
PKG_SHA256="634e69a5de73effb2590f198ee184fe31b1a1fecbc52511c9ca688e4925ec904"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"

View file

@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2021-present 351ELEC (https://github.com/351elec)
# Copyright (C) 2022-present Fewtarius
PKG_NAME="351files"
PKG_VERSION="a7bb75dafca5c3f8e50e0f456b7ec249a69e1346"
@ -7,7 +8,7 @@ PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/Tardigrade-nx/351Files"
PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain SDL2 SDL2_image SDL2_gfx SDL2_ttf"
PKG_PRIORITY="optional"
PKG_SECTION="tools"
@ -20,8 +21,9 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/bin
mkdir -p $INSTALL/usr/share/351files
cp 351Files $INSTALL/usr/bin/
cp -rf res $INSTALL/usr/share/351files/
mkdir -p ${INSTALL}/usr/bin
mkdir -p ${INSTALL}/usr/share/351files
cp 351Files ${INSTALL}/usr/bin/
cp -rf res ${INSTALL}/usr/share/351files/
chmod 0755 ${INSTALL}/usr/bin/351Files
}

View file

@ -1,9 +1,9 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
# Maintenance 2022-present BrooksyTech (https://github.com/brooksytech)
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
PKG_NAME="portmaster"
PKG_VERSION="1.0"
PKG_VERSION=""
PKG_ARCH="any"
PKG_URL="https://github.com/christianhaitian/PortMaster/raw/main/PortMaster.zip"
PKG_PRIORITY="optional"
@ -12,10 +12,14 @@ PKG_SHORTDESC="A simple tool that allows you to download various game ports that
PKG_TOOLCHAIN="manual"
pre_unpack() {
unzip sources/portmaster/portmaster-1.0.zip -d $PKG_BUILD
unzip sources/portmaster/portmaster-.zip -d ${PKG_BUILD}
}
makeinstall_target() {
mkdir -p $INSTALL/usr/share/
cp -r $PKG_BUILD/PortMaster $INSTALL/usr/share/
cp -r ${PKG_BUILD}/PortMaster ${INSTALL}/usr/share/
chmod 0755 $INSTALL/usr/share/PortMaster
mkdir -p ${INSTALL}/usr/lib/autostart/common
cp ${PKG_DIR}/sources/autostart/common/* ${INSTALL}/usr/lib/autostart/common
}

View file

@ -1,7 +1,7 @@
#!/bin/sh
# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
# Maintenance 2022-present BrooksyTech (https://github.com/brooksytech)
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
#If PortMaster does not exist copy PortMaster folder to roms/ports
if [ ! -e "/storage/roms/ports/PortMaster" ]

View file

@ -0,0 +1,27 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2022-present Fewtarius
PKG_NAME="xa"
PKG_VERSION="2.3.12"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://www.floodgap.com/retrotech/xa/"
PKG_URL="${PKG_SITE}/dists/xa-${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_DEPENDS_HOST="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="tools"
PKG_SHORTDESC="xa is a high-speed, two-pass portable cross-assembler."
makeinstall_host() {
mkdir -p ${TOOLCHAIN}/bin
cp -f file65 ldo65 mkrom.sh printcbm reloc65 uncpk xa ${TOOLCHAIN}/bin
ln -s xa ${TOOLCHAIN}/xa64
}
makeinstall_target() {
mkdir -p ${INSTALL}/usr/bin
cp -f file65 ldo65 mkrom.sh printcbm reloc65 uncpk xa ${INSTALL}/usr/bin
ln -s xa ${INSTALL}/usr/bin/xa64
}

View file

@ -3,8 +3,8 @@
# Copyright (C) 2022-present Fewtarius
PKG_NAME="SDL2"
PKG_VERSION="2.0.16"
PKG_SHA256="65be9ff6004034b5b2ce9927b5a4db1814930f169c4b2dae0a1e4697075f287b"
PKG_VERSION="2.0.20"
PKG_SHA256="c56aba1d7b5b0e7e999e4a7698c70b63a3394ff9704b5f6e1c57e0c16f04dd06"
PKG_LICENSE="GPL"
PKG_SITE="https://www.libsdl.org/"
PKG_URL="https://www.libsdl.org/release/SDL2-$PKG_VERSION.tar.gz"

View file

@ -1,52 +0,0 @@
From b2d17230779c9da13433dc9f3abf37ee1e6da85d Mon Sep 17 00:00:00 2001
From: JohnnyonFlame <johnnyonflame@hotmail.com>
Date: Sat, 4 Dec 2021 02:38:47 +0000
Subject: [PATCH] kmsdrm: Workaround missing gbm_bo_get_offset and
SDL_GL_CONTEXT_PROFILE defaults
---
src/video/kmsdrm/SDL_kmsdrmopengles.c | 14 ++++++++++----
src/video/kmsdrm/SDL_kmsdrmsym.h | 2 +-
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/src/video/kmsdrm/SDL_kmsdrmopengles.c b/src/video/kmsdrm/SDL_kmsdrmopengles.c
index 55a53df76..3d76284fd 100644
--- a/src/video/kmsdrm/SDL_kmsdrmopengles.c
+++ b/src/video/kmsdrm/SDL_kmsdrmopengles.c
@@ -41,11 +41,17 @@ KMSDRM_GLES_DefaultProfileConfig(_THIS, int *mask, int *major, int *minor)
{
/* if SDL was _also_ built with the Raspberry Pi driver (so we're
definitely a Pi device), default to GLES2. */
-#if SDL_VIDEO_DRIVER_RPI
- *mask = SDL_GL_CONTEXT_PROFILE_ES;
- *major = 2;
- *minor = 0;
+ /* JohnnyonFlame: We want to use GLESv2 as a default for compatibility
+ with SDL 2.0.10 builds, but offer the ability to use the OpenGL defaults
+ if ever needed. */
+#ifndef SDL_VIDEO_DRIVER_RPI
+ if (!SDL_getenv("SDL_DEFAULT_CONTEXT_PROFILE"))
#endif
+ {
+ *mask = SDL_GL_CONTEXT_PROFILE_ES;
+ *major = 2;
+ *minor = 0;
+ }
}
int
diff --git a/src/video/kmsdrm/SDL_kmsdrmsym.h b/src/video/kmsdrm/SDL_kmsdrmsym.h
index ea3d8d116..b17f823c9 100644
--- a/src/video/kmsdrm/SDL_kmsdrmsym.h
+++ b/src/video/kmsdrm/SDL_kmsdrmsym.h
@@ -104,7 +104,7 @@ SDL_KMSDRM_SYM(unsigned int,gbm_bo_get_width,(struct gbm_bo *bo))
SDL_KMSDRM_SYM(unsigned int,gbm_bo_get_height,(struct gbm_bo *bo))
SDL_KMSDRM_SYM(uint32_t,gbm_bo_get_stride,(struct gbm_bo *bo))
SDL_KMSDRM_SYM(uint32_t,gbm_bo_get_format,(struct gbm_bo *bo))
-SDL_KMSDRM_SYM(uint32_t,gbm_bo_get_offset,(struct gbm_bo *bo, int plane))
+//SDL_KMSDRM_SYM(uint32_t,gbm_bo_get_offset,(struct gbm_bo *bo, int plane))
SDL_KMSDRM_SYM(union gbm_bo_handle,gbm_bo_get_handle,(struct gbm_bo *bo))
SDL_KMSDRM_SYM(int,gbm_bo_write,(struct gbm_bo *bo, const void *buf, size_t count))
SDL_KMSDRM_SYM(struct gbm_device *,gbm_bo_get_device,(struct gbm_bo *bo))
--
2.25.1

View file

@ -1,6 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 26fe83205..32a339b05 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -557,7 +557,7 @@
@@ -557,7 +557,7 @@ if(USE_GCC OR USE_CLANG)
check_c_compiler_flag("" HAVE_NO_UNDEFINED)
set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS})
if(HAVE_NO_UNDEFINED AND NOT (USE_CLANG AND WINDOWS))
@ -23,20 +25,25 @@ index 65ccc55..bf4e3aa 100644
LIBTOOL = @LIBTOOL@
INSTALL = @INSTALL@
diff --git a/src/video/kmsdrm/SDL_kmsdrmopengles.c b/src/video/kmsdrm/SDL_kmsdrmopengles.c
index 55a53df..21fb124 100644
index 017372c..cff1b25 100644
--- a/src/video/kmsdrm/SDL_kmsdrmopengles.c
+++ b/src/video/kmsdrm/SDL_kmsdrmopengles.c
@@ -34,6 +34,9 @@
@@ -29,10 +29,14 @@
#include "SDL_kmsdrmopengles.h"
#include "SDL_kmsdrmdyn.h"
#include <errno.h>
+#include<stdbool.h>
#ifndef EGL_PLATFORM_GBM_MESA
#define EGL_PLATFORM_GBM_MESA 0x31D7
#endif
+
+extern rga_info_t src_info;
+extern rga_info_t dst_info;
+
/* EGL implementation of SDL OpenGL support */
void
@@ -92,6 +95,7 @@ KMSDRM_GLES_SwapWindow(_THIS, SDL_Window * window) {
@@ -92,6 +96,7 @@
SDL_VideoData *viddata = ((SDL_VideoData *)_this->driverdata);
KMSDRM_FBInfo *fb_info;
int ret = 0;
@ -44,48 +51,49 @@ index 55a53df..21fb124 100644
/* Always wait for the previous issued flip before issuing a new one,
even if you do async flips. */
@@ -135,12 +139,26 @@ KMSDRM_GLES_SwapWindow(_THIS, SDL_Window * window) {
@@ -135,7 +140,26 @@
}
/* Get an actual usable fb for the next front buffer. */
- fb_info = KMSDRM_FBFromBO(_this, windata->next_bo);
+ if (src_info.fd) {
+ close(src_info.fd);
+ }
+ src_info.fd = KMSDRM_gbm_bo_get_fd(windata->next_bo);
+ dst_info.fd = viddata->rga_buffer_prime_fds[viddata->rga_buffer_index];
+ if (c_RkRgaBlit(&src_info, &dst_info, NULL) < 0) {
+ SDL_LogError(SDL_LOG_CATEGORY_VIDEO,
+ "Failed to rga blit\n");
+ }
+ if (src_info.fd) {
+ close(src_info.fd);
+ }
+ src_info.fd = KMSDRM_gbm_bo_get_fd(windata->next_bo);
+ dst_info.fd = viddata->rga_buffer_prime_fds[viddata->rga_buffer_index];
+ if (c_RkRgaBlit(&src_info, &dst_info, NULL) < 0) {
+ SDL_LogError(SDL_LOG_CATEGORY_VIDEO,
+ "Failed to rga blit\n");
+ }
+
+ rga_buffer = viddata->rga_buffers[viddata->rga_buffer_index];
+ fb_info = KMSDRM_FBFromBO(_this, rga_buffer);
+ rga_buffer = viddata->rga_buffers[viddata->rga_buffer_index];
+ fb_info = KMSDRM_FBFromBO(_this, rga_buffer);
+
+ if (!fb_info) {
+ SDL_LogError(SDL_LOG_CATEGORY_VIDEO, "Could not get a framebuffer");
+ return 0;
+ }
+
+ viddata->rga_buffer_index = (viddata->rga_buffer_index + 1) % RGA_BUFFERS_MAX;
+
if (!fb_info) {
SDL_LogError(SDL_LOG_CATEGORY_VIDEO, "Could not get a framebuffer");
return 0;
}
+ viddata->rga_buffer_index = (viddata->rga_buffer_index + 1) % RGA_BUFFERS_MAX;
+
if (!windata->bo) {
/* On the first swap, immediately present the new front buffer. Before
drmModePageFlip can be used the CRTC has to be configured to use
diff --git a/src/video/kmsdrm/SDL_kmsdrmsym.h b/src/video/kmsdrm/SDL_kmsdrmsym.h
index ea3d8d1..d3b123b 100644
index 6956232..6d8b3fd 100644
--- a/src/video/kmsdrm/SDL_kmsdrmsym.h
+++ b/src/video/kmsdrm/SDL_kmsdrmsym.h
@@ -121,6 +121,7 @@ SDL_KMSDRM_SYM(struct gbm_surface *,gbm_surface_create,(struct gbm_device *gbm,
@@ -123,7 +123,7 @@ SDL_KMSDRM_SYM(struct gbm_surface *,gbm_surface_create,(struct gbm_device *gbm,
SDL_KMSDRM_SYM(void,gbm_surface_destroy,(struct gbm_surface *surf))
SDL_KMSDRM_SYM(struct gbm_bo *,gbm_surface_lock_front_buffer,(struct gbm_surface *surf))
SDL_KMSDRM_SYM(void,gbm_surface_release_buffer,(struct gbm_surface *surf, struct gbm_bo *bo))
-
+SDL_KMSDRM_SYM(int,gbm_bo_get_fd,(struct gbm_bo *bo))
#undef SDL_KMSDRM_MODULE
#undef SDL_KMSDRM_SYM
diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.c b/src/video/kmsdrm/SDL_kmsdrmvideo.c
index cedc739..f585a69 100644
index f7e7648..144f8f9 100644
--- a/src/video/kmsdrm/SDL_kmsdrmvideo.c
+++ b/src/video/kmsdrm/SDL_kmsdrmvideo.c
@@ -44,6 +44,7 @@
@ -96,17 +104,25 @@ index cedc739..f585a69 100644
#include "SDL_kmsdrmvulkan.h"
#include <sys/stat.h>
#include <sys/param.h>
@@ -71,6 +72,9 @@ static SDL_bool openbsd69orgreater = SDL_FALSE;
@@ -51,6 +52,7 @@
#include <dirent.h>
#include <poll.h>
#include <errno.h>
+#include<stdbool.h>
#ifdef __OpenBSD__
static SDL_bool openbsd69orgreater = SDL_FALSE;
@@ -70,6 +72,9 @@
#ifndef EGL_PLATFORM_GBM_MESA
#define EGL_PLATFORM_GBM_MESA 0x31D7
#endif
+
+rga_info_t src_info = {0};
+rga_info_t dst_info = {0};
+
static int
check_modestting(int devindex)
{
@@ -332,6 +336,46 @@ KMSDRM_FBDestroyCallback(struct gbm_bo *bo, void *data)
@@ -330,6 +335,46 @@
SDL_free(fb_info);
}
@ -121,15 +137,15 @@ index cedc739..f585a69 100644
+
+ l_frameHeight = frameHeight;
+ if(l_frameHeight % 32 != 0) {
+ l_frameHeight = (frameHeight + 32) & (~31);
+ l_frameHeight = (frameHeight + 32) & (~31);
+ }
+
+ // create buffers for RGA with adjusted stride
+ for (int i = 0; i < RGA_BUFFERS_MAX; ++i)
+ {
+ viddata->rga_buffers[i] = KMSDRM_gbm_bo_create(viddata->gbm_dev,
+ frameWidth, l_frameHeight,
+ GBM_FORMAT_XRGB8888, GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
+ frameWidth, l_frameHeight,
+ GBM_FORMAT_XRGB8888, GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
+ assert(viddata->rga_buffers[i]);
+
+ viddata->rga_buffer_prime_fds[i] = KMSDRM_gbm_bo_get_fd(viddata->rga_buffers[i]);
@ -153,7 +169,7 @@ index cedc739..f585a69 100644
KMSDRM_FBInfo *
KMSDRM_FBFromBO(_THIS, struct gbm_bo *bo)
{
@@ -704,8 +748,8 @@ void KMSDRM_AddDisplay (_THIS, drmModeConnector *connector, drmModeRes *resource
@@ -687,8 +732,8 @@
modedata->mode_index = mode_index;
display.driverdata = dispdata;
@ -164,16 +180,17 @@ index cedc739..f585a69 100644
display.desktop_mode.refresh_rate = dispdata->mode.vrefresh;
display.desktop_mode.format = SDL_PIXELFORMAT_ARGB8888;
display.desktop_mode.driverdata = modedata;
@@ -980,7 +1024,7 @@ KMSDRM_DirtySurfaces(SDL_Window *window) {
@@ -964,7 +1009,8 @@
or SetWindowFullscreen, send a fake event for now since the actual
recreation is deferred */
KMSDRM_GetModeToSet(window, &mode);
- SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, mode.hdisplay, mode.vdisplay);
+ SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, mode.vdisplay, mode.hdisplay);
+
}
/* This determines the size of the fb, which comes from the GBM surface
@@ -1016,13 +1060,13 @@ KMSDRM_CreateSurfaces(_THIS, SDL_Window * window)
@@ -1000,13 +1046,13 @@
mode that's set in sync with what SDL_video.c thinks is set */
KMSDRM_GetModeToSet(window, &dispdata->mode);
@ -190,7 +207,7 @@ index cedc739..f585a69 100644
surface_fmt, surface_flags);
if (!windata->gs) {
@@ -1046,7 +1090,7 @@ KMSDRM_CreateSurfaces(_THIS, SDL_Window * window)
@@ -1030,7 +1076,7 @@
ret = SDL_EGL_MakeCurrent(_this, windata->egl_surface, egl_context);
SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED,
@ -199,7 +216,7 @@ index cedc739..f585a69 100644
windata->egl_surface_dirty = SDL_FALSE;
@@ -1151,8 +1195,8 @@ KMSDRM_GetDisplayModes(_THIS, SDL_VideoDisplay * display)
@@ -1116,8 +1162,8 @@
modedata->mode_index = i;
}
@ -210,22 +227,21 @@ index cedc739..f585a69 100644
mode.refresh_rate = conn->modes[i].vrefresh;
mode.format = SDL_PIXELFORMAT_ARGB8888;
mode.driverdata = modedata;
@@ -1264,6 +1308,14 @@ KMSDRM_DestroyWindow(_THIS, SDL_Window *window)
@@ -1229,6 +1275,13 @@
/*********************************************************************/
SDL_free(window->driverdata);
window->driverdata = NULL;
+
+ for (int i = 0; i < RGA_BUFFERS_MAX; ++i) {
+ close(viddata->rga_buffer_prime_fds[i]);
+ }
+ if (src_info.fd) {
+ close(src_info.fd);
+ }
+ c_RkRgaDeInit();
+ for (int i = 0; i < RGA_BUFFERS_MAX; ++i) {
+ close(viddata->rga_buffer_prime_fds[i]);
+ }
+ if (src_info.fd) {
+ close(src_info.fd);
+ }
+ c_RkRgaDeInit();
}
/**********************************************************************/
@@ -1283,6 +1335,7 @@ KMSDRM_CreateWindow(_THIS, SDL_Window * window)
@@ -1248,6 +1301,7 @@
NativeDisplayType egl_display;
drmModeModeInfo *mode;
int ret = 0;
@ -233,18 +249,19 @@ index cedc739..f585a69 100644
/* Allocate window internal data */
windata = (SDL_WindowData *)SDL_calloc(1, sizeof(SDL_WindowData));
@@ -1391,6 +1444,9 @@ KMSDRM_CreateWindow(_THIS, SDL_Window * window)
@@ -1356,6 +1410,9 @@
SDL_SetMouseFocus(window);
SDL_SetKeyboardFocus(window);
+ data = (SDL_DisplayData *) SDL_GetDisplayForWindow(window)->driverdata;
+ KMSDRM_InitRotateBuffer(_this, data->mode.hdisplay, data->mode.vdisplay);
+
+ data = (SDL_DisplayData *) SDL_GetDisplayForWindow(window)->driverdata;
+ KMSDRM_InitRotateBuffer(_this, data->mode.hdisplay, data->mode.vdisplay);
+
/* Tell the app that the window has moved to top-left. */
SDL_SendWindowEvent(window, SDL_WINDOWEVENT_MOVED, 0, 0);
diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.h b/src/video/kmsdrm/SDL_kmsdrmvideo.h
index b172eb9..c4bd1f5 100644
index 566fc85..10519e9 100644
--- a/src/video/kmsdrm/SDL_kmsdrmvideo.h
+++ b/src/video/kmsdrm/SDL_kmsdrmvideo.h
@@ -32,6 +32,10 @@
@ -265,96 +282,7 @@ index b172eb9..c4bd1f5 100644
+ struct gbm_bo* rga_buffers[RGA_BUFFERS_MAX];
+ int rga_buffer_prime_fds[RGA_BUFFERS_MAX];
+ int rga_buffer_index;
+
+
} SDL_VideoData;
diff --git a/src/video/kmsdrm/SDL_kmsdrmmouse.c b/src/video/kmsdrm/SDL_kmsdrmmouse.c
index b45909027..231d5b1d6 100644
--- a/src/video/kmsdrm/SDL_kmsdrmmouse.c
+++ b/src/video/kmsdrm/SDL_kmsdrmmouse.c
@@ -73,6 +73,7 @@ KMSDRM_DestroyCursorBO (_THIS, SDL_VideoDisplay *display)
if (dispdata->cursor_bo) {
KMSDRM_gbm_bo_destroy(dispdata->cursor_bo);
dispdata->cursor_bo = NULL;
+ dispdata->cursor_bo_drm_fd = -1;
}
}
@@ -116,6 +117,8 @@ KMSDRM_CreateCursorBO (SDL_VideoDisplay *display) {
SDL_SetError("Could not create GBM cursor BO");
return;
}
+
+ dispdata->cursor_bo_drm_fd = viddata->drm_fd;
}
/* Remove a cursor buffer from a display's DRM cursor BO. */
@@ -384,11 +387,9 @@ KMSDRM_WarpMouseGlobal(int x, int y)
/* And now update the cursor graphic position on screen. */
if (dispdata->cursor_bo) {
- int drm_fd;
int ret = 0;
- drm_fd = KMSDRM_gbm_device_get_fd(KMSDRM_gbm_bo_get_device(dispdata->cursor_bo));
- ret = KMSDRM_drmModeMoveCursor(drm_fd, dispdata->crtc->crtc_id, x, y);
+ ret = KMSDRM_drmModeMoveCursor(dispdata->cursor_bo_drm_fd, dispdata->crtc->crtc_id, x, y);
if (ret) {
SDL_SetError("drmModeMoveCursor() failed.");
@@ -437,7 +438,6 @@ static void
KMSDRM_MoveCursor(SDL_Cursor * cursor)
{
SDL_Mouse *mouse = SDL_GetMouse();
- int drm_fd;
int ret = 0;
/* We must NOT call SDL_SendMouseMotion() here or we will enter recursivity!
@@ -452,9 +452,7 @@ KMSDRM_MoveCursor(SDL_Cursor * cursor)
return;
}
- drm_fd = KMSDRM_gbm_device_get_fd(KMSDRM_gbm_bo_get_device(dispdata->cursor_bo));
-
- ret = KMSDRM_drmModeMoveCursor(drm_fd, dispdata->crtc->crtc_id, mouse->x, mouse->y);
+ ret = KMSDRM_drmModeMoveCursor(dispdata->cursor_bo_drm_fd, dispdata->crtc->crtc_id, mouse->x, mouse->y);
if (ret) {
SDL_SetError("drmModeMoveCursor() failed.");
diff --git a/src/video/kmsdrm/SDL_kmsdrmsym.h b/src/video/kmsdrm/SDL_kmsdrmsym.h
index 90d128582..e368c5d0d 100644
--- a/src/video/kmsdrm/SDL_kmsdrmsym.h
+++ b/src/video/kmsdrm/SDL_kmsdrmsym.h
@@ -95,7 +95,6 @@ SDL_KMSDRM_SYM(int,drmModeSetPlane,(int fd, uint32_t plane_id, uint32_t crtc_id,
/* Planes stuff ends. */
SDL_KMSDRM_MODULE(GBM)
-SDL_KMSDRM_SYM(int,gbm_device_get_fd,(struct gbm_device *gbm))
SDL_KMSDRM_SYM(int,gbm_device_is_format_supported,(struct gbm_device *gbm,
uint32_t format, uint32_t usage))
SDL_KMSDRM_SYM(void,gbm_device_destroy,(struct gbm_device *gbm))
diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.c b/src/video/kmsdrm/SDL_kmsdrmvideo.c
index dbc1b4455..3308dd963 100644
--- a/src/video/kmsdrm/SDL_kmsdrmvideo.c
+++ b/src/video/kmsdrm/SDL_kmsdrmvideo.c
@@ -555,6 +555,7 @@ KMSDRM_AddDisplay (_THIS, drmModeConnector *connector, drmModeRes *resources) {
/* Initialize some of the members of the new display's driverdata
to sane values. */
dispdata->cursor_bo = NULL;
+ dispdata->cursor_bo_drm_fd = -1;
/* Since we create and show the default cursor on KMSDRM_InitMouse(),
and we call KMSDRM_InitMouse() when we create a window, we have to know
diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.h b/src/video/kmsdrm/SDL_kmsdrmvideo.h
index b172eb90f..566fc852d 100644
--- a/src/video/kmsdrm/SDL_kmsdrmvideo.h
+++ b/src/video/kmsdrm/SDL_kmsdrmvideo.h
@@ -77,6 +77,7 @@ typedef struct SDL_DisplayData
where we may not have an SDL_Cursor at all (so no SDL_Cursor driverdata).
There's only one cursor GBM BO because we only support one cursor. */
struct gbm_bo *cursor_bo;
+ int cursor_bo_drm_fd;
uint64_t cursor_w, cursor_h;
SDL_bool default_cursor_init;

View file

@ -11,15 +11,27 @@ diff --git a/src/video/kmsdrm/SDL_kmsdrmmouse.c b/src/video/kmsdrm/SDL_kmsdrmmou
index b22fc8e..c9d7700 100644
--- a/src/video/kmsdrm/SDL_kmsdrmmouse.c
+++ b/src/video/kmsdrm/SDL_kmsdrmmouse.c
@@ -202,7 +202,7 @@ KMSDRM_DumpCursorToBO(SDL_VideoDisplay *display, SDL_Cursor *cursor)
for (j = 0; j < curdata->w; j++) {
pixel = ((uint32_t*)curdata->buffer)[i * curdata->w + j];
legacy_alpha_premultiply_ARGB8888 (&pixel);
- SDL_memcpy(ready_buffer + (i * dispdata->cursor_w) + j, &pixel, 4);
+ SDL_memcpy(ready_buffer + ((curdata->w - j + 1) * dispdata->cursor_w) + i, &pixel, 4);
}
@@ -156,6 +156,7 @@
uint8_t *src_row;
int i;
+ int j;
int ret;
if (!curdata || !dispdata->cursor_bo) {
@@ -176,8 +177,10 @@
/* Copy from the cursor buffer to a buffer that we can dump to the GBM BO. */
for (i = 0; i < curdata->h; i++) {
- src_row = &((uint8_t*)curdata->buffer)[i * curdata->w * 4];
- SDL_memcpy(ready_buffer + (i * bo_stride), src_row, 4 * curdata->w);
+ for (j = 0; j < curdata->w; j++) {
+ src_row = ((uint32_t*)curdata->buffer)[i * curdata->w + j];
+ SDL_memcpy(ready_buffer + ((curdata->w - j + 1) * bo_stride) + i, &src_row, 4);
+ }
}
/* Dump the cursor buffer to our GBM BO. */
@@ -216,10 +216,10 @@ KMSDRM_DumpCursorToBO(SDL_VideoDisplay *display, SDL_Cursor *cursor)
bo_handle = KMSDRM_gbm_bo_get_handle(dispdata->cursor_bo).u32;
if (curdata->hot_x == 0 && curdata->hot_y == 0) {

View file

@ -1,54 +1,15 @@
global.analogue=1
ssh.enabled=1
samba.enabled=0
bluetooth.enabled=0
global.maxperf=0
boot=Emulationstation
splash.enabled=0
advmame_auto_gamepad=0
system.hostname=JELOS
rotate.root.password=1
cooling.profile=quiet
wifi.enabled=0
audio.bgmusic=1
controllers.bluetooth.enabled=1
system.language=en_US
system.timezone=America/New_York
global.retroarch.menu_driver=ozone
global.ratio=core
global.autosave=2
global.incrementalsavestates=0
global.runahead=0
global.secondinstance=0
global.retroachievements=0
global.retroachievements.hardcore=0
global.retroachievements.leaderboards=disabled
global.retroachievements.challengeindicators=0
global.retroachievements.richpresence=0
global.retroachievements.testunofficial=0
global.retroachievements.soundenable=0
global.retroachievements.verbose=0
global.retroachievements.screenshot=0
global.retroachievements.username=
global.retroachievements.password=
audio.display_titles=1
audio.persystem=0
global.netplay=0
global.netplay.port=55435
global.netplay.relay=none
audio.device=headphone
audio.volume=75
3do.integerscale=1
3do.maxperf=1
3do.ratio=4/3
3do.integerscale=1
3do.rewind=0
amiga.ratio=4/3
amiga.integerscale=1
amigacd32.ratio=4/3
advmame_auto_gamepad=0
amigacd32.integerscale=1
amigacd32.ratio=4/3
amiga.integerscale=1
amiga.ratio=4/3
amstradcpc.integerscale=1
arcade.maxperf=1
arcade.autosave=0
arcade.maxperf=1
atari2600.integerscale=1
atari5200.integerscale=1
atari7800.integerscale=1
@ -56,133 +17,175 @@ atari800.integerscale=1
atarilynx.integerscale=1
atarilynx.ratio=core
atarist.integerscale=1
atomiswave.integerscale=1
atomiswave.maxperf=1
atomiswave.ratio=4/3
atomiswave.integerscale=1
cps1.integerscale=1
cps2.integerscale=1
cps3.integerscale=1
colecovision.ratio=4/3
colecovision.integerscale=1
audio.bgmusic=1
audio.device=headphone
audio.display_titles=1
audio.persystem=0
audio.volume=75
bluetooth.enabled=0
boot=Emulationstation
c128.integerscale=1
c16.integerscale=1
c64.integerscale=1
daphne.ratio=4/3
colecovision.integerscale=1
colecovision.ratio=4/3
controllers.bluetooth.enabled=1
cooling.profile=quiet
cps1.integerscale=1
cps2.integerscale=1
cps3.integerscale=1
daphne.integerscale=1
daphne.ratio=4/3
dreamcast.integerscale=1
dreamcast.maxperf=1
dreamcast.ratio=4/3
dreamcast.integerscale=1
easyrpg.integerscale=1
famicom.ratio=4/3
famicom.integerscale=1
fbn.ratio=core
famicom.ratio=4/3
fbn.integerscale=1
fds.ratio=4/3
fbn.ratio=core
fds.integerscale=1
fds.ratio=4/3
gamegear.integerscale=1
gb.integerscale=1
gba.ratio=3/2
gbah.ratio=3/2
gbc.integerscale=1
gba.ratio=3/2
gbch.integerscale=1
gbc.integerscale=1
gbh.integerscale=1
genesis.ratio=4/3
gb.integerscale=1
genesis.integerscale=1
genh.ratio=4/3
genesis.ratio=4/3
genh.integerscale=1
genh.ratio=4/3
ggh.integerscale=1
intellivision.ratio=4/3
global.analogue=1
global.autosave=2
global.incrementalsavestates=0
global.maxperf=0
global.netplay=0
global.netplay.port=55435
global.netplay.relay=none
global.ratio=core
global.retroachievements=0
global.retroachievements.challengeindicators=0
global.retroachievements.hardcore=0
global.retroachievements.leaderboards=disabled
global.retroachievements.password=
global.retroachievements.richpresence=0
global.retroachievements.screenshot=0
global.retroachievements.soundenable=0
global.retroachievements.testunofficial=0
global.retroachievements.username=
global.retroachievements.verbose=0
global.retroarch.menu_driver=ozone
global.runahead=0
global.secondinstance=0
intellivision.integerscale=1
intellivision.ratio=4/3
internal.wifi=1
j2me.maxperf=1
mame.autosave=0
mame.maxperf=1
mame.integerscale=1
mame.maxperf=1
mastersystem.integerscale=1
megacd.ratio=4/3
megacd.integerscale=1
megaduck.integerscale=1
megadrive.ratio=4/3
megacd.ratio=4/3
megadrive.integerscale=1
megadrive-japan.ratio=4/3
megadrive-japan.integerscale=1
msx.ratio=4/3
msx.integerscale=1
msx2.ratio=4/3
megadrive-japan.ratio=4/3
megadrive.ratio=4/3
megaduck.integerscale=1
msx2.integerscale=1
msx2.ratio=4/3
msx.integerscale=1
msx.ratio=4/3
n64.integerscale=1
n64.maxperf=1
n64.ratio=4/3
n64.integerscale=1
nds.maxperf=1
naomi.integerscale=1
naomi.maxperf=1
naomi.ratio=4/3
naomi.integerscale=1
neocd.ratio=4/3
nds.maxperf=1
neocd.integerscale=1
neogeo.ratio=4/3
neocd.ratio=4/3
neogeo.integerscale=1
nes.ratio=4/3
nes.integerscale=1
nesh.ratio=4/3
neogeo.ratio=4/3
nesh.integerscale=1
ngp.integerscale=1
nesh.ratio=4/3
nes.integerscale=1
nes.ratio=4/3
ngpc.intergerscale=1
odyssey2.ratio=4/3
ngp.integerscale=1
odyssey2.integerscale=1
pc.maxperf=1
pc.ratio=4/3
pc.integerscale=1
pc-9800.ratio=4/3
odyssey2.ratio=4/3
pc-9800.integerscale=1
pcengine.ratio=4/3
pcengine.integerscale=1
pcenginecd.ratio=4/3
pc-9800.ratio=4/3
pcenginecd.integerscale=1
pcenginecd.ratio=4/3
pcengine.integerscale=1
pcengine.ratio=4/3
pcfx.integerscale=1
pcfx.maxperf=1
pcfx.ratio=4/3
pcfx.integerscale=1
pc.integerscale=1
pc.maxperf=1
pc.ratio=4/3
pokemini.ratio=3/2
psp.maxperf=1
pspminis.maxperf=1
psx.ratio=4/3
psx.integerscale=1
saturn.ratio=4/3
psx.ratio=4/3
rotate.root.password=1
samba.enabled=0
saturn.integerscale=1
saturn.ratio=4/3
sc-3000.integerscale=1
sega32x.ratio=4/3
sega32x.integerscale=1
segacd.ratio=4/3
sega32x.ratio=4/3
segacd.integerscale=1
sfc.ratio=4/3
segacd.ratio=4/3
sfc.integerscale=1
sfc.ratio=4/3
sg-1000.integerscale=1
snes.ratio=4/3
snes.integerscale=1
snesh.ratio=4/3
snesh.integerscale=1
snesmsu1.ratio=4/3
snesh.ratio=4/3
snes.integerscale=1
snesmsu1.integerscale=1
supergrafx.ratio=4/3
snesmsu1.ratio=4/3
snes.ratio=4/3
splash.enabled=0
ssh.enabled=1
supergrafx.integerscale=1
supergrafx.ratio=4/3
supervision.integerscale=1
tg16.ratio=4/3
tg16.integerscale=1
tg16cd.ratio=4/3
system.hostname=JELOS
system.language=en_US
system.overclock=off
system.timezone=America/New_York
tg16cd.integerscale=1
tg16cd.ratio=4/3
tg16.integerscale=1
tg16.ratio=4/3
updates.enabled=1
uzebox.integerscale=1
uzebox.integerscale=1
vectrex.ratio=3/4
vectrex.integerscale=1
vic20.ratio=4/3
vectrex.ratio=3/4
vic20.integerscale=1
videopac.ratio=4/3
vic20.ratio=4/3
videopac.integerscale=1
videopac.ratio=4/3
virtualboy.integerscale=1
virtualboy.maxperf=1
wonderswan.integerscale=1
wifi.enabled=0
wonderswancolor.integerscale=1
x68000.ratio=4/3
wonderswan.integerscale=1
x68000.integerscale=1
zxspectrum.ratio=4/3
zxspectrum.integerscale=1
zx81.ratio=4/3
x68000.ratio=4/3
zx81.integerscale=1
zx81.ratio=4/3
zxspectrum.integerscale=1
zxspectrum.ratio=4/3

View file

@ -15,17 +15,17 @@ PKG_AUTORECONF="no"
PKG_TOOLCHAIN="make"
PKG_BASEOS="plymouth-lite grep wget libjpeg-turbo util-linux xmlstarlet bluetool gnupg gzip patchelf \
imagemagick util-linux system-utils terminus-font vim bash pyudev dialog six git dbus-python \
coreutils miniupnpc nss-mdns avahi MC fbgrab modules"
imagemagick terminus-font vim bash pyudev dialog six git dbus-python coreutils miniupnpc \
nss-mdns avahi MC fbgrab modules"
PKG_UI="emulationstation"
PKG_EMUS="common-shaders glsl-shaders libretro-database retroarch advancemame hatarisa openbor \
scummvmsa PPSSPPSDL"
scummvmsa PPSSPPSDL yabasanshiroSA mupen64plussa vicesa"
LIBRETRO_CORES="2048 81 atari800 beetle-gba beetle-lynx beetle-ngp beetle-pce beetle-pcfx \
beetle-supafaust beetle-supergrafx beetle-vb beetle-wswan bluemsx \
cannonball cap32 crocods daphne dinothawr dosbox-svn dosbox-pure easyrpg fbalpha2012 \
beetle-supafaust beetle-supergrafx beetle-vb beetle-wswan bluemsx cannonball cap32 \
crocods daphne dinothawr dosbox-svn dosbox-pure duckstation easyrpg fbalpha2012 \
fbalpha2019 fbneo fceumm fmsx flycast freechaf freeintv freej2me fuse-libretro \
gambatte gearboy gearcoleco gearsystem genesis-plus-gx genesis-plus-gx-wide gme \
gpsp gw-libretro handy hatari mame2000 mame2003-plus mame2010 mame2015 mame \
@ -45,6 +45,13 @@ PKG_GAMESUPPORT="sixaxis jslisten evtest rg351p-js2xbox gptokeyb textviewer 351f
PKG_EXPERIMENTAL=""
### Project/Device specific items
if [ "${PROJECT}" == "Rockchip" ]
then
PKG_BASEOS+=" system-utils"
PKG_EMUS+=" retropie-shaders"
fi
if [ ! -z "${BASE_ONLY}" ]
then
PKG_DEPENDS_TARGET+=" ${PKG_BASEOS} ${PKG_UI} ${PKG_GAMESUPPORT}"
@ -72,17 +79,6 @@ makeinstall_target() {
}
post_install() {
# Remove unnecesary Retroarch Assets and overlays
for i in branding nuklear nxrgui pkg switch wallpapers zarch COPYING; do
rm -rf "${INSTALL}/usr/share/retroarch-assets/$i"
done
for i in automatic dot-art flatui neoactive pixel retroactive retrosystem systematic convert.sh NPMApng2PMApng.py; do
rm -rf "${INSTALL}/usr/share/retroarch-assets/xmb/$i"
done
mkdir -p ${INSTALL}/etc/retroarch-joypad-autoconfig
cp -r ${PKG_DIR}/gamepads/* ${INSTALL}/etc/retroarch-joypad-autoconfig
ln -sf jelos.target ${INSTALL}/usr/lib/systemd/system/default.target
mkdir -p ${INSTALL}/etc/profile.d
@ -102,6 +98,13 @@ post_install() {
chmod -R 0755 ${INSTALL}/usr/lib/autostart ${INSTALL}/usr/bin/autostart
enable_service jelos-autostart.service
if [ ! -d "${INSTALL}/usr/share" ]
then
mkdir "${INSTALL}/usr/share"
fi
cp ${PKG_DIR}/sources/post-update ${INSTALL}/usr/share
chmod 755 ${INSTALL}/usr/share/post-update
# Issue banner
cp ${PKG_DIR}/sources/issue ${INSTALL}/etc
ln -s /etc/issue ${INSTALL}/etc/motd
@ -113,25 +116,11 @@ EOF
cp ${PKG_DIR}/sources/shutdown.sh ${INSTALL}/usr/bin
cp ${PKG_DIR}/sources/pico-8.sh ${INSTALL}/usr/bin
cp ${PKG_DIR}/sources/scripts/* ${INSTALL}/usr/bin
chmod 0755 ${INSTALL}/usr/bin/pico-8.sh
if [ -d "${PKG_DIR}/sources/asound/${DEVICE}" ]
then
cp ${PKG_DIR}/sources/asound/${DEVICE}/* ${INSTALL}/usr/config/
fi
rm -f ${INSTALL}/usr/bin/{sh,bash,busybox,sort}
cp $(get_build_dir busybox)/.install_pkg/usr/bin/busybox ${INSTALL}/usr/bin
cp $(get_build_dir bash)/.install_pkg/usr/bin/bash ${INSTALL}/usr/bin
cp $(get_build_dir coreutils)/.install_pkg/usr/bin/sort ${INSTALL}/usr/bin
ln -sf bash ${INSTALL}/usr/bin/sh
mkdir -p ${INSTALL}/etc
echo "/usr/bin/bash" >>${INSTALL}/etc/shells
echo "/usr/bin/sh" >>${INSTALL}/etc/shells
echo "chmod 4755 ${INSTALL}/usr/bin/bash" >> ${FAKEROOT_SCRIPT}
echo "chmod 4755 ${INSTALL}/usr/bin/busybox" >> ${FAKEROOT_SCRIPT}
find ${INSTALL}/usr/ -type f -iname "*.sh" -exec chmod +x {} \;
}

View file

@ -16,11 +16,11 @@ EE_DEVICE=${HW_DEVICE}
JSLISTENCONF="/storage/.config/system/configs/jslisten.cfg"
get_setting() {
awk -F: '/'${1}'/ { st = index($0,"=");print substr($0,st+1)}' ${J_CONF}
awk -F: '/'^${1}'/ { st = index($0,"=");print substr($0,st+1)}' ${J_CONF}
}
set_setting() {
sed -i "/$1=/d" "${J_CONF}"
sed -i "/^$1=/d" "${J_CONF}"
[ $2 == "disable" ] && echo "#${1}=" >> "${J_CONF}" || echo "${1}=${2}" >> "${J_CONF}"
}

View file

@ -7,17 +7,12 @@
set_gov() {
for POLICY in ${CPU_FREQ[@]}
do
if [ "${POLICY}" = "${NO_MAX_PERF}" ] && [ "$1" = "performance" ]
then
continue
else
echo $1 >${POLICY} 2>/dev/null
fi
echo $1 >${POLICY}/scaling_governor 2>/dev/null
done
for HANDLE in ${GPU_FREQ} ${DMC_FREQ}
do
echo $1 >${HANDLE} 2>/dev/null || echo dmc_$1 >${HANDLE} 2>/dev/null
echo $1 >${HANDLE}/governor 2>/dev/null || echo dmc_$1 >${HANDLE}/governor 2>/dev/null
done
}

View file

@ -4,29 +4,17 @@
. /etc/profile
### Switch the theme to system-theme if it hasn't already been done
if [ ! -L /storage/.config/emulationstation/themes/system-theme ]
then
rm -rf /storage/.config/emulationstation/themes/es-theme-art-book-next
mkdir -p /storage/.config/emulationstation/themes
ln -s /usr/share/themes/es-theme-art-book-next /storage/.config/emulationstation/themes/system-theme
sed -i 's#<string name="ThemeSet" value="es-theme-art-book-next"/>#<string name="ThemeSet" value="system-theme"/>#' /storage/.config/emulationstation/es_settings.cfg
fi
### Resume normal startup stuff.
if [ -d "/storage/.config/system/configs" ]
then
EXCLUDE="--exclude=configs"
fi
rsync -a --delete ${EXCLUDE} /usr/config/system/ /storage/.config/system/
rsync -a /usr/config/modules /storage/.config/
rsync -a /usr/config/game /storage/.config/
rsync -a --delete /usr/config/locale/ /storage/.config/emulationstation/locale/
rsync -a --delete ${EXCLUDE} /usr/config/system/ /storage/.config/system/ &
rsync -a /usr/config/modules /storage/.config/ &
rsync -a /usr/config/game /storage/.config/ &
rsync -a --delete /usr/config/locale/ /storage/.config/emulationstation/locale/ &
cp -f /usr/config/SDL-GameControllerDB/gamecontrollerdb.txt /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt
cp -f /usr/config/ppsspp/PSP/SYSTEM/controls.ini /storage/.config/ppsspp/PSP/SYSTEM/controls.ini
wait < <(jobs -p)
if [ ! -L "/storage/.emulationstation" ]
then

View file

@ -0,0 +1,14 @@
#!/bin/sh
# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
. /etc/profile
if [ "$(cat /storage/.config/boot.hint 2>/dev/null)" = "UPDATE" ]
then
if [ -e "/usr/share/post-update" ]
then
/usr/share/post-update
fi
rm /storage/.config/boot.hint
fi

View file

@ -11,7 +11,7 @@ then
fi
# Set the mixer in ES
sed -i 's#<string name="AudioDevice" value="'.*'" />#<string name="AudioDevice" value="'${DEVICE_AUDIO_MIXER}'" />#' .emulationstation/es_settings.cfg
sed -i 's#<string name="AudioDevice" value="'.*'" />#<string name="AudioDevice" value="'${DEVICE_AUDIO_MIXER}'" />#' /storage/.emulationstation/es_settings.cfg
VOL=$(get_setting "audio.volume" 2>/dev/null)
amixer set "${DEVICE_AUDIO_MIXER}" ${VOL}%

View file

@ -13,24 +13,10 @@ fi
ROTATION=$(get_setting rotate.root.password)
if [ "${ROTATION}" == "0" ]
then
set_setting root.password "MANUALLY SET"
exit 0
fi
LPC=$(awk -F: '/^root/{print $3}' /storage/.cache/shadow)
CURRENT=$(awk -F: '/^root/{print $2}' /storage/.cache/shadow)
# Randomly generate the root password on startup
ROOTPASS=$(openssl rand -base64 10 2>/dev/null | sed "s#==##g")
# Turn it into a usable hash
NEW=$(cryptpw -m sha512 "${ROOTPASS}" 2>/dev/null)
# Set the root password.
sed -i "s#root:${CURRENT}:${LPC}::::::#root:${NEW}:${LPC}::::::#g" /storage/.cache/shadow 2>/dev/null
# Create a root user and set the password.
echo -ne "${ROOTPASS}\n${ROOTPASS}\n" | smbpasswd -sa root 2>/dev/null
# Save the password so we can display it in ES
set_setting root.password "${ROOTPASS}"
/usr/bin/setrootpass "${ROOTPASS}"

View file

@ -4,6 +4,14 @@
. /etc/profile
if [ "$(get_setting internal.wifi)" == 0 ] && [ "${DEVICE_INTERNAL_WIFI}" = true ]
then
rmmod ${DEVICE_WIFI_MODULE}
else
set_setting internal.wifi 1
fi
if [ "$(get_setting wifi.enabled)" == "0" ] || [ "$1" == "disable" ]
then
connmanctl disable wifi

Some files were not shown because too many files have changed in this diff Show more