#!/bin/sh setFileName(){ filename="$(readlink -f "$1")" filebase="$(basename "$filename")" extension="${filebase##*.}" } getSfrom(){ local rom="$(hexdump -e '1/4 "%u"' -s8 -n4 "$1")" local footer="$(hexdump -e '1/4 "%u"' -s20 -n4 "$1")" local size="$(hexdump -e '1/4 "%u"' -s$((footer+1)) -n4 "$1")" dd "status=none" "if=$1" "iflag=skip_bytes" "skip=$rom" "bs=$size" "count=1" } setFileName "$1" shift tmppath="/tmp/rom" rm -rf "$tmppath" mkdir -p "$tmppath" cd "$tmppath" if [ "$extension" = "7z" ]; then tiny7zx x "$filename" filename="$tmppath/$(ls | head -n1)" filename_str="${filename// /_}" mv "$filename" "$filename_str" setFileName "$filename_str" fi if [ "$extension" = "sfrom" ]; then filename_str="$filebase.sfc" getSfrom "$filename" > "$filename_str" setFileName "$filename_str" fi exec retroarch-clover snes9x2005 "$filename" "$@"