shithub: pokecrystal

Download patch

ref: 238f40602479c43954916a967523d0a873cdd92b
parent: 61a3d1459397800360064ab15adc97012e61c1af
author: yenatch <[email protected]>
date: Sat Jan 12 19:38:48 EST 2013

implement rgb macro for palettes

--- a/constants.asm
+++ b/constants.asm
@@ -31,6 +31,10 @@
 	db BANK(\1)
 	ENDM
 
+RGB: MACRO
+	dw ((\3 << 10) | (\2 << 5) | (\1))
+	ENDM
+
 ; eventually replace with python macro
 note: MACRO
 	db \1
--- a/extras/gfx.py
+++ b/extras/gfx.py
@@ -1283,6 +1283,28 @@
 
 
 
+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)
@@ -1316,6 +1338,10 @@
 	elif args.cmd == 'un':
 		# 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