add support for SMMA: Winter Moon

This commit is contained in:
Christopher Roy Bratusek 2013-08-06 09:17:05 +02:00
parent a91245c1bd
commit 1f335b42df
5 changed files with 141 additions and 2 deletions

View File

@ -1,3 +1,10 @@
v2.6:
- bugfix: don't exit with error on check_input_image as we will
call check_input_image_special aswell
- bugfix: WIT got the image name wrong if the image was detected
using check_input_image_special
- support for Super Mario: Mushroom Adventure PLUS - Winter Moon
v2.5:
- add opening titles for NSMBW 4 and Retro Remix (PAL, US) by alejandroues
- add ucat and unp utilites (perl script to detect archive type and extract it)

View File

@ -12,4 +12,6 @@ SMN?09 ?
SMN?10 Koopa Country
SMN?11 New Super Mario Bros. 4
SMM?02 Super Mario: Mushroom Adventure PLUS - Winter Moon
MRR?01 New Super Mario Bros. Wii Retro Remix

3
README
View File

@ -21,6 +21,7 @@ Supported Games
* Epic Super Bower World (riivolution) [SMN?08]
* Koopa Country (riivolution) [SMN?10]
* New Super Mario Bros. 4 (riivolution) [SMN?11]
*Super Mario: Mushroom Adventure PLUS - Winter Moon [SMM?02]
* New Super Mario Bros. Wii Retro Remix [MRR?01]
* The Legend of Zelda: Parallel Worlds (ips)
@ -31,7 +32,7 @@ Default Searchpaths:
ROM: some mask matching the file (eg: "*[Ll]ink*[Pp]ast*smc" for Zelda: Parallel Worlds)
Parameters
--game={NewerSMB;NewerSummerSun;AnotherSMBW;HolidaySpecial;ParallelWorlds}
--game={NewerSMB;NewerSummerSun;AnotherSMBW;HolidaySpecial;ParallelWorlds...}
specify game to create (if none is provided, the script will ask you)
--iso/--rom=/home/test/<Image>

View File

@ -53,6 +53,10 @@ case ${GAME} in
source script.d/retroremix.sh
;;
j | J | WinterMoon | "Super Mario: Mushroom Adventure PLUS - Winter Moon" )
source script.d/wintermoon.sh
;;
1 | ParallelWorlds | "The Legend of Zelda: Parallel Worlds" )
source script.d/parallelworlds.sh
;;
@ -96,7 +100,7 @@ case ${GAME_TYPE} in
${WIT} cp -v -B ${WORKDIR} ${GAMEID}.wbfs -vv --disc-id=${GAMEID} ${TMD_OPTS} --name "${GAMENAME}" || exit 1
if [[ -d ${PATCHIMAGE_WBFS_DIR} ]]; then
if [[ -d ${PATCHIMAGE_WBFS_DIR} && ${PATCHIMAGE_WBFS_DIR} != . ]]; then
mv ${GAMEID}.wbfs "${PATCHIMAGE_WBFS_DIR}"/
fi

125
script.d/wintermoon.sh Normal file
View File

@ -0,0 +1,125 @@
#!/bin/bash
WORKDIR=nsmb.d
DOL=${WORKDIR}/sys/main.dol
DOWNLOAD_LINK="https://www.dropbox.com/s/3wyc49450iiz2ok/WinterMoon.rar"
RIIVOLUTION_ZIP="WinterMoon.rar"
RIIVOLUTION_DIR="WinterMoon"
GAMENAME="SMMA+: Winter Moon"
XML_SOURCE="${RIIVOLUTION_DIR}"
XML_FILE="${RIIVOLUTION_DIR}"/../riivolution/WinterMoon.xml
GAME_TYPE=RIIVOLUTION
BANNER_LOCATION=""
show_notes () {
echo -e \
"************************************************
${GAMENAME}
9 new levels:
4 from the full game (modified to fit the special's
theme) and 5 completely new and exclusive to the special.
Custom music:
Including both music from past Mario games and new music!
Custom backgrounds:
New backgrounds exclusive for the special!
Custom tilesets:
Including both all-new and retextured tilesets!
Source: http://www.rvlution.net/forums/viewtopic.php?f=53&t=1707
Base Image: New Super Mario Bros. Wii (SMN?01)
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
************************************************"
}
check_input_image_special () {
if [[ ! ${IMAGE} ]]; then
if test -f SMN?01.wbfs; then
IMAGE=$(eval echo SMN?01.wbfs)
elif test -f SMN?01.iso; then
IMAGE=$(eval echo SMN?01.iso)
else
echo -e "please specify image to use with --iso=<path>"
exit 1
fi
fi
}
detect_game_version () {
nsmbw_version
GAMEID=SMM${REG_LETTER}02
}
place_files () {
NEW_DIRS=( ${WORKDIR}/files/EU/NedEU/Message ${WORKDIR}/files/EU/PolEU/Message ${WORKDIR}/files/Sample/)
for dir in ${NEW_DIRS[@]}; do
mkdir -p ${dir}
done
case ${VERSION} in
EUR* )
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU PolEU )
for dir in ${LANGDIRS[@]}; do
cp "${RIIVOLUTION_DIR}"/Others/Text.arc ${WORKDIR}/files/EU/${dir}/Message/Message.arc
done
cp "${RIIVOLUTION_DIR}"/Others/Title/Logo.arc ${WORKDIR}/files/EU/Layout/openingTitle/openingTitle.arc
;;
USAv* )
LANGDIRS=( FraUS EngUS SpaUS )
for dir in ${LANGDIRS[@]}; do
cp "${RIIVOLUTION_DIR}"/Others/Text.arc ${WORKDIR}/files/EU/${dir}/Message/Message.arc
done
cp "${RIIVOLUTION_DIR}"/Others/Title/Logo.arc ${WORKDIR}/files/US/Layout/openingTitle/openingTitle.arc
;;
JPNv1 )
cp "${RIIVOLUTION_DIR}"/Others/Text.arc ${WORKDIR}/files/JP/
cp "${RIIVOLUTION_DIR}"/Others/Title/Logo.arc ${WORKDIR}/files/JP/Layout/openingTitle/openingTitle.arc
;;
esac
cp "${RIIVOLUTION_DIR}"/Levels/*.arc ${WORKDIR}/files/Stage/
cp "${RIIVOLUTION_DIR}"/Tilesets/* ${WORKDIR}/files/Stage/Texture/
cp "${RIIVOLUTION_DIR}"/Backgrounds/* ${WORKDIR}/files/Object/
cp "${RIIVOLUTION_DIR}"/Music/BRSTM/* ${WORKDIR}/files/Sound/stream/
cp "${RIIVOLUTION_DIR}"/Music/BRSAR/* ${WORKDIR}/files/Sound/
cp "${RIIVOLUTION_DIR}"/Map/* ${WORKDIR}/files/WorldMap/
cp "${RIIVOLUTION_DIR}"/Others/Env/NwrXmas_env.arc ${WORKDIR}/files/Env/Env_world.arc
cp "${RIIVOLUTION_DIR}"/Others/Title/Level.arc ${WORKDIR}/files/Stage/01-40.arc
cp "${RIIVOLUTION_DIR}"/Others/UI/MMTex.arc ${WORKDIR}/files/Layout/textures/sequenceBGTexture.arc
cp "${RIIVOLUTION_DIR}"/Others/UI/MM.arc ${WORKDIR}/files/Layout/sequenceBG/sequenceBG.arc
cp "${RIIVOLUTION_DIR}"/Others/UI/MMMain.arc ${WORKDIR}/files/Layout/dateFile/dateFile.arc
cp "${RIIVOLUTION_DIR}"/Others/UI/Banners.arc ${WORKDIR}/files/Layout/preGame/preGame.arc
cp "${RIIVOLUTION_DIR}"/Others/UI/Players.arc ${WORKDIR}/files/Layout/fileSelectPlayer/fileSelectPlayer.arc
cp "${RIIVOLUTION_DIR}"/Sample/tobira.bti ${WORKDIR}/files/Sample/tobira.bti
}
dolpatch() {
cp "${XML_FILE}" "${XML_FILE}".new
sed -e 's/80001800/803482C0/g' -i "${XML_FILE}".new
XML_FILE="${XML_FILE}".new
${WIT} dolpatch ${DOL} xml="${XML_FILE}" -s "${XML_SOURCE}" #\
# "802F148C=53756D6D53756E#7769696D6A3264" \
# "802F118C=53756D6D53756E#7769696D6A3264" \
# "802F0F8C=53756D6D53756E#7769696D6A3264" \
# xml="patches/KoopaCountry-Loader.xml" -q
${WIT} dolpatch ${DOL} xml="patches/NSMBW_AP.xml" -q
}