diff --git a/src/burner/burner.h b/src/burner/burner.h
index 2fd5500b3..05204da83 100644
--- a/src/burner/burner.h
+++ b/src/burner/burner.h
@@ -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);
diff --git a/src/burner/dat.cpp b/src/burner/dat.cpp
index c040229c6..b89a04866 100644
--- a/src/burner/dat.cpp
+++ b/src/burner/dat.cpp
@@ -112,6 +112,7 @@ INT32 write_datfile(INT32 bType, FILE* fDat)
if (bType == DAT_SGX_ONLY) fprintf(fDat, "\t\t" APP_TITLE " - SuprGrafx Games\n");
if (bType == DAT_SG1000_ONLY) fprintf(fDat, "\t\t" APP_TITLE " - Sega SG-1000 Games\n");
if (bType == DAT_COLECO_ONLY) fprintf(fDat, "\t\t" APP_TITLE " - ColecoVision Games\n");
+ if (bType == DAT_MASTERSYSTEM_ONLY) fprintf(fDat, "\t\t" APP_TITLE " - Master System Games\n");
if (bType == DAT_ARCADE_ONLY) _ftprintf(fDat, _T("\t\t") _T(APP_TITLE) _T(" v%s") _T(" Arcade Games\n"), szAppBurnVer);
if (bType == DAT_MEGADRIVE_ONLY) _ftprintf(fDat, _T("\t\t") _T(APP_TITLE) _T(" v%s") _T(" Megadrive Games\n"), szAppBurnVer);
@@ -120,6 +121,7 @@ INT32 write_datfile(INT32 bType, FILE* fDat)
if (bType == DAT_SGX_ONLY) _ftprintf(fDat, _T("\t\t") _T(APP_TITLE) _T(" v%s") _T(" SuprGrafx Games\n"), szAppBurnVer);
if (bType == DAT_SG1000_ONLY) _ftprintf(fDat, _T("\t\t") _T(APP_TITLE) _T(" v%s") _T(" Sega SG-1000 Games\n"), szAppBurnVer);
if (bType == DAT_COLECO_ONLY) _ftprintf(fDat, _T("\t\t") _T(APP_TITLE) _T(" v%s") _T(" ColecoVision Games\n"), szAppBurnVer);
+ if (bType == DAT_MASTERSYSTEM_ONLY) _ftprintf(fDat, _T("\t\t") _T(APP_TITLE) _T(" v%s") _T(" Master System Games\n"), szAppBurnVer);
fprintf(fDat, "\t\tStandard DatFile\n");
_ftprintf(fDat, _T("\t\t%s\n"), szAppBurnVer);
fprintf(fDat, "\t\t" APP_TITLE "\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\n", sgName);
fprintf(fDat, "\t\t%s\n", DecorateGameName(nBurnDrvActive));
diff --git a/src/burner/win32/app.rc b/src/burner/win32/app.rc
index 65a65b22c..c80e6d659 100644
--- a/src/burner/win32/app.rc
+++ b/src/burner/win32/app.rc
@@ -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
diff --git a/src/burner/win32/main.cpp b/src/burner/win32/main.cpp
index 5a3fe8d80..36a481469 100644
--- a/src/burner/win32/main.cpp
+++ b/src/burner/win32/main.cpp
@@ -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);
}
}
diff --git a/src/burner/win32/resource.h b/src/burner/win32/resource.h
index 31a661e79..cf7a08406 100644
--- a/src/burner/win32/resource.h
+++ b/src/burner/win32/resource.h
@@ -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
diff --git a/src/burner/win32/scrn.cpp b/src/burner/win32/scrn.cpp
index 54ca08597..36059b12e 100644
--- a/src/burner/win32/scrn.cpp
+++ b/src/burner/win32/scrn.cpp
@@ -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();