add support for exchanging items in Mario Kart

This commit is contained in:
Christopher Roy Bratusek 2014-05-17 10:07:26 +02:00
parent a667ee3b92
commit 412f9de872
4 changed files with 191 additions and 1 deletions

View File

@ -1,3 +1,11 @@
v4.97:
- changed IDs in the game selection menu (old A..Z for Wii, 1..9
for ROMs / new <ID>1..<ID>..99 ; example: NSMB1, NSMB2, NSMB3)
- mkwiimm_items: support for exchanging items in Mario Kart Wii
(your item choices are saved and can be re-used, so if you want
to modifiy more than one Mario Kart you only have to choose the
items once for all mods)
v4.96: v4.96:
- wiimmfi/mkwiimm/kirbywii: minor improvements and fixups - wiimmfi/mkwiimm/kirbywii: minor improvements and fixups
- support RVLution Wii (a NewSMB Mod) - support RVLution Wii (a NewSMB Mod)

View File

@ -20,7 +20,7 @@ Supported Versions: EUR, JAP, USA
check_input_image_special () { check_input_image_special () {
check_input_image_kirby check_input_image_mkwiimm
} }

37
script.d/mkwiimm_items.db Normal file
View File

@ -0,0 +1,37 @@
gyb.brres:ballon.brres:Yellow and Green Ballons:Atlas
nmm.brres:big_kinoko.brres:Negative Mega Mushroom:Darkybenji
rmm.brres:big_kinoko.brres:Inverted Mega Mushroom:Atlas
bbb.brres:bomb.brres:Dark and light blue Bob-Omb:Atlas
wpb.brres:gesso.brres:White poisoned Bloober:Atlas
ykw.brres:kart_killer.brres:Yellow drill Bullet Bill:KTH
wik.brres:item_killer.brres:Whisp item killer:KTH
kww.brres:jugem_reverse.brres:Lakitu Keep Calm instead of Wrong Way:Atlas
fnl.brres:jugemu.brres:Funky Neon Lakitu:Atlas
rkw.brres:kart_killer.brres:Blue Bullet Bill with red shine and green fire:Atlas
ukw.brres:kart_killer.brres:Ultimate-Turning Bullet Bill:Atlas
bwc.brres:jugemu_signal.brres:White and coloured puzzle start signal:Atlas
buk.brres:kinoko.brres:Blue Mushroom:Atlas
yek.brres:kinoko.brres:Yellow Mushroom:Atlas
puk.brres:kinoko.brres:Purple Mushroom:Atlas
tuk.brres:kinoko.brres:Turquoise Mushroom:Atlas
ork.brres:kinoko.brres:Orange Mushroom:Atlas
pik.brres:kinoko.brres:Pink Mushroom:Atlas
blk.brres:kinoko.brres:Black Mushroom:Atlas
snk.brres:kinoko.brres:Snowy Mushroom:Atlas
whk.brres:kinoko.brres:White Mushroom:Atlas
udk.brres:kinoko.brres:Ultimate Dangerous Mushroom:Atlas
dbk.brres:kinoko.brres:Dark Blue face Mushroom:Atlas
grp.brres:koura_green.brres:Green Penguin:Atlas
rep.brres:koura_red.brres:Red Penguin:Atlas
hob.brres:koura_red.brres:Honeball:Tock
rtc.brres:kumo.brres:Red Thounder-Cloud:Atlas
boo.brres:kumo.brres:Boo:Koops9999vr
cpk.brres:kinoko_p.brres:Colored puzzle king Mushroom:Atlas
bss.brres:kinoko_p.brres:Blue sonic's shoe:Atlas
cpb.brres:pow_bloc.brres:Colored puzzle block:Atlas
cpp.brres:pow_bloc_plane.brres:Colored puzzle block:Atlas
rth.brres:thunder.brres:Green Thunder:Atlas
gth.brres:thunder.brres:Red Thunder:Atlas
lat.brres:togezo_koura.brres:Latios:Guilmon35249vr
blp.brres:togezo_koura.brres:Penguin:Tock
bye.brres:togezo_koura.brres:Blue Yoshi Egg:Atlas

145
script.d/mkwiimm_items.sh Normal file
View File

@ -0,0 +1,145 @@
#!/bin/bash
GAME_TYPE="MKWIIMM"
GAME_NAME="Mario Kart Wiimm"
ITEMS_BASE="http://riivolution.nanolx.org/mkwiimm_items"
CSZS="files/Race/Common.szs"
CSZD="files/Race/Common.d"
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 1
fi
}
items=( "ballon.brres:Balloon (Battle Object)"
"big_kinoko.brres:Mega Mushroom (Item)"
"bomb.brres:Bob-omb (Item)"
"gesso.brres:Blooper (Item)"
"kart_killer.brres:Bullet Bill (In Use)"
"item_killer.brres:Bullet Bill (Item, when dropped)"
"jugem_reverse.brres:Lakitus Wrong Way Sign"
"jugemu.brres:Lakitu"
"jugemu_signal.brres:Lakitus Countdown Lights"
"kinoko.brres:Super Mushroom (Item) "
"koura_green.brres:Green Shell (Item)"
"koura_red.brres:Red Shell (Item)"
"kumo.brres:Thundercloud (Item)"
"kinoko_p.brres:Golden Mushroom (Item, when dropped)"
"pow_bloc.brres:Pow Block (Item, when dropped)"
"pow_bloc_plane.brres:Pow Block (Item, in use) "
"thunder.brres:Lightning (Item, When dropped)"
"togezo_koura.brres:Spiny Shell (Item)" )
ask_items () {
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 [[ ${choosenitems[@]} == "" ]]; then
for item in "${items[@]}"; do
slot=${item/:*}
desc=${item/*:}
echo -e "\n\nChoose item for ${desc}
orig Original item"
gawk -F \: "/${slot}/"'{print $1 "\t" $3}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_items.db
echo -e "\ntype orig or ???.brres"
read slotid
echo "<<<<<<>>>>>>"
choosenitems=( ${choosenitems[@]} ${slot}:${slotid} )
done
echo ${choosenitems[@]}
echo "choosenitems=( ${choosenitems[@]} )" > ${HOME}/.patchimage.choice
fi
}
download_items () {
for item in ${choosenitems[@]}; do
id=${item/*:}
if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${id} ]]; then
wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/${id} \
${ITEMS_BASE}/${id} &>/dev/null \
|| (echo "download of ${id} failed." \
&& rm ${PATCHIMAGE_RIIVOLUTION_DIR}/${id})
fi
done
}
download_wiimm () {
ask_items
download_items
}
build_mkwiimm () {
rm -rf workdir
echo "*** 5) extracting image"
${WIT} extract ${IMAGE%/*}/${ID} workdir -q
echo "*** 6) replacing items"
rm -rf workdir/${CSZD}
${SZS} extract workdir/${CSZS} -q
for item in ${choosenitems[@]}; do
slot=${image/:*}
newi=${image/*:}
if [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${newi} ]]; then
cp ${PATCHIMAGE_RIIVOLUTION_DIR}/${newi} \
${CSZD}/${slot}
fi
done
${SZS} create -o workdir/${CSZD} -q
rm -rf workdir/${CSZD}
echo "*** 7) 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
}