summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--error.jt1
-rw-r--r--error.pngbin0 -> 1077 bytes
-rw-r--r--jtanimator.php46
-rw-r--r--jtanimator.py78
-rw-r--r--palette.gpl12
5 files changed, 137 insertions, 0 deletions
diff --git a/error.jt b/error.jt
new file mode 100644
index 0000000..77bf01f
--- /dev/null
+++ b/error.jt
@@ -0,0 +1 @@
+[{"data":{"aniData":[0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,74,161,197,83,200,163,133,18,8,32,0,0,74,161,197,83,200,131,133,82,2,32,0,0,74,161,197,83,200,131,133,82,2,32,0,0,66,161,197,83,200,35,132,18,10,160,5,64,64,1,197,83,202,163,133,2,10,160,5,80,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,74,161,197,83,200,163,133,18,8,32,0,0,74,161,197,83,200,131,133,82,2,32,0,0,74,161,197,83,200,131,133,82,2,32,0,0,66,161,197,83,200,35,132,18,10,160,5,64,64,1,197,83,202,163,133,2,10,160,5,80,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,74,161,197,83,200,163,133,18,8,32,0,0,74,161,197,83,200,131,133,82,2,32,0,0,74,161,197,83,200,131,133,82,2,32,0,0,66,161,197,83,200,35,132,18,10,160,5,64,64,1,197,83,202,163,133,2,10,160,5,80,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,16,8,16,0,80,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,0,16,0,80,1,192,3,208,3,144,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,8,16,16,84,1,196,11,212,3,144,2,4,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,8,16,16,84,25,196,19,212,3,144,2,4,0,4,0,68,1,196,3,196,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,8,16,16,84,25,196,19,212,11,144,10,4,0,4,8,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,8,16,16,84,25,196,19,212,11,144,10,4,16,4,8,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,144,10,4,16,4,8,68,1,196,11,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,69,1,196,11,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,69,1,196,11,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,69,1,196,11,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,69,1,196,11,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,5,16,0,0,64,1,192,3,192,3,128,2,21,0,0,0,84,17,192,3,212,3,128,10,5,16,0,8,69,1,192,11,196,3,128,2,4,0,0,0,64,1,192,3,196,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,16,0,16,0,80,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,0,16,0,80,1,192,3,208,3,144,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,0,16,0,84,1,196,3,212,3,144,2,4,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,0,16,0,84,1,196,3,212,3,144,2,4,0,4,0,68,1,196,3,196,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,0,16,0,84,1,196,3,212,3,144,2,4,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,0,16,0,84,1,196,3,212,3,144,2,4,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,144,2,4,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,69,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,69,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,69,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,69,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,5,16,0,0,64,1,192,3,192,3,128,2,21,0,0,0,84,1,192,3,212,3,128,2,5,0,0,0,69,1,192,3,196,3,128,2,4,0,0,0,64,1,192,3,196,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,16,0,16,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,20,0,16,0,16,0,0,0,16,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,20,0,16,0,20,0,4,0,20,0,16,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,20,0,16,0,20,0,4,0,20,0,16,0,4,0,4,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,20,0,16,0,20,0,4,0,20,0,16,0,4,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,20,0,16,0,20,0,4,0,20,0,16,0,4,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,16,0,4,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,5,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,5,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,5,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,5,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,0,2,160,21,80,10,168,21,80,10,168,21,80,2,160,1,0,0,0,21,0,0,0,20,0,0,0,20,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"aniType":1,"delays":300,"frameNum":40,"pixelHeight":16,"pixelWidth":32},"dataType":0}]
diff --git a/error.png b/error.png
new file mode 100644
index 0000000..8c08e3d
--- /dev/null
+++ b/error.png
Binary files differ
diff --git a/jtanimator.php b/jtanimator.php
new file mode 100644
index 0000000..ff04f01
--- /dev/null
+++ b/jtanimator.php
@@ -0,0 +1,46 @@
+<?php
+$filename = "hex.png";
+$im = imagecreatefrompng($filename);
+list($width, $height, $type, $attr) = getimagesize($filename);
+
+$bitsData = ["", "", ""];
+$pixelNumber = 0;
+
+for ($image = 0; $image < $height / 16; $image++) {
+ for ($x = 0; $x < 32; $x++) {
+ for ($y = 0; $y < 16; $y++) {
+ $col = imagecolorat($im, $x, $y + $image * 16);
+ if (($col >> 16) & (0xff == 255)) { $bitsData[0] .= "1"; } else { $bitsData[0] .= "0"; }
+ if (($col >> 8) & (0xff == 255)) { $bitsData[1] .= "1"; } else { $bitsData[1] .= "0"; }
+ if ($col & (0xff == 255)) { $bitsData[2] .= "1"; } else { $bitsData[2] .= "0"; }
+
+ if ($pixelNumber > 0 && $pixelNumber % 8 == 7) {
+ $bitsData[0] .= ",";
+ $bitsData[1] .= ",";
+ $bitsData[2] .= ",";
+ }
+
+ $pixelNumber++;
+ }
+ }
+}
+
+$aniData = [];
+$toDec = function ($value) {
+ return bindec($value);
+};
+
+for ($i = 0; $i < 3; $i++) {
+ $tempData = explode(",", $bitsData[$i]);
+ array_pop($tempData);
+ $tempDataDec = array_map($toDec, $tempData);
+ for ($j = 0; $j < count($tempDataDec); $j++) {
+ $aniData[] = $tempDataDec[$j];
+ }
+}
+
+echo "<pre>";
+print_r('[{"data":{"aniData":[');
+print_r(implode(",", $aniData));
+print_r('],"aniType":1,"delays":300,"frameNum":' . $height / 16 . ',"pixelHeight":16,"pixelWidth":32},"dataType":0}]');
+echo "</pre>";
diff --git a/jtanimator.py b/jtanimator.py
new file mode 100644
index 0000000..0a863bb
--- /dev/null
+++ b/jtanimator.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python3
+
+'''
+jtanimator v1.0, stage7
+
+A tool to convert PNG images into animations suitable for the JTPD-03-005 LED screen.
+
+The source image must be an RGB PNG (not indexed) using only the provided palette, stacking frames in vertical.
+The frames will be played in sequence, the first one being the topmost part. The image must be 32 pixels wide
+and 16 x n pixels high, n being the number of frames the final animation will have. The output should be exported
+to a file with .jt extension to be opened with the CoolLED1248 app.
+
+The palette is provided in GIMP format. Here it is for your reference in case you are unable to use this file:
+ 0 0 0 Black
+255 0 0 Red
+ 0 255 0 Green
+255 255 0 Yellow
+ 0 0 255 Blue
+255 0 255 Magenta
+ 0 255 255 Cyan
+255 255 255 White
+
+It has been tested with up to ~60 frames without issues. I have not done capacity tests so I do not know how many
+frames can the screen support. Bear in mind that 60 frames already take around 30 seconds to upload from the app.
+The speed of the animation can be edited in the app, but if you need something else by default you can change the
+"delays" attribute in the last line.
+
+I ignore if this script could work with models that have a different number of LEDs only changing a few numbers.
+Message me at @stage7@owo.cafe in the Fediverse if you try for yourself. I am also open to donations, just ask!
+
+This is free (libre) open-source software with no warranties. I will decide a license later, just please do not
+do anything nasty or take this script as your own. Thank you.
+'''
+
+import sys
+import PIL.Image as Image
+
+if len(sys.argv) < 2:
+ print("ERROR: The file name is missing.")
+ exit()
+
+filename = sys.argv[1]
+im = Image.open(filename)
+width, height = im.size
+
+if width != 32:
+ print("ERROR: The width of the image must be 32 pixels.")
+ exit()
+
+if height % 16 != 0:
+ print("ERROR: The height of the image must be divisible by 16.")
+ exit()
+
+bitsData = ["", "", ""]
+pixelNumber = 0
+
+for image in range(int(height / 16)):
+ for x in range(32):
+ for y in range(16):
+ col = im.getpixel((x, y + image * 16))
+ bitsData[0] += "1" if col[0] == 255 else "0"
+ bitsData[1] += "1" if col[1] == 255 else "0"
+ bitsData[2] += "1" if col[2] == 255 else "0"
+
+ if pixelNumber > 0 and pixelNumber % 8 == 7:
+ bitsData[0] += ","
+ bitsData[1] += ","
+ bitsData[2] += ","
+
+ pixelNumber += 1
+
+aniData = []
+for i in range(3):
+ tempData = bitsData[i].split(",")[:-1]
+ tempDataDec = [int(x, 2) for x in tempData]
+ aniData.extend(tempDataDec)
+
+print(f'[{{"data":{{"aniData":[{",".join(map(str, aniData))}],"aniType":1,"delays":300,"frameNum":{height // 16},"pixelHeight":16,"pixelWidth":32}},"dataType":0}}]')
diff --git a/palette.gpl b/palette.gpl
new file mode 100644
index 0000000..10b10f8
--- /dev/null
+++ b/palette.gpl
@@ -0,0 +1,12 @@
+GIMP Palette
+Name: JTPD-03-005
+Columns: 2
+#
+ 0 0 0 Black
+255 0 0 Red
+ 0 255 0 Green
+255 255 0 Yellow
+ 0 0 255 Blue
+255 0 255 Magenta
+ 0 255 255 Cyan
+255 255 255 White