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();