int StatedLoad(int nSlot) { TCHAR szFilter[1024]; int nRet; int bOldPause; if (nSlot) { CreateStateName(nSlot); } else { if (bDrvOkay) { _stprintf(szChoice, _T("%s*.fs"), BurnDrvGetText(DRV_NAME)); } else { _stprintf(szChoice, _T("savestate")); } MakeOfn(szFilter); ofn.lpstrTitle = FBALoadStringEx(hAppInst, IDS_STATE_LOAD, true); bOldPause = bRunPause; bRunPause = 1; nRet = GetOpenFileName(&ofn); bRunPause = bOldPause; if (nRet == 0) { // Error return 1; } } nRet = BurnStateLoad(szChoice, 1, &DrvInitCallback); if (nSlot) { return nRet; } // Describe any possible errors: if (nRet == 3) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_DISK_THIS_STATE)); FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_DISK_UNAVAIL)); } else { if (nRet == 4) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_DISK_THIS_STATE)); FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_DISK_TOOOLD), _T(APP_TITLE)); } else { if (nRet == 5) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_DISK_THIS_STATE)); FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_DISK_TOONEW), _T(APP_TITLE)); } else { if (nRet && !nSlot) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_DISK_LOAD)); FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_DISK_STATE)); } } } } if (nRet) { FBAPopupDisplay(PUF_TYPE_ERROR); } return nRet; }
int StatedLoad(int nSlot) { TCHAR szFilter[1024]; int nRet; int bOldPause; if (bDrvOkay == 0) { return 1; } if (nSlot) { CreateStateName(nSlot); } else { if (bDrvOkay) { _stprintf(szChoice, _T("GAME:\\savestates\\%S.fs"), BurnDrvGetText(DRV_NAME)); } else { _stprintf(szChoice, _T("savestate")); } StateMakeOfn(szFilter); bOldPause = bRunPause; bRunPause = 1; bRunPause = bOldPause; } nRet = BurnStateLoad(szChoice, 1, &DrvInitCallback); if (nSlot) { return nRet; } // Describe any possible errors: if (nRet == 3) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_DISK_THIS_STATE)); FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_DISK_UNAVAIL)); } else { if (nRet == 4) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_DISK_THIS_STATE)); FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_DISK_TOOOLD), _T(APP_TITLE)); } else { if (nRet == 5) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_DISK_THIS_STATE)); FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_DISK_TOONEW), _T(APP_TITLE)); } else { if (nRet && !nSlot) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_DISK_LOAD)); FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_DISK_STATE)); } } } } if (nRet) { FBAPopupDisplay(PUF_TYPE_ERROR); } return nRet; }
// The automatic save int StatedAuto(int bSave) { static TCHAR szName[32] = _T(""); int nRet; _stprintf(szName, _T("config/games/%s.fs"), BurnDrvGetText(DRV_NAME)); if (bSave == 0) { nRet = BurnStateLoad(szName, bDrvSaveAll, NULL); // Load ram if (nRet && bDrvSaveAll) { nRet = BurnStateLoad(szName, 0, NULL); // Couldn't get all - okay just try the nvram } } else { nRet = BurnStateSave(szName, bDrvSaveAll); // Save ram } return nRet; }
int StatedLoad(int nSlot) { int nRet; CreateStateName(nSlot); nRet = BurnStateLoad(szChoice, 1, &DrvInitCallback); return nRet; }
// The automatic save int StatedAuto(int bSave) { #if 0 static TCHAR szName[MAX_PATH] = _T(""); int nRet; _stprintf(szName, _T("GAME:\\config\\games\\%S.fs"), BurnDrvGetText(DRV_NAME)); if (bSave == 0) { nRet = BurnStateLoad(szName, bDrvSaveAll, NULL); // Load ram if (nRet && bDrvSaveAll) { nRet = BurnStateLoad(szName, 0, NULL); // Couldn't get all - okay just try the nvram } } else { nRet = BurnStateSave(szName, bDrvSaveAll); // Save ram } return nRet; #endif return 0; }
// The automatic save int StatedAuto(int bSave) { static TCHAR szName[512] = ""; int nRet; sprintf(szName, "%s/states/%s.fs", getDataPath(), BurnDrvGetText(DRV_NAME)); if (bSave == 0) { nRet = BurnStateLoad(szName, bDrvSaveAll, NULL); // Load ram if (nRet && bDrvSaveAll) { nRet = BurnStateLoad(szName, 0, NULL); // Couldn't get all - okay just try the nvram } } else { nRet = BurnStateSave(szName, bDrvSaveAll); // Save ram } return nRet; }
int ProcessCmdLine() { unsigned int i; int nOptX = 0, nOptY = 0, nOptD = 0; int nOpt1Size; TCHAR szOpt2[64] = _T(""); TCHAR szName[MAX_PATH]; if (szCmdLine[0] == _T('\"')) { int nLen = _tcslen(szCmdLine); nOpt1Size = 1; while (szCmdLine[nOpt1Size] != _T('\"') && nOpt1Size < nLen) { nOpt1Size++; } if (nOpt1Size == nLen) { szName[0] = 0; } else { nOpt1Size++; _tcsncpy(szName, szCmdLine + 1, nOpt1Size - 2); szName[nOpt1Size - 2] = 0; } } else { int nLen = _tcslen(szCmdLine); nOpt1Size = 0; while (szCmdLine[nOpt1Size] != _T(' ') && nOpt1Size < nLen) { nOpt1Size++; } _tcsncpy(szName, szCmdLine, nOpt1Size); szName[nOpt1Size] = 0; } if (_tcslen(szName)) { if (_tcscmp(szName, _T("-listinfo")) == 0) { write_datfile(0, stdout); return 1; } } _stscanf(&szCmdLine[nOpt1Size], _T("%64s %i x %i x %i"), szOpt2, &nOptX, &nOptY, &nOptD); if (_tcslen(szName)) { bool bFullscreen = 1; bCmdOptUsed = 1; if (_tcscmp(szOpt2, _T("-r")) == 0) { if (nOptX && nOptY) { nVidWidth = nOptX; nVidHeight = nOptY; } if (nOptD) { nVidDepth = nOptD; } } else if (_tcscmp(szOpt2, _T("-a")) == 0) { bVidArcaderes = 1; } else if (_tcscmp(szOpt2, _T("-w")) == 0) { bCmdOptUsed = 0; bFullscreen = 0; } else if (_tcsncmp(szOpt2, _T("-e"), 2) == 0) { bCmdOptUsed = 0; bFullscreen = 0; bHideLoadProgress = 1; nVidEmbeddedWindow = strtol(szOpt2 + 2, NULL, 16); /* Not unicode clean. =( */ if (!IsWindow((HWND)nVidEmbeddedWindow)) { nVidEmbeddedWindow = NULL; bFullscreen = 0; } } if (bFullscreen) { nVidFullscreen = 1; } if (_tcscmp(&szName[_tcslen(szName) - 3], _T(".fs")) == 0) { if (BurnStateLoad(szName, 1, &DrvInitCallback)) { return 1; } else { // bRunPause = 1; } } else { if (_tcscmp(&szName[_tcslen(szName) - 3], _T(".fr")) == 0) { if (StartReplay(szName)) { return 1; } } else if (_tcsncmp(szName, _T("quark:"), 6) == 0) { QuarkInit(szName); } else { for (i = 0; i < nBurnDrvCount; i++) { nBurnDrvSelect = i; if (_tcscmp(BurnDrvGetText(DRV_NAME), szName) == 0) { MediaInit(); DrvInit(i, true); break; } } if (i == nBurnDrvCount) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_UI_NOSUPPORT), szName, _T(APP_TITLE)); FBAPopupDisplay(PUF_TYPE_ERROR); return 1; } } } } POST_INITIALISE_MESSAGE; if (!nVidFullscreen) { MenuEnableItems(); } return 0; }
int ProcessCmdLine() { unsigned int i; int nOptX = 0, nOptY = 0, nOptD = 0; int nOpt1Size; TCHAR szOpt2[3] = _T(""); TCHAR szName[MAX_PATH]; if (szCmdLine[0] == _T('\"')) { int nLen = _tcslen(szCmdLine); nOpt1Size = 1; while (szCmdLine[nOpt1Size] != _T('\"') && nOpt1Size < nLen) { nOpt1Size++; } if (nOpt1Size == nLen) { szName[0] = 0; } else { nOpt1Size++; _tcsncpy(szName, szCmdLine + 1, nOpt1Size - 2); szName[nOpt1Size - 2] = 0; } } else { int nLen = _tcslen(szCmdLine); nOpt1Size = 0; while (szCmdLine[nOpt1Size] != _T(' ') && nOpt1Size < nLen) { nOpt1Size++; } _tcsncpy(szName, szCmdLine, nOpt1Size); szName[nOpt1Size] = 0; } if (_tcslen(szName)) { if (_tcscmp(szName, _T("-listinfo")) == 0) { write_datfile(0, 0, stdout); return 1; } if (_tcscmp(szName, _T("-listinfowithmd")) == 0) { write_datfile(0, 1, stdout); return 1; } if (_tcscmp(szName, _T("-listinfomdonly")) == 0) { write_datfile(0, 2, stdout); return 1; } if (_tcscmp(szName, _T("-listextrainfo")) == 0) { int nWidth; int nHeight; int nAspectX; int nAspectY; for (i = 0; i < nBurnDrvCount; i++) { nBurnDrvSelect = i; BurnDrvGetVisibleSize(&nWidth, &nHeight); BurnDrvGetAspect(&nAspectX, &nAspectY); printf("%s\t%ix%i\t%i:%i\t0x%08X\t\"%s\"\t%i\t%i\t%x\t%x\t\"%s\"\n", BurnDrvGetTextA(DRV_NAME), nWidth, nHeight, nAspectX, nAspectY, BurnDrvGetHardwareCode(), BurnDrvGetTextA(DRV_SYSTEM), BurnDrvIsWorking(), BurnDrvGetMaxPlayers(), BurnDrvGetGenreFlags(), BurnDrvGetFamilyFlags(), BurnDrvGetTextA(DRV_COMMENT)); } return 1; } } _stscanf(&szCmdLine[nOpt1Size], _T("%2s %i x %i x %i"), szOpt2, &nOptX, &nOptY, &nOptD); if (_tcslen(szName)) { bool bFullscreen = 1; bCmdOptUsed = 1; if (_tcscmp(szOpt2, _T("-r")) == 0) { if (nOptX && nOptY) { nVidWidth = nOptX; nVidHeight = nOptY; } if (nOptD) { nVidDepth = nOptD; } } else { if (_tcscmp(szOpt2, _T("-a")) == 0) { bVidArcaderes = 1; } else { if (_tcscmp(szOpt2, _T("-w")) == 0) { bCmdOptUsed = 0; bFullscreen = 0; } } } if (bFullscreen) { nVidFullscreen = 1; } if (_tcscmp(&szName[_tcslen(szName) - 3], _T(".fs")) == 0) { if (BurnStateLoad(szName, 1, &DrvInitCallback)) { return 1; } else { // bRunPause = 1; } } else { if (_tcscmp(&szName[_tcslen(szName) - 3], _T(".fr")) == 0) { if (StartReplay(szName)) { return 1; } } else { for (i = 0; i < nBurnDrvCount; i++) { nBurnDrvSelect = i; if (_tcscmp(BurnDrvGetText(DRV_NAME), szName) == 0) { MediaInit(); DrvInit(i, true); break; } } if (i == nBurnDrvCount) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_UI_NOSUPPORT), szName, _T(APP_TITLE)); FBAPopupDisplay(PUF_TYPE_ERROR); return 1; } } } } POST_INITIALISE_MESSAGE; if (!nVidFullscreen) { MenuEnableItems(); } return 0; }