1 // Burner Config file module
2 #include "burner.h"
3
4 #ifdef _UNICODE
5 #include <locale.h>
6 #endif
7
8 int nIniVersion = 0;
9
10 struct VidPresetData VidPreset[4] = {
11 { 640, 480},
12 { 1024, 768},
13 { 1280, 960},
14 // last one set at desktop resolution
15 };
16
17 struct VidPresetDataVer VidPresetVer[4] = {
18 { 640, 480},
19 { 1024, 768},
20 { 1280, 960},
21 // last one set at desktop resolution
22 };
23
CreateConfigName(TCHAR * szConfig)24 static void CreateConfigName(TCHAR* szConfig)
25 {
26 _stprintf(szConfig, _T("config/%s.ini"), szAppExeName);
27 return;
28 }
29
30 // Read in the config file for the whole application
ConfigAppLoad()31 int ConfigAppLoad()
32 {
33 TCHAR szConfig[MAX_PATH];
34 TCHAR szLine[1024];
35 FILE* h;
36
37 #ifdef _UNICODE
38 setlocale(LC_ALL, "");
39 #endif
40
41 CreateConfigName(szConfig);
42
43 if ((h = _tfopen(szConfig, _T("rt"))) == NULL) {
44 return 1;
45 }
46
47 // Go through each line of the config file
48 while (_fgetts(szLine, sizeof(szLine), h)) {
49 int nLen = _tcslen(szLine);
50
51 // Get rid of the linefeed at the end
52 if (szLine[nLen - 1] == 10) {
53 szLine[nLen - 1] = 0;
54 nLen--;
55 }
56
57 #define VAR(x) { TCHAR* szValue = LabelCheck(szLine,_T(#x)); \
58 if (szValue) x = _tcstol(szValue, NULL, 0); }
59 #define VAR64(x) { TCHAR* szValue = LabelCheck(szLine,_T(#x)); \
60 if (szValue) x = (long long)_tcstod(szValue, NULL); }
61 #define FLT(x) { TCHAR* szValue = LabelCheck(szLine,_T(#x)); \
62 if (szValue) x = _tcstod(szValue, NULL); }
63 #define STR(x) { TCHAR* szValue = LabelCheck(szLine,_T(#x) _T(" ")); \
64 if (szValue) _tcscpy(x,szValue); }
65 #define PAT(x) { TCHAR* szValue = LabelCheck(szLine,_T(#x) _T(" ")); \
66 if (szValue) { _tcscpy(x, szValue); UpdatePath(x); } }
67 #define DRV(x) { TCHAR* szValue = LabelCheck(szLine,_T(#x) _T(" ")); \
68 if (szValue) x = NameToDriver(szValue); }
69
70 VAR(nIniVersion);
71
72 // Emulation
73 #ifdef BUILD_A68K
74 VAR(bBurnUseASMCPUEmulation);
75 #endif
76
77 // Video
78 VAR(nVidDepth); VAR(nVidRefresh);
79 VAR(nVidRotationAdjust);
80
81 // horizontal oriented
82 VAR(nVidHorWidth); VAR(nVidHorHeight);
83 VAR(bVidArcaderesHor);
84 VAR(VidPreset[0].nWidth); VAR(VidPreset[0].nHeight);
85 VAR(VidPreset[1].nWidth); VAR(VidPreset[1].nHeight);
86 VAR(VidPreset[2].nWidth); VAR(VidPreset[2].nHeight);
87 VAR(VidPreset[3].nWidth); VAR(VidPreset[3].nHeight);
88 VAR(nScreenSizeHor);
89
90 // vertical oriented
91 VAR(nVidVerWidth); VAR(nVidVerHeight);
92 VAR(bVidArcaderesVer);
93 VAR(VidPresetVer[0].nWidth); VAR(VidPresetVer[0].nHeight);
94 VAR(VidPresetVer[1].nWidth); VAR(VidPresetVer[1].nHeight);
95 VAR(VidPresetVer[2].nWidth); VAR(VidPresetVer[2].nHeight);
96 VAR(VidPresetVer[3].nWidth); VAR(VidPresetVer[3].nHeight);
97 VAR(nScreenSizeVer);
98
99 VAR(nWindowSize);
100 VAR(nWindowPosX); VAR(nWindowPosY);
101 VAR(bDoGamma);
102 VAR(bVidUseHardwareGamma);
103 VAR(bHardwareGammaOnly);
104 FLT(nGamma);
105 VAR(bVidFullStretch);
106 VAR(bVidCorrectAspect);
107
108 VAR(bVidAutoSwitchFull);
109 STR(HorScreen);
110 STR(VerScreen);
111
112 VAR(bVidTripleBuffer);
113 VAR(bVidVSync);
114 VAR(bVidDWMSync);
115
116 VAR(bVidScanlines);
117 VAR(nVidScanIntensity);
118 VAR(bMonitorAutoCheck);
119 VAR(nVidScrnAspectX);
120 VAR(nVidScrnAspectY);
121 VAR(bForce60Hz);
122 VAR(bAlwaysDrawFrames);
123
124 VAR(nVidSelect);
125 VAR(nVidBlitterOpt[0]);
126 VAR64(nVidBlitterOpt[1]);
127 VAR(nVidBlitterOpt[2]);
128 VAR(nVidBlitterOpt[3]);
129 VAR(nVidBlitterOpt[4]);
130
131 // DirectDraw blitter
132 VAR(bVidScanHalf);
133 VAR(bVidForceFlip);
134
135 // Direct3D blitter
136 VAR(bVidBilinear);
137 VAR(bVidScanDelay);
138 VAR(bVidScanRotate);
139 VAR(bVidScanBilinear);
140 VAR(nVidFeedbackIntensity);
141 VAR(nVidFeedbackOverSaturation);
142 FLT(fVidScreenAngle);
143 FLT(fVidScreenCurvature);
144 VAR(bVidForce16bit);
145 VAR(nVidTransferMethod);
146
147 // DirectX Graphics blitter
148 FLT(dVidCubicB);
149 FLT(dVidCubicC);
150
151 // DirectX Graphics 9 Alt blitter
152 VAR(bVidDX9Bilinear);
153 VAR(bVidHardwareVertex);
154 VAR(bVidMotionBlur);
155 VAR(bVidForce16bitDx9Alt);
156
157 // Sound
158 VAR(nAudSelect);
159 VAR(nAudSegCount);
160 VAR(nInterpolation);
161 VAR(nFMInterpolation);
162 VAR(nAudSampleRate[0]);
163 VAR(nAudDSPModule[0]);
164 VAR(nAudSampleRate[1]);
165 VAR(nAudDSPModule[1]);
166
167 // Other
168 STR(szPlaceHolder);
169 STR(szLocalisationTemplate);
170 STR(szGamelistLocalisationTemplate);
171 VAR(nGamelistLocalisationActive);
172
173 VAR(nVidSDisplayStatus);
174 VAR(nMinChatFontSize);
175 VAR(nMaxChatFontSize);
176
177 VAR(bModelessMenu);
178
179 VAR(nSplashTime);
180
181 VAR(bDrvSaveAll);
182 VAR(nAppThreadPriority);
183 VAR(bAlwaysProcessKeyboardInput);
184 VAR(bAutoPause);
185 VAR(bSaveInputs);
186
187 VAR(nCDEmuSelect);
188 PAT(CDEmuImage);
189
190 VAR(nSelDlgWidth);
191 VAR(nSelDlgHeight);
192 VAR(nLoadMenuShowX);
193 VAR(nLoadMenuShowY);
194 VAR(nLoadMenuBoardTypeFilter);
195 VAR(nLoadMenuGenreFilter);
196 VAR(nLoadMenuFavoritesFilter);
197 VAR(nLoadMenuFamilyFilter);
198
199 STR(szAppRomPaths[0]);
200 STR(szAppRomPaths[1]);
201 STR(szAppRomPaths[2]);
202 STR(szAppRomPaths[3]);
203 STR(szAppRomPaths[4]);
204 STR(szAppRomPaths[5]);
205 STR(szAppRomPaths[6]);
206 STR(szAppRomPaths[7]);
207 STR(szAppRomPaths[8]);
208 STR(szAppRomPaths[9]);
209 STR(szAppRomPaths[10]);
210 STR(szAppRomPaths[11]);
211 STR(szAppRomPaths[12]);
212 STR(szAppRomPaths[13]);
213 STR(szAppRomPaths[14]);
214 STR(szAppRomPaths[15]);
215 STR(szAppRomPaths[16]);
216 STR(szAppRomPaths[17]);
217 STR(szAppRomPaths[18]);
218 STR(szAppRomPaths[19]);
219
220 STR(szNeoCDGamesDir);
221
222 STR(szAppPreviewsPath);
223 STR(szAppTitlesPath);
224 STR(szAppCheatsPath);
225 STR(szAppHiscorePath);
226 STR(szAppSamplesPath);
227 STR(szAppHDDPath);
228 STR(szAppIpsPath);
229 STR(szAppIconsPath);
230 STR(szNeoCDCoverDir);
231 STR(szAppBlendPath);
232 STR(szAppSelectPath);
233 STR(szAppVersusPath);
234 STR(szAppScoresPath);
235 STR(szAppBossesPath);
236 STR(szAppGameoverPath);
237 STR(szAppFlyersPath);
238 STR(szAppMarqueesPath);
239 STR(szAppControlsPath);
240 STR(szAppCabinetsPath);
241 STR(szAppPCBsPath);
242 STR(szAppHistoryPath);
243 STR(szAppEEPROMPath);
244
245 VAR(bEnableHighResTimer);
246 VAR(bNoChangeNumLock);
247 VAR(bAlwaysCreateSupportFolders);
248 VAR(bAutoLoadGameList);
249
250 VAR(nAutoFireRate);
251
252 VAR(EnableHiscores);
253 VAR(bBurnUseBlend);
254 VAR(BurnShiftEnabled);
255 VAR(bSkipStartupCheck);
256
257 #ifdef INCLUDE_AVI_RECORDING
258 VAR(nAvi3x);
259 #endif
260
261 VAR(nIpsSelectedLanguage);
262
263 VAR(bEnableIcons);
264 VAR(bIconsOnlyParents);
265 VAR(nIconsSize);
266
267 STR(szPrevGames[0]);
268 STR(szPrevGames[1]);
269 STR(szPrevGames[2]);
270 STR(szPrevGames[3]);
271 STR(szPrevGames[4]);
272 STR(szPrevGames[5]);
273 STR(szPrevGames[6]);
274 STR(szPrevGames[7]);
275 STR(szPrevGames[8]);
276 STR(szPrevGames[9]);
277
278 // MVS cartridges
279 DRV(nBurnDrvSelect[0]);
280 DRV(nBurnDrvSelect[1]);
281 DRV(nBurnDrvSelect[2]);
282 DRV(nBurnDrvSelect[3]);
283 DRV(nBurnDrvSelect[4]);
284 DRV(nBurnDrvSelect[5]);
285
286 VAR(bNeoCDListScanSub);
287 VAR(bNeoCDListScanOnlyISO);
288
289 // Default Controls
290 VAR(nPlayerDefaultControls[0]);
291 STR(szPlayerDefaultIni[0]);
292 VAR(nPlayerDefaultControls[1]);
293 STR(szPlayerDefaultIni[1]);
294 VAR(nPlayerDefaultControls[2]);
295 STR(szPlayerDefaultIni[2]);
296 VAR(nPlayerDefaultControls[3]);
297 STR(szPlayerDefaultIni[3]);
298
299 #undef DRV
300 #undef PAT
301 #undef STR
302 #undef FLT
303 #undef VAR
304 #undef VAR64
305 }
306
307 fclose(h);
308 return 0;
309 }
310
311 // Write out the config file for the whole application
ConfigAppSave()312 int ConfigAppSave()
313 {
314 TCHAR szConfig[MAX_PATH];
315 FILE *h;
316
317 if (bCmdOptUsed & 1) {
318 return 1;
319 }
320
321 #ifdef _UNICODE
322 setlocale(LC_ALL, "");
323 #endif
324
325 CreateConfigName(szConfig);
326
327 if ((h = _tfopen(szConfig, _T("wt"))) == NULL) {
328 return 1;
329 }
330
331 // Write title
332 _ftprintf(h, _T("// ") _T(APP_TITLE) _T(" v%s --- Main Config File\n\n"), szAppBurnVer);
333 _ftprintf(h, _T("// Don't edit this file manually unless you know what you're doing\n"));
334 _ftprintf(h, _T("// ") _T(APP_TITLE) _T(" will restore default settings when this file is deleted\n"));
335
336 #define VAR(x) _ftprintf(h, _T(#x) _T(" %d\n"), x)
337 #define VAR64(x) _ftprintf(h, _T(#x) _T(" %lf\n"), (float)x)
338 #define FLT(x) _ftprintf(h, _T(#x) _T(" %lf\n"), x)
339 #define STR(x) _ftprintf(h, _T(#x) _T(" %s\n"), x)
340 #define DRV(x) _ftprintf(h, _T(#x) _T(" %s\n"), DriverToName(x))
341
342 _ftprintf(h, _T("\n// The application version this file was saved from\n"));
343 // We can't use the macros for this!
344 _ftprintf(h, _T("nIniVersion 0x%06X"), nBurnVer);
345
346 #ifdef BUILD_A68K
347 _ftprintf(h, _T("\n\n\n"));
348 _ftprintf(h, _T("// --- emulation --------------------------------------------------------------\n"));
349
350 _ftprintf(h, _T("\n// If non-zero, use A68K for MC68000 emulation\n"));
351
352 bBurnUseASMCPUEmulation = 0; // Assembly MC68000 emulation only availble on a per-session basis. Causes too many problems in a non-debug setting.
353 VAR(bBurnUseASMCPUEmulation);
354 #endif
355
356 _ftprintf(h, _T("\n\n\n"));
357 _ftprintf(h, _T("// --- Video ------------------------------------------------------------------\n"));
358
359 // Horizontal oriented
360 _ftprintf(h, _T("\n// (Horizontal Oriented) The display mode to use for fullscreen\n"));
361 VAR(nVidHorWidth); VAR(nVidHorHeight);
362 _ftprintf(h, _T("\n// (Horizontal Oriented) If non-zero, use the same fullscreen resolution as the original arcade game\n"));
363 VAR(bVidArcaderesHor);
364 _ftprintf(h, _T("\n// (Horizontal Oriented) The preset resolutions appearing in the menu\n"));
365 VAR(VidPreset[0].nWidth); VAR(VidPreset[0].nHeight);
366 VAR(VidPreset[1].nWidth); VAR(VidPreset[1].nHeight);
367 VAR(VidPreset[2].nWidth); VAR(VidPreset[2].nHeight);
368 VAR(VidPreset[3].nWidth); VAR(VidPreset[3].nHeight);
369 _ftprintf(h, _T("\n// (Horizontal Oriented) Full-screen size (0 = use display mode variables)\n"));
370 VAR(nScreenSizeHor);
371
372 // Vertical oriented
373 _ftprintf(h, _T("\n// (Vertical Oriented) The display mode to use for fullscreen\n"));
374 VAR(nVidVerWidth); VAR(nVidVerHeight);
375 _ftprintf(h, _T("\n// (Vertical Oriented) If non-zero, use the same fullscreen resolution as the original arcade game\n"));
376 VAR(bVidArcaderesVer);
377 _ftprintf(h, _T("\n// (Vertical Oriented) The preset resolutions appearing in the menu\n"));
378 VAR(VidPresetVer[0].nWidth); VAR(VidPresetVer[0].nHeight);
379 VAR(VidPresetVer[1].nWidth); VAR(VidPresetVer[1].nHeight);
380 VAR(VidPresetVer[2].nWidth); VAR(VidPresetVer[2].nHeight);
381 VAR(VidPresetVer[3].nWidth); VAR(VidPresetVer[3].nHeight);
382 _ftprintf(h, _T("\n// (Vertical Oriented) Full-screen size (0 = use display mode variables)\n"));
383 VAR(nScreenSizeVer);
384
385 _ftprintf(h, _T("\n// Full-screen bit depth\n"));
386 VAR(nVidDepth);
387 _ftprintf(h, _T("\n// Specify the refresh rate, 0 = default (changing this will not work with many video cards)\n"));
388 VAR(nVidRefresh);
389 _ftprintf(h, _T("\n// If non-zero, do not rotate the graphics for vertical games\n"));
390 VAR(nVidRotationAdjust);
391 _ftprintf(h, _T("\n// Initial window size (0 = autosize)\n"));
392 VAR(nWindowSize);
393 _ftprintf(h, _T("\n// Window position\n"));
394 VAR(nWindowPosX); VAR(nWindowPosY);
395 _ftprintf(h, _T("\n// If non-zero, perform gamma correction\n"));
396 VAR(bDoGamma);
397 _ftprintf(h, _T("\n// If non-zero, use the video hardware to correct gamma\n"));
398 VAR(bVidUseHardwareGamma);
399 _ftprintf(h, _T("\n// If non-zero, don't fall back on software gamma correction\n"));
400 VAR(bHardwareGammaOnly);
401 _ftprintf(h, _T("\n// Gamma to correct with\n"));
402 FLT(nGamma);
403 _ftprintf(h, _T("\n// If non-zero, auto-switch to fullscreen after loading game\n"));
404 VAR(bVidAutoSwitchFull);
405 _ftprintf(h, _T("\n// Monitor for Horizontal Games (GDI Identifier)\n"));
406 STR(HorScreen);
407 _ftprintf(h, _T("\n// Monitor for Vertical Games (GDI Identifier)\n"));
408 STR(VerScreen);
409 _ftprintf(h, _T("\n// If non-zero, allow stretching of the image to any size\n"));
410 VAR(bVidFullStretch);
411 _ftprintf(h, _T("\n// If non-zero, stretch the image to the largest size preserving aspect ratio\n"));
412 VAR(bVidCorrectAspect);
413 _ftprintf(h, _T("\n// If non-zero, try to use a triple buffer in fullscreen\n"));
414 VAR(bVidTripleBuffer);
415 _ftprintf(h, _T("\n// If non-zero, try to synchronise blits with the display\n"));
416 VAR(bVidVSync);
417 _ftprintf(h, _T("\n// If non-zero, try to synchronise to DWM on Windows 7+, this fixes frame stuttering problems.\n"));
418 VAR(bVidDWMSync);
419 _ftprintf(h, _T("\n// Transfer method: 0 = blit from system memory / use driver/DirectX texture management;\n"));
420 _ftprintf(h, _T("// 1 = copy to a video memory surface, then use bltfast();\n"));
421 _ftprintf(h, _T("// -1 = autodetect for DirectDraw, equals 1 for Direct3D\n"));
422 VAR(nVidTransferMethod);
423 _ftprintf(h, _T("\n// If non-zero, draw scanlines to simulate a low-res monitor\n"));
424 VAR(bVidScanlines);
425 _ftprintf(h, _T("\n// Maximum scanline intensity\n"));
426 VAR(nVidScanIntensity);
427 _ftprintf(h, _T("\n// If non-zero, rotate scanlines and RGB effects for rotated games\n"));
428 VAR(bVidScanRotate);
429 _ftprintf(h, _T("\n// The selected blitter module\n"));
430 VAR(nVidSelect);
431 _ftprintf(h, _T("\n// Options for the blitter modules\n"));
432 VAR(nVidBlitterOpt[0]);
433 VAR64(nVidBlitterOpt[1]);
434 VAR(nVidBlitterOpt[2]);
435 VAR(nVidBlitterOpt[3]);
436 VAR(nVidBlitterOpt[4]);
437 _ftprintf(h, _T("\n// If non-zero, attempt to auto-detect the monitor aspect ratio\n"));
438 VAR(bMonitorAutoCheck);
439 _ftprintf(h, _T("\n// The aspect ratio of the monitor\n"));
440 VAR(nVidScrnAspectX);
441 VAR(nVidScrnAspectY);
442 _ftprintf(h, _T("\n// If non-zero, force all games to use a 60Hz refresh rate\n"));
443 VAR(bForce60Hz);
444 _ftprintf(h, _T("\n// If zero, skip frames when needed to keep the emulation running at full speed\n"));
445 VAR(bAlwaysDrawFrames);
446
447 _ftprintf(h, _T("\n"));
448 _ftprintf(h, _T("// --- DirectDraw blitter module settings -------------------------------------\n"));
449 _ftprintf(h, _T("\n// If non-zero, draw scanlines at 50%% intensity\n"));
450 VAR(bVidScanHalf);
451 _ftprintf(h, _T("\n// If non-zero, force flipping for games that need it\n"));
452 VAR(bVidForceFlip);
453 _ftprintf(h, _T("\n"));
454 _ftprintf(h, _T("// --- Direct3D 7 blitter module settings -------------------------------------\n"));
455 _ftprintf(h, _T("\n// If non-zero, use bi-linear filtering to display the image\n"));
456 VAR(bVidBilinear);
457 _ftprintf(h, _T("\n// If non-zero, simulate slow phosphors (feedback)\n"));
458 VAR(bVidScanDelay);
459 _ftprintf(h, _T("\n// If non-zero, use bi-linear filtering for the scanlines\n"));
460 VAR(bVidScanBilinear);
461 _ftprintf(h, _T("\n// Feedback amount for slow phosphor simulation\n"));
462 VAR(nVidFeedbackIntensity);
463 _ftprintf(h, _T("\n// Oversaturation amount for slow phosphor simulation\n"));
464 VAR(nVidFeedbackOverSaturation);
465 _ftprintf(h, _T("\n// Angle at wich the emulated screen is tilted (in radians)\n"));
466 FLT(fVidScreenAngle);
467 _ftprintf(h, _T("\n// Angle of the sphere segment used for the 3D screen (in radians)\n"));
468 FLT(fVidScreenCurvature);
469 _ftprintf(h, _T("\n// If non-zero, force 16 bit emulation even in 32-bit screenmodes\n"));
470 VAR(bVidForce16bit);
471 _ftprintf(h, _T("\n"));
472 _ftprintf(h, _T("// --- DirectX Graphics 9 blitter module settings -----------------------------\n"));
473 _ftprintf(h, _T("\n// The filter parameters for the cubic filter\n"));
474 FLT(dVidCubicB);
475 FLT(dVidCubicC);
476 _ftprintf(h, _T("\n"));
477 _ftprintf(h, _T("// --- DirectX Graphics 9 Alt blitter module settings -------------------------\n"));
478 _ftprintf(h, _T("\n// If non-zero, use bi-linear filtering to display the image\n"));
479 VAR(bVidDX9Bilinear);
480 _ftprintf(h, _T("\n// If non-zero, use hardware vertex to display the image\n"));
481 VAR(bVidHardwareVertex);
482 _ftprintf(h, _T("\n// If non-zero, use motion blur to display the image\n"));
483 VAR(bVidMotionBlur);
484 _ftprintf(h, _T("\n// If non-zero, force 16 bit emulation even in 32-bit screenmodes\n"));
485 VAR(bVidForce16bitDx9Alt);
486
487 _ftprintf(h, _T("\n\n\n"));
488 _ftprintf(h, _T("// --- Sound ------------------------------------------------------------------\n"));
489 _ftprintf(h, _T("\n// The selected audio plugin\n"));
490 VAR(nAudSelect);
491 _ftprintf(h, _T("\n// Number of frames in sound buffer (= sound lag)\n"));
492 VAR(nAudSegCount);
493 _ftprintf(h, _T("\n// The order of PCM/ADPCM interpolation\n"));
494 VAR(nInterpolation);
495 _ftprintf(h, _T("\n// The order of FM interpolation\n"));
496 VAR(nFMInterpolation);
497 _ftprintf(h, _T("\n"));
498 _ftprintf(h, _T("// --- DirectSound plugin settings --------------------------------------------\n"));
499 _ftprintf(h, _T("\n// Sample rate\n"));
500 VAR(nAudSampleRate[0]);
501 _ftprintf(h, _T("\n// DSP module to use for sound enhancement: 0 = none, 1 = low-pass filter\n"));
502 VAR(nAudDSPModule[0]);
503 _ftprintf(h, _T("\n"));
504 _ftprintf(h, _T("// --- XAudio2 plugin settings ------------------------------------------------\n"));
505 _ftprintf(h, _T("\n// Sample rate\n"));
506 VAR(nAudSampleRate[1]);
507 _ftprintf(h, _T("\n// DSP module to use for sound enhancement: 0 = none, 1 = low-pass filter, 2 = reverb\n"));
508 VAR(nAudDSPModule[1]);
509
510 _ftprintf(h, _T("\n\n\n"));
511 _ftprintf(h, _T("// --- UI ---------------------------------------------------------------------\n"));
512
513 _ftprintf(h, _T("\n// The filename of the placeholder image to use (empty filename = use built-in)\n"));
514 STR(szPlaceHolder);
515
516 _ftprintf(h, _T("\n// Filename of the active UI translation template\n"));
517 STR(szLocalisationTemplate);
518
519 _ftprintf(h, _T("\n// Filename of the active gamelist translation template\n"));
520 STR(szGamelistLocalisationTemplate);
521
522 _ftprintf(h, _T("\n// If non-zero, enable gamelist localisation\n"));
523 VAR(nGamelistLocalisationActive);
524
525 _ftprintf(h, _T("\n// 1 = display pause/record/replay/kaillera icons in the upper right corner of the display\n"));
526 VAR(nVidSDisplayStatus);
527 _ftprintf(h, _T("\n// Minimum height (in pixels) of the font used for the Kaillera chat function (used for arcade resolution)\n"));
528 VAR(nMinChatFontSize);
529 _ftprintf(h, _T("\n// Maximum height (in pixels) of the font used for the Kaillera chat function (used for 1280x960 or higher).\n"));
530 VAR(nMaxChatFontSize);
531
532 _ftprintf(h, _T("\n// Make the menu modeless\n"));
533 VAR(bModelessMenu);
534
535 _ftprintf(h, _T("\n// Minimum length of time to display the splash screen (in milliseconds)\n"));
536 VAR(nSplashTime);
537
538 _ftprintf(h, _T("\n// If non-zero, load and save all ram (the state)\n"));
539 VAR(bDrvSaveAll);
540 _ftprintf(h, _T("\n// The thread priority for the application. Do *NOT* edit this manually\n"));
541 VAR(nAppThreadPriority);
542 _ftprintf(h, _T("\n// If non-zero, process keyboard input even when the application loses focus\n"));
543 VAR(bAlwaysProcessKeyboardInput);
544 _ftprintf(h, _T("\n// If non-zero, pause when the application loses focus\n"));
545 VAR(bAutoPause);
546 _ftprintf(h, _T("\n// If non-zero, save the inputs for each game\n"));
547 VAR(bSaveInputs);
548
549 _ftprintf(h, _T("\n\n\n"));
550 _ftprintf(h, _T("// --- CD emulation -----------------------------------------------------------\n"));
551 _ftprintf(h, _T("\n // The selected CD emulation module\n"));
552 VAR(nCDEmuSelect);
553 _ftprintf(h, _T("\n // The path to the CD image to use (.cue or .iso)\n"));
554 STR(CDEmuImage);
555
556 _ftprintf(h, _T("\n\n\n"));
557 _ftprintf(h, _T("// --- Load Game Dialogs ------------------------------------------------------\n"));
558 _ftprintf(h, _T("\n// Load game dialog dimensions (in win32 client co-ordinates)\n"));
559 VAR(nSelDlgWidth);
560 VAR(nSelDlgHeight);
561
562 _ftprintf(h, _T("\n// Load game dialog options\n"));
563 VAR(nLoadMenuShowX);
564 VAR(nLoadMenuShowY);
565
566 _ftprintf(h, _T("\n// Load game dialog board type filter options\n"));
567 VAR(nLoadMenuBoardTypeFilter);
568
569 _ftprintf(h, _T("\n// Load game dialog genre filter options\n"));
570 VAR(nLoadMenuGenreFilter);
571
572 _ftprintf(h, _T("\n// Load game dialog favorites filter options\n"));
573 VAR(nLoadMenuFavoritesFilter);
574
575 _ftprintf(h, _T("\n// Load game dialog family filter options\n"));
576 VAR(nLoadMenuFamilyFilter);
577
578 _ftprintf(h, _T("\n// The paths to search for rom zips (include trailing backslash)\n"));
579 STR(szAppRomPaths[0]);
580 STR(szAppRomPaths[1]);
581 STR(szAppRomPaths[2]);
582 STR(szAppRomPaths[3]);
583 STR(szAppRomPaths[4]);
584 STR(szAppRomPaths[5]);
585 STR(szAppRomPaths[6]);
586 STR(szAppRomPaths[7]);
587 STR(szAppRomPaths[8]);
588 STR(szAppRomPaths[9]);
589 STR(szAppRomPaths[10]);
590 STR(szAppRomPaths[11]);
591 STR(szAppRomPaths[12]);
592 STR(szAppRomPaths[13]);
593 STR(szAppRomPaths[14]);
594 STR(szAppRomPaths[15]);
595 STR(szAppRomPaths[16]);
596 STR(szAppRomPaths[17]);
597 STR(szAppRomPaths[18]);
598 STR(szAppRomPaths[19]);
599
600 _ftprintf(h, _T("\n// The path to search for Neo Geo CDZ isos\n"));
601 STR(szNeoCDGamesDir);
602
603 _ftprintf(h, _T("\n// The paths to search for support files (include trailing backslash)\n"));
604 STR(szAppPreviewsPath);
605 STR(szAppTitlesPath);
606 STR(szAppCheatsPath);
607 STR(szAppHiscorePath);
608 STR(szAppSamplesPath);
609 STR(szAppHDDPath);
610 STR(szAppIpsPath);
611 STR(szAppIconsPath);
612 STR(szNeoCDCoverDir);
613 STR(szAppBlendPath);
614 STR(szAppSelectPath);
615 STR(szAppVersusPath);
616 STR(szAppScoresPath);
617 STR(szAppBossesPath);
618 STR(szAppGameoverPath);
619 STR(szAppFlyersPath);
620 STR(szAppMarqueesPath);
621 STR(szAppControlsPath);
622 STR(szAppCabinetsPath);
623 STR(szAppPCBsPath);
624 STR(szAppHistoryPath);
625 STR(szAppEEPROMPath);
626
627 _ftprintf(h, _T("\n// The cartridges to use for emulation of an MVS system\n"));
628 DRV(nBurnDrvSelect[0]);
629 DRV(nBurnDrvSelect[1]);
630 DRV(nBurnDrvSelect[2]);
631 DRV(nBurnDrvSelect[3]);
632 DRV(nBurnDrvSelect[4]);
633 DRV(nBurnDrvSelect[5]);
634
635 _ftprintf(h, _T("\n// Neo Geo CD Load Game Dialog options\n"));
636 VAR(bNeoCDListScanSub);
637 VAR(bNeoCDListScanOnlyISO);
638
639 _ftprintf(h, _T("\n\n\n"));
640 _ftprintf(h, _T("// --- miscellaneous ---------------------------------------------------------\n"));
641
642 _ftprintf(h, _T("\n// If non-zero, enable the high resolution system timer.\n"));
643 VAR(bEnableHighResTimer);
644
645 _ftprintf(h, _T("\n// If non-zero, don't change the status of the Num Lock key.\n"));
646 VAR(bNoChangeNumLock);
647
648 _ftprintf(h, _T("\n// If non-zero, create support folders at program start.\n"));
649 VAR(bAlwaysCreateSupportFolders);
650
651 _ftprintf(h, _T("\n// If non-zero, load game selection dialog at program start.\n"));
652 VAR(bAutoLoadGameList);
653
654 _ftprintf(h, _T("\n// Auto-Fire Rate, non-linear - use the GUI to change this setting!\n"));
655 VAR(nAutoFireRate);
656
657 _ftprintf(h, _T("\n// If non-zero, enable high score saving support.\n"));
658 VAR(EnableHiscores);
659
660 _ftprintf(h, _T("\n// If non-zero, enable alpha blending support.\n"));
661 VAR(bBurnUseBlend);
662
663 _ftprintf(h, _T("\n// If non-zero, enable gear shifter display support.\n"));
664 VAR(BurnShiftEnabled);
665
666 _ftprintf(h, _T("\n// If non-zero, DISABLE start-up rom scan (if needed).\n"));
667 VAR(bSkipStartupCheck);
668
669 #ifdef INCLUDE_AVI_RECORDING
670 _ftprintf(h, _T("\n// If non-zero, enable 1x - 3x pixel output for the AVI writer.\n"));
671 VAR(nAvi3x);
672 #endif
673
674 _ftprintf(h, _T("\n// The language index to use for the IPS Patch Manager dialog.\n"));
675 VAR(nIpsSelectedLanguage);
676
677 _ftprintf(h, _T("\n// If non-zero, display drivers icons.\n"));
678 VAR(bEnableIcons);
679
680 _ftprintf(h, _T("\n// If non-zero, display drivers icons for parents only (use if all icons causes UI issues).\n"));
681 VAR(bIconsOnlyParents);
682
683 _ftprintf(h, _T("\n// Specify icons display size, 0 = 16x16 , 1 = 24x24, 2 = 32x32.\n"));
684 VAR(nIconsSize);
685
686 _ftprintf(h, _T("\n// Previous games list.\n"));
687 STR(szPrevGames[0]);
688 STR(szPrevGames[1]);
689 STR(szPrevGames[2]);
690 STR(szPrevGames[3]);
691 STR(szPrevGames[4]);
692 STR(szPrevGames[5]);
693 STR(szPrevGames[6]);
694 STR(szPrevGames[7]);
695 STR(szPrevGames[8]);
696 STR(szPrevGames[9]);
697
698 _ftprintf(h, _T("\n// Player default controls, number is the index of the configuration in the input dialog\n"));
699 VAR(nPlayerDefaultControls[0]);
700 STR(szPlayerDefaultIni[0]);
701 VAR(nPlayerDefaultControls[1]);
702 STR(szPlayerDefaultIni[1]);
703 VAR(nPlayerDefaultControls[2]);
704 STR(szPlayerDefaultIni[2]);
705 VAR(nPlayerDefaultControls[3]);
706 STR(szPlayerDefaultIni[3]);
707
708 _ftprintf(h, _T("\n\n\n"));
709
710 #undef DRV
711 #undef STR
712 #undef FLT
713 #undef VAR
714 #undef VAR64
715
716 fclose(h);
717 return 0;
718 }
719
720