From a73b95ac9cec00d0151c7ab9f753b6b195eba7b0 Mon Sep 17 00:00:00 2001 From: Christopher Roy Bratusek Date: Sat, 11 Apr 2015 21:01:24 +0200 Subject: [PATCH] add ability to change karts in MKWiimm --- ChangeLog | 13 ++++ README.RC | 3 + patchimage.sh | 4 + script.d/common.sh | 1 + script.d/mkwiimm.sh | 4 +- script.d/mkwiimm_characters.db | 36 +++++++++ script.d/mkwiimm_fonts.sh | 6 +- script.d/mkwiimm_items.sh | 8 +- script.d/mkwiimm_karts.db | 14 ++++ script.d/mkwiimm_karts.sh | 131 +++++++++++++++++++++++++++++++++ script.d/mkwiimm_vehicles.db | 36 +++++++++ 11 files changed, 248 insertions(+), 8 deletions(-) create mode 100644 script.d/mkwiimm_characters.db create mode 100644 script.d/mkwiimm_karts.db create mode 100644 script.d/mkwiimm_karts.sh create mode 100644 script.d/mkwiimm_vehicles.db diff --git a/ChangeLog b/ChangeLog index 1022d87..fd84e66 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,20 @@ v5.4.0: +- update wit to version 2.31a +- update szs to version 1.39a - add support for MKWiimm 2015-03 +- add support for replacing karts in MKWiimm + No vehicles were harmed during the making of this feature - add support for SMN?41 (Devil Mario Winter Special) - add support for SMN?31 (New Super Mario Bros. Wii - Other World) +- add MKWIIMM_OVERRIDE_SZS variable to patchimage.rc + if set to TRUE patchimage will override the supplied SZS tools + of the MKWiimm patcher with it's own version of the tools. + . + This is useful when the supplied ones don't work with your system's + libpng (usually this happens on Debian GNU/Linux). + . + If patching anything older than RMCP23 (pre-wiimmfi versions) the tools + will always be overriden (because they are ancient). v5.3.0: - update wit to 2.30a diff --git a/README.RC b/README.RC index 00e275c..1a9694e 100644 --- a/README.RC +++ b/README.RC @@ -54,3 +54,6 @@ MKWIIMM_MSG_LANG="de" # 1=ja (use own save, no sharing) # 2=nein (share save with original game) MKWIIMM_OWN_SAVE="1=ja" + +# override szs tools +MKWIIMM_OVERRIDE_SZS="TRUE" diff --git a/patchimage.sh b/patchimage.sh index 240fce1..25ce972 100755 --- a/patchimage.sh +++ b/patchimage.sh @@ -147,6 +147,10 @@ case ${GAME} in source ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_fonts.sh ;; + MKW6 | MkwiimmKarts ) + source ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_karts.sh + ;; + KAW1 | Kirby ) source ${PATCHIMAGE_SCRIPT_DIR}/kirbywii.sh ;; diff --git a/script.d/common.sh b/script.d/common.sh index 5dc899f..b3dac7e 100644 --- a/script.d/common.sh +++ b/script.d/common.sh @@ -55,6 +55,7 @@ MKW2 Wiimfi Patcher. Patch WFC games to use Wiimm's server (exp) MKW3 Mario Kart Wiimm. Custom Mario Kart Distribution MKW4 Custom Items. Replace items in the game MKW5 Custom Font. Replace font in the game +MKW6 Custom Karts. Replace characters in the game <<<<<< Kirby's Adventure Wii >>>>>> KAW1 Change first player's character diff --git a/script.d/mkwiimm.sh b/script.d/mkwiimm.sh index 71f0763..7e72e6f 100644 --- a/script.d/mkwiimm.sh +++ b/script.d/mkwiimm.sh @@ -100,7 +100,9 @@ build_mkwiimm () { esac chmod +x *.sh - cp -r ${PATCHIMAGE_SCRIPT_DIR}/../override/* ${PWD}/bin/ + if [[ ${MKWIIMM_OVERRIDE_SZS} == "TRUE" || ${ID} -lt 23 ]]; then + cp -r ${PATCHIMAGE_SCRIPT_DIR}/../override/* ${PWD}/bin/ + fi if [[ ${MKWIIMM_GAME_LANG} && ${MKWIIMM_MSG_LANG} && ${MKWIIMM_OWN_SAVE} ]]; then echo "LANGUAGE=${MKWIIMM_GAME_LANG} diff --git a/script.d/mkwiimm_characters.db b/script.d/mkwiimm_characters.db new file mode 100644 index 0000000..9f0780d --- /dev/null +++ b/script.d/mkwiimm_characters.db @@ -0,0 +1,36 @@ +-bds:Baby Daisy +-bk:Dry Bowser +-blg:Baby Luigi +-bmr:Baby Mario +-bpc:Baby Peach +-ca:Birdo +-dd:Diddy Kong +-dk:Donkey Kong +-ds:Daisy +-fk:Funky Kong +-jr:Bowser Jr. +-ka:Dry Bones +-kk:Toadette +-ko:Toad +-kp:Bowser +-kt:King Boo +-la_mii_f:Large Mii Outfit A (Female) +-la_mii_m:Large Mii Outfit A (Male) +-lb_mii_f:Large Mii Outfit B (Female) +-lb_mii_m:Large Mii Outfit B (Male) +-lg:Luigi +-ma_mii_f:Medium Mii Outfit A (Female) +-ma_mii_m:Medium Mii Outfit A (Male) +-mb_mii_f:Medium Outfit B (Female) +-mb_mii_m:Medium Mii Outfit B (Male) +-mr:Mario +-nk:Koopa Troopa +-pc:Peach +-rs:Rosalina +-sa_mii_f:Small Mii Outfit A (Female) +-sa_mii_m:Small Mii Outfit A (Male) +-sb_mii_f:Small Mii Outfit B (Female) +-sb_mii_m:Small Mii Outfit B (Male) +-wl:Waluigi +-wr:Wario +-ys:Yoshi diff --git a/script.d/mkwiimm_fonts.sh b/script.d/mkwiimm_fonts.sh index 31412ad..b094837 100644 --- a/script.d/mkwiimm_fonts.sh +++ b/script.d/mkwiimm_fonts.sh @@ -46,8 +46,8 @@ orig Original Mario Kart Wii Font" read FONT if [[ ${FONT} != orig ]]; then - if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${FONT} ]]; then - wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/${FONT} \ + if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_font_${FONT} ]]; then + wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_font_${FONT} \ ${ITEMS_BASE}/${FONT} &>/dev/null \ || (echo "download of ${FONT} failed." \ && rm ${PATCHIMAGE_RIIVOLUTION_DIR}/${FONT} \ @@ -73,7 +73,7 @@ build_mkwiimm () { fi echo "*** 7) replacing font" - cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/${FONT} workdir/${FSZS} + cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/mkwiimm_font_${FONT} workdir/${FSZS} echo "*** 8) rebuilding game" echo " (storing game in ${PATCHIMAGE_GAME_DIR}/${ID})" diff --git a/script.d/mkwiimm_items.sh b/script.d/mkwiimm_items.sh index c7c5695..f8324ad 100644 --- a/script.d/mkwiimm_items.sh +++ b/script.d/mkwiimm_items.sh @@ -93,8 +93,8 @@ download_items () { for item in ${choosenitems[@]}; do id=${item/*:} - if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${id} ]]; then - wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/${id} \ + if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_item_${id} ]]; then + wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_item_${id} \ ${ITEMS_BASE}/${id} &>/dev/null \ || (echo "download of ${id} failed." \ && rm ${PATCHIMAGE_RIIVOLUTION_DIR}/${id}) @@ -132,8 +132,8 @@ build_mkwiimm () { for item in ${choosenitems[@]}; do slot=${item/:*} newi=${item/*:} - if [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${newi} ]]; then - cp ${PATCHIMAGE_RIIVOLUTION_DIR}/${newi} \ + if [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_item_${newi} ]]; then + cp ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_item_${newi} \ workdir/${CSZD}/${slot} fi done diff --git a/script.d/mkwiimm_karts.db b/script.d/mkwiimm_karts.db new file mode 100644 index 0000000..c333fe9 --- /dev/null +++ b/script.d/mkwiimm_karts.db @@ -0,0 +1,14 @@ +pbb.szs:Pikachu riding on Bullet Bike:Baoulettes +jof.szs:Jolteon on foot:XModxGodX +dbj.szs:Dry Bowser Junior on Mach Bike:ShadowLuigi-NG- +fmc.szs:Fox McCloud on Mach Bike:Baoulettes +jth.szs:Jet The Hawk on Type-J X-treme Gear:SonicBrawler +20p.szs:Flying Rainbow Dash:LeonExodio +ren.szs:Renamon on Dolphin Dasher:LuigiGalaxy530 +sth.szs:Sonic The Hedgehog on foot:ShadowLuigi-NG- +btc.szs:Big The Cat on Flame Runner:MKDasher +cpt.szs:Captain Falcon on Flame Runner:LeonExodio, ShadowLuigi-NG- +dks.szs:Dark Schneider:Baoulettes +lin.szs:Link on Flame Runner:Baoulettes +luc.szs:Lucario on Spear:Baoulettes +mid.szs:Midna on Flame Runner:Baoulettes diff --git a/script.d/mkwiimm_karts.sh b/script.d/mkwiimm_karts.sh new file mode 100644 index 0000000..9df09ad --- /dev/null +++ b/script.d/mkwiimm_karts.sh @@ -0,0 +1,131 @@ +#!/bin/bash + +GAME_TYPE="MKWIIMM" +GAME_NAME="Mario Kart Wiimm" +ITEMS_BASE="http://riivolution.nanolx.org/mkwiimm_karts" + +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 + ask_input_image_mkwiimm ${IMAGE%/*} + echo -e "type RMC???.wbfs:\n" + read ID + + if [[ ! -f ${IMAGE%/*}/${ID} ]]; then + echo "wrong id from user-input given." + exit 75 + fi + +} + +ask_slot () { + + echo -e "\nFirst choose a vehicle to be replaced\n" + gawk -F \: '{print $1 "\t\t" $2}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_vehicles.db + echo -e "\ntype in ??_??? as in first column\n" + read VEHICLE + + echo -e "\nNow choose a character to be replaced\n" + gawk -F \: '{print $1 "\t\t" $2}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_characters.db + echo -e "\ntype in -?? as in first column\n" + read CHARACTER + + choosenkarts=( ${choosenkarts[@]} ${kart}:${VEHICLE}${CHARACTER} ) + +} + +download_wiimm () { + + if [[ -f ${HOME}/.patchimage.choice ]]; then + echo "Your choices from last time can be re-used." + echo "y (yes) or n (no)" + read choice + + if [[ ${choice} == y ]]; then + source ${HOME}/.patchimage.choice + fi + fi + + if [[ ${choosenkarts[@]} == "" ]]; then + echo -e "Choose a character to add to the game\n" + + gawk -F \: '{print $1 "\t\t" $2}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_karts.db + + echo -e "\ntype ???.szs (multiple possible, space separated)" + read KART + + for kart in ${KART[@]}; do + if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_kart_${kart} ]]; then + wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_kart_${kart} \ + ${ITEMS_BASE}/${kart} &>/dev/null \ + || (echo "download of ${kart} failed." \ + && rm ${PATCHIMAGE_RIIVOLUTION_DIR}/${KART} \ + && exit 57) + fi + done + + echo ${choosenkarts[@]} + echo "choosenkarts=( ${choosenkarts[@]} )" > ${HOME}/.patchimage.choice + fi + +} + +build_mkwiimm () { + + rm -rf workdir + echo "*** 5) extracting image" + ${WIT} extract ${IMAGE%/*}/${ID} workdir -q || exit 51 + + if [[ ! -d "${PATCHIMAGE_RIIVOLUTION_DIR}"/${ID/.*}_SZS ]]; then + echo "*** 6) this is the first run, so backing up original files +(in ${PATCHIMAGE_RIIVOLUTION_DIR}) for future customizations" + mkdir "${PATCHIMAGE_RIIVOLUTION_DIR}"/${ID/.*}_SZS + cp workdir/files/Race/Kart/* \ + "${PATCHIMAGE_RIIVOLUTION_DIR}"/${ID/.*}_SZS + else + echo "*** 6) restoring original files" + cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/${ID/.*}_SZS/* \ + workdir/files/Race/Kart/ + fi + + echo "*** 7) replacing kart(s)" + for kart in ${choosenkarts[@]}; do + source=${kart/*:} + dest=${kart/:*} + echo " old: ${dest}.szs new: ${source}" + cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/mkwiimm_kart_${source} \ + workdir/files/Race/Kart/${dest}.szs + cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/mkwiimm_kart_${source} \ + workdir/files/Race/Kart/${dest}_2.szs + cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/mkwiimm_kart_${source} \ + workdir/files/Race/Kart/${dest}_4.szs + done + + echo "*** 8) rebuilding game" + echo " (storing game in ${PATCHIMAGE_GAME_DIR}/${ID})" + ${WIT} cp -o -q -B workdir ${PATCHIMAGE_GAME_DIR}/${ID} || exit 51 + + rm -rf workdir + +} + +patch_wiimm () { + + build_mkwiimm + +} diff --git a/script.d/mkwiimm_vehicles.db b/script.d/mkwiimm_vehicles.db new file mode 100644 index 0000000..45b86fb --- /dev/null +++ b/script.d/mkwiimm_vehicles.db @@ -0,0 +1,36 @@ +la_bike:Flame Runner +la_kart:Offroader +lb_bike:Wario Bike +lb_kart:Flame Flyer +lc_bike:Shooting Star +lc_kart:Piranha Prowler +ld_bike:Spear +ld_kart:Jetsetter +ldf_bike:Standard Bike L +ldf_kart:Standard Kart L +le_bike:Phantom +le_kart:Honeycoupe +ma_bike:Mach Bike +ma_kart:Classic Dragster +mb_bike:Sugarscoot +mb_kart:Wild Wing +mc_bike:Zip Zip +mc_kart:Super Blooper +md_bike:Sneakster +md_kart:Daytripper +mdf_bike:Standard Bike M +mdf_kart:Standard Kart M +me_bike:Dolphin Dasher +me_kart:Sprinter +sa_bike:Bullet Bike +sa_kart:Booster Seat +sb_bike:Bit Bike +sb_kart:Mini Beast +sc_bike:Quacker +sc_kart:Cheep Charger +sd_bike:Magikruiser +sd_kart:Tiny Titan +sdf_bike:Standard Bike S +sdf_kart:Standard Kart S +se_bike:Jet Bubble +se_kart:Blue Falcon