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 "6.2.0" have entirely different histories.
348
ChangeLog
348
ChangeLog
@ -1,351 +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
|
||||
- fix PATCHIMAGE_ROM_DIR setup when no ${HOME}/.patchimage.rc exists
|
||||
- fixed that the script expected wrong parameter --show-downloadlink
|
||||
instead of correct --show-download
|
||||
- fix error messages or required user-input during batch-build by
|
||||
creating a separate build directory, then create the mod and before
|
||||
the next build is done that build directory is removed and re-created
|
||||
- when ${PWD} is writable that will be ${PWD}/patchimage_build, else
|
||||
it will be ${HOME}/patchimage_build
|
||||
|
||||
::misc. changes
|
||||
- use 'read -er' instead of 'read -r' so that during user-input readline
|
||||
features like path-completion can be used.
|
||||
- in game information fix link to Pokemon Star Sapphire Thread
|
||||
- update Cliff Super Mario Bros. to version 1.0.4
|
||||
|
||||
v7.2.1 (20160822):
|
||||
::bug fixes
|
||||
- fix ID for Kirby's Adventure Wii and Mario Kart Wii for US versions
|
||||
|
||||
v7.2.0 (20160822):
|
||||
::internal changes
|
||||
- functions for applying IPS, PPF and BPS patches now check for patch zip files
|
||||
in ${PWD} and ${PACHIMAGE_RIIVOLUTION_DIR}, just like all other functions and
|
||||
unpack them, if found
|
||||
- functions for applying IPS, PPF and BPS patches now look in ${PWD} and
|
||||
${PATCHIMAGE_RIIVOLUTION_DIR} for patch files
|
||||
- functions for applying IPS, PPF and BPS patches thus only fail when they
|
||||
neither find a zip archive containing the patch, or the bare patch file
|
||||
- HANS patcher now supports applying DELTA patches
|
||||
- split out messages into message.sh
|
||||
- automatic downloading is not possible from SendSpace, update downloader
|
||||
function to inform user to manually download from there
|
||||
|
||||
::bug fixes
|
||||
- Pokemon Star Sapphire was accidently called Alpha Sapphire in the menu,
|
||||
also had wrong Short ID
|
||||
- fixed that Opening Title for US version was applied to EU version in
|
||||
MLG Super Mario Bros. Wii (fixes black screen on start)
|
||||
- fixed regression from version 7.1.0 that made it impossible to patch
|
||||
US version of New Super Mario Bros. Wii because it was looking for wrong
|
||||
ID SMNU01 instead of correct ID SMNE01
|
||||
- fixed black screen in Devil Mario Winter Special by not applying the custom
|
||||
openingTitle.arc for PAL New Super Mario Bros. Wii
|
||||
- fixed black screen in Remixed Super Mario Bros. Wii by not applying the custom
|
||||
openingTitle.arc for PAL and JAP New Super Mario Bros. Wii
|
||||
- fixed that the script did try to automatically download from mediafire instead
|
||||
of informing user to manually download
|
||||
|
||||
::command line parameters
|
||||
- add batch building short cuts for --game parameter:
|
||||
* NSMB_ALL build all NSMB Mods
|
||||
* PKMN_ALL build all Pokemon X, Y, Omega Ruby and Alpha Sapphire Mod
|
||||
* PKMN_X build all Pokemon X Mods
|
||||
* PKMN_Y build all Pokemon Y Mods
|
||||
* PKMN_OR build all Pokemon Omega Ruby Mods
|
||||
* PKMN_AS build all Pokemon Alpha Sapphire Mods
|
||||
- add --list-requirements ; show a detailed list of expected game images and
|
||||
Riivolution or HANS archives or Patches required for building
|
||||
- add --list-requirements-nsmb, --list-requirements-mkwiimmfi,
|
||||
--list-requirements-tokyo, --list-requirements-kirby,
|
||||
--list-requirements-pokemon, --list-requirements-3ds,
|
||||
--list-requirements-other, to show only requirements for mods of specific
|
||||
base games
|
||||
- add --show-download ; only show download like for games choosen in menu or
|
||||
given using --game parameter
|
||||
- added --list-games-nsmb, --list-games-mkwiimmfi, --list-games-tokyo,
|
||||
--list-games-kirby, --list-games-pokemon, --list-games-3ds, --list-games-other
|
||||
to show only mods for specific base games
|
||||
|
||||
::misc. changes
|
||||
- new download link for The Legend of Yoshi
|
||||
- update to version 2016-05-28 of The Legend of Yoshi
|
||||
- update to version 1.02 of New Super Mario Bros. Wii - Other World
|
||||
|
||||
::mod additions:
|
||||
- Mario Kart Wii Fonts:
|
||||
- added Super Mario Font
|
||||
- added Chalky Font
|
||||
- added UmePlus Font
|
||||
- sort files alphabetically in list
|
||||
- Mario Kart Wii Karts:
|
||||
- update Sonic the Hedgehog on Foot to version 1.5
|
||||
- add Black Mage on Wii Remote
|
||||
- add White Mage on Wii Remote
|
||||
- add Kirby on Wheelie
|
||||
- add Nabbit on Flame Runner
|
||||
- add Skull Kid on Bullet Bike
|
||||
- add Super Sonic on Mach Bike
|
||||
- add Wolf Link on Mach Bike
|
||||
|
||||
::game additions
|
||||
|
||||
:::New Super Mario Bros. Wii
|
||||
- add support for Cliff Super Mario Bros. Wii (SCL[PUJ]01)
|
||||
- add support for Challenging Super Mario Bros. Wii: Virtual Special (SMN[PUJ]ZC)
|
||||
|
||||
:::Pokemon
|
||||
- add support for Pokemon Red Ruby
|
||||
- supply HANS configuration files for Red Ruby
|
||||
- add support for Pokemon Delta Emerald (patch for Alpha Sapphire)
|
||||
- supply HANS configuration files for Delta Emerald
|
||||
- since the author of Delta Emerald is working on a patch for Omega Ruby
|
||||
aswell, the game and created files are called "DeltaEmerald-AS"
|
||||
[obviously they will be "DeltaEmerald-OR" for patched Omega Ruby]
|
||||
|
||||
v7.1.0:
|
||||
::internal changes
|
||||
- rewrite downloader function
|
||||
- supply beat BPS patcher (32 and 64 bit)
|
||||
- add (yet unused) patching functions for PPF patches
|
||||
- add (yet unused) patching functions for BPS patches
|
||||
- code cleanup, remove duplicated code
|
||||
|
||||
::bugfixes
|
||||
- fixup The Legend of Zelda - Parallel Worlds patcher
|
||||
- fixup --patch command line parameter
|
||||
|
||||
::misc. changes
|
||||
- removed download link for Awesomer Super Luigi Mini (down)
|
||||
- new download link for RVLution Wii
|
||||
- new download link for Newer Falling Leaf
|
||||
- fix download link for Midi's Super Mario Wii
|
||||
- fix download link for Newer Apocalypse
|
||||
- New Super Mario Bros. Wii character mod: allow only restoring
|
||||
original characters without further changes
|
||||
- update nsmbw.db
|
||||
|
||||
::game additions
|
||||
|
||||
:::New Super Mario Bros. Wii
|
||||
- add support for MLG Super Luigi Bros. Wii
|
||||
|
||||
v7.0.0:
|
||||
::internal changes
|
||||
- add PATCHIMAGE_DIR new internal variable
|
||||
- add PATCHIMAGE_DATABASE_DIR new internal variable
|
||||
- add PATCHIMAGE_OVERRIDE_DIR new internal variable
|
||||
- add UNP_EXTRA_ARGS new internal variable
|
||||
- make check_input_rom a common.sh function, prevent duplicated code
|
||||
- shift around some paths
|
||||
- update database with New Super Mario Bros. Wii mods
|
||||
- code review and improvements
|
||||
- improved Debian GNU/Linux packaging
|
||||
- install pre-compiled tools to /usr/lib/ARCH/patchimage (FHS compliance)
|
||||
- improved --help message
|
||||
- add --list-games parameter (show buildable games)
|
||||
- --list-games and menu now show ID / Short Name and Full Name of all games
|
||||
- add --override-szs to override Wiims Mario Kart Fun wit and szs with
|
||||
the ones supplied by patchimage. Use this if building Wiims Mario Kart Fun
|
||||
fails due to incompatible library versions being installed.
|
||||
- add batch mode for generating more than one mod at once
|
||||
|
||||
::bug fixes
|
||||
- several minor bugfixes and improvements
|
||||
- before creating any of the directories defined in ${HOME}/.patchimage.rc
|
||||
check whether the parent directory is writeable, else fallback to ${HOME}
|
||||
- when setting destination directory for created files, check if they are
|
||||
writeable, else fallback to ${HOME}
|
||||
- fix telling user path to Hans Files for all Pokemon game hacks
|
||||
- make the script more robust against directories with spaces in their names
|
||||
- use gdown.pl for drive.google.* download links
|
||||
- for download links on Mega tell user where to download manually
|
||||
- for download links on Mediafire tell user where to download manually
|
||||
- patchimage menu showed TMS1 as ID for Tokyo Mirage Sessions #FE restoration
|
||||
patcher, while TMSFE was the actual (but wrong ID), thus TMS1 was reported
|
||||
as unknown game / wrong user input. Now TMS1 works as expected.
|
||||
- archive name for Newer Super Mario Bros. Wii has changed
|
||||
|
||||
::configuration file changes
|
||||
- new configuration variable PATCHIMAGE_3DS_DIR, global directory
|
||||
where to look for unmodified 3DS ROM files
|
||||
- new configuration variable PATCHIMAGE_ROM_DIR, global directory
|
||||
where to store your modified 3DS ROM files
|
||||
|
||||
::documentation
|
||||
- update REAMDE
|
||||
- update README.RC
|
||||
- update README.STATUS_CODES
|
||||
- update README.GAMEIDS
|
||||
- now includes game search paths
|
||||
- now includes expected filenames
|
||||
|
||||
::misc. changes
|
||||
- make check_input_rom search in both ${PATCHIMAGE_3DS_DIR} and ${PWD}
|
||||
- show full path for Hans Files for all games, instead of relative
|
||||
- only show path to Hans files if they exist
|
||||
- when downloading covers for Wii games fail, retry with the US cover
|
||||
- don't re-download covers that already exist
|
||||
- don't re-download soundtracks that already exist
|
||||
- for NSMBW character mods, Mario Kart Wii font, item and kart mods,
|
||||
don't download the files from the interwebs, instead use files supplied
|
||||
and installed with patchimage
|
||||
|
||||
::game additions
|
||||
|
||||
::::New Super Mario Bros. Wii
|
||||
- add support for Revised Super Mario Bros. Wii
|
||||
|
||||
::::Pokemon
|
||||
- add support for Pokemon Eternal X
|
||||
- choose between legal, rebalanced and insanity version
|
||||
- for legal and rebalanced, choose whether to nerf first gym leader
|
||||
- add support for Pokemon Wilting Y
|
||||
- choose between legal, rebalanced and insanity version
|
||||
- for legal and rebalanced, choose whether to nerf first gym leader
|
||||
- add support for Pokemon Rising Ruby
|
||||
- provide custom Hans banner and launcher
|
||||
- add support for Pokemon Sinking Sapphire
|
||||
- provide custom Hans banner and launcher
|
||||
|
||||
::::Other
|
||||
- add support for Bravely Second Uncensored
|
||||
- fully supports both EUR and USA game version
|
||||
- auto-detects provided game version in ${PWD} or ${PATCHIMAGE_3DS_DIR}
|
||||
- provide Hans configuration
|
||||
|
||||
::game changes and updates
|
||||
- update download link for Pokemon Rutile Ruby to v2.1
|
||||
- update download link for Pokemon Star Sapphire to v2.1
|
||||
|
||||
v6.3.0:
|
||||
- supply ctrtool (32 and 64 bit versions)
|
||||
- supply 3dstool (32 and 64 bit versions)
|
||||
- add support for Pokemon Neo X
|
||||
- choose between full and lite version
|
||||
- provide custom HANS banner and launcher
|
||||
- add support for Pokemon Neo Y
|
||||
- choose between full and lite version
|
||||
- provide custom HANS banner and launcher
|
||||
- add support for Pokemon Rutile Ruby
|
||||
- choose between legit, leveled and 679 build
|
||||
- add support for Pokemon Star Sapphire
|
||||
- choose between legit, leveled and 679 build
|
||||
|
||||
v6.2.2:
|
||||
- when running patchimage from git, use it's tools, scripts and stuff,
|
||||
instead of system-wide (if) installed
|
||||
- simple progress [x/y] visualization for Tokyo Mirage Sessions #FE
|
||||
- minor internal changes
|
||||
|
||||
v6.2.1:
|
||||
- support for MKWiimm 2016-07
|
||||
- update MKWiimm 2016-02 to v2
|
||||
- update Tokyo Mirage Sessions #FE patcher for version
|
||||
0.9.4 of the patch
|
||||
- update szs to 1.52
|
||||
|
||||
v6.2.0:
|
||||
- code improvements for MKWiimm
|
||||
- supply xdelta3 (32 and 64 bit versions)
|
||||
|
2
LICENSE.EXTRA
Normal file
2
LICENSE.EXTRA
Normal file
@ -0,0 +1,2 @@
|
||||
wit.*: GNU GPL v2+
|
||||
patches/*: as-is
|
21
Makefile
21
Makefile
@ -1,31 +1,14 @@
|
||||
all:
|
||||
@echo "nothing to do, use 'make install'"
|
||||
@echo "nothing to do"
|
||||
|
||||
install:
|
||||
mkdir -p $(DESTDIR)/usr/bin/
|
||||
mkdir -p $(DESTDIR)/usr/share/patchimage/
|
||||
cp -rv data database patches scripts $(DESTDIR)/usr/share/patchimage/
|
||||
cp -rv patches tools override script.d $(DESTDIR)/usr/share/patchimage/
|
||||
install -m755 patchimage.sh $(DESTDIR)/usr/bin/patchimage
|
||||
if [ $(shell uname -m) = x86_64 ]; then \
|
||||
mkdir -p $(DESTDIR)/usr/lib/x86_64-linux-gnu/patchimage/tools ; \
|
||||
mkdir -p $(DESTDIR)/usr/lib/x86_64-linux-gnu/patchimage/override ; \
|
||||
cp -rv tools/*.64 tools/unp tools/ucat tools/gdown.pl tools/ignore_3dstool.txt \
|
||||
$(DESTDIR)/usr/lib/x86_64-linux-gnu/patchimage/tools ; \
|
||||
cp -rv override/linux64 $(DESTDIR)/usr/lib/x86_64-linux-gnu/patchimage/override ; \
|
||||
else mkdir -p $(DESTDIR)/usr/lib/i386-linux-gnu/patchimage/tools ; \
|
||||
mkdir -p $(DESTDIR)/usr/lib/i386-linux-gnu/patchimage/override ; \
|
||||
cp -rv tools/*.32 tools/unp tools/ucat tools/gdown.pl tools/ignore_3dstool.txt \
|
||||
$(DESTDIR)/usr/lib/i386-linux-gnu/patchimage/tools ; \
|
||||
cp -rv override/linux32 $(DESTDIR)/usr/lib/i386-linux-gnu/patchimage/override ; \
|
||||
fi
|
||||
|
||||
uninstall:
|
||||
rm -rf $(DESTDIR)/usr/share/patchimage
|
||||
rm -f $(DESTDIR)/usr/bin/patchimage
|
||||
if [ $(shell uname -m) = x86_64 ]; then \
|
||||
rm -rf $(DESTDIR)/usr/lib/x86_64-linux-gnu/patchimage ; \
|
||||
else rm -rf $(DESTDIR)/usr/lib/i386-linux-gnu/patchimage ; \
|
||||
fi
|
||||
|
||||
clean:
|
||||
@echo "nothing to"
|
||||
|
89
README
89
README
@ -1,70 +1,47 @@
|
||||
Based on DMMs and Wiimms excellent work, I've created a flexible patchscript
|
||||
for GNU/Linux. Patchimage is a script that allows to patch riivoluton, ips
|
||||
or xdelta patches into wbfs or iso images of legal game dumps, ROMs or dumped
|
||||
cpk files.
|
||||
Based on DMMs and Wiimms excellent work, I've created a flexible
|
||||
patchscript for GNU/Linux. Additionally to riivolution patches, this
|
||||
one will also allow patching ROMs using ips/ppf patches. And more...
|
||||
|
||||
features include:
|
||||
- downloading riivolution files or patches
|
||||
- downloading soundtracks (if available)
|
||||
- downloading custom banners for Wii games (if available)
|
||||
- downloading covers for Wii games (if available)
|
||||
- automatic storing of patched games into desired destination (see README.RC)
|
||||
- automatic patching of Wii games, 3DS games, Wii U games
|
||||
- replacing characters, fonts and items in Mario Kart Wii
|
||||
- replacing characters in New Super Mario Bros. Wii
|
||||
- replacing first players Kirby in Kirby's Adventure Wii
|
||||
- patch Nintendo WFC compatible games to use WiimmFi server
|
||||
patchimage allows choosing a custom GAMEID, aswell as downloading
|
||||
riivolution-files, patches and soundtrack (if available).
|
||||
|
||||
NOTE: don't fiddle around with sub-folders in riivolution-files, the script uses
|
||||
files as "unzip" creates them. No need to modify anything.
|
||||
NOTE: don't fiddle around with sub-folders in riivolution-files, the
|
||||
script uses files as "unzip" creates them. No need to modify whatever.
|
||||
|
||||
You need the original games to do this legally, if you don't own the original,
|
||||
you can't blame me. patchimage is 100% legal, as it does not contain any
|
||||
propritary contents, nor is able to grab them.
|
||||
... Well, you need the original game to do this legally, if you don't
|
||||
own the original, you can't blame me. patchimage is 100% legal, as it
|
||||
does not contain any propritary contents, nor is able to grab them.
|
||||
|
||||
patchimage supports the following base games:
|
||||
* New Super Mario Bros. Wii
|
||||
* Kirby's Adventure Wii
|
||||
* Mario Kart Wii
|
||||
* Tokyo Mirage Sessions #FE
|
||||
* Pokemon X
|
||||
* Pokemon Y
|
||||
* Pokemon Omega Ruby
|
||||
* Pokemon Alpha Sapphire
|
||||
* Bravely Second
|
||||
Starting with versions 4.90 and up, patchimage support Mario Kart Wiimm
|
||||
and Wimmfi (custom server for Mario Kart Wii and other games after the
|
||||
official server's shutdown).
|
||||
|
||||
More information:
|
||||
* supported game modifcations, search paths and expecte file names
|
||||
see README.GAMEIDS
|
||||
* supported commandline flags
|
||||
see README.CMD_OPTS
|
||||
* configuration file example
|
||||
see README.RC
|
||||
* status code while processing
|
||||
see README.STATUS_CODES
|
||||
* exit codes (for debugging)
|
||||
see README.EXIT_CODES
|
||||
* supported games: see file README.GAMEIDS
|
||||
* supported commandline flags: see file README.CMD_OPTS
|
||||
* configuration file example: see file README.RC
|
||||
* status code while processing: see file README.STATUS_CODES
|
||||
* exit codes (for debugging): see file README.EXIT_CODES
|
||||
|
||||
Example usages:
|
||||
Default searchpaths:
|
||||
|
||||
Newer Super Mario Bros. Wii
|
||||
$ patchimage --game=NewerSMBW --iso=/home/test/SMNP01.iso --download
|
||||
ISO: BASE.iso / BASE.wbfs / GAMEID.iso / GAMEID.wbfs
|
||||
Riivolution: Original name of the zip / unpacked folder
|
||||
ROM: some mask matching the file (eg: "*[Ll]ink*[Pp]ast*smc" for Zelda: Parallel Worlds)
|
||||
|
||||
Zelda: Parallel Worlds
|
||||
$ patchimage --game=ParallelWorlds --rom=/home/test/ALTTP.smc --download
|
||||
Example usage:
|
||||
|
||||
Toyko Mirage Sessions #FE Restoration
|
||||
$ patchimage --game=TMSFE --xdelta=/home/test/xdelta/ \
|
||||
--cpk=/home/test/ASEP01/content/Pack/
|
||||
NewerSMBW:
|
||||
$ patchimage --game=NewerSMBW --iso=/home/test/SMNP01.iso --download
|
||||
|
||||
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
|
||||
Zelda: Parallel Worlds
|
||||
$ patchimage --game=ParallelWorlds --rom=/home/test/ALTTP.smc --download
|
||||
|
||||
License: GNU GPLv3
|
||||
Extra Licenses:
|
||||
> applyppf3 as-is
|
||||
> xml patches as-is
|
||||
> other tools GNU GPL v2 / GNU GPL v3
|
||||
|
||||
> wit GNU GPL v2
|
||||
> szs GNU GPL v2
|
||||
> uips GNU GPL v2
|
||||
> applyppf3 as-is
|
||||
> xml-patchfiles as-is
|
||||
|
@ -1,62 +1,45 @@
|
||||
*** General parameters ***
|
||||
--help | show this message
|
||||
--game=<ID/Short Name> | specify game you want to create
|
||||
--game=<ID1/Short Name1> <ID2/Short Name2> | specify multiple games you want to create
|
||||
--show-download | only show download link for required files
|
||||
Parameters
|
||||
--game={NewerSMB;NewerSummerSun;AnotherSMBW;HolidaySpecial;ParallelWorlds...}
|
||||
specify game to create (if none is provided, the script will ask you)
|
||||
|
||||
*** List games ***
|
||||
--list-games | show possible options for --game
|
||||
--list-games-nsmb | show possible New Super Mario Bros. Wii options for --game
|
||||
--list-games-mkwiimmfi | show possible Mario Kart Wii / Wiimmfi options for --game
|
||||
--list-games-tokyo | show possible Tokyo Mirage Sessions #FE options for --game
|
||||
--list-games-kirby | show possible for Kirby's Adventure Wii options for --game
|
||||
--list-games-pokemon | show possible Pokemon options for --game
|
||||
--list-games-3ds | show possible 3DS options for --game
|
||||
--list-games-other | show possible other options for --game
|
||||
--iso/--rom=/home/test/<Image>
|
||||
specify path to the original ISO/ROM
|
||||
|
||||
*** List requirements ***
|
||||
--list-requirements | show required image and patch files all games
|
||||
--list-requirements-nsmb | show required image and patch files for New Super Mario Bros. Wii
|
||||
--list-requirements-mkwiimmfi | show required image and patch files for Mario Kart Wii / Wiimmfi
|
||||
--list-requirements-tokyo | show required files and patches for Tokyo Mirage Sessions #FE
|
||||
--list-requirements-kirby | show required image and patch files for Kirby's Adventure Wii
|
||||
--list-requirements-pokemon | show required image and patch files for Pokemon games
|
||||
--list-requirements-3ds | show required image and patch files for other 3DS games
|
||||
--list-requirements-other | show required image and patch files for other games
|
||||
--riivolution/--patch=<Patch>
|
||||
specify path to Riivolution/Patch files
|
||||
|
||||
*** Wii game parameters ***
|
||||
--iso=/home/test/RMCP01.iso | specify path to Wii iso or wbfs image to use
|
||||
--riivolution=/home/test/MyMod.zip | specify path to Wii Riivolution archive
|
||||
--version=EURv1,EURv2,USAv1,USAv2,JPNv1 | specify your game version (New Super Mario Bros. Wii)
|
||||
--customdid=SMNP02 | specify a custom ID to use for the modified Wii game
|
||||
--sharesave | let modified Wii games share savegame with the original game
|
||||
--download | download Riivolution or HANS patch archives (if possible)
|
||||
--soundtrack | download soundtrack (if available)
|
||||
--only-soundtrack | download soundtrack only (if available) and exit
|
||||
--covers | download covers (if available)
|
||||
--only-covers=SMNP02 | download covers only (if available)
|
||||
--banner=<banner.bnr> | use a custom banner (Riivolution games)
|
||||
--download-banner | download a custom banner (if available)
|
||||
--override-szs | override wit and szs in Wiimms Mario Kart Fun distributions
|
||||
| [use this if the originals fail due to incompatible library versions]
|
||||
--version=EURv1,EURv2,USAv1,USAv2,JPNv1
|
||||
specify your game version (for NSMB, if auto-detection fails)
|
||||
|
||||
*** 3DS game parameters ***
|
||||
--rom=/home/test/0004000000055e00.cxi | specify path to 3DS ROM to use for building
|
||||
--hans=/home/test/MyModdedGame.zip | specify path to 3DS HANS archive
|
||||
--customdid=SMNP02
|
||||
specify a custom ID to use for the game
|
||||
|
||||
*** Wii U game parameters ***
|
||||
--xdelta=/home/test/xdelta | specify path to Tokyo Mirage Sessions #FE xdelta patches
|
||||
--cpk=/home/test/cpk | specify path to original Tokyo Mirage Mirage Sessions #FE files
|
||||
--sharesave
|
||||
let modified game share savegame with original game
|
||||
|
||||
*** Other game parameters ***
|
||||
--rom=/home/test/MyGame.rom | specify path to ROM to use for building
|
||||
--patch=/home/test/MyModdedGame.ips | specify path to IPS Patch file
|
||||
--download
|
||||
download riivolution/patchfiles
|
||||
|
||||
*** Batch-Building shortcuts ***
|
||||
--game=NSMB_ALL | build all mods of New Super Mario Bros. Wii
|
||||
--game=PKMN_ALL | build all mods of Pokemon X, Y, Omega Ruby, Alpha Sapphire
|
||||
--game=PKMN_X | build all mods of Pokemon X
|
||||
--game=PKMN_Y | build all mods of Pokemon Y
|
||||
--game=PKMN_OR | build all mods of Pokemon Omega Ruby
|
||||
--game=PKMN_AS | build all mods of Pokemon Alpha Sapphire
|
||||
--soundtrack
|
||||
download soundtrack (if available)
|
||||
|
||||
--only-soundtrack
|
||||
only download soundtrack (if available) and exit
|
||||
|
||||
--covers
|
||||
download covers (if available)
|
||||
|
||||
--only-covers=SMNP02
|
||||
only download covers (if available) and exit
|
||||
|
||||
--banner=<banner>
|
||||
specify a custom banner to use
|
||||
|
||||
--download-banner
|
||||
download a custom banner (if available)
|
||||
|
||||
--xdelta=<path>
|
||||
path to xdelta patches (Tokyo Mirage Sessions #FE)
|
||||
|
||||
--cpk=<path>
|
||||
path to unmodified cpk files (Tokyo Mirage Sessions #FE)
|
||||
|
@ -13,7 +13,7 @@ right after the failure will you show the following:
|
||||
33 custom banner specified from command line is not a .bnr file
|
||||
39 custom game id specified from command line is not a 6 digit alphanumeric
|
||||
45 error copying new game files
|
||||
51 wit/ips/applyppf/szs/xdelta3/3dstool/ctrtool caught an error processing files
|
||||
51 wit/ips/applyppf/szs/xdelta3 caught an error processing files
|
||||
57 wget caught an error while downloading
|
||||
63 unp caught an error while unpacking a file
|
||||
69 wiimmfi caught an error patching the image
|
||||
|
107
README.GAMEIDS
107
README.GAMEIDS
@ -2,58 +2,38 @@ GAMEIDS
|
||||
|
||||
### New Super Mario Bros. Wii ###
|
||||
|
||||
>> searched paths:
|
||||
|
||||
a) ${PWD}
|
||||
b) ${PATCHIMAGE_WBFS_DIR}
|
||||
|
||||
>> expected filenames
|
||||
|
||||
a) SMN?01.iso
|
||||
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
|
||||
SLB?01 MLG Super Luigi Bros. Wii
|
||||
SLF?01 NSMBW3: The Final Levels
|
||||
SMM?02 Super Mario: Mushroom Adventure PLUS - Winter Moon
|
||||
SMN?01 Original New Super Mario Bros. Wii
|
||||
SMN?02 ?
|
||||
SMN?03 Newer Super Mario Bros. Wii
|
||||
SMN?04 Canon Super Mario Bros. Wii
|
||||
SMN?05 Another Super Mario Bros. Wii
|
||||
SMN?06 Newer Summer Sun
|
||||
SMN?07 Newer Holiday Special
|
||||
SMN?08 Epic Super Bowser World
|
||||
SMN?09 ?
|
||||
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
|
||||
SMN?65 Ghostly Super Ghost Boos. Wii
|
||||
SMN?66 The Legend of Yoshi
|
||||
SMN?69 Revised Super Mario Bros. Wii
|
||||
SMN?DU DarkUmbra Super Mario Bros: Anniversary Edition
|
||||
SMN?FL Newer: Falling Leaf
|
||||
SMN?MI Midi's Super Mario Bros Wii - Just A Little Adventure
|
||||
SMN?RV RVLution Wii (NewSMB Mod)
|
||||
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
|
||||
MRR?01 New Super Mario Bros. Wii Retro Remix
|
||||
|
||||
### Mario Kart Wii ###
|
||||
|
||||
>> searched paths:
|
||||
|
||||
a) ${PWD}
|
||||
b) ${PATCHIMAGE_WBFS_DIR}
|
||||
|
||||
>> expected filenames
|
||||
|
||||
a) RMC?01.iso
|
||||
b) RMC?01.wbfs
|
||||
|
||||
RMC?01 Original Mario Kart Wii
|
||||
RMC?06 Wiimms MKW Fun 2010-12
|
||||
RMC?07 Wiimms MKW Retro 2011-02
|
||||
RMC?08 Wiimms MKW Fun 2011-03
|
||||
@ -80,79 +60,12 @@ RMC?28 Wiimms MKW-Fun 2015-05
|
||||
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 ###
|
||||
|
||||
>> searched paths:
|
||||
|
||||
a) ${PWD}
|
||||
b) ${PATCHIMAGE_WBFS_DIR}
|
||||
|
||||
>> expected filenames
|
||||
|
||||
a) SUK?01.iso
|
||||
b) SUK?01.wbfs
|
||||
|
||||
SUK?01 Kirby's Adventure Wii
|
||||
* exchange first player's character
|
||||
|
||||
### Pokemon ###
|
||||
|
||||
>> searched paths:
|
||||
|
||||
a) ${PWD}
|
||||
b) ${PATCHIMAGE_3DS_DIR}
|
||||
|
||||
>> expected filenames
|
||||
|
||||
a) GAMEID.cxi
|
||||
|
||||
0004000000055D00 Pokemon X
|
||||
* Pokemon Neo X
|
||||
* Pokemon Eternal X
|
||||
0004000000055E00 Pokemon Y
|
||||
* Pokemon Neo Y
|
||||
* Pokemon Wilting Y
|
||||
000400000011C400 Pokemon Omega Ruby
|
||||
* Pokemon Rutile Ruby
|
||||
* Pokemon Rising Ruby
|
||||
000400000011C500 Pokemon Alpha Sapphire
|
||||
* Pokemon Star Sapphire
|
||||
* Pokemon Sinking Sapphire
|
||||
* Pokemon Delta Emerald (Alpha Saphhire)
|
||||
|
||||
### Bravely ###
|
||||
|
||||
>> searched paths:
|
||||
|
||||
a) ${PWD}
|
||||
b) ${PATCHIMAGE_3DS_DIR}
|
||||
|
||||
>> expected filenames
|
||||
|
||||
a) GAMEID.cxi
|
||||
|
||||
000400000017BB00 Bravely Second
|
||||
* De-Censoring the game
|
||||
SUK?01 Kirby's Adventure Wii (only exchanging first
|
||||
player's character is supported)
|
||||
|
||||
### Toyko Mirage Sessions #FE ###
|
||||
|
||||
>> searched paths:
|
||||
|
||||
none (specified by user)
|
||||
|
||||
>> expected filenames
|
||||
|
||||
none (specified by user)
|
||||
|
||||
ASE?01 De-Censoring the game
|
||||
Not relevant
|
||||
|
@ -18,12 +18,6 @@ PATCHIMAGE_WBFS_DIR=/media/chris/WiiHDDX/wbfs
|
||||
# global directory your wbfs files will be saved to
|
||||
PATCHIMAGE_GAME_DIR=/media/chris/WiiHDDX/wbfs
|
||||
|
||||
# global directory where your rom files will be saved to
|
||||
PATCHIMAGE_3DS_DIR=/media/sde1/
|
||||
|
||||
# global directory where your rom files will be saved to
|
||||
PATCHIMAGE_ROM_DIR=/media/sde1/hans/
|
||||
|
||||
# global directory soundtracks will be saved to
|
||||
PATCHIMAGE_AUDIO_DIR=${HOME}/Music
|
||||
|
||||
|
@ -1,23 +1,21 @@
|
||||
While the script executes you will see some status codes, below you will find the meaning:
|
||||
|
||||
phase code meaning
|
||||
*** 1) 0 neither BASE.iso nor BASE.wbfs found
|
||||
1 BASE.iso found in ${PWD}
|
||||
2 BASE.wbfs found in ${PWD}
|
||||
3 xdelta/cpk found based on interactive user-input
|
||||
4 xdelta/cpk found based on non-interactive user-input
|
||||
|
||||
*** 1) 0 no <GAMEID>.iso/.wbfs found (or required if *** 1) exited with 1 or 2)
|
||||
*** 2) 0 no <GAMEID>.iso/.wbfs found (or required if *** 1) exited with 1 or 2)
|
||||
1 <GAMEID>.iso found in ${PWD}
|
||||
2 <GAMEID>.wbfs found in ${PWD}
|
||||
3 <GAMEID>.iso found in ${PATCHIMAGE_WBFS_DIR}
|
||||
4 <GAMEID>.wbfs found in ${PATCHIMAGE_WBFS_DIR}
|
||||
5 no <MASK>.cxi found (3DS ROM)
|
||||
6 <MASK>.cxi found in ${PWD}
|
||||
7 <MASK>.cxi found in ${PATCHIMAGE_3DS_DIR}
|
||||
8 xdelta/cpk found based on interactive user-input
|
||||
9 xdelta/cpk found based on non-interactive user-input
|
||||
4 <GAMEID>.iso found in ${PATCHIMAGE_WBFS_DIR}
|
||||
|
||||
*** 2) 0 no riivolution files found unpacked in ${PWD}
|
||||
*** 3) 0 no riivolution files found unpacked in ${PWD}
|
||||
1 riivolution files/archive not found in ${PWD}
|
||||
2 riivolution archive found in ${PWD}
|
||||
3 riivolution archive found in ${PATCHIMAGE_RIIVOLUTION_DIR}
|
||||
4 patchimage was told to download riivolution archive, but no link is available
|
||||
5 patchimage is downloading riivolution archive
|
||||
6 patchimage was told to download riivolution archive, but manual download is required
|
||||
[for websites like mediafire, mega that don't work (well) with wget]
|
||||
|
@ -1,6 +0,0 @@
|
||||
region : -1
|
||||
language : -1
|
||||
clock : 0
|
||||
romfs : 0
|
||||
code : 1
|
||||
nim_checkupdate : 1
|
@ -1,6 +0,0 @@
|
||||
region : -1
|
||||
language : -1
|
||||
clock : 0
|
||||
romfs : 0
|
||||
code : 1
|
||||
nim_checkupdate : 1
|
@ -1,11 +0,0 @@
|
||||
<shortcut>
|
||||
<executable>/3ds/hans/hans.3dsx</executable>
|
||||
<icon></icon>
|
||||
<arg>-f/3ds/hans/titles/DeltaEmerald-AS.txt</arg>
|
||||
<author>zakeblast</author>
|
||||
</shortcut>
|
||||
|
||||
<targets selectable="0">
|
||||
<title mediatype="1">000400000011C500</title>
|
||||
<title mediatype="2">000400000011C500</title>
|
||||
</targets>
|
@ -1,6 +0,0 @@
|
||||
region : -1
|
||||
language : -1
|
||||
clock : 1
|
||||
romfs : 0
|
||||
code : 1
|
||||
nim_checkupdate : 1
|
Binary file not shown.
@ -1,9 +0,0 @@
|
||||
<shortcut>
|
||||
<executable>/3ds/hans/hans.3dsx</executable>
|
||||
<icon>/3ds/NeoX.smdh</icon>
|
||||
<arg>-f/3ds/hans/titles/neox.txt</arg>
|
||||
</shortcut>
|
||||
<targets selectable="false">
|
||||
<title mediatype="2">0004000000055D00</title>
|
||||
<title mediatype="1">0004000000055D00</title>
|
||||
</targets>
|
@ -1,6 +0,0 @@
|
||||
region : -1
|
||||
language : -1
|
||||
clock : 1
|
||||
romfs : 0
|
||||
code : 1
|
||||
nim_checkupdate : 1
|
Binary file not shown.
@ -1,9 +0,0 @@
|
||||
<shortcut>
|
||||
<executable>/3ds/hans/hans.3dsx</executable>
|
||||
<icon>/3ds/NeoY.smdh</icon>
|
||||
<arg>-f/3ds/hans/titles/neoy.txt</arg>
|
||||
</shortcut>
|
||||
<targets selectable="false">
|
||||
<title mediatype="2">0004000000055E00</title>
|
||||
<title mediatype="1">0004000000055E00</title>
|
||||
</targets>
|
@ -1,6 +0,0 @@
|
||||
region : -1
|
||||
language : -1
|
||||
clock : 1
|
||||
romfs : 0
|
||||
code : 1
|
||||
nim_checkupdate : 1
|
@ -1,11 +0,0 @@
|
||||
<shortcut>
|
||||
<executable>/3ds/hans/hans.3dsx</executable>
|
||||
<icon></icon>
|
||||
<arg>-f/3ds/hans/titles/RedRuby.txt</arg>
|
||||
<author>TheGreek Boy</author></author>
|
||||
</shortcut>
|
||||
|
||||
<targets selectable="0">
|
||||
<title mediatype="1">000400000011C400</title>
|
||||
<title mediatype="2">000400000011C400</title>
|
||||
</targets>
|
@ -1,6 +0,0 @@
|
||||
region : -1
|
||||
language : -1
|
||||
clock : 1
|
||||
romfs : 0
|
||||
code : 1
|
||||
nim_checkupdate : 1
|
Binary file not shown.
@ -1,10 +0,0 @@
|
||||
<shortcut>
|
||||
<executable>/3ds/hans/hans.3dsx</executable>
|
||||
<icon>/3ds/RisingRuby.smdh</icon>
|
||||
<arg>-f/3ds/hans/titles/RisingRuby.txt</arg> <author>Drayano</author>
|
||||
</shortcut>
|
||||
|
||||
<targets selectable="0">
|
||||
<title mediatype="1">000400000011C400</title>
|
||||
<title mediatype="2">000400000011C400</title>
|
||||
</targets>
|
@ -1,6 +0,0 @@
|
||||
region : -1
|
||||
language : -1
|
||||
clock : 1
|
||||
romfs : 0
|
||||
code : 0
|
||||
nim_checkupdate : 1
|
Binary file not shown.
Binary file not shown.
@ -1,10 +0,0 @@
|
||||
<shortcut>
|
||||
<executable>/3ds/hans/hans.3dsx</executable>
|
||||
<icon>/3ds/SinkingSapphire.smdh</icon>
|
||||
<arg>-f/3ds/hans/titles/SinkingSapphire.txt</arg> <author>Drayano</author>
|
||||
</shortcut>
|
||||
|
||||
<targets selectable="0">
|
||||
<title mediatype="1">000400000011C500</title>
|
||||
<title mediatype="2">000400000011C500</title>
|
||||
</targets>
|
@ -1,6 +0,0 @@
|
||||
region : -1
|
||||
language : -1
|
||||
clock : 1
|
||||
romfs : 0
|
||||
code : 0
|
||||
nim_checkupdate : 1
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,52 +0,0 @@
|
||||
NSMB1:NewerSMB:nsmbw/newersmb.sh
|
||||
NSMB2:NewerSummerSun:nsmbw/newersummersun.sh
|
||||
NSMB3:AnotherSMB:nsmbw/anothersmb.sh
|
||||
NSMB4:HolidaySpecial:nsmbw/newerholiday.sh
|
||||
NSMB5:Cannon:nsmbw/cannon.sh
|
||||
NSMB6:BowserWorld:nsmbw/epicbowserworld.sh
|
||||
NSMB7:KoopaCountry:nsmbw/koopacountry.sh
|
||||
NSMB8:NewSuperMarioBros4:nsmbw/nsmbw4.sh
|
||||
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
|
||||
NSMB14:Sykland:nsmbw/skyland.sh
|
||||
NSMB15:RVLution:nsmbw/rvlution.sh
|
||||
NSMB16:Midi:nsmbw/midissupermariowii.sh
|
||||
NSMB17:DarkUmbra:nsmbw/darkumbrasmb.sh
|
||||
NSMB18:NewerApocalypse:nsmbw/newerapocalypse.sh
|
||||
NSMB19:LuigisSuperYoshiBros:nsmbw/luigissuperyoshibros.sh
|
||||
NSMB20:NewerFallingLeaf:nsmbw/newerfallingleaf.sh
|
||||
NSMB21:DevilMarioWinterSpecial:nsmbw/devilmariowinterspecial.sh
|
||||
NSMB22:NewSMBWOtherWorld:nsmbw/newsmbwotherworld.sh
|
||||
NSMB23:TheLegendOfYoshi:nsmbw/thelegendofyoshi.sh
|
||||
NSMB24:RemixedSuperMarioBros:nsmbw/remixedsupermariobroswii.sh
|
||||
NSMB25:GhostlySuperGhostBoos:nsmbw/ghostlysuperghostbooswii.sh
|
||||
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
|
||||
MKW3:Mkwiimm:mkwii/mkwiimm.sh
|
||||
MKW4:MkwiimmItems:mkwii/mkwiimm_items.sh
|
||||
MKW5:MkwiimmFonts:mkwii/mkwiimm_fonts.sh
|
||||
MKW6:MkwiimmKarts:mkwii/mkwiimm_karts.sh
|
||||
KAW1:Kirby:kirbywii.sh
|
||||
TMS1:TokyoMirageSessions:tokyomiragesessionsfe.sh
|
||||
PKMN1:NeoX:pokemon/pokemonneox.sh
|
||||
PKMN2:NeoY:pokemon/pokemonneoy.sh
|
||||
PKMN3:RutileRuby:pokemon/pokemonrutileruby.sh
|
||||
PKMN4:StarSapphire:pokemon/pokemonstarsapphire.sh
|
||||
PKMN5:EternalX:pokemon/pokemoneternalx.sh
|
||||
PKMN6:WiltingY:pokemon/pokemonwiltingy.sh
|
||||
PKMN7:RisingRuby:pokemon/pokemonrisingruby.sh
|
||||
PKMN8:SinkingSapphire:pokemon/pokemonsinkingsapphire.sh
|
||||
PKMN9:DeltaEmeraldAS:pokemon/pokemondeltaemerald-as.sh
|
||||
PKMN10:RedRuby:pokemon/pokemonredruby.sh
|
||||
BSECU:BravelySecondUncensored:bravelyseconduncensored.sh
|
||||
ZEL1:ParallelWorlds:parallelworlds.sh
|
56
debian/changelog
vendored
56
debian/changelog
vendored
@ -1,59 +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
|
||||
|
||||
-- Christopher Roy Bratusek <nano@jpberlin.de> Mon, 22 Aug 2016 19:15:47 +0200
|
||||
|
||||
patchimage (7.0.0-1nano) unstable; urgency=low
|
||||
|
||||
* new upstream stable release
|
||||
* install 32bit pre-compiled tools into patchimage-tools-i386 package
|
||||
* install 64bit pre-compiled tools into patchimage-tools-amd64 package
|
||||
|
||||
-- Christopher Roy Bratusek <nano@jpberlin.de> Sat, 06 Aug 2016 22:00:50 +0200
|
||||
|
||||
patchimage (6.3.0-1nano) unstable; urgency=low
|
||||
|
||||
* new upstream stable release
|
||||
|
||||
-- Christopher Roy Bratusek <nano@jpberlin.de> Wed, 27 Jul 2016 18:35:32 +0200
|
||||
|
||||
patchimage (6.2.2-1nano) unstable; urgency=low
|
||||
|
||||
* new upstream stable release
|
||||
|
||||
-- Christopher Roy Bratusek <nano@jpberlin.de> Sun, 03 Jul 2016 20:23:24 +0200
|
||||
|
||||
patchimage (6.2.1-1nano) unstable; urgency=low
|
||||
|
||||
* new upstream stable release
|
||||
|
||||
-- Christopher Roy Bratusek <nano@jpberlin.de> Sun, 03 Jul 2016 12:21:38 +0200
|
||||
|
||||
patchimage (6.2.0-1nano) unstable; urgency=low
|
||||
|
||||
* new upstream stable release
|
||||
|
71
debian/control
vendored
71
debian/control
vendored
@ -8,59 +8,24 @@ Homepage: http://www.nanolx.org/nanolx/patchimage
|
||||
|
||||
Package: patchimage
|
||||
Architecture: all
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, patchimage-tools
|
||||
Description: Wii, Wii U, 3DS image patcher
|
||||
Patchimage is a script that allows to patch riivoluton, ips, ppf, bps or xdelta
|
||||
patches into wbfs or iso images of legal game dumps, ROMs or dumped cpk files.
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: Wii image patcher
|
||||
Patchimage is a script that allows to patch riivoluton, ips or xdelta patches
|
||||
into wbfs or iso images of legal game dumps, ROMs or dumped cpk files.
|
||||
.
|
||||
Features include:
|
||||
- downloading riivolution files or patches
|
||||
- downloading soundtracks (if available)
|
||||
- downloading custom banners for Wii games (if available)
|
||||
- downloading covers for Wii games (if available)
|
||||
- automatic storing of patched games into desired destination (see README.RC)
|
||||
- automatic patching of Wii games, 3DS games, Wii U games
|
||||
- replacing characters, fonts and items in Mario Kart Wii
|
||||
- replacing characters in New Super Mario Bros. Wii
|
||||
- replacing first players Kirby in Kirby's Adventure Wii
|
||||
- patch Nintendo WFC compatible games to use WiimmFi server
|
||||
Current features of Patchimage:
|
||||
- 25 user made modifications of New Super Mario Bros. Wii
|
||||
- replacing characters
|
||||
- downloading soundtrack (if available)
|
||||
- downloading cover (if available)
|
||||
- downloading [custom] banner (if available)
|
||||
- Wiimmfi-ying Wii games (community online playing server)
|
||||
- all Wiimm's Mario Kart Wii distributions supported
|
||||
- replacing characters
|
||||
- replacing fonts
|
||||
- replacing items
|
||||
- choose a different Kirby for Player 1 in Kirby's Adventure Wii
|
||||
- The Legend of Zelda: Parallel Words (modification of A Link to the Past)
|
||||
- applying decensoring patches to Tokyo Mirage Sessions #FE
|
||||
.
|
||||
Be sure to read the supplied README-files for a full overview.
|
||||
|
||||
Package: patchimage-tools-i386
|
||||
Architecture: i386
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Provides: patchimage-tools
|
||||
Description: Pre-compiled tools for patchimage
|
||||
pre-compiled tools for patchimage:
|
||||
- 3dstool Tool for re-packing 3DS ROMs
|
||||
- ctrtool Tool for un-packing 3DS ROMs
|
||||
- applyppf3 Tool for applying PPF patches
|
||||
- titledumper Tool for receiving Wii U game dumps over network
|
||||
- uips Tool for applying IPS patches
|
||||
- wit Tool for managing Wii game dumps
|
||||
- wszst Tool for manipulating Mario Kart Wii files
|
||||
- xdelta3 Tool for applying DELTA patches [beta version]
|
||||
- overrides for Wiims Mario Kart Fun tools (new versions of wit and wszst
|
||||
that allow creating older custom track distributions on newer versions
|
||||
of Debian GNU/Linux, which have newer versions of the libraries the
|
||||
originally provided wit and wszst were linked against)
|
||||
|
||||
Package: patchimage-tools-amd64
|
||||
Architecture: amd64
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Provides: patchimage-tools
|
||||
Description: Pre-compiled tools for patchimage
|
||||
pre-compiled tools for patchimage:
|
||||
- 3dstool Tool for re-packing 3DS ROMs
|
||||
- ctrtool Tool for un-packing 3DS ROMs
|
||||
- applyppf3 Tool for applying PPF patches
|
||||
- titledumper Tool for receiving Wii U game dumps over network
|
||||
- uips Tool for applying IPS patches
|
||||
- wit Tool for managing Wii game dumps
|
||||
- wszst Tool for manipulating Mario Kart Wii files
|
||||
- xdelta3 Tool for applying DELTA patches [beta version]
|
||||
- overrides for Wiims Mario Kart Fun tools (new versions of wit and wszst
|
||||
that allow creating older custom track distributions on newer versions
|
||||
of Debian GNU/Linux, which have newer versions of the libraries the
|
||||
originally provided wit and wszst were linked against)
|
||||
|
13
debian/patchimage-tools-amd64.install
vendored
13
debian/patchimage-tools-amd64.install
vendored
@ -1,13 +0,0 @@
|
||||
usr/lib/x86_64-linux-gnu/patchimage/tools/gdown.pl
|
||||
usr/lib/x86_64-linux-gnu/patchimage/tools/ignore_3dstool.txt
|
||||
usr/lib/x86_64-linux-gnu/patchimage/tools/ucat
|
||||
usr/lib/x86_64-linux-gnu/patchimage/tools/unp
|
||||
usr/lib/x86_64-linux-gnu/patchimage/tools/3dstool.64
|
||||
usr/lib/x86_64-linux-gnu/patchimage/tools/applyppf3.64
|
||||
usr/lib/x86_64-linux-gnu/patchimage/tools/ctrtool.64
|
||||
usr/lib/x86_64-linux-gnu/patchimage/tools/titledumper.64
|
||||
usr/lib/x86_64-linux-gnu/patchimage/tools/uips.64
|
||||
usr/lib/x86_64-linux-gnu/patchimage/tools/wit.64
|
||||
usr/lib/x86_64-linux-gnu/patchimage/tools/wszst.64
|
||||
usr/lib/x86_64-linux-gnu/patchimage/tools/xdelta3.64
|
||||
usr/lib/x86_64-linux-gnu/patchimage/override/linux64
|
13
debian/patchimage-tools-i386.install
vendored
13
debian/patchimage-tools-i386.install
vendored
@ -1,13 +0,0 @@
|
||||
usr/lib/i386-linux-gnu/patchimage/tools/gdown.pl
|
||||
usr/lib/i386-linux-gnu/patchimage/tools/ignore_3dstool.txt
|
||||
usr/lib/i386-linux-gnu/patchimage/tools/ucat
|
||||
usr/lib/i386-linux-gnu/patchimage/tools/unp
|
||||
usr/lib/i386-linux-gnu/patchimage/tools/3dstool.32
|
||||
usr/lib/i386-linux-gnu/patchimage/tools/applyppf3.32
|
||||
usr/lib/i386-linux-gnu/patchimage/tools/ctrtool.32
|
||||
usr/lib/i386-linux-gnu/patchimage/tools/titledumper.32
|
||||
usr/lib/i386-linux-gnu/patchimage/tools/uips.32
|
||||
usr/lib/i386-linux-gnu/patchimage/tools/wit.32
|
||||
usr/lib/i386-linux-gnu/patchimage/tools/wszst.32
|
||||
usr/lib/i386-linux-gnu/patchimage/tools/xdelta3.32
|
||||
usr/lib/i386-linux-gnu/patchimage/override/linux32
|
5
debian/patchimage.install
vendored
5
debian/patchimage.install
vendored
@ -1,5 +0,0 @@
|
||||
usr/bin/patchimage
|
||||
usr/share/patchimage/data
|
||||
usr/share/patchimage/database
|
||||
usr/share/patchimage/patches
|
||||
usr/share/patchimage/scripts
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
376
patchimage.sh
376
patchimage.sh
@ -6,141 +6,291 @@
|
||||
#
|
||||
# License: GPL v3
|
||||
|
||||
basedir=$(readlink -m "${BASH_SOURCE[0]}")
|
||||
basedir=$(dirname "${basedir}")
|
||||
|
||||
export PATCHIMAGE_DIR=${basedir}
|
||||
|
||||
if [[ -d ${basedir}/scripts ]]; then
|
||||
export PATCHIMAGE_SCRIPT_DIR=${basedir}/scripts
|
||||
export PATCHIMAGE_PATCH_DIR=${basedir}/patches
|
||||
export PATCHIMAGE_DATA_DIR=${basedir}/data
|
||||
export PATCHIMAGE_TOOLS_DIR=${basedir}/tools
|
||||
export PATCHIMAGE_OVERRIDE_DIR=${basedir}/override
|
||||
export PATCHIMAGE_DATABASE_DIR=${basedir}/database
|
||||
if [[ -d ${PWD}/script.d ]]; then
|
||||
PATCHIMAGE_SCRIPT_DIR=${PWD}/script.d
|
||||
PATCHIMAGE_PATCH_DIR=${PWD}/patches
|
||||
PATCHIMAGE_TOOLS_DIR=${PWD}/tools
|
||||
else
|
||||
export PATCHIMAGE_SCRIPT_DIR=/usr/share/patchimage/scripts
|
||||
export PATCHIMAGE_PATCH_DIR=/usr/share/patchimage/patches
|
||||
export PATCHIMAGE_DATA_DIR=/usr/share/patchimage/data
|
||||
if [[ $(uname -m) == "x86_64" ]]; then
|
||||
export PATCHIMAGE_TOOLS_DIR=/usr/lib/x86_64-linux-gnu/patchimage/tools
|
||||
export PATCHIMAGE_OVERRIDE_DIR=/usr/lib/x86_64-linux-gnu/patchimage/override
|
||||
else
|
||||
export PATCHIMAGE_TOOLS_DIR=/usr/lib/i386-linux-gnu/patchimage/tools
|
||||
export PATCHIMAGE_OVERRIDE_DIR=/usr/lib/i386-linux-gnu/patchimage/override
|
||||
fi
|
||||
export PATCHIMAGE_DATABASE_DIR=/usr/share/patchimage/database
|
||||
PATCHIMAGE_SCRIPT_DIR=/usr/share/patchimage/script.d
|
||||
PATCHIMAGE_PATCH_DIR=/usr/share/patchimage/patches
|
||||
PATCHIMAGE_TOOLS_DIR=/usr/share/patchimage/tools
|
||||
fi
|
||||
|
||||
export PATCHIMAGE_RIIVOLUTION_DIR="${basedir}"
|
||||
export PATCHIMAGE_WBFS_DIR="${basedir}"
|
||||
export PATCHIMAGE_AUDIO_DIR="${basedir}"
|
||||
export PATCHIMAGE_GAME_DIR="${basedir}"
|
||||
export PATCHIMAGE_COVER_DIR="${basedir}"
|
||||
export PATCHIMAGE_ROM_DIR="${basedir}"
|
||||
export PATCHIMAGE_3DS_DIR="${basedir}"
|
||||
PATCHIMAGE_RIIVOLUTION_DIR=${PWD}
|
||||
PATCHIMAGE_WBFS_DIR=${PWD}
|
||||
PATCHIMAGE_AUDIO_DIR=${PWD}
|
||||
PATCHIMAGE_GAME_DIR=${PWD}
|
||||
PATCHIMAGE_COVER_DIR=${PWD}
|
||||
|
||||
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
|
||||
if [[ -e $HOME/.patchimage.rc ]]; then
|
||||
source $HOME/.patchimage.rc
|
||||
fi
|
||||
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/common.sh
|
||||
optparse "${@}"
|
||||
|
||||
check_directories
|
||||
|
||||
setup_tools
|
||||
|
||||
[[ ! ${GAME} ]] && ask_game
|
||||
|
||||
for game in ${GAME[@]}; do
|
||||
case ${game} in
|
||||
NSMB_ALL )
|
||||
NEW_GAME=(${NEW_GAME[@]} NSMB{1..31})
|
||||
;;
|
||||
|
||||
PKMN_ALL )
|
||||
NEW_GAME=(${NEW_GAME[@]} PKMN{1..10})
|
||||
;;
|
||||
|
||||
PKMN_Y )
|
||||
NEW_GAME=(${NEW_GAME[@]} PKMN2 PKMN6)
|
||||
;;
|
||||
|
||||
PKMN_X )
|
||||
NEW_GAME=(${NEW_GAME[@]} PKMN1 PKMN5)
|
||||
;;
|
||||
|
||||
PKMN_OR )
|
||||
NEW_GAME=(${NEW_GAME[@]} PKMN3 PKMN7 PKMN10)
|
||||
;;
|
||||
|
||||
PKMN_AS )
|
||||
NEW_GAME=(${NEW_GAME[@]} PKMN4 PKMN8 PKMN9)
|
||||
;;
|
||||
esac
|
||||
|
||||
[[ ${NEW_GAME} ]] && GAME=(${NEW_GAME[@]})
|
||||
done
|
||||
|
||||
CURDIR=${PWD}
|
||||
if [[ -w ${CURDIR} ]]; then
|
||||
BUILD_DIR="${CURDIR}"/patchimage_build
|
||||
else BUILD_DIR="${HOME}"/patchimage_build
|
||||
if [[ ! ${GAME} ]]; then
|
||||
ask_game
|
||||
fi
|
||||
|
||||
for game in ${GAME[@]}; do
|
||||
case ${GAME} in
|
||||
|
||||
script=$(gawk -F : "/\<${game}\>/"'{print $3}' ${PATCHIMAGE_DATABASE_DIR}/scripts.db)
|
||||
if [[ -f ${PATCHIMAGE_SCRIPT_DIR}/${script} ]]; then
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/${script}
|
||||
else echo -e "specified Game ${game} not recognized"
|
||||
continue
|
||||
fi
|
||||
NSMB1 | NewerSMB | NewerSMBW )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/newersmb.sh
|
||||
;;
|
||||
|
||||
if [[ ${PATCHIMAGE_SHOW_DOWNLOAD} ]]; then
|
||||
echo -e "\nDownloadlink for required files of Game:\n\t${GAMENAME} (${game}):\n\n\t${DOWNLOAD_LINK}\n"
|
||||
continue
|
||||
fi
|
||||
NSMB2 | NewerSummerSun )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/newersummersun.sh
|
||||
;;
|
||||
|
||||
rm -rf "${BUILD_DIR}"
|
||||
mkdir -p "${BUILD_DIR}"
|
||||
cd "${BUILD_DIR}"
|
||||
NSMB3 | ASMBW | AnotherSMBW )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/anothersmb.sh
|
||||
;;
|
||||
|
||||
case ${GAME_TYPE} in
|
||||
"RIIVOLUTION" )
|
||||
patchimage_riivolution
|
||||
;;
|
||||
NSMB4 | HolidaySpecial | "Newer: Holiday Special" )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/newerholiday.sh
|
||||
;;
|
||||
|
||||
"MKWIIMM")
|
||||
patchimage_mkwiimm
|
||||
;;
|
||||
NSMB5 | Cannon | "Cannon SMBW" )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/cannon.sh
|
||||
;;
|
||||
|
||||
"GENERIC")
|
||||
patchimage_generic
|
||||
;;
|
||||
NSMB6 | ESBW | "Epic Super Bowser World" )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/epicbowserworld.sh
|
||||
;;
|
||||
|
||||
"IPS" )
|
||||
patchimage_ips
|
||||
;;
|
||||
NSMB7 | Koopa | "Koopa Country" )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/koopacountry.sh
|
||||
;;
|
||||
|
||||
"BPS" )
|
||||
patchimage_bps
|
||||
;;
|
||||
NSMB8 | "New Super Mario Bros. 4" )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/nsmbw4.sh
|
||||
;;
|
||||
|
||||
"PPF" )
|
||||
patchimage_ppf
|
||||
;;
|
||||
NSMB9 | Retro | "Retro Remix" )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/retroremix.sh
|
||||
;;
|
||||
|
||||
"HANS" )
|
||||
patchimage_hans
|
||||
;;
|
||||
NSMB10 | WinterMoon | "Super Mario: Mushroom Adventure PLUS - Winter Moon" )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/wintermoon.sh
|
||||
;;
|
||||
|
||||
"DELTA" )
|
||||
patchimage_delta
|
||||
;;
|
||||
NSMB11 | NSMBW3 | "NSMBW3: The Final Levels" )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/nsmbw3.sh
|
||||
;;
|
||||
|
||||
esac
|
||||
NSMB12 | SMV | "Super Mario Vacation" )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/summervacation.sh
|
||||
;;
|
||||
|
||||
cd "${CURDIR}"
|
||||
done
|
||||
NSMB13 | ASLM | "Awesomer Super Luigi Mini" )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/awesomersuperluigi.sh
|
||||
;;
|
||||
|
||||
NSMB14 | Sykland )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/skyland.sh
|
||||
;;
|
||||
|
||||
NSMB15 | RVLution )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/rvlution.sh
|
||||
;;
|
||||
|
||||
NSMB16 | Midi )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/midissupermariowii.sh
|
||||
;;
|
||||
|
||||
NSMB17 | DarkUmbra )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/darkumbrasmb.sh
|
||||
;;
|
||||
|
||||
NSMB18 | NewerApocalypse )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/newerapocalypse.sh
|
||||
;;
|
||||
|
||||
NSMB19 | LuigisSuperYoshiBros )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/luigissuperyoshibros.sh
|
||||
;;
|
||||
|
||||
NSMB20 | NewerFallingLeaf )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/newerfallingleaf.sh
|
||||
;;
|
||||
|
||||
NSMB21 | DevilMarioWinterSpecial )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/devilmariowinterspecial.sh
|
||||
;;
|
||||
|
||||
NSMB22 | NewSMBWOtherWorld )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/newsmbwotherworld.sh
|
||||
;;
|
||||
|
||||
NSMB23 | TheLegendOfYoshi )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/thelegendofyoshi.sh
|
||||
;;
|
||||
|
||||
NSMB24 | RemixedSuperMarioBrosWii )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/remixedsupermariobroswii.sh
|
||||
;;
|
||||
|
||||
NSMB25 | GhostlySuperGhostBoosWii )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/ghostlysuperghostbooswii.sh
|
||||
;;
|
||||
|
||||
NSMB99 | NSMBWCharacters )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/nsmbw_characters.sh
|
||||
;;
|
||||
|
||||
MKW1 | Wiimmfi )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/wiimmfi.sh
|
||||
;;
|
||||
|
||||
MKW2 | Wiimmpatch )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/wiimmfi_generic.sh
|
||||
;;
|
||||
|
||||
MKW3 | Mkwiimm )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm.sh
|
||||
;;
|
||||
|
||||
MKW4 | MkwiimmItems )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_items.sh
|
||||
;;
|
||||
|
||||
MKW5 | MkwiimmFonts )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_fonts.sh
|
||||
;;
|
||||
|
||||
MKW6 | MkwiimmKarts )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_karts.sh
|
||||
;;
|
||||
|
||||
KAW1 | Kirby )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/kirbywii.sh
|
||||
;;
|
||||
|
||||
TMS1 | TokyoMirageSessions )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/tokyomiragesessionsfe.sh
|
||||
;;
|
||||
|
||||
ZEL1 | ParallelWorlds | "The Legend of Zelda: Parallel Worlds" )
|
||||
source ${PATCHIMAGE_SCRIPT_DIR}/parallelworlds.sh
|
||||
;;
|
||||
|
||||
* )
|
||||
echo -e "specified Game ${GAME} not recognized"
|
||||
exit 9
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
case ${GAME_TYPE} in
|
||||
"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_input_image_special"
|
||||
check_input_image_special
|
||||
echo "*** 3) check_riivolution_patch"
|
||||
check_riivolution_patch
|
||||
|
||||
echo "*** 4) extract game"
|
||||
${WIT} extract ${IMAGE} ${WORKDIR} --psel=DATA -q || exit 51
|
||||
|
||||
echo "*** 5) detect_game_version"
|
||||
detect_game_version
|
||||
rm -f ${GAMEID}.wbfs ${CUSTOMID}.wbfs
|
||||
echo "*** 6) place_files"
|
||||
place_files || exit 45
|
||||
|
||||
echo "*** 7) download_banner"
|
||||
download_banner
|
||||
echo "*** 8) apply_banner"
|
||||
apply_banner
|
||||
|
||||
echo "*** 9) dolpatch"
|
||||
dolpatch
|
||||
|
||||
if [[ ${CUSTOMID} ]]; then
|
||||
GAMEID=${CUSTOMID}
|
||||
fi
|
||||
|
||||
if [[ ${PATCHIMAGE_SHARE_SAVE} == "TRUE" ]]; then
|
||||
TMD_OPTS=""
|
||||
else
|
||||
TMD_OPTS="--tt-id=K"
|
||||
fi
|
||||
|
||||
echo "*** 10) 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 "*** 12) 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 "\n*** Z) download_covers"
|
||||
download_covers ${GAMEID}
|
||||
fi
|
||||
|
||||
;;
|
||||
|
||||
"MKWIIMM")
|
||||
show_notes
|
||||
|
||||
echo -e "\n*** 1) check_input_image"
|
||||
check_input_image
|
||||
echo -e "\n*** 2) check_input_image_special"
|
||||
check_input_image_special
|
||||
echo -e "\n*** 3) download_wiimm"
|
||||
download_wiimm
|
||||
echo -e "\n*** 4) patch_wiimm"
|
||||
patch_wiimm
|
||||
;;
|
||||
|
||||
"WII_GENERIC")
|
||||
show_notes
|
||||
|
||||
echo -e "\n*** 1) check_input_image"
|
||||
check_input_image
|
||||
echo -e "\n*** 2) pi_action"
|
||||
pi_action
|
||||
;;
|
||||
|
||||
"IPS" )
|
||||
show_notes
|
||||
check_input_rom
|
||||
|
||||
if [[ -f ${PATCH} ]]; then
|
||||
ext=${ROM/*.}
|
||||
cp "${ROM}" "${GAMENAME}.${ext}"
|
||||
${IPS} a "${PATCH}" "${GAMENAME}.${ext}" || exit 51
|
||||
else
|
||||
echo -e "error: patch (${PATCH}) could not be found"
|
||||
fi
|
||||
;;
|
||||
|
||||
"DELTA" )
|
||||
show_notes
|
||||
|
||||
echo -e "\n*** 1) menu"
|
||||
menu || exit 1
|
||||
|
||||
echo -e "\n*** 2) patch"
|
||||
patch || exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
119
script.d/anothersmb.sh
Normal file
119
script.d/anothersmb.sh
Normal file
@ -0,0 +1,119 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="http://dirbaio.net/newer/Another_Super_Mario_Brothers_Wii_2.0.zip"
|
||||
SOUNDTRACK_LINK="http://dirbaio.net/newer/Another_Super_Mario_Bros_Wii_Soundtrack.zip"
|
||||
SOUNDTRACK_ZIP="Another_Super_Mario_Bros_Wii_Soundtrack.zip"
|
||||
RIIVOLUTION_ZIP="Another_Super_Mario_Brothers_Wii_2.0.zip"
|
||||
RIIVOLUTION_DIR="Another"
|
||||
GAMENAME="Another Super Mario Brothers Wii 2.0"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="Riivolution/Another.xml"
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Another Super Mario Bros. Wii is a simple mod created by Skawo and
|
||||
released in December 2010 which includes a full set of new levels with
|
||||
the same themes as the original game.
|
||||
|
||||
Source: http://www.newerteam.com/specials.html
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EURv1, USAv1, USAv2
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
|
||||
nsmbw_version
|
||||
|
||||
GAMEID=SMN${REG_LETTER}05
|
||||
CUSTOM_BANNER=http://dl.dropboxusercontent.com/u/101209384/${GAMEID}.bnr
|
||||
|
||||
if [[ ${VERSION} == "EURv2" || ${VERSION} == "JPNv*" ]]; then
|
||||
echo -e "Version ${VERSION} is not supported!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( ${WORKDIR}/files/AnotherRes ${WORKDIR}/files/Sample ${WORKDIR}/files/EU/NedEU/staffroll ${WORKDIR}/files/EU/NedEU/Message ${WORKDIR}/files/EU/NedEU/Font )
|
||||
for dir in ${NEW_DIRS[@]}; do
|
||||
mkdir -p ${dir}
|
||||
done
|
||||
|
||||
case ${VERSION} in
|
||||
EURv* )
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/EUENGLISH.arc ${WORKDIR}/files/EU/EngEU/Message/Message.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/EUENGLISH.arc ${WORKDIR}/files/EU/NedEU/Message/Message.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/EUFRENCH.arc ${WORKDIR}/files/EU/FraEU/Message/Message.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/EUGERMAN.arc ${WORKDIR}/files/EU/GerEU/Message/Message.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/EUITALIAN.arc ${WORKDIR}/files/EU/ItaEU/Message/Message.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/EUSPANISH.arc ${WORKDIR}/files/EU/SpaEU/Message/Message.arc
|
||||
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/staffroll.bin ${WORKDIR}/files/EU/${dir}/staffroll/
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/mj2d00_PictureFont_32_RGBA8.brfnt ${WORKDIR}/files/EU/${dir}/Font/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/Layout/OpeningP/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
||||
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/USENGLISH.arc ${WORKDIR}/files/US/EngUS/Message/Message.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/USFRENCH.arc ${WORKDIR}/files/US/FraUS/Message/Message.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/USSPANISH.arc ${WORKDIR}/files/US/SpaUS/Message/Message.arc
|
||||
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/staffroll.bin ${WORKDIR}/files/US/${dir}/staffroll/
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/mj2d00_PictureFont_32_RGBA8.brfnt ${WORKDIR}/files/US/${dir}/Font/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/Layout/OpeningE/* ${WORKDIR}/files/US/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Lang/Other/01-0{1,2,4,6}_N_1.bin ${WORKDIR}/files/Replay/otehon/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/*.arc ${WORKDIR}/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/*.brstm ${WORKDIR}/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/*.brsar ${WORKDIR}/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/Layout/controllerInformation.arc ${WORKDIR}/files/Layout/controllerInformation/
|
||||
cp "${RIIVOLUTION_DIR}"/Layout/MultiCorseSelectTexture.arc ${WORKDIR}/files/Layout/textures/
|
||||
cp "${RIIVOLUTION_DIR}"/Object/*.arc ${WORKDIR}/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/WorldMap/* ${WORKDIR}/files/WorldMap/
|
||||
cp "${RIIVOLUTION_DIR}"/AnotherRes/* ${WORKDIR}/files/AnotherRes/
|
||||
cp "${RIIVOLUTION_DIR}"/Object/Background/* ${WORKDIR}/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/Texture/* ${WORKDIR}/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/Sample/tobira.bti ${WORKDIR}/files/Sample/
|
||||
|
||||
}
|
||||
|
||||
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}/AnotherSMB-Loader.xml" -q
|
||||
${WIT} dolpatch ${DOL} xml="${PATCHIMAGE_PATCH_DIR}/NSMBW_AP.xml" -q
|
||||
|
||||
}
|
92
script.d/awesomersuperluigi.sh
Normal file
92
script.d/awesomersuperluigi.sh
Normal file
@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://www.dropbox.com/s/t3b3fvycm1ufu46/AwesomerSLM.zip"
|
||||
RIIVOLUTION_ZIP="AwesomerSLM.zip"
|
||||
RIIVOLUTION_DIR="AwesomerSLM"
|
||||
GAMENAME="Awesomer Super Luigi Mini"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"/AwesomerSLM
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/riivolution/ASLMriivo.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
1: Custom Levels for World 1
|
||||
2: World 1's map will be world 4's
|
||||
3: Joietyfull64's NSMBU tilesets
|
||||
4: Custom logo.
|
||||
|
||||
Source: http://rvlution.net/forums/viewtopic.php?f=53&t=1851
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
|
||||
GAMEID=SMN${REG_LETTER}12
|
||||
|
||||
}
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( ${WORKDIR}/files/EU/NedEU/Message ${WORKDIR}/files/EU/PolEU/Message ${WORKDIR}/files/Sample/)
|
||||
for dir in ${NEW_DIRS[@]}; do
|
||||
mkdir -p ${dir}
|
||||
done
|
||||
|
||||
case ${VERSION} in
|
||||
EUR* )
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU PolEU )
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/AwesomerSLM/MessageEN/Message/Message.arc ${WORKDIR}/files/EU/${dir}/Message/Message.arc
|
||||
done
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/AwesomerSLM/MessageEN/Message/Message.arc ${WORKDIR}/files/US/${dir}/Message/Message.arc
|
||||
done
|
||||
cp -r "${RIIVOLUTION_DIR}"/AwesomerSLM/OpeningUS/openingTitle/ ${WORKDIR}/files/US/Layout/
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp "${RIIVOLUTION_DIR}"/AwesomerSLM/MessageEN/Message/Message.arc ${WORKDIR}/files/JP/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/AwesomerSLM/Stages/* ${WORKDIR}/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/AwesomerSLM/Sound/*.brstm ${WORKDIR}/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/AwesomerSLM/Sound/BRSAR/* ${WORKDIR}/files/Sound/
|
||||
cp -r "${RIIVOLUTION_DIR}"/AwesomerSLM/Object/ ${WORKDIR}/files/Object/
|
||||
#cp -r "${RIIVOLUTION_DIR}"/AwesomerSLM/Layout/ ${WORKDIR}/files/
|
||||
|
||||
}
|
||||
|
||||
|
||||
dolpatch () {
|
||||
|
||||
${WIT} dolpatch ${DOL} \
|
||||
"802F148C=53756D6D53756E#7769696D6A3264" \
|
||||
"802F118C=53756D6D53756E#7769696D6A3264" \
|
||||
"802F0F8C=53756D6D53756E#7769696D6A3264" \
|
||||
xml="${PATCHIMAGE_PATCH_DIR}/NSMBW_AP.xml" -q
|
||||
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ XML_SOURCE="${RIIVOLUTION_DIR}"/Cannon/
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/riivolution/CannonP.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -30,6 +29,12 @@ Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -41,44 +46,44 @@ detect_game_version () {
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( "${WORKDIR}"/files/NewerRes )
|
||||
for dir in "${NEW_DIRS[@]}"; do
|
||||
mkdir -p "${dir}"
|
||||
NEW_DIRS=( ${WORKDIR}/files/NewerRes )
|
||||
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}"/Cannon/MessageEN/* "${WORKDIR}"/files/EU/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/Cannon/MessageEN/* ${WORKDIR}/files/EU/${dir}/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/OpeningP/* "${WORKDIR}"/files/EU/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/OpeningP/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/Cannon/MessageEN/* "${WORKDIR}"/files/US/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/Cannon/MessageEN/* ${WORKDIR}/files/US/${dir}/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/OpeningE/* "${WORKDIR}"/files/US/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/OpeningE/* ${WORKDIR}/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp -r "${RIIVOLUTION_DIR}"/Cannon/MessageEN/* "${WORKDIR}"/files/JP/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/OpeningJ/* "${WORKDIR}"/files/JP/Layout/openingTitle/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Cannon/MessageEN/* ${WORKDIR}/files/JP/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/OpeningJ/* ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/Stage/Texture/* "${WORKDIR}"/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/NewerRes/* "${WORKDIR}"/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/Stage/*.arc "${WORKDIR}"/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/Env/* "${WORKDIR}"/files/Env/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/Sound/Stream/* "${WORKDIR}"/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/Sound/*.brsar "${WORKDIR}"/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/WorldMap/* "${WORKDIR}"/files/WorldMap/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/Object/* "${WORKDIR}"/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/MovieDemo/* "${WORKDIR}"/files/MovieDemo/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Cannon/Layout/ "${WORKDIR}"/files/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/Stage/Texture/* ${WORKDIR}/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/NewerRes/* ${WORKDIR}/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/Stage/*.arc ${WORKDIR}/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/Env/* ${WORKDIR}/files/Env/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/Sound/Stream/* ${WORKDIR}/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/Sound/*.brsar ${WORKDIR}/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/WorldMap/* ${WORKDIR}/files/WorldMap/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/Object/* ${WORKDIR}/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/Cannon/MovieDemo/* ${WORKDIR}/files/MovieDemo/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Cannon/Layout/ ${WORKDIR}/files/
|
||||
|
||||
}
|
||||
|
577
script.d/common.sh
Normal file
577
script.d/common.sh
Normal file
@ -0,0 +1,577 @@
|
||||
#!/bin/bash
|
||||
|
||||
PATCHIMAGE_VERSION=6.2.0
|
||||
PATCHIMAGE_RELEASE=2016-07-01
|
||||
|
||||
setup_tools () {
|
||||
|
||||
if [[ $(uname -m) == "x86_64" ]]; then
|
||||
SUFFIX=64
|
||||
else
|
||||
SUFFIX=32
|
||||
fi
|
||||
|
||||
WIT=${PATCHIMAGE_TOOLS_DIR}/wit.${SUFFIX}
|
||||
PPF=${PATCHIMAGE_TOOLS_DIR}/applyppf3.${SUFFIX}
|
||||
IPS=${PATCHIMAGE_TOOLS_DIR}/uips.${SUFFIX}
|
||||
UNP=${PATCHIMAGE_TOOLS_DIR}/unp
|
||||
SZS=${PATCHIMAGE_TOOLS_DIR}/wszst.${SUFFIX}
|
||||
XD3=${PATCHIMAGE_TOOLS_DIR}/xdelta3.${SUFFIX}
|
||||
GDOWN=${PATCHIMAGE_TOOLS_DIR}/gdown.pl
|
||||
|
||||
}
|
||||
|
||||
ask_game () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
patchimage v${PATCHIMAGE_VERSION}
|
||||
|
||||
ID Name
|
||||
|
||||
<<<<<< New Super Mario Bros. Wii >>>>>>
|
||||
NSMB1 NewerSMB
|
||||
NSMB2 Newer Summer Sun
|
||||
NSMB3 AnotherSMB
|
||||
NSMB4 Newer: Holiday Special
|
||||
NSMB5 Cannon Super Mario Bros.
|
||||
NSMB6 Epic Super Bowser World
|
||||
NSMB7 Koopa Country
|
||||
NSMB8 New Super Mario Bros. 4
|
||||
NSMB9 New Super Mario Bros. Wii Retro Remix
|
||||
NSMB10 Super Mario: Mushroom Adventure PLUS - Winter Moon
|
||||
NSMB11 NSMBW3: The Final Levels
|
||||
NSMB12 Super Mario Vacation
|
||||
NSMB13 Awesomer Super Luigi Mini
|
||||
NSMB14 Super Mario Skyland
|
||||
NSMB15 RVLution Wii (NewSMB Mod)
|
||||
NSMB16 Midi's Super Mario Wii (Just A Little Adventure)
|
||||
NSMB17 DarkUmbra SMB Anniversary Edition
|
||||
NSMB18 Newer Apocalypse
|
||||
NSMB19 Luigi's Super Yoshi Bros.
|
||||
NSMB20 Newer: Falling Leaf
|
||||
NSMB21 Devil Mario Winter Special
|
||||
NSMB22 New Super Mario Bros. Wii - Other World
|
||||
NSMB23 The Legend of Yoshi
|
||||
NSMB24 Remixed Super Mario Bros. Wii
|
||||
NSMB25 Ghostly Super Ghost Boos. Wii
|
||||
|
||||
NSMB99 Customize Characters
|
||||
|
||||
<<<<<< Mario Kart Wii >>>>>>
|
||||
MKW1 Wiimfi Patcher. Patch Mario Kart to use Wiimm's server
|
||||
MKW2 Wiimfi Patcher. Patch WFC games to use Wiimm's server (exp)
|
||||
MKW3 Mario Kart Wiimm. Custom Mario Kart Distribution
|
||||
MKW4 Custom Items. Replace items in the game
|
||||
MKW5 Custom Font. Replace font in the game
|
||||
MKW6 Custom Karts. Replace characters in the game
|
||||
|
||||
<<<<<< Kirby's Adventure Wii >>>>>>
|
||||
KAW1 Change first player's character
|
||||
|
||||
<<<<<< Tokyo Mirage Sessions #FE >>>>>>
|
||||
TMS1 Uncensor US/EUR version
|
||||
|
||||
<<<<<< ROMS >>>>>>
|
||||
ZEL1 The Legend of Zelda: Parallel Worlds
|
||||
|
||||
ID Name
|
||||
Enter ID for the Game you want to create:
|
||||
"
|
||||
|
||||
read GAME
|
||||
|
||||
}
|
||||
|
||||
download_soundtrack () {
|
||||
|
||||
if [[ ${SOUNDTRACK_LINK} ]]; then
|
||||
[[ ! -d ${PATCHIMAGE_AUDIO_DIR} ]] && mkdir -p ${PATCHIMAGE_AUDIO_DIR}
|
||||
wget --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 --no-check-certificate "${CUSTOM_BANNER}" -O "${PATCHIMAGE_RIIVOLUTION_DIR}"/${GAMEID}-custom-banner.bnr__tmp || exit 57
|
||||
mv "${PATCHIMAGE_RIIVOLUTION_DIR}"/${GAMEID}-custom-banner.bnr__tmp "${PATCHIMAGE_RIIVOLUTION_DIR}"/${GAMEID}-custom-banner.bnr
|
||||
fi
|
||||
BANNER="${PATCHIMAGE_RIIVOLUTION_DIR}"/${GAMEID}-custom-banner.bnr
|
||||
else
|
||||
echo "*** >> no custom banner available"
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
nsmbw_version () {
|
||||
|
||||
if [[ -f ${WORKDIR}/files/COPYDATE_LAST_2009-10-03_232911 ]]; then
|
||||
VERSION=EURv1
|
||||
REG_LETTER=P
|
||||
elif [[ -f ${WORKDIR}/files/COPYDATE_LAST_2010-01-05_152101 ]]; then
|
||||
VERSION=EURv2
|
||||
REG_LETTER=P
|
||||
elif [[ -f ${WORKDIR}/files/COPYDATE_LAST_2009-10-03_232303 ]]; then
|
||||
VERSION=USAv1
|
||||
REG_LETTER=E
|
||||
elif [[ -f ${WORKDIR}/files/COPYDATE_LAST_2010-01-05_143554 ]]; then
|
||||
VERSION=USAv2
|
||||
REG_LETTER=E
|
||||
elif [[ -f ${WORKDIR}/files/COPYDATE_LAST_2009-10-03_231655 ]]; then
|
||||
VERSION=JPNv1
|
||||
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} ]]; then
|
||||
mkdir -p ${PATCHIMAGE_RIIVOLUTION_DIR}
|
||||
fi
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_WBFS_DIR} ]]; then
|
||||
mkdir -p ${PATCHIMAGE_WBFS_DIR}
|
||||
fi
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_GAME_DIR} ]]; then
|
||||
mkdir -p ${PATCHIMAGE_GAME_DIR}
|
||||
fi
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_AUDIO_DIR} ]]; then
|
||||
mkdir -p ${PATCHIMAGE_AUDIO_DIR}
|
||||
fi
|
||||
|
||||
if [[ ! -d ${PATCHIMAGE_COVER_DIR} ]]; then
|
||||
mkdir -p ${PATCHIMAGE_COVER_DIR}
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
|
||||
check_input_image () {
|
||||
|
||||
x=0
|
||||
if [[ ! ${IMAGE} ]]; then
|
||||
if [[ -f BASE.wbfs ]]; then
|
||||
x=1
|
||||
IMAGE=BASE.wbfs
|
||||
elif [[ -f BASE.iso ]]; then
|
||||
x=1
|
||||
IMAGE=BASE.iso
|
||||
fi
|
||||
fi
|
||||
echo "*** >> status: ${x}"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_nsmb () {
|
||||
|
||||
x=0
|
||||
if [[ ! ${IMAGE} ]]; then
|
||||
if test -f SMN?01.wbfs; then
|
||||
x=1
|
||||
IMAGE=SMN?01.wbfs
|
||||
elif test -f SMN?01.iso; then
|
||||
x=2
|
||||
IMAGE=SMN?01.iso
|
||||
elif test -f ${PATCHIMAGE_WBFS_DIR}/SMN?01.iso; then
|
||||
x=3
|
||||
IMAGE=${PATCHIMAGE_WBFS_DIR}/SMN?01.iso
|
||||
elif test -f ${PATCHIMAGE_WBFS_DIR}/SMN?01.wbfs; then
|
||||
x=4
|
||||
IMAGE=${PATCHIMAGE_WBFS_DIR}/SMN?01.wbfs
|
||||
else
|
||||
echo -e "please specify image to use with --iso=<path>"
|
||||
exit 15
|
||||
fi
|
||||
fi
|
||||
echo "*** >> status: ${x}"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_kirby () {
|
||||
|
||||
x=0
|
||||
if [[ ! ${IMAGE} ]]; then
|
||||
if test -f SMN?01.wbfs; then
|
||||
x=1
|
||||
IMAGE=SMN?01.wbfs
|
||||
elif test -f SMN?01.iso; then
|
||||
x=2
|
||||
IMAGE=SMN?01.iso
|
||||
elif test -f ${PATCHIMAGE_WBFS_DIR}/SUK?01.iso; then
|
||||
x=3
|
||||
IMAGE=${PATCHIMAGE_WBFS_DIR}/SUK?01.iso
|
||||
elif test -f ${PATCHIMAGE_WBFS_DIR}/SUK?01.wbfs; then
|
||||
x=4
|
||||
IMAGE=${PATCHIMAGE_WBFS_DIR}/SUK?01.wbfs
|
||||
else
|
||||
echo -e "please specify image to use with --iso=<path>"
|
||||
exit 15
|
||||
fi
|
||||
fi
|
||||
echo "*** >> status: ${x}"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_mkwiimm () {
|
||||
|
||||
x=0
|
||||
if [[ ! ${IMAGE} ]]; then
|
||||
if test -f RMC?01.wbfs; then
|
||||
x=1
|
||||
IMAGE=RMC?01.wbfs
|
||||
elif test -f RMC?01.iso; then
|
||||
x=2
|
||||
IMAGE=RMC?01.iso
|
||||
elif test -f ${PATCHIMAGE_WBFS_DIR}/RMC?01.iso; then
|
||||
x=3
|
||||
IMAGE=${PATCHIMAGE_WBFS_DIR}/RMC?01.iso
|
||||
elif test -f ${PATCHIMAGE_WBFS_DIR}/RMC?01.wbfs; then
|
||||
x=4
|
||||
IMAGE=${PATCHIMAGE_WBFS_DIR}/RMC?01.wbfs
|
||||
else
|
||||
echo -e "please specify image to use with --iso=<path>"
|
||||
exit 15
|
||||
fi
|
||||
fi
|
||||
echo "*** >> status: ${x}"
|
||||
|
||||
}
|
||||
|
||||
show_nsmb_db () {
|
||||
|
||||
ID1=${1:0:3}
|
||||
ID2=${1:4:2}
|
||||
gawk -F \: "/^${ID1}\*${ID2}/"'{print $2}' \
|
||||
< ${PATCHIMAGE_SCRIPT_DIR}/nsmbw.db || echo "** Unknown **"
|
||||
|
||||
}
|
||||
|
||||
show_mkwiimm_db () {
|
||||
|
||||
ID=${1:4:2}
|
||||
[[ ${ID} == [0-9][0-9] ]] && gawk -F \: "/^${ID}/"'{print $2}' \
|
||||
< ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm.db || echo "** Unknown **"
|
||||
|
||||
}
|
||||
|
||||
ask_input_image_mkwiimm () {
|
||||
|
||||
echo "Choose Mario Kart Wii Image to modify
|
||||
|
||||
ALL patch all images"
|
||||
|
||||
for image in ${1}/RMC???.{iso,wbfs}; do
|
||||
if [[ -e ${image} ]]; then
|
||||
echo " ${image##*/} $(show_mkwiimm_db ${image##*/})"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
}
|
||||
|
||||
ask_input_image_nsmb () {
|
||||
|
||||
echo "Choose New Super Mario Bros. Wii Image to modify
|
||||
|
||||
ALL patch all images"
|
||||
|
||||
for image in ${1}/SMN???.{iso,wbfs} ${1}/SLF???.{iso,wbfs} ${1}/SMM???.{iso,wbfs} ${1}/SMV???.{iso,wbfs} ${1}/MRR???.{iso,wbfs}; do
|
||||
if [[ -e ${image} ]]; then
|
||||
echo " ${image##*/} $(show_nsmb_db ${image##*/})"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
}
|
||||
|
||||
show_titles_db () {
|
||||
|
||||
ID=${1/.*}
|
||||
gawk -F \: "/^${ID}/"'{print $2}' \
|
||||
< ${PATCHIMAGE_SCRIPT_DIR}/titles.db || echo "** Unknown **"
|
||||
|
||||
}
|
||||
|
||||
check_wfc () {
|
||||
|
||||
ID=${1/.*}
|
||||
if [[ $(grep ${ID} ${PATCHIMAGE_SCRIPT_DIR}/wfc.db) ]]; then
|
||||
echo TRUE
|
||||
else
|
||||
echo FALSE
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
ask_input_image_wiimmfi () {
|
||||
|
||||
echo "Choose Wii Game Image to wiimmfi"
|
||||
|
||||
for image in ${1}/*.{iso,wbfs}; do
|
||||
if [[ -e ${image} && ! ${image} == "*/RMC*" && $(check_wfc ${image##*/}) == TRUE ]]; then
|
||||
echo " ${image##*/} $(show_titles_db ${image##*/})"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
}
|
||||
|
||||
check_riivolution_patch () {
|
||||
|
||||
x=0
|
||||
if [[ ! -d ${RIIVOLUTION_DIR} ]]; then
|
||||
x=1
|
||||
if [[ -f "${PWD}/${RIIVOLUTION_DIR}" ]]; then
|
||||
echo "*** >> unpacking"
|
||||
x=2
|
||||
${UNP} "${PWD}/${RIIVOLUTION_ZIP}" >/dev/null || exit 63
|
||||
elif [[ -f "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}" ]]; then
|
||||
echo "*** >> unpacking"
|
||||
x=3
|
||||
${UNP} "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}" >/dev/null || exit 63
|
||||
elif [[ ${PATCHIMAGE_RIIVOLUTION_DOWNLOAD} == "TRUE" ]]; then
|
||||
x=4
|
||||
if [[ ${DOWNLOAD_LINK} == *docs.google* ]]; then
|
||||
if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}" ]]; then
|
||||
x=5
|
||||
echo "*** >> downloading"
|
||||
${GDOWN} "${DOWNLOAD_LINK}" "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp >/dev/null || exit 57
|
||||
mv "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
echo "*** >> unpacking"
|
||||
${UNP} "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}" >/dev/null || exit 63
|
||||
fi
|
||||
elif [[ ${DOWNLOAD_LINK} ]]; then
|
||||
if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}" ]]; then
|
||||
x=5
|
||||
echo "*** >> downloading"
|
||||
wget --no-check-certificate ${DOWNLOAD_LINK} -O "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp >/dev/null || exit 57
|
||||
mv "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"__tmp "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}"
|
||||
echo "*** >> unpacking"
|
||||
${UNP} "${PATCHIMAGE_RIIVOLUTION_DIR}/${RIIVOLUTION_ZIP}" >/dev/null || exit 63
|
||||
fi
|
||||
else
|
||||
echo "no download link for ${GAMENAME} available."
|
||||
exit 21
|
||||
fi
|
||||
else
|
||||
echo -e "please specify zip/rar to use with --riivolution=<path>"
|
||||
exit 21
|
||||
fi
|
||||
fi
|
||||
echo "*** >> status: ${x}"
|
||||
|
||||
}
|
||||
|
||||
download_covers () {
|
||||
|
||||
for path in cover cover3D coverfull disc disccustom; do
|
||||
wget -O ${PATCHIMAGE_COVER_DIR}/${1}_${path}.png \
|
||||
http://art.gametdb.com/wii/${path}/EN/${1}.png &>/dev/null \
|
||||
|| ( echo "Cover (${path}) does not exist for gameid ${1}." && \
|
||||
rm ${PATCHIMAGE_COVER_DIR}/${1}_${path}.png )
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
optparse () {
|
||||
|
||||
xcount=0
|
||||
pcount=$#
|
||||
|
||||
while [[ $xcount -lt $pcount ]]; do
|
||||
case $1 in
|
||||
|
||||
--iso* )
|
||||
ISO_PATH=${1/*=}
|
||||
ISO_EXT=${ISO_PATH//*./}
|
||||
|
||||
if [[ -e "${ISO_PATH}" ]]; then
|
||||
ln -sf "${ISO_PATH}" BASE.${ISO_EXT}
|
||||
IMAGE=BASE.${ISO_EXT}
|
||||
else
|
||||
echo -e "ISO not found"
|
||||
exit 15
|
||||
fi
|
||||
;;
|
||||
|
||||
--rom* )
|
||||
ROM_PATH=${1/*=}
|
||||
ROM_EXT=${ROM_PATH//*./}
|
||||
|
||||
if [[ -e "${ROM_PATH}" ]]; then
|
||||
ln -sf "${ROM_PATH}" BASE.${ROM_EXT}
|
||||
IMAGE=BASE.${ROM_EXT}
|
||||
else
|
||||
echo -e "ROM not found"
|
||||
exit 15
|
||||
fi
|
||||
;;
|
||||
|
||||
--riivolution* )
|
||||
RIIVOLUTION=${1/*=}
|
||||
if [[ -e "${RIIVOLUTION}" ]]; then
|
||||
${UNP} "${RIIVOLUTION}" >/dev/null
|
||||
else
|
||||
echo -e "Riivolution patch ${RIIVOLUTION} not found."
|
||||
exit 21
|
||||
fi
|
||||
;;
|
||||
|
||||
--patch* )
|
||||
PATCH=${1/*=}
|
||||
if [[ -e "${PATCH}" ]]; then
|
||||
${UNP} "${PATCH}" >/dev/null
|
||||
else
|
||||
echo -e "PATCH 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 )
|
||||
PATCHIMAGE_RIIVOLUTION_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--soundtrack )
|
||||
PATCHIMAGE_SOUNDTRACK_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--only-soundtrack )
|
||||
PATCHIMAGE_SOUNDTRACK_DOWNLOAD=TRUE
|
||||
ONLY_SOUNDTRACK=TRUE
|
||||
;;
|
||||
|
||||
--version=* )
|
||||
VERSION=${1/*=}
|
||||
case ${VERSION} in
|
||||
EURv1 )
|
||||
REG_LETTER=P
|
||||
;;
|
||||
|
||||
EURv2 )
|
||||
REG_LETTER=P
|
||||
;;
|
||||
|
||||
USAv1 )
|
||||
REG_LETTER=E
|
||||
;;
|
||||
|
||||
USAv2 )
|
||||
REG_LETTER=E
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
REG_LETTER=J
|
||||
;;
|
||||
|
||||
* )
|
||||
echo -e "unrecognized game version: ${VERSION}"
|
||||
exit 27
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
--sharesave )
|
||||
PATCHIMAGE_SHARE_SAVE=TRUE
|
||||
;;
|
||||
|
||||
--game* )
|
||||
GAME=${1/*=}
|
||||
;;
|
||||
|
||||
--covers* )
|
||||
PATCHIMAGE_COVER_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--only-covers* )
|
||||
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 )
|
||||
PATCHIMAGE_BANNER_DOWNLOAD=TRUE
|
||||
;;
|
||||
|
||||
--xdelta=* )
|
||||
XDELTA_PATH=${1/*=}
|
||||
;;
|
||||
|
||||
--cpk=* )
|
||||
CPK_PATH=${1/*=}
|
||||
;;
|
||||
|
||||
--help | -h )
|
||||
echo -e "patchimage ${PATCHIMAGE_VERSION} (${PATCHIMAGE_RELEASE})
|
||||
|
||||
(c) 2013-2016 Christopher Roy Bratusek <nano@jpberlin.de>
|
||||
patchimage creates wbfs images from riivolution patches.
|
||||
|
||||
--game=<gamename/gameletter> | specify game you want to create
|
||||
--iso/--rom=/home/test/<Image> | specify which ISO/ROM to use for building
|
||||
--riivolution/--patch=<Patch> | specify path to Riivolution/Patch files
|
||||
--version=EURv1,EURv2,USAv1,USAv2,JPNv1 | specify your game version
|
||||
--customdid=SMNP02 | specify a custom ID to use for the game
|
||||
--sharesave | let modified game share savegame with original game
|
||||
--download | download riivolution patchfiles
|
||||
--soundtrack | download soundtrack (if available)
|
||||
--only-soundtrack | download soundtrack only (if available) and exit
|
||||
--covers | download covers (if available)
|
||||
--only-covers=SMNP02 | download covers only (if available)
|
||||
--banner=<banner.bnr> | use a custom banner (riivolution games)
|
||||
--download-banner | download a custom banner (if available)
|
||||
--xdelta=<path> | path to xdelta patches
|
||||
--cpk=<path> | path to unpatched xdelta patches"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
xcount=$(($xcount+1))
|
||||
done
|
||||
|
||||
}
|
@ -10,7 +10,6 @@ XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/dusmbaePAL.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -25,6 +24,12 @@ Supported Versions: EURv1, EURv2
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -40,7 +45,7 @@ detect_game_version () {
|
||||
place_files () {
|
||||
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/dusmbae/files/ "${WORKDIR}"/
|
||||
cp -r "${RIIVOLUTION_DIR}"/dusmbae/files/ ${WORKDIR}/
|
||||
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}/../riivolution/Devil SMWSP-Eng.xml"
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -25,6 +24,12 @@ Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -35,9 +40,9 @@ detect_game_version () {
|
||||
place_files () {
|
||||
|
||||
|
||||
NEW_DIRS=( "${WORKDIR}"/files/NewerRes "${WORKDIR}"/files/EU/NedEU/{Message,staffroll} )
|
||||
for dir in "${NEW_DIRS[@]}"; do
|
||||
mkdir -p "${dir}"
|
||||
NEW_DIRS=( ${WORKDIR}/files/NewerRes ${WORKDIR}/files/EU/NedEU/{Message,staffroll} )
|
||||
for dir in ${NEW_DIRS[@]}; do
|
||||
mkdir -p ${dir}
|
||||
done
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/{m,M}essage
|
||||
@ -45,36 +50,36 @@ place_files () {
|
||||
case ${VERSION} in
|
||||
EUR* )
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/{Message,staffroll}/ "${WORKDIR}"/files/EU/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/{Message,staffroll}/ ${WORKDIR}/files/EU/${dir}/
|
||||
done
|
||||
#cp "${RIIVOLUTION_DIR}"/OpeningP/* "${WORKDIR}"/files/EU/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningP/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/{Message,staffroll}/ "${WORKDIR}"/files/US/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/{Message,staffroll}/ ${WORKDIR}/files/US/${dir}/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningE/* "${WORKDIR}"/files/US/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningE/* ${WORKDIR}/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/{Message,staffroll}/ "${WORKDIR}"/files/JP/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningJ/* "${WORKDIR}"/files/JP/Layout/openingTitle/
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/{Message,staffroll}/ ${WORKDIR}/files/JP/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningJ/* ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/Texture/* "${WORKDIR}"/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/NewerRes/* "${WORKDIR}"/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/*.arc "${WORKDIR}"/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Env/* "${WORKDIR}"/files/Env/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/stream/* "${WORKDIR}"/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/*.{brsar,brstm} "${WORKDIR}"/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/WorldMap/* "${WORKDIR}"/files/WorldMap/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Object/ "${WORKDIR}"/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/MovieDemo/* "${WORKDIR}"/files/MovieDemo/
|
||||
cp "${RIIVOLUTION_DIR}"/Layout/*.arc "${WORKDIR}"/files/Layout/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/Texture/* ${WORKDIR}/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/NewerRes/* ${WORKDIR}/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/*.arc ${WORKDIR}/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Env/* ${WORKDIR}/files/Env/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/stream/* ${WORKDIR}/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/*.{brsar,brstm} ${WORKDIR}/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/WorldMap/* ${WORKDIR}/files/WorldMap/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Object/ ${WORKDIR}/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/MovieDemo/* ${WORKDIR}/files/MovieDemo/
|
||||
cp "${RIIVOLUTION_DIR}"/Layout/*.arc ${WORKDIR}/files/Layout/
|
||||
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ XML_SOURCE="${RIIVOLUTION_DIR}"/ESBW/
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/riivolution/ESBWP.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -27,6 +26,12 @@ Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -37,9 +42,9 @@ detect_game_version () {
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( "${WORKDIR}"/files/NewerRes )
|
||||
for dir in "${NEW_DIRS[@]}"; do
|
||||
mkdir -p "${dir}"
|
||||
NEW_DIRS=( ${WORKDIR}/files/NewerRes )
|
||||
for dir in ${NEW_DIRS[@]}; do
|
||||
mkdir -p ${dir}
|
||||
done
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/EU/EngEU/{m,M}essage
|
||||
@ -47,39 +52,39 @@ place_files () {
|
||||
case ${VERSION} in
|
||||
EUR* )
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/EU/EngEU/{Message,staffroll}/ "${WORKDIR}"/files/EU/"${dir}"/
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/Font/ "${WORKDIR}"/files/EU/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/EU/EngEU/{Message,staffroll}/ ${WORKDIR}/files/EU/${dir}/
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/Font/ ${WORKDIR}/files/EU/${dir}/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/OpeningP/* "${WORKDIR}"/files/EU/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/OpeningP/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/EU/EngEU/{Message,staffroll}/ "${WORKDIR}"/files/US/"${dir}"/
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/Font/ "${WORKDIR}"/files/US/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/EU/EngEU/{Message,staffroll}/ ${WORKDIR}/files/US/${dir}/
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/Font/ ${WORKDIR}/files/US/${dir}/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/OpeningE/* "${WORKDIR}"/files/US/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/OpeningE/* ${WORKDIR}/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/EU/EngEU/{Message,staffroll}/ "${WORKDIR}"/files/JP/
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/Font/ "${WORKDIR}"/files/JP/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/OpeningJ/* "${WORKDIR}"/files/JP/Layout/openingTitle/
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/EU/EngEU/{Message,staffroll}/ ${WORKDIR}/files/JP/
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/Font/ ${WORKDIR}/files/JP/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/OpeningJ/* ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/Stage/Texture/* "${WORKDIR}"/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/NewerRes/* "${WORKDIR}"/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/Stage/*.arc "${WORKDIR}"/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/Env/* "${WORKDIR}"/files/Env/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/Sound/stream/* "${WORKDIR}"/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/Sound/*.brsar "${WORKDIR}"/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/WorldMap/* "${WORKDIR}"/files/WorldMap/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/Object/* "${WORKDIR}"/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/MovieDemo/* "${WORKDIR}"/files/MovieDemo/
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/Layout/ "${WORKDIR}"/files/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/Stage/Texture/* ${WORKDIR}/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/NewerRes/* ${WORKDIR}/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/Stage/*.arc ${WORKDIR}/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/Env/* ${WORKDIR}/files/Env/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/Sound/stream/* ${WORKDIR}/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/Sound/*.brsar ${WORKDIR}/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/WorldMap/* ${WORKDIR}/files/WorldMap/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/Object/* ${WORKDIR}/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/ESBW/MovieDemo/* ${WORKDIR}/files/MovieDemo/
|
||||
cp -r "${RIIVOLUTION_DIR}"/ESBW/Layout/ ${WORKDIR}/files/
|
||||
|
||||
}
|
||||
|
92
script.d/ghostlysuperghostbooswii.sh
Normal file
92
script.d/ghostlysuperghostbooswii.sh
Normal file
@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://www.mediafire.com/?vf7p9pu8bqxohuo"
|
||||
RIIVOLUTION_ZIP="GSGBW v1.0.2.zip"
|
||||
RIIVOLUTION_DIR="GSGBW/Ghostly"
|
||||
GAMENAME="Ghostly Super Ghost Boos. Wii"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}/../riivolution/Ghostly"
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Source: http://rvlution.net/thread/3606-ghostly-super-ghost-boos-wii-out-now/
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
GAMEID=SMN${REG_LETTER}65
|
||||
XML_FILE="${XML_FILE}${REG_LETTER}.xml"
|
||||
|
||||
}
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( ${WORKDIR}/files/EU/NedEU/{Message,Font,staffroll} )
|
||||
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 "${RIIVOLUTION_DIR}"/MessageEN/* ${WORKDIR}/files/EU/${dir}/Message/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningP/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* ${WORKDIR}/files/US/${dir}/Message/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningE/* ${WORKDIR}/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* ${WORKDIR}/files/JP/Message/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningJ/* ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/Env/ ${WORKDIR}/files/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Layout/ ${WORKDIR}/files/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Object/ ${WORKDIR}/files/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/Stream/* ${WORKDIR}/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/*.brsar ${WORKDIR}/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/Texture/* ${WORKDIR}/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/*.arc ${WORKDIR}/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/WorldMap/* ${WORKDIR}/files/WorldMap/
|
||||
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
}
|
108
script.d/kirbywii.sh
Normal file
108
script.d/kirbywii.sh
Normal file
@ -0,0 +1,108 @@
|
||||
#!/bin/bash
|
||||
|
||||
GAME_TYPE="WII_GENERIC"
|
||||
GAME_NAME="Kirby's Adventure Wii"
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Base Image: Kirby's Adventure Wii (SUK?01)
|
||||
Supported Versions: EUR, JAP, USA
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
PATH_HERO="files/g3d/step/chara/hero/"
|
||||
|
||||
exchange_kirby () {
|
||||
|
||||
cp workdir/${PATH_HERO}/kirby/base/${1}.brres.cmp{,_tmp}
|
||||
cp workdir/${PATH_HERO}/kirby/base/Pink.brres.cmp \
|
||||
workdir/${PATH_HERO}/kirby/base/${1}.brres.cmp
|
||||
mv workdir/${PATH_HERO}/kirby/base/${1}.brres.cmp_tmp \
|
||||
workdir/${PATH_HERO}/kirby/base/Pink.brres.cmp
|
||||
|
||||
}
|
||||
|
||||
exchange_hero () {
|
||||
|
||||
cp workdir/${PATH_HERO}/${1}/base/Default.brres.cmp \
|
||||
workdir/${PATH_HERO}/kirby/base/Pink.brres.cmp_temp
|
||||
cp workdir/${PATH_HERO}/kirby/base/Pink.brres.cmp \
|
||||
workdir/${PATH_HERO}/${1}/base/Default.brres.cmp
|
||||
mv workdir/${PATH_HERO}/kirby/base/Pink.brres.cmp{_temp,}
|
||||
for brres in workdir/${PATH_HERO}/${1}/normal/*.cmp ; do
|
||||
xfile=${brres##*/}
|
||||
xpath=${brres%/*}
|
||||
cp ${brres} workdir/${PATH_HERO}/kirby/normal/${xfile}_temp
|
||||
cp workdir/${PATH_HERO}/kirby/normal/${xfile} \
|
||||
workdir/${PATH_HERO}/${1}/normal/
|
||||
mv workdir/${PATH_HERO}/kirby/normal/${xfile}{_temp,}
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
pi_action () {
|
||||
|
||||
check_input_image_kirby
|
||||
|
||||
echo "Choose character for first player
|
||||
|
||||
1 Kirby (blue)
|
||||
2 Kirby (yellow)
|
||||
3 Kirby (green)
|
||||
|
||||
*** options 4 to 6 may crash the game upon start ***
|
||||
4 King DeDeDe
|
||||
5 MetaKnight
|
||||
6 WaddleDee
|
||||
|
||||
7 Restore to original
|
||||
|
||||
type in an number."
|
||||
read ID
|
||||
|
||||
[[ ${ID} != [0-9] ]] && echo "invalid number provided from user-input." && exit 1
|
||||
|
||||
rm -rf workdir
|
||||
|
||||
echo -e "\n*** 3) extracting image"
|
||||
${WIT} extract ${IMAGE} --psel=data -d workdir -q || exit 51
|
||||
|
||||
if [[ ! -d "${PATCHIMAGE_RIIVOLUTION_DIR}"/hero/ ]]; then
|
||||
echo "*** 4) this is the first run, so backing up all characters
|
||||
(in ${PATCHIMAGE_RIIVOLUTION_DIR}) for future customizations"
|
||||
cp -r workdir/${PATH_HERO}/ "${PATCHIMAGE_RIIVOLUTION_DIR}"
|
||||
else
|
||||
echo "*** 4) restoring original characters"
|
||||
cp -r "${PATCHIMAGE_RIIVOLUTION_DIR}"/hero/* workdir/${PATH_HERO}/
|
||||
fi
|
||||
|
||||
REG=$(gawk '/^SUK/{print $3}' <(${WIT} ll ${IMAGE}))
|
||||
|
||||
case $REG in
|
||||
PAL) REG=P ;;
|
||||
NTSC-J) REG=J ;;
|
||||
NTSC-U) REG=E ;;
|
||||
esac
|
||||
|
||||
[[ ${ID} != 7 ]] && echo "*** 5) exchanging characters"
|
||||
case ${ID} in
|
||||
1) exchange_kirby Blue ;;
|
||||
2) exchange_kirby Yellow ;;
|
||||
3) exchange_kirby Green ;;
|
||||
4) exchange_hero dedede ;;
|
||||
5) exchange_hero meta ;;
|
||||
6) exchange_hero dee ;;
|
||||
esac
|
||||
|
||||
echo "*** 6) rebuilding the game "
|
||||
echo " (storing game in ${PATCHIMAGE_GAME_DIR}/SUK${REG}01.wbfs)"
|
||||
${WIT} cp -o -q -B workdir ${PATCHIMAGE_GAME_DIR}/SUK${REG}01.wbfs || exit 51
|
||||
|
||||
rm -rf workdir
|
||||
|
||||
}
|
@ -10,7 +10,6 @@ XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../riivolution/KoopaP.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -35,6 +34,12 @@ Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -45,9 +50,9 @@ detect_game_version () {
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( "${WORKDIR}"/files/NewerRes "${WORKDIR}"/files/EU/NedEU )
|
||||
for dir in "${NEW_DIRS[@]}"; do
|
||||
mkdir -p "${dir}"
|
||||
NEW_DIRS=( ${WORKDIR}/files/NewerRes ${WORKDIR}/files/EU/NedEU )
|
||||
for dir in ${NEW_DIRS[@]}; do
|
||||
mkdir -p ${dir}
|
||||
done
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/{m,M}essage
|
||||
@ -55,37 +60,38 @@ place_files () {
|
||||
case ${VERSION} in
|
||||
EUR* )
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message/ "${WORKDIR}"/files/EU/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message/ ${WORKDIR}/files/EU/${dir}/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningP/* "${WORKDIR}"/files/EU/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningP/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message/ "${WORKDIR}"/files/US/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message/ ${WORKDIR}/files/US/${dir}/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningE/* "${WORKDIR}"/files/US/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningE/* ${WORKDIR}/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message/ "${WORKDIR}"/files/JP/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningJ/* "${WORKDIR}"/files/JP/Layout/openingTitle/
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message/ ${WORKDIR}/files/JP/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningJ/* ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/Texture/* "${WORKDIR}"/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/NewerRes/* "${WORKDIR}"/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/*.arc "${WORKDIR}"/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Env/* "${WORKDIR}"/files/Env/
|
||||
cp "${RIIVOLUTION_DIR}"/sound/stream/* "${WORKDIR}"/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/sound/*.brsar "${WORKDIR}"/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/WorldMap/* "${WORKDIR}"/files/WorldMap/
|
||||
cp "${RIIVOLUTION_DIR}"/Object/* "${WORKDIR}"/files/Object/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Layout/preGame.arc "${WORKDIR}"/files/Layout/preGame/
|
||||
cp "${PATCHIMAGE_PATCH_DIR}"/01-03.arc "${WORKDIR}"/files/Stage/
|
||||
cp "${PATCHIMAGE_PATCH_DIR}"/08-01.arc "${WORKDIR}"/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/Texture/* ${WORKDIR}/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/NewerRes/* ${WORKDIR}/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/*.arc ${WORKDIR}/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Env/* ${WORKDIR}/files/Env/
|
||||
cp "${RIIVOLUTION_DIR}"/sound/stream/* ${WORKDIR}/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/sound/*.brsar ${WORKDIR}/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/WorldMap/* ${WORKDIR}/files/WorldMap/
|
||||
cp "${RIIVOLUTION_DIR}"/Object/* ${WORKDIR}/files/Object/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Layout/preGame.arc ${WORKDIR}/files/Layout/preGame/
|
||||
# fixes
|
||||
cp ${PATCHIMAGE_PATCH_DIR}/01-03.arc ${WORKDIR}/files/Stage/
|
||||
cp ${PATCHIMAGE_PATCH_DIR}/08-01.arc ${WORKDIR}/files/Stage/
|
||||
|
||||
}
|
||||
|
@ -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."
|
||||
@ -10,7 +10,6 @@ XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/LSYB
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -29,6 +28,12 @@ Supported Versions: EURv1, EURv2, USAv1, USAv1, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -39,36 +44,36 @@ detect_game_version () {
|
||||
|
||||
place_files () {
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/{Env,Layout,Object,Stage,WorldMap} "${WORKDIR}"/files
|
||||
cp -r "${RIIVOLUTION_DIR}"/{Env,Layout,Object,Stage,WorldMap} ${WORKDIR}/files
|
||||
|
||||
NEW_DIRS=( "${WORKDIR}"/files/EU/NedEU/Message )
|
||||
for dir in "${NEW_DIRS[@]}"; do
|
||||
mkdir -p "${dir}"
|
||||
NEW_DIRS=( ${WORKDIR}/files/EU/NedEU/Message )
|
||||
for dir in ${NEW_DIRS[@]}; do
|
||||
mkdir -p ${dir}
|
||||
done
|
||||
|
||||
case ${VERSION} in
|
||||
EURv* )
|
||||
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* "${WORKDIR}"/files/EU/"${dir}"/Message/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* ${WORKDIR}/files/EU/${dir}/Message/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningP/* "${WORKDIR}"/files/EU/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningP/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
||||
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* "${WORKDIR}"/files/US/"${dir}"/Message/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* ${WORKDIR}/files/US/${dir}/Message/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningE/* "${WORKDIR}"/files/US/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningE/* ${WORKDIR}/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv* )
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* "${WORKDIR}"/files/JP/Message/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningJ/* "${WORKDIR}"/files/JP/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* ${WORKDIR}/files/JP/Message/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningJ/* ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="http://nanolx.org/riivolution/MSMBWii.zip"
|
||||
DOWNLOAD_LINK="http://www.nanolx.org/riivolution/MSBWii.rar"
|
||||
RIIVOLUTION_ZIP="MSMBWii.zip"
|
||||
RIIVOLUTION_DIR="msmbwiijala"
|
||||
GAMENAME="Midi's Super Mario Wii - Just A Little Adventure"
|
||||
@ -10,7 +10,6 @@ XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../riivolution/MSMBWIIJALA.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -25,6 +24,12 @@ Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -38,13 +43,13 @@ place_files () {
|
||||
|
||||
case ${VERSION} in
|
||||
USAv* )
|
||||
cp "${RIIVOLUTION_DIR}"/Title/US/openingTitle.arc "${WORKDIR}"/files/US/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/Title/US/openingTitle.arc ${WORKDIR}/files/US/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/Texture/ "${WORKDIR}"/files/Stage/
|
||||
cp -r "${RIIVOLUTION_DIR}"/AnotherRes/ "${WORKDIR}"/files/
|
||||
cp "${RIIVOLUTION_DIR}"/*.arc "${WORKDIR}"/files/Stage/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Texture/ ${WORKDIR}/files/Stage/
|
||||
cp -r "${RIIVOLUTION_DIR}"/AnotherRes/ ${WORKDIR}/files/
|
||||
cp "${RIIVOLUTION_DIR}"/*.arc ${WORKDIR}/files/Stage/
|
||||
|
||||
}
|
||||
|
@ -20,18 +20,8 @@
|
||||
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.v1.7z
|
193
script.d/mkwiimm.sh
Normal file
193
script.d/mkwiimm.sh
Normal file
@ -0,0 +1,193 @@
|
||||
#!/bin/bash
|
||||
|
||||
GAME_TYPE="MKWIIMM"
|
||||
GAME_NAME="Mario Kart Wiimm"
|
||||
DOWNLOAD_LINK="http://download.wiimm.de/wiimmfi/patcher/mkw-wiimmfi-patcher-v3.7z"
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAME_NAME}
|
||||
|
||||
Custom Mario Kart Wii
|
||||
|
||||
Source: http://wiiki.wii-homebrew.com/Wiimms_Mario_Kart_Fun
|
||||
Base Image: Mario Kart Wii (RMC?01)
|
||||
Supported Versions: EUR, JAP, USA
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_mkwiimm
|
||||
|
||||
}
|
||||
|
||||
download_wiimm () {
|
||||
|
||||
echo "Choose a Mario Kart Wiimm Distribution
|
||||
|
||||
ALL Build all distributions."
|
||||
gawk -F \: 'NR>1 {print $1 "\t" $2}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm.db
|
||||
echo "
|
||||
type in ALL or an ID (multiple separated by space)"
|
||||
read ID
|
||||
|
||||
}
|
||||
|
||||
wiimmfi () {
|
||||
|
||||
mkdir -p "${HOME}/.patchimage/tools/"
|
||||
cd ${HOME}/.patchimage/tools
|
||||
rm -rf wiimmfi-patcher/ *.7z*
|
||||
wget "${DOWNLOAD_LINK}" &>/dev/null || ( echo "something went wrong downloading ${DOWNLOAD_LINK}" && exit 57 )
|
||||
${UNP} mkw-wiimmfi-patcher.7z >/dev/null || ( echo "something went wrong extracting files" && exit 63 )
|
||||
mv mkw-wiimmfi-patcher*/ wiimmfi-patcher
|
||||
chmod +x wiimmfi-patcher/*.sh
|
||||
cd wiimmfi-patcher/
|
||||
|
||||
ln -s "${1}" .
|
||||
./patch-wiimmfi.sh >/dev/null || exit 51
|
||||
echo "*** 8) storing game in ${PATCHIMAGE_GAME_DIR}/${1##*/}"
|
||||
mv ./wiimmfi-images/${1##*/} "${PATCHIMAGE_GAME_DIR}"/
|
||||
|
||||
rm -rf ${HOME}/.patchimage/tools/*
|
||||
|
||||
}
|
||||
|
||||
mkwiimm_distfiles () {
|
||||
|
||||
if [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/${FILENAME} ]]; then
|
||||
echo "*** 5) extracting mkwiimm files"
|
||||
${UNP} ${PATCHIMAGE_RIIVOLUTION_DIR}/${FILENAME} >/dev/null || \
|
||||
( echo "something went wrong extracting files" && exit 63 )
|
||||
elif [[ -f ${PWD}/${FILENAME} ]]; then
|
||||
echo "*** 5) extracting mkwiimm files"
|
||||
${UNP} ${PWD}/${FILENAME} >/dev/null || \
|
||||
( echo "something went wrong extracting files" && exit 63 )
|
||||
else
|
||||
echo "*** 5) downloading and extracting mkwiimm files"
|
||||
wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/${FILENAME} ${DOWNLOAD} >/dev/null || \
|
||||
( echo "something went wrong downloading ${DOWNLOAD}" && exit 57 )
|
||||
${UNP} ${PATCHIMAGE_RIIVOLUTION_DIR}/${FILENAME} >/dev/null || \
|
||||
( echo "something went wrong extracting files" && exit 63 )
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
mkwiimm_build_olddist () {
|
||||
|
||||
if [[ ${MKWIIMM_MSG_LANG} && ${MKWIIMM_OWN_SAVE} ]]; then
|
||||
echo "LANGUAGE=${MKWIIMM_MSG_LANG}
|
||||
MSGLANG=${MKWIIMM_MSG_LANG}
|
||||
ISOMODE=wbfs
|
||||
SPLITISO=
|
||||
PRIV_SAVEGAME=${MKWIIMM_OWN_SAVE}" > ${PWD}/config.def
|
||||
echo "*** 6) creating >${DIST}< (can take some time)"
|
||||
./create-image.sh -a --dest=${XD}/RMC${REG}${MY_ID}.wbfs >/dev/null || exit 51
|
||||
else
|
||||
echo "*** 6) creating >${DIST}< (can take some time)"
|
||||
./create-image.sh --dest=${XD}/RMC${REG}${MY_ID}.wbfs || exit 51
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
mkwiimm_build_newdist () {
|
||||
|
||||
if [[ ${MKWIIMM_MSG_LANG} && ${MKWIIMM_OWN_SAVE} && ${MKWIIMM_CTRENAME} && ${MKWIIMM_CTREORDER} ]]; then
|
||||
echo "LANGUAGE=${MKWIIMM_MSG_LANG}
|
||||
MSGLANG1=-
|
||||
MSGLANG2=E
|
||||
TRACKLANG=x,${MKWIIMM_MSG_LANG}
|
||||
CTRENAME=${MKWIIMM_CTRENAME}
|
||||
REORDER=${MKWIIMM_CTREORDER}
|
||||
ISOMODE=wbfs
|
||||
SPLITISO=
|
||||
PRIV_SAVEGAME=${MKWIIMM_OWN_SAVE}" > ${PWD}/config.def
|
||||
|
||||
echo "*** 6) creating >${DIST}< (can take some time)"
|
||||
./create-image.sh -a --dest=${XD}/RMC${REG}${MY_ID}.wbfs >/dev/null || exit 51
|
||||
else
|
||||
echo "*** 6) creating >${DIST}< (can take some time)"
|
||||
./create-image.sh --dest=${XD}/RMC${REG}${MY_ID}.wbfs || exit 51
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
build_mkwiimm () {
|
||||
|
||||
MY_ID=${1}
|
||||
DIST=$(gawk -F \: "/^${MY_ID}/"'{print $2}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm.db)
|
||||
DOWNLOAD=$(gawk -F \: "/^${MY_ID}/"'{print $3}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm.db)
|
||||
FILENAME=$(gawk -F \: "/^${MY_ID}/"'{split($3, a, "/") ; print a[3]}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm.db)
|
||||
|
||||
if [[ ${FILENAME} != mkw* ]]; then
|
||||
echo "wrong ID passed from user-input, exiting."
|
||||
exit 75
|
||||
fi
|
||||
|
||||
rm -rf ${FILENAME/.7z}
|
||||
mkwiimm_distfiles
|
||||
cd ${FILENAME/.7z}
|
||||
|
||||
REG=$(gawk '/^RMC/{print $3}' <(${WIT} ll ${IMAGE}))
|
||||
|
||||
case $REG in
|
||||
PAL) REG=P ;;
|
||||
NTSC-J) REG=J ;;
|
||||
NTSC-U) REG=E ;;
|
||||
esac
|
||||
|
||||
ln -s "${IMAGE}" .
|
||||
chmod +x *.sh
|
||||
|
||||
if [[ ${MKWIIMM_OVERRIDE_SZS} == "TRUE" ]] && cp -r ${PATCHIMAGE_SCRIPT_DIR}/../override/* ${PWD}/bin/
|
||||
|
||||
if [[ ${MY_ID} -lt 27 ]]; then
|
||||
mkwiimm_olddist
|
||||
else mkwiimm_newdist
|
||||
fi
|
||||
|
||||
if [[ ${MY_ID} -lt 23 ]]; then
|
||||
echo "*** 7) patching >${DIST}< to use custom server"
|
||||
wiimmfi ${XD}/RMC${REG}${MY_ID}.wbfs || (echo "something went wrong wiimmfi-ing ${XD}/RMC${REG}${MY_ID}.wbfs" && exit 69)
|
||||
echo "*** 8) storing game"
|
||||
else echo "*** 7) storing game"
|
||||
fi
|
||||
|
||||
cd ${XD}
|
||||
|
||||
echo " ${DIST} saved as ${PATCHIMAGE_GAME_DIR}/RMC${REG}${MY_ID}.wbfs"
|
||||
mv RMC${REG}${MY_ID}.wbfs \
|
||||
${PATCHIMAGE_GAME_DIR}/RMC${REG}${MY_ID}.wbfs || exit 51
|
||||
|
||||
if [[ ${MY_ID} -lt 23 ]]; then
|
||||
echo "*** 9) cleaning up workdir"
|
||||
else
|
||||
echo "*** 8) cleaning up workdir"
|
||||
fi
|
||||
|
||||
rm -rf ${FILENAME/.7z}
|
||||
|
||||
if [[ ${PATCHIMAGE_COVER_DOWNLOAD} == TRUE ]]; then
|
||||
echo -e "*** Z) download_covers\n"
|
||||
download_covers RMC${REG}${MY_ID}
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
patch_wiimm () {
|
||||
|
||||
XD=${PWD}
|
||||
if [[ ${ID} == ALL ]]; then
|
||||
for ID in {06..31}; do
|
||||
build_mkwiimm ${ID}
|
||||
done
|
||||
else
|
||||
for game in ${ID[@]}; do
|
||||
build_mkwiimm ${game}
|
||||
done
|
||||
fi
|
||||
}
|
@ -1,10 +1,7 @@
|
||||
cbc.szs:Crash Bandicoot Font (coloured):Slawter
|
||||
cbf.szs:Crash Bandicoot Font (black & white):Slawter
|
||||
chk.szs:Chalky Font:Guilmon35249vr
|
||||
dky.szs:Darky Font:DarkyBenji
|
||||
cbc.szs:Crash Bandicoot Font (coloured):Slawter
|
||||
drk.szs:Darkness Font:Shadow
|
||||
mvb.szs:MV Boli Font:Jorge
|
||||
dky.szs:Darky Font:DarkyBenji
|
||||
rpp.szs:Ripple Font:CaronHT
|
||||
smw.szs:Super Mario Font:4tbMyles8110mkwii
|
||||
mvb.szs:MV Boli Font:Jorge
|
||||
spp.szs:Space Patrol Font:Jorge
|
||||
ume.szs:UmePlus Font:rca42623
|
@ -1,15 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
GAME_TYPE="GENERIC"
|
||||
GAMENAME="Mario Kart Wiimm"
|
||||
GAME_TYPE="MKWIIMM"
|
||||
GAME_NAME="Mario Kart Wiimm"
|
||||
ITEMS_BASE="http://riivolution.nanolx.org/mkwiimm_fonts"
|
||||
FSZS="files/Scene/UI/Font.szs"
|
||||
WBFS_MASK="RMC[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
${GAME_NAME}
|
||||
|
||||
Custom Mario Kart Wii
|
||||
|
||||
@ -22,15 +22,13 @@ Supported Versions: EUR, JAP, USA
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
ask_input_image_mkwiimm
|
||||
check_input_image_mkwiimm
|
||||
ask_input_image_mkwiimm ${IMAGE%/*}
|
||||
echo -e "type RMC???.wbfs:\n"
|
||||
read -er ID
|
||||
read ID
|
||||
|
||||
if [[ -f ${PWD}/${ID} ]]; then
|
||||
GAMEDIR="${PWD}"
|
||||
elif [[ -f ${PATCHIMAGE_WBFS_DIR}/${ID} ]]; then
|
||||
GAMEDIR="${PATCHIMAGE_WBFS_DIR}"
|
||||
else echo "invalid user input."
|
||||
if [[ ! -f ${IMAGE%/*}/${ID} ]]; then
|
||||
echo "wrong id from user-input given."
|
||||
exit 75
|
||||
fi
|
||||
|
||||
@ -42,15 +40,18 @@ download_wiimm () {
|
||||
|
||||
orig Original Mario Kart Wii Font"
|
||||
|
||||
gawk -F : '{print $1 "\t\t" $2}' < "${PATCHIMAGE_DATABASE_DIR}"/mkwiimm_fonts.db
|
||||
gawk -F \: '{print $1 "\t\t" $2}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_fonts.db
|
||||
|
||||
echo -e "\ntype ???.szs or orig"
|
||||
read -er FONT
|
||||
read FONT
|
||||
|
||||
if [[ ${FONT} != orig ]]; then
|
||||
if [[ ! -f ${PATCHIMAGE_DATA_DIR}/mkwiimm_fonts/${FONT} ]]; then
|
||||
echo "Font ${FONT} unknown"
|
||||
exit 75
|
||||
if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_font_${FONT} ]]; then
|
||||
wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_font_${FONT} \
|
||||
${ITEMS_BASE}/${FONT} &>/dev/null \
|
||||
|| (echo "download of ${FONT} failed." \
|
||||
&& rm ${PATCHIMAGE_RIIVOLUTION_DIR}/${FONT} \
|
||||
&& exit 57)
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -60,31 +61,30 @@ build_mkwiimm () {
|
||||
|
||||
rm -rf workdir
|
||||
echo "*** 5) extracting image"
|
||||
"${WIT}" extract "${GAMEDIR}"/"${ID}" workdir -q || exit 51
|
||||
${WIT} extract ${IMAGE%/*}/${ID} workdir -q || exit 51
|
||||
|
||||
if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}"/Font.szs_${ID/.*} ]]; then
|
||||
echo "*** 6) this is the first run, so backing up font.szs
|
||||
(in ${PATCHIMAGE_RIIVOLUTION_DIR}) for future customizations"
|
||||
cp workdir/"${FSZS}" "${PATCHIMAGE_RIIVOLUTION_DIR}"/Font.szs_"${ID/.*}"
|
||||
cp workdir/${FSZS} "${PATCHIMAGE_RIIVOLUTION_DIR}"/Font.szs_${ID/.*}
|
||||
else
|
||||
echo "*** 6) restoring original common.szs"
|
||||
cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/Font.szs_"${ID/.*}" workdir/"${FSZS}"
|
||||
cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/Font.szs_${ID/.*} workdir/${FSZS}
|
||||
fi
|
||||
|
||||
echo "*** 7) replacing font"
|
||||
cp "${PATCHIMAGE_DATA_DIR}"/mkwiimm_fonts/"${FONT}" workdir/"${FSZS}"
|
||||
cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/mkwiimm_font_${FONT} workdir/${FSZS}
|
||||
|
||||
echo "*** 8) rebuilding game"
|
||||
echo " (storing game in ${PATCHIMAGE_GAME_DIR}/${ID})"
|
||||
"${WIT}" cp -o -q -B workdir "${PATCHIMAGE_GAME_DIR}"/"${ID}" || exit 51
|
||||
${WIT} cp -o -q -B workdir ${PATCHIMAGE_GAME_DIR}/${ID} || exit 51
|
||||
|
||||
rm -rf workdir
|
||||
|
||||
}
|
||||
|
||||
pi_action () {
|
||||
patch_wiimm () {
|
||||
|
||||
download_wiimm
|
||||
build_mkwiimm
|
||||
|
||||
}
|
@ -1,7 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
GAME_TYPE="GENERIC"
|
||||
GAMENAME="Mario Kart Wiimm"
|
||||
GAME_TYPE="MKWIIMM"
|
||||
GAME_NAME="Mario Kart Wiimm"
|
||||
ITEMS_BASE="http://riivolution.nanolx.org/mkwiimm_items"
|
||||
CSZS="files/Race/Common.szs"
|
||||
CSZD="files/Race/Common.d"
|
||||
|
||||
@ -9,7 +10,7 @@ show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
${GAME_NAME}
|
||||
|
||||
Custom Mario Kart Wii
|
||||
|
||||
@ -22,16 +23,14 @@ Supported Versions: EUR, JAP, USA
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
ask_input_image_mkwiimm
|
||||
check_input_image_mkwiimm
|
||||
ask_input_image_mkwiimm ${IMAGE%/*}
|
||||
echo -e "type RMC???.wbfs:\n"
|
||||
read -er ID
|
||||
read ID
|
||||
|
||||
if [[ -f ${PWD}/${ID} ]]; then
|
||||
GAMEDIR="${PWD}"
|
||||
elif [[ -f ${PATCHIMAGE_WBFS_DIR}/${ID} ]]; then
|
||||
GAMEDIR="${PATCHIMAGE_WBFS_DIR}"
|
||||
else echo "invalid user input."
|
||||
exit 75
|
||||
if [[ ! -f ${IMAGE%/*}/${ID} ]]; then
|
||||
echo "wrong id from user-input given."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
}
|
||||
@ -60,9 +59,11 @@ ask_items () {
|
||||
if [[ -f ${HOME}/.patchimage.choice ]]; then
|
||||
echo "Your choices from last time can be re-used."
|
||||
echo "y (yes) or n (no)"
|
||||
read -er choice
|
||||
read choice
|
||||
|
||||
[[ ${choice} == y ]] && source "${HOME}"/.patchimage.choice
|
||||
if [[ ${choice} == y ]]; then
|
||||
source ${HOME}/.patchimage.choice
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ ${choosenitems[@]} == "" ]]; then
|
||||
@ -75,26 +76,28 @@ ask_items () {
|
||||
|
||||
orig Original item"
|
||||
|
||||
gawk -F : "/${slot}/"'{print $1 "\t" $3}' < "${PATCHIMAGE_DATABASE_DIR}"/mkwiimm_items.db
|
||||
gawk -F \: "/${slot}/"'{print $1 "\t" $3}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_items.db
|
||||
echo -e "\ntype orig or ???.brres"
|
||||
read -er slotid
|
||||
read slotid
|
||||
echo "<<<<<<>>>>>>"
|
||||
choosenitems=( ${choosenitems[@]} ${slot}:${slotid} )
|
||||
done
|
||||
|
||||
echo "${choosenitems[@]}"
|
||||
echo "choosenitems=( ${choosenitems[*]} )" > "${HOME}"/.patchimage.choice
|
||||
echo ${choosenitems[@]}
|
||||
echo "choosenitems=( ${choosenitems[@]} )" > ${HOME}/.patchimage.choice
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
download_items () {
|
||||
|
||||
for item in "${choosenitems[@]}"; do
|
||||
for item in ${choosenitems[@]}; do
|
||||
id=${item/*:}
|
||||
if [[ ! -f ${PATCHIMAGE_DATA_DIR}/mkwiimm_items/${id} ]]; then
|
||||
echo "unknown Item ${item}"
|
||||
exit 75
|
||||
if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_item_${id} ]]; then
|
||||
wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_item_${id} \
|
||||
${ITEMS_BASE}/${id} &>/dev/null \
|
||||
|| (echo "download of ${id} failed." \
|
||||
&& rm ${PATCHIMAGE_RIIVOLUTION_DIR}/${id})
|
||||
fi
|
||||
done
|
||||
|
||||
@ -111,42 +114,43 @@ build_mkwiimm () {
|
||||
|
||||
rm -rf workdir
|
||||
echo "*** 5) extracting image"
|
||||
"${WIT}" extract "${GAMEDIR}"/"${ID}" workdir -q || exit 51
|
||||
${WIT} extract ${IMAGE%/*}/${ID} workdir -q || exit 51
|
||||
|
||||
if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}"/Common.szs_${ID/.*} ]]; then
|
||||
echo "*** 6) this is the first run, so backing up common.szs
|
||||
(in ${PATCHIMAGE_RIIVOLUTION_DIR}) for future customizations"
|
||||
cp workdir/"${CSZS}" "${PATCHIMAGE_RIIVOLUTION_DIR}"/Common.szs_"${ID/.*}"
|
||||
cp workdir/${CSZS} "${PATCHIMAGE_RIIVOLUTION_DIR}"/Common.szs_${ID/.*}
|
||||
else
|
||||
echo "*** 6) restoring original common.szs"
|
||||
cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/Common.szs_"${ID/.*}" workdir/"${CSZS}"
|
||||
cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/Common.szs_${ID/.*} workdir/${CSZS}
|
||||
fi
|
||||
|
||||
echo "*** 7) replacing items"
|
||||
rm -rf workdir/"${CSZD}"
|
||||
"${SZS}" extract workdir/"${CSZS}" -q || \
|
||||
( echo "szs caught an error extracting common.szs" && exit 51 )
|
||||
for item in "${choosenitems[@]}"; do
|
||||
rm -rf workdir/${CSZD}
|
||||
${SZS} extract workdir/${CSZS} -q || \
|
||||
( echo "szs caught an erro extracting common.szs" && exit 51 )
|
||||
for item in ${choosenitems[@]}; do
|
||||
slot=${item/:*}
|
||||
newi=${item/*:}
|
||||
cp "${PATCHIMAGE_DATA_DIR}"/mkwiimm_items/"${newi}" \
|
||||
workdir/"${CSZD}"/"${slot}"
|
||||
if [[ -f ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_item_${newi} ]]; then
|
||||
cp ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_item_${newi} \
|
||||
workdir/${CSZD}/${slot}
|
||||
fi
|
||||
done
|
||||
"${SZS}" create -o workdir/"${CSZD}" -q || \
|
||||
${SZS} create -o workdir/${CSZD} -q || \
|
||||
( echo "szs caught an error rebuilding common.szs" && exit 51 )
|
||||
rm -rf workdir/"${CSZD}"
|
||||
rm -rf workdir/${CSZD}
|
||||
|
||||
echo "*** 8) rebuilding game"
|
||||
echo " (storing game in ${PATCHIMAGE_GAME_DIR}/${ID})"
|
||||
"${WIT}" cp -o -q -B workdir "${PATCHIMAGE_GAME_DIR}"/"${ID}" || exit 51
|
||||
${WIT} cp -o -q -B workdir ${PATCHIMAGE_GAME_DIR}/${ID} || exit 51
|
||||
|
||||
rm -rf workdir
|
||||
|
||||
}
|
||||
|
||||
pi_action () {
|
||||
patch_wiimm () {
|
||||
|
||||
download_wiimm
|
||||
build_mkwiimm
|
||||
|
||||
}
|
@ -1,21 +1,14 @@
|
||||
20p.szs:Flying Rainbow Dash:LeonExodio
|
||||
bma.szs:Black Mage on Wii Remote:MKDasher
|
||||
btc.szs:Big The Cat on Flame Runner:MKDasher
|
||||
cpt.szs:Captain Falcon on foot:LeonExodio, ShadowLuigi-NG-
|
||||
dbj.szs:Dry Bowser Junior on Mach Bike:ShadowLuigi-NG-
|
||||
dks.szs:Dark Schneider:Baoulettes
|
||||
fmc.szs:Fox McCloud on Mach Bike:Baoulettes
|
||||
pbb.szs:Pikachu riding on Bullet Bike:Baoulettes
|
||||
jof.szs:Jolteon on foot:XModxGodX
|
||||
dbj.szs:Dry Bowser Junior on Mach Bike:ShadowLuigi-NG-
|
||||
fmc.szs:Fox McCloud on Mach Bike:Baoulettes
|
||||
jth.szs:Jet The Hawk on Type-J X-treme Gear:SonicBrawler
|
||||
kow.szs:Kirby on Wheelie:Thed0ra7z, Lone Devil
|
||||
20p.szs:Flying Rainbow Dash:LeonExodio
|
||||
ren.szs:Renamon on Dolphin Dasher:LuigiGalaxy530
|
||||
sth.szs:Sonic The Hedgehog on foot:ShadowLuigi-NG-
|
||||
btc.szs:Big The Cat on Flame Runner:MKDasher
|
||||
cpt.szs:Captain Falcon on Flame Runner:LeonExodio, ShadowLuigi-NG-
|
||||
dks.szs:Dark Schneider:Baoulettes
|
||||
lin.szs:Link on Flame Runner:Baoulettes
|
||||
luc.szs:Lucario on Spear:Baoulettes
|
||||
mid.szs:Midna on Flame Runner:Baoulettes
|
||||
nab.szs:Nabbit on Flame Runner:Atlas
|
||||
pbb.szs:Pikachu riding on Bullet Bike:Baoulettes
|
||||
ren.szs:Renamon on Dolphin Dasher:LuigiGalaxy530
|
||||
sku.szs:Skull Kid on Bullet Bike:Atlas
|
||||
sth.szs:Sonic The Hedgehog on foot:ShadowLuigi-NG-
|
||||
sus.szs:Super Sonic on Mach Bike:Toni Kart
|
||||
wma.szs:White Mage on Wii Remote:
|
||||
wol.szs:Wolf Link on Mach Bike:Guilmon35249vr
|
132
script.d/mkwiimm_karts.sh
Normal file
132
script.d/mkwiimm_karts.sh
Normal file
@ -0,0 +1,132 @@
|
||||
#!/bin/bash
|
||||
|
||||
GAME_TYPE="MKWIIMM"
|
||||
GAME_NAME="Mario Kart Wiimm"
|
||||
ITEMS_BASE="http://riivolution.nanolx.org/mkwiimm_karts"
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAME_NAME}
|
||||
|
||||
Custom Mario Kart Wii
|
||||
|
||||
Source: http://wiiki.wii-homebrew.com/Wiimms_Mario_Kart_Fun
|
||||
Base Image: Mario Kart Wii (RMC?01)
|
||||
Supported Versions: EUR, JAP, USA
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_mkwiimm
|
||||
ask_input_image_mkwiimm ${IMAGE%/*}
|
||||
echo -e "type RMC???.wbfs:\n"
|
||||
read ID
|
||||
|
||||
if [[ ! -f ${IMAGE%/*}/${ID} ]]; then
|
||||
echo "wrong id from user-input given."
|
||||
exit 75
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
ask_slot () {
|
||||
|
||||
echo -e "\nFirst choose a vehicle to be replaced\n"
|
||||
gawk -F \: '{print $1 "\t\t" $2}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_vehicles.db
|
||||
echo -e "\ntype in ??_??? as in first column\n"
|
||||
read VEHICLE
|
||||
|
||||
echo -e "\nNow choose a character to be replaced\n"
|
||||
gawk -F \: '{print $1 "\t\t" $2}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_characters.db
|
||||
echo -e "\ntype in -?? as in first column\n"
|
||||
read CHARACTER
|
||||
|
||||
choosenkarts=( ${choosenkarts[@]} ${kart}:${VEHICLE}${CHARACTER} )
|
||||
|
||||
}
|
||||
|
||||
download_wiimm () {
|
||||
|
||||
if [[ -f ${HOME}/.patchimage.choice ]]; then
|
||||
echo "Your choices from last time can be re-used."
|
||||
echo "y (yes) or n (no)"
|
||||
read choice
|
||||
|
||||
if [[ ${choice} == y ]]; then
|
||||
source ${HOME}/.patchimage.choice
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ ${choosenkarts[@]} == "" ]]; then
|
||||
echo -e "Choose a character to add to the game\n"
|
||||
|
||||
gawk -F \: '{print $1 "\t\t" $2}' < ${PATCHIMAGE_SCRIPT_DIR}/mkwiimm_karts.db
|
||||
|
||||
echo -e "\ntype ???.szs (multiple possible, space separated)"
|
||||
read KART
|
||||
|
||||
for kart in ${KART[@]}; do
|
||||
if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_kart_${kart} ]]; then
|
||||
wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_kart_${kart} \
|
||||
${ITEMS_BASE}/${kart} &>/dev/null \
|
||||
|| (echo "download of ${kart} failed." \
|
||||
&& rm ${PATCHIMAGE_RIIVOLUTION_DIR}/${KART} \
|
||||
&& exit 57)
|
||||
fi
|
||||
done
|
||||
ask_slot
|
||||
|
||||
echo ${choosenkarts[@]}
|
||||
echo "choosenkarts=( ${choosenkarts[@]} )" > ${HOME}/.patchimage.choice
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
build_mkwiimm () {
|
||||
|
||||
rm -rf workdir
|
||||
echo "*** 5) extracting image"
|
||||
${WIT} extract ${IMAGE%/*}/${ID} workdir -q || exit 51
|
||||
|
||||
if [[ ! -d "${PATCHIMAGE_RIIVOLUTION_DIR}"/${ID/.*}_SZS ]]; then
|
||||
echo "*** 6) this is the first run, so backing up original files
|
||||
(in ${PATCHIMAGE_RIIVOLUTION_DIR}) for future customizations"
|
||||
mkdir "${PATCHIMAGE_RIIVOLUTION_DIR}"/${ID/.*}_SZS
|
||||
cp workdir/files/Race/Kart/* \
|
||||
"${PATCHIMAGE_RIIVOLUTION_DIR}"/${ID/.*}_SZS
|
||||
else
|
||||
echo "*** 6) restoring original files"
|
||||
cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/${ID/.*}_SZS/* \
|
||||
workdir/files/Race/Kart/
|
||||
fi
|
||||
|
||||
echo "*** 7) replacing kart(s)"
|
||||
for kart in ${choosenkarts[@]}; do
|
||||
source=${kart/*:}
|
||||
dest=${kart/:*}
|
||||
echo " old: ${dest}.szs new: ${source}"
|
||||
cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/mkwiimm_kart_${source} \
|
||||
workdir/files/Race/Kart/${dest}.szs
|
||||
cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/mkwiimm_kart_${source} \
|
||||
workdir/files/Race/Kart/${dest}_2.szs
|
||||
cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/mkwiimm_kart_${source} \
|
||||
workdir/files/Race/Kart/${dest}_4.szs
|
||||
done
|
||||
|
||||
echo "*** 8) rebuilding game"
|
||||
echo " (storing game in ${PATCHIMAGE_GAME_DIR}/${ID})"
|
||||
${WIT} cp -o -q -B workdir ${PATCHIMAGE_GAME_DIR}/${ID} || exit 51
|
||||
|
||||
rm -rf workdir
|
||||
|
||||
}
|
||||
|
||||
patch_wiimm () {
|
||||
|
||||
build_mkwiimm
|
||||
|
||||
}
|
134
script.d/newerapocalypse.sh
Normal file
134
script.d/newerapocalypse.sh
Normal file
@ -0,0 +1,134 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="http://newerteam.com/getNewerFile.php"
|
||||
RIIVOLUTION_ZIP="NewerApocalypse 1.0.zip"
|
||||
RIIVOLUTION_DIR="NewerApocalypse"
|
||||
GAMENAME="Newer Apocalypse"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../riivolution/NewerApocalypse.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Newer Apocalypse takes place about two Years after Newer.
|
||||
|
||||
Recently, strange Events occured in the Area of Newer Island. Rifts were spotted around Sky Mountain, Rubble Ruins and
|
||||
Goldwood Forest and Sakura Village was evacuated. Freezeflame Glacier began to melt and the Crystal Caverns were flooded
|
||||
with Lava due to the Volcano erupting without Pause. Princess Peach decides to travel to Yoshi's Island to find out what is wrong.
|
||||
|
||||
After no one has heard anything from the Princess for two Weeks, Mario and Friends rush to Yoshi's Island suspecting Bowser
|
||||
to be the Culprit. But upon reaching the once wonderful Paradise, they find a dark and gloomy World. The entire Island was clad
|
||||
in Fog and the Water seemed to be Blood. Mario didn't hesitate to head off into the Fog to find his beloved Princess not knowing
|
||||
what would await him.
|
||||
|
||||
Source: http://rvlution.net/thread/2507-newer-apocalypse/
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
GAMEID=SMN${REG_LETTER}ZA
|
||||
|
||||
}
|
||||
|
||||
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}"/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
|
||||
|
||||
}
|
128
script.d/newerfallingleaf.sh
Normal file
128
script.d/newerfallingleaf.sh
Normal file
@ -0,0 +1,128 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://dl.dropboxusercontent.com/u/4558852/Newer_FALLING_LEAF.zip"
|
||||
RIIVOLUTION_ZIP="Newer_FALLING_LEAF.zip"
|
||||
RIIVOLUTION_DIR="NewerFL/"
|
||||
GAMENAME="Newer: Falling Leaf"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../riivolution/NewerFALLING.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
- 8 new levels
|
||||
- New world map
|
||||
- Some code changes to make it all (hackily) work
|
||||
|
||||
Source: http://rvlution.net/thread/3397-newer-falling-leaf/
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
GAMEID=SMN${REG_LETTER}FL
|
||||
|
||||
}
|
||||
|
||||
place_files () {
|
||||
|
||||
|
||||
NEW_DIRS=( ${WORKDIR}/files/LevelSamples ${WORKDIR}/files/NewerRes ${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/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
|
||||
|
||||
}
|
@ -12,7 +12,6 @@ XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="riivolution/Xmas"
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -31,6 +30,12 @@ Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -43,43 +48,43 @@ detect_game_version () {
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( "${WORKDIR}"/files/EU/NedEU/Message )
|
||||
for dir in "${NEW_DIRS[@]}"; do
|
||||
mkdir -p "${dir}"
|
||||
NEW_DIRS=( ${WORKDIR}/files/EU/NedEU/Message )
|
||||
for dir in ${NEW_DIRS[@]}; do
|
||||
mkdir -p ${dir}
|
||||
done
|
||||
|
||||
case ${VERSION} in
|
||||
EURv* )
|
||||
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* "${WORKDIR}"/files/EU/"${dir}"/Message/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* ${WORKDIR}/files/EU/${dir}/Message/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningP/* "${WORKDIR}"/files/EU/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningP/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
||||
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* "${WORKDIR}"/files/US/"${dir}"/Message/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* ${WORKDIR}/files/US/${dir}/Message/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningE/* "${WORKDIR}"/files/US/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningE/* ${WORKDIR}/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv* )
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* "${WORKDIR}"/files/JP/Message/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningJ/* "${WORKDIR}"/files/JP/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* ${WORKDIR}/files/JP/Message/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningJ/* ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/Stream/* "${WORKDIR}"/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Layout/preGame/* "${WORKDIR}"/files/Layout/preGame/
|
||||
cp "${RIIVOLUTION_DIR}"/Layout/textures/* "${WORKDIR}"/files/Layout/textures/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/*.brsar "${WORKDIR}"/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/WorldMap/* "${WORKDIR}"/files/WorldMap/
|
||||
cp "${RIIVOLUTION_DIR}"/Object/* "${WORKDIR}"/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/Stream/* ${WORKDIR}/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Layout/preGame/* ${WORKDIR}/files/Layout/preGame/
|
||||
cp "${RIIVOLUTION_DIR}"/Layout/textures/* ${WORKDIR}/files/Layout/textures/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/*.brsar ${WORKDIR}/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/WorldMap/* ${WORKDIR}/files/WorldMap/
|
||||
cp "${RIIVOLUTION_DIR}"/Object/* ${WORKDIR}/files/Object/
|
||||
|
||||
}
|
||||
|
132
script.d/newersmb.sh
Normal file
132
script.d/newersmb.sh
Normal file
@ -0,0 +1,132 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="http://newerteam.com/getNewerFile.php"
|
||||
SOUNDTRACK_LINK="http://dirbaio.net/newer/NewerSoundtrack.zip"
|
||||
SOUNDTRACK_ZIP="NewerSoundtrack.zip"
|
||||
RIIVOLUTION_ZIP="NewerSMBW.zip"
|
||||
RIIVOLUTION_DIR="NewerSMBW"
|
||||
GAMENAME="Newer SMB"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../riivolution/NewerSMBW.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Newer is a full unofficial sequel to New Super Mario Bros. Wii, crafted
|
||||
over the span of 3 years by a team of devoted Nintendo fans. Playable
|
||||
legally on any homebrew-enabled Wii; no piracy or hardware mods needed.
|
||||
|
||||
Source: http://www.newerteam.com/
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
|
||||
GAMEID=SMN${REG_LETTER}03
|
||||
CUSTOM_BANNER=http://dl.dropboxusercontent.com/u/101209384/${GAMEID}.bnr
|
||||
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
}
|
@ -12,7 +12,6 @@ XML_SOURCE="${RIIVOLUTION_DIR}"/SumSun/
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/riivolution/SumSunP.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -30,6 +29,12 @@ Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -41,9 +46,9 @@ detect_game_version () {
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( "${WORKDIR}"/files/NewerRes "${WORKDIR}"/files/EU/NedEU )
|
||||
for dir in "${NEW_DIRS[@]}"; do
|
||||
mkdir -p "${dir}"
|
||||
NEW_DIRS=( ${WORKDIR}/files/NewerRes ${WORKDIR}/files/EU/NedEU )
|
||||
for dir in ${NEW_DIRS[@]}; do
|
||||
mkdir -p ${dir}
|
||||
done
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/SumSun/EU/EngEU/{m,M}essage
|
||||
@ -51,37 +56,37 @@ place_files () {
|
||||
case ${VERSION} in
|
||||
EUR* )
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/SumSun/EU/EngEU/{Message,staffroll}/ "${WORKDIR}"/files/EU/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/SumSun/EU/EngEU/{Message,staffroll}/ ${WORKDIR}/files/EU/${dir}/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/OpeningP/* "${WORKDIR}"/files/EU/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/OpeningP/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/SumSun/EU/EngEU/{Message,staffroll}/ "${WORKDIR}"/files/US/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/SumSun/EU/EngEU/{Message,staffroll}/ ${WORKDIR}/files/US/${dir}/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/OpeningE/* "${WORKDIR}"/files/US/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/OpeningE/* ${WORKDIR}/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp -r "${RIIVOLUTION_DIR}"/SumSun/EU/EngEU/{Message,staffroll}/ "${WORKDIR}"/files/JP/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/OpeningJ/* "${WORKDIR}"/files/JP/Layout/openingTitle/
|
||||
cp -r "${RIIVOLUTION_DIR}"/SumSun/EU/EngEU/{Message,staffroll}/ ${WORKDIR}/files/JP/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/OpeningJ/* ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Stage/Texture/* "${WORKDIR}"/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/NewerRes/* "${WORKDIR}"/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Stage/*.arc "${WORKDIR}"/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Env/* "${WORKDIR}"/files/Env/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/sound/stream/* "${WORKDIR}"/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/sound/*.brsar "${WORKDIR}"/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/WorldMap/* "${WORKDIR}"/files/WorldMap/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Object/* "${WORKDIR}"/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Layout/preGame.arc "${WORKDIR}"/files/Layout/preGame/pregame.arc
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Layout/sequenceBG.arc "${WORKDIR}"/files/Layout/sequenceBG/sequenceBG.arc
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Layout/sequenceBGTexture.arc "${WORKDIR}"/files/Layout/textures/sequenceBGTexture.arc
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Stage/Texture/* ${WORKDIR}/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/NewerRes/* ${WORKDIR}/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Stage/*.arc ${WORKDIR}/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Env/* ${WORKDIR}/files/Env/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/sound/stream/* ${WORKDIR}/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/sound/*.brsar ${WORKDIR}/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/WorldMap/* ${WORKDIR}/files/WorldMap/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Object/* ${WORKDIR}/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Layout/preGame.arc ${WORKDIR}/files/Layout/preGame/pregame.arc
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Layout/sequenceBG.arc ${WORKDIR}/files/Layout/sequenceBG/sequenceBG.arc
|
||||
cp "${RIIVOLUTION_DIR}"/SumSun/Layout/sequenceBGTexture.arc ${WORKDIR}/files/Layout/textures/sequenceBGTexture.arc
|
||||
|
||||
}
|
||||
|
@ -2,15 +2,14 @@
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://docs.google.com/uc?id=0B1vUum-n5kqOR2V3SEpZcE5waEU&export=download"
|
||||
RIIVOLUTION_ZIP="Riivolution Other WorldR v1.02.zip"
|
||||
DOWNLOAD_LINK="http://riivolution.nanolx.org/Riivolution%20Other%20WorldR%20v1.01.zip"
|
||||
RIIVOLUTION_ZIP="Riivolution Other WorldR v1.01.zip"
|
||||
RIIVOLUTION_DIR="Riivolution Other WorldR/Other World/"
|
||||
GAMENAME="New Super Mario Bros. Wii - Other World"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}/../riivolution/OtherWorld"
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -29,6 +28,12 @@ Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -40,40 +45,43 @@ detect_game_version () {
|
||||
place_files () {
|
||||
|
||||
|
||||
NEW_DIRS=( "${WORKDIR}"/files/NewerRes "${WORKDIR}"/files/EU/NedEU/Message )
|
||||
for dir in "${NEW_DIRS[@]}"; do
|
||||
mkdir -p "${dir}"
|
||||
NEW_DIRS=( ${WORKDIR}/files/NewerRes ${WORKDIR}/files/EU/NedEU/Message )
|
||||
for dir in ${NEW_DIRS[@]}; do
|
||||
mkdir -p ${dir}
|
||||
done
|
||||
|
||||
case ${VERSION} in
|
||||
EURv* )
|
||||
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* "${WORKDIR}"/files/EU/"${dir}"/Message/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* ${WORKDIR}/files/EU/${dir}/Message/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningP/* "${WORKDIR}"/files/EU/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningP/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
||||
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* "${WORKDIR}"/files/US/"${dir}"/Message/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* ${WORKDIR}/files/US/${dir}/Message/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningE/* "${WORKDIR}"/files/US/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningE/* ${WORKDIR}/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv* )
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* "${WORKDIR}"/files/JP/Message/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningJ/* "${WORKDIR}"/files/JP/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/MessageEN/* ${WORKDIR}/files/JP/Message/
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningJ/* ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/Texture/* "${WORKDIR}"/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/NewerRes/* "${WORKDIR}"/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/*.arc "${WORKDIR}"/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Env/* "${WORKDIR}"/files/Env/
|
||||
cp "${RIIVOLUTION_DIR}"/MovieDemo/* "${WORKDIR}"/files/MovieDemo/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Layout/* "${WORKDIR}"/files/Layout/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/Texture/* ${WORKDIR}/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/NewerRes/* ${WORKDIR}/files/NewerRes/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/*.arc ${WORKDIR}/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Env/* ${WORKDIR}/files/Env/
|
||||
cp "${RIIVOLUTION_DIR}"/MovieDemo/* ${WORKDIR}/files/MovieDemo/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Layout/* ${WORKDIR}/files/Layout/
|
||||
|
||||
}
|
||||
|
@ -1,8 +1,4 @@
|
||||
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
|
||||
SLF*01:NSMBW3 The Final Levels
|
||||
SMN*01:Original New Super Mario Bros. Wii
|
||||
SMN*03:Newer Super Mario Bros. Wii
|
||||
SMN*04:Canon Super Mario Bros. Wii
|
||||
@ -12,20 +8,16 @@ 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
|
||||
SMN*65:Ghostly Super Ghost Boos. Wii
|
||||
SMN*66:The Legend of Yoshi
|
||||
SMN*69:Revised Super Mario Bros. Wii
|
||||
SMN*DU:DarkUmbra Super Mario Bros: Anniversary Edition
|
||||
SMN*FL:Newer: Falling Leaf
|
||||
SMN*FL:Newer Falling Leaf
|
||||
SMN*MI:Midi's Super Mario Bros Wii - Just A Little Adventure
|
||||
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,6 @@ XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../riivolution/NSMBW3.XML
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -27,6 +26,12 @@ Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -40,33 +45,33 @@ detect_game_version () {
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( "${WORKDIR}"/files/EU/NedEU/{Message,Layout} )
|
||||
for dir in "${NEW_DIRS[@]}"; do
|
||||
mkdir -p "${dir}"
|
||||
NEW_DIRS=( ${WORKDIR}/files/EU/NedEU/{Message,Layout} )
|
||||
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}"/EU/EngEU/Message "${WORKDIR}"/files/EU/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message ${WORKDIR}/files/EU/${dir}/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/EU/Layout/openingtitle/* "${WORKDIR}"/files/EU/Layout/openingTitle/openingTitle.arc
|
||||
cp "${RIIVOLUTION_DIR}"/EU/Layout/openingtitle/* ${WORKDIR}/files/EU/Layout/openingTitle/openingTitle.arc
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message "${WORKDIR}"/files/US/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message ${WORKDIR}/files/US/${dir}/
|
||||
done
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message "${WORKDIR}"/files/JP/
|
||||
cp -r "${RIIVOLUTION_DIR}"/EU/EngEU/Message ${WORKDIR}/files/JP/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/Stage/ "${WORKDIR}"/files/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Stage/ ${WORKDIR}/files/
|
||||
|
||||
}
|
||||
|
@ -8,7 +8,6 @@ RIIVOLUTION_DIR="nsmb"
|
||||
GAMENAME="New Super Mario Bros. 4"
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -26,9 +25,16 @@ Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
|
||||
GAMEID=SMN${REG_LETTER}11
|
||||
|
||||
}
|
||||
@ -37,19 +43,24 @@ place_files () {
|
||||
|
||||
case ${VERSION} in
|
||||
EURv* )
|
||||
cp "${PATCHIMAGE_PATCH_DIR}"/openingTitle_nsmbw4.arc "${WORKDIR}"/files/EU/Layout/openingTitle/openingTitle.arc
|
||||
cp ${PATCHIMAGE_PATCH_DIR}/openingTitle_nsmbw4.arc ${WORKDIR}/files/EU/Layout/openingTitle/openingTitle.arc
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
cp "${PATCHIMAGE_PATCH_DIR}"/openingTitle_nsmbw4.arc "${WORKDIR}"/files/US/Layout/openingTitle/openingTitle.arc
|
||||
cp ${PATCHIMAGE_PATCH_DIR}/openingTitle_nsmbw4.arc ${WORKDIR}/files/US/Layout/openingTitle/openingTitle.arc
|
||||
;;
|
||||
|
||||
# JPNv* )
|
||||
# cp "${RIIVOLUTION_DIR}"/openingTitle.arc ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||
# ;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/*.brstm "${WORKDIR}"/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/0*.arc "${WORKDIR}"/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/*.brsar "${WORKDIR}"/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/bgA*.arc "${WORKDIR}"/files/Object/
|
||||
cp "${PATCHIMAGE_PATCH_DIR}"/05-04.arc "${WORKDIR}"/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/*.brstm ${WORKDIR}/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/0*.arc ${WORKDIR}/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/*.brsar ${WORKDIR}/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/bgA*.arc ${WORKDIR}/files/Object/
|
||||
# fix
|
||||
cp ${PATCHIMAGE_PATCH_DIR}/05-04.arc ${WORKDIR}/files/Stage/
|
||||
|
||||
|
||||
}
|
100
script.d/nsmbw_characters.sh
Normal file
100
script.d/nsmbw_characters.sh
Normal file
@ -0,0 +1,100 @@
|
||||
#!/bin/bash
|
||||
|
||||
GAME_TYPE="WII_GENERIC"
|
||||
GAME_NAME="New Super Mario Bros. Wii"
|
||||
ITEMS_BASE="http://riivolution.nanolx.org/nsmbw_characters"
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAME_NAME}
|
||||
|
||||
Custom New Super Mario Bros. Wii
|
||||
|
||||
Source: Various
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EUR, JAP, USA
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
ask_input_image_nsmb ${IMAGE%/*}
|
||||
echo -e "type SMN???.wbfs:\n"
|
||||
read ID
|
||||
|
||||
if [[ ! -f ${IMAGE%/*}/${ID} ]]; then
|
||||
echo "wrong id from user-input given."
|
||||
exit 75
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
pi_action () {
|
||||
|
||||
check_input_image_special
|
||||
|
||||
if [[ -f ${HOME}/.patchimage.choice ]]; then
|
||||
echo "Your choices from last time can be re-used."
|
||||
echo "y (yes) or n (no)"
|
||||
read choice
|
||||
|
||||
if [[ ${choice} == y ]]; then
|
||||
source ${HOME}/.patchimage.choice
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ ${choosenplayers[@]} == "" ]]; then
|
||||
echo -e "Choose a Player to add to the game\n"
|
||||
|
||||
gawk -F \: '{print $1 "\t\t" $2 "\t\t" $3}' < ${PATCHIMAGE_SCRIPT_DIR}/nsmbw_characters.db
|
||||
|
||||
echo -e "\ntype ???.arc (only one per slot (second column) possible, space separated)"
|
||||
read PLAYERS
|
||||
|
||||
for player in ${PLAYERS[@]}; do
|
||||
if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/nsmbw_player_${player} ]]; then
|
||||
wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/nsmbw_player_${player} \
|
||||
${ITEMS_BASE}/${player} &>/dev/null \
|
||||
|| (echo "download of ${player} failed." \
|
||||
&& rm ${PATCHIMAGE_RIIVOLUTION_DIR}/${player} \
|
||||
&& exit 57)
|
||||
fi
|
||||
slot=$(gawk -F \: "/^${player}/"'{print $2}' ${PATCHIMAGE_SCRIPT_DIR}/nsmbw_characters.db)
|
||||
choosenplayers=( ${choosenplayers[@]} ${player}:${slot} )
|
||||
done
|
||||
|
||||
echo ${choosenplayers[@]}
|
||||
echo "choosenplayers=( ${choosenplayers[@]} )" > ${HOME}/.patchimage.choice
|
||||
fi
|
||||
|
||||
rm -rf workdir
|
||||
|
||||
echo -e "\n*** 3) extracting image"
|
||||
${WIT} extract ${IMAGE%/*}/${ID} --psel=data -d workdir -q || exit 51
|
||||
|
||||
for backup in Mario.arc Luigi.arc Kinopio.arc koopa.arc; do
|
||||
if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}/${backup}" ]]; then
|
||||
echo "*** 4) first run, backing up original: ${backup}"
|
||||
cp workdir/files/Object/${backup} "${PATCHIMAGE_RIIVOLUTION_DIR}"
|
||||
else
|
||||
echo "*** 4) restoring original: ${backup}"
|
||||
cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/${backup} workdir/files/Object/
|
||||
fi
|
||||
done
|
||||
|
||||
echo "*** 5) replacing characters"
|
||||
for player in ${choosenplayers[@]}; do
|
||||
cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/nsmbw_player_${player/:*} \
|
||||
workdir/files/Object/${player/*:}
|
||||
done
|
||||
|
||||
echo "*** 6) rebuilding game"
|
||||
echo " (storing game in ${PATCHIMAGE_GAME_DIR}/${ID})"
|
||||
${WIT} cp -o -q -B workdir ${PATCHIMAGE_GAME_DIR}/${ID} || exit 51
|
||||
|
||||
rm -rf workdir
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
ROM_MASK="*[Ll]ink*[Pp]ast*smc"
|
||||
DOWNLOAD_LINK="https://sites.google.com/site/zeldaparallelworlds/lozpw110.rar"
|
||||
RIIVOLUTION_ZIP="lozpw110.rar"
|
||||
DOWNLOAD_ZIP="lozpw110.rar"
|
||||
PATCH="ZPW_1.1.ips"
|
||||
GAMENAME="The Legend of Zelda - Parallel Worlds"
|
||||
GAME_TYPE=IPS
|
||||
@ -22,3 +22,15 @@ Supported Versions: US
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_rom () {
|
||||
|
||||
if [[ ! ${ROM} ]]; then
|
||||
ROM=$(find . -name ${ROM_MASK} | sed -e 's,./,,')
|
||||
if [[ ${ROM} == "" ]]; then
|
||||
echo -e "error: could not find suitable ROM, specify using --rom"
|
||||
exit 15
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
97
script.d/remixedsupermariobroswii.sh
Normal file
97
script.d/remixedsupermariobroswii.sh
Normal file
@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://www.dropbox.com/s/nby77snj423imzx/Remixed%20v1.5.zip"
|
||||
RIIVOLUTION_ZIP="Remixed v1.5.zip"
|
||||
RIIVOLUTION_DIR="Remixed v1.5/remixed"
|
||||
GAMENAME="Remixed Super Mario Bros. Wii"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}/../riivolution/NSMBtemplate.xml"
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Source: http://rvlution.net/thread/3645-remixed-super-mario-bros-wii/
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
GAMEID=SMN${REG_LETTER}60
|
||||
|
||||
}
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( ${WORKDIR}/files/EU/NedEU/{Message,Font,staffroll} )
|
||||
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 "${RIIVOLUTION_DIR}"/US/EngUS/Message/* ${WORKDIR}/files/EU/${dir}/Message/
|
||||
cp "${RIIVOLUTION_DIR}"/US/EngUS/Font/* ${WORKDIR}/files/EU/${dir}/Font/
|
||||
cp "${RIIVOLUTION_DIR}"/US/EngUS/staffroll/* ${WORKDIR}/files/EU/${dir}/staffroll/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/US/Layout/openingTitle/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/US/EngUS/Message/* ${WORKDIR}/files/US/${dir}/Message/
|
||||
cp "${RIIVOLUTION_DIR}"/US/EngUS/Font/* ${WORKDIR}/files/US/${dir}/Font/
|
||||
cp "${RIIVOLUTION_DIR}"/US/EngUS/staffroll/* ${WORKDIR}/files/US/${dir}/staffroll/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/US/Layout/openingTitle/* ${WORKDIR}/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp "${RIIVOLUTION_DIR}"/US/Layout/openingTitle/* ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||
cp "${RIIVOLUTION_DIR}"/US/EngUS/Message/* ${WORKDIR}/files/JP/Message/
|
||||
cp "${RIIVOLUTION_DIR}"/US/EngUS/Font/* ${WORKDIR}/files/JP/Font/
|
||||
cp "${RIIVOLUTION_DIR}"/US/EngUS/staffroll/* ${WORKDIR}/files/JP/staffroll/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/Layout/ ${WORKDIR}/files/
|
||||
cp -r "${RIIVOLUTION_DIR}"/US/EngUS/Layout/ ${WORKDIR}/files/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Object/ ${WORKDIR}/files/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/Stream/* ${WORKDIR}/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/*.brsar ${WORKDIR}/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/Texture/* ${WORKDIR}/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/*.arc ${WORKDIR}/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/WorldMap/* ${WORKDIR}/files/WorldMap/
|
||||
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
}
|
@ -8,7 +8,6 @@ RIIVOLUTION_DIR="Retro Remix"
|
||||
GAMENAME="New Super Mario Bros. Wii Retro Remix"
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -28,6 +27,12 @@ Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -41,28 +46,29 @@ place_files () {
|
||||
case ${VERSION} in
|
||||
EURv* )
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/US/EngUS/Message/ "${WORKDIR}"/files/EU/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/US/EngUS/Message/ ${WORKDIR}/files/EU/${dir}/
|
||||
done
|
||||
cp "${PATCHIMAGE_PATCH_DIR}"/openingTitle_retromix.arc "${WORKDIR}"/files/EU/Layout/openingTitle/openingTitle.arc
|
||||
cp ${PATCHIMAGE_PATCH_DIR}/openingTitle_retromix.arc ${WORKDIR}/files/EU/Layout/openingTitle/openingTitle.arc
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/US/EngUS/Message/ "${WORKDIR}"/files/US/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/US/EngUS/Message/ ${WORKDIR}/files/US/${dir}/
|
||||
done
|
||||
cp "${PATCHIMAGE_PATCH_DIR}"/openingTitle_retromix.arc "${WORKDIR}"/files/US/Layout/openingTitle/openingTitle.arc
|
||||
cp ${PATCHIMAGE_PATCH_DIR}/openingTitle_retromix.arc ${WORKDIR}/files/US/Layout/openingTitle/openingTitle.arc
|
||||
;;
|
||||
|
||||
JPNv* )
|
||||
cp "${RIIVOLUTION_DIR}"/US/EngUS/Message/* "${WORKDIR}"/files/JP/Message/
|
||||
cp "${RIIVOLUTION_DIR}"/US/EngUS/Message/* ${WORKDIR}/files/JP/Message/
|
||||
#cp "${RIIVOLUTION_DIR}"/US/Layout/openingTitle/openingTitle.arc ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Layout/MultiCorseSelect/MultiCorseSelect.arc "${WORKDIR}"/files/Layout/MultiCourseSelect/MultiCourseSelect.arc
|
||||
cp -r "${RIIVOLUTION_DIR}"/{Layout,MovieDemo,Object,Sound,Stage,WorldMap}/ "${WORKDIR}"/files/
|
||||
rm -rf "${WORKDIR}"/files/Layout/MultiCorseSelect/
|
||||
cp "${RIIVOLUTION_DIR}"/Layout/MultiCorseSelect/MultiCorseSelect.arc ${WORKDIR}/files/Layout/MultiCourseSelect/MultiCourseSelect.arc
|
||||
cp -r "${RIIVOLUTION_DIR}"/{Layout,MovieDemo,Object,Sound,Stage,WorldMap}/ ${WORKDIR}/files/
|
||||
rm -rf ${WORKDIR}/files/Layout/MultiCorseSelect/
|
||||
|
||||
}
|
||||
|
132
script.d/rvlution.sh
Normal file
132
script.d/rvlution.sh
Normal file
@ -0,0 +1,132 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://dl.dropbox.com/s/klzhvu5aviwqp77/RVLution%20Wii.zip"
|
||||
RIIVOLUTION_ZIP="RVLution Wii.zip"
|
||||
RIIVOLUTION_DIR="rvlwii"
|
||||
GAMENAME="RVLution Wii"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../riivolution/rvlwii.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
-Take Control over Skawo and join him on his Quest defeating
|
||||
Smithytroll!
|
||||
-Explore 16 different Stages spanned over 3 unique Worlds!
|
||||
-Enjoy plenty of Retextures for Sprites, like Ameboids (SMRPG),
|
||||
Machine Koopas, and more!
|
||||
|
||||
Source: http://rvlution.net/thread/2167-rvlution-wii/
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
GAMEID=SMN${REG_LETTER}RV
|
||||
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../riivolution/Skyland.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -31,6 +30,12 @@ Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -40,17 +45,17 @@ detect_game_version () {
|
||||
|
||||
place_files () {
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/*.arc "${WORKDIR}"/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/Texture/* "${WORKDIR}"/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/*.brsar "${WORKDIR}"/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/Stream/* "${WORKDIR}"/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/*.arc ${WORKDIR}/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/Texture/* ${WORKDIR}/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/*.brsar ${WORKDIR}/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/Stream/* ${WORKDIR}/files/Sound/stream/
|
||||
|
||||
}
|
||||
|
||||
|
||||
dolpatch () {
|
||||
|
||||
${WIT} dolpatch ${DOL} \
|
||||
${WIT} dolpatch ${DOL} \
|
||||
"802F148C=53756D6D53756E#7769696D6A3264" \
|
||||
"802F118C=53756D6D53756E#7769696D6A3264" \
|
||||
"802F0F8C=53756D6D53756E#7769696D6A3264" \
|
@ -10,7 +10,6 @@ XML_SOURCE="${RIIVOLUTION_DIR}"/Vacation
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/riivolution/Vacation
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
WBFS_MASK="SMN[PEJ]01"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -27,6 +26,12 @@ Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
@ -38,35 +43,35 @@ detect_game_version () {
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( "${WORKDIR}"/files/EU/NedEU/Message )
|
||||
for dir in "${NEW_DIRS[@]}"; do
|
||||
mkdir -p "${dir}"
|
||||
NEW_DIRS=( ${WORKDIR}/files/EU/NedEU/Message )
|
||||
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}"/Vacation/Message "${WORKDIR}"/files/EU/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/Vacation/Message ${WORKDIR}/files/EU/${dir}/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/Vacation/OpeningP/* "${WORKDIR}"/files/EU/Layout/openingTitle/openingTitle.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Vacation/OpeningP/* ${WORKDIR}/files/EU/Layout/openingTitle/openingTitle.arc
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in "${LANGDIRS[@]}"; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/Vacation/Message "${WORKDIR}"/files/US/"${dir}"/
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp -r "${RIIVOLUTION_DIR}"/Vacation/Message ${WORKDIR}/files/US/${dir}/
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/Vacation/OpeningE/* "${WORKDIR}"/files/US/Layout/openingTitle/openingTitle.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Vacation/OpeningE/* ${WORKDIR}/files/US/Layout/openingTitle/openingTitle.arc
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp -r "${RIIVOLUTION_DIR}"/Vacation/Message "${WORKDIR}"/files/JP/
|
||||
cp "${RIIVOLUTION_DIR}"/Vacation/OpeningJ/* "${WORKDIR}"/files/JP/Layout/openingTitle/openingTitle.arc
|
||||
cp -r "${RIIVOLUTION_DIR}"/Vacation/Message ${WORKDIR}/files/JP/
|
||||
cp "${RIIVOLUTION_DIR}"/Vacation/OpeningJ/* ${WORKDIR}/files/JP/Layout/openingTitle/openingTitle.arc
|
||||
;;
|
||||
esac
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/Vacation/{Env,Layout,Object,Sound,Stage,WorldMap} "${WORKDIR}"/files/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Vacation/{Env,Layout,Object,Sound,Stage,WorldMap} ${WORKDIR}/files/
|
||||
|
||||
}
|
||||
|
78
script.d/thelegendofyoshi.sh
Normal file
78
script.d/thelegendofyoshi.sh
Normal file
@ -0,0 +1,78 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://www.dropbox.com/s/nwqchofeuo9rng3/The%20Legend%20Of%20Yoshi.zip"
|
||||
RIIVOLUTION_ZIP="The Legend of Zelda.zip"
|
||||
RIIVOLUTION_DIR="TLOY (Riivolution) [P] [J] [E] (05-14-2016) [no custom logo]/The Legend Of Yoshi/tloy"
|
||||
GAMENAME="The Legend of Yoshi"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}/../riivolution/TLOY ("
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Source: http://rvlution.net/thread/4349-the-legend-of-yoshi-05-14-16-important-message/
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
GAMEID=SMN${REG_LETTER}66
|
||||
XML_FILE="${XML_FILE}${REG_LETTER}).xml"
|
||||
|
||||
}
|
||||
|
||||
place_files () {
|
||||
|
||||
case ${VERSION} in
|
||||
EUR* )
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU )
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningP/* ${WORKDIR}/files/EU/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningE/* ${WORKDIR}/files/US/Layout/openingTitle/
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp "${RIIVOLUTION_DIR}"/OpeningJ/* ${WORKDIR}/files/JP/Layout/openingTitle/
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/Texture/* ${WORKDIR}/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/Stage/*.arc ${WORKDIR}/files/Stage/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Layout/ ${WORKDIR}/files/
|
||||
cp -r "${RIIVOLUTION_DIR}"/Object/ ${WORKDIR}/files/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/Stream/* ${WORKDIR}/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Sound/*.brsar ${WORKDIR}/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/WorldMap/* ${WORKDIR}/files/WorldMap/
|
||||
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
97
script.d/tokyomiragesessionsfe.sh
Normal file
97
script.d/tokyomiragesessionsfe.sh
Normal file
@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
|
||||
GAMENAME="Tokyo Mirage Sessions #FE Uncensored"
|
||||
GAME_TYPE=DELTA
|
||||
|
||||
PATCH_FILES=( 000_map 010_character 030_etc 031_message 050_movie 999_lua )
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Source: https://gbatemp.net/threads/tokyo-mirage-sessions-fe-restoration.429651/
|
||||
Base Image: Tokyo Mirage Sessions #FE
|
||||
Supported Versions: EUR, US
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
menu () {
|
||||
|
||||
echo -e "\nTokyo Mirage Sessions #FE restoration patcher"
|
||||
|
||||
status=3
|
||||
|
||||
if [[ ! ${XDELTA_PATH} ]]; then
|
||||
echo -e "\nEnter path to the directory containing the delta patches:\n"
|
||||
read XDELTA_PATH || exit 75
|
||||
else status=4
|
||||
fi
|
||||
|
||||
if [[ ! ${CPK_PATH} ]]; then
|
||||
echo -e "\nEnter path to the directory containing the game files (cpk):\n"
|
||||
read CPK_PATH || exit 75
|
||||
else status=4
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
echo ">>> status: ${status}"
|
||||
|
||||
}
|
||||
|
||||
patch () {
|
||||
|
||||
if [[ -d ${PWD}/TMSxFE-Uncensored ]]; then
|
||||
echo -e "\nremoving old files"
|
||||
rm -rf ${PWD}/TMSxFE-Uncensored
|
||||
fi
|
||||
|
||||
echo -e "\n> copying cpk files"
|
||||
mkdir ${PWD}/TMSxFE-Uncensored
|
||||
for file in ${PATCH_FILES[@]}; do
|
||||
cp ${CPK_PATH}/pack_${file}.cpk \
|
||||
${PWD}/TMSxFE-Uncensored
|
||||
done
|
||||
|
||||
echo -e "\n> Patching Files"
|
||||
for patch in ${PATCH_FILES[@]}; do
|
||||
echo ">> pack_${patch}.cpk"
|
||||
${XD3} -d -f -s ${PWD}/TMSxFE-Uncensored/pack_${patch}.cpk \
|
||||
${XDELTA_PATH}/patch_${patch}.xdelta \
|
||||
${PWD}/TMSxFE-Uncensored/pack_${patch}.cpk_new || exit 51
|
||||
|
||||
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${PWD}/TMSxFE-Uncensored
|
||||
|
||||
Copy your complete dump (content, code, meta folders) to your SD-Card in
|
||||
|
||||
<sd-card-path>/wiiu/games/Tokyo Mirage Sessions FE [ASEP01]
|
||||
|
||||
then copy the modified cpk files into
|
||||
|
||||
<sd-card-path>/wiiu/games/Tokyo Mirage Sessions FE [ASEP01]/content/Pack/
|
||||
|
||||
keep a copy of the unmodified cpk files, in case the patches are being updated!
|
||||
"
|
||||
|
||||
}
|
71
script.d/wiimmfi.sh
Normal file
71
script.d/wiimmfi.sh
Normal file
@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
|
||||
DOWNLOAD_LINK="http://download.wiimm.de/wiimmfi/patcher/mkw-wiimmfi-patcher-v3.7z"
|
||||
GAME_TYPE="MKWIIMM"
|
||||
GAME_NAME="Mario Kart Wiimmfi"
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Patches Mario Kart Wii to use Wiimm's custom server
|
||||
|
||||
Source: http://wiiki.wii-homebrew.com/Wiimmfi-Patcher
|
||||
Base Image: Mario Kart Wii (RMC?01)
|
||||
Supported Versions: EUR, JAP, USA
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_mkwiimm
|
||||
ask_input_image_mkwiimm ${IMAGE%/*}
|
||||
echo -e "type ALL or RMC???.wbfs:\n"
|
||||
read ID
|
||||
|
||||
}
|
||||
|
||||
download_wiimm () {
|
||||
|
||||
mkdir -p "${HOME}/.patchimage/tools/"
|
||||
cd ${HOME}/.patchimage/tools
|
||||
rm -rf wiimmfi-patcher/ *.7z*
|
||||
wget "${DOWNLOAD_LINK}" || ( echo "something went wrong downloading ${DOWNLOAD_LINK}" && exit 57 )
|
||||
${UNP} mkw-wiimmfi-patcher.7z >/dev/null ( echo "something went wrong unpacking files" && exit 63 )
|
||||
mv mkw-wiimmfi-patcher*/ wiimmfi-patcher
|
||||
chmod +x wiimmfi-patcher/*.sh
|
||||
rm *.7z
|
||||
}
|
||||
|
||||
patch_wiimm () {
|
||||
|
||||
cd ${HOME}/.patchimage/tools/wiimmfi-patcher/
|
||||
|
||||
if [[ ${ID} == ALL ]]; then
|
||||
for image in ${IMAGE%/*}/RMC???.{iso,wbfs}; do
|
||||
if [[ -e ${image} ]]; then
|
||||
ln -s "${image}" .
|
||||
fi
|
||||
done
|
||||
|
||||
./patch-wiimmfi.sh >/dev/null || \
|
||||
( echo "wiimmfi-ing the images failed." && exit 69 )
|
||||
mv -v ./wiimmfi-images/* "${PATCHIMAGE_GAME_DIR}"/
|
||||
|
||||
else
|
||||
if [[ ! -f ${IMAGE%/*}/${ID} ]]; then
|
||||
echo "unvalid game passed from user-input. exit"
|
||||
exit 75
|
||||
fi
|
||||
|
||||
ln -s ${IMAGE%/*}/${ID} .
|
||||
./patch-wiimmfi.sh >/dev/null || \
|
||||
( echo "wiimmfi-ing the image failed." && exit 69 )
|
||||
mv -v ./wiimmfi-images/${ID} "${PATCHIMAGE_GAME_DIR}"/
|
||||
fi
|
||||
|
||||
rm -rf ${HOME}/.patchimage/tools/wiimfi-patcher/
|
||||
}
|
@ -1,8 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
DOWNLOAD_LINK="http://download.wiimm.de/wiimmfi/patcher/wiimmfi-patcher-v3.7z"
|
||||
GAME_TYPE="GENERIC"
|
||||
GAMENAME="Mario Kart Wiimmfi"
|
||||
GAME_TYPE="MKWIIMM"
|
||||
GAME_NAME="Mario Kart Wiimmfi"
|
||||
|
||||
show_notes () {
|
||||
|
||||
@ -21,32 +21,41 @@ Supported Versions: EUR, JAP, USA
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
ask_input_image_wiimmfi
|
||||
if [[ ${IMAGE} ]]; then
|
||||
ask_input_image_wiimmfi ${PWD}
|
||||
GAMEDIR=${PWD}
|
||||
else
|
||||
ask_input_image_wiimmfi ${PATCHIMAGE_WBFS_DIR}
|
||||
GAMEDIR=${PATCHIMAGE_WBFS_DIR}
|
||||
fi
|
||||
|
||||
echo -e "type ??????.wbfs (or ??????.iso):\n"
|
||||
read -er ID
|
||||
read ID
|
||||
|
||||
if [[ -f ${PWD}/${ID} ]]; then
|
||||
GAMEDIR="${PWD}"
|
||||
elif [[ -f ${PATCHIMAGE_WBFS_DIR}/${ID} ]]; then
|
||||
GAMEDIR="${PATCHIMAGE_WBFS_DIR}"
|
||||
else echo "invalid user input."
|
||||
}
|
||||
|
||||
download_wiimm () {
|
||||
|
||||
return 0
|
||||
|
||||
}
|
||||
|
||||
patch_wiimm () {
|
||||
|
||||
if [[ ! -f ${GAMEDIR}/${ID} ]]; then
|
||||
echo "unvalid game passed from user-input. exit"
|
||||
exit 75
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
pi_action () {
|
||||
|
||||
cp -v "${GAMEDIR}"/"${ID}" . 2>/dev/null
|
||||
"${WIT}" cp -o "${ID}" --DEST "${PATCHIMAGE_GAME_DIR}"/"${ID}" \
|
||||
cp -v ${GAMEDIR}/${ID} . 2>/dev/null
|
||||
${WIT} cp -o ${ID} --DEST "${PATCHIMAGE_GAME_DIR}"/${ID} \
|
||||
--update --psel=data --wiimmfi >/dev/null || \
|
||||
( echo "wiimmfi-ing the images failed." && exit 69 )
|
||||
rm -f "${ID}"
|
||||
rm -f ${ID}
|
||||
|
||||
if [[ ${PATCHIMAGE_COVER_DOWNLOAD} == TRUE ]]; then
|
||||
echo -e "\n*** Z) download_covers"
|
||||
download_covers "${ID/.*}"
|
||||
download_covers ${ID/.*}
|
||||
fi
|
||||
|
||||
}
|
111
script.d/wintermoon.sh
Normal file
111
script.d/wintermoon.sh
Normal file
@ -0,0 +1,111 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKDIR=nsmb.d
|
||||
DOL=${WORKDIR}/sys/main.dol
|
||||
DOWNLOAD_LINK="https://docs.google.com/uc?id=0B0P-eSDZCIexTXdHZm5Xbk9HbEU&export=download"
|
||||
RIIVOLUTION_ZIP="WinterMoon.rar"
|
||||
RIIVOLUTION_DIR="WinterMoon"
|
||||
GAMENAME="SMMA+: Winter Moon"
|
||||
XML_SOURCE="${RIIVOLUTION_DIR}"
|
||||
XML_FILE="${RIIVOLUTION_DIR}"/../riivolution/WinterMoon.xml
|
||||
GAME_TYPE=RIIVOLUTION
|
||||
BANNER_LOCATION=${WORKDIR}/files/opening.bnr
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
9 new levels:
|
||||
4 from the full game (modified to fit the special's
|
||||
theme) and 5 completely new and exclusive to the special.
|
||||
|
||||
Custom music:
|
||||
Including both music from past Mario games and new music!
|
||||
|
||||
Custom backgrounds:
|
||||
New backgrounds exclusive for the special!
|
||||
|
||||
Custom tilesets:
|
||||
Including both all-new and retextured tilesets!
|
||||
|
||||
Source: http://www.rvlution.net/forums/viewtopic.php?f=53&t=1707
|
||||
Base Image: New Super Mario Bros. Wii (SMN?01)
|
||||
Supported Versions: EURv1, EURv2, USAv1, USAv2, JPNv1
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_image_special () {
|
||||
|
||||
check_input_image_nsmb
|
||||
|
||||
}
|
||||
|
||||
detect_game_version () {
|
||||
|
||||
nsmbw_version
|
||||
|
||||
GAMEID=SMM${REG_LETTER}02
|
||||
|
||||
}
|
||||
|
||||
place_files () {
|
||||
|
||||
NEW_DIRS=( ${WORKDIR}/files/EU/NedEU/Message ${WORKDIR}/files/EU/PolEU/Message ${WORKDIR}/files/Sample/)
|
||||
for dir in ${NEW_DIRS[@]}; do
|
||||
mkdir -p ${dir}
|
||||
done
|
||||
|
||||
case ${VERSION} in
|
||||
EUR* )
|
||||
LANGDIRS=( EngEU FraEU GerEU ItaEU SpaEU NedEU PolEU )
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/Others/Text.arc ${WORKDIR}/files/EU/${dir}/Message/Message.arc
|
||||
done
|
||||
#cp "${RIIVOLUTION_DIR}"/Others/Title/Logo.arc ${WORKDIR}/files/EU/Layout/openingTitle/openingTitle.arc
|
||||
;;
|
||||
|
||||
USAv* )
|
||||
LANGDIRS=( FraUS EngUS SpaUS )
|
||||
for dir in ${LANGDIRS[@]}; do
|
||||
cp "${RIIVOLUTION_DIR}"/Others/Text.arc ${WORKDIR}/files/US/${dir}/Message/Message.arc
|
||||
done
|
||||
cp "${RIIVOLUTION_DIR}"/Others/Title/Logo.arc ${WORKDIR}/files/US/Layout/openingTitle/openingTitle.arc
|
||||
;;
|
||||
|
||||
JPNv1 )
|
||||
cp "${RIIVOLUTION_DIR}"/Others/Text.arc ${WORKDIR}/files/JP/
|
||||
#cp "${RIIVOLUTION_DIR}"/Others/Title/Logo.arc ${WORKDIR}/files/JP/Layout/openingTitle/openingTitle.arc
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "${RIIVOLUTION_DIR}"/Levels/*.arc ${WORKDIR}/files/Stage/
|
||||
cp "${RIIVOLUTION_DIR}"/Tilesets/* ${WORKDIR}/files/Stage/Texture/
|
||||
cp "${RIIVOLUTION_DIR}"/Backgrounds/* ${WORKDIR}/files/Object/
|
||||
cp "${RIIVOLUTION_DIR}"/Music/BRSTM/* ${WORKDIR}/files/Sound/stream/
|
||||
cp "${RIIVOLUTION_DIR}"/Music/BRSAR/* ${WORKDIR}/files/Sound/
|
||||
cp "${RIIVOLUTION_DIR}"/Map/* ${WORKDIR}/files/WorldMap/
|
||||
cp "${RIIVOLUTION_DIR}"/Others/Env/NwrXmas_env.arc ${WORKDIR}/files/Env/Env_world.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/Title/Level.arc ${WORKDIR}/files/Stage/01-40.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/UI/MMTex.arc ${WORKDIR}/files/Layout/textures/sequenceBGTexture.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/UI/MM.arc ${WORKDIR}/files/Layout/sequenceBG/sequenceBG.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/UI/MMMain.arc ${WORKDIR}/files/Layout/dateFile/dateFile.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/UI/Banners.arc ${WORKDIR}/files/Layout/preGame/preGame.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Others/UI/Players.arc ${WORKDIR}/files/Layout/fileSelectPlayer/fileSelectPlayer.arc
|
||||
cp "${RIIVOLUTION_DIR}"/Sample/tobira.bti ${WORKDIR}/files/Sample/tobira.bti
|
||||
|
||||
}
|
||||
|
||||
|
||||
dolpatch () {
|
||||
|
||||
${WIT} dolpatch ${DOL} \
|
||||
"802F148C=53756D6D53756E#7769696D6A3264" \
|
||||
"802F118C=53756D6D53756E#7769696D6A3264" \
|
||||
"802F0F8C=53756D6D53756E#7769696D6A3264" \
|
||||
xml="${PATCHIMAGE_PATCH_DIR}/NSMBW_AP.xml" -q
|
||||
|
||||
}
|
||||
|
@ -1,76 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
GAMENAME="Bravely Second Uncensored"
|
||||
GAME_TYPE=HANS
|
||||
HANS_MULTI_SOURCE=TRUE
|
||||
|
||||
ROM_MASK_EUR="*000400000017[bB][bB]00*cxi"
|
||||
ROM_MASK_USA="*000400000017[bB][aA]00*cxi"
|
||||
|
||||
UNP_EXTRA_ARGS="-pAsia81"
|
||||
|
||||
DATA="${PATCHIMAGE_DATA_DIR}/BravelySecondUncensored/"
|
||||
|
||||
show_notes () {
|
||||
|
||||
echo -e \
|
||||
"************************************************
|
||||
${GAMENAME}
|
||||
|
||||
Source: https://gbatemp.net/threads/released-bravely-default-second-uncensored.391715/
|
||||
Base ROM: Bravely Second
|
||||
Supported Versions: US, EU
|
||||
************************************************"
|
||||
|
||||
}
|
||||
|
||||
check_input_rom_special () {
|
||||
|
||||
GAME_VERSION=EUR
|
||||
ROM_MASK=${ROM_MASK_EUR}
|
||||
echo "<< trying EUR game version"
|
||||
check_input_rom
|
||||
|
||||
if [[ ! ${ROM} ]]; then
|
||||
GAME_VERSION=USA
|
||||
ROM_MASK=${ROM_MASK_USA}
|
||||
echo "<< trying USA game version"
|
||||
check_input_rom
|
||||
fi
|
||||
|
||||
if [[ ! ${ROM} ]]; then
|
||||
echo -e "\nneither EUR nor USA version of Bravely Second found."
|
||||
exit 15
|
||||
fi
|
||||
|
||||
case ${GAME_VERSION} in
|
||||
EUR )
|
||||
echo ">> found EUR game version"
|
||||
ROMFS="0017BB00.romfs"
|
||||
DOWNLOAD_LINK="https://mega.nz/#!N0QEHLRB!g_Wy5dngt4xgVXtk1BhQaqSSRj0phjP6xMp776OSEo8"
|
||||
RIIVOLUTION_ZIP="Bravely_Second_Uncensored_EUR_MINI_Asia81.rar"
|
||||
RIIVOLUTION_DIR="Bravely_Second_Uncensored_EUR_MINI_Asia81/ExtractedRomFS"
|
||||
;;
|
||||
|
||||
USA )
|
||||
echo ">> found USA game version"
|
||||
ROMFS="0017BA00.romfs"
|
||||
DOWNLOAD_LINK="https://mega.nz/#!9sx1QKRQ!A6qzCkvY9HmPGu4VIy1TiikTRgbE-vUho99LOYWxA84"
|
||||
RIIVOLUTION_ZIP="Bravely_Second_Uncensored_USA_MINI_Asia81.rar"
|
||||
RIIVOLUTION_DIR="Bravely_Second_Uncensored_USA_MINI_Asia81/ExtractedRomFS"
|
||||
;;
|
||||
esac
|
||||
|
||||
}
|
||||
|
||||
check_hans_files () {
|
||||
|
||||
check_riivolution_patch
|
||||
|
||||
}
|
||||
|
||||
patch_romfs () {
|
||||
|
||||
cp -r "${RIIVOLUTION_DIR}"/* romfs/
|
||||
|
||||
}
|
@ -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/"
|
||||
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user