Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- import binascii
- import argparse
- def invert(x):
- if isinstance(x,str):
- # str
- return(~int(x,16) & 0xff)
- else:
- return(~x & 0xff)
- def create_parser():
- parser = argparse.ArgumentParser()
- parser.add_argument(
- "-o","--out-file",
- help="save to this file",
- default="palette.pal"
- )
- parser.add_argument(
- "--invert",
- help="invert values",
- nargs="?",
- const=True
- )
- parser.add_argument(
- "-s","--show-pal",
- help="show palette values",
- nargs="?",
- const=True
- )
- return(parser.parse_args())
- if __name__ == "__main__":
- args = create_parser()
- # MEGA DRIVE palette segaretro
- #l = range(0, 0xf, 2)
- #pal = [(r*17,g*17,b*17) for r in l for g in l for b in l ]
- """
- 8 rgb values from 0-7 * 36
- (0*36,0*36,0*36),(0*36,0*36,1*36),(0,0,2*36)...
- (7*36,7*36,7*36)
- """
- l = range(0, 0x8, 1)
- pal = [(r*36,g*36,b*36) for r in l for g in l for b in l ]
- if args.show_pal:
- [print(r,g,b) for r,g,b in pal]
- exit(2)
- try:
- with open(args.out_file,"wb") as f:
- for r,g,b in pal:
- if args.invert:
- f.write(binascii.unhexlify(format(invert(g),"02x")))
- f.write(binascii.unhexlify(format(invert(r),"02x")))
- f.write(binascii.unhexlify(format(invert(b),"02x")))
- else:
- f.write(binascii.unhexlify(format(g,"02x")))
- f.write(binascii.unhexlify(format(r,"02x")))
- f.write(binascii.unhexlify(format(b,"02x")))
- except Exception as e:
- print(str(e))
- exit(1)
- exit(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement