summaryrefslogtreecommitdiff
path: root/extras/gfx.py
diff options
context:
space:
mode:
Diffstat (limited to 'extras/gfx.py')
-rw-r--r--extras/gfx.py69
1 files changed, 46 insertions, 23 deletions
diff --git a/extras/gfx.py b/extras/gfx.py
index 051150a6c..6b895aa2f 100644
--- a/extras/gfx.py
+++ b/extras/gfx.py
@@ -593,6 +593,10 @@ class Decompressed:
self.decompress()
+ debug = False
+ # print tuple containing start and end address
+ if debug: print '(' + hex(self.start) + ', ' + hex(self.start + self.address+1) + '),'
+
# only transpose pic
self.pic = []
self.animtiles = []
@@ -1152,7 +1156,7 @@ def decompress_title():
to_file(filename, gfx.output)
-def decompress_all():
+def decompress_all(debug = False):
"""decompress all known compressed data in baserom"""
#mkdir_p('../gfx/')
#mkdir_p('../gfx/frontpics/')
@@ -1164,31 +1168,33 @@ def decompress_all():
#mkdir_p('../gfx/intro/')
#mkdir_p('../gfx/title/')
+ if debug: print 'fronts'
decompress_monsters(front)
+ if debug: print 'backs'
decompress_monsters(back)
+ if debug: print 'unown fronts'
decompress_unowns(front)
+ if debug: print 'unown backs'
decompress_unowns(back)
+ if debug: print 'trainers'
decompress_trainers()
+ if debug: print 'fx'
decompress_fx()
+ if debug: print 'intro'
decompress_intro()
+ if debug: print 'title'
decompress_title()
return
-def export_decompressed(address, mode='horiz', filename = 'de.2bpp', size = None, debug = True):
+def decompress_from_address(address, mode='horiz', filename = 'de.2bpp', size = None):
"""write decompressed data from an address to a 2bpp file"""
-
- if debug: print 'decompressing ' + hex(address)
image = Decompressed(rom, mode, size, address)
-
- if debug: print 'export to ' + filename + '\n'
to_file(filename, image.pic)
-
- return image.pic
def decompress_file(filein, fileout, mode = 'horiz', size = None):
@@ -1225,21 +1231,38 @@ def compress_monster_frontpic(id, fileout):
cpr = Compressed(image, mode, 5)
- to_file('old.2bpp', cpr.output)
-
-
+ out = '../gfx/frontpics/cpr/' + str(id).zfill(3) + '.cpr'
+
+ to_file(out, cpr.output)
-parser = argparse.ArgumentParser()
-parser.add_argument('cmd', nargs='?', metavar='cmd', type=str)
-parser.add_argument('addr', nargs='?', metavar='addr', type=str)
-parser.add_argument('mode', nargs='?', metavar='mode', type=str)
-parser.add_argument('fname', nargs='?', metavar='fname', type=str)
-args = parser.parse_args()
-if args.cmd == 'de':
- # python gfx.py de [addr] [fname] [mode]
- print hex_dump(export_decompressed(int(args.addr,16), args.mode, args.fname))
-else:
- decompress_all()
- print 'decompressed known gfx to ../gfx/!'
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser()
+ parser.add_argument('cmd', nargs='?', metavar='cmd', type=str)
+ parser.add_argument('arg1', nargs='?', metavar='arg1', type=str)
+ parser.add_argument('arg2', nargs='?', metavar='arg2', type=str)
+ parser.add_argument('arg3', nargs='?', metavar='arg3', type=str)
+ args = parser.parse_args()
+
+ debug = True
+
+ if args.cmd == 'de':
+ # python gfx.py de [addr] [fileout] [mode]
+ addr = int(args.arg1,16)
+ fileout = args.arg2
+ mode = args.arg3
+ decompress_from_address(addr, fileout, mode)
+ if debug: print 'decompressed to ' + args.arg2 + ' from ' + hex(int(args.arg1,16)) + '!'
+
+ elif args.cmd == 'cpr':
+ # python gfx.py cpr [filein] [fileout] [mode]
+ filein = args.arg1
+ fileout = args.arg2
+ mode = args.arg3
+ compress_file(filein, fileout, mode)
+ if debug: print 'compressed ' + filein + ' to ' + fileout + '!'
+
+ else:
+ decompress_all()
+ if debug: print 'decompressed known gfx to ../gfx/!'