From 1f335b42df7f9217fdf74a58bf3c20d971ecf374 Mon Sep 17 00:00:00 2001 From: Christopher Roy Bratusek Date: Tue, 6 Aug 2013 09:17:05 +0200 Subject: [PATCH] add support for SMMA: Winter Moon --- ChangeLog | 7 +++ GAMEIDS | 2 + README | 3 +- patchimage.sh | 6 +- script.d/wintermoon.sh | 125 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 141 insertions(+), 2 deletions(-) create mode 100644 script.d/wintermoon.sh diff --git a/ChangeLog b/ChangeLog index accb2fd..a75e5d8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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) diff --git a/GAMEIDS b/GAMEIDS index a07f496..a322ec2 100644 --- a/GAMEIDS +++ b/GAMEIDS @@ -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 diff --git a/README b/README index 5c29934..09ea8c0 100644 --- a/README +++ b/README @@ -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/ diff --git a/patchimage.sh b/patchimage.sh index 10ab8ca..5fbc081 100755 --- a/patchimage.sh +++ b/patchimage.sh @@ -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 diff --git a/script.d/wintermoon.sh b/script.d/wintermoon.sh new file mode 100644 index 0000000..275fb15 --- /dev/null +++ b/script.d/wintermoon.sh @@ -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=" + 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 + +}