patchimage/script.d/mkwiimm.sh

153 lines
3.8 KiB
Bash
Raw Normal View History

2014-05-14 20:38:48 +02:00
#!/bin/bash
GAME_TYPE="MKWIIMM"
GAME_NAME="Mario Kart Wiimm"
2014-05-17 21:24:34 +02:00
DOWNLOAD_LINK="http://download.wiimm.de/wiimmfi/mkw-wiimmfi-patcher.7z"
2014-05-14 20:38:48 +02:00
show_notes () {
echo -e \
"************************************************
${GAMENAME}
Custom Mario Kart Wii
Source: http://wiiki.wii-homebrew.com/Wiimms_Mario_Kart_Fun
Base Image: Mario Kart Wii (RMC?01)
Supported Versions: EUR, JAP, USA
************************************************"
}
check_input_image_special () {
check_input_image_mkwiimm
2014-05-14 20:38:48 +02:00
}
download_wiimm () {
echo "Choose a Mario Kart Wiimm Distribution
ALL Build all distributions."
gawk -F \: 'NR>1 {print $1 "\t" $2}' < script.d/mkwiimm.db
echo "
type in ALL or an ID"
read ID
}
2014-05-17 21:24:34 +02:00
wiimmfi () {
mkdir -p "${HOME}/.patchimage/tools/"
cd ${HOME}/.patchimage/tools
rm -rf wiimmfi-patcher/ *.7z*
2014-05-19 21:54:00 +02:00
wget "${DOWNLOAD_LINK}" &>/dev/null || ( echo "something went wrong downloading ${DOWNLOAD_LINK}" && exit 57 )
${UNP} mkw-wiimmfi-patcher.7z >/dev/null || ( echo "something went wrong extracting files" && exit 63 )
2014-05-17 21:24:34 +02:00
mv mkw-wiimmfi-patcher*/ wiimmfi-patcher
chmod +x wiimmfi-patcher/*.sh
2014-05-17 21:32:55 +02:00
cd wiimmfi-patcher/
2014-05-17 21:24:34 +02:00
ln -s "${1}" .
2014-05-19 21:54:00 +02:00
./create-image.sh >/dev/null || exit 51
2014-05-17 23:51:45 +02:00
echo "*** 8) storing game in ${PATCHIMAGE_GAME_DIR}/${1##*/}"
2014-05-17 21:43:49 +02:00
mv ./wiimmfi-images/${1##*/} "${PATCHIMAGE_GAME_DIR}"/
2014-05-17 21:24:34 +02:00
2014-05-17 21:32:55 +02:00
rm -rf ${HOME}/.patchimage/tools/*
2014-05-17 21:24:34 +02:00
}
2014-05-14 20:38:48 +02:00
build_mkwiimm () {
DIST=$(gawk -F \: "/^${1}/"'{print $2}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm.db)
DOWNLOAD=$(gawk -F \: "/^${1}/"'{print $3}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm.db)
FILENAME=$(gawk -F \: "/^${1}/"'{split($3, a, "/") ; print a[3]}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm.db)
if [[ ${FILENAME} != mkw* ]]; then
echo "wrong ID passed from user-input, exiting."
2014-05-19 21:54:00 +02:00
exit 75
2014-05-14 20:38:48 +02:00
fi
2014-05-14 21:03:38 +02:00
rm -rf ${FILENAME/.7z}
2014-05-14 20:38:48 +02:00
if [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${FILENAME} ]]; then
2014-05-17 21:24:34 +02:00
echo "*** 5) extracting mkwiimm files"
2014-05-19 21:54:00 +02:00
${UNP} ${PATCHIMAGE_RIIVOLUTION_DIR}/${FILENAME} >/dev/null || \
( echo "something went wrong extracting files" && exit 63 )
2014-05-14 20:38:48 +02:00
elif [[ -f ${PWD}/${FILENAME} ]]; then
2014-05-17 21:24:34 +02:00
echo "*** 5) extracting mkwiimm files"
2014-05-19 21:54:00 +02:00
${UNP} ${PWD}/${FILENAME} >/dev/null || \
( echo "something went wrong extracting files" && exit 63 )
2014-05-14 20:38:48 +02:00
else
2015-04-11 14:23:32 +02:00
echo "*** 5) downloading and extracting mkwiimm files"
2014-05-19 21:54:00 +02:00
wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/${FILENAME} ${DOWNLOAD} >/dev/null || \
( echo "something went wrong downloading ${DOWNLOAD}" && exit 57 )
${UNP} ${PATCHIMAGE_RIIVOLUTION_DIR}/${FILENAME} >/dev/null || \
( echo "something went wrong extracting files" && exit 63 )
2014-05-14 20:38:48 +02:00
fi
2014-05-17 21:53:37 +02:00
XD=${PWD}
2014-05-14 20:38:48 +02:00
cd ${FILENAME/.7z}
ln -s ${IMAGE} .
2014-05-14 21:03:38 +02:00
REG=$(gawk '/^RMC/{print $3}' <(wit ll ${IMAGE}))
2014-05-14 21:03:38 +02:00
case $REG in
PAL) REG=P ;;
NTSC-J) REG=J ;;
NTSC-U) REG=E ;;
esac
2014-05-14 20:38:48 +02:00
chmod +x *.sh
2015-04-11 21:01:24 +02:00
if [[ ${MKWIIMM_OVERRIDE_SZS} == "TRUE" || ${ID} -lt 23 ]]; then
cp -r ${PATCHIMAGE_SCRIPT_DIR}/../override/* ${PWD}/bin/
fi
2014-05-14 20:38:48 +02:00
2014-05-14 21:12:58 +02:00
if [[ ${MKWIIMM_GAME_LANG} && ${MKWIIMM_MSG_LANG} && ${MKWIIMM_OWN_SAVE} ]]; then
2015-01-20 20:26:48 +01:00
echo "LANGUAGE=${MKWIIMM_GAME_LANG}
2014-05-14 20:38:48 +02:00
MSGLANG=${MKWIIMM_MSG_LANG}
ISOMODE=wbfs
SPLITISO=
PRIV_SAVEGAME=${MKWIIMM_OWN_SAVE}" > ${PWD}/config.def
2014-05-17 21:24:34 +02:00
echo "*** 6) creating >${DIST}<, stand by"
2014-05-19 21:54:00 +02:00
./create-image.sh -a --dest=${PWD}/RMC${REG}${ID}.wbfs >/dev/null || exit 51
else
2014-05-17 22:01:15 +02:00
echo "*** 6) creating >${DIST}<"
2014-05-19 21:54:00 +02:00
./create-image.sh --dest=${PWD}/RMC${REG}${ID}.wbfs || exit 51
fi
2014-05-14 20:38:48 +02:00
2015-01-20 20:26:48 +01:00
if [[ ${ID} -lt 23 ]]; then
echo "*** 7) patching >${DIST}< to use custom server"
wiimmfi ${PWD}/RMC${REG}${ID}.wbfs || exit 69
echo "*** 9) cleaning up workdir"
else
echo "*** 7) cleaning up workdir"
fi
2014-05-14 20:38:48 +02:00
2014-05-17 21:53:37 +02:00
cd ${XD}
2014-05-14 20:38:48 +02:00
rm -rf ${FILENAME/.7z}
if [[ ${PATCHIMAGE_COVER_DOWNLOAD} == TRUE ]]; then
2014-05-17 22:01:15 +02:00
echo -e "*** Z) download_covers\n"
2014-05-14 21:03:38 +02:00
download_covers RMC${REG}${ID}
2014-05-14 20:38:48 +02:00
fi
}
patch_wiimm () {
if [[ ${ID} == ALL ]]; then
2015-01-20 20:26:48 +01:00
for ID in {06..26}; do
2014-05-14 20:38:48 +02:00
build_mkwiimm ${ID}
done
else
build_mkwiimm ${ID}
fi
}