--- /dev/null
+\r
+#include "stdafx.h"\r
+\r
+static char *ConfigName="\\PicoConfig.txt";\r
+struct Config Config;\r
+\r
+int ConfigInit()\r
+{\r
+ memset(&Config,0,sizeof(Config));\r
+\r
+ Config.key[0]=VK_UP;\r
+ Config.key[1]=VK_DOWN;\r
+ Config.key[2]=VK_LEFT;\r
+ Config.key[3]=VK_RIGHT;\r
+ Config.key[4]=GXKey.vkC; // A\r
+ Config.key[5]=GXKey.vkA; // B\r
+ Config.key[6]=GXKey.vkB; // C\r
+ Config.key[7]=GXKey.vkStart;\r
+\r
+ return 0;\r
+}\r
+\r
+int ConfigSave()\r
+{\r
+ FILE *f=NULL;\r
+ int i=0,max=0;\r
+\r
+ // Open config file:\r
+ f=fopen(ConfigName,"wt"); if (f==NULL) return 1;\r
+\r
+ fprintf(f,"// PicoDrive Config File\n\n");\r
+\r
+ fprintf(f,"// Keys: Up Down Left Right\n");\r
+ fprintf(f,"// A B C Start\n\n");\r
+\r
+ max=sizeof(Config.key)/sizeof(Config.key[0]);\r
+ for (i=0;i<max;i++)\r
+ {\r
+ fprintf(f,"key,%d,0x%.2x\n",i,Config.key[i]);\r
+ }\r
+\r
+ fclose(f);\r
+\r
+ return 0;\r
+}\r
+\r
+int ConfigLoad()\r
+{\r
+ FILE *f=NULL;\r
+ char line[256];\r
+ int i=0;\r
+\r
+ memset(line,0,sizeof(line));\r
+\r
+ // Open config file:\r
+ f=fopen(ConfigName,"rt"); if (f==NULL) return 1;\r
+\r
+ // Read through each line of the config file\r
+ for (;;)\r
+ {\r
+ char *tok[3]={"","",""};\r
+ if (fgets(line,sizeof(line)-1,f)==NULL) break;\r
+\r
+ // Split line into tokens:\r
+ for (i=0;i<3;i++)\r
+ {\r
+ tok[i]=strtok(i<1?line:NULL, ",\r\n");\r
+ if (tok[i]==NULL) { tok[i]=""; break; }\r
+ }\r
+\r
+ if (_stricmp(tok[0],"key")==0)\r
+ {\r
+ // Key code\r
+ int ta=0,tb=0;\r
+ \r
+ ta=strtol(tok[1],NULL,0);\r
+ tb=strtol(tok[2],NULL,0);\r
+\r
+ Config.key[ta&7]=tb;\r
+ }\r
+ }\r
+\r
+ fclose(f);\r
+\r
+ return 0;\r
+}\r