+void PicoDoHighPal555(int sh)\r
+{\r
+ unsigned short *pal=HighPal;\r
+ int i, t;\r
+\r
+ Pico.m.dirtyPal = 0;\r
+\r
+ {\r
+ unsigned int *spal=(void *)Pico.cram;\r
+ unsigned int *dpal=(void *)HighPal;\r
+ for (i = 0x3f/2; i >= 0; i--)\r
+#ifdef USE_BGR555\r
+ dpal[i] = ((spal[i]&0x000f000f)<< 1)|((spal[i]&0x00f000f0)<<3)|((spal[i]&0x0f000f00)<<4);\r
+#else\r
+ dpal[i] = ((spal[i]&0x000f000f)<<12)|((spal[i]&0x00f000f0)<<3)|((spal[i]&0x0f000f00)>>7);\r
+#endif\r
+ }\r
+\r
+ if (sh)\r
+ {\r
+ // shadowed pixels\r
+ for (i = 0x3f; i >= 0; i--)\r
+ pal[0x40|i] = pal[0xc0|i] = (unsigned short)((pal[i]>>1)&0x738e);\r
+ // hilighted pixels\r
+ for (i = 0x3f; i >= 0; i--) {\r
+ t=pal[i]&0xe71c;t+=0x4208;if(t&0x20)t|=0x1c;if(t&0x800)t|=0x700;if(t&0x10000)t|=0xe000;t&=0xe71c;\r
+ pal[0x80|i]=(unsigned short)t;\r
+ }\r
+ }\r
+}\r
+\r