patchimage/scripts/mkwii/mkwiimm.sh

189 lines
5.0 KiB
Bash
Raw Normal View History

2014-05-14 20:38:48 +02:00
#!/bin/bash
GAME_TYPE="MKWIIMM"
2016-08-05 21:09:04 +02:00
GAMENAME="Mario Kart Wiimm"
2016-05-16 22:21:18 +02:00
DOWNLOAD_LINK="http://download.wiimm.de/wiimmfi/patcher/mkw-wiimmfi-patcher-v3.7z"
WBFS_MASK="RMC[PUJ]01"
2014-05-14 20:38:48 +02:00
show_notes () {
echo -e \
"************************************************
2016-08-05 21:09:04 +02:00
${GAMENAME}
2014-05-14 20:38:48 +02:00
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
************************************************"
}
download_wiimm () {
echo "Choose a Mario Kart Wiimm Distribution
ALL Build all distributions."
2016-08-06 20:30:18 +02:00
gawk -F : 'NR>1 {print $1 "\t" $2}' < "${PATCHIMAGE_DATABASE_DIR}"/mkwiimm.db
2014-05-14 20:38:48 +02:00
echo "
type in ALL or an ID (multiple separated by space)"
2016-08-06 20:30:18 +02:00
read -r ID
2014-05-14 20:38:48 +02:00
}
2014-05-17 21:24:34 +02:00
wiimmfi () {
mkdir -p "${HOME}/.patchimage/tools/"
2016-08-06 20:30:18 +02:00
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 )
2016-08-06 20:30:18 +02:00
"${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}" .
2016-05-16 22:21:18 +02:00
./patch-wiimmfi.sh >/dev/null || exit 51
2016-08-06 21:08:48 +02:00
echo "*** 7) storing game in ${PATCHIMAGE_GAME_DIR}/${1##*/}"
2016-08-06 20:30:18 +02:00
mv ./wiimmfi-images/"${1##*/}" "${PATCHIMAGE_GAME_DIR}"/
2014-05-17 21:24:34 +02:00
2016-08-06 20:30:18 +02:00
rm -rf "${HOME}"/.patchimage/tools/*
2014-05-17 21:24:34 +02:00
}
2016-05-18 19:39:46 +02:00
mkwiimm_distfiles () {
if [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${FILENAME} ]]; then
2016-08-06 21:08:48 +02:00
echo "*** 4) extracting mkwiimm files"
2016-08-06 20:30:18 +02:00
"${UNP}" "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${FILENAME}" >/dev/null || \
2016-05-18 19:39:46 +02:00
( echo "something went wrong extracting files" && exit 63 )
elif [[ -f ${PWD}/${FILENAME} ]]; then
2016-08-06 21:08:48 +02:00
echo "*** 4) extracting mkwiimm files"
2016-08-06 20:30:18 +02:00
"${UNP}" "${PWD}"/"${FILENAME}" >/dev/null || \
2016-05-18 19:39:46 +02:00
( echo "something went wrong extracting files" && exit 63 )
else
2016-08-06 21:08:48 +02:00
echo "*** 4) downloading and extracting mkwiimm files"
2016-08-06 20:30:18 +02:00
wget -O "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${FILENAME}" "${DOWNLOAD}" >/dev/null || \
2016-05-18 19:39:46 +02:00
( echo "something went wrong downloading ${DOWNLOAD}" && exit 57 )
2016-08-06 20:30:18 +02:00
"${UNP}" "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${FILENAME}" >/dev/null || \
2016-05-18 19:39:46 +02:00
( echo "something went wrong extracting files" && exit 63 )
fi
}
mkwiimm_build_olddist () {
if [[ ${MKWIIMM_MSG_LANG} && ${MKWIIMM_OWN_SAVE} ]]; then
echo "LANGUAGE=${MKWIIMM_MSG_LANG}
MSGLANG=${MKWIIMM_MSG_LANG}
ISOMODE=wbfs
SPLITISO=
2016-08-06 20:30:18 +02:00
PRIV_SAVEGAME=${MKWIIMM_OWN_SAVE}" > "${PWD}"/config.def
2016-08-06 21:08:48 +02:00
echo "*** 5) creating >${DIST}< (can take some time)"
2016-08-06 20:30:18 +02:00
./create-image.sh -a --dest="${XD}/RMC${REG}${MY_ID}".wbfs >/dev/null || exit 51
2016-05-18 19:39:46 +02:00
else
2016-08-06 21:08:48 +02:00
echo "*** 5) creating >${DIST}< (can take some time)"
2016-08-06 20:30:18 +02:00
./create-image.sh --dest="${XD}/RMC${REG}${MY_ID}".wbfs || exit 51
2016-05-18 19:39:46 +02:00
fi
}
mkwiimm_build_newdist () {
if [[ ${MKWIIMM_MSG_LANG} && ${MKWIIMM_OWN_SAVE} && ${MKWIIMM_CTRENAME} && ${MKWIIMM_CTREORDER} ]]; then
echo "LANGUAGE=${MKWIIMM_MSG_LANG}
MSGLANG1=-
MSGLANG2=E
TRACKLANG=x,${MKWIIMM_MSG_LANG}
CTRENAME=${MKWIIMM_CTRENAME}
REORDER=${MKWIIMM_CTREORDER}
ISOMODE=wbfs
SPLITISO=
2016-08-06 20:30:18 +02:00
PRIV_SAVEGAME=${MKWIIMM_OWN_SAVE}" > "${PWD}"/config.def
2016-05-18 19:39:46 +02:00
2016-08-06 21:08:48 +02:00
echo "*** 5) creating >${DIST}< (can take some time)"
2016-08-06 20:30:18 +02:00
./create-image.sh -a --dest="${XD}/RMC${REG}${MY_ID}".wbfs >/dev/null || exit 51
2016-05-18 19:39:46 +02:00
else
2016-08-06 21:08:48 +02:00
echo "*** 5) creating >${DIST}< (can take some time)"
2016-08-06 20:30:18 +02:00
./create-image.sh --dest="${XD}/RMC${REG}${MY_ID}".wbfs || exit 51
2016-05-18 19:39:46 +02:00
fi
}
2014-05-14 20:38:48 +02:00
build_mkwiimm () {
2016-08-06 20:30:18 +02:00
MY_ID=${1}
DIST=$(gawk -F : "/^${MY_ID}/"'{print $2}' < "${PATCHIMAGE_DATABASE_DIR}"/mkwiimm.db)
DOWNLOAD=$(gawk -F : "/^${MY_ID}/"'{print $3}' < "${PATCHIMAGE_DATABASE_DIR}"/mkwiimm.db)
FILENAME=$(gawk -F : "/^${MY_ID}/"'{split($3, a, "/") ; print a[3]}' < "${PATCHIMAGE_DATABASE_DIR}"/mkwiimm.db)
2014-05-14 20:38:48 +02:00
2016-08-06 20:30:18 +02:00
if [[ ${FILENAME} != mkw* ]]; then
echo "wrong ID passed from user-input, exiting."
exit 75
fi
2014-05-14 20:38:48 +02:00
2016-08-06 20:30:18 +02:00
rm -rf "${FILENAME/.7z}"
mkwiimm_distfiles
cd "${FILENAME/.7z}"
2014-05-14 21:03:38 +02:00
2016-08-06 20:30:18 +02:00
REG=$(gawk '/^RMC/{print $3}' <("${WIT}" ll "${IMAGE}"))
2016-05-16 20:35:01 +02:00
2016-08-06 21:08:48 +02:00
case ${REG} in
2016-08-06 20:30:18 +02:00
PAL) REG=P ;;
NTSC-J) REG=J ;;
NTSC-U) REG=E ;;
esac
2016-05-18 19:39:46 +02:00
2016-08-06 20:30:18 +02:00
ln -s "${IMAGE}" .
chmod +x ./*.sh
2014-05-14 20:38:48 +02:00
2016-08-06 20:30:18 +02:00
[[ ${MKWIIMM_OVERRIDE_SZS} == "TRUE" ]] && cp -r "${PATCHIMAGE_OVERRIDE_DIR}"/* "${PWD}"/bin/
2014-05-14 20:38:48 +02:00
2016-08-06 20:30:18 +02:00
if [[ ${MY_ID} -lt 27 ]]; then
2016-08-06 21:08:48 +02:00
mkwiimm_build_olddist
else mkwiimm_build_newdist
2016-08-06 20:30:18 +02:00
fi
2014-05-14 20:38:48 +02:00
2016-08-06 20:30:18 +02:00
if [[ ${MY_ID} -lt 23 ]]; then
2016-08-06 21:08:48 +02:00
echo "*** 6) patching >${DIST}< to use custom server"
2016-08-06 20:30:18 +02:00
wiimmfi "${XD}/RMC${REG}${MY_ID}".wbfs || (echo "something went wrong wiimmfi-ing ${XD}/RMC${REG}${MY_ID}.wbfs" && exit 69)
2016-08-06 21:08:48 +02:00
echo "*** 7) storing game"
else echo "*** 6) storing game"
2016-08-06 20:30:18 +02:00
fi
2016-08-06 20:30:18 +02:00
cd "${XD}"
2016-08-06 20:30:18 +02:00
echo " ${DIST} saved as ${PATCHIMAGE_GAME_DIR}/RMC${REG}${MY_ID}.wbfs"
mv "RMC${REG}${MY_ID}".wbfs \
"${PATCHIMAGE_GAME_DIR}/RMC${REG}${MY_ID}".wbfs || exit 51
2015-01-20 20:26:48 +01:00
2016-08-06 20:30:18 +02:00
if [[ ${MY_ID} -lt 23 ]]; then
echo "*** 8) cleaning up workdir"
2016-08-06 21:08:48 +02:00
else
echo "*** 7) cleaning up workdir"
2016-08-06 20:30:18 +02:00
fi
2016-05-18 19:39:46 +02:00
2016-08-06 20:30:18 +02:00
rm -rf "${FILENAME/.7z}"
2014-05-14 20:38:48 +02:00
2016-08-06 20:30:18 +02:00
if [[ ${PATCHIMAGE_COVER_DOWNLOAD} == TRUE ]]; then
echo -e "*** Z) download_covers\n"
download_covers "RMC${REG}${MY_ID}"
fi
2014-05-14 20:38:48 +02:00
}
patch_wiimm () {
2016-08-06 20:30:18 +02:00
XD="${PWD}"
2014-05-14 20:38:48 +02:00
if [[ ${ID} == ALL ]]; then
2016-08-06 21:08:48 +02:00
for ID in {06..32}; do
2016-08-06 20:30:18 +02:00
build_mkwiimm "${ID}"
2014-05-14 20:38:48 +02:00
done
else
for game in ${ID[@]}; do
2016-08-06 20:30:18 +02:00
build_mkwiimm "${game}"
done
2014-05-14 20:38:48 +02:00
fi
}