distribution/packages/emulators/standalone/hatarisa/scripts/start_hatarisa.sh
2023-03-04 10:19:56 -05:00

76 lines
2 KiB
Bash
Executable file

#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2018-present 5schatten (https://github.com/5schatten)
. /etc/profile
# Set some common variables
HATARI_DIR_HOME=/storage/.hatari
HATARI_DIR=/storage/.config/hatari
HATARI_CONFIG_DIR=$HATARI_DIR/conf
HATARI_TMP_DIR=/tmp/hatari
HATARI_TMP_CONFIG="$HATARI_TMP_DIR"/.hatari-temp.cfg
HATARI_LOG="/var/log/hatari.log"
MAX_DRIVES=2
i=0
export SDL_AUDIODRIVER=alsa
# create symlink to hatari config dir
if [ ! -L $HATARI_DIR_HOME ]; then
rm -rf $HATARI_DIR_HOME
ln -s $HATARI_DIR $HATARI_DIR_HOME
fi
# Which file should hatari load?
echo "Trying to boot this game:" "$1" >> $HATARI_LOG
# Create a clean working directory
if [ -d "$HATARI_TMP_DIR" ]; then
echo "Clean up old working directory." >> $HATARI_LOG
rm -rf "$HATARI_TMP_DIR"
fi
mkdir -p "$HATARI_TMP_DIR"
# copy default config file to tmp
cp $HATARI_CONFIG_DIR/Atari-ST-default.cfg "$HATARI_TMP_CONFIG"
# Check if we are loading a .zip file
if [ `echo $1 | grep -i .zip | wc -l` -eq 1 ]; then
#unpack the zip file
unzip -q -o "$1" -d "$HATARI_TMP_DIR"
# Assign files to floppy 1 & 2
for FILE in "$HATARI_TMP_DIR"/*
do
i=$(($i+1))
case "$i" in
1)
ARGS="\nszDiskAFileName = "$FILE""
;;
2)
ARGS="${ARGS}\nszDiskBFileName = "$FILE""
;;
esac
# This emulator supports 2 floppies max
if [ $i -eq $MAX_DRIVES ]; then
break;
fi
done
# Add game files as floppy 1 & 2 to .hatari-temp.cfg & start hatari
echo -e ${ARGS} >> "$HATARI_TMP_CONFIG"
echo -e "\nAssigned floppy drives:" ${ARGS} "\n" >> "$HATARI_LOG"
nice -n -19 hatarisa --configfile "$HATARI_TMP_CONFIG" >> $HATARI_LOG 2>&1
# Check for .cfg config file
elif [ `echo $1 | grep -i .cfg | wc -l` -eq 1 ]; then
nice -n -19 hatarisa --configfile "$1" >> $HATARI_LOG 2>&1
# All other files
else
nice -n -19 hatarisa --configfile "$HATARI_TMP_CONFIG" --disk-a "$1" >> $HATARI_LOG 2>&1
fi
# Remove temporary dir
rm -rf "$HATARI_TMP_DIR"