mirror of
https://gitlab.com/Nanolx/patchimage.git
synced 2025-04-21 21:51:28 +02:00
Compare commits
No commits in common. "master" and "7.2.2" have entirely different histories.
98
ChangeLog
98
ChangeLog
@ -1,101 +1,3 @@
|
||||
v7.6.0 (----):
|
||||
::game updates:
|
||||
- Pokemon Rising Ruby: support version 2.1
|
||||
- Pokemon Sinking Sapphire: support version 2.1
|
||||
- support Wiimms Mario Kart Fun 2016-10
|
||||
- support Wiimms Mario Kart Fun 2017-05
|
||||
- support Wiimms Mario Kart Fun 2017-12
|
||||
- support Wiimms Mario Kart Fun 2018-03
|
||||
- support Wiimms Mario Kart Fun 2018-06
|
||||
- support Wiimms Mario Kart Fun 2018-09
|
||||
- support Wiimms Mario Kart Fun 2018-12
|
||||
- support Wiimms Mario Kart Fun 2019-03
|
||||
- support Wiimms Mario Kart Fun 2019-06
|
||||
- support Newer Super Luigi Wii: Dark Moon (@lordofpeace)
|
||||
|
||||
::tools updates:
|
||||
- update WIT to 2.40a
|
||||
- update SZS to 1.53a
|
||||
|
||||
::misc. changes:
|
||||
- update title database
|
||||
|
||||
v7.5.0 (20160927):
|
||||
::game additions:
|
||||
- add support for Super Mario Bros. Frozen Editon
|
||||
|
||||
::game updates:
|
||||
- Pokemon Rising Ruby: support version 2.0
|
||||
- Pokemon Sinking Sapphire: support version 2.0
|
||||
|
||||
::misc. changes:
|
||||
- fix ID6 for NSMBW3: The Final Levels in README.GAMEIDS
|
||||
- other minor changes
|
||||
|
||||
v7.4.0 (20160903):
|
||||
::Tokyo Mirage Sessions #FE Restoration Patcher
|
||||
- use 'Restoration' instead of 'Uncensored' as Name
|
||||
- more failsafe build-directory name
|
||||
- add support for downloading xdelta files with --download
|
||||
- check whether files have already been downloaded and use those
|
||||
- for xdelta patches and original cpk files, now check whether every single
|
||||
file exists, rather than just one of them
|
||||
- for cpk file path support both the top level directory of the dump as well
|
||||
as the sub level directory which holds the cpk files, read: when your dump
|
||||
is in /home/test/TMSFE you were previously required to set the cpk path to
|
||||
/home/test/TMSFE/vol/content/Pack now using /home/test/TMSFE will work, too,
|
||||
as the script will look for the sub directory vol/content/Pack on it's own
|
||||
|
||||
::game updates:
|
||||
- update Cliff Super Mario Bros. Wii to version 1.1.1
|
||||
- update Revised Super Mario Bros. Wii to version 1.1
|
||||
- update The Legend of Yoshi to version 2016-08-31
|
||||
|
||||
::misc. changes:
|
||||
- use 'wget -nv' instead of 'wget -q'
|
||||
- except for cover downloader
|
||||
|
||||
v7.3.1.1 (20160829):
|
||||
::bug fixes
|
||||
- fixed brocken nsmb-helper script
|
||||
|
||||
v7.3.1 (20160828):
|
||||
::bug fixes
|
||||
- fixed that --iso, --rom, --patch, --xdelta, --cpk and --riivolution command
|
||||
line flags failed when relative paths were given (regression from 7.2.2)
|
||||
- fixed that temporary files were kept when downloads failed, causing required
|
||||
user-input for wget when trying again
|
||||
- fixed that --cpk and --xdelta command line flags never actually checked wether
|
||||
the given directory does exist, before trying to patch the game [the game
|
||||
patcher does, too, but it should fail immediately upon wrong user-input]
|
||||
- remove build directory before trying to build a game, not afterwards, so that
|
||||
in case a build failed in batch-mode, the next one can be tried without issues
|
||||
- fixed that character mods were not applicable to Cliff Super Mario Bros. Wii
|
||||
|
||||
::misc. changes:
|
||||
- drop support for Awesomer Super Luigi Mini (broken and offline)
|
||||
- update Cliff Super Mario Bros. to version 1.1
|
||||
|
||||
v7.3.0 (20160827):
|
||||
::internal changes:
|
||||
- modularize common.sh
|
||||
- supply megadl (32 and 64 bit)
|
||||
|
||||
::downloader changes:
|
||||
- changed download links to Mediafire so that they can automatically be
|
||||
downloaded using wget, this makes Cliff Super Mario Bros., Ghostly Super
|
||||
Mario Boos Wii, MLG Super Mario Bros. Wii, Pokemon Neo X, Pokemon Neo Y
|
||||
and Pokemon Red Ruby auto-downloadable
|
||||
- changed download links to Sendspace so that they can automatically be
|
||||
downloaded using wget, this makes Challenging Super Mario Bros. Wii:
|
||||
Virtual Special auto-downloadable
|
||||
- include megadl a tool that can download files from Mega using commandline,
|
||||
this makes Pokemon Delta Emerald, Pokemon Rutile Ruby, Pokemon Star Sapphire
|
||||
and Bravely Second Uncensored auto-downloadable
|
||||
|
||||
::misc. changes:
|
||||
- update Cliff Super Mario Bros. to version 1.0.5
|
||||
|
||||
v7.2.2 (20160823):
|
||||
::bug fixes
|
||||
- fix PATCHIMAGE_3DS_DIR setup when no ${HOME}/.patchimage.rc exists
|
||||
|
3
Makefile
3
Makefile
@ -1,5 +1,5 @@
|
||||
all:
|
||||
@echo "nothing to do, use 'make install'"
|
||||
@echo "nothing to do"
|
||||
|
||||
install:
|
||||
mkdir -p $(DESTDIR)/usr/bin/
|
||||
@ -28,4 +28,3 @@ uninstall:
|
||||
fi
|
||||
|
||||
clean:
|
||||
@echo "nothing to"
|
||||
|
3
README
3
README
@ -60,9 +60,6 @@ Example usages:
|
||||
Newer Super Mario Bros. Wii and Cannon Super Mario Bros. in one go:
|
||||
$ patchimage --game="NewerSMB Cannon" --iso=/home/test/SMNP01.iso --download
|
||||
|
||||
All Mods of New Super Mario Bros. Wii:
|
||||
$ patchimage --game=NSMB_ALL --iso=/home/test/SMNP01.iso --download
|
||||
|
||||
License: GNU GPLv3
|
||||
Extra Licenses:
|
||||
> applyppf3 as-is
|
||||
|
@ -14,10 +14,8 @@ b) SMN?01.wbfs
|
||||
|
||||
MRR?01 New Super Mario Bros. Wii Retro Remix
|
||||
SCL?01 Cliff Super Mario Bros. Wii
|
||||
SFR?01 Super Mario Bros. Frozen Editon
|
||||
SFL?01 NSMBW3: The Final Levels
|
||||
SLB?01 MLG Super Luigi Bros. Wii
|
||||
SLF?01 NSMBW3: The Final Levels
|
||||
SMM?02 Super Mario: Mushroom Adventure PLUS - Winter Moon
|
||||
SMN?03 Newer Super Mario Bros. Wii
|
||||
SMN?04 Canon Super Mario Bros. Wii
|
||||
SMN?05 Another Super Mario Bros. Wii
|
||||
@ -26,6 +24,7 @@ SMN?07 Newer Holiday Special
|
||||
SMN?08 Epic Super Bowser World
|
||||
SMN?10 Koopa Country
|
||||
SMN?11 New Super Mario Bros. 4
|
||||
SMN?12 Awesomer Super Luigi Mini
|
||||
SMN?31 New Super Mario Bros. Wii - Other World
|
||||
SMN?41 Devil Mario Winter Special
|
||||
SMN?60 Remixed Super Mario Bros. Wii
|
||||
@ -40,6 +39,7 @@ SMN?YL Luigi's Super Yoshi Bros.
|
||||
SMN?ZA Newer Apocalypse
|
||||
SMN?ZC Challenging Super Mario Bros. Wii: Virtual Special
|
||||
SMN?ZY Super Mario Skyland
|
||||
SMM?02 Super Mario: Mushroom Adventure PLUS - Winter Moon
|
||||
SMV?01 Super Mario Vacation
|
||||
|
||||
### Mario Kart Wii ###
|
||||
@ -81,15 +81,6 @@ RMC?29 Wiimms MKW-Fun 2015-08
|
||||
RMC?30 Wiimms MKW-Fun 2015-12
|
||||
RMC?31 Wiimms MKW-Fun 2016-02
|
||||
RMC?32 Wiimms MKW-Fun 2016-07
|
||||
RMC?33 Wiimms MKW-Fun 2016-10
|
||||
RMC?34 Wiimms MKW-Fun 2017-05
|
||||
RMC?35 Wiimms MKW-Fun 2017-12
|
||||
RMC?36 Wiimms MKW-Fun 2018-03
|
||||
RMC?37 Wiimms MKW-Fun 2018-06
|
||||
RMC?38 Wiimms MKW-Fun 2018-09
|
||||
RMC?39 Wiimms MKW-Fun 2018-12
|
||||
RMC?40 Wiimms MKW-Fun 2019-03
|
||||
RMC?41 Wiimms MKW-Fun 2019-06
|
||||
|
||||
### Kirby's Adventure Wii ###
|
||||
|
||||
|
@ -20,18 +20,9 @@
|
||||
24:Wiimms MKW Retro 2014-02:download.wiimm.de/mkw-fun/mkw-retro-2014-02.v3.7z
|
||||
25:Wiimms MKW-Fun 2014-04:download.wiimm.de/mkw-fun/mkw-fun-2014-04.v4.7z
|
||||
26:Wiimms MKW-Fun 2014-11:download.wiimm.de/mkw-fun/mkw-fun-2014-11.v1.7z
|
||||
27:Wiimms MKW-Fun 2015-03:download.wiimm.de/mkw-fun/mkw-fun-2015-03.v3.7z
|
||||
27:Wiimms MKW-Fun 2015-03:download.wiimm.de/mkw-fun/mkw-fun-2015-03.v2.7z
|
||||
28:Wiimms MKW-Retro 2015-05:download.wiimm.de/mkw-fun/mkw-retro-2015-05.v1.7z
|
||||
29:Wiimms MKW-Fun 2015-08:download.wiimm.de/mkw-fun/mkw-fun-2015-08.v2.7z
|
||||
30:Wiimms MKW-Fun 2015-12:download.wiimm.de/mkw-fun/mkw-fun-2015-12.v2.7z
|
||||
31:Wiimms MKW-Fun 2016-02:download.wiimm.de/mkw-fun/mkw-fun-2016-02.v3.7z
|
||||
32:Wiimms MKW-Fun 2016-07:download.wiimm.de/mkw-fun/mkw-fun-2016-07.v3.7z
|
||||
33:Wiimms MKW-Fun 2016-10:download.wiimm.de/mkw-fun/mkw-fun-2016-10.v2.7z
|
||||
34:Wiimms MKW-Fun 2017-05:download.wiimm.de/mkw-fun/mkw-fun-2017-05.v2.7z
|
||||
35:Wiimms MKW-Fun 2017-12:download.wiimm.de/mkw-fun/mkw-fun-2017-12.v3.7z
|
||||
36:Wiimms MKW-Fun 2018-03:download.wiimm.de/mkw-fun/mkw-fun-2018-03.v2.7z
|
||||
37:Wiimms MKW-Fun 2018-06:download.wiimm.de/mkw-fun/mkw-fun-2018-06.v2.7z
|
||||
38:Wiimms MKW-Fun 2018-09:download.wiimm.de/mkw-fun/mkw-fun-2018-09.v3.7z
|
||||
39:Wiimms MKW-Fun 2018-12:download.wiimm.de/mkw-fun/mkw-fun-2018-12.v1.7z
|
||||
40:Wiimms MKW-Fun 2019-03:download.wiimm.de/mkw-fun/mkw-fun-2019-03.v1.7z
|
||||
41:Wiimms MKW-Fun 2019-06:download.wiimm.de/mkw-fun/mkw-fun-2019-06.v2.7z
|
||||
29:Wiimms MKW-Fun 2015-08:download.wiimm.de/mkw-fun/mkw-fun-2015-08.v1.7z
|
||||
30:Wiimms MKW-Fun 2015-12:download.wiimm.de/mkw-fun/mkw-fun-2015-12.v1.7z
|
||||
31:Wiimms MKW-Fun 2016-02:download.wiimm.de/mkw-fun/mkw-fun-2016-02.v2.7z
|
||||
32:Wiimms MKW-Fun 2016-07:download.wiimm.de/mkw-fun/mkw-fun-2016-07.v1.7z
|
||||
|
@ -1,8 +1,5 @@
|
||||
SCL*01:Cliff Super Mario Bros. Wii
|
||||
SLB*01:MLG Super Luigi Bros. Wii
|
||||
SFR*01:Super Mario Bros. Frozen Editon
|
||||
SLF*01:NSMBW3: The Final Levels
|
||||
SMM*02:Super Mario: Mushroom Adventure PLUS - Winter Moon
|
||||
SMN*01:Original New Super Mario Bros. Wii
|
||||
SMN*03:Newer Super Mario Bros. Wii
|
||||
SMN*04:Canon Super Mario Bros. Wii
|
||||
@ -12,6 +9,7 @@ SMN*07:Newer Holiday Special
|
||||
SMN*08:Epic Super Bowser World
|
||||
SMN*10:Koopa Country
|
||||
SMN*11:New Super Mario Bros. 4
|
||||
SMN*12:Awesomer Super Luigi Mini
|
||||
SMN*31:New Super Mario Bros. Wii - Other World
|
||||
SMN*41:Devil Mario Winter Special
|
||||
SMN*60:Remixed Super Mario Bros. Wii
|
||||
@ -25,7 +23,6 @@ SMN*RV:RVLution Wii (NewSMB Mod)
|
||||
SMN*YL:Luigi's Super Yoshi Bros.
|
||||
SMN*ZA:Newer Apocalypse
|
||||
SMN*ZY:Super Mario Skyland
|
||||
SMM*02:Super Mario: Mushroom Adventure PLUS - Winter Moon
|
||||
SMV*01:Super Mario Vacation
|
||||
MRR*01:New Super Mario Bros. Wii Retro Remix
|
||||
SMN*ZB:Newer Super Luigi Wii - Dark Moon
|
||||
SAD*12:Newer Alpine Dream
|
||||
|
@ -10,7 +10,7 @@ NSMB9:RetroRemix:nsmbw/retroremix.sh
|
||||
NSMB10:WinterMoon:nsmbw/wintermoon.sh
|
||||
NSMB11:NSMBW3:nsmbw/nsmbw3.sh
|
||||
NSMB12:Vacation:nsmbw/summervacation.sh
|
||||
NSMB13:Frozen:nsmbw/frozen.sh
|
||||
NSMB13:ASLM:nsmbw/awesomersuperluigi.sh
|
||||
NSMB14:Sykland:nsmbw/skyland.sh
|
||||
NSMB15:RVLution:nsmbw/rvlution.sh
|
||||
NSMB16:Midi:nsmbw/midissupermariowii.sh
|
||||
@ -27,8 +27,6 @@ NSMB26:RevisedSuperMarioBros:nsmbw/revisedsupermariobroswii.sh
|
||||
NSMB27:MLGSuperLuigi:nsmbw/mlgsuperluigibroswii.sh
|
||||
NSMB28:Cliff:nsmbw/cliffsmb.sh
|
||||
NSMB29:Virtual:nsmbw/virtualspecial.sh
|
||||
NSMB30:NSLDM:nsmbw/luigidarkmoon.sh
|
||||
NSMB31:Alpine:nsmbw/alpinedream.sh
|
||||
NSMB99:NSMBWCharacters:nsmbw/nsmbw_characters.sh
|
||||
MKW1:Wiimmfi:mkwii/wiimmfi.sh
|
||||
MKW2:Wiimmpatch:wiimmfi_generic.sh
|
||||
|
18540
database/titles.db
18540
database/titles.db
File diff suppressed because it is too large
Load Diff
24
debian/changelog
vendored
24
debian/changelog
vendored
@ -1,27 +1,3 @@
|
||||
patchimage (7.5.0-1nano) unstable; urgency=low
|
||||
|
||||
* new upstream stable release
|
||||
|
||||
-- Christopher Roy Bratusek <nano@jpberlin.de> Tue, 27 Sep 2016 18:10:38 +0200
|
||||
|
||||
patchimage (7.4.0-1nano) unstable; urgency=low
|
||||
|
||||
* new upstream stable release
|
||||
|
||||
-- Christopher Roy Bratusek <nano@jpberlin.de> Sat, 03 Sep 2016 11:33:09 +0200
|
||||
|
||||
patchimage (7.3.0-1nano) unstable; urgency=low
|
||||
|
||||
* new upstream stable release
|
||||
|
||||
-- Christopher Roy Bratusek <nano@jpberlin.de> Sat, 27 Aug 2016 11:03:41 +0200
|
||||
|
||||
patchimage (7.2.2-1nano) unstable; urgency=low
|
||||
|
||||
* new upstream bugfix release
|
||||
|
||||
-- Christopher Roy Bratusek <nano@jpberlin.de> Tue, 23 Aug 2016 19:57:31 +0200
|
||||
|
||||
patchimage (7.2.0-1nano) unstable; urgency=low
|
||||
|
||||
* new upstream stable release
|
||||
|
2
debian/source/format
vendored
2
debian/source/format
vendored
@ -1 +1 @@
|
||||
3.0 (quilt)
|
||||
3.0 (git)
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
235
patchimage.sh
235
patchimage.sh
@ -40,23 +40,242 @@ export PATCHIMAGE_COVER_DIR="${basedir}"
|
||||
export PATCHIMAGE_ROM_DIR="${basedir}"
|
||||
export PATCHIMAGE_3DS_DIR="${basedir}"
|
||||
|
||||
MODULES="common downloader helper-3ds helper-mkwii \
|
||||
helper-nsmb helper-wiimmfi messages optparse patcher"
|
||||
for mod in ${MODULES[@]}; do
|
||||
source "${PATCHIMAGE_SCRIPT_DIR}/common/${mod}.sh"
|
||||
done
|
||||
|
||||
source "${PATCHIMAGE_SCRIPT_DIR}/common.sh"
|
||||
source "${PATCHIMAGE_SCRIPT_DIR}/messages.sh"
|
||||
optparse "${@}"
|
||||
|
||||
check_directories
|
||||
setup_tools
|
||||
|
||||
patchimage_riivolution () {
|
||||
|
||||
show_notes
|
||||
rm -rf "${WORKDIR}"
|
||||
if [[ ${PATCHIMAGE_SOUNDTRACK_DOWNLOAD} == TRUE ]]; then
|
||||
echo -e "\n*** A) download_soundtrack"
|
||||
download_soundtrack
|
||||
if [[ ${ONLY_SOUNDTRACK} == TRUE ]]; then
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "\n*** 1) check_input_image"
|
||||
check_input_image
|
||||
echo "*** 2) check_riivolution_patch"
|
||||
check_riivolution_patch
|
||||
|
||||
echo "*** 3) extract game"
|
||||
${WIT} extract "${IMAGE}" "${WORKDIR}" --psel=DATA -q || exit 51
|
||||
|
||||
echo "*** 4) detect_game_version"
|
||||
detect_game_version
|
||||
rm -f "${GAMEID}".wbfs "${CUSTOMID}".wbfs
|
||||
echo "*** 5) place_files"
|
||||
place_files || exit 45
|
||||
|
||||
echo "*** 6) download_banner"
|
||||
download_banner
|
||||
echo "*** 7) apply_banner"
|
||||
apply_banner
|
||||
|
||||
echo "*** 8) dolpatch"
|
||||
dolpatch
|
||||
|
||||
if [[ ${CUSTOMID} ]]; then
|
||||
GAMEID="${CUSTOMID}"
|
||||
fi
|
||||
|
||||
if [[ ${PATCHIMAGE_SHARE_SAVE} == "TRUE" ]]; then
|
||||
TMD_OPTS=""
|
||||
else
|
||||
TMD_OPTS="--tt-id=K"
|
||||
fi
|
||||
|
||||
echo "*** 9) rebuild and store game"
|
||||
"${WIT}" cp -o -q --disc-id="${GAMEID}" "${TMD_OPTS}" --name "${GAMENAME}" \
|
||||
-B "${WORKDIR}" "${PATCHIMAGE_GAME_DIR}"/"${GAMEID}".wbfs || exit 51
|
||||
|
||||
echo "*** 10) remove workdir"
|
||||
rm -rf "${WORKDIR}"
|
||||
|
||||
echo -e "\n >>> ${GAMENAME} saved as: ${PATCHIMAGE_GAME_DIR}/${GAMEID}.wbfs\n"
|
||||
|
||||
if [[ ${PATCHIMAGE_COVER_DOWNLOAD} == TRUE ]]; then
|
||||
echo -e "*** Z) download_covers"
|
||||
download_covers "${GAMEID}"
|
||||
echo -e "\nCovers downloaded to ${PATCHIMAGE_COVER_DIR}"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
patchimage_mkwiimm () {
|
||||
|
||||
show_notes
|
||||
echo -e "\n*** 1) check_input_image"
|
||||
check_input_image
|
||||
echo -e "\n*** 2) download_wiimm"
|
||||
download_wiimm
|
||||
echo -e "\n*** 3) patch_wiimm"
|
||||
patch_wiimm
|
||||
|
||||
}
|
||||
|
||||
patchimage_generic () {
|
||||
|
||||
show_notes
|
||||
echo -e "\n*** 1) check_input_image"
|
||||
check_input_image_special
|
||||
echo -e "\n*** 2) pi_action"
|
||||
pi_action
|
||||
|
||||
}
|
||||
|
||||
patchimage_ips () {
|
||||
show_notes
|
||||
check_input_rom
|
||||
check_riivolution_patch --nofail
|
||||
|
||||
if [[ -f ${PATCH} ]]; then
|
||||
ext="${ROM/*.}"
|
||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||
"${IPS}" a "${PATCH}" "${GAMENAME}.${ext}" || exit 51
|
||||
elif [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${PATCH} ]]; then
|
||||
ext="${ROM/*.}"
|
||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||
"${IPS}" a "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${PATCH}" \
|
||||
"${GAMENAME}.${ext}" || exit 51
|
||||
else
|
||||
echo -e "error: patch (${PATCH}) could not be found"
|
||||
exit 21
|
||||
fi
|
||||
}
|
||||
|
||||
patchimage_bps () {
|
||||
show_notes
|
||||
check_input_rom
|
||||
check_riivolution_patch --nofail
|
||||
|
||||
if [[ -f ${PATCH} ]]; then
|
||||
ext="${ROM/*.}"
|
||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||
"${BPS}" -decode -t "${GAMENAME}.${ext}" "${PATCH}" || exit 51
|
||||
elif [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${PATCH} ]]; then
|
||||
ext="${ROM/*.}"
|
||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||
"${BPS}" -decode -t "${GAMENAME}.${ext}" \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}"/"${PATCH}" || exit 51
|
||||
else
|
||||
echo -e "error: patch (${PATCH}) could not be found"
|
||||
exit 21
|
||||
fi
|
||||
}
|
||||
|
||||
patchimage_ppf () {
|
||||
show_notes
|
||||
check_input_rom
|
||||
check_riivolution_patch --nofail
|
||||
|
||||
if [[ -f ${PATCH} ]]; then
|
||||
ext="${ROM/*.}"
|
||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||
"${PPF}" a "${PATCH}" "${GAMENAME}.${ext}" || exit 51
|
||||
elif [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${PATCH} ]]; then
|
||||
ext="${ROM/*.}"
|
||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||
"${PPF}" a "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${PATCH}" \
|
||||
"${GAMENAME}.${ext}" || exit 51
|
||||
else
|
||||
echo -e "error: patch (${PATCH}) could not be found"
|
||||
exit 21
|
||||
fi
|
||||
}
|
||||
|
||||
patchimage_hans () {
|
||||
|
||||
show_notes
|
||||
echo -e "\n*** 1) check_input_rom"
|
||||
if [[ ${HANS_MULTI_SOURCE} ]]; then
|
||||
check_input_rom_special
|
||||
else check_input_rom
|
||||
fi
|
||||
|
||||
rm -rf romfs/ romfs.bin "${ROMFS}"
|
||||
|
||||
echo "*** 2) check_hans_files"
|
||||
check_hans_files
|
||||
|
||||
echo "*** 3) unpack_3dsrom"
|
||||
unpack_3dsrom "${ROM}" || exit 51
|
||||
|
||||
if [[ ${HANS_DELTA} ]]; then
|
||||
echo "*** 4) apply_delta"
|
||||
|
||||
if [[ -f ${PATCH} ]]; then
|
||||
"${XD3}" -d -f -s romfs.bin \
|
||||
"${PATCH}" "${ROMFS}" || exit 51
|
||||
elif [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${PATCH} ]]; then
|
||||
"${XD3}" -d -f -s romfs.bin \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}"/"${PATCH}" \
|
||||
"${ROMFS}" || exit 51
|
||||
else
|
||||
echo -e "error: patch (${PATCH}) could not be found"
|
||||
exit 21
|
||||
fi
|
||||
|
||||
echo "*** 5) storing game"
|
||||
else
|
||||
echo "*** 4) unpack_3dsromfs"
|
||||
unpack_3dsromfs romfs.bin || exit 51
|
||||
|
||||
echo "*** 5) patch_romfs"
|
||||
patch_romfs
|
||||
|
||||
echo "*** 6) repack_romfs"
|
||||
repack_3dsromfs romfs/ "${ROMFS}" || exit 51
|
||||
|
||||
echo "*** 7) storing game"
|
||||
fi
|
||||
|
||||
mv "${ROMFS}" "${PATCHIMAGE_ROM_DIR}"
|
||||
|
||||
echo "
|
||||
*** succesfully created new romfs as \"${PATCHIMAGE_ROM_DIR}/${ROMFS}\"
|
||||
"
|
||||
|
||||
[[ ${DATA} ]] && echo \
|
||||
" >> for Hans Banners / Launchers, place all files from
|
||||
|
||||
$(readlink -m "${DATA}")
|
||||
|
||||
into the root of your sd card
|
||||
"
|
||||
|
||||
if [[ ${HANS_DELTA} ]]; then
|
||||
echo "*** 6) remove workdir"
|
||||
else echo "*** 8) remove workdir"
|
||||
fi
|
||||
|
||||
rm -rf romfs/ romfs.bin
|
||||
|
||||
}
|
||||
|
||||
patchimage_delta () {
|
||||
|
||||
show_notes
|
||||
echo -e "\n*** 1) menu"
|
||||
menu || exit 9
|
||||
|
||||
echo -e "\n*** 2) patch"
|
||||
patch || exit 51
|
||||
|
||||
}
|
||||
|
||||
[[ ! ${GAME} ]] && ask_game
|
||||
|
||||
for game in ${GAME[@]}; do
|
||||
case ${game} in
|
||||
NSMB_ALL )
|
||||
NEW_GAME=(${NEW_GAME[@]} NSMB{1..31})
|
||||
NEW_GAME=(${NEW_GAME[@]} NSMB{1..12} NSMB{14..29})
|
||||
;;
|
||||
|
||||
PKMN_ALL )
|
||||
@ -103,7 +322,6 @@ for game in ${GAME[@]}; do
|
||||
continue
|
||||
fi
|
||||
|
||||
rm -rf "${BUILD_DIR}"
|
||||
mkdir -p "${BUILD_DIR}"
|
||||
cd "${BUILD_DIR}"
|
||||
|
||||
@ -143,4 +361,5 @@ for game in ${GAME[@]}; do
|
||||
esac
|
||||
|
||||
cd "${CURDIR}"
|
||||
rm -rf "${BUILD_DIR}"
|
||||
done
|
||||
|
@ -47,7 +47,7 @@ check_input_rom_special () {
|
||||
EUR )
|
||||
echo ">> found EUR game version"
|
||||
ROMFS="0017BB00.romfs"
|
||||
DOWNLOAD_LINK="https://mega.nz/#!N0QEHLRB!g_Wy5dngt4xgVXtk1BhQaqSSRj0phjP6xMp776OSEo8"
|
||||
DOWNLOAD_LINK="mega:///#!N0QEHLRB!g_Wy5dngt4xgVXtk1BhQaqSSRj0phjP6xMp776OSEo8"
|
||||
RIIVOLUTION_ZIP="Bravely_Second_Uncensored_EUR_MINI_Asia81.rar"
|
||||
RIIVOLUTION_DIR="Bravely_Second_Uncensored_EUR_MINI_Asia81/ExtractedRomFS"
|
||||
;;
|
||||
@ -55,7 +55,7 @@ check_input_rom_special () {
|
||||
USA )
|
||||
echo ">> found USA game version"
|
||||
ROMFS="0017BA00.romfs"
|
||||
DOWNLOAD_LINK="https://mega.nz/#!9sx1QKRQ!A6qzCkvY9HmPGu4VIy1TiikTRgbE-vUho99LOYWxA84"
|
||||
DOWNLOAD_LINK="mega:///#!9sx1QKRQ!A6qzCkvY9HmPGu4VIy1TiikTRgbE-vUho99LOYWxA84"
|
||||
RIIVOLUTION_ZIP="Bravely_Second_Uncensored_USA_MINI_Asia81.rar"
|
||||
RIIVOLUTION_DIR="Bravely_Second_Uncensored_USA_MINI_Asia81/ExtractedRomFS"
|
||||
;;
|
||||
|
702
scripts/common.sh
Normal file
702
scripts/common.sh
Normal file
@ -0,0 +1,702 @@
|
||||
#!/bin/bash
|
||||
|
||||
PATCHIMAGE_VERSION=7.2.2
|
||||
PATCHIMAGE_RELEASE=2016/08/23
|
||||
|
||||
[[ -e ${HOME}/.patchimage.rc ]] && source "${HOME}"/.patchimage.rc
|
||||
|
||||
setup_tools () {
|
||||
|
||||
if [[ $(uname -m) == "x86_64" ]]; then
|
||||
SUFFIX=64
|
||||
else SUFFIX=32
|
||||
fi
|
||||
|
||||
export WIT="${PATCHIMAGE_TOOLS_DIR}"/wit."${SUFFIX}"
|
||||
export PPF="${PATCHIMAGE_TOOLS_DIR}"/applyppf3."${SUFFIX}"
|
||||
export IPS="${PATCHIMAGE_TOOLS_DIR}"/uips."${SUFFIX}"
|
||||
export UNP="${PATCHIMAGE_TOOLS_DIR}"/unp
|
||||
export SZS="${PATCHIMAGE_TOOLS_DIR}"/wszst."${SUFFIX}"
|
||||
export XD3="${PATCHIMAGE_TOOLS_DIR}"/xdelta3."${SUFFIX}"
|
||||
export GDOWN="${PATCHIMAGE_TOOLS_DIR}"/gdown.pl
|
||||
export CTRTOOL="${PATCHIMAGE_TOOLS_DIR}"/ctrtool."${SUFFIX}"
|
||||
export FDSTOOL="${PATCHIMAGE_TOOLS_DIR}"/3dstool."${SUFFIX}"
|
||||
|
||||
}
|
||||
|
||||
ask_game () {
|
||||
|
||||
echo "${SUPPORTED_GAMES_ALL}
|
||||
|
||||
Enter ID or Short Name for the Game you want to build (multiple separated by space):
|
||||
"
|
||||
|
||||
read -er GAME
|
||||
|
||||
}
|
||||
|
||||
download_soundtrack () {
|
||||
|
||||
if [[ ${SOUNDTRACK_LINK} && ! -f ${PATCHIMAGE_AUDIO_DIR}/${SOUNDTRACK_ZIP} ]]; then
|
||||
wget -q --no-check-certificate "${SOUNDTRACK_LINK}" \
|
||||
-O "${PATCHIMAGE_AUDIO_DIR}"/"${SOUNDTRACK_ZIP}" || exit 57
|
||||
echo -e "\n >>> soundtrack saved to\n >>> ${PATCHIMAGE_AUDIO_DIR}/${SOUNDTRACK_ZIP}"
|
||||
else
|
||||
echo -e "no soundtrack for ${GAMENAME} available."
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
download_banner () {
|
||||
|
||||
if [[ ${PATCHIMAGE_BANNER_DOWNLOAD} == "TRUE" ]]; then
|
||||
if [[ ${CUSTOM_BANNER} ]]; then
|
||||
if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr ]]; then
|
||||
wget -q --no-check-certificate "${CUSTOM_BANNER}" \
|
||||
-O "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr__tmp || \
|
||||
rm -f "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr__tmp
|
||||
fi
|
||||
|
||||
if [[ -f "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr__tmp ]]; then
|
||||
mv "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr__tmp \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr
|
||||
BANNER="${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr
|
||||
else echo "*** >> could not download custom banner"
|
||||
fi
|
||||
else
|
||||
echo "*** >> no custom banner available"
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
nsmbw_version () {
|
||||
|
||||
if [[ -f ${WORKDIR}/files/COPYDATE_LAST_2009-10-03_232911 ]]; then
|
||||
VERSION=EURv1
|
||||
export REG_LETTER=P
|
||||
elif [[ -f ${WORKDIR}/files/COPYDATE_LAST_2010-01-05_152101 ]]; then
|
||||
VERSION=EURv2
|
||||
export REG_LETTER=P
|
||||
elif [[ -f ${WORKDIR}/files/COPYDATE_LAST_2009-10-03_232303 ]]; then
|
||||
VERSION=USAv1
|
||||
export REG_LETTER=E
|
||||
elif [[ -f ${WORKDIR}/files/COPYDATE_LAST_2010-01-05_143554 ]]; then
|
||||
VERSION=USAv2
|
||||
export REG_LETTER=E
|
||||
elif [[ -f ${WORKDIR}/files/COPYDATE_LAST_2009-10-03_231655 ]]; then
|
||||
VERSION=JPNv1
|
||||
export REG_LETTER=J
|
||||
elif [[ ! ${VERSION} ]]; then
|
||||
echo -e "please specify your games version using --version={EURv1,EURv2,USAv1,USAv2,JPNv1}"
|
||||
exit 27
|
||||
fi
|
||||
echo "*** >> status: ${VERSION}"
|
||||
}
|
||||
|
||||
apply_banner () {
|
||||
|
||||
if [[ ${BANNER} != "" ]]; then
|
||||
if [[ -e ${BANNER} ]]; then
|
||||
cp "${BANNER}" "${BANNER_LOCATION}"
|
||||
else
|
||||
echo "specified banner ${BANNER} does not exist, not modifying"
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
check_directories () {
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_RIIVOLUTION_DIR} && -w $(dirname "${PATCHIMAGE_RIIVOLUTION_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_RIIVOLUTION_DIR}" || PATCHIMAGE_RIIVOLUTION_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w ${PATCHIMAGE_RIIVOLUTION_DIR} ]] && PATCHIMAGE_RIIVOLUTION_DIR="${HOME}"
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_WBFS_DIR} && -w $(dirname "${PATCHIMAGE_WBFS_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_WBFS_DIR}" || PATCHIMAGE_WBFS_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w "${PATCHIMAGE_WBFS_DIR}" ]] && PATCHIMAGE_WBFS_DIR="${HOME}"
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_GAME_DIR} && -w $(dirname "${PATCHIMAGE_GAME_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_GAME_DIR}" || PATCHIMAGE_GAME_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w ${PATCHIMAGE_GAME_DIR} ]] && PATCHIMAGE_GAME_DIR="${HOME}"
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_3DS_DIR} && -w $(dirname "${PATCHIMAGE_3DS_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_3DS_DIR}" || PATCHIMAGE_3DS_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w ${PATCHIMAGE_3DS_DIR} ]] && PATCHIMAGE_3DS_DIR="${HOME}"
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_ROM_DIR} && -w $(dirname "${PATCHIMAGE_ROM_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_ROM_DIR}" || PATCHIMAGE_ROM_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w ${PATCHIMAGE_ROM_DIR} ]] && PATCHIMAGE_ROM_DIR="${HOME}"
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_AUDIO_DIR} && -w $(dirname "${PATCHIMAGE_AUDIO_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_AUDIO_DIR}" || PATCHIMAGE_AUDIO_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w ${PATCHIMAGE_AUDIO_DIR} ]] && PATCHIMAGE_AUDIO_DIR="${HOME}"
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_COVER_DIR} && -w $(dirname "${PATCHIMAGE_COVER_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_COVER_DIR}" || PATCHIMAGE_COVER_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w ${PATCHIMAGE_COVER_DIR} ]] && PATCHIMAGE_COVER_DIR="${HOME}"
|
||||
|
||||
}
|
||||
|
||||
|
||||
check_input_image () {
|
||||
|
||||
x=0
|
||||
if [[ ! ${IMAGE} ]]; then
|
||||
WBFS0=$(find . -maxdepth 1 -name "${WBFS_MASK}".wbfs)
|
||||
WBFS1=$(find "${PATCHIMAGE_WBFS_DIR}" -name "${WBFS_MASK}".wbfs)
|
||||
ISO0=$(find . -maxdepth 1 -name "${WBFS_MASK}".iso)
|
||||
ISO1=$(find "${PATCHIMAGE_WBFS_DIR}" -name "${WBFS_MASK}".iso)
|
||||
|
||||
if [[ -f ${WBFS0} ]]; then
|
||||
x=1
|
||||
IMAGE=${WBFS0}
|
||||
elif [[ -f ${ISO0} ]]; then
|
||||
x=2
|
||||
IMAGE=${ISO0}
|
||||
elif [[ -f ${WBFS1} ]]; then
|
||||
x=3
|
||||
IMAGE=${WBFS1}
|
||||
elif [[ -f ${ISO1} ]]; then
|
||||
x=4
|
||||
IMAGE=${ISO1}
|
||||
else
|
||||
echo -e "please specify image to use with --iso=<path>"
|
||||
exit 15
|
||||
fi
|
||||
fi
|
||||
echo "*** >> status: ${x}"
|
||||
|
||||
IMAGE=$(readlink -m "${IMAGE}")
|
||||
|
||||
}
|
||||
|
||||
check_input_rom () {
|
||||
|
||||
x=5
|
||||
if [[ ! ${ROM} ]]; then
|
||||
ROM0=$(find . -maxdepth 1 -name "${ROM_MASK}")
|
||||
ROM1=$(find "${PATCHIMAGE_3DS_DIR}" -name "${ROM_MASK}")
|
||||
|
||||
if [[ -f ${ROM0} ]]; then
|
||||
x=6
|
||||
ROM=${ROM0}
|
||||
elif [[ -f ${ROM1} ]]; then
|
||||
x=7
|
||||
ROM=${ROM1}
|
||||
else
|
||||
if [[ ! ${HANS_MULTI_SOURCE} ]]; then
|
||||
echo -e "error: could not find suitable ROM, specify using --rom"
|
||||
exit 15
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
echo "*** >> status: ${x}"
|
||||
|
||||
ROM=$(readlink -m "${ROM}")
|
||||
}
|
||||
|
||||
show_nsmb_db () {
|
||||
|
||||
ID1=${1:0:3}
|
||||
ID2=${1:4:2}
|
||||
gawk -F : "/^${ID1}\*${ID2}/"'{print $2}' \
|
||||
< "${PATCHIMAGE_DATABASE_DIR}"/nsmbw.db || echo "** Unknown **"
|
||||
|
||||
}
|
||||
|
||||
show_mkwiimm_db () {
|
||||
|
||||
ID=${1:4:2}
|
||||
[[ ${ID} == [0-9][0-9] ]] && \
|
||||
gawk -F : "/^${ID}/"'{print $2}' \
|
||||
< "${PATCHIMAGE_DATABASE_DIR}"/mkwiimm.db \
|
||||
|| echo "** Unknown **"
|
||||
|
||||
}
|
||||
|
||||
ask_input_image_mkwiimm () {
|
||||
|
||||
echo "Choose Mario Kart Wii Image to modify
|
||||
|
||||
ALL patch all images"
|
||||
|
||||
for image in "${PWD}"/RMC???.{iso,wbfs} "${PATCHIMAGE_WBFS_DIR}"/RMC???.{iso,wbfs}; do
|
||||
[[ -f ${image} ]] && echo " ${image##*/} $(show_mkwiimm_db "${image##*/}")"
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
}
|
||||
|
||||
ask_input_image_nsmb () {
|
||||
|
||||
echo "Choose New Super Mario Bros. Wii Image to modify
|
||||
|
||||
ALL patch all images"
|
||||
|
||||
for image in "${PWD}"/SMN???.{iso,wbfs} \
|
||||
"${PWD}"/SLF???.{iso,wbfs} \
|
||||
"${PWD}"/SLB???.{iso,wbfs} \
|
||||
"${PWD}"/SMM???.{iso,wbfs} \
|
||||
"${PWD}"/SMV???.{iso,wbfs} \
|
||||
"${PWD}"/MRR???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/SMN???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/SLF???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/SLB???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/SMM???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/SMV???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/MRR???.{iso,wbfs}; do
|
||||
[[ -f ${image} ]] && echo " ${image##*/} $(show_nsmb_db "${image##*/}")"
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
}
|
||||
|
||||
show_titles_db () {
|
||||
|
||||
ID=${1/.*}
|
||||
gawk -F : "/^${ID}/"'{print $2}' \
|
||||
< "${PATCHIMAGE_DATABASE_DIR}"/titles.db \
|
||||
|| echo "** Unknown **"
|
||||
|
||||
}
|
||||
|
||||
check_wfc () {
|
||||
|
||||
ID=${1/.*}
|
||||
if grep -q "${ID}" "${PATCHIMAGE_DATABASE_DIR}"/wfc.db; then
|
||||
echo TRUE
|
||||
else
|
||||
echo FALSE
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
ask_input_image_wiimmfi () {
|
||||
|
||||
echo "Choose Wii Game Image to wiimmfi"
|
||||
|
||||
for image in "${PWD}"/*.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/*.{iso,wbfs}; do
|
||||
if [[ -e ${image} && ! ${image} == "*/RMC*" && $(check_wfc "${image##*/}") == TRUE ]]; then
|
||||
echo " ${image##*/} $(show_titles_db "${image##*/}")"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
}
|
||||
|
||||
unpack () {
|
||||
|
||||
if [[ ${UNP_EXTRA_ARGS} ]]; then
|
||||
${UNP} "${1}" -- ${UNP_EXTRA_ARGS} >/dev/null || exit 63
|
||||
else ${UNP} "${1}" >/dev/null || exit 63
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
download_riivolution_patch () {
|
||||
|
||||
x=4
|
||||
case ${DOWNLOAD_LINK} in
|
||||
*docs.google* | *drive.google* )
|
||||
x=5
|
||||
echo "*** >> downloading"
|
||||
${GDOWN} "${DOWNLOAD_LINK}" \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp >/dev/null || \
|
||||
( echo -e "\nDownload failed!" && exit 57 )
|
||||
mv "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
echo "*** >> unpacking"
|
||||
unpack "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
;;
|
||||
|
||||
*mega.nz* )
|
||||
x=6
|
||||
echo "can not download from Mega, download manually from:
|
||||
|
||||
${DOWNLOAD_LINK}
|
||||
"
|
||||
exit 21
|
||||
;;
|
||||
|
||||
*mediafire* )
|
||||
x=6
|
||||
echo "can not download from Mediafire, download manually from:
|
||||
|
||||
${DOWNLOAD_LINK}
|
||||
"
|
||||
exit 21
|
||||
;;
|
||||
|
||||
*sendspace* )
|
||||
x=6
|
||||
echo "can not download from SendSpace, download manually from:
|
||||
|
||||
${DOWNLOAD_LINK}
|
||||
"
|
||||
exit 21
|
||||
;;
|
||||
|
||||
*romhacking* )
|
||||
x=6
|
||||
echo "can not download from Romhacking, download manually from:
|
||||
|
||||
${DOWNLOAD_LINK}
|
||||
"
|
||||
|
||||
exit 21
|
||||
;;
|
||||
|
||||
"" )
|
||||
echo "no download link for ${GAMENAME} available."
|
||||
exit 21
|
||||
;;
|
||||
|
||||
* )
|
||||
x=5
|
||||
echo "*** >> downloading"
|
||||
wget -q --no-check-certificate "${DOWNLOAD_LINK}" \
|
||||
-O "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp || \
|
||||
( echo -e "\nDownload failed!" && exit 57 )
|
||||
mv "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
echo "*** >> unpacking"
|
||||
unpack "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
;;
|
||||
esac
|
||||
|
||||
}
|
||||
|
||||
check_riivolution_patch () {
|
||||
|
||||
x=0
|
||||
if [[ ! -d ${RIIVOLUTION_DIR} ]]; then
|
||||
x=1
|
||||
if [[ -f "${PWD}/${RIIVOLUTION_ZIP}" ]]; then
|
||||
echo "*** >> unpacking"
|
||||
x=2
|
||||
unpack "${PWD}/${RIIVOLUTION_ZIP}"
|
||||
elif [[ -f "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}" ]]; then
|
||||
echo "*** >> unpacking"
|
||||
x=3
|
||||
unpack "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
elif [[ ${PATCHIMAGE_RIIVOLUTION_DOWNLOAD} == "TRUE" ]]; then
|
||||
download_riivolution_patch
|
||||
else
|
||||
if [[ ${1} == --nofail ]]; then
|
||||
echo -e "no zip archive found. Skipping to bare patch file detection"
|
||||
else
|
||||
echo -e "please specify zip/rar to use with --riivolution=<path>"
|
||||
exit 21
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
echo "*** >> status: ${x}"
|
||||
|
||||
}
|
||||
|
||||
download_covers () {
|
||||
|
||||
alt=$(echo "${1}" | sed s/./E/4)
|
||||
|
||||
for path in cover cover3D coverfull disc disccustom; do
|
||||
if [[ ! -f "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png ]]; then
|
||||
wget -q -O "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png \
|
||||
http://art.gametdb.com/wii/"${path}"/EN/"${1}".png \
|
||||
|| rm "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png
|
||||
|
||||
if [[ ! -f "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png ]]; then
|
||||
wget -q -O "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png \
|
||||
http://art.gametdb.com/wii/"${path}"/US/"${alt}".png \
|
||||
|| rm "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png
|
||||
fi
|
||||
|
||||
[[ ! -f "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png ]] && \
|
||||
echo "Cover (${path}) does not exist for gameid ${1}."
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
unpack_3dsrom () {
|
||||
|
||||
${CTRTOOL} -p --romfs=romfs.bin "${1}" &>/dev/null
|
||||
|
||||
}
|
||||
|
||||
unpack_3dsromfs () {
|
||||
|
||||
${CTRTOOL} -t romfs --romfsdir=romfs "${1}" &>/dev/null
|
||||
|
||||
}
|
||||
|
||||
repack_3dsromfs () {
|
||||
|
||||
${FDSTOOL} -ctf romfs "${2}" --romfs-dir "${1}" &>/dev/null
|
||||
|
||||
}
|
||||
|
||||
optparse () {
|
||||
|
||||
xcount=0
|
||||
pcount=$#
|
||||
|
||||
while [[ $xcount -lt $pcount ]]; do
|
||||
case ${1} in
|
||||
|
||||
--iso=* )
|
||||
ISO_PATH="${1/*=}"
|
||||
|
||||
if [[ -f "${ISO_PATH}" ]]; then
|
||||
IMAGE="${ISO_PATH}"
|
||||
else
|
||||
echo -e "ISO not found"
|
||||
exit 15
|
||||
fi
|
||||
;;
|
||||
|
||||
--rom=* )
|
||||
ROM_PATH="${1/*=}"
|
||||
|
||||
if [[ -f "${ROM_PATH}" ]]; then
|
||||
ROM="${ROM_PATH}"
|
||||
else
|
||||
echo -e "ROM not found"
|
||||
exit 15
|
||||
fi
|
||||
;;
|
||||
|
||||
--riivolution=* )
|
||||
RIIVOLUTION="${1/*=}"
|
||||
if [[ -f "${RIIVOLUTION}" ]]; then
|
||||
"${UNP}" "${RIIVOLUTION}" >/dev/null
|
||||
else
|
||||
echo -e "Riivolution patch ${RIIVOLUTION} not found."
|
||||
exit 21
|
||||
fi
|
||||
;;
|
||||
|
||||
--patch=* )
|
||||
PATCH="${1/*=}"
|
||||
if [[ -f "${PATCH}" ]]; then
|
||||
PATCH="${PATCH}"
|
||||
else
|
||||
echo -e "IPS/PPF patch ${PATCH} not found."
|
||||
exit 21
|
||||
fi
|
||||
;;
|
||||
|
||||
--customid=* )
|
||||
CUSTOMID=${1/*=}
|
||||
if [[ ${#CUSTOMID} != 6 ]]; then
|
||||
echo -e "CustomID ${CUSTOMID} needs to have 6 digits"
|
||||
exit 39
|
||||
fi
|
||||
;;
|
||||
|
||||
--download )
|
||||
export PATCHIMAGE_RIIVOLUTION_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--show-download )
|
||||
export PATCHIMAGE_SHOW_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--soundtrack )
|
||||
export PATCHIMAGE_SOUNDTRACK_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--only-soundtrack )
|
||||
export PATCHIMAGE_SOUNDTRACK_DOWNLOAD=TRUE
|
||||
export ONLY_SOUNDTRACK=TRUE
|
||||
;;
|
||||
|
||||
--override-szs )
|
||||
export MKWIIMM_OVERRIDE_SZS=TRUE
|
||||
;;
|
||||
|
||||
--version=* )
|
||||
VERSION="${1/*=}"
|
||||
case ${VERSION} in
|
||||
EURv1 )
|
||||
export REG_LETTER=P
|
||||
;;
|
||||
|
||||
EURv2 )
|
||||
export REG_LETTER=P
|
||||
;;
|
||||
|
||||
USAv1 )
|
||||
export REG_LETTER=E
|
||||
;;
|
||||
|
||||
USAv2 )
|
||||
export REG_LETTER=E
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
export REG_LETTER=J
|
||||
;;
|
||||
|
||||
* )
|
||||
echo -e "unrecognized game version: ${VERSION}"
|
||||
exit 27
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
--sharesave )
|
||||
export PATCHIMAGE_SHARE_SAVE=TRUE
|
||||
;;
|
||||
|
||||
--game=* )
|
||||
export GAME="${1/*=}"
|
||||
;;
|
||||
|
||||
--list-games )
|
||||
echo "${SUPPORTED_GAMES_ALL}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-nsmb )
|
||||
echo "${SUPPORTED_GAMES_NSMB}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-mkwiimmfi )
|
||||
echo "${SUPPORTED_GAMES_MKWIIMMFI}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-tokyo )
|
||||
echo "${SUPPORTED_GAMES_TOKYOMIRAGESESSIONSFE}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-kirby )
|
||||
echo "${SUPPORTED_GAMES_KIRBY}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-pokemon )
|
||||
echo "${SUPPORTED_GAMES_POKEMON}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-3ds )
|
||||
echo "${SUPPORTED_GAMES_3DS}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-other )
|
||||
echo "${SUPPORTED_GAMES_OTHER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements )
|
||||
echo "${REQUIREMENTS_ALL}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-nsmb )
|
||||
echo "${REQUIREMENTS_NSMB}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-mkwiimmfi )
|
||||
echo "${REQUIREMENTS_MKWIIMMFI}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-tokyo )
|
||||
echo "${REQUIREMENTS_TOKYOMIRAGESESSIONSFE}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-kirby )
|
||||
echo "${REQUIREMENTS_KIRBY}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-pokemon )
|
||||
echo "${REQUIREMENTS_POKEMON}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-3ds )
|
||||
echo "${REQUIREMENTS_3DS}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-other )
|
||||
echo "${REQUIREMENTS_OTHER}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--covers )
|
||||
export PATCHIMAGE_COVER_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--only-covers=* )
|
||||
export PATCHIMAGE_COVER_DOWNLOAD=TRUE
|
||||
download_covers "${1/*=}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--banner=* )
|
||||
BANNER="${1/*=}"
|
||||
BANNER_EXT="${BANNER//*./}"
|
||||
if [[ ${BANNER_EXT} != "bnr" ]]; then
|
||||
echo "given banner (${BANNER}) is not a .bnr file!"
|
||||
exit 33
|
||||
fi
|
||||
;;
|
||||
|
||||
--download-banner )
|
||||
export PATCHIMAGE_BANNER_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--xdelta=* )
|
||||
export XDELTA_PATH="${1/*=}"
|
||||
;;
|
||||
|
||||
--cpk=* )
|
||||
export CPK_PATH="${1/*=}"
|
||||
;;
|
||||
|
||||
--help | -h )
|
||||
echo "${PATCHIMAGE_HELP}"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
xcount=$((xcount+1))
|
||||
done
|
||||
|
||||
}
|
@ -1,182 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
PATCHIMAGE_VERSION=7.6.0
|
||||
PATCHIMAGE_RELEASE=2017/01/XX+
|
||||
|
||||
[[ -f ${HOME}/.patchimage.rc ]] && source "${HOME}"/.patchimage.rc
|
||||
|
||||
setup_tools () {
|
||||
|
||||
if [[ $(uname -m) == "x86_64" ]]; then
|
||||
SUFFIX=64
|
||||
else SUFFIX=32
|
||||
fi
|
||||
|
||||
export WIT="${PATCHIMAGE_TOOLS_DIR}"/wit."${SUFFIX}"
|
||||
export PPF="${PATCHIMAGE_TOOLS_DIR}"/applyppf3."${SUFFIX}"
|
||||
export IPS="${PATCHIMAGE_TOOLS_DIR}"/uips."${SUFFIX}"
|
||||
export UNP="${PATCHIMAGE_TOOLS_DIR}"/unp
|
||||
export SZS="${PATCHIMAGE_TOOLS_DIR}"/wszst."${SUFFIX}"
|
||||
export XD3="${PATCHIMAGE_TOOLS_DIR}"/xdelta3."${SUFFIX}"
|
||||
export GDOWN="${PATCHIMAGE_TOOLS_DIR}"/gdown.pl
|
||||
export CTRTOOL="${PATCHIMAGE_TOOLS_DIR}"/ctrtool."${SUFFIX}"
|
||||
export FDSTOOL="${PATCHIMAGE_TOOLS_DIR}"/3dstool."${SUFFIX}"
|
||||
export MEGADL="${PATCHIMAGE_TOOLS_DIR}"/megadl."${SUFFIX}"
|
||||
|
||||
}
|
||||
|
||||
ask_game () {
|
||||
|
||||
echo "${SUPPORTED_GAMES_ALL}
|
||||
|
||||
Enter ID or Short Name for the Game you want to build (multiple separated by space):
|
||||
"
|
||||
|
||||
read -er GAME
|
||||
|
||||
}
|
||||
|
||||
check_directories () {
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_RIIVOLUTION_DIR} && -w $(dirname "${PATCHIMAGE_RIIVOLUTION_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_RIIVOLUTION_DIR}" || PATCHIMAGE_RIIVOLUTION_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w ${PATCHIMAGE_RIIVOLUTION_DIR} ]] && PATCHIMAGE_RIIVOLUTION_DIR="${HOME}"
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_WBFS_DIR} && -w $(dirname "${PATCHIMAGE_WBFS_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_WBFS_DIR}" || PATCHIMAGE_WBFS_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w "${PATCHIMAGE_WBFS_DIR}" ]] && PATCHIMAGE_WBFS_DIR="${HOME}"
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_GAME_DIR} && -w $(dirname "${PATCHIMAGE_GAME_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_GAME_DIR}" || PATCHIMAGE_GAME_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w ${PATCHIMAGE_GAME_DIR} ]] && PATCHIMAGE_GAME_DIR="${HOME}"
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_3DS_DIR} && -w $(dirname "${PATCHIMAGE_3DS_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_3DS_DIR}" || PATCHIMAGE_3DS_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w ${PATCHIMAGE_3DS_DIR} ]] && PATCHIMAGE_3DS_DIR="${HOME}"
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_ROM_DIR} && -w $(dirname "${PATCHIMAGE_ROM_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_ROM_DIR}" || PATCHIMAGE_ROM_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w ${PATCHIMAGE_ROM_DIR} ]] && PATCHIMAGE_ROM_DIR="${HOME}"
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_AUDIO_DIR} && -w $(dirname "${PATCHIMAGE_AUDIO_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_AUDIO_DIR}" || PATCHIMAGE_AUDIO_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w ${PATCHIMAGE_AUDIO_DIR} ]] && PATCHIMAGE_AUDIO_DIR="${HOME}"
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_COVER_DIR} && -w $(dirname "${PATCHIMAGE_COVER_DIR}") ]]; then
|
||||
mkdir -p "${PATCHIMAGE_COVER_DIR}" || PATCHIMAGE_COVER_DIR="${HOME}"
|
||||
fi
|
||||
|
||||
[[ ! -w ${PATCHIMAGE_COVER_DIR} ]] && PATCHIMAGE_COVER_DIR="${HOME}"
|
||||
|
||||
}
|
||||
|
||||
|
||||
check_input_image () {
|
||||
|
||||
x=0
|
||||
if [[ ! ${IMAGE} ]]; then
|
||||
WBFS0=$(find . -maxdepth 1 -name "${WBFS_MASK}".wbfs)
|
||||
WBFS1=$(find "${PATCHIMAGE_WBFS_DIR}" -name "${WBFS_MASK}".wbfs)
|
||||
ISO0=$(find . -maxdepth 1 -name "${WBFS_MASK}".iso)
|
||||
ISO1=$(find "${PATCHIMAGE_WBFS_DIR}" -name "${WBFS_MASK}".iso)
|
||||
|
||||
if [[ -f ${WBFS0} ]]; then
|
||||
x=1
|
||||
IMAGE=${WBFS0}
|
||||
elif [[ -f ${ISO0} ]]; then
|
||||
x=2
|
||||
IMAGE=${ISO0}
|
||||
elif [[ -f ${WBFS1} ]]; then
|
||||
x=3
|
||||
IMAGE=${WBFS1}
|
||||
elif [[ -f ${ISO1} ]]; then
|
||||
x=4
|
||||
IMAGE=${ISO1}
|
||||
else
|
||||
echo -e "please specify image to use with --iso=<path>"
|
||||
exit 15
|
||||
fi
|
||||
fi
|
||||
echo "*** >> status: ${x}"
|
||||
|
||||
IMAGE=$(readlink -m "${IMAGE}")
|
||||
|
||||
}
|
||||
|
||||
check_input_rom () {
|
||||
|
||||
x=5
|
||||
if [[ ! ${ROM} ]]; then
|
||||
ROM0=$(find . -maxdepth 1 -name "${ROM_MASK}")
|
||||
ROM1=$(find "${PATCHIMAGE_3DS_DIR}" -name "${ROM_MASK}")
|
||||
|
||||
if [[ -f ${ROM0} ]]; then
|
||||
x=6
|
||||
ROM=${ROM0}
|
||||
elif [[ -f ${ROM1} ]]; then
|
||||
x=7
|
||||
ROM=${ROM1}
|
||||
else
|
||||
if [[ ! ${HANS_MULTI_SOURCE} ]]; then
|
||||
echo -e "error: could not find suitable ROM, specify using --rom"
|
||||
exit 15
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
echo "*** >> status: ${x}"
|
||||
|
||||
ROM=$(readlink -m "${ROM}")
|
||||
}
|
||||
|
||||
unpack () {
|
||||
|
||||
if [[ ${UNP_EXTRA_ARGS} ]]; then
|
||||
${UNP} "${1}" -- ${UNP_EXTRA_ARGS} >/dev/null || exit 63
|
||||
else ${UNP} "${1}" >/dev/null || exit 63
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
check_riivolution_patch () {
|
||||
|
||||
x=0
|
||||
if [[ ! -d ${RIIVOLUTION_DIR} ]]; then
|
||||
x=1
|
||||
if [[ -f "${RIIVOLUTION_ZIP_CUSTOM}" ]]; then
|
||||
echo "*** >> unpacking"
|
||||
x=2
|
||||
unpack "${RIIVOLUTION_ZIP_CUSTOM}"
|
||||
elif [[ -f "${PWD}/${RIIVOLUTION_ZIP}" ]]; then
|
||||
echo "*** >> unpacking"
|
||||
x=2
|
||||
unpack "${PWD}/${RIIVOLUTION_ZIP}"
|
||||
elif [[ -f "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}" ]]; then
|
||||
echo "*** >> unpacking"
|
||||
x=3
|
||||
unpack "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
elif [[ ${PATCHIMAGE_RIIVOLUTION_DOWNLOAD} == "TRUE" ]]; then
|
||||
download_riivolution_patch
|
||||
else
|
||||
if [[ ${1} == --nofail ]]; then
|
||||
echo -e "no zip archive found. Skipping to bare patch file detection"
|
||||
else
|
||||
echo -e "please specify zip/rar to use with --riivolution=<path>"
|
||||
exit 21
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
echo "*** >> status: ${x}"
|
||||
|
||||
}
|
@ -1,133 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
download_soundtrack () {
|
||||
|
||||
if [[ ${SOUNDTRACK_LINK} && ! -f ${PATCHIMAGE_AUDIO_DIR}/${SOUNDTRACK_ZIP} ]]; then
|
||||
wget -nv --no-check-certificate "${SOUNDTRACK_LINK}" \
|
||||
-O "${PATCHIMAGE_AUDIO_DIR}"/"${SOUNDTRACK_ZIP}" || \
|
||||
( rm "${PATCHIMAGE_AUDIO_DIR}"/"${SOUNDTRACK_ZIP}" && \
|
||||
echo "downloading soundtrack failed." && exit 57 )
|
||||
echo -e "\n >>> soundtrack saved to\n >>> ${PATCHIMAGE_AUDIO_DIR}/${SOUNDTRACK_ZIP}"
|
||||
else
|
||||
echo -e "no soundtrack for ${GAMENAME} available."
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
download_banner () {
|
||||
|
||||
if [[ ${PATCHIMAGE_BANNER_DOWNLOAD} == "TRUE" ]]; then
|
||||
if [[ ${CUSTOM_BANNER} ]]; then
|
||||
if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr ]]; then
|
||||
wget -nv --no-check-certificate "${CUSTOM_BANNER}" \
|
||||
-O "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr__tmp || \
|
||||
rm -f "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr__tmp
|
||||
fi
|
||||
|
||||
if [[ -f "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr__tmp ]]; then
|
||||
mv "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr__tmp \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr
|
||||
BANNER="${PATCHIMAGE_RIIVOLUTION_DIR}"/"${GAMEID}"-custom-banner.bnr
|
||||
else echo "*** >> could not download custom banner"
|
||||
fi
|
||||
else
|
||||
echo "*** >> no custom banner available"
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
download_riivolution_patch () {
|
||||
|
||||
x=4
|
||||
case ${DOWNLOAD_LINK} in
|
||||
*docs.google* | *drive.google* )
|
||||
x=5
|
||||
echo "*** >> downloading"
|
||||
${GDOWN} "${DOWNLOAD_LINK}" \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp >/dev/null || \
|
||||
( rm "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp && \
|
||||
download_riivolution_failed && exit 57 )
|
||||
mv "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
echo "*** >> unpacking"
|
||||
unpack "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
;;
|
||||
|
||||
*mega.nz* )
|
||||
x=5
|
||||
echo "*** >> downloading"
|
||||
${MEGADL} \
|
||||
--path="${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp \
|
||||
"${DOWNLOAD_LINK}" >/dev/null || \
|
||||
( rm "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp && \
|
||||
download_riivolution_failed && exit 57 )
|
||||
mv "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
echo "*** >> unpacking"
|
||||
unpack "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
;;
|
||||
|
||||
*romhacking* )
|
||||
x=6
|
||||
echo "can not download from Romhacking, download manually from:
|
||||
|
||||
${DOWNLOAD_LINK}
|
||||
"
|
||||
|
||||
exit 21
|
||||
;;
|
||||
|
||||
"" )
|
||||
echo "no download link for ${GAMENAME} available."
|
||||
download_riivolution_failed
|
||||
exit 21
|
||||
;;
|
||||
|
||||
* )
|
||||
x=5
|
||||
echo "*** >> downloading"
|
||||
wget -nv --no-check-certificate "${DOWNLOAD_LINK}" \
|
||||
-O "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp || \
|
||||
( rm "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp && \
|
||||
download_riivolution_failed && exit 57 )
|
||||
mv "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
echo "*** >> unpacking"
|
||||
unpack "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
;;
|
||||
esac
|
||||
|
||||
}
|
||||
|
||||
download_covers () {
|
||||
|
||||
alt=$(echo "${1}" | sed s/./E/4)
|
||||
|
||||
for path in cover cover3D coverfull disc disccustom; do
|
||||
if [[ ! -f "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png ]]; then
|
||||
wget -q -O "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png \
|
||||
http://art.gametdb.com/wii/"${path}"/EN/"${1}".png \
|
||||
|| rm "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png
|
||||
|
||||
if [[ ! -f "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png ]]; then
|
||||
wget -q -O "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png \
|
||||
http://art.gametdb.com/wii/"${path}"/US/"${alt}".png \
|
||||
|| rm "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png
|
||||
fi
|
||||
|
||||
[[ ! -f "${PATCHIMAGE_COVER_DIR}"/"${1}"_"${path}".png ]] && \
|
||||
echo "Cover (${path}) does not exist for gameid ${1}."
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
download_riivolution_failed () {
|
||||
echo -e "\nDownload failed!
|
||||
You can try to download manualy from :
|
||||
https://goaibox.com/sl/3suwkMVFZj
|
||||
https://archive.org/download/new-super-mario-bros-wii-mod-archive/"
|
||||
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
unpack_3dsrom () {
|
||||
|
||||
${CTRTOOL} -p --romfs=romfs.bin "${1}" &>/dev/null
|
||||
|
||||
}
|
||||
|
||||
unpack_3dsromfs () {
|
||||
|
||||
${CTRTOOL} -t romfs --romfsdir=romfs "${1}" &>/dev/null
|
||||
|
||||
}
|
||||
|
||||
repack_3dsromfs () {
|
||||
|
||||
${FDSTOOL} -ctf romfs "${2}" --romfs-dir "${1}" &>/dev/null
|
||||
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
show_mkwiimm_db () {
|
||||
|
||||
ID=${1:4:2}
|
||||
[[ ${ID} == [0-9][0-9] ]] && \
|
||||
gawk -F : "/^${ID}/"'{print $2}' \
|
||||
< "${PATCHIMAGE_DATABASE_DIR}"/mkwiimm.db \
|
||||
|| echo "** Unknown **"
|
||||
|
||||
}
|
||||
|
||||
ask_input_image_mkwiimm () {
|
||||
|
||||
echo "Choose Mario Kart Wii Image to modify
|
||||
|
||||
ALL patch all images"
|
||||
|
||||
for image in "${PWD}"/RMC???.{iso,wbfs} "${PATCHIMAGE_WBFS_DIR}"/RMC???.{iso,wbfs}; do
|
||||
[[ -f ${image} ]] && echo " ${image##*/} $(show_mkwiimm_db "${image##*/}")"
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
nsmbw_version () {
|
||||
|
||||
if [[ -f ${WORKDIR}/files/COPYDATE_LAST_2009-10-03_232911 ]]; then
|
||||
VERSION=EURv1
|
||||
export REG_LETTER=P
|
||||
elif [[ -f ${WORKDIR}/files/COPYDATE_LAST_2010-01-05_152101 ]]; then
|
||||
VERSION=EURv2
|
||||
export REG_LETTER=P
|
||||
elif [[ -f ${WORKDIR}/files/COPYDATE_LAST_2009-10-03_232303 ]]; then
|
||||
VERSION=USAv1
|
||||
export REG_LETTER=E
|
||||
elif [[ -f ${WORKDIR}/files/COPYDATE_LAST_2010-01-05_143554 ]]; then
|
||||
VERSION=USAv2
|
||||
export REG_LETTER=E
|
||||
elif [[ -f ${WORKDIR}/files/COPYDATE_LAST_2009-10-03_231655 ]]; then
|
||||
VERSION=JPNv1
|
||||
export REG_LETTER=J
|
||||
elif [[ ! ${VERSION} ]]; then
|
||||
echo -e "please specify your games version using --version={EURv1,EURv2,USAv1,USAv2,JPNv1}"
|
||||
exit 27
|
||||
fi
|
||||
echo "*** >> status: ${VERSION}"
|
||||
}
|
||||
|
||||
show_nsmb_db () {
|
||||
|
||||
ID1=${1:0:3}
|
||||
ID2=${1:4:2}
|
||||
gawk -F : "/^${ID1}\*${ID2}/"'{print $2}' \
|
||||
< "${PATCHIMAGE_DATABASE_DIR}"/nsmbw.db || echo "** Unknown **"
|
||||
|
||||
}
|
||||
|
||||
ask_input_image_nsmb () {
|
||||
|
||||
echo "Choose New Super Mario Bros. Wii Image to modify
|
||||
|
||||
ALL patch all images"
|
||||
|
||||
for image in "${PWD}"/SCL???.{iso,wbfs} \
|
||||
"${PWD}"/SMN???.{iso,wbfs} \
|
||||
"${PWD}"/SLF???.{iso,wbfs} \
|
||||
"${PWD}"/SFR???.{iso,wbfs} \
|
||||
"${PWD}"/SLB???.{iso,wbfs} \
|
||||
"${PWD}"/SMM???.{iso,wbfs} \
|
||||
"${PWD}"/SMV???.{iso,wbfs} \
|
||||
"${PWD}"/MRR???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/SCL???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/SMN???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/SLF???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/SFR???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/SLB???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/SMM???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/SMV???.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/MRR???.{iso,wbfs}; do
|
||||
[[ -f ${image} ]] && echo " ${image##*/} $(show_nsmb_db "${image##*/}")"
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
check_wfc () {
|
||||
|
||||
ID=${1/.*}
|
||||
if grep -q "${ID}" "${PATCHIMAGE_DATABASE_DIR}"/wfc.db; then
|
||||
echo TRUE
|
||||
else
|
||||
echo FALSE
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
ask_input_image_wiimmfi () {
|
||||
|
||||
echo "Choose Wii Game Image to wiimmfi"
|
||||
|
||||
for image in "${PWD}"/*.{iso,wbfs} \
|
||||
"${PATCHIMAGE_WBFS_DIR}"/*.{iso,wbfs}; do
|
||||
if [[ -f ${image} && ! ${image} == "*/RMC*" && $(check_wfc "${image##*/}") == TRUE ]]; then
|
||||
echo " ${image##*/} $(show_titles_db "${image##*/}")"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
}
|
@ -1,258 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
optparse () {
|
||||
|
||||
xcount=0
|
||||
pcount=$#
|
||||
|
||||
while [[ $xcount -lt $pcount ]]; do
|
||||
case ${1} in
|
||||
|
||||
--iso=* )
|
||||
ISO_PATH="${1/*=}"
|
||||
|
||||
if [[ -f "${ISO_PATH}" ]]; then
|
||||
IMAGE=$(readlink -m "${ISO_PATH}")
|
||||
else
|
||||
echo -e "ISO not found"
|
||||
exit 15
|
||||
fi
|
||||
;;
|
||||
|
||||
--rom=* )
|
||||
ROM_PATH="${1/*=}"
|
||||
|
||||
if [[ -f "${ROM_PATH}" ]]; then
|
||||
ROM=$(readlink -m "${ROM_PATH}")
|
||||
else
|
||||
echo -e "ROM not found"
|
||||
exit 15
|
||||
fi
|
||||
;;
|
||||
|
||||
--riivolution=* )
|
||||
RIIVOLUTION="${1/*=}"
|
||||
if [[ -f "${RIIVOLUTION}" ]]; then
|
||||
RIIVOLUTION_ZIP_CUSTOM=$(readlink -m "${RIIVOLUTION}")
|
||||
else
|
||||
echo -e "Riivolution patch ${RIIVOLUTION} not found."
|
||||
exit 21
|
||||
fi
|
||||
;;
|
||||
|
||||
--patch=* )
|
||||
PATCH="${1/*=}"
|
||||
if [[ -f "${PATCH}" ]]; then
|
||||
PATCH=$(readlink -m "${PATCH}")
|
||||
else
|
||||
echo -e "IPS/PPF patch ${PATCH} not found."
|
||||
exit 21
|
||||
fi
|
||||
;;
|
||||
|
||||
--customid=* )
|
||||
CUSTOMID=${1/*=}
|
||||
if [[ ${#CUSTOMID} != 6 ]]; then
|
||||
echo -e "CustomID ${CUSTOMID} needs to have 6 digits"
|
||||
exit 39
|
||||
fi
|
||||
;;
|
||||
|
||||
--download )
|
||||
export PATCHIMAGE_RIIVOLUTION_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--show-download )
|
||||
export PATCHIMAGE_SHOW_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--soundtrack )
|
||||
export PATCHIMAGE_SOUNDTRACK_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--only-soundtrack )
|
||||
export PATCHIMAGE_SOUNDTRACK_DOWNLOAD=TRUE
|
||||
export ONLY_SOUNDTRACK=TRUE
|
||||
;;
|
||||
|
||||
--override-szs )
|
||||
export MKWIIMM_OVERRIDE_SZS=TRUE
|
||||
;;
|
||||
|
||||
--version=* )
|
||||
VERSION="${1/*=}"
|
||||
case ${VERSION} in
|
||||
EURv1 )
|
||||
export REG_LETTER=P
|
||||
;;
|
||||
|
||||
EURv2 )
|
||||
export REG_LETTER=P
|
||||
;;
|
||||
|
||||
USAv1 )
|
||||
export REG_LETTER=E
|
||||
;;
|
||||
|
||||
USAv2 )
|
||||
export REG_LETTER=E
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
export REG_LETTER=J
|
||||
;;
|
||||
|
||||
* )
|
||||
echo -e "unrecognized game version: ${VERSION}"
|
||||
exit 27
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
--sharesave )
|
||||
export PATCHIMAGE_SHARE_SAVE=TRUE
|
||||
;;
|
||||
|
||||
--game=* )
|
||||
export GAME="${1/*=}"
|
||||
;;
|
||||
|
||||
--list-games )
|
||||
echo "${SUPPORTED_GAMES_ALL}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-nsmb )
|
||||
echo "${SUPPORTED_GAMES_NSMB}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-mkwiimmfi )
|
||||
echo "${SUPPORTED_GAMES_MKWIIMMFI}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-tokyo )
|
||||
echo "${SUPPORTED_GAMES_TOKYOMIRAGESESSIONSFE}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-kirby )
|
||||
echo "${SUPPORTED_GAMES_KIRBY}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-pokemon )
|
||||
echo "${SUPPORTED_GAMES_POKEMON}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-3ds )
|
||||
echo "${SUPPORTED_GAMES_3DS}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-games-other )
|
||||
echo "${SUPPORTED_GAMES_OTHER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements )
|
||||
echo "${REQUIREMENTS_ALL}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-nsmb )
|
||||
echo "${REQUIREMENTS_NSMB}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-mkwiimmfi )
|
||||
echo "${REQUIREMENTS_MKWIIMMFI}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-tokyo )
|
||||
echo "${REQUIREMENTS_TOKYOMIRAGESESSIONSFE}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-kirby )
|
||||
echo "${REQUIREMENTS_KIRBY}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-pokemon )
|
||||
echo "${REQUIREMENTS_POKEMON}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-3ds )
|
||||
echo "${REQUIREMENTS_3DS}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--list-requirements-other )
|
||||
echo "${REQUIREMENTS_OTHER}"
|
||||
echo "${REQUIREMENTS_FOOTER}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--covers )
|
||||
export PATCHIMAGE_COVER_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--only-covers=* )
|
||||
export PATCHIMAGE_COVER_DOWNLOAD=TRUE
|
||||
download_covers "${1/*=}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--banner=* )
|
||||
BANNER="${1/*=}"
|
||||
BANNER_EXT="${BANNER//*./}"
|
||||
if [[ ${BANNER_EXT} != "bnr" ]]; then
|
||||
echo "given banner (${BANNER}) is not a .bnr file!"
|
||||
exit 33
|
||||
fi
|
||||
;;
|
||||
|
||||
--download-banner )
|
||||
export PATCHIMAGE_BANNER_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--xdelta=* )
|
||||
if [[ -d ${1/*=} ]]; then
|
||||
export XDELTA_PATH=$(readlink -m "${1/*=}")
|
||||
else
|
||||
echo "given directory ${1/*=} does no exist."
|
||||
exit 75
|
||||
fi
|
||||
;;
|
||||
|
||||
--cpk=* )
|
||||
if [[ -d ${1/*=} ]]; then
|
||||
export CPK_PATH=$(readlink -m "${1/*=}")
|
||||
else
|
||||
echo "given directory ${1/*=} does no exist."
|
||||
exit 75
|
||||
fi
|
||||
;;
|
||||
|
||||
--help | -h )
|
||||
echo "${PATCHIMAGE_HELP}"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
xcount=$((xcount+1))
|
||||
done
|
||||
|
||||
}
|
@ -1,237 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
patchimage_riivolution () {
|
||||
|
||||
show_notes
|
||||
rm -rf "${WORKDIR}"
|
||||
if [[ ${PATCHIMAGE_SOUNDTRACK_DOWNLOAD} == TRUE ]]; then
|
||||
echo -e "\n*** A) download_soundtrack"
|
||||
download_soundtrack
|
||||
if [[ ${ONLY_SOUNDTRACK} == TRUE ]]; then
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "\n*** 1) check_input_image"
|
||||
check_input_image
|
||||
echo "*** 2) check_riivolution_patch"
|
||||
check_riivolution_patch
|
||||
|
||||
echo "*** 3) extract game"
|
||||
${WIT} extract "${IMAGE}" "${WORKDIR}" --psel=DATA -q || exit 51
|
||||
|
||||
echo "*** 4) detect_game_version"
|
||||
detect_game_version
|
||||
rm -f "${GAMEID}".wbfs "${CUSTOMID}".wbfs
|
||||
echo "*** 5) place_files"
|
||||
place_files || exit 45
|
||||
|
||||
echo "*** 6) download_banner"
|
||||
download_banner
|
||||
echo "*** 7) apply_banner"
|
||||
apply_banner
|
||||
|
||||
echo "*** 8) dolpatch"
|
||||
dolpatch
|
||||
|
||||
if [[ ${CUSTOMID} ]]; then
|
||||
GAMEID="${CUSTOMID}"
|
||||
fi
|
||||
|
||||
if [[ ${PATCHIMAGE_SHARE_SAVE} == "TRUE" ]]; then
|
||||
TMD_OPTS=""
|
||||
else
|
||||
TMD_OPTS="--tt-id=K"
|
||||
fi
|
||||
|
||||
echo "*** 9) rebuild and store game"
|
||||
"${WIT}" cp -o -q --disc-id="${GAMEID}" "${TMD_OPTS}" --name "${GAMENAME}" \
|
||||
-B "${WORKDIR}" "${PATCHIMAGE_GAME_DIR}"/"${GAMEID}".wbfs || exit 51
|
||||
|
||||
echo "*** 10) remove workdir"
|
||||
rm -rf "${WORKDIR}"
|
||||
|
||||
echo -e "\n >>> ${GAMENAME} saved as: ${PATCHIMAGE_GAME_DIR}/${GAMEID}.wbfs\n"
|
||||
|
||||
if [[ ${PATCHIMAGE_COVER_DOWNLOAD} == TRUE ]]; then
|
||||
echo -e "*** Z) download_covers"
|
||||
download_covers "${GAMEID}"
|
||||
echo -e "\nCovers downloaded to ${PATCHIMAGE_COVER_DIR}"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
patchimage_mkwiimm () {
|
||||
|
||||
show_notes
|
||||
echo -e "\n*** 1) check_input_image"
|
||||
check_input_image
|
||||
echo -e "\n*** 2) download_wiimm"
|
||||
download_wiimm
|
||||
echo -e "\n*** 3) patch_wiimm"
|
||||
patch_wiimm
|
||||
|
||||
}
|
||||
|
||||
patchimage_generic () {
|
||||
|
||||
show_notes
|
||||
echo -e "\n*** 1) check_input_image"
|
||||
check_input_image_special
|
||||
echo -e "\n*** 2) pi_action"
|
||||
pi_action
|
||||
|
||||
}
|
||||
|
||||
patchimage_ips () {
|
||||
show_notes
|
||||
check_input_rom
|
||||
check_riivolution_patch --nofail
|
||||
|
||||
if [[ -f ${PATCH} ]]; then
|
||||
ext="${ROM/*.}"
|
||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||
"${IPS}" a "${PATCH}" "${GAMENAME}.${ext}" || exit 51
|
||||
elif [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${PATCH} ]]; then
|
||||
ext="${ROM/*.}"
|
||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||
"${IPS}" a "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${PATCH}" \
|
||||
"${GAMENAME}.${ext}" || exit 51
|
||||
else
|
||||
echo -e "error: patch (${PATCH}) could not be found"
|
||||
exit 21
|
||||
fi
|
||||
}
|
||||
|
||||
patchimage_bps () {
|
||||
show_notes
|
||||
check_input_rom
|
||||
check_riivolution_patch --nofail
|
||||
|
||||
if [[ -f ${PATCH} ]]; then
|
||||
ext="${ROM/*.}"
|
||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||
"${BPS}" -decode -t "${GAMENAME}.${ext}" "${PATCH}" || exit 51
|
||||
elif [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${PATCH} ]]; then
|
||||
ext="${ROM/*.}"
|
||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||
"${BPS}" -decode -t "${GAMENAME}.${ext}" \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}"/"${PATCH}" || exit 51
|
||||
else
|
||||
echo -e "error: patch (${PATCH}) could not be found"
|
||||
exit 21
|
||||
fi
|
||||
}
|
||||
|
||||
patchimage_ppf () {
|
||||
show_notes
|
||||
check_input_rom
|
||||
check_riivolution_patch --nofail
|
||||
|
||||
if [[ -f ${PATCH} ]]; then
|
||||
ext="${ROM/*.}"
|
||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||
"${PPF}" a "${PATCH}" "${GAMENAME}.${ext}" || exit 51
|
||||
elif [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${PATCH} ]]; then
|
||||
ext="${ROM/*.}"
|
||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||
"${PPF}" a "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${PATCH}" \
|
||||
"${GAMENAME}.${ext}" || exit 51
|
||||
else
|
||||
echo -e "error: patch (${PATCH}) could not be found"
|
||||
exit 21
|
||||
fi
|
||||
}
|
||||
|
||||
patchimage_hans () {
|
||||
|
||||
show_notes
|
||||
echo -e "\n*** 1) check_input_rom"
|
||||
if [[ ${HANS_MULTI_SOURCE} ]]; then
|
||||
check_input_rom_special
|
||||
else check_input_rom
|
||||
fi
|
||||
|
||||
rm -rf romfs/ romfs.bin "${ROMFS}"
|
||||
|
||||
echo "*** 2) check_hans_files"
|
||||
check_hans_files
|
||||
|
||||
echo "*** 3) unpack_3dsrom"
|
||||
unpack_3dsrom "${ROM}" || exit 51
|
||||
|
||||
if [[ ${HANS_DELTA} ]]; then
|
||||
echo "*** 4) apply_delta"
|
||||
|
||||
if [[ -f ${PATCH} ]]; then
|
||||
"${XD3}" -d -f -s romfs.bin \
|
||||
"${PATCH}" "${ROMFS}" || exit 51
|
||||
elif [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${PATCH} ]]; then
|
||||
"${XD3}" -d -f -s romfs.bin \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}"/"${PATCH}" \
|
||||
"${ROMFS}" || exit 51
|
||||
else
|
||||
echo -e "error: patch (${PATCH}) could not be found"
|
||||
exit 21
|
||||
fi
|
||||
|
||||
echo "*** 5) storing game"
|
||||
else
|
||||
echo "*** 4) unpack_3dsromfs"
|
||||
unpack_3dsromfs romfs.bin || exit 51
|
||||
|
||||
echo "*** 5) patch_romfs"
|
||||
patch_romfs
|
||||
|
||||
echo "*** 6) repack_romfs"
|
||||
repack_3dsromfs romfs/ "${ROMFS}" || exit 51
|
||||
|
||||
echo "*** 7) storing game"
|
||||
fi
|
||||
|
||||
mv "${ROMFS}" "${PATCHIMAGE_ROM_DIR}"
|
||||
|
||||
echo "
|
||||
*** succesfully created new romfs as \"${PATCHIMAGE_ROM_DIR}/${ROMFS}\"
|
||||
"
|
||||
|
||||
[[ ${DATA} ]] && echo \
|
||||
" >> for Hans Banners / Launchers, place all files from
|
||||
|
||||
$(readlink -m "${DATA}")
|
||||
|
||||
into the root of your sd card
|
||||
"
|
||||
|
||||
if [[ ${HANS_DELTA} ]]; then
|
||||
echo "*** 6) remove workdir"
|
||||
else echo "*** 8) remove workdir"
|
||||
fi
|
||||
|
||||
rm -rf romfs/ romfs.bin
|
||||
|
||||
}
|
||||
|
||||
patchimage_delta () {
|
||||
|
||||
show_notes
|
||||
echo -e "\n*** 1) menu"
|
||||
menu || exit 9
|
||||
|
||||
echo -e "\n*** 2) patch"
|
||||
patch || exit 51
|
||||
|
||||
}
|
||||
|
||||
apply_banner () {
|
||||
|
||||
if [[ ${BANNER} != "" ]]; then
|
||||
if [[ -f ${BANNER} ]]; then
|
||||
cp "${BANNER}" "${BANNER_LOCATION}"
|
||||
else
|
||||
echo "specified banner ${BANNER} does not exist, not modifying"
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
@ -18,7 +18,7 @@ NSMB9 RetroRemix New Super Mario Bros. Wii Retro Remix
|
||||
NSMB10 WinterMoon Super Mario: Mushroom Adventure PLUS - Winter Moon
|
||||
NSMB11 NSMBW3 NSMBW3: The Final Levels
|
||||
NSMB12 Vacation Super Mario Vacation
|
||||
NSMB13 Frozen Super Mario Bros. Frozen Editon
|
||||
NSMB13 ASLM Awesomer Super Luigi Mini
|
||||
NSMB14 Sykland Super Mario Skyland
|
||||
NSMB15 RVLution RVLution Wii (NewSMB Mod)
|
||||
NSMB16 Midi Midi's Super Mario Wii (Just A Little Adventure)
|
||||
@ -35,8 +35,6 @@ NSMB26 RevisedSuperMarioBros Revised Super Mario Bros. Wii
|
||||
NSMB27 MLGSuperLuigi MLG Super Luigi Bros. Wii
|
||||
NSMB28 Cliff Cliff Super Mario Bros. Wii
|
||||
NSMB29 Virtual Challenging Super Mario Bros. Wii: Virtual Special
|
||||
NSMB30 NSLDM Newer Super Luigi Wii: Dark Moon
|
||||
NSMB31 Alpine Newer Alpine Dream
|
||||
|
||||
NSMB99 NSMBWCharacters Customize Characters
|
||||
|
||||
@ -123,7 +121,7 @@ NSMB9 RetroRemix Retro Remix.rar
|
||||
NSMB10 WinterMoon WinterMoon.rar
|
||||
NSMB11 NSMBW3 NSMBW3_The final levels.zip
|
||||
NSMB12 Vacation Super_Mario_Vacation_v1.00.zip
|
||||
NSMB13 Frozen SMBFrozenEdition.rar
|
||||
NSMB13 ASLM AwesomerSLM.zip
|
||||
NSMB14 Sykland Skyland.zip
|
||||
NSMB15 RVLution RVLution Wii.zip
|
||||
NSMB16 Midi MSMBWii.zip
|
||||
@ -136,12 +134,10 @@ NSMB22 NewSMBWOtherWorld Riivolution Other WorldR v1.02.zip
|
||||
NSMB23 TheLegendOfYoshi The Legend Of Yoshi.zip
|
||||
NSMB24 RemixedSuperMarioBros Remixed v1.5.zip
|
||||
NSMB25 GhostlySuperGhostBoos GSGBW v1.0.2.zip
|
||||
NSMB26 RevisedSuperMarioBros RSMBW Version 1.1.zip
|
||||
NSMB26 RevisedSuperMarioBros RSMBW Version 1.0.zip
|
||||
NSMB27 MLGSuperLuigi MLGLuigiWii.zip
|
||||
NSMB28 Cliff Cliff_Super_Mario_Brothers_Wiiv1.1.1.zip
|
||||
NSMB28 Cliff Cliff_Super_Mario_Brothers_Wiiv1.0.4.zip
|
||||
NSMB29 Virtual ChaSMBW_VrS_v0.2.zip
|
||||
NSMB30 NSLDM Luigi_Dark_Moon_1.1.zip
|
||||
NSMB31 Alpine Newer-Alpine-Dream-main.zip
|
||||
|
||||
NSMB99 NSMBWCharacters Alternative Character Files are supplied
|
||||
"
|
@ -177,7 +177,7 @@ patch_wiimm () {
|
||||
|
||||
XD="${PWD}"
|
||||
if [[ ${ID} == ALL ]]; then
|
||||
for ID in {06..34}; do
|
||||
for ID in {06..32}; do
|
||||
build_mkwiimm "${ID}"
|
||||
done
|
||||
else
|
||||
|
@ -1,125 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://github.com/AlphaT12/Newer-Alpine-Dream/archive/refs/heads/main.zip"
|
||||
RIIVOLUTION_ZIP="Newer-Alpine-Dream-main.zip"
|
||||
RIIVOLUTION_DIR="Newer-Alpine-Dream-main/NewerAD"
|
||||
GAMENAME="Newer Alpine Dream"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../riivolution/NewerAD.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
11 levels with 8 classic levels, 1 tower level, 1 castle level, 1 secret hard level
|
||||
|
||||
By ALPHA_T
|
||||
|
||||
Source: https://github.com/AlphaT12/Newer-Alpine-Dream
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
|
||||
GAMEID=SAD${REG_LETTER}12
|
||||
|
||||
}
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( "${WORKDIR}"/files/LevelSamples "${WORKDIR}"/files/NewerRes "${WORKDIR}"/files/Sound/new/sfx "${WORKDIR}"/files/Maps )
|
||||
for dir in "${NEW_DIRS[@]}"; do
|
||||
mkdir -p "${dir}"
|
||||
done
|
||||
|
||||
case ${VERSION} in
|
||||
EUR* )
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/{Font,Message}/ "${WORKDIR}"/files/EU/"${dir}"/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OthersP/* "${WORKDIR}"/files/EU/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/{Font,Message}/ "${WORKDIR}"/files/US/"${dir}"/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OthersE/* "${WORKDIR}"/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp "${RIIVOLUTION_DIR}"/Font/* "${WORKDIR}"/files/JP/Font/
|
||||
cp "${RIIVOLUTION_DIR}"/Message/* "${WORKDIR}"/files/JP/Message/
|
||||
cp "${RIIVOLUTION_DIR}"/OthersJ/* "${WORKDIR}"/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Tilesets/* "${WORKDIR}"/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/TitleReplay/* "${WORKDIR}"/files/Replay/title/
|
||||
cp "${RIIVOLUTION_DIR}"/BGs/* "${WORKDIR}"/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/SpriteTex/* "${WORKDIR}"/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/Layouts/* "${WORKDIR}"/files/Layout/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Music/*.er "${WORKDIR}"/files/Sound/new/
|
||||
cp "${RIIVOLUTION_DIR}"/Music/sfx/* "${WORKDIR}"/files/Sound/new/sfx/
|
||||
cp "${RIIVOLUTION_DIR}"/Music/stream/* "${WORKDIR}"/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Music/rsar/* "${WORKDIR}"/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/NewerRes/* "${WORKDIR}"/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/LevelSamples/* "${WORKDIR}"/files/LevelSamples/
|
||||
cp "${RIIVOLUTION_DIR}"/Others/charaChangeSelectContents.arc "${WORKDIR}"/files/Layout/charaChangeSelectContents/charaChangeSelectContents.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/characterChange.arc "${WORKDIR}"/files/Layout/characterChange/characterChange.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/continue.arc "${WORKDIR}"/files/Layout/continue/continue.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/controllerInformation.arc "${WORKDIR}"/files/Layout/controllerInformation/controllerInformation.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/corseSelectMenu.arc "${WORKDIR}"/files/Layout/corseSelectMenu/corseSelectMenu.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/corseSelectUIGuide.arc "${WORKDIR}"/files/Layout/corseSelectUIGuide/corseSelectUIGuide.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/dateFile.arc "${WORKDIR}"/files/Layout/dateFile/dateFile.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/dateFile_OLD.arc "${WORKDIR}"/files/Layout/dateFile/dateFile_OLD.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/easyPairing.arc "${WORKDIR}"/files/Layout/easyPairing/easyPairing.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/extensionControllerNunchuk.arc "${WORKDIR}"/files/Layout/extensionControllerNunchuk/extensionControllerNunchuk.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/extensionControllerYokomochi.arc "${WORKDIR}"/files/Layout/extensionControllerYokomochi/extensionControllerYokomochi.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/fileSelectBase.arc "${WORKDIR}"/files/Layout/fileSelectBase/fileSelectBase.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/fileSelectBase_OLD.arc "${WORKDIR}"/files/Layout/fileSelectBase/fileSelectBase_OLD.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/fileSelectPlayer.arc "${WORKDIR}"/files/Layout/fileSelectPlayer/fileSelectPlayer.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/gameScene.arc "${WORKDIR}"/files/Layout/gameScene/gameScene.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/infoWindow.arc "${WORKDIR}"/files/Layout/infoWindow/infoWindow.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/miniGameCannon.arc "${WORKDIR}"/files/Layout/miniGameCannon/miniGameCannon.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/miniGameWire.arc "${WORKDIR}"/files/Layout/miniGameWire/miniGameWire.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/pauseMenu.arc "${WORKDIR}"/files/Layout/pauseMenu/pauseMenu.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/pointResultDateFile.arc "${WORKDIR}"/files/Layout/pointResultDateFile/pointResultDateFile.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/pointResultDateFileFree.arc "${WORKDIR}"/files/Layout/pointResultDateFileFree/pointResultDateFileFree.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/preGame.arc "${WORKDIR}"/files/Layout/preGame/preGame.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/select_cursor.arc "${WORKDIR}"/files/Layout/select_cursor/select_cursor.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/sequenceBG.arc "${WORKDIR}"/files/Layout/sequenceBG/sequenceBG.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/staffCredit.arc "${WORKDIR}"/files/Layout/staffCredit/staffCredit.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/stockItem.arc "${WORKDIR}"/files/Layout/stockItem/stockItem.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/stockItemShadow.arc "${WORKDIR}"/files/Layout/stockItemShadow/stockItemShadow.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/yesnoWindow.arc "${WORKDIR}"/files/Layout/yesnoWindow/yesnoWindow.arc
|
||||
cp -r "${RIIVOLUTION_DIR}"/Maps/* "${WORKDIR}"/files/Maps/
|
||||
cp "${RIIVOLUTION_DIR}"/Stages/* "${WORKDIR}"/files/Stage/
|
||||
|
||||
}
|
||||
|
||||
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}" xml="${PATCHIMAGE_PATCH_DIR}/NewerSMBW-Loader.xml" -q
|
||||
${WIT} dolpatch ${DOL} xml="${PATCHIMAGE_PATCH_DIR}/NSMBW_AP.xml" -q
|
||||
|
||||
}
|
85
scripts/nsmbw/awesomersuperluigi.sh
Normal file
85
scripts/nsmbw/awesomersuperluigi.sh
Normal file
@ -0,0 +1,85 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
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
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
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
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
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/
|
||||
|
||||
}
|
||||
|
||||
|
||||
dolpatch () {
|
||||
|
||||
${WIT} dolpatch ${DOL} \
|
||||
"802F148C=53756D6D53756E#7769696D6A3264" \
|
||||
"802F118C=53756D6D53756E#7769696D6A3264" \
|
||||
"802F0F8C=53756D6D53756E#7769696D6A3264" \
|
||||
xml="${PATCHIMAGE_PATCH_DIR}/NSMBW_AP.xml" -q
|
||||
|
||||
}
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="http://download1486.mediafire.com/i5mkopgtba3g/1ruj80uk898qrcg/Cliff_Super_Mario_Brothers_Wiiv1.1.1.zip"
|
||||
RIIVOLUTION_ZIP="Cliff_Super_Mario_Brothers_Wiiv1.1.1.zip"
|
||||
DOWNLOAD_LINK="http://www.mediafire.com/download/3j52g4j2jjdxg43/Cliff_Super_Mario_Brothers_Wiiv1.0.4.zip"
|
||||
RIIVOLUTION_ZIP="Cliff_Super_Mario_Brothers_Wiiv1.0.4.zip"
|
||||
RIIVOLUTION_DIR="Cliff"
|
||||
GAMENAME="Cliff Super Mario Bros. Wii"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../XMLs/Cliff
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../Cliff
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
@ -1,79 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://www.dropbox.com/s/hxf7crqqmyj75xm/SMBFrozenEdition.rar"
|
||||
RIIVOLUTION_ZIP="SMBFrozenEdition.rar"
|
||||
RIIVOLUTION_DIR="SMBFrozenEdition/FrozenEdition"
|
||||
GAMENAME="Super Mario Bros. Frozen Editon"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../Riivolution/FrozenEditionE.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Source: http://rvlution.net/thread/4616-super-mario-bros-frozen-editon/
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
GAMEID=SFR${REG_LETTER}01
|
||||
XML_FILE="${XML_FILE}"${REG_LETTER}.xml
|
||||
|
||||
}
|
||||
|
||||
place_files () {
|
||||
|
||||
case ${VERSION} in
|
||||
EUR* )
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/Message.arc "${WORKDIR}"/files/EU/"${dir}"/Message/Message.arc
|
||||
done
|
||||
#cp "${RIIVOLUTION_DIR}"/OpeningP/openingTitle.arc "${WORKDIR}"/files/EU/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/Message.arc "${WORKDIR}"/files/US/"${dir}"/Message/Message.arc
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningE/openingTitle.arc "${WORKDIR}"/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/Message.arc "${WORKDIR}"/files/JP/Message/Message.arc
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningJ/openingTitle.arc "${WORKDIR}"/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/Layout "${WORKDIR}"/files/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Object "${WORKDIR}"/files/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/stream/*.brstm "${WORKDIR}"/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/*.brsar "${WORKDIR}"/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/*.arc "${WORKDIR}"/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/Texture/* "${WORKDIR}"/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/WorldMap/* "${WORKDIR}"/files/WorldMap/
|
||||
|
||||
}
|
||||
|
||||
dolpatch() {
|
||||
|
||||
${WIT} dolpatch ${DOL} \
|
||||
"802F148C=53756D6D53756E#7769696D6A3264" \
|
||||
"802F118C=53756D6D53756E#7769696D6A3264" \
|
||||
"802F0F8C=53756D6D53756E#7769696D6A3264" \
|
||||
xml="${PATCHIMAGE_PATCH_DIR}/NSMBW_AP.xml" -q
|
||||
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="http://download858.mediafire.com/d8ceavb0izvg/vf7p9pu8bqxohuo/GSGBW+v1.0.2.zip"
|
||||
DOWNLOAD_LINK="https://www.mediafire.com/?vf7p9pu8bqxohuo"
|
||||
RIIVOLUTION_ZIP="GSGBW v1.0.2.zip"
|
||||
RIIVOLUTION_DIR="GSGBW/Ghostly"
|
||||
GAMENAME="Ghostly Super Ghost Boos. Wii"
|
||||
|
@ -1,137 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://drive.google.com/open?id=0Bx9bufRDCntQOUhlbno1cmlSOGs"
|
||||
RIIVOLUTION_ZIP="Luigi_Dark_Moon_1.1.zip"
|
||||
RIIVOLUTION_DIR="DarkMoon"
|
||||
GAMENAME="Newer Super Luigi Wii: Dark Moon"
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../riivolution/DarkMoon.xml
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Newer Super Luigi Wii: Dark Moon is a fan-made sequel to Newer Super Mario Bros. Wii.
|
||||
Freshened up from their last adventure, Mario and the gang decide to explore a small remote location called Evershade Isles.
|
||||
However, in the midst of their expedition, Mario goes missing! Looks like it's up to Luigi to save the day!
|
||||
|
||||
Features:
|
||||
|
||||
Luigi as the star of the show
|
||||
Wario as a playable character in multiplayer
|
||||
8 new unique levels
|
||||
24 tricky star coins to collect
|
||||
a shiny new map
|
||||
various recolored objects
|
||||
...and much more!
|
||||
|
||||
http://horizonwii.net/?page=post&id=3473
|
||||
https://youtu.be/WuCgPhKuASM
|
||||
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
GAMEID=SMN${REG_LETTER}ZB
|
||||
|
||||
}
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( "${WORKDIR}"/files/LevelSamples "${WORKDIR}"/files/NewerRes "${WORKDIR}"/files/Sound/new/sfx "${WORKDIR}"/files/Maps )
|
||||
for dir in "${NEW_DIRS[@]}"; do
|
||||
mkdir -p "${dir}"
|
||||
done
|
||||
|
||||
case ${VERSION} in
|
||||
EUR* )
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/{Font,Message}/ "${WORKDIR}"/files/EU/"${dir}"/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OthersP/* "${WORKDIR}"/files/EU/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/{Font,Message}/ "${WORKDIR}"/files/US/"${dir}"/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OthersE/* "${WORKDIR}"/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp "${RIIVOLUTION_DIR}"/Font/* "${WORKDIR}"/files/JP/Font/
|
||||
cp "${RIIVOLUTION_DIR}"/Message/* "${WORKDIR}"/files/JP/Message/
|
||||
cp "${RIIVOLUTION_DIR}"/OthersJ/* "${WORKDIR}"/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Tilesets/* "${WORKDIR}"/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/TitleReplay/* "${WORKDIR}"/files/Replay/title/
|
||||
cp "${RIIVOLUTION_DIR}"/BGs/* "${WORKDIR}"/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/SpriteTex/* "${WORKDIR}"/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/Layouts/* "${WORKDIR}"/files/Layout/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Music/*.er "${WORKDIR}"/files/Sound/new/
|
||||
cp "${RIIVOLUTION_DIR}"/Music/sfx/* "${WORKDIR}"/files/Sound/new/sfx/
|
||||
cp "${RIIVOLUTION_DIR}"/Music/stream/* "${WORKDIR}"/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Music/rsar/* "${WORKDIR}"/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/NewerRes/* "${WORKDIR}"/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/LevelSamples/* "${WORKDIR}"/files/LevelSamples/
|
||||
cp "${RIIVOLUTION_DIR}"/Others/charaChangeSelectContents.arc "${WORKDIR}"/files/Layout/charaChangeSelectContents/charaChangeSelectContents.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/characterChange.arc "${WORKDIR}"/files/Layout/characterChange/characterChange.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/continue.arc "${WORKDIR}"/files/Layout/continue/continue.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/controllerInformation.arc "${WORKDIR}"/files/Layout/controllerInformation/controllerInformation.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/corseSelectMenu.arc "${WORKDIR}"/files/Layout/corseSelectMenu/corseSelectMenu.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/corseSelectUIGuide.arc "${WORKDIR}"/files/Layout/corseSelectUIGuide/corseSelectUIGuide.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/dateFile.arc "${WORKDIR}"/files/Layout/dateFile/dateFile.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/dateFile_OLD.arc "${WORKDIR}"/files/Layout/dateFile/dateFile_OLD.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/easyPairing.arc "${WORKDIR}"/files/Layout/easyPairing/easyPairing.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/extensionControllerNunchuk.arc "${WORKDIR}"/files/Layout/extensionControllerNunchuk/extensionControllerNunchuk.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/extensionControllerYokomochi.arc "${WORKDIR}"/files/Layout/extensionControllerYokomochi/extensionControllerYokomochi.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/fileSelectBase.arc "${WORKDIR}"/files/Layout/fileSelectBase/fileSelectBase.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/fileSelectBase_OLD.arc "${WORKDIR}"/files/Layout/fileSelectBase/fileSelectBase_OLD.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/fileSelectPlayer.arc "${WORKDIR}"/files/Layout/fileSelectPlayer/fileSelectPlayer.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/gameScene.arc "${WORKDIR}"/files/Layout/gameScene/gameScene.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/infoWindow.arc "${WORKDIR}"/files/Layout/infoWindow/infoWindow.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/miniGameCannon.arc "${WORKDIR}"/files/Layout/miniGameCannon/miniGameCannon.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/miniGameWire.arc "${WORKDIR}"/files/Layout/miniGameWire/miniGameWire.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/pauseMenu.arc "${WORKDIR}"/files/Layout/pauseMenu/pauseMenu.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/pointResultDateFile.arc "${WORKDIR}"/files/Layout/pointResultDateFile/pointResultDateFile.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/pointResultDateFileFree.arc "${WORKDIR}"/files/Layout/pointResultDateFileFree/pointResultDateFileFree.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/preGame.arc "${WORKDIR}"/files/Layout/preGame/preGame.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/select_cursor.arc "${WORKDIR}"/files/Layout/select_cursor/select_cursor.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/sequenceBG.arc "${WORKDIR}"/files/Layout/sequenceBG/sequenceBG.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/staffCredit.arc "${WORKDIR}"/files/Layout/staffCredit/staffCredit.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/stockItem.arc "${WORKDIR}"/files/Layout/stockItem/stockItem.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/stockItemShadow.arc "${WORKDIR}"/files/Layout/stockItemShadow/stockItemShadow.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/yesnoWindow.arc "${WORKDIR}"/files/Layout/yesnoWindow/yesnoWindow.arc
|
||||
cp -r "${RIIVOLUTION_DIR}"/Maps/* "${WORKDIR}"/files/Maps/
|
||||
cp "${RIIVOLUTION_DIR}"/Stages/* "${WORKDIR}"/files/Stage/
|
||||
|
||||
}
|
||||
|
||||
|
||||
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}" \
|
||||
xml="${PATCHIMAGE_PATCH_DIR}/NewerSMBW-Loader.xml" -q
|
||||
${WIT} dolpatch ${DOL} xml="${PATCHIMAGE_PATCH_DIR}/NSMBW_AP.xml" -q
|
||||
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://www.dropbox.com/s/rw3iwa8vhj7o337/LSYB.zip"
|
||||
DOWNLOAD_LINK="https://www.dropbox.com/s/rw3iwa8vhj7o337/LSYB.zip?dl=0"
|
||||
RIIVOLUTION_ZIP="LSYB.zip"
|
||||
RIIVOLUTION_DIR="LSYB"
|
||||
GAMENAME="Luigis Super Yoshi Bros."
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="http://download1334.mediafire.com/11ypp8a15gag/wsob4c27urgkl62/MLGLuigiWii.zip"
|
||||
DOWNLOAD_LINK="http://www.mediafire.com/download/wsob4c27urgkl62/MLGLuigiWii.zip"
|
||||
RIIVOLUTION_ZIP="MLGLuigiWii.zip"
|
||||
RIIVOLUTION_DIR="MLGLuigiWii/MLGLuigi"
|
||||
GAMENAME="MLG Super Luigi Wii"
|
||||
|
@ -39,7 +39,7 @@ detect_game_version () {
|
||||
place_files () {
|
||||
|
||||
|
||||
NEW_DIRS=( "${WORKDIR}"/files/LevelSamples "${WORKDIR}"/files/NewerRes "${WORKDIR}"/files/Maps "${WORKDIR}"/files/Sound/new )
|
||||
NEW_DIRS=( "${WORKDIR}"/files/LevelSamples "${WORKDIR}"/files/NewerRes "${WORKDIR}"/files/Maps )
|
||||
for dir in "${NEW_DIRS[@]}"; do
|
||||
mkdir -p "${dir}"
|
||||
done
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://www.dropbox.com/s/0hrmxz3gh7b3b1q/RSMBW%20Version%201.1.zip"
|
||||
RIIVOLUTION_ZIP="RSMBW Version 1.1.zip"
|
||||
RIIVOLUTION_DIR="rsmbw"
|
||||
DOWNLOAD_LINK="https://www.dropbox.com/s/pdxfqfvd19lema3/RSMBW%20Version%201.0.zip?dl=0"
|
||||
RIIVOLUTION_ZIP="RSMBW Version 1.0.zip"
|
||||
RIIVOLUTION_DIR="RSMBW Version 1.0/rsmbw"
|
||||
GAMENAME="Revised Super Mario Bros. Wii"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}/"
|
||||
XML_FILE="${RIIVOLUTION_DIR}/../riivolution/RSMBW.xml"
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://www.dropbox.com/s/t2u8soleg8qeix8/The%20Legend%20Of%20Yoshi.zip"
|
||||
DOWNLOAD_LINK="https://www.dropbox.com/s/tfypq5j3t85v6dv/The%20Legend%20Of%20Yoshi.zip"
|
||||
RIIVOLUTION_ZIP="The Legend Of Yoshi.zip"
|
||||
RIIVOLUTION_DIR="TLOY (Riivolution) [P] [J] [E] (08-31-2016) [no custom logo]/The Legend Of Yoshi/tloy"
|
||||
RIIVOLUTION_DIR="TLOY (Riivolution) [P] [J] [E] (05-28-2016) [no custom logo]/The Legend Of Yoshi/tloy"
|
||||
GAMENAME="The Legend of Yoshi"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}/../riivolution/TLOY ("
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://fs10n4.sendspace.com/dl/939b01a934c50dcb9d5f739180108e37/57c153d6055d64ea/cky4rn/ChaSMBW_VrS_v0.2.zip"
|
||||
DOWNLOAD_LINK="https://www.sendspace.com/file/cky4rn"
|
||||
RIIVOLUTION_ZIP="ChaSMBW_VrS_v0.2.zip"
|
||||
RIIVOLUTION_DIR="VirtualChallenging"
|
||||
GAMENAME="Challenging Super Mario Bros. Wii: Virtual Special"
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
DOWNLOAD_LINK="http://download842.mediafire.com/610594k0d1dg/nd9z16t5nb92743/Neo+X+and+Y+Files.rar"
|
||||
DOWNLOAD_LINK="http://www.mediafire.com/download/nd9z16t5nb92743/Neo+X+and+Y+Files.rar"
|
||||
RIIVOLUTION_ZIP="Neo X and Y Files.rar"
|
||||
RIIVOLUTION_DIR="Neo X and Y Files/Pokemon NeoXY1.4/Installation hub/data/"
|
||||
GAMENAME="Pokemon Neo X"
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
DOWNLOAD_LINK="http://download842.mediafire.com/610594k0d1dg/nd9z16t5nb92743/Neo+X+and+Y+Files.rar"
|
||||
DOWNLOAD_LINK="http://www.mediafire.com/download/nd9z16t5nb92743/Neo+X+and+Y+Files.rar"
|
||||
RIIVOLUTION_ZIP="Neo X and Y Files.rar"
|
||||
RIIVOLUTION_DIR="Neo X and Y Files/Pokemon NeoXY1.4/Installation hub/data/"
|
||||
GAMENAME="Pokemon Neo Y"
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
DOWNLOAD_LINK="http://download2009.mediafire.com/kv9pjged8ueg/8tacxp6oz5cw6c8/Pokemon+Red+Ruby.rar"
|
||||
DOWNLOAD_LINK="http://www.mediafire.com/download/8tacxp6oz5cw6c8/Pokemon+Red+Ruby.rar"
|
||||
RIIVOLUTION_ZIP="Pokemon Red Ruby.rar"
|
||||
RIIVOLUTION_DIR="Installation Files"
|
||||
GAMENAME="Pokemon Red Ruby"
|
||||
|
@ -1,8 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
DOWNLOAD_LINK="https://drive.google.com/uc?id=0B-zmEVN0Mas6Qm5jYXZkVy1QZjA&export=download"
|
||||
RIIVOLUTION_ZIP="RRSSv2.1.zip"
|
||||
RIIVOLUTION_DIR="RRSSv2.1"
|
||||
DOWNLOAD_LINK="https://drive.google.com/uc?id=0BzJZMhlTQ-CPaUtiTlp4YjlEY3M&export=download"
|
||||
RIIVOLUTION_ZIP="RRSSFiles 18-11-2015.zip"
|
||||
RIIVOLUTION_DIR="RRSSFiles 18-11-2015"
|
||||
GAMENAME="Pokemon Rising Ruby"
|
||||
GAME_TYPE=HANS
|
||||
|
||||
@ -16,7 +16,7 @@ echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Source: https://projectpokemon.org/forums/showthread.php?49883-Pok%E9mon-Rising-Ruby-and-Sinking-Sapphire
|
||||
Source: https://twitter.com/Drayano60/status/662793363255656448
|
||||
Base ROM: Pokemon Omega Ruby
|
||||
Supported Versions: US, EU, JAP
|
||||
************************************************"
|
||||
@ -31,6 +31,6 @@ check_hans_files () {
|
||||
|
||||
patch_romfs () {
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}/Drop-In Files/Rising Ruby/Drop-It-In (CRO FOR LUMA3DS ONLY)/romfs/a/" romfs/
|
||||
cp -r "${RIIVOLUTION_DIR}"/a romfs/
|
||||
|
||||
}
|
||||
|
@ -1,15 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
DOWNLOAD_LINK="https://drive.google.com/uc?id=0B-zmEVN0Mas6Qm5jYXZkVy1QZjA&export=download"
|
||||
|
||||
RIIVOLUTION_ZIP="RRSSv2.1.zip"
|
||||
RIIVOLUTION_DIR="RRSSv2.1"
|
||||
DOWNLOAD_LINK="https://drive.google.com/uc?id=0BzJZMhlTQ-CPaUtiTlp4YjlEY3M&export=download"
|
||||
RIIVOLUTION_ZIP="RRSSFiles 18-11-2015.zip"
|
||||
RIIVOLUTION_DIR="RRSSFiles 18-11-2015"
|
||||
GAMENAME="Pokemon Sinking Sapphire"
|
||||
GAME_TYPE=HANS
|
||||
|
||||
ROM_MASK="*000400000011[cC]500*cxi"
|
||||
ROMFS="SinkingSapphire.romfs"
|
||||
DATA="${PATCHIMAGE_DATA_DIR}/Sinking Sapphire/"
|
||||
DATA="${PATCHIMAGE_DATA_DIR}/SinkingSapphire/"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -17,7 +16,7 @@ echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Source: https://projectpokemon.org/forums/showthread.php?49883-Pok%E9mon-Rising-Ruby-and-Sinking-Sapphire
|
||||
Source: https://twitter.com/Drayano60/status/662793363255656448
|
||||
Base ROM: Pokemon Alpha Sapphire
|
||||
Supported Versions: US, EU, JAP
|
||||
************************************************"
|
||||
@ -32,6 +31,6 @@ check_hans_files () {
|
||||
|
||||
patch_romfs () {
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}/Drop-In Files/Sinking Sapphire/Drop-It-In (CRO FOR LUMA3DS ONLY)/romfs/a/" romfs/
|
||||
cp -r "${RIIVOLUTION_DIR}"/a romfs/
|
||||
|
||||
}
|
||||
|
@ -1,18 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
GAMENAME="Tokyo Mirage Sessions #FE Restoration"
|
||||
GAMENAME="Tokyo Mirage Sessions #FE Uncensored"
|
||||
GAME_TYPE=DELTA
|
||||
|
||||
PATCH_FILES=( 000_map 010_character 030_etc 031_message 050_movie 999_etc_om 999_lua )
|
||||
|
||||
DOWNLOAD_LINKS=( "patch_000_map.xdelta+https://drive.google.com/uc?id=0BxykxdPQq3oZM0ViV2ZlQkFjSk0&export=download"
|
||||
"patch_010_character.xdelta+https://drive.google.com/uc?id=0BxykxdPQq3oZSzZzNVd4ejZYalE&export=download"
|
||||
"patch_030_etc.xdelta+https://drive.google.com/uc?id=0BxykxdPQq3oZNEZfN1hqOHVYZ0E&export=download"
|
||||
"patch_031_message.xdelta+https://drive.google.com/uc?id=0BxykxdPQq3oZTDlRdzlkUno3ZXM&export=download"
|
||||
"patch_050_movie.xdelta+https://drive.google.com/uc?id=0BxykxdPQq3oZNU5kNlh2d1VRQzQ&export=download"
|
||||
"patch_999_etc_om.xdelta+https://drive.google.com/uc?id=0BxykxdPQq3oZN2VxTERFY2JPUFU"
|
||||
"patch_999_lua.xdelta+https://drive.google.com/uc?id=0BxykxdPQq3oZUERRR0w2Nnl2YUk&export=download" )
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
@ -32,107 +24,54 @@ menu () {
|
||||
|
||||
status=8
|
||||
|
||||
if [[ ${PATCHIMAGE_RIIVOLUTION_DOWNLOAD} != TRUE ]]; then
|
||||
|
||||
if [[ ! ${XDELTA_PATH} ]]; then
|
||||
if [[ -d ${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration ]]; then
|
||||
XDELTA_PATH=${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration
|
||||
else
|
||||
echo -e "\nEnter path to the directory containing the delta patches:\n"
|
||||
read -er XDELTA_PATH || exit 75
|
||||
fi
|
||||
else status=9
|
||||
fi
|
||||
|
||||
if [[ ! -d ${XDELTA_PATH} ]]; then
|
||||
echo "PATH \"${XDELTA_PATH}\" does not exist!"
|
||||
exit 21
|
||||
fi
|
||||
|
||||
else
|
||||
echo -e "\nChecking whether to download required files\nmaximum ~1.9 Gigabyte. This may take a while."
|
||||
|
||||
[[ ! -d ${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration ]] && \
|
||||
mkdir ${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration
|
||||
XDELTA_PATH="${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration"
|
||||
for delta in ${DOWNLOAD_LINKS[@]}; do
|
||||
DL_NAME=${delta/+*}
|
||||
DL_LINK=${delta/*+}
|
||||
if [[ ${DL_NAME} == patch_999_etc_om.xdelta ]]; then
|
||||
if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration/${DL_NAME}" ]]; then
|
||||
wget -nv "${DL_LINK}" \
|
||||
-O "${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration/${DL_NAME}"__tmp || \
|
||||
( rm "${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration/${DL_NAME}"__tmp && \
|
||||
echo -e "\nDownload failed!" && exit 57 )
|
||||
mv "${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration/${DL_NAME}"__tmp \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration/${DL_NAME}"
|
||||
fi
|
||||
else
|
||||
if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration/${DL_NAME}" ]]; then
|
||||
${GDOWN} "${DL_LINK}" \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration/${DL_NAME}"__tmp || \
|
||||
( rm "${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration/${DL_NAME}"__tmp && \
|
||||
echo -e "\nDownload failed!" && exit 57 )
|
||||
mv "${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration/${DL_NAME}"__tmp \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}/TMSFE_Restoration/${DL_NAME}"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
if [[ ! ${XDELTA_PATH} ]]; then
|
||||
echo -e "\nEnter path to the directory containing the delta patches:\n"
|
||||
read -er XDELTA_PATH || exit 75
|
||||
else status=9
|
||||
fi
|
||||
|
||||
for file in ${PATCH_FILES[@]}; do
|
||||
if [[ ! -f ${XDELTA_PATH}/patch_${file}.xdelta ]]; then
|
||||
echo "Patch file patch_${file}.xdelta does not exist!"
|
||||
exit 75
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ! ${CPK_PATH} ]]; then
|
||||
echo -e "\nEnter path to the directory containing the game files (cpk):\n"
|
||||
read -er CPK_PATH || exit 75
|
||||
else status=9
|
||||
fi
|
||||
|
||||
if [[ ! -d ${CPK_PATH} ]]; then
|
||||
if [[ ! -d ${XDELTA_PATH} ]]; then
|
||||
echo "PATH \"${XDELTA_PATH}\" does not exist!"
|
||||
exit 21
|
||||
elif [[ ! -f ${XDELTA_PATH}/patch_000_map.xdelta ]]; then
|
||||
echo "PATH \"${XDELTA_PATH}\" does not contain the xdelta patches!"
|
||||
exit 21
|
||||
elif [[ ! -d ${CPK_PATH} ]]; then
|
||||
echo "PATH \"${CPK_PATH}\" does not exist!"
|
||||
exit 15
|
||||
elif [[ ! -f ${CPK_PATH}/pack_000_map.cpk ]]; then
|
||||
echo "PATH \"${CPK_PATH}\" does not contain the game files (cpk)!"
|
||||
exit 15
|
||||
fi
|
||||
|
||||
[[ -f ${CPK_PATH}/pack_000_map.cpk ]] && CPK_PATH=${CPK_PATH}
|
||||
[[ -f ${CPK_PATH}/vol/content/Pack/pack_000_map.cpk ]] && CPK_PATH=${CPK_PATH}/vol/content/Pack/
|
||||
|
||||
for file in ${PATCH_FILES[@]}; do
|
||||
if [[ ! -f ${CPK_PATH}/pack_${file}.cpk ]]; then
|
||||
echo "Original file pack_${file}.cpk does not exist!"
|
||||
exit 75
|
||||
fi
|
||||
done
|
||||
|
||||
echo ">>> status: ${status}"
|
||||
|
||||
}
|
||||
|
||||
patch () {
|
||||
|
||||
cd "${CURDIR}"
|
||||
BUILD_DIR="${CURDIR}"/TMSxFE-Restoration-Build
|
||||
|
||||
if [[ -d ${BUILD_DIR} ]]; then
|
||||
if [[ -d ${PWD}/TMSxFE-Uncensored ]]; then
|
||||
echo -e "\nremoving old files"
|
||||
rm -rf "${BUILD_DIR}"
|
||||
rm -rf "${PWD}"/TMSxFE-Uncensored
|
||||
fi
|
||||
|
||||
all=${#PATCH_FILES[@]}
|
||||
|
||||
echo -e "\n> copying cpk files"
|
||||
mkdir "${BUILD_DIR}"
|
||||
mkdir "${PWD}"/TMSxFE-Uncensored
|
||||
|
||||
cur=0
|
||||
for file in "${PATCH_FILES[@]}"; do
|
||||
cur=$((cur+1))
|
||||
echo ">> [${cur}/${all}] pack_${file}.cpk"
|
||||
cp "${CPK_PATH}"/pack_"${file}".cpk \
|
||||
"${BUILD_DIR}"
|
||||
"${PWD}"/TMSxFE-Uncensored
|
||||
done
|
||||
|
||||
cur=0
|
||||
@ -140,17 +79,17 @@ patch () {
|
||||
for patch in "${PATCH_FILES[@]}"; do
|
||||
cur=$((cur+1))
|
||||
echo ">> [${cur}/${all}] pack_${patch}.cpk"
|
||||
"${XD3}" -d -f -s "${BUILD_DIR}"/pack_"${patch}".cpk \
|
||||
"${XD3}" -d -f -s "${PWD}"/TMSxFE-Uncensored/pack_"${patch}".cpk \
|
||||
"${XDELTA_PATH}"/patch_"${patch}".xdelta \
|
||||
"${BUILD_DIR}"/pack_"${patch}".cpk_new || exit 51
|
||||
"${PWD}"/TMSxFE-Uncensored/pack_"${patch}".cpk_new || exit 51
|
||||
|
||||
mv "${BUILD_DIR}"/pack_"${patch}".cpk_new \
|
||||
"${BUILD_DIR}"/pack_"${patch}".cpk
|
||||
mv "${PWD}"/TMSxFE-Uncensored/pack_"${patch}".cpk_new \
|
||||
"${PWD}"/TMSxFE-Uncensored/pack_"${patch}".cpk
|
||||
done
|
||||
|
||||
echo -e "\n< Done patching
|
||||
<< Find your modified cpk files in:
|
||||
\n\t${BUILD_DIR}
|
||||
\n\t${PWD}/TMSxFE-Uncensored
|
||||
|
||||
Copy your complete dump (content, code, meta folders) to your SD-Card in
|
||||
|
||||
|
@ -54,7 +54,7 @@ while (-s $FILENAME < 100000) { # only if the file isn't the download yet
|
||||
}
|
||||
|
||||
sub execute_command() {
|
||||
$COMMAND="wget -nv --load-cookie $TEMP/cookie.txt --save-cookie $TEMP/cookie.txt \"$URL\"";
|
||||
$COMMAND="wget --load-cookie $TEMP/cookie.txt --save-cookie $TEMP/cookie.txt \"$URL\"";
|
||||
$COMMAND.=" -O \"$FILENAME\"" if $FILENAME ne '';
|
||||
`$COMMAND`;
|
||||
return 1;
|
||||
|
BIN
tools/megadl.32
BIN
tools/megadl.32
Binary file not shown.
BIN
tools/megadl.64
BIN
tools/megadl.64
Binary file not shown.
BIN
tools/wit.32
BIN
tools/wit.32
Binary file not shown.
BIN
tools/wit.64
BIN
tools/wit.64
Binary file not shown.
BIN
tools/wszst.32
BIN
tools/wszst.32
Binary file not shown.
BIN
tools/wszst.64
BIN
tools/wszst.64
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user