diff --git a/change_ini_properties.sh.inc b/change_ini_properties.sh.inc new file mode 100644 index 0000000..257d531 --- /dev/null +++ b/change_ini_properties.sh.inc @@ -0,0 +1,44 @@ +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Copyright 2019 Alessandro "Locutus73" Miele + +# You can download the latest version of this script from: +# https://github.com/MiSTer-devel/Scripts_MiSTer + +# Version 1.0 - 2019-05-13 - First commit. + +# get the name of the script, or of the parent script if called through a 'curl ... | bash -' +ORIGINAL_SCRIPT_PATH="${0}" +[[ "${ORIGINAL_SCRIPT_PATH}" == "bash" ]] && \ + ORIGINAL_SCRIPT_PATH="$(ps -o comm,pid | awk -v PPID=${PPID} '$2 == PPID {print $1}')" + +CHANGE_PROPERTY_INCLUDE="$(dirname ${ORIGINAL_SCRIPT_PATH})/change_ini_property.sh.inc" +TMP=$(mktemp) +# preventively eliminate DOS-specific format and reboot+exit commands +dos2unix < "${CHANGE_PROPERTY_INCLUDE}" 2> /dev/null | grep -vi "^echo \"Please reboot" | grep -v "^reboot" | grep -v "^exit" > ${TMP} +FIRST_ITERATION="true" +for INI_PROPERTIY in ${INI_PROPERTIES} +do + PROPERTY_NAME=$(echo "${INI_PROPERTIY}" | grep -o "^[^=]*") + PROPERTY_VALUE=$(echo "${INI_PROPERTIY}" | grep -o "[^=]*$") + source "${TMP}" + if [ "${FIRST_ITERATION}" == "true" ] + then + # removing the ini backup command too, since we did that on the first iteration + rm -f "${TMP}" + dos2unix < "${CHANGE_PROPERTY_INCLUDE}" 2> /dev/null | grep -v "^cp /media/fat/config/MiSTer.ini" | grep -vi "^echo \"Please reboot" | grep -v "^reboot" | grep -v "^exit" > ${TMP} + FIRST_ITERATION="false" + fi +done +rm -f "${TMP}" \ No newline at end of file diff --git a/mac_address_change.sh b/mac_address_change.sh new file mode 100644 index 0000000..2859c60 --- /dev/null +++ b/mac_address_change.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Copyright 2019 Alessandro "Locutus73" Miele + +# You can download the latest version of this script from: +# https://github.com/MiSTer-devel/Scripts_MiSTer + +# Version 1.0 - 2019-05-13 - First commit + + + +# ========= OPTIONS ================== +MAC_ADDRESS="" + +# ========= CODE STARTS HERE ========= +# get the name of the script, or of the parent script if called through a 'curl ... | bash -' +ORIGINAL_SCRIPT_PATH="${0}" +[[ "${ORIGINAL_SCRIPT_PATH}" == "bash" ]] && \ + ORIGINAL_SCRIPT_PATH="$(ps -o comm,pid | awk -v PPID=${PPID} '$2 == PPID {print $1}')" + +# ini file can contain user defined variables (as bash commands) +# Load and execute the content of the ini file, if there is one +INI_PATH="${ORIGINAL_SCRIPT_PATH%.*}.ini" +if [[ -f "${INI_PATH}" ]] ; then + TMP=$(mktemp) + # preventively eliminate DOS-specific format and exit command + dos2unix < "${INI_PATH}" 2> /dev/null | grep -v "^exit" > ${TMP} + source ${TMP} + rm -f ${TMP} +fi + +# very rarely the hexdump thing plus bitwise operations fails, so I repeat the MAC address generation to be sure +until echo "${MAC_ADDRESS}" | grep -qE "[0-9A-F]{2}(\:[0-9A-F]{2}){5}" +do + MAC_ADDRESS="$(printf "%012X" $(( 0x$(hexdump -n6 -e '/1 "%02X"' /dev/random) & 0xFEFFFFFFFFFF | 0x020000000000 )) | sed 's/.\{2\}/&:/g' | sed s/:$//g)" +done + +echo "ethaddr=${MAC_ADDRESS}" > /media/fat/linux/u-boot.txt + +echo "The new MAC address is:" +echo "${MAC_ADDRESS}" +echo "it will become effective" +echo "on next reboot." + +exit 0 diff --git a/reboot.sh b/reboot.sh new file mode 100644 index 0000000..938807e --- /dev/null +++ b/reboot.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Copyright 2019 Alessandro "Locutus73" Miele + +# You can download the latest version of this script from: +# https://github.com/MiSTer-devel/Scripts_MiSTer + +# Version 1.0 - 2019-05-13 - First commit + + + +sync +reboot now + +exit 0 diff --git a/video_settings_compatibility.sh b/video_settings_compatibility.sh new file mode 100644 index 0000000..22224d0 --- /dev/null +++ b/video_settings_compatibility.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Copyright 2019 Alessandro "Locutus73" Miele + +# You can download the latest version of this script from: +# https://github.com/MiSTer-devel/Scripts_MiSTer + +# Version 1.0 - 2019-05-13 - First commit + + + +# ========= OPTIONS ================== +INI_PROPERTIES="hdmi_audio_96k=0 vscale_mode=0 video_mode=0 video_info=10 vsync_adjust=0 video_mode_ntsc_pal=0" + +# ========= CODE STARTS HERE ========= +# get the name of the script, or of the parent script if called through a 'curl ... | bash -' +ORIGINAL_SCRIPT_PATH="${0}" +[[ "${ORIGINAL_SCRIPT_PATH}" == "bash" ]] && \ + ORIGINAL_SCRIPT_PATH="$(ps -o comm,pid | awk -v PPID=${PPID} '$2 == PPID {print $1}')" + +# ini file can contain user defined variables (as bash commands) +# Load and execute the content of the ini file, if there is one +INI_PATH="${ORIGINAL_SCRIPT_PATH%.*}.ini" +if [[ -f "${INI_PATH}" ]] ; then + TMP=$(mktemp) + # preventively eliminate DOS-specific format and exit command + dos2unix < "${INI_PATH}" 2> /dev/null | grep -v "^exit" > ${TMP} + source ${TMP} + rm -f ${TMP} +fi + +CHANGE_PROPERTY_INCLUDE="$(dirname ${ORIGINAL_SCRIPT_PATH})/change_ini_properties.sh.inc" +TMP=$(mktemp) +# preventively eliminate DOS-specific format and reboot+exit commands +dos2unix < "${CHANGE_PROPERTY_INCLUDE}" 2> /dev/null | grep -v "^reboot" | grep -v "^exit" > ${TMP} +source "${TMP}" +rm -f "${TMP}" + +echo "Please reboot." + +exit 0 diff --git a/video_settings_optimal.sh b/video_settings_optimal.sh new file mode 100644 index 0000000..2ddc070 --- /dev/null +++ b/video_settings_optimal.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Copyright 2019 Alessandro "Locutus73" Miele + +# You can download the latest version of this script from: +# https://github.com/MiSTer-devel/Scripts_MiSTer + +# Version 1.0 - 2019-05-13 - First commit + + + +# ========= OPTIONS ================== +INI_PROPERTIES="hdmi_audio_96k=1 vscale_mode=0 video_mode=8 video_info=10 vsync_adjust=2 video_mode_ntsc_pal=1" +AUTHOR_NAME="Locutus73" + +# ========= CODE STARTS HERE ========= +# get the name of the script, or of the parent script if called through a 'curl ... | bash -' +ORIGINAL_SCRIPT_PATH="${0}" +[[ "${ORIGINAL_SCRIPT_PATH}" == "bash" ]] && \ + ORIGINAL_SCRIPT_PATH="$(ps -o comm,pid | awk -v PPID=${PPID} '$2 == PPID {print $1}')" + +# ini file can contain user defined variables (as bash commands) +# Load and execute the content of the ini file, if there is one +INI_PATH="${ORIGINAL_SCRIPT_PATH%.*}.ini" +if [[ -f "${INI_PATH}" ]] ; then + TMP=$(mktemp) + # preventively eliminate DOS-specific format and exit command + dos2unix < "${INI_PATH}" 2> /dev/null | grep -v "^exit" > ${TMP} + source ${TMP} + rm -f ${TMP} +fi + +echo "These are my" +echo "(${AUTHOR_NAME}'s personal taste)" +echo "optimal video settings;" +echo "your needs may differ." +echo "" + +sleep 2.5 + +CHANGE_PROPERTY_INCLUDE="$(dirname ${ORIGINAL_SCRIPT_PATH})/change_ini_properties.sh.inc" +TMP=$(mktemp) +# preventively eliminate DOS-specific format and reboot+exit commands +dos2unix < "${CHANGE_PROPERTY_INCLUDE}" 2> /dev/null | grep -v "^reboot" | grep -v "^exit" > ${TMP} +source "${TMP}" +rm -f "${TMP}" + +sleep 2.5 + +echo "" +echo "I strongly recommend to set" +echo "Scale filter - Custom" +echo "Gaussian_Sharp_04.txt" +echo "or higher in each core" +echo "menu wherever possible." +echo "Please reboot." + +exit 0