I forgot to add PCE support to dat.cpp!

This commit is contained in:
Barry Harris 2012-01-22 11:05:00 +00:00
parent d9c9b01360
commit 1e4ae98083
5 changed files with 112 additions and 25 deletions

View File

@ -133,8 +133,13 @@ TCHAR* DecorateGenreInfo();
void ComputeGammaLUT();
// dat.cpp
INT32 write_datfile(INT32 bIncMegadrive, FILE* fDat);
INT32 create_datfile(TCHAR* szFilename, INT32 bIncMegadrive);
#define DAT_ARCADE_ONLY 0
#define DAT_MEGADRIVE_ONLY 1
#define DAT_PCENGINE_ONLY 2
#define DAT_TG16_ONLY 3
#define DAT_SGX_ONLY 4
INT32 write_datfile(INT32 bType, FILE* fDat);
INT32 create_datfile(TCHAR* szFilename, INT32 bType);
// sshot.cpp
INT32 MakeScreenShot();

View File

@ -59,7 +59,7 @@ static void ReplaceGreaterThan(char *szBuffer, char *szGameName)
}
}
INT32 write_datfile(INT32 bIncMegadrive, FILE* fDat)
INT32 write_datfile(INT32 bType, FILE* fDat)
{
INT32 nRet=0;
UINT32 nOldSelect=0;
@ -84,11 +84,27 @@ INT32 write_datfile(INT32 bIncMegadrive, FILE* fDat)
continue;
}
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_SEGA_MEGADRIVE) && (bIncMegadrive == 0)) {
if ((((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_SEGA_MEGADRIVE)
|| ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_PCENGINE_PCENGINE)
|| ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_PCENGINE_TG16)
|| ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_PCENGINE_SGX)
) && (bType == DAT_ARCADE_ONLY)) {
continue;
}
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) != HARDWARE_SEGA_MEGADRIVE) && (bIncMegadrive == 2)) {
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) != HARDWARE_SEGA_MEGADRIVE) && (bType == DAT_MEGADRIVE_ONLY)) {
continue;
}
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) != HARDWARE_PCENGINE_PCENGINE) && (bType == DAT_PCENGINE_ONLY)) {
continue;
}
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) != HARDWARE_PCENGINE_TG16) && (bType == DAT_TG16_ONLY)) {
continue;
}
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) != HARDWARE_PCENGINE_SGX) && (bType == DAT_SGX_ONLY)) {
continue;
}
@ -144,8 +160,10 @@ INT32 write_datfile(INT32 bIncMegadrive, FILE* fDat)
strcpy(ssName, BurnDrvGetTextA(DRV_SAMPLENAME));
}
if ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_SEGA_MEGADRIVE) {
// remove the md_
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_SEGA_MEGADRIVE)
|| ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_PCENGINE_TG16)
) {
// remove the md_ or tg_
char Temp[35];
INT32 Length;
if (sgName[0]) {
@ -167,6 +185,32 @@ INT32 write_datfile(INT32 bIncMegadrive, FILE* fDat)
}
}
}
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_PCENGINE_PCENGINE)
|| ((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_PCENGINE_SGX)
) {
// remove the pce__ or sgx__
char Temp[36];
INT32 Length;
if (sgName[0]) {
Length = strlen(sgName);
memset(Temp, 0, 36);
strcpy(Temp, sgName);
memset(sgName, 0, 32);
for (INT32 pos = 0; pos < Length; pos++) {
sgName[pos] = Temp[pos + 4];
}
}
if (spName[0]) {
Length = strlen(spName);
memset(Temp, 0, 36);
strcpy(Temp, spName);
memset(spName, 0, 32);
for (INT32 pos = 0; pos < Length; pos++) {
spName[pos] = Temp[pos + 4];
}
}
}
// Report problems
if (nParentSelect==-1U)
@ -403,7 +447,19 @@ INT32 write_datfile(INT32 bIncMegadrive, FILE* fDat)
continue;
}
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) != HARDWARE_SEGA_MEGADRIVE) && (bIncMegadrive == 2)) {
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) != HARDWARE_SEGA_MEGADRIVE) && (bType == DAT_MEGADRIVE_ONLY)) {
continue;
}
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) != HARDWARE_PCENGINE_PCENGINE) && (bType == DAT_PCENGINE_ONLY)) {
continue;
}
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) != HARDWARE_PCENGINE_TG16) && (bType == DAT_TG16_ONLY)) {
continue;
}
if (((BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) != HARDWARE_PCENGINE_SGX) && (bType == DAT_SGX_ONLY)) {
continue;
}
@ -462,7 +518,7 @@ INT32 write_datfile(INT32 bIncMegadrive, FILE* fDat)
return 0;
}
INT32 create_datfile(TCHAR* szFilename, INT32 bIncMegadrive)
INT32 create_datfile(TCHAR* szFilename, INT32 bType)
{
FILE *fDat=0;
INT32 nRet=0;
@ -475,11 +531,11 @@ INT32 create_datfile(TCHAR* szFilename, INT32 bIncMegadrive)
fprintf(fDat, "<datafile>\n");
fprintf(fDat, "\t<header>\n");
fprintf(fDat, "\t\t<name>" APP_TITLE "</name>\n");
if (bIncMegadrive) {
_ftprintf(fDat, _T("\t\t<description>") _T(APP_TITLE) _T(" v%s") _T(" Megadrive Games</description>\n"), szAppBurnVer);
} else {
_ftprintf(fDat, _T("\t\t<description>") _T(APP_TITLE) _T(" v%s") _T(" Arcade Games</description>\n"), szAppBurnVer);
}
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);
if (bType == DAT_PCENGINE_ONLY) _ftprintf(fDat, _T("\t\t<description>") _T(APP_TITLE) _T(" v%s") _T(" PC-Engine Games</description>\n"), szAppBurnVer);
if (bType == DAT_TG16_ONLY) _ftprintf(fDat, _T("\t\t<description>") _T(APP_TITLE) _T(" v%s") _T(" TurboGrafx 16 Games</description>\n"), szAppBurnVer);
if (bType == DAT_SGX_ONLY) _ftprintf(fDat, _T("\t\t<description>") _T(APP_TITLE) _T(" v%s") _T(" SuprGrafx 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");
@ -488,7 +544,7 @@ INT32 create_datfile(TCHAR* szFilename, INT32 bIncMegadrive)
fprintf(fDat, "\t\t<clrmamepro forcenodump=\"ignore\"/>\n");
fprintf(fDat, "\t</header>\n");
nRet = write_datfile(bIncMegadrive, fDat);
nRet = write_datfile(bType, fDat);
fclose(fDat);

View File

@ -915,8 +915,11 @@ BEGIN
MENUITEM SEPARATOR
POPUP "Generate dat file"
BEGIN
MENUITEM "Generate dat (Arcade only)...", MENU_CLRMAME_PRO_XML
MENUITEM "Generate dat (Arcade only)...", MENU_CLRMAME_PRO_XML
MENUITEM "Generate dat (Megadrive only)...", MENU_CLRMAME_PRO_XML_MD_ONLY
MENUITEM "Generate dat (PC-Engine only)...", MENU_CLRMAME_PRO_XML_PCE_ONLY
MENUITEM "Generate dat (TurboGrafx16 only)...", MENU_CLRMAME_PRO_XML_TG16_ONLY
MENUITEM "Generate dat (SuprGrafx only)...", MENU_CLRMAME_PRO_XML_SGX_ONLY
END
MENUITEM SEPARATOR
MENUITEM "Configure ROM paths...", MENU_ROMDIRS

View File

@ -568,6 +568,9 @@
#define MENU_START_NEOGEO_MVS 10711
#define MENU_START_NEOGEO_CD 10712
#define MENU_LOAD_NEOCD 10713
#define MENU_CLRMAME_PRO_XML_PCE_ONLY 10714
#define MENU_CLRMAME_PRO_XML_TG16_ONLY 10715
#define MENU_CLRMAME_PRO_XML_SGX_ONLY 10716
#define MENU_BASIC_NORMAL 11001
#define MENU_BASIC_SCAN 11002

View File

@ -282,20 +282,22 @@ static void DoNetGame()
POST_INITIALISE_MESSAGE;
}
int CreateDatfileWindows(int bIncMegadrive)
int CreateDatfileWindows(int bType)
{
TCHAR szTitle[1024];
TCHAR szFilter[1024];
TCHAR szMegadriveString[25];
_sntprintf(szMegadriveString, 25, _T(""));
if (bIncMegadrive == 1) _sntprintf(szMegadriveString, 25, _T(", including Megadrive"));
if (bIncMegadrive == 2) _sntprintf(szMegadriveString, 25, _T(", Megadrive only"));
TCHAR szConsoleString[64];
_sntprintf(szConsoleString, 64, _T(""));
if (bType == DAT_MEGADRIVE_ONLY) _sntprintf(szConsoleString, 64, _T(", Megadrive only"));
if (bType == DAT_PCENGINE_ONLY) _sntprintf(szConsoleString, 64, _T(", PC-Engine only"));
if (bType == DAT_TG16_ONLY) _sntprintf(szConsoleString, 64, _T(", TurboGrafx16 only"));
if (bType == DAT_SGX_ONLY) _sntprintf(szConsoleString, 64, _T(", SuprGfrax only"));
TCHAR szProgramString[25];
_sntprintf(szProgramString, 25, _T("ClrMame Pro XML"));
_sntprintf(szChoice, MAX_PATH, _T(APP_TITLE) _T(" v%.20s (%s%s).dat"), szAppBurnVer, szProgramString, szMegadriveString);
_sntprintf(szChoice, MAX_PATH, _T(APP_TITLE) _T(" v%.20s (%s%s).dat"), szAppBurnVer, szProgramString, szConsoleString);
_sntprintf(szTitle, 256, FBALoadStringEx(hAppInst, IDS_DAT_GENERATE, true), szProgramString);
_stprintf(szFilter, FBALoadStringEx(hAppInst, IDS_DISK_ALL_DAT, true), _T(APP_TITLE));
@ -316,7 +318,7 @@ int CreateDatfileWindows(int bIncMegadrive)
if (GetSaveFileName(&ofn) == 0)
return -1;
return create_datfile(szChoice, bIncMegadrive);
return create_datfile(szChoice, bType);
}
// Returns true if a VidInit is needed when the window is resized
@ -1878,13 +1880,31 @@ static void OnCommand(HWND /*hDlg*/, int id, HWND /*hwndCtl*/, UINT codeNotify)
case MENU_CLRMAME_PRO_XML:
if (UseDialogs()) {
CreateDatfileWindows(0);
CreateDatfileWindows(DAT_ARCADE_ONLY);
}
break;
case MENU_CLRMAME_PRO_XML_MD_ONLY:
if (UseDialogs()) {
CreateDatfileWindows(2);
CreateDatfileWindows(DAT_MEGADRIVE_ONLY);
}
break;
case MENU_CLRMAME_PRO_XML_PCE_ONLY:
if (UseDialogs()) {
CreateDatfileWindows(DAT_PCENGINE_ONLY);
}
break;
case MENU_CLRMAME_PRO_XML_TG16_ONLY:
if (UseDialogs()) {
CreateDatfileWindows(DAT_TG16_ONLY);
}
break;
case MENU_CLRMAME_PRO_XML_SGX_ONLY:
if (UseDialogs()) {
CreateDatfileWindows(DAT_SGX_ONLY);
}
break;