Last active
January 13, 2022 06:41
-
-
Save Langerz82/94262c12722da9443549c0bb1e4839a8 to your computer and use it in GitHub Desktop.
EmuELEC - Advmame - Jostick Button Config
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/packages/sx05re/emuelec/bin/set_advmame_joy.sh b/packages/sx05re/emuelec/bin/set_advmame_joy.sh | |
index 7fa5e23965..10521f7785 100755 | |
--- a/packages/sx05re/emuelec/bin/set_advmame_joy.sh | |
+++ b/packages/sx05re/emuelec/bin/set_advmame_joy.sh | |
@@ -14,6 +14,7 @@ PAD_FOUND=0 | |
EE_DEV="js0" | |
GPFILE="" | |
GAMEPAD="" | |
+ROMNAME="$1" | |
# Cleans all the inputs for the gamepad with name $GAMEPAD and player $1 | |
clean_pad() { | |
@@ -45,10 +46,36 @@ set_pad(){ | |
START=$((START+1)) | |
echo "input_map[start${1}] joystick_button[${GAMEPAD},button${START}]" >> ${CONFIG} | |
-i=1 | |
+ | |
button="" | |
-for button in input_a_btn input_b_btn input_x_btn input_y_btn input_r_btn input_l_btn input_r2_btn input_l2_btn input_up_btn input_down_btn input_right_btn input_left_btn; do | |
+. "$CONFIG_DIR/cfg_advmame_joy.sh" "$ROMNAME" | |
+echo "$ROMNAME" >> ${DEBUGFILE} | |
+ | |
+game_len=${#game_cfg[@]} | |
+ | |
+BTN_CFG="" | |
+echo "$game_len" >> ${DEBUGFILE} | |
+for (( i=0; i<$game_len; i+=2 )); do | |
+ echo "${game_cfg[$i]}" >> ${DEBUGFILE} | |
+ if [[ $ROM_NAME =~ ${game_cfg[$i]} ]]; then | |
+ echo "$ROM_NAME found" >> ${DEBUGFILE} | |
+ BTN_INDEX=${game_cfg[$i+1]} | |
+ BTN_CFG=${button_cfg[$BTN_INDEX]} | |
+ fi | |
+done | |
+ | |
+echo "$BTN_CFG" >> ${DEBUGFILE} | |
+if [ -z "$BTN_CFG" ]; then | |
+ BTN_CFG=${button_cfg[0]} | |
+fi | |
+ | |
+#echo "$BTN_CFG" >> ${DEBUGFILE} | |
+BTN_CFG="${BTN_CFG} input_up_btn input_down_btn input_right_btn input_left_btn" | |
+echo "$BTN_CFG" >> ${DEBUGFILE} | |
+ | |
+i=1 | |
+for button in ${BTN_CFG}; do | |
KEY=$(cat "${GPFILE}" | grep -E "${button}" | cut -d '"' -f2) | |
if [ ! -z "$KEY" ]; then | |
KEY=$((KEY+1)) | |
diff --git a/packages/sx05re/emulators/advancemame/bin/advmame.sh b/packages/sx05re/emulators/advancemame/bin/advmame.sh | |
index 0e49999da5..ce09613db5 100644 | |
--- a/packages/sx05re/emulators/advancemame/bin/advmame.sh | |
+++ b/packages/sx05re/emulators/advancemame/bin/advmame.sh | |
@@ -13,6 +13,12 @@ if [ ! -d "$CONFIG_DIR" ]; then | |
cp -rf /usr/share/advance/* $CONFIG_DIR/ | |
fi | |
+CONFIG_JOY_DIR="$CONFIG_DIR/cfg_advmame_joy.sh" | |
+if [[ ! -f "$CONFIG_JOY_DIR" ]]; then | |
+ cp /usr/bin/cfg_advmame_joy.sh "$CONFIG_JOY_DIR" | |
+ chmod +x "$CONFIG_JOY_DIR" | |
+fi | |
+ | |
if [[ "$1" = *"roms/arcade"* ]]; then | |
sed -i "s|/roms/mame|/roms/arcade|g" $CONFIG_DIR/advmame.rc | |
else | |
@@ -51,8 +57,9 @@ if [ "$EE_DEVICE" != "OdroidGoAdvance" ] && [ "$EE_DEVICE" != "GameForce" ]; the | |
fi | |
if [ "$EE_DEVICE" != "GameForce" ]; then | |
+ROMNAME="$1" | |
AUTOGP=$(get_ee_setting advmame_auto_gamepad) | |
-[[ "${AUTOGP}" != "0" ]] && /usr/bin/set_advmame_joy.sh | |
+[[ "${AUTOGP}" != "0" ]] && /usr/bin/set_advmame_joy.sh "$ROMNAME" | |
fi | |
ARG=$(echo basename $1 | sed 's/\.[^.]*$//') | |
diff --git a/packages/sx05re/emulators/advancemame/config/cfg_advmame_joy.sh b/packages/sx05re/emulators/advancemame/config/cfg_advmame_joy.sh | |
new file mode 100644 | |
index 0000000000..2938e78b0a | |
--- /dev/null | |
+++ b/packages/sx05re/emulators/advancemame/config/cfg_advmame_joy.sh | |
@@ -0,0 +1,26 @@ | |
+#!/bin/bash | |
+ | |
+DEBUGFILE="/storage/joy_debug.cfg" | |
+ROM_NAME=$1 | |
+echo "$ROM_NAME" >> ${DEBUGFILE} | |
+ | |
+# Mortal Kombat | |
+# Street Fighter | |
+# Street Fighter | |
+game_cfg=( | |
+ "^.*/u?mk[0-9]?\.zip$" 1 | |
+ "^.*/sf[0-9]?b?c?e?\.zip$" 2 | |
+ "^.*/sfight2b\.zip$" 2 | |
+) | |
+ | |
+declare -A button_cfg | |
+ | |
+# AdvMame Button Order. | |
+#def - [1,14] [2,15] [3,13] [4,16] [5,12] [6,11] | |
+#MK - [1,16] [2,12] [3,13] [4,15] [5,14] [6,11] | |
+#SF - [1,16] [2,13] [3,11] [4,15] [5,14] [6,12] | |
+ | |
+button_cfg[0]="input_a_btn input_b_btn input_x_btn input_y_btn input_r_btn input_l_btn input_r2_btn input_l2_btn" | |
+button_cfg[1]="input_y_btn input_r_btn input_x_btn input_b_btn input_a_btn input_l_btn input_r2_btn input_l2_btn" | |
+button_cfg[2]="input_y_btn input_x_btn input_l_btn input_b_btn input_a_btn input_r_btn input_r2_btn input_l2_btn" | |
+ | |
diff --git a/packages/sx05re/emulators/advancemame/package.mk b/packages/sx05re/emulators/advancemame/package.mk | |
index 8841fbccbc..b7c04cd3a2 100644 | |
--- a/packages/sx05re/emulators/advancemame/package.mk | |
+++ b/packages/sx05re/emulators/advancemame/package.mk | |
@@ -49,6 +49,9 @@ mkdir -p $INSTALL/usr/bin | |
cp -r $PKG_DIR/bin/* $INSTALL/usr/bin | |
chmod +x $INSTALL/usr/bin/advmame.sh | |
+cp -r $PKG_DIR/config/cfg_advmame_joy.sh $INSTALL/usr/bin/cfg_advmame_joy.sh | |
+chmod +x $INSTALL/usr/bin/cfg_advmame_joy.sh | |
+ | |
cp -r $PKG_BUILD/obj/mame/linux/blend/advmame $INSTALL/usr/bin | |
cp -r $PKG_BUILD/support/category.ini $INSTALL/usr/share/advance | |
cp -r $PKG_BUILD/support/sysinfo.dat $INSTALL/usr/share/advance |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment