Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/retroarch-clover.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2017-10-07 12:31:12 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2017-10-07 12:31:12 +0300
commitea523e14cc558b00c3b42ab6cabd0c54a7781f26 (patch)
treede43c32b9745624b88450b5c126dfa24eafddf63
parentb959a62f6d28b00836efff8057f6aa4c36429eb8 (diff)
SNES ready
-rwxr-xr-xcore_modules/snes9x2010.hmod/bin/snes24
-rwxr-xr-xcore_modules/snes9x2010.hmod/bin/snes102
-rw-r--r--core_modules/snes9x2010.hmod/etc/preinit.d/pe9b0_retroarch_snes1
-rwxr-xr-xcore_modules/snes9x2010.hmod/usr/bin/clover-canoe-shvc80
-rwxr-xr-x[-rw-r--r--]retroarch.hmod/bin/retroarch-clover-child21
5 files changed, 124 insertions, 4 deletions
diff --git a/core_modules/snes9x2010.hmod/bin/snes b/core_modules/snes9x2010.hmod/bin/snes
index 215b4ab..f0ff36f 100755
--- a/core_modules/snes9x2010.hmod/bin/snes
+++ b/core_modules/snes9x2010.hmod/bin/snes
@@ -1,2 +1,24 @@
#!/bin/sh
-exec retroarch-clover snes9x2010 "$@"
+
+filename=$1
+filebase=$(basename "$filename")
+extension="${filebase##*.}"
+tmppath=/tmp/rom
+if [ "$extension" == "7z" ]; then
+ mkdir -p $tmppath
+ rm -rf $tmppath/*
+ cd $tmppath
+ tiny7zx x $filename
+ filename=$tmppath/$(ls)
+fi
+
+filebase=$(basename "$filename")
+extension="${filebase##*.}"
+if [ "$extension" == "sfrom" ]; then
+ mkdir -p $tmppath
+ dd if="$filename" of="$tmppath/$filebase.bin" bs=48 skip=1
+ filename=$tmppath/$filebase.bin
+fi
+shift
+
+exec retroarch-clover snes9x2010 "$filename" "$@"
diff --git a/core_modules/snes9x2010.hmod/bin/snes10 b/core_modules/snes9x2010.hmod/bin/snes10
deleted file mode 100755
index 215b4ab..0000000
--- a/core_modules/snes9x2010.hmod/bin/snes10
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-exec retroarch-clover snes9x2010 "$@"
diff --git a/core_modules/snes9x2010.hmod/etc/preinit.d/pe9b0_retroarch_snes b/core_modules/snes9x2010.hmod/etc/preinit.d/pe9b0_retroarch_snes
new file mode 100644
index 0000000..82b9be4
--- /dev/null
+++ b/core_modules/snes9x2010.hmod/etc/preinit.d/pe9b0_retroarch_snes
@@ -0,0 +1 @@
+[ -f "$mountpoint/usr/bin/clover-canoe-shvc" ] && overmount /usr/bin/clover-canoe-shvc
diff --git a/core_modules/snes9x2010.hmod/usr/bin/clover-canoe-shvc b/core_modules/snes9x2010.hmod/usr/bin/clover-canoe-shvc
new file mode 100755
index 0000000..6ce93c6
--- /dev/null
+++ b/core_modules/snes9x2010.hmod/usr/bin/clover-canoe-shvc
@@ -0,0 +1,80 @@
+#!/bin/sh
+
+set -x
+
+export MALI_NOCLEAR=1
+
+decorative_options()
+{
+ local fn="$1_options.txt"
+ if [ ! -f "$fn" ] ; then
+ return
+ fi
+ while read option ; do
+ case "$option" in
+ hue) printf ' --decorative-frame-hue';;
+ luminosity) printf ' --decorative-frame-luminosity';;
+ saturation) printf ' --decorative-frame-saturation';;
+ esac
+ done < "$fn"
+}
+
+original_options=$@
+options=""
+
+while [ $# -gt 0 ] ; do
+ case "$1" in
+ --title-code) title_code="$2"; shift ;;
+ --load-state-file) options="$options -resume" ;;
+ --save-data-backing-file) options="$options --sram-file" ;;
+ --replay-inputs) options="$options -replay-all -replay" ;;
+ --record-inputs) options="$options -record-next -enable-pad-debug-controls" ;;
+ --video-mode)
+ case "$2" in
+ keep-aspect-ratio) options="$options -filter 1 -magfilter 3" ;;
+ pixel-perfect) options="$options -filter 1 --pixel-perfect" ;;
+ crt-filter) options="$options -filter 2 -magfilter 1" ;;
+ esac
+ shift
+ ;;
+ --rollback-mode)
+ case "$2" in
+ record) options="$options -rollback-mode 1" ;;
+ replay) options="$options -rollback-mode 2" ;;
+ esac
+ options="$options --rollback-ui /usr/share/canoe/rollback-ui"
+ options="-rollback-snapshot-period 720 $options"
+ options="$options --enable-sram-file-hash"
+ shift
+ ;;
+ --rollback-output-dir) options="$options -rollback-output-dir $2"; shift ;;
+ --rollback-input-dir) options="$options -rollback-input-dir $2"; shift ;;
+ --decorative-frame-path) options="$options --use-decorative-frame $2 $(decorative_options $2)"; shift ;;
+ --retroarch) retroarch=1 ;;
+ *.sfrom)
+ if [ -f "$1.gz" ]; then
+ options="$options /tmp/ROM.sfrom"
+ gunzip -c "$1.gz" > /tmp/ROM.sfrom
+ rom=/tmp/ROM.sfrom
+ else
+ options="$options $1"
+ rom=$1
+ fi
+ ;;
+ *) options="$options $1" ;;
+ esac
+ shift
+done
+
+read BUILD_TYPE < /etc/clover/buildtype
+case "$BUILD_TYPE" in
+devel) log="-log $title_code.log -log-append --debug-menu-settings /var/lib/clover/canoe/debug-menu.json --decorative-frames-path /usr/share/backgrounds" ;;
+test) log="-log $title_code.log" ;;
+*) ;;
+esac
+
+if [ -z "$retroarch" ]; then
+ exec canoe-shvc $options $log
+else
+ exec /bin/snes "$rom" $original_options
+fi
diff --git a/retroarch.hmod/bin/retroarch-clover-child b/retroarch.hmod/bin/retroarch-clover-child
index cd313e1..14ccbb1 100644..100755
--- a/retroarch.hmod/bin/retroarch-clover-child
+++ b/retroarch.hmod/bin/retroarch-clover-child
@@ -14,6 +14,7 @@ autosave="/var/cache/$id.state.auto"
rsram="/var/cache/$id.srm"
rsav="/var/cache/$id.sav"
t_suffix=_time.txt
+demo_time=30
shift 2
crt=0
@@ -35,11 +36,14 @@ while [ $# -gt 0 ]; do
[ "$1" == "--ra-extra" ] && extra=$2
[ "$1" == "--ra-nosaves" ] && nosaves=1
[ "$1" == "--save-time-path" ] && timefile=$2
+ [ "$1" == "--replay-inputs" ] && demo=1
shift
done
[ -z "$timefile" ] && timefile=$load$t_suffix
+[ ! -z "$demo" ] && load=$(dirname $load)/savestate
+
# saves if any
rm -f /var/cache/*.state /var/cache/*.auto /var/cache/*.srm /var/cache/*.sav
if [ ! -z "$load" ] && [ -f "$load" ] && [ -z "$nosaves" ]; then
@@ -100,7 +104,13 @@ power_pid=$!
dd if=$reset_file of=/dev/null count=1 2> /dev/null &
reset_pid=$!
-sleep 2
+# Demo mode enabled
+if [ ! -z "$demo" ]; then
+ dd if=/dev/input/event2 of=/dev/null count=1 2> /dev/null &
+ anybutton_pid=$!
+fi
+
+sleep 3
rm -f /var/cache/*.state /var/cache/*.auto /var/cache/*.srm /var/cache/*.sav
# Playing games until reset pressed
@@ -108,11 +118,20 @@ while [ true ]; do
kill -0 $rpid 2> /dev/null || break
kill -0 $reset_pid 2> /dev/null || break
kill -0 $power_pid 2> /dev/null || break
+ if [ ! -z "$demo" ]; then
+ # Exit on any button
+ kill -0 $anybutton_pid 2> /dev/null || break
+ # Or after some time
+ ts2=$(date +"%s")
+ tp=$((ts2 - ts))
+ [ "$tp" -ge "$demo_time" ] && break
+ fi
done
kill $rpid 2> /dev/null
kill -KILL $reset_pid 2> /dev/null
kill -KILL $power_pid 2> /dev/null
+[ ! -z "$demo" ] && kill -KILL $anybutton_pid 2> /dev/null
[ ! -z "$save" ] && mkdir -p $(dirname "$save")
[ ! -z "$sram" ] && mkdir -p $(dirname "$sram")