ddac821f816941f4ede066e9ee06d323e751e3a2
[cyclone68000.git] / PicoDrive / Config.cpp
1 \r
2 // This file is part of the PicoDrive Megadrive Emulator\r
3 \r
4 // This code is licensed under the GNU General Public License version 2.0 and the MAME License.\r
5 // You can choose the license that has the most advantages for you.\r
6 \r
7 // SVN repository can be found at http://code.google.com/p/cyclone68000/\r
8 \r
9 #include "stdafx.h"\r
10 \r
11 static char *ConfigName="\\PicoConfig.txt";\r
12 struct Config Config;\r
13 \r
14 int ConfigInit()\r
15 {\r
16   memset(&Config,0,sizeof(Config));\r
17 \r
18   Config.key[0]=VK_UP;\r
19   Config.key[1]=VK_DOWN;\r
20   Config.key[2]=VK_LEFT;\r
21   Config.key[3]=VK_RIGHT;\r
22   Config.key[4]=GXKey.vkC; // A\r
23   Config.key[5]=GXKey.vkA; // B\r
24   Config.key[6]=GXKey.vkB; // C\r
25   Config.key[7]=GXKey.vkStart;\r
26 \r
27   return 0;\r
28 }\r
29 \r
30 int ConfigSave()\r
31 {\r
32   FILE *f=NULL;\r
33   int i=0,max=0;\r
34 \r
35   // Open config file:\r
36   f=fopen(ConfigName,"wt"); if (f==NULL) return 1;\r
37 \r
38   fprintf(f,"// PicoDrive Config File\n\n");\r
39 \r
40   fprintf(f,"// Keys: Up Down Left Right\n");\r
41   fprintf(f,"// A B C Start\n\n");\r
42 \r
43   max=sizeof(Config.key)/sizeof(Config.key[0]);\r
44   for (i=0;i<max;i++)\r
45   {\r
46     fprintf(f,"key,%d,0x%.2x\n",i,Config.key[i]);\r
47   }\r
48 \r
49   fclose(f);\r
50 \r
51   return 0;\r
52 }\r
53 \r
54 int ConfigLoad()\r
55 {\r
56   FILE *f=NULL;\r
57   char line[256];\r
58   int i=0;\r
59 \r
60   memset(line,0,sizeof(line));\r
61 \r
62   // Open config file:\r
63   f=fopen(ConfigName,"rt"); if (f==NULL) return 1;\r
64 \r
65   // Read through each line of the config file\r
66   for (;;)\r
67   {\r
68     char *tok[3]={"","",""};\r
69     if (fgets(line,sizeof(line)-1,f)==NULL) break;\r
70 \r
71     // Split line into tokens:\r
72     for (i=0;i<3;i++)\r
73     {\r
74       tok[i]=strtok(i<1?line:NULL, ",\r\n");\r
75       if (tok[i]==NULL) { tok[i]=""; break; }\r
76     }\r
77 \r
78     if (_stricmp(tok[0],"key")==0)\r
79     {\r
80       // Key code\r
81       int ta=0,tb=0;\r
82       \r
83       ta=strtol(tok[1],NULL,0);\r
84       tb=strtol(tok[2],NULL,0);\r
85 \r
86       Config.key[ta&7]=tb;\r
87     }\r
88   }\r
89 \r
90   fclose(f);\r
91 \r
92   return 0;\r
93 }\r