|
@@ -0,0 +1,84 @@
|
|
|
+import sys
|
|
|
+
|
|
|
+
|
|
|
+palettes = {
|
|
|
+ 'blues': [0x15234b, 0x29366f, 0x304ead, 0x3b5dc9, 0x4485c9, 0x41a6f6, 0x75c4f5, 0xbeeff7, 0x3c208a],
|
|
|
+}
|
|
|
+
|
|
|
+sweetie16 = [0x1a1c2c, 0x5d275d, 0xb13e53, 0xef7d57, 0xffcd75, 0xa7f070, 0x38b764, 0x257179, 0x29366f, 0x3b5dc9, 0x41a6f6, 0x73eff7, 0xf4f4f4, 0x94b0c2, 0x566c86, 0x333c57]
|
|
|
+
|
|
|
+
|
|
|
+def intToR_G_B(intValue):
|
|
|
+ r = (intValue >> 16) & 0xff
|
|
|
+ g = (intValue >> 8) & 0xff
|
|
|
+ b = intValue & 0xff
|
|
|
+ return "%s %s %s" % (r, g, b)
|
|
|
+
|
|
|
+
|
|
|
+def outputJasc():
|
|
|
+ for paletteIndex in palettes:
|
|
|
+ paletteString = "JASC-PAL\n0100\n%s\n" % len(palettes[paletteIndex])
|
|
|
+ for color in palettes[paletteIndex]:
|
|
|
+ paletteString += intToR_G_B(color) + "\n"
|
|
|
+
|
|
|
+ filename = "%s.pal" % paletteIndex
|
|
|
+ fileOut = open(filename, "w+")
|
|
|
+ fileOut.write(paletteString)
|
|
|
+ fileOut.close()
|
|
|
+
|
|
|
+
|
|
|
+def outputLua(includeDecoder=False):
|
|
|
+ paletteString = "palettes = {\n"
|
|
|
+ for paletteIndex in palettes:
|
|
|
+ paletteString += "\t%s = {" % paletteIndex
|
|
|
+ for color in palettes[paletteIndex]:
|
|
|
+ paletteString += hex(color) + ","
|
|
|
+
|
|
|
+ paletteString += "},\n"
|
|
|
+ paletteString += "}"
|
|
|
+
|
|
|
+ if includeDecoder:
|
|
|
+ paletteString += "\n"
|
|
|
+ paletteString += "function palset(entry, val)\n\tpoke(0x3fc0+(entry*3), val//65536)\n"
|
|
|
+ paletteString += "\tpoke(0x3fc1+(entry*3), (val//256)%256)\n\tpoke(0x3fc2+(entry*3), val%256)\n"
|
|
|
+ paletteString += "end\n\n"
|
|
|
+ paletteString += "function swap_palette(pal_name)\n\tfor i = 4,#palettes[pal_name]+3 do\n"
|
|
|
+ paletteString += "\t\tpalset(i, palettes[pal_name][i-3])\n\tend\nend\n"
|
|
|
+
|
|
|
+ filename = "palettes.lua"
|
|
|
+ fileOut = open(filename, "w+")
|
|
|
+ fileOut.write(paletteString)
|
|
|
+ fileOut.close()
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+def outputTic(paletteName):
|
|
|
+ paletteString = ""
|
|
|
+ paletteCounter = 0
|
|
|
+ for i in range(0, 16):
|
|
|
+ if paletteCounter < 3 or paletteCounter > 11:
|
|
|
+ paletteString += hex(sweetie16[paletteCounter]).replace('0x', '')
|
|
|
+ else:
|
|
|
+ color = palettes[paletteName][i - 3]
|
|
|
+ paletteString += hex(color).replace('0x', '')
|
|
|
+ paletteCounter += 1
|
|
|
+
|
|
|
+ filename = "tic-%s.txt" % paletteName
|
|
|
+ fileOut = open(filename, "w+")
|
|
|
+ fileOut.write(paletteString)
|
|
|
+ fileOut.close()
|
|
|
+
|
|
|
+
|
|
|
+if len(sys.argv) > 1:
|
|
|
+ outFormat = sys.argv[1]
|
|
|
+ print("Outputting %s" % outFormat)
|
|
|
+ if outFormat == "jasc":
|
|
|
+ outputJasc()
|
|
|
+ if outFormat == "lua":
|
|
|
+ outputLua(True)
|
|
|
+ if outFormat == "tic":
|
|
|
+ outputTic(sys.argv[2])
|
|
|
+else:
|
|
|
+ print("Incorrect number of arguments.")
|
|
|
+ print("Usage: palettegen.py jasc|lua|tic [palette]")
|