summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2013-01-13 00:38:48 -0500
committeryenatch <yenatch@gmail.com>2013-01-13 00:38:48 -0500
commit238f40602479c43954916a967523d0a873cdd92b (patch)
tree1da965fcfb0e30be214c7db51968777ce4e824c2
parent61a3d1459397800360064ab15adc97012e61c1af (diff)
implement rgb macro for palettes
-rw-r--r--constants.asm4
-rw-r--r--extras/gfx.py26
2 files changed, 30 insertions, 0 deletions
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()