From 238f40602479c43954916a967523d0a873cdd92b Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 13 Jan 2013 00:38:48 -0500 Subject: [PATCH] implement rgb macro for palettes --- constants.asm | 4 ++++ extras/gfx.py | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/constants.asm b/constants.asm index c60d4a044..cc9e55474 100644 --- a/constants.asm +++ b/constants.asm @@ -31,6 +31,10 @@ TX_FAR: MACRO db BANK(\1) ENDM +RGB: MACRO + dw ((\3 << 10) | (\2 << 5) | (\1)) + ENDM + ; eventually replace with python macro note: MACRO db \1 diff --git a/extras/gfx.py b/extras/gfx.py index f36b944d7..11e6860f1 100644 --- a/extras/gfx.py +++ b/extras/gfx.py @@ -1283,6 +1283,28 @@ def get_uncompressed_gfx(start, num_tiles, filename): +def hex_to_rgb(word): + red = word & 0b11111 + word >>= 5 + green = word & 0b11111 + word >>= 5 + blue = word & 0b11111 + return (red, green, blue) + +def grab_palettes(address, length = 0x80): + output = '' + for word in range(length/2): + color = ord(rom[address+1])*0x100 + ord(rom[address]) + address += 2 + color = hex_to_rgb(color) + red = str(color[0]).zfill(2) + green = str(color[1]).zfill(2) + blue = str(color[2]).zfill(2) + output += '\tRGB '+red+', '+green+', '+blue + output += '\n' + return output + + if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('cmd', nargs='?', metavar='cmd', type=str) @@ -1317,6 +1339,10 @@ if __name__ == "__main__": # python gfx.py un [address] [num_tiles] [filename] get_uncompressed_gfx(int(args.arg1,16), int(args.arg2), args.arg3) + elif args.cmd == 'pal': + # python gfx.py pal [address] [length] + print grab_palettes(int(args.arg1,16), int(args.arg2)) + else: # python gfx.py decompress_all()