mirror of
https://gitlab.com/Nanolx/patchimage.git
synced 2024-11-28 03:54:22 +01:00
version 4.0, see ChangeLog
This commit is contained in:
parent
1c7163b5d0
commit
7efedef7ee
21
ChangeLog
21
ChangeLog
@ -1,3 +1,24 @@
|
|||||||
|
v4.0:
|
||||||
|
- bugfix: fix looking for already downloaded riivolution files in
|
||||||
|
${PATCHIMAGE_RIIVOLUTION_DIR}
|
||||||
|
- bugfix: fix looking for original game iso in ${PATCHIMAGE_WBFS_DIR}
|
||||||
|
- bugfix: if the directories set in ${HOME}/.patchimage.rc don't exist
|
||||||
|
let the script create them
|
||||||
|
- bugfix: fix paths for NewerSMBW (seems they changed the way the latest
|
||||||
|
release is packaged slightly)
|
||||||
|
- bugfix: download files with __tmp suffix, so that faulty downloads cause
|
||||||
|
re-download the next time it is tried
|
||||||
|
- bugfix: make use of ${PATCHIMAGE_PATCH_DIR} when building Retro Remix,
|
||||||
|
fixing the openingTitle for PAL and US
|
||||||
|
- bugfix: fix applying openingTitle for PAL and US in NSMBW4
|
||||||
|
- bugfix: updated download link for NSMBW3 (downloading works again)
|
||||||
|
- bugfix: don't apply wiiStrap from NSMBW3 on PAL (black screen on start)
|
||||||
|
- added meaningfull exit codes to the script (see: EXIT_CODES for more info)
|
||||||
|
- annoy the user with messages (eases finding bugs, as you now see when the
|
||||||
|
script stopped working) and make wit quiet
|
||||||
|
- do all operation in ${PWD}/workdir (which removed on each start)
|
||||||
|
- support for Awesomer Super Luigi Mini (WIP)
|
||||||
|
|
||||||
v3.1:
|
v3.1:
|
||||||
- bugfix: for NSMBW3 on US games the language files weren't updated
|
- bugfix: for NSMBW3 on US games the language files weren't updated
|
||||||
- bugfix: for Super Mario: Mushroom Adventure PLUS - Winter Moon on US
|
- bugfix: for Super Mario: Mushroom Adventure PLUS - Winter Moon on US
|
||||||
|
58
README
58
README
@ -12,62 +12,20 @@ script uses files as "unzip" creates them. No need to modify whatever.
|
|||||||
own the original, you can't blame me. patchimage is 100% legal, as it
|
own the original, you can't blame me. patchimage is 100% legal, as it
|
||||||
does not contain any propritary contents, nor is able to grab them.
|
does not contain any propritary contents, nor is able to grab them.
|
||||||
|
|
||||||
Supported Games
|
More information:
|
||||||
* NSMBW3: The Final Levels (riivolution) [SLF?01]
|
* supported games: see file README.GAMEIDS
|
||||||
* Newer SMBW (riivolution) [SMN?03]
|
* supported commandline flags: see file README.CMD_OPTS
|
||||||
* Cannon SMBW (riivolution) [SMN?04]
|
* configuration file example: see file README.RC
|
||||||
* Another SMBW (riivolution) [SMN?05]
|
* status code while processing: see file README.STATUS_CODES
|
||||||
* Newer Summer Sun (riivolution) [SMN?06]
|
* exit codes (for debugging): see file README.EXIT_CODES
|
||||||
* Newer Holiday Special (riivolution) [SMN?07]
|
|
||||||
* 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 (riivolution) [SMM?02]
|
|
||||||
* Super Mario Vacation (riivolution) [SMV?01]
|
|
||||||
* New Super Mario Bros. Wii Retro Remix [MRR?01]
|
|
||||||
* The Legend of Zelda: Parallel Worlds (ips)
|
|
||||||
|
|
||||||
Default Searchpaths:
|
Default searchpaths:
|
||||||
|
|
||||||
ISO: BASE.iso / BASE.wbfs / GAMEID.iso / GAMEID.wbfs
|
ISO: BASE.iso / BASE.wbfs / GAMEID.iso / GAMEID.wbfs
|
||||||
Riivolution: Original name of the zip / unpacked folder
|
Riivolution: Original name of the zip / unpacked folder
|
||||||
ROM: some mask matching the file (eg: "*[Ll]ink*[Pp]ast*smc" for Zelda: Parallel Worlds)
|
ROM: some mask matching the file (eg: "*[Ll]ink*[Pp]ast*smc" for Zelda: Parallel Worlds)
|
||||||
|
|
||||||
Parameters
|
Example usage:
|
||||||
--game={NewerSMB;NewerSummerSun;AnotherSMBW;HolidaySpecial;ParallelWorlds...}
|
|
||||||
specify game to create (if none is provided, the script will ask you)
|
|
||||||
|
|
||||||
--iso/--rom=/home/test/<Image>
|
|
||||||
specify path to the original ISO/ROM
|
|
||||||
|
|
||||||
--riivolution/--patch=<Patch>
|
|
||||||
specify path to Riivolution/Patch files
|
|
||||||
|
|
||||||
--version=EURv1,EURv2,USAv1,USAv2,JPNv1
|
|
||||||
specify your game version (for Wii games, if auto-detection fails)
|
|
||||||
|
|
||||||
--customdid=SMNP02
|
|
||||||
specify a custom ID to use for the game
|
|
||||||
|
|
||||||
--sharesave
|
|
||||||
let modified game share savegame with original game
|
|
||||||
|
|
||||||
--download
|
|
||||||
download riivolution/patchfiles
|
|
||||||
|
|
||||||
--soundtrack
|
|
||||||
download soundtrack (if available) and exit
|
|
||||||
|
|
||||||
--banner=<banner>
|
|
||||||
specify a custom banner to use
|
|
||||||
|
|
||||||
--download-banner
|
|
||||||
download a custom banner (if available)
|
|
||||||
|
|
||||||
--clean
|
|
||||||
cleanup working directory from anything (also riivolution patches)
|
|
||||||
|
|
||||||
Examples:
|
|
||||||
|
|
||||||
NewerSMBW:
|
NewerSMBW:
|
||||||
$ patchimage --game=NewerSMBW --iso=/home/test/SMNP01.iso --download
|
$ patchimage --game=NewerSMBW --iso=/home/test/SMNP01.iso --download
|
||||||
|
33
README.CMD_OPTS
Normal file
33
README.CMD_OPTS
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
Parameters
|
||||||
|
--game={NewerSMB;NewerSummerSun;AnotherSMBW;HolidaySpecial;ParallelWorlds...}
|
||||||
|
specify game to create (if none is provided, the script will ask you)
|
||||||
|
|
||||||
|
--iso/--rom=/home/test/<Image>
|
||||||
|
specify path to the original ISO/ROM
|
||||||
|
|
||||||
|
--riivolution/--patch=<Patch>
|
||||||
|
specify path to Riivolution/Patch files
|
||||||
|
|
||||||
|
--version=EURv1,EURv2,USAv1,USAv2,JPNv1
|
||||||
|
specify your game version (for Wii games, if auto-detection fails)
|
||||||
|
|
||||||
|
--customdid=SMNP02
|
||||||
|
specify a custom ID to use for the game
|
||||||
|
|
||||||
|
--sharesave
|
||||||
|
let modified game share savegame with original game
|
||||||
|
|
||||||
|
--download
|
||||||
|
download riivolution/patchfiles
|
||||||
|
|
||||||
|
--soundtrack
|
||||||
|
download soundtrack (if available) and exit
|
||||||
|
|
||||||
|
--banner=<banner>
|
||||||
|
specify a custom banner to use
|
||||||
|
|
||||||
|
--download-banner
|
||||||
|
download a custom banner (if available)
|
||||||
|
|
||||||
|
--clean
|
||||||
|
cleanup working directory from anything (also riivolution patches)s
|
19
README.EXIT_CODES
Normal file
19
README.EXIT_CODES
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
If the script failed at some point issueing
|
||||||
|
|
||||||
|
echo $?
|
||||||
|
|
||||||
|
right after the failure will you show the following:
|
||||||
|
|
||||||
|
0 everything went right
|
||||||
|
1 general error (none of the following)
|
||||||
|
9 game specified is not known
|
||||||
|
15 ISO or ROM does not exist
|
||||||
|
21 Riivolution files/patch does not exist
|
||||||
|
27 NSMBW version is not recognized
|
||||||
|
33 custom banner specified from command line is not a .bnr file
|
||||||
|
39 custom game id specified from command line is not a 6 digit alphanumeric
|
||||||
|
45 error copying new game files
|
||||||
|
51 wit/ips/applyppf caught an error processing files
|
||||||
|
57 wget caught an error while downloading
|
||||||
|
63 unp caught an error while unpacking a file
|
||||||
|
|
@ -13,6 +13,7 @@ SMN?08 Epic Super Bowser World
|
|||||||
SMN?09 ?
|
SMN?09 ?
|
||||||
SMN?10 Koopa Country
|
SMN?10 Koopa Country
|
||||||
SMN?11 New Super Mario Bros. 4
|
SMN?11 New Super Mario Bros. 4
|
||||||
|
SMN?12 Awesomer Super Luigi Mini
|
||||||
|
|
||||||
SMM?02 Super Mario: Mushroom Adventure PLUS - Winter Moon
|
SMM?02 Super Mario: Mushroom Adventure PLUS - Winter Moon
|
||||||
|
|
19
README.STATUS_CODES
Normal file
19
README.STATUS_CODES
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
While the script executes you will see some status codes, below you will find the meaning:
|
||||||
|
|
||||||
|
phase code meaning
|
||||||
|
*** 1) 0 neither BASE.iso nor BASE.wbfs found
|
||||||
|
1 BASE.iso found in ${PWD}
|
||||||
|
2 BASE.wbfs found in ${PWD}
|
||||||
|
|
||||||
|
*** 2) 0 no <GAMEID>.iso/.wbfs found (or required if *** 1) exited with 1 or 2)
|
||||||
|
1 <GAMEID>.iso found in ${PWD}
|
||||||
|
2 <GAMEID>.wbfs found in ${PWD}
|
||||||
|
3 <GAMEID>.iso found in ${PATCHIMAGE_WBFS_DIR}
|
||||||
|
4 <GAMEID>.iso found in ${PATCHIMAGE_WBFS_DIR}
|
||||||
|
|
||||||
|
*** 3) 0 no riivolution files found unpacked in ${PWD}
|
||||||
|
1 riivolution files/archive not found in ${PWD}
|
||||||
|
2 riivolution archive found in ${PWD}
|
||||||
|
3 riivolution archive found in ${PATCHIMAGE_RIIVOLUTION_DIR}
|
||||||
|
4 patchimage was told to download riivolution archive, but no link is available
|
||||||
|
5 patchimage is downloading riivolution archive
|
6
debian/changelog
vendored
6
debian/changelog
vendored
@ -1,3 +1,9 @@
|
|||||||
|
patchimage (4.0-1nano) unstable; urgency=low
|
||||||
|
|
||||||
|
* new upstream stable release
|
||||||
|
|
||||||
|
-- Christopher Roy Bratusek <nano@tuxfamily.org> Sun, 12 Oct 2013 10:27:31 +0200
|
||||||
|
|
||||||
patchimage (3.1-1nano) unstable; urgency=low
|
patchimage (3.1-1nano) unstable; urgency=low
|
||||||
|
|
||||||
* new upstream stable release
|
* new upstream stable release
|
||||||
|
@ -6,17 +6,35 @@
|
|||||||
#
|
#
|
||||||
# License: GPL v3
|
# License: GPL v3
|
||||||
|
|
||||||
|
if [[ ! -d ${PWD}/workdir ]]; then
|
||||||
|
mkdir ${PWD}/workdir
|
||||||
|
else
|
||||||
|
rm -rf ${PWD}/workdir/*
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -d ${PWD}/script.d ]]; then
|
if [[ -d ${PWD}/script.d ]]; then
|
||||||
PATCHIMAGE_SCRIPT_DIR=${PWD}/script.d
|
PATCHIMAGE_SCRIPT_DIR=../script.d
|
||||||
PATCHIMAGE_PATCH_DIR=${PWD}/patches
|
PATCHIMAGE_PATCH_DIR=../patches
|
||||||
PATCHIMAGE_TOOLS_DIR=${PWD}/tools
|
PATCHIMAGE_TOOLS_DIR=../tools
|
||||||
else
|
else
|
||||||
PATCHIMAGE_SCRIPT_DIR=/usr/share/patchimage/script.d
|
PATCHIMAGE_SCRIPT_DIR=/usr/share/patchimage/script.d
|
||||||
PATCHIMAGE_PATCH_DIR=/usr/share/patchimage/patches
|
PATCHIMAGE_PATCH_DIR=/usr/share/patchimage/patches
|
||||||
PATCHIMAGE_TOOLS_DIR=/usr/share/patchimage/tools
|
PATCHIMAGE_TOOLS_DIR=/usr/share/patchimage/tools
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
cd ${PWD}/workdir
|
||||||
|
|
||||||
|
PATCHIMAGE_RIIVOLUTION_DIR=${PWD}
|
||||||
|
PATCHIMAGE_WBFS_DIR=${PWD}
|
||||||
|
PATCHIMAGE_AUDIO_DIR=${PWD}
|
||||||
|
|
||||||
|
if [[ -e $HOME/.patchimage.rc ]]; then
|
||||||
|
source $HOME/.patchimage.rc
|
||||||
|
fi
|
||||||
|
|
||||||
source ${PATCHIMAGE_SCRIPT_DIR}/common.sh
|
source ${PATCHIMAGE_SCRIPT_DIR}/common.sh
|
||||||
|
check_directories
|
||||||
|
|
||||||
setup_tools
|
setup_tools
|
||||||
|
|
||||||
optparse "${@}"
|
optparse "${@}"
|
||||||
@ -75,13 +93,17 @@ case ${GAME} in
|
|||||||
source ${PATCHIMAGE_SCRIPT_DIR}/summervacation.sh
|
source ${PATCHIMAGE_SCRIPT_DIR}/summervacation.sh
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
m | M | ASLM | "Awesomer Super Luigi Mini" )
|
||||||
|
source ${PATCHIMAGE_SCRIPT_DIR}/awesomersuperluigi.sh
|
||||||
|
;;
|
||||||
|
|
||||||
1 | ParallelWorlds | "The Legend of Zelda: Parallel Worlds" )
|
1 | ParallelWorlds | "The Legend of Zelda: Parallel Worlds" )
|
||||||
source ${PATCHIMAGE_SCRIPT_DIR}/parallelworlds.sh
|
source ${PATCHIMAGE_SCRIPT_DIR}/parallelworlds.sh
|
||||||
;;
|
;;
|
||||||
|
|
||||||
* )
|
* )
|
||||||
echo -e "specified Game ${GAME} not recognized"
|
echo -e "specified Game ${GAME} not recognized"
|
||||||
exit 1
|
exit 9
|
||||||
;;
|
;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
@ -90,20 +112,33 @@ case ${GAME_TYPE} in
|
|||||||
"RIIVOLUTION" )
|
"RIIVOLUTION" )
|
||||||
show_notes
|
show_notes
|
||||||
rm -rf ${WORKDIR}
|
rm -rf ${WORKDIR}
|
||||||
download_soundtrack
|
if [[ ${DOWNLOAD_SOUNDTRACK} == TRUE ]]; then
|
||||||
|
echo "\n*** 1) download_soundtrack"
|
||||||
|
download_soundtrack
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
echo -e "\n*** 1) check_input_image"
|
||||||
check_input_image
|
check_input_image
|
||||||
|
echo "*** 2) check_input_image_special"
|
||||||
check_input_image_special
|
check_input_image_special
|
||||||
|
echo "*** 3) check_riivolution_patch"
|
||||||
check_riivolution_patch
|
check_riivolution_patch
|
||||||
|
|
||||||
${WIT} extract ${IMAGE} ${WORKDIR} --psel=DATA -vv || exit 1
|
echo "*** 4) extract game"
|
||||||
|
${WIT} extract ${IMAGE} ${WORKDIR} --psel=DATA -q || exit 51
|
||||||
|
|
||||||
|
echo "*** 5) detect_game_version"
|
||||||
detect_game_version
|
detect_game_version
|
||||||
rm -f ${GAMEID}.wbfs ${CUSTOMID}.wbfs
|
rm -f ${GAMEID}.wbfs ${CUSTOMID}.wbfs
|
||||||
place_files
|
echo "*** 6) place_files"
|
||||||
|
place_files || exit 45
|
||||||
|
|
||||||
|
echo "*** 7) download_banner"
|
||||||
download_banner
|
download_banner
|
||||||
|
echo "*** 8) apply_banner"
|
||||||
apply_banner
|
apply_banner
|
||||||
|
|
||||||
|
echo "*** 9) dolpatch"
|
||||||
dolpatch
|
dolpatch
|
||||||
|
|
||||||
if [[ ${CUSTOMID} ]]; then
|
if [[ ${CUSTOMID} ]]; then
|
||||||
@ -116,13 +151,19 @@ case ${GAME_TYPE} in
|
|||||||
TMD_OPTS="--tt-id=K"
|
TMD_OPTS="--tt-id=K"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${WIT} cp -v -B ${WORKDIR} ${GAMEID}.wbfs -vv --disc-id=${GAMEID} ${TMD_OPTS} --name "${GAMENAME}" || exit 1
|
echo "*** 10) rebuild game"
|
||||||
|
${WIT} cp -q -B ${WORKDIR} ${GAMEID}.wbfs --disc-id=${GAMEID} ${TMD_OPTS} --name "${GAMENAME}" || exit 51
|
||||||
|
|
||||||
if [[ -d ${PATCHIMAGE_WBFS_DIR} && ${PATCHIMAGE_WBFS_DIR} != . ]]; then
|
if [[ -d ${PATCHIMAGE_WBFS_DIR} && ${PATCHIMAGE_WBFS_DIR} != ${PWD} ]]; then
|
||||||
|
echo "*** 11) store game"
|
||||||
mv ${GAMEID}.wbfs "${PATCHIMAGE_WBFS_DIR}"/
|
mv ${GAMEID}.wbfs "${PATCHIMAGE_WBFS_DIR}"/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "\n >>> ${GAMENAME} saved as:\n >>> ${PATCHIMAGE_WBFS_DIR}/${GAMEID}.wbfs"
|
echo "*** 12) remove workdir"
|
||||||
|
cd ..
|
||||||
|
rm -rf workdir
|
||||||
|
|
||||||
|
echo -e "\n >>> ${GAMENAME} saved as: ${PATCHIMAGE_WBFS_DIR}/${GAMEID}.wbfs\n"
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@ -133,7 +174,7 @@ case ${GAME_TYPE} in
|
|||||||
if [[ -f ${PATCH} ]]; then
|
if [[ -f ${PATCH} ]]; then
|
||||||
ext=${ROM/*.}
|
ext=${ROM/*.}
|
||||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||||
${IPS} a "${PATCH}" "${GAMENAME}.${ext}"
|
${IPS} a "${PATCH}" "${GAMENAME}.${ext}" || exit 51
|
||||||
else
|
else
|
||||||
echo -e "error: patch (${PATCH}) could not be found"
|
echo -e "error: patch (${PATCH}) could not be found"
|
||||||
fi
|
fi
|
||||||
|
92
script.d/awesomersuperluigi.sh
Normal file
92
script.d/awesomersuperluigi.sh
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
WORKDIR=nsmb.d
|
||||||
|
DOL=${WORKDIR}/sys/main.dol
|
||||||
|
DOWNLOAD_LINK="https://www.dropbox.com/s/t3b3fvycm1ufu46/AwesomerSLM.zip"
|
||||||
|
RIIVOLUTION_ZIP="AwesomerSLM.zip"
|
||||||
|
RIIVOLUTION_DIR="AwesomerSLM"
|
||||||
|
GAMENAME="Awesomer Super Luigi Mini"
|
||||||
|
XML_SOURCE="${RIIVOLUTION_DIR}"/AwesomerSLM
|
||||||
|
XML_FILE="${RIIVOLUTION_DIR}"/riivolution/ASLMriivo.xml
|
||||||
|
GAME_TYPE=RIIVOLUTION
|
||||||
|
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||||
|
|
||||||
|
show_notes () {
|
||||||
|
|
||||||
|
echo -e \
|
||||||
|
"************************************************
|
||||||
|
${GAMENAME}
|
||||||
|
|
||||||
|
1: Custom Levels for World 1
|
||||||
|
2: World 1's map will be world 4's
|
||||||
|
3: Joietyfull64's NSMBU tilesets
|
||||||
|
4: Custom logo.
|
||||||
|
|
||||||
|
Source: http://rvlution.net/forums/viewtopic.php?f=53&t=1851
|
||||||
|
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||||
|
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||||
|
************************************************"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
check_input_image_special () {
|
||||||
|
|
||||||
|
check_input_image_nsmb
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
detect_game_version () {
|
||||||
|
|
||||||
|
nsmbw_version
|
||||||
|
|
||||||
|
GAMEID=SMN${REG_LETTER}12
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
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}"/AwesomerSLM/MessageEN/Message/Message.arc ${WORKDIR}/files/EU/${dir}/Message/Message.arc
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
|
||||||
|
USAv* )
|
||||||
|
LANGDIRS=( FraUS EngUS SpaUS )
|
||||||
|
for dir in ${LANGDIRS[@]}; do
|
||||||
|
cp "${RIIVOLUTION_DIR}"/AwesomerSLM/MessageEN/Message/Message.arc ${WORKDIR}/files/US/${dir}/Message/Message.arc
|
||||||
|
done
|
||||||
|
cp -r "${RIIVOLUTION_DIR}"/AwesomerSLM/OpeningUS/openingTitle/ ${WORKDIR}/files/US/Layout/
|
||||||
|
;;
|
||||||
|
|
||||||
|
JPNv1 )
|
||||||
|
cp "${RIIVOLUTION_DIR}"/AwesomerSLM/MessageEN/Message/Message.arc ${WORKDIR}/files/JP/
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
cp -r "${RIIVOLUTION_DIR}"/AwesomerSLM/Stages/* ${WORKDIR}/files/Stage/
|
||||||
|
cp "${RIIVOLUTION_DIR}"/AwesomerSLM/Sound/*.brstm ${WORKDIR}/files/Sound/stream/
|
||||||
|
cp "${RIIVOLUTION_DIR}"/AwesomerSLM/Sound/BRSAR/* ${WORKDIR}/files/Sound/
|
||||||
|
cp -r "${RIIVOLUTION_DIR}"/AwesomerSLM/Object/ ${WORKDIR}/files/Object/
|
||||||
|
#cp -r "${RIIVOLUTION_DIR}"/AwesomerSLM/Layout/ ${WORKDIR}/files/
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
dolpatch () {
|
||||||
|
|
||||||
|
${WIT} dolpatch ${DOL} \
|
||||||
|
"802F148C=53756D6D53756E#7769696D6A3264" \
|
||||||
|
"802F118C=53756D6D53756E#7769696D6A3264" \
|
||||||
|
"802F0F8C=53756D6D53756E#7769696D6A3264" \
|
||||||
|
xml="${PATCHIMAGE_PATCH_DIR}/NSMBW_AP.xml" -q
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,18 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
TMP_FILES=(Another nsmb.d XmasNewer NewerFiles "Newer*Summer*Sun" \
|
|
||||||
ZPW_1.1.ips Epic_Super_Bowser_World_v1.00 Riivolution Koopa \
|
|
||||||
Cannon_Super_Mario_Bros._Wii_v1.1 riivolution "Readme*" "*.txt" "*.rtf" \
|
|
||||||
"*.dol" "*.elf" nsmb "Retro Remix" WinterMoon WMManual.rtf NSMBW3 )
|
|
||||||
|
|
||||||
PATCHIMAGE_RIIVOLUTION_DIR="."
|
|
||||||
PATCHIMAGE_WBFS_DIR="."
|
|
||||||
PATCHIMAGE_AUDIO_DIR="."
|
|
||||||
|
|
||||||
if [[ -e $HOME/.patchimage.rc ]]; then
|
|
||||||
source $HOME/.patchimage.rc
|
|
||||||
fi
|
|
||||||
|
|
||||||
setup_tools () {
|
setup_tools () {
|
||||||
|
|
||||||
if [[ $(uname -m) == "x86_64" ]]; then
|
if [[ $(uname -m) == "x86_64" ]]; then
|
||||||
@ -47,12 +34,6 @@ setup_tools () {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup () {
|
|
||||||
|
|
||||||
rm -rf ${TMP_FILES[@]} *.wbfs *.bnr
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
ask_game () {
|
ask_game () {
|
||||||
|
|
||||||
echo -e \
|
echo -e \
|
||||||
@ -72,6 +53,7 @@ I New Super Mario Bros. Wii Retro Remix
|
|||||||
J Super Mario: Mushroom Adventure PLUS - Winter Moon
|
J Super Mario: Mushroom Adventure PLUS - Winter Moon
|
||||||
K NSMBW3: The Final Levels
|
K NSMBW3: The Final Levels
|
||||||
L Super Mario Vacation
|
L Super Mario Vacation
|
||||||
|
M Awesomer Super Luigi Mini
|
||||||
|
|
||||||
1 The Legend of Zelda: Parallel Worlds
|
1 The Legend of Zelda: Parallel Worlds
|
||||||
"
|
"
|
||||||
@ -84,12 +66,10 @@ download_soundtrack () {
|
|||||||
|
|
||||||
if [[ ${SOUNDTRACK} ]]; then
|
if [[ ${SOUNDTRACK} ]]; then
|
||||||
if [[ ${SOUNDTRACK_LINK} ]]; then
|
if [[ ${SOUNDTRACK_LINK} ]]; then
|
||||||
wget --no-check-certificate "${PATCHIMAGE_AUDIO_DIR}"/"${SOUNDTRACK_LINK}" -O "${PATCHIMAGE_RIIVOLUTION_DIR}"/${SOUNDTRACK_ZIP}
|
wget --no-check-certificate "${PATCHIMAGE_AUDIO_DIR}"/"${SOUNDTRACK_LINK}" -O "${PATCHIMAGE_RIIVOLUTION_DIR}"/${SOUNDTRACK_ZIP} || exit 57
|
||||||
echo -e "\n >>> soundtrack saved to\n >>> ${PATCHIMAGE_AUDIO_DIR}/${SOUNDTRACK_ZIP}"
|
echo -e "\n >>> soundtrack saved to\n >>> ${PATCHIMAGE_AUDIO_DIR}/${SOUNDTRACK_ZIP}"
|
||||||
exit 0
|
|
||||||
else
|
else
|
||||||
echo -e "no soundtrack for ${GAME} available."
|
echo -e "no soundtrack for ${GAME} available."
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -100,11 +80,12 @@ download_banner () {
|
|||||||
if [[ ${PATCHIMAGE_BANNER_DOWNLOAD} == "TRUE" ]]; then
|
if [[ ${PATCHIMAGE_BANNER_DOWNLOAD} == "TRUE" ]]; then
|
||||||
if [[ ${CUSTOM_BANNER} ]]; then
|
if [[ ${CUSTOM_BANNER} ]]; then
|
||||||
if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}"/${GAMEID}-custom-banner.bnr ]]; then
|
if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}"/${GAMEID}-custom-banner.bnr ]]; then
|
||||||
wget --no-check-certificate "${CUSTOM_BANNER}" -O "${PATCHIMAGE_RIIVOLUTION_DIR}"/${GAMEID}-custom-banner.bnr
|
wget --no-check-certificate "${CUSTOM_BANNER}" -O "${PATCHIMAGE_RIIVOLUTION_DIR}"/${GAMEID}-custom-banner.bnr__tmp || exit 57
|
||||||
|
mv "${PATCHIMAGE_RIIVOLUTION_DIR}"/${GAMEID}-custom-banner.bnr__tmp "${PATCHIMAGE_RIIVOLUTION_DIR}"/${GAMEID}-custom-banner.bnr
|
||||||
fi
|
fi
|
||||||
BANNER="${PATCHIMAGE_RIIVOLUTION_DIR}"/${GAMEID}-custom-banner.bnr
|
BANNER="${PATCHIMAGE_RIIVOLUTION_DIR}"/${GAMEID}-custom-banner.bnr
|
||||||
else
|
else
|
||||||
echo "no custom banner for ${GAMENAME} available, not modifying"
|
echo "*** >> no custom banner available"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -129,9 +110,9 @@ nsmbw_version () {
|
|||||||
REG_LETTER=J
|
REG_LETTER=J
|
||||||
elif [[ ! ${VERSION} ]]; then
|
elif [[ ! ${VERSION} ]]; then
|
||||||
echo -e "please specify your games version using --version={EURv1,EURv2,USAv1,USAv2,JPNv1}"
|
echo -e "please specify your games version using --version={EURv1,EURv2,USAv1,USAv2,JPNv1}"
|
||||||
exit 1
|
exit 27
|
||||||
fi
|
fi
|
||||||
|
echo "*** >> status: ${VERSION}"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply_banner () {
|
apply_banner () {
|
||||||
@ -146,57 +127,102 @@ apply_banner () {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_directories () {
|
||||||
|
|
||||||
|
if [[ ! -d ${PATCHIMAGE_RIIVOLUTION_DIR} ]]; then
|
||||||
|
mkdir -p ${PATCHIMAGE_RIIVOLUTION_DIR}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -d ${PATCHIMAGE_WBFS_DIR} ]]; then
|
||||||
|
mkdir -p ${PATCHIMAGE_WBFS_DIR}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -d ${PATCHIMAGE_GAME_DIR} ]]; then
|
||||||
|
mkdir -p ${PATCHIMAGE_GAME_DIR}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -d ${PATCHIMAGE_AUDIO_DIR} ]]; then
|
||||||
|
mkdir -p ${PATCHIMAGE_AUDIO_DIR}
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
check_input_image () {
|
check_input_image () {
|
||||||
|
|
||||||
|
x=0
|
||||||
if [[ ! ${IMAGE} ]]; then
|
if [[ ! ${IMAGE} ]]; then
|
||||||
if [[ -f BASE.wbfs ]]; then
|
if [[ -f BASE.wbfs ]]; then
|
||||||
|
x=1
|
||||||
IMAGE=BASE.wbfs
|
IMAGE=BASE.wbfs
|
||||||
elif [[ -f BASE.iso ]]; then
|
elif [[ -f BASE.iso ]]; then
|
||||||
|
x=1
|
||||||
IMAGE=BASE.iso
|
IMAGE=BASE.iso
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
echo "*** >> status: ${x}"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
check_input_image_nsmb () {
|
check_input_image_nsmb () {
|
||||||
|
|
||||||
|
x=0
|
||||||
if [[ ! ${IMAGE} ]]; then
|
if [[ ! ${IMAGE} ]]; then
|
||||||
if test -f SMN?01.wbfs; then
|
if test -f SMN?01.wbfs; then
|
||||||
|
x=1
|
||||||
IMAGE=SMN?01.wbfs
|
IMAGE=SMN?01.wbfs
|
||||||
elif test -f SMN?01.iso; then
|
elif test -f SMN?01.iso; then
|
||||||
|
x=2
|
||||||
IMAGE=SMN?01.iso
|
IMAGE=SMN?01.iso
|
||||||
elif test -f ${PATCHIMAGE_WBFS_DIR}/SMN?01.iso; then
|
elif test -f ${PATCHIMAGE_WBFS_DIR}/SMN?01.iso; then
|
||||||
|
x=3
|
||||||
IMAGE=${PATCHIMAGE_WBFS_DIR}/SMN?01.iso
|
IMAGE=${PATCHIMAGE_WBFS_DIR}/SMN?01.iso
|
||||||
elif test -f ${PATCHIMAGE_WBFS_DIR}/SMN?01.wbfs; then
|
elif test -f ${PATCHIMAGE_WBFS_DIR}/SMN?01.wbfs; then
|
||||||
|
x=4
|
||||||
IMAGE=${PATCHIMAGE_WBFS_DIR}/SMN?01.wbfs
|
IMAGE=${PATCHIMAGE_WBFS_DIR}/SMN?01.wbfs
|
||||||
else
|
else
|
||||||
echo -e "please specify image to use with --iso=<path>"
|
echo -e "please specify image to use with --iso=<path>"
|
||||||
exit 1
|
exit 15
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
echo "*** >> status: ${x}"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
check_riivolution_patch () {
|
check_riivolution_patch () {
|
||||||
|
|
||||||
|
x=0
|
||||||
if [[ ! -d ${RIIVOLUTION_DIR} ]]; then
|
if [[ ! -d ${RIIVOLUTION_DIR} ]]; then
|
||||||
if [[ -f "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${RIIVOLUTION_ZIP}" ]]; then
|
x=1
|
||||||
${UNP} "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${RIIVOLUTION_ZIP}" >/dev/null
|
if [[ -f "${PWD}/${RIIVOLUTION_DIR}" ]]; then
|
||||||
|
echo "*** >> unpacking"
|
||||||
|
x=2
|
||||||
|
${UNP} "${PWD}/${RIIVOLUTION_ZIP}" >/dev/null || exit 63
|
||||||
|
elif [[ -f "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}" ]]; then
|
||||||
|
echo "*** >> unpacking"
|
||||||
|
x=3
|
||||||
|
${UNP} "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}" >/dev/null || exit 63
|
||||||
elif [[ ${PATCHIMAGE_RIIVOLUTION_DOWNLOAD} == "TRUE" ]]; then
|
elif [[ ${PATCHIMAGE_RIIVOLUTION_DOWNLOAD} == "TRUE" ]]; then
|
||||||
|
x=4
|
||||||
if [[ ${DOWNLOAD_LINK} ]]; then
|
if [[ ${DOWNLOAD_LINK} ]]; then
|
||||||
if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${RIIVOLUTION_ZIP}" ]]; then
|
if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}" ]]; then
|
||||||
wget --no-check-certificate ${DOWNLOAD_LINK} -O "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${RIIVOLUTION_ZIP}"
|
x=5
|
||||||
${UNP} "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${RIIVOLUTION_ZIP}" >/dev/null
|
echo "*** >> downloading"
|
||||||
|
wget --no-check-certificate ${DOWNLOAD_LINK} -O "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp >/dev/null || exit 57
|
||||||
|
mv "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||||
|
echo "*** >> unpacking"
|
||||||
|
${UNP} "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}" >/dev/null || exit 63
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "no download link for ${GAMENAME} available."
|
echo "no download link for ${GAMENAME} available."
|
||||||
exit 1
|
exit 21
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo -e "please specify zip/rar to use with --riivolution=<path>"
|
echo -e "please specify zip/rar to use with --riivolution=<path>"
|
||||||
exit 1
|
exit 21
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
echo "*** >> status: ${x}"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -217,7 +243,7 @@ while [[ $xcount -lt $pcount ]]; do
|
|||||||
IMAGE=BASE.${ISO_EXT}
|
IMAGE=BASE.${ISO_EXT}
|
||||||
else
|
else
|
||||||
echo -e "ISO not found"
|
echo -e "ISO not found"
|
||||||
exit 1
|
exit 15
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@ -230,7 +256,7 @@ while [[ $xcount -lt $pcount ]]; do
|
|||||||
IMAGE=BASE.${ROM_EXT}
|
IMAGE=BASE.${ROM_EXT}
|
||||||
else
|
else
|
||||||
echo -e "ROM not found"
|
echo -e "ROM not found"
|
||||||
exit 1
|
exit 15
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@ -240,7 +266,7 @@ while [[ $xcount -lt $pcount ]]; do
|
|||||||
${UNP} "${RIIVOLUTION}" >/dev/null
|
${UNP} "${RIIVOLUTION}" >/dev/null
|
||||||
else
|
else
|
||||||
echo -e "Riivolution patch ${RIIVOLUTION} not found."
|
echo -e "Riivolution patch ${RIIVOLUTION} not found."
|
||||||
exit 1
|
exit 21
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@ -250,7 +276,7 @@ while [[ $xcount -lt $pcount ]]; do
|
|||||||
${UNP} "${PATCH}" >/dev/null
|
${UNP} "${PATCH}" >/dev/null
|
||||||
else
|
else
|
||||||
echo -e "PATCH patch ${PATCH} not found."
|
echo -e "PATCH patch ${PATCH} not found."
|
||||||
exit 1
|
exit 21
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@ -258,7 +284,7 @@ while [[ $xcount -lt $pcount ]]; do
|
|||||||
CUSTOMID=${1/*=}
|
CUSTOMID=${1/*=}
|
||||||
if [[ ${#CUSTOMID} != 6 ]]; then
|
if [[ ${#CUSTOMID} != 6 ]]; then
|
||||||
echo -e "CustomID ${CUSTOMID} needs to have 6 digits"
|
echo -e "CustomID ${CUSTOMID} needs to have 6 digits"
|
||||||
exit 1
|
exit 39
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@ -267,7 +293,7 @@ while [[ $xcount -lt $pcount ]]; do
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
--soundtrack )
|
--soundtrack )
|
||||||
SOUNDTRACK=TRUE
|
DOWNLOAD_SOUNDTRACK=TRUE
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--version=* )
|
--version=* )
|
||||||
@ -295,7 +321,7 @@ while [[ $xcount -lt $pcount ]]; do
|
|||||||
|
|
||||||
* )
|
* )
|
||||||
echo -e "unrecognized game version: ${VERSION}"
|
echo -e "unrecognized game version: ${VERSION}"
|
||||||
exit 1
|
exit 27
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
@ -308,17 +334,12 @@ while [[ $xcount -lt $pcount ]]; do
|
|||||||
GAME=${1/*=}
|
GAME=${1/*=}
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--clean )
|
|
||||||
cleanup
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
|
|
||||||
--banner=* )
|
--banner=* )
|
||||||
BANNER=${1/*=}
|
BANNER=${1/*=}
|
||||||
BANNER_EXT=${BANNER//*./}
|
BANNER_EXT=${BANNER//*./}
|
||||||
if [[ ${BANNER_EXT} != "bnr" ]]; then
|
if [[ ${BANNER_EXT} != "bnr" ]]; then
|
||||||
echo "given banner (${BANNER}) is not a .bnr file!"
|
echo "given banner (${BANNER}) is not a .bnr file!"
|
||||||
exit 1
|
exit 33
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@ -327,17 +348,17 @@ while [[ $xcount -lt $pcount ]]; do
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
"" | --help )
|
"" | --help )
|
||||||
echo -e "create wbfs images from riivolution patches.\n
|
echo -e "patchimage 4.0 (2013-10-11)
|
||||||
***** using this script is only allowed, if you own an original copy of the game.
|
|
||||||
***** if you don't, no one can be blamed but you. Shame on you.\n
|
(c) 2013 Christopher Roy Bratusek <nano@tuxfamily.org>
|
||||||
--game={NewerSMB;NewerSummerSun;AnotherSMB;HolidaySpecial;ParallelWorlds...}
|
patchimage creates wbfs images from riivolution patches.
|
||||||
| specify game you want to create
|
|
||||||
|
--game=<gamename/gameletter> | specify game you want to create
|
||||||
--iso/--rom=/home/test/<Image> | specify which ISO/ROM to use for building
|
--iso/--rom=/home/test/<Image> | specify which ISO/ROM to use for building
|
||||||
--riivolution/--patch=<Patch> | specify path to Riivolution/Patch files
|
--riivolution/--patch=<Patch> | specify path to Riivolution/Patch files
|
||||||
--version=EURv1,EURv2,USAv1,USAv2,JPNv1 | specify your game version
|
--version=EURv1,EURv2,USAv1,USAv2,JPNv1 | specify your game version
|
||||||
--customdid=SMNP02 | specify a custom ID to use for the game
|
--customdid=SMNP02 | specify a custom ID to use for the game
|
||||||
--sharesave | let modified game share savegame with original game
|
--sharesave | let modified game share savegame with original game
|
||||||
--clean | cleanup the build-directory
|
|
||||||
--download | download riivolution patchfiles
|
--download | download riivolution patchfiles
|
||||||
--soundtrack | download soundtrack (if available) and exit
|
--soundtrack | download soundtrack (if available) and exit
|
||||||
--banner=<banner.bnr> | use a custom banner (riivolution games)
|
--banner=<banner.bnr> | use a custom banner (riivolution games)
|
||||||
|
@ -6,10 +6,10 @@ DOWNLOAD_LINK="http://newerteam.com/getNewerFile.php"
|
|||||||
SOUNDTRACK_LINK="http://dirbaio.net/newer/NewerSoundtrack.zip"
|
SOUNDTRACK_LINK="http://dirbaio.net/newer/NewerSoundtrack.zip"
|
||||||
SOUNDTRACK_ZIP="NewerSoundtrack.zip"
|
SOUNDTRACK_ZIP="NewerSoundtrack.zip"
|
||||||
RIIVOLUTION_ZIP="NewerSMBW.zip"
|
RIIVOLUTION_ZIP="NewerSMBW.zip"
|
||||||
RIIVOLUTION_DIR="NewerFiles"
|
RIIVOLUTION_DIR="NewerSMBW"
|
||||||
GAMENAME="Newer SMB"
|
GAMENAME="Newer SMB"
|
||||||
XML_SOURCE="${RIIVOLUTION_DIR}"/NewerSMBW/
|
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||||
XML_FILE="${RIIVOLUTION_DIR}"/riivolution/NewerSMBW.xml
|
XML_FILE="${RIIVOLUTION_DIR}"/../riivolution/NewerSMBW.xml
|
||||||
GAME_TYPE=RIIVOLUTION
|
GAME_TYPE=RIIVOLUTION
|
||||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||||
|
|
||||||
@ -56,67 +56,67 @@ place_files () {
|
|||||||
EUR* )
|
EUR* )
|
||||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||||
for dir in ${LANGDIRS[@]}; do
|
for dir in ${LANGDIRS[@]}; do
|
||||||
cp -r "${RIIVOLUTION_DIR}"/NewerSMBW/{Font,Message}/ ${WORKDIR}/files/EU/${dir}/
|
cp -r "${RIIVOLUTION_DIR}"/{Font,Message}/ ${WORKDIR}/files/EU/${dir}/
|
||||||
done
|
done
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/OthersP/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
cp "${RIIVOLUTION_DIR}"/OthersP/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
||||||
;;
|
;;
|
||||||
|
|
||||||
USAv* )
|
USAv* )
|
||||||
LANGDIRS=( FraUS EngUS SpaUS )
|
LANGDIRS=( FraUS EngUS SpaUS )
|
||||||
for dir in ${LANGDIRS[@]}; do
|
for dir in ${LANGDIRS[@]}; do
|
||||||
cp -r "${RIIVOLUTION_DIR}"/NewerSMBW/{Font,Message}/ ${WORKDIR}/files/US/${dir}/
|
cp -r "${RIIVOLUTION_DIR}"/{Font,Message}/ ${WORKDIR}/files/US/${dir}/
|
||||||
done
|
done
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/OthersE/* ${WORKDIR}/files/US/Layout/openingTitle/
|
cp "${RIIVOLUTION_DIR}"/OthersE/* ${WORKDIR}/files/US/Layout/openingTitle/
|
||||||
;;
|
;;
|
||||||
|
|
||||||
JPNv1 )
|
JPNv1 )
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Font/* ${WORKDIR}/files/JP/Font/
|
cp "${RIIVOLUTION_DIR}"/Font/* ${WORKDIR}/files/JP/Font/
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Message/* ${WORKDIR}/files/JP/Message/
|
cp "${RIIVOLUTION_DIR}"/Message/* ${WORKDIR}/files/JP/Message/
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/OthersJ/* ${WORKDIR}/files/JP/Layout/openingTitle/
|
cp "${RIIVOLUTION_DIR}"/OthersJ/* ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Tilesets/* ${WORKDIR}/files/Stage/Texture/
|
cp "${RIIVOLUTION_DIR}"/Tilesets/* ${WORKDIR}/files/Stage/Texture/
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/TitleReplay/* ${WORKDIR}/files/Replay/title/
|
cp "${RIIVOLUTION_DIR}"/TitleReplay/* ${WORKDIR}/files/Replay/title/
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/BGs/* ${WORKDIR}/files/Object/
|
cp "${RIIVOLUTION_DIR}"/BGs/* ${WORKDIR}/files/Object/
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/SpriteTex/* ${WORKDIR}/files/Object/
|
cp "${RIIVOLUTION_DIR}"/SpriteTex/* ${WORKDIR}/files/Object/
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Layouts/* ${WORKDIR}/files/Layout/
|
cp "${RIIVOLUTION_DIR}"/Layouts/* ${WORKDIR}/files/Layout/
|
||||||
cp -r "${RIIVOLUTION_DIR}"/NewerSMBW/Music/*.er ${WORKDIR}/files/Sound/new/
|
cp -r "${RIIVOLUTION_DIR}"/Music/*.er ${WORKDIR}/files/Sound/new/
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Music/sfx/* ${WORKDIR}/files/Sound/new/sfx/
|
cp "${RIIVOLUTION_DIR}"/Music/sfx/* ${WORKDIR}/files/Sound/new/sfx/
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Music/stream/* ${WORKDIR}/files/Sound/stream/
|
cp "${RIIVOLUTION_DIR}"/Music/stream/* ${WORKDIR}/files/Sound/stream/
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Music/rsar/* ${WORKDIR}/files/Sound/
|
cp "${RIIVOLUTION_DIR}"/Music/rsar/* ${WORKDIR}/files/Sound/
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/NewerRes/* ${WORKDIR}/files/NewerRes/
|
cp "${RIIVOLUTION_DIR}"/NewerRes/* ${WORKDIR}/files/NewerRes/
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/LevelSamples/* ${WORKDIR}/files/LevelSamples/
|
cp "${RIIVOLUTION_DIR}"/LevelSamples/* ${WORKDIR}/files/LevelSamples/
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/charaChangeSelectContents.arc ${WORKDIR}/files/Layout/charaChangeSelectContents/charaChangeSelectContents.arc
|
cp "${RIIVOLUTION_DIR}"/Others/charaChangeSelectContents.arc ${WORKDIR}/files/Layout/charaChangeSelectContents/charaChangeSelectContents.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/characterChange.arc ${WORKDIR}/files/Layout/characterChange/characterChange.arc
|
cp "${RIIVOLUTION_DIR}"/Others/characterChange.arc ${WORKDIR}/files/Layout/characterChange/characterChange.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/continue.arc ${WORKDIR}/files/Layout/continue/continue.arc
|
cp "${RIIVOLUTION_DIR}"/Others/continue.arc ${WORKDIR}/files/Layout/continue/continue.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/controllerInformation.arc ${WORKDIR}/files/Layout/controllerInformation/controllerInformation.arc
|
cp "${RIIVOLUTION_DIR}"/Others/controllerInformation.arc ${WORKDIR}/files/Layout/controllerInformation/controllerInformation.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/corseSelectMenu.arc ${WORKDIR}/files/Layout/corseSelectMenu/corseSelectMenu.arc
|
cp "${RIIVOLUTION_DIR}"/Others/corseSelectMenu.arc ${WORKDIR}/files/Layout/corseSelectMenu/corseSelectMenu.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/corseSelectUIGuide.arc ${WORKDIR}/files/Layout/corseSelectUIGuide/corseSelectUIGuide.arc
|
cp "${RIIVOLUTION_DIR}"/Others/corseSelectUIGuide.arc ${WORKDIR}/files/Layout/corseSelectUIGuide/corseSelectUIGuide.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/dateFile.arc ${WORKDIR}/files/Layout/dateFile/dateFile.arc
|
cp "${RIIVOLUTION_DIR}"/Others/dateFile.arc ${WORKDIR}/files/Layout/dateFile/dateFile.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/dateFile_OLD.arc ${WORKDIR}/files/Layout/dateFile/dateFile_OLD.arc
|
cp "${RIIVOLUTION_DIR}"/Others/dateFile_OLD.arc ${WORKDIR}/files/Layout/dateFile/dateFile_OLD.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/easyPairing.arc ${WORKDIR}/files/Layout/easyPairing/easyPairing.arc
|
cp "${RIIVOLUTION_DIR}"/Others/easyPairing.arc ${WORKDIR}/files/Layout/easyPairing/easyPairing.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/extensionControllerNunchuk.arc ${WORKDIR}/files/Layout/extensionControllerNunchuk/extensionControllerNunchuk.arc
|
cp "${RIIVOLUTION_DIR}"/Others/extensionControllerNunchuk.arc ${WORKDIR}/files/Layout/extensionControllerNunchuk/extensionControllerNunchuk.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/extensionControllerYokomochi.arc ${WORKDIR}/files/Layout/extensionControllerYokomochi/extensionControllerYokomochi.arc
|
cp "${RIIVOLUTION_DIR}"/Others/extensionControllerYokomochi.arc ${WORKDIR}/files/Layout/extensionControllerYokomochi/extensionControllerYokomochi.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/fileSelectBase.arc ${WORKDIR}/files/Layout/fileSelectBase/fileSelectBase.arc
|
cp "${RIIVOLUTION_DIR}"/Others/fileSelectBase.arc ${WORKDIR}/files/Layout/fileSelectBase/fileSelectBase.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/fileSelectBase_OLD.arc ${WORKDIR}/files/Layout/fileSelectBase/fileSelectBase_OLD.arc
|
cp "${RIIVOLUTION_DIR}"/Others/fileSelectBase_OLD.arc ${WORKDIR}/files/Layout/fileSelectBase/fileSelectBase_OLD.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/fileSelectPlayer.arc ${WORKDIR}/files/Layout/fileSelectPlayer/fileSelectPlayer.arc
|
cp "${RIIVOLUTION_DIR}"/Others/fileSelectPlayer.arc ${WORKDIR}/files/Layout/fileSelectPlayer/fileSelectPlayer.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/gameScene.arc ${WORKDIR}/files/Layout/gameScene/gameScene.arc
|
cp "${RIIVOLUTION_DIR}"/Others/gameScene.arc ${WORKDIR}/files/Layout/gameScene/gameScene.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/infoWindow.arc ${WORKDIR}/files/Layout/infoWindow/infoWindow.arc
|
cp "${RIIVOLUTION_DIR}"/Others/infoWindow.arc ${WORKDIR}/files/Layout/infoWindow/infoWindow.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/miniGameCannon.arc ${WORKDIR}/files/Layout/miniGameCannon/miniGameCannon.arc
|
cp "${RIIVOLUTION_DIR}"/Others/miniGameCannon.arc ${WORKDIR}/files/Layout/miniGameCannon/miniGameCannon.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/miniGameWire.arc ${WORKDIR}/files/Layout/miniGameWire/miniGameWire.arc
|
cp "${RIIVOLUTION_DIR}"/Others/miniGameWire.arc ${WORKDIR}/files/Layout/miniGameWire/miniGameWire.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/pauseMenu.arc ${WORKDIR}/files/Layout/pauseMenu/pauseMenu.arc
|
cp "${RIIVOLUTION_DIR}"/Others/pauseMenu.arc ${WORKDIR}/files/Layout/pauseMenu/pauseMenu.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/pointResultDateFile.arc ${WORKDIR}/files/Layout/pointResultDateFile/pointResultDateFile.arc
|
cp "${RIIVOLUTION_DIR}"/Others/pointResultDateFile.arc ${WORKDIR}/files/Layout/pointResultDateFile/pointResultDateFile.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/pointResultDateFileFree.arc ${WORKDIR}/files/Layout/pointResultDateFileFree/pointResultDateFileFree.arc
|
cp "${RIIVOLUTION_DIR}"/Others/pointResultDateFileFree.arc ${WORKDIR}/files/Layout/pointResultDateFileFree/pointResultDateFileFree.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/preGame.arc ${WORKDIR}/files/Layout/preGame/preGame.arc
|
cp "${RIIVOLUTION_DIR}"/Others/preGame.arc ${WORKDIR}/files/Layout/preGame/preGame.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/select_cursor.arc ${WORKDIR}/files/Layout/select_cursor/select_cursor.arc
|
cp "${RIIVOLUTION_DIR}"/Others/select_cursor.arc ${WORKDIR}/files/Layout/select_cursor/select_cursor.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/sequenceBG.arc ${WORKDIR}/files/Layout/sequenceBG/sequenceBG.arc
|
cp "${RIIVOLUTION_DIR}"/Others/sequenceBG.arc ${WORKDIR}/files/Layout/sequenceBG/sequenceBG.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/staffCredit.arc ${WORKDIR}/files/Layout/staffCredit/staffCredit.arc
|
cp "${RIIVOLUTION_DIR}"/Others/staffCredit.arc ${WORKDIR}/files/Layout/staffCredit/staffCredit.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/stockItem.arc ${WORKDIR}/files/Layout/stockItem/stockItem.arc
|
cp "${RIIVOLUTION_DIR}"/Others/stockItem.arc ${WORKDIR}/files/Layout/stockItem/stockItem.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/stockItemShadow.arc ${WORKDIR}/files/Layout/stockItemShadow/stockItemShadow.arc
|
cp "${RIIVOLUTION_DIR}"/Others/stockItemShadow.arc ${WORKDIR}/files/Layout/stockItemShadow/stockItemShadow.arc
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Others/yesnoWindow.arc ${WORKDIR}/files/Layout/yesnoWindow/yesnoWindow.arc
|
cp "${RIIVOLUTION_DIR}"/Others/yesnoWindow.arc ${WORKDIR}/files/Layout/yesnoWindow/yesnoWindow.arc
|
||||||
cp -r "${RIIVOLUTION_DIR}"/NewerSMBW/Maps/* ${WORKDIR}/files/Maps/
|
cp -r "${RIIVOLUTION_DIR}"/Maps/* ${WORKDIR}/files/Maps/
|
||||||
cp "${RIIVOLUTION_DIR}"/NewerSMBW/Stages/* ${WORKDIR}/files/Stage/
|
cp "${RIIVOLUTION_DIR}"/Stages/* ${WORKDIR}/files/Stage/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
WORKDIR=nsmb.d
|
WORKDIR=nsmb.d
|
||||||
DOL=${WORKDIR}/sys/main.dol
|
DOL=${WORKDIR}/sys/main.dol
|
||||||
DOWNLOAD_LINK="https://www.dropbox.com/s/rvuwd8ztl44g18y/NSMBW3_The%20final%20levels.zip"
|
DOWNLOAD_LINK="https://www.dropbox.com/s/f7x8evfrc07bcbw/NSMBW%203%20The%20Final%20Levels.zip"
|
||||||
RIIVOLUTION_ZIP="NSMBW3_The final levels.zip"
|
RIIVOLUTION_ZIP="NSMBW3_The final levels.zip"
|
||||||
RIIVOLUTION_DIR="NSMBW3"
|
RIIVOLUTION_DIR="NSMBW3"
|
||||||
GAMENAME="NSMBW3: The Final Levels"
|
GAMENAME="NSMBW3: The Final Levels"
|
||||||
@ -54,7 +54,7 @@ place_files () {
|
|||||||
EUR* )
|
EUR* )
|
||||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||||
for dir in ${LANGDIRS[@]}; do
|
for dir in ${LANGDIRS[@]}; do
|
||||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/{Message,Layout} ${WORKDIR}/files/EU/${dir}/
|
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message ${WORKDIR}/files/EU/${dir}/
|
||||||
done
|
done
|
||||||
cp "${RIIVOLUTION_DIR}"/EU/Layout/openingtitle/* ${WORKDIR}/files/EU/Layout/openingTitle/openingTitle.arc
|
cp "${RIIVOLUTION_DIR}"/EU/Layout/openingtitle/* ${WORKDIR}/files/EU/Layout/openingTitle/openingTitle.arc
|
||||||
;;
|
;;
|
||||||
@ -62,12 +62,12 @@ place_files () {
|
|||||||
USAv* )
|
USAv* )
|
||||||
LANGDIRS=( FraUS EngUS SpaUS )
|
LANGDIRS=( FraUS EngUS SpaUS )
|
||||||
for dir in ${LANGDIRS[@]}; do
|
for dir in ${LANGDIRS[@]}; do
|
||||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/{Message,Layout} ${WORKDIR}/files/US/${dir}/
|
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message ${WORKDIR}/files/US/${dir}/
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
|
|
||||||
JPNv1 )
|
JPNv1 )
|
||||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/{Message,Layout} ${WORKDIR}/files/JP/
|
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message ${WORKDIR}/files/JP/
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -43,11 +43,11 @@ place_files () {
|
|||||||
|
|
||||||
case ${VERSION} in
|
case ${VERSION} in
|
||||||
EURv* )
|
EURv* )
|
||||||
${PATCHIMAGE_PATCH_DIR}/openingTitle_nsmbw4.arc ${WORKDIR}/files/EU/Layout/openingTitle/openingTitle.arc
|
cp ${PATCHIMAGE_PATCH_DIR}/openingTitle_nsmbw4.arc ${WORKDIR}/files/EU/Layout/openingTitle/openingTitle.arc
|
||||||
;;
|
;;
|
||||||
|
|
||||||
USAv* )
|
USAv* )
|
||||||
${PATCHIMAGE_PATCH_DIR}/openingTitle_nsmbw4.arc ${WORKDIR}/files/US/Layout/openingTitle/openingTitle.arc
|
cp ${PATCHIMAGE_PATCH_DIR}/openingTitle_nsmbw4.arc ${WORKDIR}/files/US/Layout/openingTitle/openingTitle.arc
|
||||||
;;
|
;;
|
||||||
|
|
||||||
# JPNv* )
|
# JPNv* )
|
||||||
|
@ -29,7 +29,7 @@ check_input_rom () {
|
|||||||
ROM=$(find . -name ${ROM_MASK} | sed -e 's,./,,')
|
ROM=$(find . -name ${ROM_MASK} | sed -e 's,./,,')
|
||||||
if [[ ${ROM} == "" ]]; then
|
if [[ ${ROM} == "" ]]; then
|
||||||
echo -e "error: could not find suitable ROM, specify using --rom"
|
echo -e "error: could not find suitable ROM, specify using --rom"
|
||||||
exit 1
|
exit 15
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ place_files () {
|
|||||||
for dir in ${LANGDIRS[@]}; do
|
for dir in ${LANGDIRS[@]}; do
|
||||||
cp -r "${RIIVOLUTION_DIR}"/US/EngUS/Message/ ${WORKDIR}/files/EU/${dir}/
|
cp -r "${RIIVOLUTION_DIR}"/US/EngUS/Message/ ${WORKDIR}/files/EU/${dir}/
|
||||||
done
|
done
|
||||||
cp patches/openingTitle_retromix.arc ${WORKDIR}/files/EU/Layout/openingTitle/openingTitle.arc
|
cp ${PATCHIMAGE_PATCH_DIR}/openingTitle_retromix.arc ${WORKDIR}/files/EU/Layout/openingTitle/openingTitle.arc
|
||||||
;;
|
;;
|
||||||
|
|
||||||
USAv* )
|
USAv* )
|
||||||
@ -57,7 +57,7 @@ place_files () {
|
|||||||
for dir in ${LANGDIRS[@]}; do
|
for dir in ${LANGDIRS[@]}; do
|
||||||
cp -r "${RIIVOLUTION_DIR}"/US/EngUS/Message/ ${WORKDIR}/files/US/${dir}/
|
cp -r "${RIIVOLUTION_DIR}"/US/EngUS/Message/ ${WORKDIR}/files/US/${dir}/
|
||||||
done
|
done
|
||||||
cp patches/openingTitle_retromix.arc ${WORKDIR}/files/US/Layout/openingTitle/openingTitle.arc
|
cp ${PATCHIMAGE_PATCH_DIR}/openingTitle_retromix.arc ${WORKDIR}/files/US/Layout/openingTitle/openingTitle.arc
|
||||||
;;
|
;;
|
||||||
|
|
||||||
JPNv* )
|
JPNv* )
|
||||||
@ -74,6 +74,6 @@ place_files () {
|
|||||||
|
|
||||||
dolpatch () {
|
dolpatch () {
|
||||||
|
|
||||||
echo
|
echo -n
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user