Skip to content

Instantly share code, notes, and snippets.

@icefire
Created July 1, 2009 05:30
Show Gist options
  • Save icefire/138610 to your computer and use it in GitHub Desktop.
Save icefire/138610 to your computer and use it in GitHub Desktop.
#!/usr/bin/python
import sys, os, os.path
sys.path.append(os.path.realpath(os.path.dirname(sys.argv[0]))+"/../Common")
import pywii as wii
wii.loadkeys(os.environ["HOME"]+os.sep+".wii")
wadfile = sys.argv[1]
indir = sys.argv[2]
tmd = wii.WiiTmd(open(indir+os.sep+"tmd", "rb").read())
tik = wii.WiiTik(open(indir+os.sep+"cetk", "rb").read())
certdata = open(indir+os.sep+"certs", "rb").read()
certlist = []
while certdata != "":
cert = wii.WiiCert(certdata)
certlist.append(cert)
certdata = certdata[wii.align(len(cert.data),0x40):]
footer = open(indir+os.sep+"footer", "rb").read()
wad = wii.WiiWadMaker(wadfile, tmd, tik, certlist, footer)
for i,ct in enumerate(tmd.get_content_records()):
data = open(indir+os.sep+"%08X"%ct.cid, "rb").read()
wad.adddata(data,ct.cid)
wad.finish()
if not wad.tik.signcheck(wad.certs):
wad.tik.null_signature()
wad.tik.brute_sha()
wad.updatetik()
if not wad.tmd.signcheck(wad.certs):
wad.tmd.null_signature()
wad.tmd.brute_sha()
wad.updatetmd()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment