-
-
Save ftc2/539c7bd82d6fe466ccd9 to your computer and use it in GitHub Desktop.
Universal Brawl Builder v0.11b [PM3.6b]
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Universal Brawl Builder v0.11b [PM3.6b] | |
this release has everything you need to build Project M 3.6b Netplay and Project M 3.6b Console | |
(...except for a Super Smash Bros. Brawl NTSC-U ISO) | |
download link: https://mega.co.nz/#!1I4lHDzJ!YIEQ96AeT28A175ILQs4CBxD9r7CO0l9OKVzqgTiFL0 | |
md5: 1f8ce3400cf3ed3c127993a1b19cc57d |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
___ ___ ________ ________ | |
|\ \|\ \|\ __ \|\ __ \ | |
\ \ \\\ \ \ \|\ /\ \ \|\ /_ | |
\ \ \\\ \ \ __ \ \ __ \ | |
\ \ \\\ \ \ \|\ \ \ \|\ \ | |
\ \_______\ \_______\ \_______\ | |
\|_______|\|_______|\|_______| | |
Universal Brawl Builder v0.11b [synth/bic] | |
july 2015 | |
_greetz!: | |
PMDT [projectmgame.com], Dirk Clemens [wiimm.de], Anther [smashladder.com], | |
damysteryman/Team DARK, and everyone who loves Smash... | |
_what?: | |
a robust, multi-platform mod builder for Super Smash Bros. Brawl written in python | |
_why?: | |
this is possibly an overbuilt solution to a problem that doesn't exist, | |
but it does bring (arguably) useful functionality that i hope someone might appreciate: | |
- multiplatform: windows, linux, mac os x | |
- verifies ISO before building | |
- patches brawl (rev 1 <==> rev 2) as needed | |
- verifies built ISO | |
- improved ease of defining new mods (see README-mods.txt) | |
_how?: | |
install python 2.7 (not 3.x): https://www.python.org/downloads/ | |
- mac os x and many linux distributions have python already installed by default | |
- windows does not ship with python. i recommend 'customizing' the installation by | |
making sure to have the installer 'Register Extensions' and | |
'Add python.exe to Path' so that you can just double-click .py scripts | |
put your Brawl ISO in the root directory of the builder | |
run universal_brawl_builder.py by either: | |
- double-clicking the script | |
- windows: double-clicking windows_launcher.bat | |
- note that this will keep the output window open so that you can view errors etc. | |
- opening a terminal and running: | |
python /path/to/universal_brawl_builder.py | |
follow the prompts | |
_who?: | |
bic @ smashladder | |
bicnasty @ smashboards | |
email: universalbrawlbuilder at synthte.ch |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
bic@bic-VirtualBox:~/Universal Brawl Builder v0.11b [PM3.6b]$ ./universal_brawl_builder.py | |
█ ██ ▄▄▄▄ ▄▄▄▄ | |
██ ▓██▒▓█████▄ ▓█████▄ | |
▓██ ▒██░▒██▒ ▄██▒██▒ ▄██ | |
▓▓█ ░██░▒██░█▀ ▒██░█▀ | |
▒▒█████▓ ░▓█ ▀█▓░▓█ ▀█▓ | |
░▒▓▒ ▒ ▒ ░▒▓███▀▒░▒▓███▀▒ | |
░░▒░ ░ ░ ▒░▒ ░ ▒░▒ ░ | |
░░░ ░ ░ ░ ░ ░ ░ | |
░ ░ ░ | |
Universal Brawl Builder v0.11b [synth/bic] | |
Linux detected | |
Base directory: /home/bic/Universal Brawl Builder v0.11b [PM3.6b] | |
wit path: /home/bic/Universal Brawl Builder v0.11b [PM3.6b]/lib/wit/linux/wit | |
temp dir: /home/bic/Universal Brawl Builder v0.11b [PM3.6b]/_brawl.temp | |
Brawl mods: | |
0 : Project M 3.6 Beta Netplay Build | |
1 : Project M 3.6 Beta | |
Which Brawl mod do you want to build? 0 | |
Beginning build: Project M 3.6 Beta Netplay Build | |
Scanning for SSBB ISOs... | |
(searchpath=/home/bic/Universal Brawl Builder v0.11b [PM3.6b]) | |
Brawl found at: /home/bic/Universal Brawl Builder v0.11b [PM3.6b]/ssbb 102-u.iso | |
Calculating MD5 checksum... this may take a minute or two... | |
Checksum matches Brawl v1.02 (52ce7160ced2505ad5e397477d0ea4fe)... OK | |
Extracting SSBB ISO... | |
wit: Wiimms ISO Tool v2.31a r6005 x86_64 - Dirk Clemens - 2015-02-08 | |
1 object scanned, 1 supported file found. | |
wit: EXTRACT 1/1 ISO:/home/bic/Universal Brawl Builder v0.11b [PM3.6b]/ssbb 102-u.iso -> /home/bic/Universal Brawl Builder v0.11b [PM3.6b]/_brawl.temp/ | |
- will extract 5542 files of 1 partition, 6867 MiB total | |
7098 MiB copied in 2:13, 53.2 MiB/sec | |
Patching Brawl revision 2 => revision 1... | |
Patching DOL... | |
CREATE TEXT section 'T2': 80001800 +10c0, offset=4982a0 | |
+Patched: [T2] addr 80001800+10c0, offset 4982a0: 00 00 00... -> 00 00 00... | |
+Patched: [T1] addr 80200984+04, offset 1f6704: 4e 80 00 20 -> 4b e0 0f 24 | |
+Patched: [T2] addr 80002778+04, offset 499218: 00 00 00 00 -> 80 20 0b 84 | |
+Patched: [T2] addr 80001cde+02, offset 49877e: 80 00 -> 80 57 | |
+Patched: [T2] addr 80001ce2+02, offset 498782: 28 b8 -> 00 00 | |
+Patched: [T2] addr 80001f5a+02, offset 4989fa: 80 00 -> 80 57 | |
+Patched: [T2] addr 80001f5e+02, offset 4989fe: 28 b8 -> 00 00 | |
+Patched: [T0] addr 800042b8+04, offset 3b8: 48 00 01 85 -> 60 00 00 00 | |
+Patched: [T1] addr 803e9930+04, offset 3df6b0: 4b fe ca 1d -> 60 00 00 00 | |
+Patched: [D7] addr 805a14b8+02, offset 494638: 30 31 -> 4e 31 | |
CREATE DATA section 'D8': 80570000 +106d8, offset=499360 | |
+Patched: [D8] addr 80570000+fcd0, offset 499360: 00 00 00... -> 00 d0 c0... | |
* Save patched DOL to: /home/bic/Universal Brawl Builder v0.11b [PM3.6b]/_brawl.temp/sys/main.dol | |
Patching game files... | |
Rebuilding ISO... | |
wit: Wiimms ISO Tool v2.31a r6005 x86_64 - Dirk Clemens - 2015-02-08 | |
1 object scanned, 1 supported file found. | |
* COPY/SCRUB 1/1 FST:/home/bic/Universal Brawl Builder v0.11b [PM3.6b]/_brawl.temp -> ISO:Project M 3.6 Beta Netplay Build.iso | |
7688 MiB copied in 2:37, 48.7 MiB/sec | |
Verifying built ISO... this may take a minute or two... | |
Checksum OK! You're ready to play! | |
(/home/bic/Universal Brawl Builder v0.11b [PM3.6b]/Project M 3.6 Beta Netplay Build.iso | |
= 1684e833163d994c8734a22a39e1429c) | |
Removing temporary files... | |
Time elapsed: 0:06:45 | |
Done. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# define mods in mod_definitions.py's mods() function like this: | |
brawl_mods = [] | |
brawl_mods.append(lib.brawl_kit.mod_template( | |
'mod name', # mod name | |
tempdir, # the temp directory to operate on (where Brawl was extracted to) | |
# (you should probably leave it as tempdir) | |
md5='md5 hash', # (optional) md5 hash to verify against after building | |
required_brawl_rev=1, # (optional) if defined, the extracted Brawl ISO will be converted | |
# to the specified revision (options: 1 or 2) as needed | |
pc='pc', | |
gct_filename='filename.gct', # (optional) the .gct filename relative to | |
# ./mods/mod_name/codes/ | |
gct_size='gctsize', # gct size if loading a .gct | |
file_replacements=( | |
{'src': 'mods/files/to/replace'}, | |
), | |
game_id='game id', | |
slot='slot', | |
) | |
) | |
# file_replacements should be a tuple or list of dicts taking any of the following forms: | |
# {'src': 'some/path'} | |
# {'src': 'some/path', 'ignore': shutil.ignore_patterns('glob-style pattern')} | |
# {'src': 'some/path', 'dst': 'some/dst'} | |
# {'src': 'some/path', 'dst': 'some/dst', 'ignore': shutil.ignore_patterns('glob-style pattern')} | |
# {'src': 'some/file.ext'} | |
# {'src': 'some/file.ext', 'dst': 'some/file/dst.ext'} | |
# 'src' is relative to the base directory of the builder | |
# 'dst' is relative to the temp directory (where Brawl was extracted to) | |
# if 'dst' is not specified, the temp dir is used | |
# here is a few 'ignore' examples: | |
# shutil.ignore_patterns('*.pac') | |
# shutil.ignore_patterns('some_dirname') | |
# shutil.ignore_patterns('some_filename.ext') | |
# shutil.ignore_patterns('some_filename.ext', 'some_other_file.ext') | |
# if you want, also look at lib.brawl_kit.mod_template() to see what's going on | |
# finally, here is a couple of complete examples: | |
# mod_definitions.py: | |
import shutil | |
import lib.brawl_kit | |
def get_mods(tempdir=None): | |
if not tempdir: | |
print 'Error: (mod_definitions.py) tempdir not specified' | |
lib.brawl_kit.exit() | |
brawl_mods = [] | |
brawl_mods.append(lib.brawl_kit.mod_template( | |
'Project M 3.6 Beta Netplay Build', | |
tempdir, | |
md5='1684e833163d994c8734a22a39e1429c', | |
required_brawl_rev=1, | |
pc='4E31', | |
gct_filename='RSBE01.gct', | |
gct_size='106D8', | |
file_replacements=( | |
{'src': 'mods/Project M 3.6 Beta Netplay Build/file replacements'}, | |
), | |
game_id='RSBEN1', | |
slot='K', | |
) | |
) | |
brawl_mods.append(lib.brawl_kit.mod_template( | |
'Project M 3.6 Beta', | |
tempdir, | |
md5='dcd509275d733f7c8601d520404449fd', | |
required_brawl_rev=1, | |
pc='4E31', | |
gct_filename='RSBE01.gct', | |
gct_size='106D8', | |
file_replacements=( | |
{'src': 'mods/Project M 3.6 Beta Netplay Build/file replacements', | |
'ignore': shutil.ignore_patterns('opening.bnr', 'button_en.msbin', 'STGPALUTENA.*')}, | |
{'src': 'mods/Project M 3.6 Beta Netplay Build/file replacements/files/menu/msg/button_en.msbin', | |
'dst': 'files/menu/msg/button.msbin'}, | |
{'src': 'mods/Project M 3.6 Beta/file replacements'}, | |
), | |
game_id='RSBEN1', | |
slot='K', | |
) | |
) | |
return brawl_mods |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment