Compare commits

..

No commits in common. "master" and "6.1.0" have entirely different histories.

224 changed files with 10994 additions and 13691 deletions

358
ChangeLog
View File

@ -1,361 +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)
- supply titledumper (32 and 64 bit versions), for use with ddd
- add support for Tokyo Mirage Sessions #FE US/EUR decensoring
- add --xdelta and --cpk parameters
- use ${WIT} instead of wit when checking image region for
MKWiimm and Kirbys Adventure Wii
- minor internal changes
v6.1.0:
- update szs to version 1.50a
- update title database

2
LICENSE.EXTRA Normal file
View File

@ -0,0 +1,2 @@
wit.*: GNU GPL v2+
patches/*: as-is

View File

@ -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
View File

@ -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

View File

@ -1,62 +1,39 @@
*** 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)

View File

@ -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 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

View File

@ -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
@ -77,82 +57,8 @@ RMC?25 Wiimms MKW-Fun 2014-04
RMC?26 Wiimms MKW-Fun 2014-11
RMC?27 Wiimms MKW-Fun 2015-03
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
### Toyko Mirage Sessions #FE ###
>> searched paths:
none (specified by user)
>> expected filenames
none (specified by user)
ASE?01 De-Censoring the game
SUK?01 Kirby's Adventure Wii (only exchanging first
player's character is supported)

View File

@ -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

View File

@ -1,23 +1,19 @@
While the script executes you will see some status codes, below you will find the meaning:
phase code meaning
*** 1) 0 neither BASE.iso nor BASE.wbfs found
1 BASE.iso found in ${PWD}
2 BASE.wbfs found in ${PWD}
*** 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]
5 patchimage is downloading riivolution archive

View File

@ -1,6 +0,0 @@
region : -1
language : -1
clock : 0
romfs : 0
code : 1
nim_checkupdate : 1

View File

@ -1,6 +0,0 @@
region : -1
language : -1
clock : 0
romfs : 0
code : 1
nim_checkupdate : 1

View File

@ -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>

View File

@ -1,6 +0,0 @@
region : -1
language : -1
clock : 1
romfs : 0
code : 1
nim_checkupdate : 1

Binary file not shown.

View File

@ -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>

View File

@ -1,6 +0,0 @@
region : -1
language : -1
clock : 1
romfs : 0
code : 1
nim_checkupdate : 1

Binary file not shown.

View File

@ -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>

View File

@ -1,6 +0,0 @@
region : -1
language : -1
clock : 1
romfs : 0
code : 1
nim_checkupdate : 1

View File

@ -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>

View File

@ -1,6 +0,0 @@
region : -1
language : -1
clock : 1
romfs : 0
code : 1
nim_checkupdate : 1

Binary file not shown.

View File

@ -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>

View File

@ -1,6 +0,0 @@
region : -1
language : -1
clock : 1
romfs : 0
code : 0
nim_checkupdate : 1

Binary file not shown.

View File

@ -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>

View File

@ -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.

View File

@ -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

62
debian/changelog vendored
View File

@ -1,65 +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
-- Christopher Roy Bratusek <nano@jpberlin.de> Sat, 02 Jul 2016 10:45:54 +0200
patchimage (6.1.0-1nano) unstable; urgency=low
* new upstream stable release

68
debian/control vendored
View File

@ -8,59 +8,17 @@ 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.
.
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
.
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)
Description: Wii image patcher
Patchimage is a script that allows to patch
riivoluton patches into wbfs/iso images of
legal Wii game dumps.
.
Currently there are 15 modifications of
New Super Mario Bros. Wii supported, aswell
as one modification of The Legend of Zelda:
A Link To The Past.
.
Also all Mario Kart Wii mods by Wiimm, aswell
as wiimmfi (custom server after nintendo wfc
shutdown) is supported

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -6,141 +6,277 @@
#
# 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
check_directories
setup_tools
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
;;
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
;;
esac

119
script.d/anothersmb.sh Normal file
View 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
}

View 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
}

View File

@ -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/
}

563
script.d/common.sh Normal file
View File

@ -0,0 +1,563 @@
#!/bin/bash
PATCHIMAGE_VERSION=6.1.0
PATCHIMAGE_RELEASE=2016-05-16
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}
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
<<<<<< 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
;;
--help | -h )
echo -e "patchimage ${PATCHIMAGE_VERSION} (${PATCHIMAGE_RELEASE})
(c) 2013-2014 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)"
exit 0
;;
esac
shift
xcount=$(($xcount+1))
done
}

View File

@ -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}/
}

View File

@ -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/
}

View File

@ -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/
}

View 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
View 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
}

View File

@ -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/
}

View File

@ -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

View File

@ -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/
}

View File

@ -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

185
script.d/mkwiimm.sh Normal file
View File

@ -0,0 +1,185 @@
#!/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/*
}
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}
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
cd ${FILENAME/.7z}
REG=$(gawk '/^RMC/{print $3}' <(wit ll ${IMAGE}))
ln -s ${IMAGE} .
case $REG in
PAL) REG=P ;;
NTSC-J) REG=J ;;
NTSC-U) REG=E ;;
esac
chmod +x *.sh
if [[ ${MKWIIMM_OVERRIDE_SZS} == "TRUE" ]]; then
cp -r ${PATCHIMAGE_SCRIPT_DIR}/../override/* ${PWD}/bin/
fi
if [[ ${MY_ID} -lt 27 ]]; then
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
else
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
fi
if [[ ${MY_ID} -lt 23 ]]; then
echo "*** 7) patching >${DIST}< to use custom server"
wiimmfi ${XD}/RMC${REG}${MY_ID}.wbfs || exit 69
fi
cd ${XD}
if [[ ${MY_ID} -lt 23 ]]; then
echo "*** 8) storing game"
else echo "*** 7) storing game"
fi
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
}

View File

@ -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

View File

@ -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
}

View File

@ -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
}

View File

@ -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
View 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
View 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
}

View 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
}

View File

@ -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
View 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
}

View File

@ -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
}

View File

@ -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/
}

View File

@ -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

View File

@ -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/
}

View File

@ -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/
}

View 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
}

View File

@ -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
}

View 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
}

View File

@ -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
View 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
}

View File

@ -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" \

View File

@ -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/
}

View 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

71
script.d/wiimmfi.sh Normal file
View 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/
}

View File

@ -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
View 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
}

View File

@ -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/
}

View File

@ -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}"
}

View File

@ -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/"
}

View File

@ -1,19 +0,0 @@
#!/bin/bash
unpack_3dsrom () {
${CTRTOOL} -p --romfs=romfs.bin "${1}" &>/dev/null
}
unpack_3dsromfs () {
${CTRTOOL} -t romfs --romfsdir=romfs "${1}" &>/dev/null
}
repack_3dsromfs () {
${FDSTOOL} -ctf romfs "${2}" --romfs-dir "${1}" &>/dev/null
}

Some files were not shown because too many files have changed in this diff Show More