+++ /dev/null
-/* Pcsx - Pc Psx Emulator\r
- * Copyright (C) 1999-2003 Pcsx Team\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307 USA\r
- */\r
-\r
-#include <windows.h>\r
-#include <windowsx.h>\r
-#include <stdio.h>\r
-#include "psxcommon.h"\r
-#include "plugin.h"\r
-#include "plugins.h"\r
-#include "resource.h"\r
-#include "Win32.h"\r
-\r
-#define QueryKeyV(name, var) \\r
- size = sizeof(DWORD); \\r
- if (RegQueryValueEx(myKey, name, 0, &type, (LPBYTE)&tmp, &size) != 0) { if (err) { RegCloseKey(myKey); return -1; } } \\r
- var = tmp;\r
-\r
-#define QueryKey(s, name, var) \\r
- size = s; \\r
- if (RegQueryValueEx(myKey, name, 0, &type, (LPBYTE)var, &size) != 0) { if (err) { RegCloseKey(myKey); return -1; } }\r
-\r
-#define SetKeyV(name, var) \\r
- tmp = var; \\r
- RegSetValueEx(myKey, name, 0, REG_DWORD, (LPBYTE)&tmp, sizeof(DWORD));\r
-\r
-#define SetKey(name, var, s, t) \\r
- RegSetValueEx(myKey, name, 0, t, (LPBYTE)var, s);\r
-\r
-int LoadConfig() {\r
- HKEY myKey;\r
- DWORD type, size, tmp;\r
- PcsxConfig *Conf = &Config;\r
- int err;\r
-#ifdef ENABLE_NLS\r
- char text[256];\r
-#endif\r
-\r
- if (RegOpenKeyEx(HKEY_CURRENT_USER,cfgfile,0,KEY_ALL_ACCESS,&myKey)!=ERROR_SUCCESS) return -1;\r
-\r
- err = 1;\r
- QueryKey(256, "Bios", Conf->Bios);\r
- QueryKey(256, "Gpu", Conf->Gpu);\r
- QueryKey(256, "Spu", Conf->Spu);\r
- QueryKey(256, "Cdr", Conf->Cdr);\r
- QueryKey(256, "Pad1", Conf->Pad1);\r
- QueryKey(256, "Pad2", Conf->Pad2);\r
- QueryKey(256, "Mcd1", Conf->Mcd1);\r
- QueryKey(256, "Mcd2", Conf->Mcd2);\r
- QueryKey(256, "PluginsDir", Conf->PluginsDir);\r
- QueryKey(256, "BiosDir", Conf->BiosDir);\r
- err = 0;\r
- QueryKey(256, "Net", Conf->Net);\r
- QueryKey(256, "Lang", Conf->Lang);\r
-\r
- QueryKeyV("Xa", Conf->Xa);\r
- QueryKeyV("Sio", Conf->Sio);\r
- QueryKeyV("Mdec", Conf->Mdec);\r
- QueryKeyV("PsxAuto", Conf->PsxAuto);\r
- QueryKeyV("Cdda", Conf->Cdda);\r
- QueryKeyV("Debug", Conf->Debug);\r
- QueryKeyV("PsxOut", Conf->PsxOut);\r
- QueryKeyV("SpuIrq", Conf->SpuIrq);\r
- QueryKeyV("RCntFix", Conf->RCntFix);\r
- QueryKeyV("VSyncWA", Conf->VSyncWA);\r
-\r
- QueryKeyV("Cpu", Conf->Cpu);\r
- QueryKeyV("PsxType", Conf->PsxType);\r
-\r
- if (Config.Cpu == CPU_DYNAREC) {\r
- Config.Debug = 0; // don't enable debugger if using dynarec core\r
- }\r
-\r
- RegCloseKey(myKey);\r
-\r
-#ifdef ENABLE_NLS\r
- sprintf(text, "LANGUAGE=%s", Conf->Lang);\r
- gettext_putenv(text);\r
-#endif\r
-\r
- return 0;\r
-}\r
-\r
-/////////////////////////////////////////////////////////\r
-\r
-void SaveConfig() {\r
- HKEY myKey;\r
- DWORD myDisp, tmp;\r
- PcsxConfig *Conf = &Config;\r
-\r
- RegCreateKeyEx(HKEY_CURRENT_USER, cfgfile, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &myKey, &myDisp);\r
-\r
- SetKey("Bios", Conf->Bios, strlen(Conf->Bios), REG_SZ);\r
- SetKey("Gpu", Conf->Gpu, strlen(Conf->Gpu), REG_SZ);\r
- SetKey("Spu", Conf->Spu, strlen(Conf->Spu), REG_SZ);\r
- SetKey("Cdr", Conf->Cdr, strlen(Conf->Cdr), REG_SZ);\r
- SetKey("Pad1", Conf->Pad1, strlen(Conf->Pad1), REG_SZ);\r
- SetKey("Pad2", Conf->Pad2, strlen(Conf->Pad2), REG_SZ);\r
- SetKey("Net", Conf->Net, strlen(Conf->Net), REG_SZ);\r
- SetKey("Mcd1", Conf->Mcd1, strlen(Conf->Mcd1), REG_SZ);\r
- SetKey("Mcd2", Conf->Mcd2, strlen(Conf->Mcd2), REG_SZ);\r
- SetKey("Lang", Conf->Lang, strlen(Conf->Lang), REG_SZ);\r
- SetKey("PluginsDir", Conf->PluginsDir, strlen(Conf->PluginsDir), REG_SZ);\r
- SetKey("BiosDir", Conf->BiosDir, strlen(Conf->BiosDir), REG_SZ);\r
-\r
- SetKeyV("Xa", Conf->Xa);\r
- SetKeyV("Sio", Conf->Sio);\r
- SetKeyV("Mdec", Conf->Mdec);\r
- SetKeyV("PsxAuto", Conf->PsxAuto);\r
- SetKeyV("Cdda", Conf->Cdda);\r
- SetKeyV("Debug", Conf->Debug);\r
- SetKeyV("PsxOut", Conf->PsxOut);\r
- SetKeyV("SpuIrq", Conf->SpuIrq);\r
- SetKeyV("RCntFix", Conf->RCntFix);\r
- SetKeyV("VSyncWA", Conf->VSyncWA);\r
-\r
- SetKeyV("Cpu", Conf->Cpu);\r
- SetKeyV("PsxType", Conf->PsxType);\r
-\r
- RegCloseKey(myKey);\r
-}\r
-\r
-/////////////////////////////////////////////////////////\r
-\r
-#define ComboAddPlugin(hw, str) { \\r
- lp = (char *)malloc(strlen(FindData.cFileName)+8); \\r
- sprintf(lp, "%s", FindData.cFileName); \\r
- i = ComboBox_AddString(hw, tmpStr); \\r
- ComboBox_SetItemData(hw, i, lp); \\r
- if (stricmp(str, lp)==0) \\r
- ComboBox_SetCurSel(hw, i); \\r
-}\r
-\r
-BOOL OnConfigurePluginsDialog(HWND hW) {\r
- WIN32_FIND_DATA FindData;\r
- HANDLE Find;\r
- HANDLE Lib;\r
- PSEgetLibType PSE_GetLibType;\r
- PSEgetLibName PSE_GetLibName;\r
- PSEgetLibVersion PSE_GetLibVersion;\r
- HWND hWC_GPU=GetDlgItem(hW,IDC_LISTGPU);\r
- HWND hWC_SPU=GetDlgItem(hW,IDC_LISTSPU);\r
- HWND hWC_CDR=GetDlgItem(hW,IDC_LISTCDR);\r
- HWND hWC_PAD1=GetDlgItem(hW,IDC_LISTPAD1);\r
- HWND hWC_PAD2=GetDlgItem(hW,IDC_LISTPAD2);\r
- HWND hWC_BIOS=GetDlgItem(hW,IDC_LISTBIOS);\r
- char tmpStr[256];\r
- char *lp;\r
- int i;\r
-\r
- strcpy(tmpStr, Config.PluginsDir);\r
- strcat(tmpStr, "*.dll");\r
- Find = FindFirstFile(tmpStr, &FindData);\r
-\r
- do {\r
- if (Find == INVALID_HANDLE_VALUE) break;\r
- sprintf(tmpStr,"%s%s", Config.PluginsDir, FindData.cFileName);\r
- Lib = LoadLibrary(tmpStr);\r
- if (Lib != NULL) {\r
- PSE_GetLibType = (PSEgetLibType) GetProcAddress((HMODULE)Lib,"PSEgetLibType");\r
- PSE_GetLibName = (PSEgetLibName) GetProcAddress((HMODULE)Lib,"PSEgetLibName");\r
- PSE_GetLibVersion = (PSEgetLibVersion) GetProcAddress((HMODULE)Lib,"PSEgetLibVersion");\r
-\r
- if (PSE_GetLibType != NULL && PSE_GetLibName != NULL && PSE_GetLibVersion != NULL) {\r
- unsigned long version = PSE_GetLibVersion();\r
- long type;\r
-\r
- sprintf(tmpStr, "%s %d.%d", PSE_GetLibName(), (int)(version>>8)&0xff, (int)version&0xff);\r
- type = PSE_GetLibType();\r
- if (type & PSE_LT_CDR) {\r
- ComboAddPlugin(hWC_CDR, Config.Cdr);\r
- }\r
-\r
- if (type & PSE_LT_SPU) {\r
- ComboAddPlugin(hWC_SPU, Config.Spu);\r
- }\r
-\r
- if (type & PSE_LT_GPU) {\r
- ComboAddPlugin(hWC_GPU, Config.Gpu);\r
- }\r
-\r
- if (type & PSE_LT_PAD) {\r
- PADquery query;\r
-\r
- query = (PADquery)GetProcAddress((HMODULE)Lib, "PADquery");\r
- if (query != NULL) {\r
- if (query() & 0x1)\r
- ComboAddPlugin(hWC_PAD1, Config.Pad1);\r
- if (query() & 0x2)\r
- ComboAddPlugin(hWC_PAD2, Config.Pad2);\r
- } else { // just a guess\r
- ComboAddPlugin(hWC_PAD1, Config.Pad1);\r
- }\r
- }\r
- }\r
- }\r
- } while (FindNextFile(Find,&FindData));\r
-\r
- if (Find != INVALID_HANDLE_VALUE) FindClose(Find);\r
-\r
-// BIOS\r
-\r
- lp = (char *)malloc(strlen("HLE") + 1);\r
- sprintf(lp, "HLE");\r
- i = ComboBox_AddString(hWC_BIOS, _("Simulate Psx Bios"));\r
- ComboBox_SetItemData(hWC_BIOS, i, lp);\r
- if (stricmp(Config.Bios, lp)==0)\r
- ComboBox_SetCurSel(hWC_BIOS, i);\r
-\r
- strcpy(tmpStr, Config.BiosDir);\r
- strcat(tmpStr, "*");\r
- Find=FindFirstFile(tmpStr, &FindData);\r
-\r
- do {\r
- if (Find==INVALID_HANDLE_VALUE) break;\r
- if (!strcmp(FindData.cFileName, ".")) continue;\r
- if (!strcmp(FindData.cFileName, "..")) continue;\r
- if (FindData.nFileSizeLow != 1024 * 512) continue;\r
- lp = (char *)malloc(strlen(FindData.cFileName)+8);\r
- sprintf(lp, "%s", (char *)FindData.cFileName);\r
- i = ComboBox_AddString(hWC_BIOS, FindData.cFileName);\r
- ComboBox_SetItemData(hWC_BIOS, i, lp);\r
- if (Config.Bios[0]=='\0') {\r
- ComboBox_SetCurSel(hWC_BIOS, i);\r
- strcpy(Config.Bios, FindData.cFileName);\r
- } else if (stricmp(Config.Bios, FindData.cFileName)==0)\r
- ComboBox_SetCurSel(hWC_BIOS, i);\r
- } while (FindNextFile(Find,&FindData));\r
-\r
- if (Find!=INVALID_HANDLE_VALUE) FindClose(Find);\r
-\r
- if (ComboBox_GetCurSel(hWC_CDR ) == -1)\r
- ComboBox_SetCurSel(hWC_CDR, 0);\r
- if (ComboBox_GetCurSel(hWC_GPU ) == -1)\r
- ComboBox_SetCurSel(hWC_GPU, 0);\r
- if (ComboBox_GetCurSel(hWC_SPU ) == -1)\r
- ComboBox_SetCurSel(hWC_SPU, 0);\r
- if (ComboBox_GetCurSel(hWC_PAD1) == -1)\r
- ComboBox_SetCurSel(hWC_PAD1, 0);\r
- if (ComboBox_GetCurSel(hWC_PAD2) == -1)\r
- ComboBox_SetCurSel(hWC_PAD2, 0);\r
- if (ComboBox_GetCurSel(hWC_BIOS) == -1)\r
- ComboBox_SetCurSel(hWC_BIOS, 0);\r
-\r
- return TRUE;\r
-}\r
- \r
-#define CleanCombo(item) \\r
- hWC = GetDlgItem(hW, item); \\r
- iCnt = ComboBox_GetCount(hWC); \\r
- for (i=0; i<iCnt; i++) { \\r
- lp = (char *)ComboBox_GetItemData(hWC, i); \\r
- if (lp) free(lp); \\r
- } \\r
- ComboBox_ResetContent(hWC);\r
-\r
-void CleanUpCombos(HWND hW) {\r
- int i,iCnt;HWND hWC;char * lp;\r
-\r
- CleanCombo(IDC_LISTGPU);\r
- CleanCombo(IDC_LISTSPU);\r
- CleanCombo(IDC_LISTCDR);\r
- CleanCombo(IDC_LISTPAD1);\r
- CleanCombo(IDC_LISTPAD2);\r
- CleanCombo(IDC_LISTBIOS);\r
-}\r
-\r
-void OnCancel(HWND hW) {\r
- CleanUpCombos(hW);\r
- EndDialog(hW,FALSE);\r
-}\r
-\r
-char *GetSelDLL(HWND hW,int id) {\r
- HWND hWC = GetDlgItem(hW,id);\r
- int iSel;\r
- iSel = ComboBox_GetCurSel(hWC);\r
- if (iSel<0) return NULL;\r
- return (char *)ComboBox_GetItemData(hWC, iSel);\r
-}\r
-\r
-void OnOK(HWND hW) {\r
- char *gpuDLL=GetSelDLL(hW,IDC_LISTGPU);\r
- char *spuDLL=GetSelDLL(hW,IDC_LISTSPU);\r
- char *cdrDLL=GetSelDLL(hW,IDC_LISTCDR);\r
- char *pad1DLL=GetSelDLL(hW,IDC_LISTPAD1);\r
- char *pad2DLL=GetSelDLL(hW,IDC_LISTPAD2);\r
- char *biosFILE=GetSelDLL(hW,IDC_LISTBIOS);\r
-\r
- if (gpuDLL == NULL || spuDLL == NULL || cdrDLL == NULL || pad1DLL == NULL ||\r
- pad2DLL == NULL || biosFILE == NULL) {\r
- MessageBox(hW, _("Configuration not OK!"), _("Error"), MB_OK | MB_ICONERROR);\r
- return;\r
- }\r
-\r
- strcpy(Config.Bios, biosFILE);\r
- strcpy(Config.Gpu, gpuDLL);\r
- strcpy(Config.Spu, spuDLL);\r
- strcpy(Config.Cdr, cdrDLL);\r
- strcpy(Config.Pad1, pad1DLL);\r
- strcpy(Config.Pad2, pad2DLL);\r
-\r
- SaveConfig();\r
-\r
- CleanUpCombos(hW);\r
-\r
- if (!ConfPlug) {\r
- LoadPlugins();\r
- }\r
- EndDialog(hW,TRUE);\r
-}\r
-\r
-\r
-#define ConfPlugin(src, confs, name) \\r
- void *drv; \\r
- src conf; \\r
- char * pDLL = GetSelDLL(hW, confs); \\r
- char file[256]; \\r
- if(pDLL==NULL) return; \\r
- strcpy(file, Config.PluginsDir); \\r
- strcat(file, pDLL); \\r
- drv = SysLoadLibrary(file); \\r
- if (drv == NULL) return; \\r
- conf = (src) SysLoadSym(drv, name); \\r
- if (SysLibError() == NULL) conf(); \\r
- SysCloseLibrary(drv);\r
-\r
-void ConfigureGPU(HWND hW) {\r
- ConfPlugin(GPUconfigure, IDC_LISTGPU, "GPUconfigure");\r
-}\r
-\r
-void ConfigureSPU(HWND hW) {\r
- ConfPlugin(SPUconfigure, IDC_LISTSPU, "SPUconfigure");\r
-}\r
-\r
-void ConfigureCDR(HWND hW) {\r
- ConfPlugin(CDRconfigure, IDC_LISTCDR, "CDRconfigure");\r
-}\r
-\r
-void ConfigureNET(HWND hW) {\r
- ConfPlugin(NETconfigure, IDC_LISTNET, "NETconfigure");\r
-}\r
-\r
-void ConfigurePAD1(HWND hW) {\r
- ConfPlugin(PADconfigure, IDC_LISTPAD1, "PADconfigure");\r
-}\r
-\r
-void ConfigurePAD2(HWND hW) {\r
- ConfPlugin(PADconfigure, IDC_LISTPAD2, "PADconfigure");\r
-}\r
-\r
-\r
-void AboutGPU(HWND hW) {\r
- ConfPlugin(GPUabout, IDC_LISTGPU, "GPUabout");\r
-}\r
-\r
-void AboutSPU(HWND hW) {\r
- ConfPlugin(SPUabout, IDC_LISTSPU, "SPUabout");\r
-}\r
-\r
-void AboutCDR(HWND hW) {\r
- ConfPlugin(CDRabout, IDC_LISTCDR, "CDRabout");\r
-}\r
-\r
-void AboutNET(HWND hW) {\r
- ConfPlugin(NETabout, IDC_LISTNET, "NETabout");\r
-}\r
-\r
-void AboutPAD1(HWND hW) {\r
- ConfPlugin(PADabout, IDC_LISTPAD1, "PADabout");\r
-}\r
-\r
-void AboutPAD2(HWND hW) {\r
- ConfPlugin(PADabout, IDC_LISTPAD2, "PADabout");\r
-}\r
-\r
-\r
-#define TestPlugin(src, confs, name) \\r
- void *drv; \\r
- src conf; \\r
- int ret = 0; \\r
- char * pDLL = GetSelDLL(hW, confs); \\r
- char file[256]; \\r
- if (pDLL== NULL) return; \\r
- strcpy(file, Config.PluginsDir); \\r
- strcat(file, pDLL); \\r
- drv = SysLoadLibrary(file); \\r
- if (drv == NULL) return; \\r
- conf = (src) SysLoadSym(drv, name); \\r
- if (SysLibError() == NULL) { \\r
- ret = conf(); \\r
- if (ret == 0) \\r
- SysMessage(_("This plugin reports that should work correctly")); \\r
- else SysMessage(_("This plugin reports that should not work correctly")); \\r
- } \\r
- SysCloseLibrary(drv);\r
-\r
-void TestGPU(HWND hW) {\r
- TestPlugin(GPUtest, IDC_LISTGPU, "GPUtest");\r
-}\r
-\r
-void TestSPU(HWND hW) {\r
- TestPlugin(SPUtest, IDC_LISTSPU, "SPUtest");\r
-}\r
-\r
-void TestCDR(HWND hW) {\r
- TestPlugin(CDRtest, IDC_LISTCDR, "CDRtest");\r
-}\r
-\r
-void TestNET(HWND hW) {\r
- TestPlugin(NETtest, IDC_LISTNET, "NETtest");\r
-}\r
-\r
-void TestPAD1(HWND hW) {\r
- TestPlugin(PADtest, IDC_LISTPAD1, "PADtest");\r
-}\r
-\r
-void TestPAD2(HWND hW) {\r
- TestPlugin(PADtest, IDC_LISTPAD2, "PADtest");\r
-}\r
-\r
-#include <shlobj.h>\r
-\r
-int SelectPath(HWND hW, char *Title, char *Path) {\r
- LPITEMIDLIST pidl;\r
- BROWSEINFO bi;\r
- char Buffer[256];\r
-\r
- bi.hwndOwner = hW;\r
- bi.pidlRoot = NULL;\r
- bi.pszDisplayName = Buffer;\r
- bi.lpszTitle = Title;\r
- bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;\r
- bi.lpfn = NULL;\r
- bi.lParam = 0;\r
- if ((pidl = SHBrowseForFolder(&bi)) != NULL) {\r
- if (SHGetPathFromIDList(pidl, Path)) {\r
- int len = strlen(Path);\r
-\r
- if (Path[len - 1] != '\\') { strcat(Path,"\\"); }\r
- return 0;\r
- }\r
- }\r
- return -1;\r
-}\r
-\r
-void SetPluginsDir(HWND hW) {\r
- char Path[256];\r
-\r
- if (SelectPath(hW, _("Select Plugins Directory"), Path) == -1) return;\r
- strcpy(Config.PluginsDir, Path);\r
- CleanUpCombos(hW);\r
- OnConfigurePluginsDialog(hW);\r
-}\r
-\r
-void SetBiosDir(HWND hW) {\r
- char Path[256];\r
-\r
- if (SelectPath(hW, _("Select Bios Directory"), Path) == -1) return;\r
- strcpy(Config.BiosDir, Path);\r
- CleanUpCombos(hW);\r
- OnConfigurePluginsDialog(hW);\r
-}\r
-\r
-BOOL CALLBACK ConfigurePluginsDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {\r
- switch(uMsg) {\r
- case WM_INITDIALOG:\r
- SetWindowText(hW, _("Configuration"));\r
-\r
- Button_SetText(GetDlgItem(hW, IDOK), _("OK"));\r
- Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));\r
- Static_SetText(GetDlgItem(hW, IDC_GRAPHICS), _("Graphics"));\r
- Static_SetText(GetDlgItem(hW, IDC_FIRSTCONTROLLER), _("First Controller"));\r
- Static_SetText(GetDlgItem(hW, IDC_SECONDCONTROLLER), _("Second Controller"));\r
- Static_SetText(GetDlgItem(hW, IDC_SOUND), _("Sound"));\r
- Static_SetText(GetDlgItem(hW, IDC_CDROM), _("Cdrom"));\r
- Static_SetText(GetDlgItem(hW, IDC_BIOS), _("Bios"));\r
- Button_SetText(GetDlgItem(hW, IDC_BIOSDIR), _("Set Bios Directory"));\r
- Button_SetText(GetDlgItem(hW, IDC_PLUGINSDIR), _("Set Plugins Directory"));\r
- Button_SetText(GetDlgItem(hW, IDC_CONFIGGPU), _("Configure..."));\r
- Button_SetText(GetDlgItem(hW, IDC_TESTGPU), _("Test..."));\r
- Button_SetText(GetDlgItem(hW, IDC_ABOUTGPU), _("About..."));\r
- Button_SetText(GetDlgItem(hW, IDC_CONFIGSPU), _("Configure..."));\r
- Button_SetText(GetDlgItem(hW, IDC_TESTSPU), _("Test..."));\r
- Button_SetText(GetDlgItem(hW, IDC_ABOUTSPU), _("About..."));\r
- Button_SetText(GetDlgItem(hW, IDC_CONFIGCDR), _("Configure..."));\r
- Button_SetText(GetDlgItem(hW, IDC_TESTCDR), _("Test..."));\r
- Button_SetText(GetDlgItem(hW, IDC_ABOUTCDR), _("About..."));\r
- Button_SetText(GetDlgItem(hW, IDC_CONFIGPAD1), _("Configure..."));\r
- Button_SetText(GetDlgItem(hW, IDC_TESTPAD1), _("Test..."));\r
- Button_SetText(GetDlgItem(hW, IDC_ABOUTPAD1), _("About..."));\r
- Button_SetText(GetDlgItem(hW, IDC_CONFIGPAD2), _("Configure..."));\r
- Button_SetText(GetDlgItem(hW, IDC_TESTPAD2), _("Test..."));\r
- Button_SetText(GetDlgItem(hW, IDC_ABOUTPAD2), _("About..."));\r
-\r
- return OnConfigurePluginsDialog(hW);\r
-\r
- case WM_COMMAND:\r
- switch(LOWORD(wParam)) {\r
- case IDC_CONFIGGPU: ConfigureGPU(hW); return TRUE;\r
- case IDC_CONFIGSPU: ConfigureSPU(hW); return TRUE;\r
- case IDC_CONFIGCDR: ConfigureCDR(hW); return TRUE;\r
- case IDC_CONFIGPAD1: ConfigurePAD1(hW); return TRUE;\r
- case IDC_CONFIGPAD2: ConfigurePAD2(hW); return TRUE;\r
-\r
- case IDC_TESTGPU: TestGPU(hW); return TRUE;\r
- case IDC_TESTSPU: TestSPU(hW); return TRUE;\r
- case IDC_TESTCDR: TestCDR(hW); return TRUE;\r
- case IDC_TESTPAD1: TestPAD1(hW); return TRUE;\r
- case IDC_TESTPAD2: TestPAD2(hW); return TRUE;\r
-\r
- case IDC_ABOUTGPU: AboutGPU(hW); return TRUE;\r
- case IDC_ABOUTSPU: AboutSPU(hW); return TRUE;\r
- case IDC_ABOUTCDR: AboutCDR(hW); return TRUE;\r
- case IDC_ABOUTPAD1: AboutPAD1(hW); return TRUE;\r
- case IDC_ABOUTPAD2: AboutPAD2(hW); return TRUE;\r
-\r
- case IDC_PLUGINSDIR: SetPluginsDir(hW); return TRUE;\r
- case IDC_BIOSDIR: SetBiosDir(hW); return TRUE;\r
-\r
- case IDCANCEL: \r
- OnCancel(hW); \r
- if (CancelQuit) {\r
- SysClose(); exit(1);\r
- }\r
- return TRUE;\r
- case IDOK: \r
- OnOK(hW); \r
- return TRUE;\r
- }\r
- }\r
- return FALSE;\r
-}\r
-\r
-\r
-void ConfigurePlugins(HWND hWnd) {\r
- DialogBox(gApp.hInstance,\r
- MAKEINTRESOURCE(IDD_CONFIG),\r
- hWnd, \r
- (DLGPROC)ConfigurePluginsDlgProc);\r
-}\r
-\r
-// NetPlay Config Dialog\r
-\r
-BOOL OnConfigureNetPlayDialog(HWND hW) {\r
- WIN32_FIND_DATA FindData;\r
- HANDLE Find;\r
- HANDLE Lib;\r
- PSEgetLibType PSE_GetLibType;\r
- PSEgetLibName PSE_GetLibName;\r
- PSEgetLibVersion PSE_GetLibVersion;\r
- HWND hWC_NET=GetDlgItem(hW,IDC_LISTNET);\r
- char tmpStr[256];\r
- char *lp;\r
- int i;\r
-\r
- strcpy(tmpStr, Config.PluginsDir);\r
- strcat(tmpStr, "*.dll");\r
- Find = FindFirstFile(tmpStr, &FindData);\r
-\r
- lp = (char *)malloc(strlen("Disabled")+8);\r
- sprintf(lp, "Disabled");\r
- i = ComboBox_AddString(hWC_NET, "Disabled");\r
- ComboBox_SetItemData(hWC_NET, i, lp);\r
- ComboBox_SetCurSel(hWC_NET, 0);\r
-\r
- do {\r
- if (Find==INVALID_HANDLE_VALUE) break;\r
- sprintf(tmpStr,"%s%s", Config.PluginsDir, FindData.cFileName);\r
- Lib = LoadLibrary(tmpStr);\r
- if (Lib!=NULL) {\r
- PSE_GetLibType = (PSEgetLibType) GetProcAddress((HMODULE)Lib,"PSEgetLibType");\r
- PSE_GetLibName = (PSEgetLibName) GetProcAddress((HMODULE)Lib,"PSEgetLibName");\r
- PSE_GetLibVersion = (PSEgetLibVersion) GetProcAddress((HMODULE)Lib,"PSEgetLibVersion");\r
-\r
- if (PSE_GetLibType != NULL && PSE_GetLibName != NULL && PSE_GetLibVersion != NULL) {\r
- unsigned long version = PSE_GetLibVersion();\r
- long type;\r
-\r
- sprintf(tmpStr, "%s %d.%d", PSE_GetLibName(), (int)(version>>8)&0xff, (int)version&0xff);\r
- type = PSE_GetLibType();\r
- if (type & PSE_LT_NET && ((version >> 16) == 2)) {\r
- ComboAddPlugin(hWC_NET, Config.Net);\r
- }\r
- }\r
- }\r
- } while (FindNextFile(Find,&FindData));\r
-\r
- if (Find!=INVALID_HANDLE_VALUE) FindClose(Find);\r
-\r
- return TRUE;\r
-}\r
-\r
-BOOL CALLBACK ConfigureNetPlayDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {\r
- int i,iCnt;HWND hWC;char * lp;\r
-\r
- switch(uMsg) {\r
- case WM_INITDIALOG:\r
- SetWindowText(hW, _("NetPlay Configuration"));\r
-\r
- Button_SetText(GetDlgItem(hW, IDOK), _("OK"));\r
- Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));\r
- Static_SetText(GetDlgItem(hW, IDC_NETPLAY), _("NetPlay"));\r
- Button_SetText(GetDlgItem(hW, IDC_CONFIGNET), _("Configure..."));\r
- Button_SetText(GetDlgItem(hW, IDC_TESTNET), _("Test..."));\r
- Button_SetText(GetDlgItem(hW, IDC_ABOUTNET), _("About..."));\r
- Static_SetText(GetDlgItem(hW, IDC_NETPLAYNOTE), _("Note: The NetPlay Plugin Directory should be the same as the other Plugins."));\r
-\r
- OnConfigureNetPlayDialog(hW);\r
- return TRUE;\r
-\r
- case WM_COMMAND: {\r
- switch (LOWORD(wParam)) {\r
- case IDC_CONFIGNET: ConfigureNET(hW); return TRUE;\r
- case IDC_TESTNET: TestNET(hW); return TRUE;\r
- case IDC_ABOUTNET: AboutNET(hW); return TRUE;\r
-\r
- case IDCANCEL: \r
- CleanCombo(IDC_LISTNET);\r
- EndDialog(hW,FALSE); \r
- return TRUE;\r
-\r
- case IDOK:\r
- strcpy(Config.Net, GetSelDLL(hW, IDC_LISTNET));\r
- SaveConfig();\r
- CleanUpCombos(hW);\r
- LoadPlugins();\r
- CleanCombo(IDC_LISTNET);\r
- EndDialog(hW,TRUE);\r
- return TRUE;\r
- }\r
- }\r
- }\r
-\r
- return FALSE;\r
-}\r