Skip to content

Instantly share code, notes, and snippets.

@Langerz82
Last active January 13, 2022 06:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Langerz82/94262c12722da9443549c0bb1e4839a8 to your computer and use it in GitHub Desktop.
Save Langerz82/94262c12722da9443549c0bb1e4839a8 to your computer and use it in GitHub Desktop.
EmuELEC - Advmame - Jostick Button Config
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