2013-06-13 20:12:19 +02:00
|
|
|
#!/bin/bash
|
|
|
|
#
|
2013-06-15 19:25:15 +02:00
|
|
|
# create wbfs image from riivolution patch
|
2013-06-13 20:12:19 +02:00
|
|
|
#
|
2014-05-16 20:39:01 +02:00
|
|
|
# Christopher Roy Bratusek <nano@jpberlin.de>
|
2013-06-13 20:12:19 +02:00
|
|
|
#
|
|
|
|
# License: GPL v3
|
|
|
|
|
2013-08-06 23:53:43 +02:00
|
|
|
if [[ -d ${PWD}/script.d ]]; then
|
2014-05-13 18:20:28 +02:00
|
|
|
PATCHIMAGE_SCRIPT_DIR=${PWD}/script.d
|
|
|
|
PATCHIMAGE_PATCH_DIR=${PWD}/patches
|
|
|
|
PATCHIMAGE_TOOLS_DIR=${PWD}/tools
|
2013-08-06 23:53:43 +02:00
|
|
|
else
|
|
|
|
PATCHIMAGE_SCRIPT_DIR=/usr/share/patchimage/script.d
|
|
|
|
PATCHIMAGE_PATCH_DIR=/usr/share/patchimage/patches
|
|
|
|
PATCHIMAGE_TOOLS_DIR=/usr/share/patchimage/tools
|
|
|
|
fi
|
|
|
|
|
2013-10-12 10:37:29 +02:00
|
|
|
PATCHIMAGE_RIIVOLUTION_DIR=${PWD}
|
|
|
|
PATCHIMAGE_WBFS_DIR=${PWD}
|
|
|
|
PATCHIMAGE_AUDIO_DIR=${PWD}
|
2014-05-11 21:57:19 +02:00
|
|
|
PATCHIMAGE_GAME_DIR=${PWD}
|
|
|
|
PATCHIMAGE_COVER_DIR=${PWD}
|
2013-10-12 10:37:29 +02:00
|
|
|
|
|
|
|
if [[ -e $HOME/.patchimage.rc ]]; then
|
|
|
|
source $HOME/.patchimage.rc
|
|
|
|
fi
|
|
|
|
|
2013-08-06 23:53:43 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/common.sh
|
2013-10-12 10:37:29 +02:00
|
|
|
check_directories
|
|
|
|
|
2013-06-15 19:58:07 +02:00
|
|
|
setup_tools
|
2013-06-13 20:12:19 +02:00
|
|
|
|
2013-06-15 19:25:15 +02:00
|
|
|
optparse "${@}"
|
2013-06-13 20:12:19 +02:00
|
|
|
|
2013-06-15 19:25:15 +02:00
|
|
|
if [[ ! ${GAME} ]]; then
|
|
|
|
ask_game
|
2013-06-13 20:12:19 +02:00
|
|
|
fi
|
|
|
|
|
2013-06-15 19:25:15 +02:00
|
|
|
case ${GAME} in
|
2013-06-13 20:12:19 +02:00
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB1 | NewerSMB | NewerSMBW )
|
2013-08-06 23:53:43 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/newersmb.sh
|
2013-06-15 19:25:15 +02:00
|
|
|
;;
|
2013-06-13 20:12:19 +02:00
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB2 | NewerSummerSun )
|
2013-08-06 23:53:43 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/newersummersun.sh
|
2013-06-15 19:58:07 +02:00
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB3 | ASMBW | AnotherSMBW )
|
2013-08-06 23:53:43 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/anothersmb.sh
|
2013-06-20 21:03:40 +02:00
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB4 | HolidaySpecial | "Newer: Holiday Special" )
|
2013-08-06 23:53:43 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/newerholiday.sh
|
2013-06-20 21:22:39 +02:00
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB5 | Cannon | "Cannon SMBW" )
|
2013-08-06 23:53:43 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/cannon.sh
|
2013-07-03 17:30:30 +02:00
|
|
|
;;
|
2013-06-22 19:30:30 +02:00
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB6 | ESBW | "Epic Super Bowser World" )
|
2013-08-06 23:53:43 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/epicbowserworld.sh
|
2013-07-02 20:20:20 +02:00
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB7 | Koopa | "Koopa Country" )
|
2013-08-06 23:53:43 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/koopacountry.sh
|
2013-07-03 16:44:26 +02:00
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB8 | "New Super Mario Bros. 4" )
|
2013-08-06 23:53:43 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/nsmbw4.sh
|
2013-07-07 09:42:41 +02:00
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB9 | Retro | "Retro Remix" )
|
2013-08-06 23:53:43 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/retroremix.sh
|
2013-07-06 18:25:11 +02:00
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB10 | WinterMoon | "Super Mario: Mushroom Adventure PLUS - Winter Moon" )
|
2013-08-06 23:53:43 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/wintermoon.sh
|
2013-08-06 09:17:05 +02:00
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB11 | NSMBW3 | "NSMBW3: The Final Levels" )
|
2013-08-06 23:53:43 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/nsmbw3.sh
|
2013-08-06 09:34:30 +02:00
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB12 | SMV | "Super Mario Vacation" )
|
2013-09-26 19:58:37 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/summervacation.sh
|
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB13 | ASLM | "Awesomer Super Luigi Mini" )
|
2013-10-12 10:37:29 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/awesomersuperluigi.sh
|
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
NSMB14 | Sykland )
|
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/skyland.sh
|
|
|
|
;;
|
|
|
|
|
|
|
|
NSMB15 | RVLution )
|
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/rvlution.sh
|
|
|
|
;;
|
|
|
|
|
|
|
|
MKW1 | Wiimmfi )
|
2014-05-11 19:26:58 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/wiimmfi.sh
|
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
MKW2 | Wiimmpatch )
|
2014-05-13 17:49:00 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/wiimmfi_generic.sh
|
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
MKW3 | Mkwiimm )
|
2014-05-14 20:38:48 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm.sh
|
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
MKW4 | MkwiimmItems )
|
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_items.sh
|
2014-05-13 19:32:54 +02:00
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
KAW1 | Kirby )
|
2014-05-15 20:54:19 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/kirbywii.sh
|
|
|
|
;;
|
|
|
|
|
2014-05-17 10:07:15 +02:00
|
|
|
ZEL1 | ParallelWorlds | "The Legend of Zelda: Parallel Worlds" )
|
2013-08-06 23:53:43 +02:00
|
|
|
source ${PATCHIMAGE_SCRIPT_DIR}/parallelworlds.sh
|
2013-06-22 19:02:37 +02:00
|
|
|
;;
|
|
|
|
|
2013-06-15 19:25:15 +02:00
|
|
|
* )
|
|
|
|
echo -e "specified Game ${GAME} not recognized"
|
2013-10-12 10:37:29 +02:00
|
|
|
exit 9
|
2013-06-15 19:25:15 +02:00
|
|
|
;;
|
2013-06-13 20:12:19 +02:00
|
|
|
|
2013-06-15 19:25:15 +02:00
|
|
|
esac
|
2013-06-13 20:12:19 +02:00
|
|
|
|
2013-06-21 19:29:17 +02:00
|
|
|
case ${GAME_TYPE} in
|
|
|
|
"RIIVOLUTION" )
|
|
|
|
show_notes
|
2013-07-04 21:30:08 +02:00
|
|
|
rm -rf ${WORKDIR}
|
2014-05-11 21:57:19 +02:00
|
|
|
if [[ ${PATCHIMAGE_SOUNDTRACK_DOWNLOAD} == TRUE ]]; then
|
|
|
|
echo -e "\n*** A) download_soundtrack"
|
2013-10-12 10:37:29 +02:00
|
|
|
download_soundtrack
|
2014-05-11 21:57:19 +02:00
|
|
|
if [[ ${ONLY_SOUNDTRACK} == TRUE ]]; then
|
|
|
|
exit 0
|
|
|
|
fi
|
2013-10-12 10:37:29 +02:00
|
|
|
fi
|
2014-05-11 21:57:19 +02:00
|
|
|
|
2013-10-12 10:37:29 +02:00
|
|
|
echo -e "\n*** 1) check_input_image"
|
2013-06-21 19:29:17 +02:00
|
|
|
check_input_image
|
2013-10-12 10:37:29 +02:00
|
|
|
echo "*** 2) check_input_image_special"
|
2013-06-21 19:29:17 +02:00
|
|
|
check_input_image_special
|
2013-10-12 10:37:29 +02:00
|
|
|
echo "*** 3) check_riivolution_patch"
|
2013-06-21 19:29:17 +02:00
|
|
|
check_riivolution_patch
|
|
|
|
|
2013-10-12 10:37:29 +02:00
|
|
|
echo "*** 4) extract game"
|
|
|
|
${WIT} extract ${IMAGE} ${WORKDIR} --psel=DATA -q || exit 51
|
2013-06-21 19:29:17 +02:00
|
|
|
|
2013-10-12 10:37:29 +02:00
|
|
|
echo "*** 5) detect_game_version"
|
2013-06-21 19:29:17 +02:00
|
|
|
detect_game_version
|
2013-07-04 21:30:08 +02:00
|
|
|
rm -f ${GAMEID}.wbfs ${CUSTOMID}.wbfs
|
2013-10-12 10:37:29 +02:00
|
|
|
echo "*** 6) place_files"
|
|
|
|
place_files || exit 45
|
2013-07-01 22:36:09 +02:00
|
|
|
|
2013-10-12 10:37:29 +02:00
|
|
|
echo "*** 7) download_banner"
|
2013-07-01 22:23:32 +02:00
|
|
|
download_banner
|
2013-10-12 10:37:29 +02:00
|
|
|
echo "*** 8) apply_banner"
|
2013-07-01 22:23:32 +02:00
|
|
|
apply_banner
|
2013-06-21 19:29:17 +02:00
|
|
|
|
2013-10-12 10:37:29 +02:00
|
|
|
echo "*** 9) dolpatch"
|
2013-07-01 22:36:09 +02:00
|
|
|
dolpatch
|
2013-06-21 19:29:17 +02:00
|
|
|
|
|
|
|
if [[ ${CUSTOMID} ]]; then
|
2014-05-11 21:57:19 +02:00
|
|
|
GAMEID=${CUSTOMID}
|
2013-06-21 19:29:17 +02:00
|
|
|
fi
|
2013-07-07 22:36:04 +02:00
|
|
|
|
|
|
|
if [[ ${PATCHIMAGE_SHARE_SAVE} == "TRUE" ]]; then
|
|
|
|
TMD_OPTS=""
|
|
|
|
else
|
|
|
|
TMD_OPTS="--tt-id=K"
|
|
|
|
fi
|
|
|
|
|
2014-05-16 19:34:12 +02:00
|
|
|
echo "*** 10) rebuild and store game"
|
2014-05-16 20:30:36 +02:00
|
|
|
${WIT} cp -o -q --disc-id=${GAMEID} ${TMD_OPTS} --name "${GAMENAME}" \
|
|
|
|
-B ${WORKDIR} "${PATCHIMAGE_GAME_DIR}"/${GAMEID}.wbfs || exit 51
|
2013-07-07 22:36:04 +02:00
|
|
|
|
2013-10-12 10:37:29 +02:00
|
|
|
echo "*** 12) remove workdir"
|
2014-05-13 18:20:28 +02:00
|
|
|
rm -rf ${WORKDIR}
|
2013-10-12 10:37:29 +02:00
|
|
|
|
2014-05-16 19:34:12 +02:00
|
|
|
echo -e "\n >>> ${GAMENAME} saved as: ${PATCHIMAGE_GAME_DIR}/${GAMEID}.wbfs\n"
|
2013-07-07 22:36:04 +02:00
|
|
|
|
2014-05-11 21:57:19 +02:00
|
|
|
if [[ ${PATCHIMAGE_COVER_DOWNLOAD} == TRUE ]]; then
|
|
|
|
echo -e "\n*** Z) download_covers"
|
|
|
|
download_covers ${GAMEID}
|
|
|
|
fi
|
|
|
|
|
2013-06-21 19:29:17 +02:00
|
|
|
;;
|
2013-06-22 19:02:37 +02:00
|
|
|
|
2014-05-11 19:26:58 +02:00
|
|
|
"MKWIIMM")
|
|
|
|
show_notes
|
2014-05-11 21:57:19 +02:00
|
|
|
|
2014-05-11 19:26:58 +02:00
|
|
|
echo -e "\n*** 1) check_input_image"
|
|
|
|
check_input_image
|
|
|
|
echo -e "\n*** 2) check_input_image_special"
|
|
|
|
check_input_image_special
|
|
|
|
echo -e "\n*** 3) download_wiimm"
|
|
|
|
download_wiimm
|
|
|
|
echo -e "\n*** 4) patch_wiimm"
|
|
|
|
patch_wiimm
|
|
|
|
;;
|
|
|
|
|
2014-05-15 20:54:19 +02:00
|
|
|
"WII_GENERIC")
|
|
|
|
show_notes
|
|
|
|
|
|
|
|
echo -e "\n*** 1) check_input_image"
|
|
|
|
check_input_image
|
|
|
|
echo -e "\n*** 2) pi_action"
|
|
|
|
pi_action
|
|
|
|
;;
|
|
|
|
|
2013-06-22 19:02:37 +02:00
|
|
|
"IPS" )
|
|
|
|
show_notes
|
|
|
|
check_input_rom
|
|
|
|
|
2013-06-22 19:15:29 +02:00
|
|
|
if [[ -f ${PATCH} ]]; then
|
|
|
|
ext=${ROM/*.}
|
|
|
|
cp "${ROM}" "${GAMENAME}.${ext}"
|
2013-10-12 10:37:29 +02:00
|
|
|
${IPS} a "${PATCH}" "${GAMENAME}.${ext}" || exit 51
|
2013-06-22 19:15:29 +02:00
|
|
|
else
|
|
|
|
echo -e "error: patch (${PATCH}) could not be found"
|
|
|
|
fi
|
2013-06-22 19:02:37 +02:00
|
|
|
;;
|
2013-06-21 19:29:17 +02:00
|
|
|
esac
|