diff options
author | yenatch <yenatch@gmail.com> | 2014-04-16 01:37:48 -0400 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2014-04-16 01:37:48 -0400 |
commit | 698b0fc7e63d3dadf07247015e230bce145cc500 (patch) | |
tree | 1c52a5e1d15111af5b343c2ce888b28881165e89 /pokemontools/gfx.py | |
parent | 1840111de5b4c8aa18717d088f0718dbc0d17841 (diff) |
gfx: Don't try to load baserom.gbc unless it's actually being used.
This prevented pokered from building if the file "baserom.gbc" did not exist.
Diffstat (limited to 'pokemontools/gfx.py')
-rw-r--r-- | pokemontools/gfx.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/pokemontools/gfx.py b/pokemontools/gfx.py index 456b105..244b0e3 100644 --- a/pokemontools/gfx.py +++ b/pokemontools/gfx.py @@ -13,8 +13,10 @@ import pokemon_constants import trainers import romstr -if __name__ != "__main__": + +def load_rom(): rom = romstr.RomStr.load(filename=config.rom_path) + return rom def split(list_, interval): @@ -755,6 +757,7 @@ def make_sizes(): """ Front pics have specified sizes. """ + rom = load_rom() top = 251 base_stats = 0x51424 # print monster sizes @@ -772,10 +775,8 @@ def make_sizes(): -fxs = 0xcfcf6 -num_fx = 40 - -def decompress_fx_by_id(id): +def decompress_fx_by_id(id, fxs=0xcfcf6): + rom = load_rom() address = fxs + id*4 # len_fxptr # get size num_tiles = ord(rom[address]) # # tiles @@ -787,7 +788,7 @@ def decompress_fx_by_id(id): fx = Decompressed(rom, 'horiz', num_tiles, address) return fx -def decompress_fx(): +def decompress_fx(num_fx=40): for id in range(num_fx): fx = decompress_fx_by_id(id) filename = './gfx/fx/' + str(id).zfill(3) + '.2bpp' # ./gfx/fx/039.2bpp @@ -806,6 +807,7 @@ num_unowns = 26 unown_dex = 201 def decompress_monster_by_id(id=0, type=front): + rom = load_rom() # no unowns here if id + 1 == unown_dex: return None # get size @@ -840,6 +842,7 @@ def decompress_monsters(type=front): def decompress_unown_by_id(letter, type=front): + rom = load_rom() # get size if type == front: size = sizes[unown_dex-1] @@ -875,6 +878,7 @@ trainers = 0x128000 num_trainers = 67 def decompress_trainer_by_id(id): + rom = load_rom() # get pointer address = trainers + id*3 # bank, address bank = ord(rom[address]) + 0x36 # crystal @@ -924,6 +928,7 @@ intro_gfx = [ ] def decompress_intro(): + rom = load_rom() for name, address in intro_gfx: filename = './gfx/intro/' + name + '.2bpp' gfx = Decompressed( rom, 'horiz', None, address ) @@ -937,12 +942,14 @@ title_gfx = [ ] def decompress_title(): + rom = load_rom() for name, address in title_gfx: filename = './gfx/title/' + name + '.2bpp' gfx = Decompressed( rom, 'horiz', None, address ) to_file(filename, gfx.output) def decompress_tilesets(): + rom = load_rom() tileset_headers = 0x4d596 len_tileset = 15 num_tilesets = 0x25 @@ -962,6 +969,7 @@ misc = [ ('pokegear_sprites', 0x914DD, 'horiz'), ] def decompress_misc(): + rom = load_rom() for name, address, mode in misc: filename = './gfx/misc/' + name + '.2bpp' gfx = Decompressed( rom, mode, None, address ) @@ -1006,6 +1014,7 @@ def decompress_from_address(address, mode='horiz', filename='de.2bpp', size=None """ Write decompressed data from an address to a 2bpp file. """ + rom = load_rom() image = Decompressed(rom, mode, size, address) to_file(filename, image.pic) @@ -1054,10 +1063,10 @@ def get_uncompressed_gfx(start, num_tiles, filename): """ Grab tiles directly from rom and write to file. """ + rom = load_rom() bytes_per_tile = 0x10 length = num_tiles*bytes_per_tile end = start + length - rom = load_rom() image = [] for address in range(start,end): image.append(ord(rom[address])) @@ -1074,6 +1083,7 @@ def bin_to_rgb(word): return (red, green, blue) def rgb_from_rom(address, length=0x80): + rom = load_rom() return convert_binary_pal_to_text(rom[address:address+length]) def convert_binary_pal_to_text_by_filename(filename): |