Exemple #1
0
char *InpDIPSWGetCurrentValue(int dip_index,int *dip_current_value) {
	BurnDIPInfo bdi;
	unsigned int i = 0, j = 0, k = 0, dip_ofs=0;
	char* pDIPGroup = NULL;
	while (BurnDrvGetDIPInfo(&bdi, i) == 0) {
		if ((bdi.nFlags & 0xF0) == 0xF0) {
		   	if (bdi.nFlags == 0xFE || bdi.nFlags == 0xFD) {
				pDIPGroup = bdi.szText;
				k++;
                dip_ofs=i;
			}
			i++;
		} else {
			if (CheckSetting(i)) {                
                if (k==(dip_index+1)) {
                    if (dip_current_value) *dip_current_value=i-dip_ofs-1;
                    return bdi.szText;
                }
				j++;
			}
			i += (bdi.nFlags & 0x0F);
		}
	}
	return NULL;
}
Exemple #2
0
void Compatibility::CheckSettings(IniFile &iniFile, const std::string &gameID) {
	CheckSetting(iniFile, gameID, "VertexDepthRounding", &flags_.VertexDepthRounding);
	CheckSetting(iniFile, gameID, "PixelDepthRounding", &flags_.PixelDepthRounding);
	CheckSetting(iniFile, gameID, "DepthRangeHack", &flags_.DepthRangeHack);
	CheckSetting(iniFile, gameID, "ClearToRAM", &flags_.ClearToRAM);
	CheckSetting(iniFile, gameID, "Force04154000Download", &flags_.Force04154000Download);
	CheckSetting(iniFile, gameID, "DrawSyncEatCycles", &flags_.DrawSyncEatCycles);
	CheckSetting(iniFile, gameID, "FakeMipmapChange", &flags_.FakeMipmapChange);
}
Exemple #3
0
int InpDIPSWGetNb() {
    BurnDIPInfo bdi;
	unsigned int i = 0, j = 0, k = 0;
	char* pDIPGroup = NULL;
	while (BurnDrvGetDIPInfo(&bdi, i) == 0) {
		if ((bdi.nFlags & 0xF0) == 0xF0) {
		   	if (bdi.nFlags == 0xFE || bdi.nFlags == 0xFD) {
				pDIPGroup = bdi.szText;
				k = i;
			}
			i++;
		} else {
			if (CheckSetting(i)) {                
				j++;
			}
			i += (bdi.nFlags & 0x0F);
		}
	}
    return j;
}
Exemple #4
0
char *InpDIPSWGetDIPName(int dip_index) {
	BurnDIPInfo bdi;
	unsigned int i = 0, j = 0, k = 0;
	while (BurnDrvGetDIPInfo(&bdi, i) == 0) {
		if ((bdi.nFlags & 0xF0) == 0xF0) {
		   	if (bdi.nFlags == 0xFE || bdi.nFlags == 0xFD) {

                if (k==dip_index) return bdi.szText;
				k++;
			}
			i++;
		} else {
			if (CheckSetting(i)) {                
				j++;
			}
			i += (bdi.nFlags & 0x0F);
		}
	}
	return NULL;
}
Exemple #5
0
// Create the list of possible values for a DIPswitch
static void InpDIPSWSelect()
{
	SendMessage(GetDlgItem(hInpDIPSWDlg, IDC_INPCX1_VALUE), CB_RESETCONTENT, 0, 0);

	int nSel = SendMessage(hInpDIPSWList, LVM_GETNEXTITEM, (WPARAM)-1, LVNI_SELECTED);
	if (nSel >= 0) {
		LVITEM LvItem;
		memset(&LvItem, 0, sizeof(LvItem));
		LvItem.mask = LVIF_PARAM;
		LvItem.iItem = nSel;
		SendMessage(hInpDIPSWList, LVM_GETITEM, 0, (LPARAM)&LvItem);

		nDIPGroup = LvItem.lParam;

		BurnDIPInfo bdiGroup;
		BurnDrvGetDIPInfo(&bdiGroup, nDIPGroup);

		int nCurrentSetting = 0;
		for (int i = 0, j = 0; i < bdiGroup.nSetting; i++) {
			TCHAR szText[256];
			BurnDIPInfo bdi;

			do {
				BurnDrvGetDIPInfo(&bdi, nDIPGroup + 1 + j++);
			} while (bdi.nFlags == 0);

			if (bdiGroup.szText) {
				_stprintf(szText, _T("%hs: %hs"), bdiGroup.szText, bdi.szText);
			} else {
				_stprintf(szText, _T("%hs"), bdi.szText);
			}
			SendMessage(GetDlgItem(hInpDIPSWDlg, IDC_INPCX1_VALUE), CB_ADDSTRING, 0, (LPARAM)szText);

			if (CheckSetting(nDIPGroup + j)) {
				nCurrentSetting = i;
			}
		}
		SendMessage(GetDlgItem(hInpDIPSWDlg, IDC_INPCX1_VALUE), CB_SETCURSEL, (WPARAM)nCurrentSetting, 0);
	}
}
Exemple #6
0
// Make a list view of the DIPswitches
static int InpDIPSWListMake()
{
	if (hInpDIPSWList == NULL) {
		return 1;
	}
	SendMessage(hInpDIPSWList, LVM_DELETEALLITEMS, 0, 0);

	BurnDIPInfo bdi;
	unsigned int i = 0, j = 0, k = 0;
	char* pDIPGroup = NULL;
	while (BurnDrvGetDIPInfo(&bdi, i) == 0) {
		if ((bdi.nFlags & 0xF0) == 0xF0) {
		   	if (bdi.nFlags == 0xFE || bdi.nFlags == 0xFD) {
				pDIPGroup = bdi.szText;
				k = i;
			}
			i++;
		} else {
			if (CheckSetting(i)) {
				LVITEM LvItem;
				memset(&LvItem, 0, sizeof(LvItem));
				LvItem.mask = LVIF_TEXT | LVIF_PARAM;
				LvItem.iItem = j;
				LvItem.iSubItem = 0;
				LvItem.pszText = ANSIToTCHAR(pDIPGroup, NULL, 0);
				LvItem.lParam = (LPARAM)k;
				SendMessage(hInpDIPSWList, LVM_INSERTITEM, 0, (LPARAM)&LvItem);
				LvItem.mask = LVIF_TEXT;
				LvItem.iSubItem = 1;
				LvItem.pszText = ANSIToTCHAR(bdi.szText, NULL, 0);
				SendMessage(hInpDIPSWList, LVM_SETITEM, 0, (LPARAM)&LvItem);
				j++;
			}
			i += (bdi.nFlags & 0x0F);
		}
	}

	return 0;
}