add ability to change karts in MKWiimm

This commit is contained in:
Christopher Roy Bratusek 2015-04-11 21:01:24 +02:00
parent 71279d3ae6
commit a73b95ac9c
11 changed files with 248 additions and 8 deletions

View File

@ -1,7 +1,20 @@
v5.4.0: v5.4.0:
- update wit to version 2.31a
- update szs to version 1.39a
- add support for MKWiimm 2015-03 - 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?41 (Devil Mario Winter Special)
- add support for SMN?31 (New Super Mario Bros. Wii - Other World) - 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: v5.3.0:
- update wit to 2.30a - update wit to 2.30a

View File

@ -54,3 +54,6 @@ MKWIIMM_MSG_LANG="de"
# 1=ja (use own save, no sharing) # 1=ja (use own save, no sharing)
# 2=nein (share save with original game) # 2=nein (share save with original game)
MKWIIMM_OWN_SAVE="1=ja" MKWIIMM_OWN_SAVE="1=ja"
# override szs tools
MKWIIMM_OVERRIDE_SZS="TRUE"

View File

@ -147,6 +147,10 @@ case ${GAME} in
source ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_fonts.sh source ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_fonts.sh
;; ;;
MKW6 | MkwiimmKarts )
source ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_karts.sh
;;
KAW1 | Kirby ) KAW1 | Kirby )
source ${PATCHIMAGE_SCRIPT_DIR}/kirbywii.sh source ${PATCHIMAGE_SCRIPT_DIR}/kirbywii.sh
;; ;;

View File

@ -55,6 +55,7 @@ MKW2 Wiimfi Patcher. Patch WFC games to use Wiimm's server (exp)
MKW3 Mario Kart Wiimm. Custom Mario Kart Distribution MKW3 Mario Kart Wiimm. Custom Mario Kart Distribution
MKW4 Custom Items. Replace items in the game MKW4 Custom Items. Replace items in the game
MKW5 Custom Font. Replace font in the game MKW5 Custom Font. Replace font in the game
MKW6 Custom Karts. Replace characters in the game
<<<<<< Kirby's Adventure Wii >>>>>> <<<<<< Kirby's Adventure Wii >>>>>>
KAW1 Change first player's character KAW1 Change first player's character

View File

@ -100,7 +100,9 @@ build_mkwiimm () {
esac esac
chmod +x *.sh 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 if [[ ${MKWIIMM_GAME_LANG} && ${MKWIIMM_MSG_LANG} && ${MKWIIMM_OWN_SAVE} ]]; then
echo "LANGUAGE=${MKWIIMM_GAME_LANG} echo "LANGUAGE=${MKWIIMM_GAME_LANG}

View File

@ -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

View File

@ -46,8 +46,8 @@ orig Original Mario Kart Wii Font"
read FONT read FONT
if [[ ${FONT} != orig ]]; then if [[ ${FONT} != orig ]]; then
if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${FONT} ]]; then if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_font_${FONT} ]]; then
wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/${FONT} \ wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_font_${FONT} \
${ITEMS_BASE}/${FONT} &>/dev/null \ ${ITEMS_BASE}/${FONT} &>/dev/null \
|| (echo "download of ${FONT} failed." \ || (echo "download of ${FONT} failed." \
&& rm ${PATCHIMAGE_RIIVOLUTION_DIR}/${FONT} \ && rm ${PATCHIMAGE_RIIVOLUTION_DIR}/${FONT} \
@ -73,7 +73,7 @@ build_mkwiimm () {
fi fi
echo "*** 7) replacing font" 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 "*** 8) rebuilding game"
echo " (storing game in ${PATCHIMAGE_GAME_DIR}/${ID})" echo " (storing game in ${PATCHIMAGE_GAME_DIR}/${ID})"

View File

@ -93,8 +93,8 @@ download_items () {
for item in ${choosenitems[@]}; do for item in ${choosenitems[@]}; do
id=${item/*:} id=${item/*:}
if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${id} ]]; then if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_item_${id} ]]; then
wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/${id} \ wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_item_${id} \
${ITEMS_BASE}/${id} &>/dev/null \ ${ITEMS_BASE}/${id} &>/dev/null \
|| (echo "download of ${id} failed." \ || (echo "download of ${id} failed." \
&& rm ${PATCHIMAGE_RIIVOLUTION_DIR}/${id}) && rm ${PATCHIMAGE_RIIVOLUTION_DIR}/${id})
@ -132,8 +132,8 @@ build_mkwiimm () {
for item in ${choosenitems[@]}; do for item in ${choosenitems[@]}; do
slot=${item/:*} slot=${item/:*}
newi=${item/*:} newi=${item/*:}
if [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${newi} ]]; then if [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_item_${newi} ]]; then
cp ${PATCHIMAGE_RIIVOLUTION_DIR}/${newi} \ cp ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_item_${newi} \
workdir/${CSZD}/${slot} workdir/${CSZD}/${slot}
fi fi
done done

14
script.d/mkwiimm_karts.db Normal file
View File

@ -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

131
script.d/mkwiimm_karts.sh Normal file
View File

@ -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
}

View File

@ -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