SMS DAT File Support
This commit is contained in:
parent
37c7337a41
commit
2511bf9233
|
@ -168,6 +168,7 @@ void ComputeGammaLUT();
|
|||
#define DAT_SGX_ONLY 4
|
||||
#define DAT_SG1000_ONLY 5
|
||||
#define DAT_COLECO_ONLY 6
|
||||
#define DAT_MASTERSYSTEM_ONLY 7
|
||||
|
||||
INT32 write_datfile(INT32 bType, FILE* fDat);
|
||||
INT32 create_datfile(TCHAR* szFilename, INT32 bType);
|
||||
|
|
|
@ -112,6 +112,7 @@ INT32 write_datfile(INT32 bType, FILE* fDat)
|
|||
if (bType == DAT_SGX_ONLY) fprintf(fDat, "\t\t<name>" APP_TITLE " - SuprGrafx Games</name>\n");
|
||||
if (bType == DAT_SG1000_ONLY) fprintf(fDat, "\t\t<name>" APP_TITLE " - Sega SG-1000 Games</name>\n");
|
||||
if (bType == DAT_COLECO_ONLY) fprintf(fDat, "\t\t<name>" APP_TITLE " - ColecoVision Games</name>\n");
|
||||
if (bType == DAT_MASTERSYSTEM_ONLY) fprintf(fDat, "\t\t<name>" APP_TITLE " - Master System Games</name>\n");
|
||||
|
||||
if (bType == DAT_ARCADE_ONLY) _ftprintf(fDat, _T("\t\t<description>") _T(APP_TITLE) _T(" v%s") _T(" Arcade Games</description>\n"), szAppBurnVer);
|
||||
if (bType == DAT_MEGADRIVE_ONLY) _ftprintf(fDat, _T("\t\t<description>") _T(APP_TITLE) _T(" v%s") _T(" Megadrive Games</description>\n"), szAppBurnVer);
|
||||
|
@ -120,6 +121,7 @@ INT32 write_datfile(INT32 bType, FILE* fDat)
|
|||
if (bType == DAT_SGX_ONLY) _ftprintf(fDat, _T("\t\t<description>") _T(APP_TITLE) _T(" v%s") _T(" SuprGrafx Games</description>\n"), szAppBurnVer);
|
||||
if (bType == DAT_SG1000_ONLY) _ftprintf(fDat, _T("\t\t<description>") _T(APP_TITLE) _T(" v%s") _T(" Sega SG-1000 Games</description>\n"), szAppBurnVer);
|
||||
if (bType == DAT_COLECO_ONLY) _ftprintf(fDat, _T("\t\t<description>") _T(APP_TITLE) _T(" v%s") _T(" ColecoVision Games</description>\n"), szAppBurnVer);
|
||||
if (bType == DAT_MASTERSYSTEM_ONLY) _ftprintf(fDat, _T("\t\t<description>") _T(APP_TITLE) _T(" v%s") _T(" Master System Games</description>\n"), szAppBurnVer);
|
||||
fprintf(fDat, "\t\t<category>Standard DatFile</category>\n");
|
||||
_ftprintf(fDat, _T("\t\t<version>%s</version>\n"), szAppBurnVer);
|
||||
fprintf(fDat, "\t\t<author>" APP_TITLE "</author>\n");
|
||||
|
@ -152,6 +154,7 @@ INT32 write_datfile(INT32 bType, FILE* fDat)
|
|||
|| ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_PCENGINE_SGX)
|
||||
|| ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_SEGA_SG1000)
|
||||
|| ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_COLECO)
|
||||
|| ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_SEGA_MASTER_SYSTEM)
|
||||
) && (bType == DAT_ARCADE_ONLY)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -179,6 +182,10 @@ INT32 write_datfile(INT32 bType, FILE* fDat)
|
|||
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) != HARDWARE_COLECO) && (bType == DAT_COLECO_ONLY)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) != HARDWARE_SEGA_MASTER_SYSTEM) && (bType == DAT_MASTERSYSTEM_ONLY)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
strcpy(sgName, BurnDrvGetTextA(DRV_NAME));
|
||||
strcpy(spName, ""); // make sure this string is empty before we start
|
||||
|
@ -238,6 +245,7 @@ INT32 write_datfile(INT32 bType, FILE* fDat)
|
|||
remove_driver_leader(HARDWARE_SEGA_SG1000, 5, 1)
|
||||
remove_driver_leader(HARDWARE_PCENGINE_PCENGINE, 4, 1)
|
||||
remove_driver_leader(HARDWARE_PCENGINE_SGX, 4, 1)
|
||||
remove_driver_leader(HARDWARE_SEGA_MASTER_SYSTEM, 4, 1)
|
||||
|
||||
// Report problems
|
||||
if (nParentSelect==-1U)
|
||||
|
@ -483,6 +491,7 @@ INT32 write_datfile(INT32 bType, FILE* fDat)
|
|||
|| ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_PCENGINE_SGX)
|
||||
|| ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_SEGA_SG1000)
|
||||
|| ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_COLECO)
|
||||
|| ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_SEGA_MASTER_SYSTEM)
|
||||
) && (bType == DAT_ARCADE_ONLY)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -511,6 +520,10 @@ INT32 write_datfile(INT32 bType, FILE* fDat)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) != HARDWARE_SEGA_MASTER_SYSTEM) && (bType == DAT_MASTERSYSTEM_ONLY)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
strcpy(sgName, BurnDrvGetTextA(DRV_NAME));
|
||||
|
||||
remove_driver_leader(HARDWARE_SEGA_MEGADRIVE, 3, 0)
|
||||
|
@ -519,6 +532,7 @@ INT32 write_datfile(INT32 bType, FILE* fDat)
|
|||
remove_driver_leader(HARDWARE_SEGA_SG1000, 5, 0)
|
||||
remove_driver_leader(HARDWARE_PCENGINE_PCENGINE, 4, 0)
|
||||
remove_driver_leader(HARDWARE_PCENGINE_SGX, 4, 0)
|
||||
remove_driver_leader(HARDWARE_SEGA_MASTER_SYSTEM, 4, 0)
|
||||
|
||||
fprintf(fDat, "\t<game isbios=\"yes\" name=\"%s\">\n", sgName);
|
||||
fprintf(fDat, "\t\t<description>%s</description>\n", DecorateGameName(nBurnDrvActive));
|
||||
|
|
|
@ -979,6 +979,7 @@ BEGIN
|
|||
MENUITEM "Generate dat (SuprGrafx only)...", MENU_CLRMAME_PRO_XML_SGX_ONLY
|
||||
MENUITEM "Generate dat (Sega SG-1000 only)...", MENU_CLRMAME_PRO_XML_SG1000_ONLY
|
||||
MENUITEM "Generate dat (ColecoVision only)...", MENU_CLRMAME_PRO_XML_COLECO_ONLY
|
||||
MENUITEM "Generate dat (Master System only)...", MENU_CLRMAME_PRO_XML_SMS_ONLY
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Configure ROM paths...", MENU_ROMDIRS
|
||||
|
|
|
@ -727,6 +727,11 @@ int ProcessCmdLine()
|
|||
return 1;
|
||||
}
|
||||
|
||||
if (_tcscmp(szName, _T("-listinfosmsonly")) == 0) {
|
||||
write_datfile(DAT_MASTERSYSTEM_ONLY, stdout);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (_tcscmp(szName, _T("-listextrainfo")) == 0) {
|
||||
int nWidth;
|
||||
int nHeight;
|
||||
|
@ -811,7 +816,7 @@ int ProcessCmdLine()
|
|||
|
||||
static void CreateSupportFolders()
|
||||
{
|
||||
TCHAR szSupportDirs[29][MAX_PATH] = {
|
||||
TCHAR szSupportDirs[30][MAX_PATH] = {
|
||||
{_T("support/")},
|
||||
{_T("support/previews/")},
|
||||
{_T("support/titles/")},
|
||||
|
@ -842,9 +847,10 @@ static void CreateSupportFolders()
|
|||
{_T("tg16/")},
|
||||
{_T("sg1000/")},
|
||||
{_T("coleco/")},
|
||||
{_T("sms/")},
|
||||
};
|
||||
|
||||
for(int x = 0; x < 29; x++) {
|
||||
for(int x = 0; x < 30; x++) {
|
||||
CreateDirectory(szSupportDirs[x], NULL);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -614,6 +614,7 @@
|
|||
#define MENU_CLRMAME_PRO_XML_COLECO_ONLY 10718
|
||||
#define MENU_CREATEDIRS 10719
|
||||
#define MENU_USEBLEND 10720
|
||||
#define MENU_CLRMAME_PRO_XML_SMS_ONLY 10721
|
||||
|
||||
#define MENU_BASIC_NORMAL 11001
|
||||
#define MENU_BASIC_SCAN 11002
|
||||
|
|
|
@ -298,6 +298,7 @@ int CreateDatfileWindows(int bType)
|
|||
if (bType == DAT_SGX_ONLY) _sntprintf(szConsoleString, 64, _T(", SuprGrafx only"));
|
||||
if (bType == DAT_SG1000_ONLY) _sntprintf(szConsoleString, 64, _T(", Sega SG-1000 only"));
|
||||
if (bType == DAT_COLECO_ONLY) _sntprintf(szConsoleString, 64, _T(", ColecoVision only"));
|
||||
if (bType == DAT_MASTERSYSTEM_ONLY) _sntprintf(szConsoleString, 64, _T(", Master System only"));
|
||||
|
||||
TCHAR szProgramString[25];
|
||||
_sntprintf(szProgramString, 25, _T("ClrMame Pro XML"));
|
||||
|
@ -1990,6 +1991,12 @@ static void OnCommand(HWND /*hDlg*/, int id, HWND /*hwndCtl*/, UINT codeNotify)
|
|||
CreateDatfileWindows(DAT_COLECO_ONLY);
|
||||
}
|
||||
break;
|
||||
|
||||
case MENU_CLRMAME_PRO_XML_SMS_ONLY:
|
||||
if (UseDialogs()) {
|
||||
CreateDatfileWindows(DAT_MASTERSYSTEM_ONLY);
|
||||
}
|
||||
break;
|
||||
|
||||
case MENU_ENABLECHEAT:
|
||||
AudBlankSound();
|
||||
|
|
Loading…
Reference in New Issue