From 12e8a81ef6e8caa69def7d4b4745fa2248610210 Mon Sep 17 00:00:00 2001 From: Tim Allen Date: Tue, 4 Oct 2011 23:42:38 +1100 Subject: [PATCH] A tool to make a set of shaders for bsnes v082. Actually, this set should work for any version of bsnes that supports XML shaders. Very old versions don't actually require the target (Direct3D or OpenGL) in the filename, but it doesn't hurt. --- .gitignore | 1 + make-bsnes-v082-shaders | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 .gitignore create mode 100755 make-bsnes-v082-shaders diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e943308 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +bsnes-v082-shaders/ diff --git a/make-bsnes-v082-shaders b/make-bsnes-v082-shaders new file mode 100755 index 0000000..e479e38 --- /dev/null +++ b/make-bsnes-v082-shaders @@ -0,0 +1,49 @@ +#!/bin/sh +set -e + +BASEDIR=$(dirname "$0") +INPUT="$BASEDIR/shaders" +OUTPUT="$BASEDIR/bsnes-v082-shaders" + +available_shaders() { + find "$INPUT" -type f -name '*.shader' | + while read -r SHADERFILE; do + # Grab the name of the shader + SHADERNAME=$(basename "$SHADERFILE" .shader) + + # Grab the version of the shader + TEMP=$(dirname "$SHADERFILE") + SHADERVERSION=${TEMP##*/} + + # Grab the target of the shader. + TEMP=${TEMP%/*} + SHADERTARGET=${TEMP##*/} + + printf "%s\t%s\t%s\n" "$SHADERTARGET" "$SHADERVERSION" "$SHADERNAME" + done +} + +filter_shaders() { + ( + IFS=$(printf "\t") + while read -r TARGET VERSION NAME; do + # bsnes v082 only understands v1.0 shaders. + if [ "$VERSION" != "v1.0" ] ; then + continue + fi + + printf "%s\t%s\t%s\n" "$TARGET" "$VERSION" "$NAME" + done + ) +} + +mkdir -p "$OUTPUT" + +available_shaders | filter_shaders | ( + IFS=$(printf "\t") + while read -r TARGET VERSION NAME; do + cp "$INPUT/$TARGET/$VERSION/$NAME.shader" "$OUTPUT/$NAME.$TARGET.shader" + done +) + +echo "bsnes v082 compatible shaders are now in $OUTPUT" -- 2.1.4