summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
Diffstat (limited to 'win32')
-rwxr-xr-x[-rw-r--r--]win32/config.h100
-rwxr-xr-x[-rw-r--r--]win32/glue/stdint.h68
-rwxr-xr-x[-rw-r--r--]win32/glue/sys/mman.h40
-rwxr-xr-x[-rw-r--r--]win32/gui/AboutDlg.c136
-rwxr-xr-x[-rw-r--r--]win32/gui/AboutDlg.h48
-rwxr-xr-x[-rw-r--r--]win32/gui/CheatDlg.c2042
-rwxr-xr-x[-rw-r--r--]win32/gui/ConfigurePlugins.c1306
-rwxr-xr-x[-rw-r--r--]win32/gui/NoPic.h0
-rwxr-xr-x[-rw-r--r--]win32/gui/Win32.h140
-rwxr-xr-x[-rw-r--r--]win32/gui/WndMain.c3870
-rwxr-xr-x[-rw-r--r--]win32/gui/pcsxr.exe.manifest44
-rwxr-xr-x[-rw-r--r--]win32/gui/plugin.c718
-rwxr-xr-x[-rw-r--r--]win32/gui/plugin.h0
-rwxr-xr-x[-rw-r--r--]win32/intl/bindtextdom.c0
-rwxr-xr-x[-rw-r--r--]win32/intl/dcgettext.c0
-rwxr-xr-x[-rw-r--r--]win32/intl/dgettext.c0
-rwxr-xr-x[-rw-r--r--]win32/intl/explodename.c0
-rwxr-xr-x[-rw-r--r--]win32/intl/finddomain.c0
-rwxr-xr-x[-rw-r--r--]win32/intl/gettext.c0
-rwxr-xr-x[-rw-r--r--]win32/intl/gettext.h0
-rwxr-xr-x[-rw-r--r--]win32/intl/gettextP.h0
-rwxr-xr-x[-rw-r--r--]win32/intl/hash-string.h0
-rwxr-xr-x[-rw-r--r--]win32/intl/intl-compat.c0
-rwxr-xr-x[-rw-r--r--]win32/intl/intlconfig.h496
-rwxr-xr-x[-rw-r--r--]win32/intl/l10nflist.c0
-rwxr-xr-x[-rw-r--r--]win32/intl/libgettext.h0
-rwxr-xr-x[-rw-r--r--]win32/intl/libintl.h224
-rwxr-xr-x[-rw-r--r--]win32/intl/loadinfo.h0
-rwxr-xr-x[-rw-r--r--]win32/intl/loadmsgcat.c454
-rwxr-xr-x[-rw-r--r--]win32/intl/localealias.c852
-rwxr-xr-x[-rw-r--r--]win32/intl/textdomain.c0
-rwxr-xr-x[-rw-r--r--]win32/pcsxr.dev2418
-rwxr-xr-x[-rw-r--r--]win32/pcsxr.dsp1166
-rwxr-xr-x[-rw-r--r--]win32/pcsxr.dsw154
-rwxr-xr-x[-rw-r--r--]win32/pcsxr.rc888
-rwxr-xr-x[-rw-r--r--]win32/pcsxr.sln88
-rwxr-xr-x[-rw-r--r--]win32/pcsxr.vcproj3424
-rwxr-xr-x[-rw-r--r--]win32/plugins/PadSSSPSX/PadSSSPSX.cpp2288
-rwxr-xr-x[-rw-r--r--]win32/plugins/PadSSSPSX/PadSSSPSX.def44
-rwxr-xr-x[-rw-r--r--]win32/plugins/PadSSSPSX/PadSSSPSX.dsp246
-rwxr-xr-x[-rw-r--r--]win32/plugins/PadSSSPSX/PadSSSPSX.h94
-rwxr-xr-x[-rw-r--r--]win32/plugins/PadSSSPSX/PadSSSPSX.rc240
-rwxr-xr-x[-rw-r--r--]win32/plugins/PadSSSPSX/PadSSSPSX.vcproj562
-rwxr-xr-x[-rw-r--r--]win32/plugins/PadSSSPSX/PadSSSPSXres.h122
-rwxr-xr-x[-rw-r--r--]win32/plugins/PadSSSPSX/readmewip.txt96
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/DFSound.def90
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/DFSound.dev738
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/DFSound.dsp508
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/DFSound.rc822
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/DFSound.vcproj1212
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/resource.h298
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/winsrc/cfg.c22
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/winsrc/debug.c742
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/winsrc/debug.h58
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/winsrc/dsound.c554
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/winsrc/dsound.h0
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/winsrc/psemu.c202
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/winsrc/record.c376
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/winsrc/record.h20
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfsound/winsrc/winmain.c68
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/DFXVideo.def48
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/DFXVideo.dev758
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/DFXVideo.dsp478
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/DFXVideo.rc1126
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/DFXVideo.vcproj1188
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/resource.h286
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/winsrc/cfg.c18
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/winsrc/d3d.h0
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/winsrc/d3dcaps.h0
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/winsrc/d3dtypes.h0
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/winsrc/ddraw.h0
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/winsrc/draw.c352
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/winsrc/dxguid.c2
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/winsrc/fps.c92
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/winsrc/key.c26
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/winsrc/record.c16
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/winsrc/record.h0
-rwxr-xr-x[-rw-r--r--]win32/plugins/dfxvideo/winsrc/winmain.c24
-rwxr-xr-x[-rw-r--r--]win32/plugins/peopsxgl/gpuPeopsOpenGL.def72
-rwxr-xr-x[-rw-r--r--]win32/plugins/peopsxgl/gpuPeopsOpenGL.dev638
-rwxr-xr-x[-rw-r--r--]win32/plugins/peopsxgl/gpuPeopsOpenGL.dsp422
-rwxr-xr-x[-rw-r--r--]win32/plugins/peopsxgl/gpuPeopsOpenGL.rc1022
-rwxr-xr-x[-rw-r--r--]win32/plugins/peopsxgl/gpuPeopsOpenGL.vcproj1120
-rwxr-xr-x[-rw-r--r--]win32/plugins/peopsxgl/resource.h268
-rwxr-xr-x[-rw-r--r--]win32/plugins/peopsxgl/winsrc/cfg.c2082
-rwxr-xr-x[-rw-r--r--]win32/plugins/peopsxgl/winsrc/fps.c1282
-rwxr-xr-x[-rw-r--r--]win32/plugins/peopsxgl/winsrc/key.c406
-rwxr-xr-x[-rw-r--r--]win32/plugins/peopsxgl/winsrc/ssave.c130
-rwxr-xr-x[-rw-r--r--]win32/plugins/peopsxgl/winsrc/ssave.h56
-rwxr-xr-x[-rw-r--r--]win32/plugins/peopsxgl/winsrc/winmain.c84
-rwxr-xr-x[-rw-r--r--]win32/resource.h712
-rwxr-xr-x[-rw-r--r--]win32/zlib/adler32.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/compress.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/crc32.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/deflate.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/deflate.h0
-rwxr-xr-x[-rw-r--r--]win32/zlib/gzio.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/infblock.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/infblock.h0
-rwxr-xr-x[-rw-r--r--]win32/zlib/infcodes.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/infcodes.h0
-rwxr-xr-x[-rw-r--r--]win32/zlib/inffast.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/inffast.h0
-rwxr-xr-x[-rw-r--r--]win32/zlib/inffixed.h0
-rwxr-xr-x[-rw-r--r--]win32/zlib/inflate.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/inftrees.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/inftrees.h0
-rwxr-xr-x[-rw-r--r--]win32/zlib/infutil.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/infutil.h0
-rwxr-xr-x[-rw-r--r--]win32/zlib/trees.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/trees.h0
-rwxr-xr-x[-rw-r--r--]win32/zlib/uncompr.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/zconf.h0
-rwxr-xr-x[-rw-r--r--]win32/zlib/zlib.h0
-rwxr-xr-x[-rw-r--r--]win32/zlib/zutil.c0
-rwxr-xr-x[-rw-r--r--]win32/zlib/zutil.h0
116 files changed, 20393 insertions, 20393 deletions
diff --git a/win32/config.h b/win32/config.h
index f13d3e89..6291093e 100644..100755
--- a/win32/config.h
+++ b/win32/config.h
@@ -1,50 +1,50 @@
-//
-// Copyright (c) 2008, Wei Mingzhi. All rights reserved.
-//
-// Use, redistribution and modification of this code is unrestricted as long as this
-// notice is preserved.
-//
-
-#ifndef CONFIG_H
-#define CONFIG_H
-
-#ifndef __i386__
-#define __i386__ 1
-#endif
-
-#include <windows.h>
-
-#ifndef MAXPATHLEN
-#define MAXPATHLEN 256
-#endif
-
-#ifndef PACKAGE_VERSION
-#define PACKAGE_VERSION "1.9"
-#endif
-
-#ifndef PREFIX
-#define PREFIX "./"
-#endif
-
-#ifndef inline
-#ifdef _DEBUG
-#define inline /* */
-#else
-#ifdef _MSC_VER
-#define inline __forceinline
-#else
-#define inline __inline__
-#endif
-#endif
-#endif
-
-#ifdef _MSC_VER
-#pragma warning (disable:4133)
-#pragma warning (disable:4142)
-#pragma warning (disable:4244)
-#pragma warning (disable:4996)
-#pragma warning (disable:4018)
-#pragma warning (disable:4761)
-#endif
-
-#endif
+//
+// Copyright (c) 2008, Wei Mingzhi. All rights reserved.
+//
+// Use, redistribution and modification of this code is unrestricted as long as this
+// notice is preserved.
+//
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#ifndef __i386__
+#define __i386__ 1
+#endif
+
+#include <windows.h>
+
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 256
+#endif
+
+#ifndef PACKAGE_VERSION
+#define PACKAGE_VERSION "1.9"
+#endif
+
+#ifndef PREFIX
+#define PREFIX "./"
+#endif
+
+#ifndef inline
+#ifdef _DEBUG
+#define inline /* */
+#else
+#ifdef _MSC_VER
+#define inline __forceinline
+#else
+#define inline __inline__
+#endif
+#endif
+#endif
+
+#ifdef _MSC_VER
+#pragma warning (disable:4133)
+#pragma warning (disable:4142)
+#pragma warning (disable:4244)
+#pragma warning (disable:4996)
+#pragma warning (disable:4018)
+#pragma warning (disable:4761)
+#endif
+
+#endif
diff --git a/win32/glue/stdint.h b/win32/glue/stdint.h
index 1a1eace1..c60cc149 100644..100755
--- a/win32/glue/stdint.h
+++ b/win32/glue/stdint.h
@@ -1,17 +1,17 @@
-//
-// Copyright (c) 2008, Wei Mingzhi. All rights reserved.
-//
-// Use, redistribution and modification of this code is unrestricted
-// as long as this notice is preserved.
-//
-// This code is provided with ABSOLUTELY NO WARRANTY.
-//
-
-#ifndef __STDINT_H
-#define __STDINT_H
-
-#ifdef _MSC_VER
-
+//
+// Copyright (c) 2008, Wei Mingzhi. All rights reserved.
+//
+// Use, redistribution and modification of this code is unrestricted
+// as long as this notice is preserved.
+//
+// This code is provided with ABSOLUTELY NO WARRANTY.
+//
+
+#ifndef __STDINT_H
+#define __STDINT_H
+
+#ifdef _MSC_VER
+
typedef __int8 int8_t;
typedef __int16 int16_t;
typedef __int32 int32_t;
@@ -20,23 +20,23 @@ typedef __int64 int64_t;
typedef unsigned __int8 uint8_t;
typedef unsigned __int16 uint16_t;
typedef unsigned __int32 uint32_t;
-typedef unsigned __int64 uint64_t;
-
-#else
-
-typedef signed char int8_t;
-typedef signed short int16_t;
-typedef signed int int32_t;
-typedef signed __int64 int64_t;
-
-typedef unsigned char uint8_t;
-typedef unsigned short uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned __int64 uint64_t;
-
-#endif
-
-#define intptr_t int32_t
-#define uintptr_t uint32_t
-
-#endif
+typedef unsigned __int64 uint64_t;
+
+#else
+
+typedef signed char int8_t;
+typedef signed short int16_t;
+typedef signed int int32_t;
+typedef signed __int64 int64_t;
+
+typedef unsigned char uint8_t;
+typedef unsigned short uint16_t;
+typedef unsigned int uint32_t;
+typedef unsigned __int64 uint64_t;
+
+#endif
+
+#define intptr_t int32_t
+#define uintptr_t uint32_t
+
+#endif
diff --git a/win32/glue/sys/mman.h b/win32/glue/sys/mman.h
index 4b12e8d9..d352a1f1 100644..100755
--- a/win32/glue/sys/mman.h
+++ b/win32/glue/sys/mman.h
@@ -1,20 +1,20 @@
-//
-// Copyright (c) 2008, Wei Mingzhi. All rights reserved.
-//
-// Use, redistribution and modification of this code is unrestricted
-// as long as this notice is preserved.
-//
-// This code is provided with ABSOLUTELY NO WARRANTY.
-//
-
-#ifndef MMAN_H
-#define MMAN_H
-
-#include <windows.h>
-
-#define mmap(start, length, prot, flags, fd, offset) \
- ((unsigned char *)VirtualAlloc(NULL, (length), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE))
-
-#define munmap(start, length) do { VirtualFree((start), (length), MEM_RELEASE); } while (0)
-
-#endif
+//
+// Copyright (c) 2008, Wei Mingzhi. All rights reserved.
+//
+// Use, redistribution and modification of this code is unrestricted
+// as long as this notice is preserved.
+//
+// This code is provided with ABSOLUTELY NO WARRANTY.
+//
+
+#ifndef MMAN_H
+#define MMAN_H
+
+#include <windows.h>
+
+#define mmap(start, length, prot, flags, fd, offset) \
+ ((unsigned char *)VirtualAlloc(NULL, (length), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE))
+
+#define munmap(start, length) do { VirtualFree((start), (length), MEM_RELEASE); } while (0)
+
+#endif
diff --git a/win32/gui/AboutDlg.c b/win32/gui/AboutDlg.c
index f73a3618..2bdd6904 100644..100755
--- a/win32/gui/AboutDlg.c
+++ b/win32/gui/AboutDlg.c
@@ -1,68 +1,68 @@
-/* Pcsx - Pc Psx Emulator
- * Copyright (C) 1999-2003 Pcsx Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <windows.h>
-#include <windowsx.h>
-#include "resource.h"
-#include "AboutDlg.h"
-#include "psxcommon.h"
-
-char *LabelAuthors = { N_(
- "PCSXR - A PlayStation Emulator\n\n"
- "Original Authors:\n"
- "main coder: linuzappz\n"
- "co-coders: shadow\n"
- "ex-coders: Nocomp, Pete Bernett, nik3d\n"
- "Webmaster: AkumaX")
-};
-
-char *LabelGreets = { N_(
- "PCSX-df Authors:\n"
- "Ryan Schultz, Andrew Burton, Stephen Chao,\n"
- "Marcus Comstedt, Stefan Sikora\n\n"
- "PCSX-Reloaded By:\n"
- "edgbla, shalma, Wei Mingzhi, et al.\n\n"
- "http://pcsxr.codeplex.com/")
-};
-
-LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- switch (uMsg) {
- case WM_INITDIALOG:
- SetWindowText(hDlg, _("About"));
-
- Button_SetText(GetDlgItem(hDlg, IDOK), _("OK"));
- Static_SetText(GetDlgItem(hDlg, IDC_PCSXR_ABOUT_TEXT), _("PCSXR EMU\n"));
- Static_SetText(GetDlgItem(hDlg, IDC_PCSXR_ABOUT_AUTHORS), _(LabelAuthors));
- Static_SetText(GetDlgItem(hDlg, IDC_PCSXR_ABOUT_GREETS), _(LabelGreets));
- Button_SetText(GetDlgItem(hDlg,IDOK), _("OK"));
- return TRUE;
-
- case WM_COMMAND:
- switch (wParam) {
- case IDOK:
- EndDialog(hDlg, TRUE);
- return TRUE;
- }
- break;
-
- case WM_CLOSE:
- EndDialog(hDlg, TRUE);
- return TRUE;
- }
- return FALSE;
-}
+/* Pcsx - Pc Psx Emulator
+ * Copyright (C) 1999-2003 Pcsx Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <windows.h>
+#include <windowsx.h>
+#include "resource.h"
+#include "AboutDlg.h"
+#include "psxcommon.h"
+
+char *LabelAuthors = { N_(
+ "PCSXR - A PlayStation Emulator\n\n"
+ "Original Authors:\n"
+ "main coder: linuzappz\n"
+ "co-coders: shadow\n"
+ "ex-coders: Nocomp, Pete Bernett, nik3d\n"
+ "Webmaster: AkumaX")
+};
+
+char *LabelGreets = { N_(
+ "PCSX-df Authors:\n"
+ "Ryan Schultz, Andrew Burton, Stephen Chao,\n"
+ "Marcus Comstedt, Stefan Sikora\n\n"
+ "PCSX-Reloaded By:\n"
+ "edgbla, shalma, Wei Mingzhi, et al.\n\n"
+ "http://pcsxr.codeplex.com/")
+};
+
+LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ switch (uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hDlg, _("About"));
+
+ Button_SetText(GetDlgItem(hDlg, IDOK), _("OK"));
+ Static_SetText(GetDlgItem(hDlg, IDC_PCSXR_ABOUT_TEXT), _("PCSXR EMU\n"));
+ Static_SetText(GetDlgItem(hDlg, IDC_PCSXR_ABOUT_AUTHORS), _(LabelAuthors));
+ Static_SetText(GetDlgItem(hDlg, IDC_PCSXR_ABOUT_GREETS), _(LabelGreets));
+ Button_SetText(GetDlgItem(hDlg,IDOK), _("OK"));
+ return TRUE;
+
+ case WM_COMMAND:
+ switch (wParam) {
+ case IDOK:
+ EndDialog(hDlg, TRUE);
+ return TRUE;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog(hDlg, TRUE);
+ return TRUE;
+ }
+ return FALSE;
+}
diff --git a/win32/gui/AboutDlg.h b/win32/gui/AboutDlg.h
index 0ccc8c43..3de5d7b2 100644..100755
--- a/win32/gui/AboutDlg.h
+++ b/win32/gui/AboutDlg.h
@@ -1,24 +1,24 @@
-/* Pcsx - Pc Psx Emulator
- * Copyright (C) 1999-2003 Pcsx Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef _PCSX_ABOUTDLG_H_
-#define _PCSX_ABOUTDLG_H_
-
-LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
-
-#endif
+/* Pcsx - Pc Psx Emulator
+ * Copyright (C) 1999-2003 Pcsx Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _PCSX_ABOUTDLG_H_
+#define _PCSX_ABOUTDLG_H_
+
+LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+#endif
diff --git a/win32/gui/CheatDlg.c b/win32/gui/CheatDlg.c
index cb6231f5..c0e6147c 100644..100755
--- a/win32/gui/CheatDlg.c
+++ b/win32/gui/CheatDlg.c
@@ -1,1021 +1,1021 @@
-/* Cheat Support for PCSX-Reloaded
- * Copyright (C) 2009, Wei Mingzhi <whistler_wmz@users.sf.net>.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <windows.h>
-#include <windowsx.h>
-#ifndef _WIN32_IE
-#define _WIN32_IE 0x0400
-#endif
-#include <commctrl.h>
-#include <stdio.h>
-#include "psxcommon.h"
-#include "psxmem.h"
-#include "cheat.h"
-#include "resource.h"
-#include "Win32.h"
-
-static void UpdateCheatDlg(HWND hW) {
- HWND List;
- LV_ITEM item;
- int i;
-
- List = GetDlgItem(hW, IDC_CODELIST);
-
- ListView_DeleteAllItems(List);
-
- for (i = 0; i < NumCheats; i++) {
- memset(&item, 0, sizeof(item));
-
- item.mask = LVIF_TEXT;
- item.iItem = i;
- item.pszText = Cheats[i].Descr;
- item.iSubItem = 0;
-
- SendMessage(List, LVM_INSERTITEM, 0, (LPARAM)&item);
-
- item.pszText = (Cheats[i].Enabled ? _("Yes") : _("No"));
- item.iSubItem = 1;
-
- SendMessage(List, LVM_SETITEM, 0, (LPARAM)&item);
- }
-}
-
-static int iEditItem = -1;
-static char szDescr[256], szCode[1024];
-
-static LRESULT WINAPI CheatEditDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- int i;
-
- switch (uMsg) {
- case WM_INITDIALOG:
- SetWindowText(hW, _("Edit Cheat"));
- Static_SetText(GetDlgItem(hW, IDC_LABEL_DESCR), _("Description:"));
- Static_SetText(GetDlgItem(hW, IDC_LABEL_CODE), _("Cheat Code:"));
- Button_SetText(GetDlgItem(hW, IDOK), _("OK"));
- Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));
-
- assert(iEditItem != -1 && iEditItem < NumCheats);
-
- Edit_SetText(GetDlgItem(hW, IDC_DESCR), Cheats[iEditItem].Descr);
-
- szCode[0] = '\0';
- for (i = Cheats[iEditItem].First; i < Cheats[iEditItem].First + Cheats[iEditItem].n; i++) {
- sprintf(szDescr, "%.8X %.4X\r\n", CheatCodes[i].Addr, CheatCodes[i].Val);
- strcat(szCode, szDescr);
- }
- Edit_SetText(GetDlgItem(hW, IDC_CODE), szCode);
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDOK:
- Edit_GetText(GetDlgItem(hW, IDC_DESCR), szDescr, 256);
- Edit_GetText(GetDlgItem(hW, IDC_CODE), szCode, 1024);
-
- if (EditCheat(iEditItem, szDescr, szCode) != 0) {
- SysMessage(_("Invalid cheat code!"));
- }
- else {
- EndDialog(hW, TRUE);
- return TRUE;
- }
- break;
-
- case IDCANCEL:
- EndDialog(hW, FALSE);
- return TRUE;
- }
- break;
-
- case WM_CLOSE:
- EndDialog(hW, FALSE);
- return TRUE;
- }
-
- return FALSE;
-}
-
-static LRESULT WINAPI CheatAddDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- switch (uMsg) {
- case WM_INITDIALOG:
- SetWindowText(hW, _("Add New Cheat"));
- Static_SetText(GetDlgItem(hW, IDC_LABEL_DESCR), _("Description:"));
- Static_SetText(GetDlgItem(hW, IDC_LABEL_CODE), _("Cheat Code:"));
- Button_SetText(GetDlgItem(hW, IDOK), _("OK"));
- Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));
- Edit_SetText(GetDlgItem(hW, IDC_DESCR), szDescr);
- Edit_SetText(GetDlgItem(hW, IDC_CODE), szCode);
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDOK:
- Edit_GetText(GetDlgItem(hW, IDC_DESCR), szDescr, 256);
- Edit_GetText(GetDlgItem(hW, IDC_CODE), szCode, 1024);
-
- if (AddCheat(szDescr, szCode) != 0) {
- SysMessage(_("Invalid cheat code!"));
- }
- else {
- EndDialog(hW, TRUE);
- return TRUE;
- }
- break;
-
- case IDCANCEL:
- EndDialog(hW, FALSE);
- return TRUE;
- }
- break;
-
- case WM_CLOSE:
- EndDialog(hW, FALSE);
- return TRUE;
- }
-
- return FALSE;
-}
-
-LRESULT WINAPI CheatDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- HWND List;
- LV_COLUMN col;
- LV_ITEM item;
- int i;
- OPENFILENAME ofn;
- char szFileName[256];
- char szFileTitle[256];
- char szFilter[256];
-
- switch (uMsg) {
- case WM_INITDIALOG:
- SetWindowText(hW, _("Edit Cheat Codes"));
-
- Button_SetText(GetDlgItem(hW, IDC_ADDCODE), _("&Add Code"));
- Button_SetText(GetDlgItem(hW, IDC_EDITCODE), _("&Edit Code"));
- Button_SetText(GetDlgItem(hW, IDC_REMOVECODE), _("&Remove Code"));
- Button_SetText(GetDlgItem(hW, IDC_TOGGLECODE), _("&Enable/Disable"));
- Button_SetText(GetDlgItem(hW, IDC_LOADCODE), _("&Load..."));
- Button_SetText(GetDlgItem(hW, IDC_SAVECODE), _("&Save As..."));
- Button_SetText(GetDlgItem(hW, IDCANCEL), _("&Close"));
-
- List = GetDlgItem(hW, IDC_CODELIST);
-
- SendMessage(List, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT);
-
- memset(&col, 0, sizeof(col));
-
- col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
- col.fmt = LVCFMT_LEFT;
-
- col.pszText = _("Description");
- col.cx = 400;
-
- SendMessage(List, LVM_INSERTCOLUMN, 0, (LPARAM)&col);
-
- col.pszText = _("Enabled");
- col.cx = 55;
-
- SendMessage(List, LVM_INSERTCOLUMN, 1, (LPARAM)&col);
-
- UpdateCheatDlg(hW);
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDCANCEL:
- EndDialog(hW, FALSE);
- return TRUE;
-
- case IDC_ADDCODE:
- i = NumCheats;
- szDescr[0] = '\0';
- szCode[0] = '\0';
-
- DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATEDIT), hW, (DLGPROC)CheatAddDlgProc);
-
- if (NumCheats > i) {
- // new cheat added
- List = GetDlgItem(hW, IDC_CODELIST);
- memset(&item, 0, sizeof(item));
-
- item.mask = LVIF_TEXT;
- item.iItem = i;
- item.pszText = Cheats[i].Descr;
- item.iSubItem = 0;
-
- SendMessage(List, LVM_INSERTITEM, 0, (LPARAM)&item);
-
- item.pszText = (Cheats[i].Enabled ? _("Yes") : _("No"));
- item.iSubItem = 1;
-
- SendMessage(List, LVM_SETITEM, 0, (LPARAM)&item);
- }
- break;
-
- case IDC_EDITCODE:
- List = GetDlgItem(hW, IDC_CODELIST);
- iEditItem = ListView_GetSelectionMark(List);
-
- if (iEditItem != -1) {
- DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATEDIT), hW, (DLGPROC)CheatEditDlgProc);
-
- memset(&item, 0, sizeof(item));
-
- item.mask = LVIF_TEXT;
- item.iItem = iEditItem;
- item.pszText = Cheats[iEditItem].Descr;
- item.iSubItem = 0;
-
- SendMessage(List, LVM_SETITEM, 0, (LPARAM)&item);
- }
- break;
-
- case IDC_REMOVECODE:
- List = GetDlgItem(hW, IDC_CODELIST);
- i = ListView_GetSelectionMark(List);
-
- if (i != -1) {
- RemoveCheat(i);
- ListView_DeleteItem(List, i);
- ListView_SetSelectionMark(List, -1);
- }
- break;
-
- case IDC_TOGGLECODE:
- List = GetDlgItem(hW, IDC_CODELIST);
- i = ListView_GetSelectionMark(List);
-
- if (i != -1) {
- Cheats[i].Enabled ^= 1;
-
- memset(&item, 0, sizeof(item));
-
- item.mask = LVIF_TEXT;
- item.iItem = i;
- item.pszText = (Cheats[i].Enabled ? _("Yes") : _("No"));
- item.iSubItem = 1;
-
- SendMessage(List, LVM_SETITEM, 0, (LPARAM)&item);
- }
- break;
-
- case IDC_LOADCODE:
- memset(&szFileName, 0, sizeof(szFileName));
- memset(&szFileTitle, 0, sizeof(szFileTitle));
- memset(&szFilter, 0, sizeof(szFilter));
-
- strcpy(szFilter, _("PCSXR Cheat Code Files"));
- strcatz(szFilter, "*.*");
-
- ofn.lStructSize = sizeof(OPENFILENAME);
- ofn.hwndOwner = hW;
- ofn.lpstrFilter = szFilter;
- ofn.lpstrCustomFilter = NULL;
- ofn.nMaxCustFilter = 0;
- ofn.nFilterIndex = 1;
- ofn.lpstrFile = szFileName;
- ofn.nMaxFile = 256;
- ofn.lpstrInitialDir = ".\\Cheats";
- ofn.lpstrFileTitle = szFileTitle;
- ofn.nMaxFileTitle = 256;
- ofn.lpstrTitle = NULL;
- ofn.lpstrDefExt = "CHT";
- ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
-
- if (GetOpenFileName((LPOPENFILENAME)&ofn)) {
- LoadCheats(szFileName);
- UpdateCheatDlg(hW);
- }
- break;
-
- case IDC_SAVECODE:
- memset(&szFileName, 0, sizeof(szFileName));
- memset(&szFileTitle, 0, sizeof(szFileTitle));
- memset(&szFilter, 0, sizeof(szFilter));
-
- strcpy(szFilter, _("PCSXR Cheat Code Files"));
- strcatz(szFilter, "*.*");
-
- ofn.lStructSize = sizeof(OPENFILENAME);
- ofn.hwndOwner = hW;
- ofn.lpstrFilter = szFilter;
- ofn.lpstrCustomFilter = NULL;
- ofn.nMaxCustFilter = 0;
- ofn.nFilterIndex = 1;
- ofn.lpstrFile = szFileName;
- ofn.nMaxFile = 256;
- ofn.lpstrInitialDir = ".\\Cheats";
- ofn.lpstrFileTitle = szFileTitle;
- ofn.nMaxFileTitle = 256;
- ofn.lpstrTitle = NULL;
- ofn.lpstrDefExt = "CHT";
- ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_OVERWRITEPROMPT;
-
- if (GetOpenFileName((LPOPENFILENAME)&ofn)) {
- SaveCheats(szFileName);
- }
- break;
- }
- break;
-
- case WM_NOTIFY:
- switch (LOWORD(wParam)) {
- case IDC_CODELIST:
- List = GetDlgItem(hW, IDC_CODELIST);
- i = ListView_GetSelectionMark(List);
-
- if (i != -1) {
- Button_Enable(GetDlgItem(hW, IDC_EDITCODE), TRUE);
- Button_Enable(GetDlgItem(hW, IDC_REMOVECODE), TRUE);
- Button_Enable(GetDlgItem(hW, IDC_TOGGLECODE), TRUE);
- }
- else {
- Button_Enable(GetDlgItem(hW, IDC_EDITCODE), FALSE);
- Button_Enable(GetDlgItem(hW, IDC_REMOVECODE), FALSE);
- Button_Enable(GetDlgItem(hW, IDC_TOGGLECODE), FALSE);
- }
-
- Button_Enable(GetDlgItem(hW, IDC_SAVECODE), (NumCheats > 0));
- break;
- }
- break;
-
- case WM_CLOSE:
- EndDialog(hW, FALSE);
- return TRUE;
- }
-
- return FALSE;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-#define SEARCH_EQUALVAL 0
-#define SEARCH_NOTEQUALVAL 1
-#define SEARCH_RANGE 2
-#define SEARCH_INCBY 3
-#define SEARCH_DECBY 4
-#define SEARCH_INC 5
-#define SEARCH_DEC 6
-#define SEARCH_DIFFERENT 7
-#define SEARCH_NOCHANGE 8
-
-#define SEARCHTYPE_8BIT 0
-#define SEARCHTYPE_16BIT 1
-#define SEARCHTYPE_32BIT 2
-
-#define SEARCHBASE_DEC 0
-#define SEARCHBASE_HEX 1
-
-static char current_search = SEARCH_EQUALVAL;
-static char current_searchtype = SEARCHTYPE_8BIT;
-static char current_searchbase = SEARCHBASE_DEC;
-static uint32_t current_valuefrom = 0;
-static uint32_t current_valueto = 0;
-
-static void UpdateCheatSearchDlg(HWND hW) {
- char buf[256];
- int i;
-
- SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_RESETCONTENT, 0, 0);
- SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_RESETCONTENT, 0, 0);
-
- Button_Enable(GetDlgItem(hW, IDC_FREEZE), FALSE);
- Button_Enable(GetDlgItem(hW, IDC_MODIFY), FALSE);
- Button_Enable(GetDlgItem(hW, IDC_COPY), FALSE);
-
- SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Equal Value"));
- SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Not Equal Value"));
- SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Range"));
-
- if (prevM != NULL) {
- SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Increased By"));
- SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Decreased By"));
- SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Increased"));
- SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Decreased"));
- SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Different"));
- SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("No Change"));
-
- ComboBox_Enable(GetDlgItem(hW, IDC_DATATYPE), FALSE);
- }
- else {
- ComboBox_Enable(GetDlgItem(hW, IDC_DATATYPE), TRUE);
- }
-
- SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_SETCURSEL, (WPARAM)current_search, 0);
-
- if (current_search == SEARCH_RANGE) {
- ShowWindow(GetDlgItem(hW, IDC_LABEL_TO), SW_SHOW);
- ShowWindow(GetDlgItem(hW, IDC_VALUETO), SW_SHOW);
- }
- else {
- ShowWindow(GetDlgItem(hW, IDC_LABEL_TO), SW_HIDE);
- ShowWindow(GetDlgItem(hW, IDC_VALUETO), SW_HIDE);
- }
-
- SendMessage(GetDlgItem(hW, IDC_DATATYPE), CB_SETCURSEL, (WPARAM)current_searchtype, 0);
- SendMessage(GetDlgItem(hW, IDC_DATABASE), CB_SETCURSEL, (WPARAM)current_searchbase, 0);
-
- if (current_searchbase == SEARCHBASE_HEX) {
- sprintf(buf, "%X", current_valuefrom);
- SetWindowText(GetDlgItem(hW, IDC_VALUEFROM), buf);
- sprintf(buf, "%X", current_valueto);
- SetWindowText(GetDlgItem(hW, IDC_VALUETO), buf);
- }
- else {
- sprintf(buf, "%u", current_valuefrom);
- SetWindowText(GetDlgItem(hW, IDC_VALUEFROM), buf);
- sprintf(buf, "%u", current_valueto);
- SetWindowText(GetDlgItem(hW, IDC_VALUETO), buf);
- }
-
- if (prevM == NULL) {
- SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_ADDSTRING, (WPARAM)0, (LPARAM)_("Enter the values and start your search."));
- EnableWindow(GetDlgItem(hW, IDC_RESLIST), FALSE);
- }
- else {
- if (NumSearchResults == 0) {
- SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_ADDSTRING, (WPARAM)0, (LPARAM)_("No addresses found."));
- EnableWindow(GetDlgItem(hW, IDC_RESLIST), FALSE);
- }
- else if (NumSearchResults > 100) {
- SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_ADDSTRING, (WPARAM)0, (LPARAM)_("Too many addresses found."));
- EnableWindow(GetDlgItem(hW, IDC_RESLIST), FALSE);
- }
- else {
- for (i = 0; i < NumSearchResults; i++) {
- u32 addr = SearchResults[i];
-
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- sprintf(buf, _("%.8X Current: %u (%.2X), Previous: %u (%.2X)"),
- addr, PSXMu8(addr), PSXMu8(addr), PrevMu8(addr), PrevMu8(addr));
- break;
-
- case SEARCHTYPE_16BIT:
- sprintf(buf, _("%.8X Current: %u (%.4X), Previous: %u (%.4X)"),
- addr, PSXMu16(addr), PSXMu16(addr), PrevMu16(addr), PrevMu16(addr));
- break;
-
- case SEARCHTYPE_32BIT:
- sprintf(buf, _("%.8X Current: %u (%.8X), Previous: %u (%.8X)"),
- addr, PSXMu32(addr), PSXMu32(addr), PrevMu32(addr), PrevMu32(addr));
- break;
-
- default:
- assert(FALSE); // impossible
- break;
- }
-
- SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_ADDSTRING, (WPARAM)0, (LPARAM)buf);
- SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_SETITEMDATA, i, (LPARAM)i);
- }
- EnableWindow(GetDlgItem(hW, IDC_RESLIST), TRUE);
- }
- }
-
- sprintf(buf, _("Founded Addresses: %d"), NumSearchResults);
- Static_SetText(GetDlgItem(hW, IDC_LABEL_RESULTSFOUND), buf);
-}
-
-static int iCurItem = 0;
-
-static LRESULT WINAPI CheatFreezeProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- u32 val;
- char buf[256];
-
- switch (uMsg) {
- case WM_INITDIALOG:
- SetWindowText(hW, _("Freeze"));
- Static_SetText(GetDlgItem(hW, IDC_LABEL_ADDRESS), _("Address:"));
- Static_SetText(GetDlgItem(hW, IDC_LABEL_VALUE), _("Value:"));
-
- sprintf(buf, "%.8X", SearchResults[iCurItem]);
- SetWindowText(GetDlgItem(hW, IDC_ADDRESS), buf);
-
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- val = PSXMu8(SearchResults[iCurItem]);
- break;
-
- case SEARCHTYPE_16BIT:
- val = PSXMu16(SearchResults[iCurItem]);
- break;
-
- case SEARCHTYPE_32BIT:
- val = PSXMu32(SearchResults[iCurItem]);
- break;
-
- default:
- assert(FALSE); // should not reach here
- break;
- }
-
- sprintf(buf, "%u", val);
- SetWindowText(GetDlgItem(hW, IDC_VALUE), buf);
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDOK:
- val = 0;
- GetWindowText(GetDlgItem(hW, IDC_VALUE), buf, 255);
- sscanf(buf, "%u", &val);
-
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- if (val > (u32)0xFF) {
- val = 0xFF;
- }
- sprintf(szCode, "%.8X %.4X", (SearchResults[iCurItem] & 0x1FFFFF) | (CHEAT_CONST8 << 24), val);
- break;
-
- case SEARCHTYPE_16BIT:
- if (val > (u32)0xFFFF) {
- val = 0xFFFF;
- }
- sprintf(szCode, "%.8X %.4X", (SearchResults[iCurItem] & 0x1FFFFF) | (CHEAT_CONST16 << 24), val);
- break;
-
- case SEARCHTYPE_32BIT:
- sprintf(szCode, "%.8X %.4X\n%.8X %.4X",
- (SearchResults[iCurItem] & 0x1FFFFF) | (CHEAT_CONST16 << 24), val & 0xFFFF,
- ((SearchResults[iCurItem] + 2) & 0x1FFFFF) | (CHEAT_CONST16 << 24), ((val & 0xFFFF0000) >> 16) & 0xFFFF);
- break;
-
- default:
- assert(FALSE); // should not reach here
- break;
- }
-
- sprintf(szDescr, _("Freeze %.8X"), SearchResults[iCurItem]);
-
- if (DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATEDIT), hW, (DLGPROC)CheatAddDlgProc)) {
- Cheats[NumCheats - 1].Enabled = 1;
- EndDialog(hW, TRUE);
- return TRUE;
- }
- break;
-
- case IDCANCEL:
- EndDialog(hW, FALSE);
- return TRUE;
- }
- break;
-
- case WM_CLOSE:
- EndDialog(hW, FALSE);
- return TRUE;
- }
-
- return FALSE;
-}
-
-static LRESULT WINAPI CheatModifyProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- u32 val;
- char buf[256];
-
- switch (uMsg) {
- case WM_INITDIALOG:
- SetWindowText(hW, _("Modify"));
- Static_SetText(GetDlgItem(hW, IDC_LABEL_ADDRESS), _("Address:"));
- Static_SetText(GetDlgItem(hW, IDC_LABEL_VALUE), _("Value:"));
-
- sprintf(buf, "%.8X", SearchResults[iCurItem]);
- SetWindowText(GetDlgItem(hW, IDC_ADDRESS), buf);
-
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- val = PSXMu8(SearchResults[iCurItem]);
- break;
-
- case SEARCHTYPE_16BIT:
- val = PSXMu16(SearchResults[iCurItem]);
- break;
-
- case SEARCHTYPE_32BIT:
- val = PSXMu32(SearchResults[iCurItem]);
- break;
-
- default:
- assert(FALSE); // should not reach here
- break;
- }
-
- sprintf(buf, "%u", val);
- SetWindowText(GetDlgItem(hW, IDC_VALUE), buf);
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDOK:
- val = 0;
- GetWindowText(GetDlgItem(hW, IDC_VALUE), buf, 255);
- sscanf(buf, "%u", &val);
-
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- if (val > 0xFF) {
- val = 0xFF;
- }
- psxMemWrite8(SearchResults[iCurItem], (u8)val);
- break;
-
- case SEARCHTYPE_16BIT:
- if (val > 0xFFFF) {
- val = 0xFFFF;
- }
- psxMemWrite16(SearchResults[iCurItem], (u16)val);
- break;
-
- case SEARCHTYPE_32BIT:
- psxMemWrite32(SearchResults[iCurItem], (u32)val);
- break;
-
- default:
- assert(FALSE); // should not reach here
- break;
- }
-
- EndDialog(hW, TRUE);
- return TRUE;
-
- case IDCANCEL:
- EndDialog(hW, TRUE);
- return FALSE;
- }
- break;
-
- case WM_CLOSE:
- EndDialog(hW, TRUE);
- return FALSE;
- }
-
- return FALSE;
-}
-
-LRESULT WINAPI CheatSearchDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- char buf[256];
- uint32_t i;
-
- switch (uMsg) {
- case WM_INITDIALOG:
- SetWindowText(hW, _("Cheat Search"));
-
- Static_SetText(GetDlgItem(hW, IDC_LABEL_SEARCHFOR), _("Search For:"));
- Static_SetText(GetDlgItem(hW, IDC_LABEL_DATATYPE), _("Data Type:"));
- Static_SetText(GetDlgItem(hW, IDC_LABEL_VALUE), _("Value:"));
- Static_SetText(GetDlgItem(hW, IDC_LABEL_DATABASE), _("Data Base:"));
- Static_SetText(GetDlgItem(hW, IDC_LABEL_TO), _("To:"));
- Button_SetText(GetDlgItem(hW, IDC_FREEZE), _("&Freeze"));
- Button_SetText(GetDlgItem(hW, IDC_MODIFY), _("&Modify"));
- Button_SetText(GetDlgItem(hW, IDC_COPY), _("&Copy"));
- Button_SetText(GetDlgItem(hW, IDC_SEARCH), _("&Search"));
- Button_SetText(GetDlgItem(hW, IDC_NEWSEARCH), _("&New Search"));
- Button_SetText(GetDlgItem(hW, IDCANCEL), _("C&lose"));
-
- SendMessage(GetDlgItem(hW, IDC_DATATYPE), CB_ADDSTRING, 0, (LPARAM)_("8-bit"));
- SendMessage(GetDlgItem(hW, IDC_DATATYPE), CB_ADDSTRING, 0, (LPARAM)_("16-bit"));
- SendMessage(GetDlgItem(hW, IDC_DATATYPE), CB_ADDSTRING, 0, (LPARAM)_("32-bit"));
- SendMessage(GetDlgItem(hW, IDC_DATABASE), CB_ADDSTRING, 0, (LPARAM)_("Decimal"));
- SendMessage(GetDlgItem(hW, IDC_DATABASE), CB_ADDSTRING, 0, (LPARAM)_("Hexadecimal"));
-
- UpdateCheatSearchDlg(hW);
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDCANCEL:
- EndDialog(hW, FALSE);
- return TRUE;
-
- case IDC_FREEZE:
- iCurItem = SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_GETCURSEL, 0, 0);
- DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATVALEDIT), hW, (DLGPROC)CheatFreezeProc);
- break;
-
- case IDC_MODIFY:
- iCurItem = SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_GETCURSEL, 0, 0);
- DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATVALEDIT), hW, (DLGPROC)CheatModifyProc);
- UpdateCheatSearchDlg(hW);
- break;
-
- case IDC_COPY:
- i = SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_GETCURSEL, 0, 0);
- sprintf(buf, "%.8X", SearchResults[i]);
-
- if (OpenClipboard(gApp.hWnd)) {
- HGLOBAL hglbCopy = GlobalAlloc(GHND, 256);
- char *p;
-
- if (hglbCopy != NULL) {
- p = (char *)GlobalLock(hglbCopy);
- strcpy(p, buf);
- GlobalUnlock(p);
-
- EmptyClipboard();
- SetClipboardData(CF_TEXT, (HANDLE)hglbCopy);
- }
-
- CloseClipboard();
- }
- break;
-
- case IDC_SEARCH:
- current_search = SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_GETCURSEL, 0, 0);
- current_searchtype = SendMessage(GetDlgItem(hW, IDC_DATATYPE), CB_GETCURSEL, 0, 0);
- current_searchbase = SendMessage(GetDlgItem(hW, IDC_DATABASE), CB_GETCURSEL, 0, 0);
- current_valuefrom = 0;
- current_valueto = 0;
-
- if (current_searchbase == SEARCHBASE_DEC) {
- GetWindowText(GetDlgItem(hW, IDC_VALUEFROM), (LPTSTR)buf, 255);
- sscanf(buf, "%u", &current_valuefrom);
- GetWindowText(GetDlgItem(hW, IDC_VALUETO), (LPTSTR)buf, 255);
- sscanf(buf, "%u", &current_valueto);
- }
- else {
- GetWindowText(GetDlgItem(hW, IDC_VALUEFROM), (LPTSTR)buf, 255);
- sscanf(buf, "%x", &current_valuefrom);
- GetWindowText(GetDlgItem(hW, IDC_VALUETO), (LPTSTR)buf, 255);
- sscanf(buf, "%x", &current_valueto);
- }
-
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- if (current_valuefrom > (u32)0xFF) {
- current_valuefrom = 0xFF;
- }
- if (current_valueto > (u32)0xFF) {
- current_valueto = 0xFF;
- }
- break;
-
- case SEARCHTYPE_16BIT:
- if (current_valuefrom > (u32)0xFFFF) {
- current_valuefrom = 0xFFFF;
- }
- if (current_valueto > (u32)0xFFFF) {
- current_valueto = 0xFFFF;
- }
- break;
- }
-
- if (current_search == SEARCH_RANGE && current_valuefrom > current_valueto) {
- u32 t = current_valuefrom;
- current_valuefrom = current_valueto;
- current_valueto = t;
- }
-
- switch (current_search) {
- case SEARCH_EQUALVAL:
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- CheatSearchEqual8((u8)current_valuefrom);
- break;
-
- case SEARCHTYPE_16BIT:
- CheatSearchEqual16((u16)current_valuefrom);
- break;
-
- case SEARCHTYPE_32BIT:
- CheatSearchEqual32((u32)current_valuefrom);
- break;
- }
- break;
-
- case SEARCH_NOTEQUALVAL:
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- CheatSearchNotEqual8((u8)current_valuefrom);
- break;
-
- case SEARCHTYPE_16BIT:
- CheatSearchNotEqual16((u16)current_valuefrom);
- break;
-
- case SEARCHTYPE_32BIT:
- CheatSearchNotEqual32((u32)current_valuefrom);
- break;
- }
- break;
-
- case SEARCH_RANGE:
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- CheatSearchRange8((u8)current_valuefrom, (u8)current_valueto);
- break;
-
- case SEARCHTYPE_16BIT:
- CheatSearchRange16((u16)current_valuefrom, (u16)current_valueto);
- break;
-
- case SEARCHTYPE_32BIT:
- CheatSearchRange32((u32)current_valuefrom, (u32)current_valueto);
- break;
- }
- break;
-
- case SEARCH_INCBY:
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- CheatSearchIncreasedBy8((u8)current_valuefrom);
- break;
-
- case SEARCHTYPE_16BIT:
- CheatSearchIncreasedBy16((u16)current_valuefrom);
- break;
-
- case SEARCHTYPE_32BIT:
- CheatSearchIncreasedBy32((u32)current_valuefrom);
- break;
- }
- break;
-
- case SEARCH_DECBY:
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- CheatSearchDecreasedBy8((u8)current_valuefrom);
- break;
-
- case SEARCHTYPE_16BIT:
- CheatSearchDecreasedBy16((u16)current_valuefrom);
- break;
-
- case SEARCHTYPE_32BIT:
- CheatSearchDecreasedBy32((u32)current_valuefrom);
- break;
- }
- break;
-
- case SEARCH_INC:
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- CheatSearchIncreased8();
- break;
-
- case SEARCHTYPE_16BIT:
- CheatSearchIncreased16();
- break;
-
- case SEARCHTYPE_32BIT:
- CheatSearchIncreased32();
- break;
- }
- break;
-
- case SEARCH_DEC:
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- CheatSearchDecreased8();
- break;
-
- case SEARCHTYPE_16BIT:
- CheatSearchDecreased16();
- break;
-
- case SEARCHTYPE_32BIT:
- CheatSearchDecreased32();
- break;
- }
- break;
-
- case SEARCH_DIFFERENT:
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- CheatSearchDifferent8();
- break;
-
- case SEARCHTYPE_16BIT:
- CheatSearchDifferent16();
- break;
-
- case SEARCHTYPE_32BIT:
- CheatSearchDifferent32();
- break;
- }
- break;
-
- case SEARCH_NOCHANGE:
- switch (current_searchtype) {
- case SEARCHTYPE_8BIT:
- CheatSearchNoChange8();
- break;
-
- case SEARCHTYPE_16BIT:
- CheatSearchNoChange16();
- break;
-
- case SEARCHTYPE_32BIT:
- CheatSearchNoChange32();
- break;
- }
- break;
-
- default:
- assert(FALSE); // not possible
- break;
- }
-
- UpdateCheatSearchDlg(hW);
- break;
-
- case IDC_NEWSEARCH:
- FreeCheatSearchMem();
- FreeCheatSearchResults();
-
- current_search = SEARCH_EQUALVAL;
- current_searchtype = SEARCHTYPE_8BIT;
- current_searchbase = SEARCHBASE_DEC;
- current_valuefrom = 0;
- current_valueto = 0;
-
- UpdateCheatSearchDlg(hW);
- EnableWindow(GetDlgItem(hW, IDC_VALUEFROM), TRUE);
- break;
-
- case IDC_SEARCHFOR:
- EnableWindow(GetDlgItem(hW, IDC_VALUEFROM), TRUE);
-
- if (SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_GETCURSEL, 0, 0) == SEARCH_RANGE) {
- ShowWindow(GetDlgItem(hW, IDC_LABEL_TO), SW_SHOW);
- ShowWindow(GetDlgItem(hW, IDC_VALUETO), SW_SHOW);
- }
- else {
- ShowWindow(GetDlgItem(hW, IDC_LABEL_TO), SW_HIDE);
- ShowWindow(GetDlgItem(hW, IDC_VALUETO), SW_HIDE);
-
- if (SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_GETCURSEL, 0, 0) >= SEARCH_INC) {
- EnableWindow(GetDlgItem(hW, IDC_VALUEFROM), FALSE);
- }
- }
- break;
-
- case IDC_DATABASE:
- if (SendMessage(GetDlgItem(hW, IDC_DATABASE), CB_GETCURSEL, 0, 0) == SEARCHBASE_DEC) {
- if (current_searchbase == SEARCHBASE_HEX) {
- GetWindowText(GetDlgItem(hW, IDC_VALUEFROM), (LPTSTR)buf, 255);
- sscanf(buf, "%x", &i);
- sprintf(buf, "%u", i);
- SetWindowText(GetDlgItem(hW, IDC_VALUEFROM), (LPCTSTR)buf);
-
- GetWindowText(GetDlgItem(hW, IDC_VALUETO), (LPTSTR)buf, 255);
- sscanf(buf, "%x", &i);
- sprintf(buf, "%u", i);
- SetWindowText(GetDlgItem(hW, IDC_VALUETO), (LPCTSTR)buf);
- }
- }
- else if (current_searchbase == SEARCHBASE_DEC){
- GetWindowText(GetDlgItem(hW, IDC_VALUEFROM), (LPTSTR)buf, 255);
- sscanf(buf, "%u", &i);
- sprintf(buf, "%X", i);
- SetWindowText(GetDlgItem(hW, IDC_VALUEFROM), (LPCTSTR)buf);
-
- GetWindowText(GetDlgItem(hW, IDC_VALUETO), (LPTSTR)buf, 255);
- sscanf(buf, "%u", &i);
- sprintf(buf, "%X", i);
- SetWindowText(GetDlgItem(hW, IDC_VALUETO), (LPCTSTR)buf);
- }
- current_searchbase = SendMessage(GetDlgItem(hW, IDC_DATABASE), CB_GETCURSEL, 0, 0);
- break;
-
- case IDC_RESLIST:
- switch (HIWORD(wParam)) {
- case LBN_SELCHANGE:
- Button_Enable(GetDlgItem(hW, IDC_FREEZE), TRUE);
- Button_Enable(GetDlgItem(hW, IDC_MODIFY), TRUE);
- Button_Enable(GetDlgItem(hW, IDC_COPY), TRUE);
- break;
-
- case LBN_SELCANCEL:
- Button_Enable(GetDlgItem(hW, IDC_FREEZE), FALSE);
- Button_Enable(GetDlgItem(hW, IDC_MODIFY), FALSE);
- Button_Enable(GetDlgItem(hW, IDC_COPY), FALSE);
- break;
- }
- break;
- }
- break;
-
- case WM_CLOSE:
- EndDialog(hW, FALSE);
- return TRUE;
- }
-
- return FALSE;
-}
+/* Cheat Support for PCSX-Reloaded
+ * Copyright (C) 2009, Wei Mingzhi <whistler_wmz@users.sf.net>.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <windows.h>
+#include <windowsx.h>
+#ifndef _WIN32_IE
+#define _WIN32_IE 0x0400
+#endif
+#include <commctrl.h>
+#include <stdio.h>
+#include "psxcommon.h"
+#include "psxmem.h"
+#include "cheat.h"
+#include "resource.h"
+#include "Win32.h"
+
+static void UpdateCheatDlg(HWND hW) {
+ HWND List;
+ LV_ITEM item;
+ int i;
+
+ List = GetDlgItem(hW, IDC_CODELIST);
+
+ ListView_DeleteAllItems(List);
+
+ for (i = 0; i < NumCheats; i++) {
+ memset(&item, 0, sizeof(item));
+
+ item.mask = LVIF_TEXT;
+ item.iItem = i;
+ item.pszText = Cheats[i].Descr;
+ item.iSubItem = 0;
+
+ SendMessage(List, LVM_INSERTITEM, 0, (LPARAM)&item);
+
+ item.pszText = (Cheats[i].Enabled ? _("Yes") : _("No"));
+ item.iSubItem = 1;
+
+ SendMessage(List, LVM_SETITEM, 0, (LPARAM)&item);
+ }
+}
+
+static int iEditItem = -1;
+static char szDescr[256], szCode[1024];
+
+static LRESULT WINAPI CheatEditDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ int i;
+
+ switch (uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("Edit Cheat"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_DESCR), _("Description:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_CODE), _("Cheat Code:"));
+ Button_SetText(GetDlgItem(hW, IDOK), _("OK"));
+ Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));
+
+ assert(iEditItem != -1 && iEditItem < NumCheats);
+
+ Edit_SetText(GetDlgItem(hW, IDC_DESCR), Cheats[iEditItem].Descr);
+
+ szCode[0] = '\0';
+ for (i = Cheats[iEditItem].First; i < Cheats[iEditItem].First + Cheats[iEditItem].n; i++) {
+ sprintf(szDescr, "%.8X %.4X\r\n", CheatCodes[i].Addr, CheatCodes[i].Val);
+ strcat(szCode, szDescr);
+ }
+ Edit_SetText(GetDlgItem(hW, IDC_CODE), szCode);
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case IDOK:
+ Edit_GetText(GetDlgItem(hW, IDC_DESCR), szDescr, 256);
+ Edit_GetText(GetDlgItem(hW, IDC_CODE), szCode, 1024);
+
+ if (EditCheat(iEditItem, szDescr, szCode) != 0) {
+ SysMessage(_("Invalid cheat code!"));
+ }
+ else {
+ EndDialog(hW, TRUE);
+ return TRUE;
+ }
+ break;
+
+ case IDCANCEL:
+ EndDialog(hW, FALSE);
+ return TRUE;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog(hW, FALSE);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static LRESULT WINAPI CheatAddDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ switch (uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("Add New Cheat"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_DESCR), _("Description:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_CODE), _("Cheat Code:"));
+ Button_SetText(GetDlgItem(hW, IDOK), _("OK"));
+ Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));
+ Edit_SetText(GetDlgItem(hW, IDC_DESCR), szDescr);
+ Edit_SetText(GetDlgItem(hW, IDC_CODE), szCode);
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case IDOK:
+ Edit_GetText(GetDlgItem(hW, IDC_DESCR), szDescr, 256);
+ Edit_GetText(GetDlgItem(hW, IDC_CODE), szCode, 1024);
+
+ if (AddCheat(szDescr, szCode) != 0) {
+ SysMessage(_("Invalid cheat code!"));
+ }
+ else {
+ EndDialog(hW, TRUE);
+ return TRUE;
+ }
+ break;
+
+ case IDCANCEL:
+ EndDialog(hW, FALSE);
+ return TRUE;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog(hW, FALSE);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+LRESULT WINAPI CheatDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ HWND List;
+ LV_COLUMN col;
+ LV_ITEM item;
+ int i;
+ OPENFILENAME ofn;
+ char szFileName[256];
+ char szFileTitle[256];
+ char szFilter[256];
+
+ switch (uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("Edit Cheat Codes"));
+
+ Button_SetText(GetDlgItem(hW, IDC_ADDCODE), _("&Add Code"));
+ Button_SetText(GetDlgItem(hW, IDC_EDITCODE), _("&Edit Code"));
+ Button_SetText(GetDlgItem(hW, IDC_REMOVECODE), _("&Remove Code"));
+ Button_SetText(GetDlgItem(hW, IDC_TOGGLECODE), _("&Enable/Disable"));
+ Button_SetText(GetDlgItem(hW, IDC_LOADCODE), _("&Load..."));
+ Button_SetText(GetDlgItem(hW, IDC_SAVECODE), _("&Save As..."));
+ Button_SetText(GetDlgItem(hW, IDCANCEL), _("&Close"));
+
+ List = GetDlgItem(hW, IDC_CODELIST);
+
+ SendMessage(List, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT);
+
+ memset(&col, 0, sizeof(col));
+
+ col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
+ col.fmt = LVCFMT_LEFT;
+
+ col.pszText = _("Description");
+ col.cx = 400;
+
+ SendMessage(List, LVM_INSERTCOLUMN, 0, (LPARAM)&col);
+
+ col.pszText = _("Enabled");
+ col.cx = 55;
+
+ SendMessage(List, LVM_INSERTCOLUMN, 1, (LPARAM)&col);
+
+ UpdateCheatDlg(hW);
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case IDCANCEL:
+ EndDialog(hW, FALSE);
+ return TRUE;
+
+ case IDC_ADDCODE:
+ i = NumCheats;
+ szDescr[0] = '\0';
+ szCode[0] = '\0';
+
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATEDIT), hW, (DLGPROC)CheatAddDlgProc);
+
+ if (NumCheats > i) {
+ // new cheat added
+ List = GetDlgItem(hW, IDC_CODELIST);
+ memset(&item, 0, sizeof(item));
+
+ item.mask = LVIF_TEXT;
+ item.iItem = i;
+ item.pszText = Cheats[i].Descr;
+ item.iSubItem = 0;
+
+ SendMessage(List, LVM_INSERTITEM, 0, (LPARAM)&item);
+
+ item.pszText = (Cheats[i].Enabled ? _("Yes") : _("No"));
+ item.iSubItem = 1;
+
+ SendMessage(List, LVM_SETITEM, 0, (LPARAM)&item);
+ }
+ break;
+
+ case IDC_EDITCODE:
+ List = GetDlgItem(hW, IDC_CODELIST);
+ iEditItem = ListView_GetSelectionMark(List);
+
+ if (iEditItem != -1) {
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATEDIT), hW, (DLGPROC)CheatEditDlgProc);
+
+ memset(&item, 0, sizeof(item));
+
+ item.mask = LVIF_TEXT;
+ item.iItem = iEditItem;
+ item.pszText = Cheats[iEditItem].Descr;
+ item.iSubItem = 0;
+
+ SendMessage(List, LVM_SETITEM, 0, (LPARAM)&item);
+ }
+ break;
+
+ case IDC_REMOVECODE:
+ List = GetDlgItem(hW, IDC_CODELIST);
+ i = ListView_GetSelectionMark(List);
+
+ if (i != -1) {
+ RemoveCheat(i);
+ ListView_DeleteItem(List, i);
+ ListView_SetSelectionMark(List, -1);
+ }
+ break;
+
+ case IDC_TOGGLECODE:
+ List = GetDlgItem(hW, IDC_CODELIST);
+ i = ListView_GetSelectionMark(List);
+
+ if (i != -1) {
+ Cheats[i].Enabled ^= 1;
+
+ memset(&item, 0, sizeof(item));
+
+ item.mask = LVIF_TEXT;
+ item.iItem = i;
+ item.pszText = (Cheats[i].Enabled ? _("Yes") : _("No"));
+ item.iSubItem = 1;
+
+ SendMessage(List, LVM_SETITEM, 0, (LPARAM)&item);
+ }
+ break;
+
+ case IDC_LOADCODE:
+ memset(&szFileName, 0, sizeof(szFileName));
+ memset(&szFileTitle, 0, sizeof(szFileTitle));
+ memset(&szFilter, 0, sizeof(szFilter));
+
+ strcpy(szFilter, _("PCSXR Cheat Code Files"));
+ strcatz(szFilter, "*.*");
+
+ ofn.lStructSize = sizeof(OPENFILENAME);
+ ofn.hwndOwner = hW;
+ ofn.lpstrFilter = szFilter;
+ ofn.lpstrCustomFilter = NULL;
+ ofn.nMaxCustFilter = 0;
+ ofn.nFilterIndex = 1;
+ ofn.lpstrFile = szFileName;
+ ofn.nMaxFile = 256;
+ ofn.lpstrInitialDir = ".\\Cheats";
+ ofn.lpstrFileTitle = szFileTitle;
+ ofn.nMaxFileTitle = 256;
+ ofn.lpstrTitle = NULL;
+ ofn.lpstrDefExt = "CHT";
+ ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
+
+ if (GetOpenFileName((LPOPENFILENAME)&ofn)) {
+ LoadCheats(szFileName);
+ UpdateCheatDlg(hW);
+ }
+ break;
+
+ case IDC_SAVECODE:
+ memset(&szFileName, 0, sizeof(szFileName));
+ memset(&szFileTitle, 0, sizeof(szFileTitle));
+ memset(&szFilter, 0, sizeof(szFilter));
+
+ strcpy(szFilter, _("PCSXR Cheat Code Files"));
+ strcatz(szFilter, "*.*");
+
+ ofn.lStructSize = sizeof(OPENFILENAME);
+ ofn.hwndOwner = hW;
+ ofn.lpstrFilter = szFilter;
+ ofn.lpstrCustomFilter = NULL;
+ ofn.nMaxCustFilter = 0;
+ ofn.nFilterIndex = 1;
+ ofn.lpstrFile = szFileName;
+ ofn.nMaxFile = 256;
+ ofn.lpstrInitialDir = ".\\Cheats";
+ ofn.lpstrFileTitle = szFileTitle;
+ ofn.nMaxFileTitle = 256;
+ ofn.lpstrTitle = NULL;
+ ofn.lpstrDefExt = "CHT";
+ ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_OVERWRITEPROMPT;
+
+ if (GetOpenFileName((LPOPENFILENAME)&ofn)) {
+ SaveCheats(szFileName);
+ }
+ break;
+ }
+ break;
+
+ case WM_NOTIFY:
+ switch (LOWORD(wParam)) {
+ case IDC_CODELIST:
+ List = GetDlgItem(hW, IDC_CODELIST);
+ i = ListView_GetSelectionMark(List);
+
+ if (i != -1) {
+ Button_Enable(GetDlgItem(hW, IDC_EDITCODE), TRUE);
+ Button_Enable(GetDlgItem(hW, IDC_REMOVECODE), TRUE);
+ Button_Enable(GetDlgItem(hW, IDC_TOGGLECODE), TRUE);
+ }
+ else {
+ Button_Enable(GetDlgItem(hW, IDC_EDITCODE), FALSE);
+ Button_Enable(GetDlgItem(hW, IDC_REMOVECODE), FALSE);
+ Button_Enable(GetDlgItem(hW, IDC_TOGGLECODE), FALSE);
+ }
+
+ Button_Enable(GetDlgItem(hW, IDC_SAVECODE), (NumCheats > 0));
+ break;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog(hW, FALSE);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+#define SEARCH_EQUALVAL 0
+#define SEARCH_NOTEQUALVAL 1
+#define SEARCH_RANGE 2
+#define SEARCH_INCBY 3
+#define SEARCH_DECBY 4
+#define SEARCH_INC 5
+#define SEARCH_DEC 6
+#define SEARCH_DIFFERENT 7
+#define SEARCH_NOCHANGE 8
+
+#define SEARCHTYPE_8BIT 0
+#define SEARCHTYPE_16BIT 1
+#define SEARCHTYPE_32BIT 2
+
+#define SEARCHBASE_DEC 0
+#define SEARCHBASE_HEX 1
+
+static char current_search = SEARCH_EQUALVAL;
+static char current_searchtype = SEARCHTYPE_8BIT;
+static char current_searchbase = SEARCHBASE_DEC;
+static uint32_t current_valuefrom = 0;
+static uint32_t current_valueto = 0;
+
+static void UpdateCheatSearchDlg(HWND hW) {
+ char buf[256];
+ int i;
+
+ SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_RESETCONTENT, 0, 0);
+ SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_RESETCONTENT, 0, 0);
+
+ Button_Enable(GetDlgItem(hW, IDC_FREEZE), FALSE);
+ Button_Enable(GetDlgItem(hW, IDC_MODIFY), FALSE);
+ Button_Enable(GetDlgItem(hW, IDC_COPY), FALSE);
+
+ SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Equal Value"));
+ SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Not Equal Value"));
+ SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Range"));
+
+ if (prevM != NULL) {
+ SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Increased By"));
+ SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Decreased By"));
+ SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Increased"));
+ SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Decreased"));
+ SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("Different"));
+ SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_ADDSTRING, 0, (LPARAM)_("No Change"));
+
+ ComboBox_Enable(GetDlgItem(hW, IDC_DATATYPE), FALSE);
+ }
+ else {
+ ComboBox_Enable(GetDlgItem(hW, IDC_DATATYPE), TRUE);
+ }
+
+ SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_SETCURSEL, (WPARAM)current_search, 0);
+
+ if (current_search == SEARCH_RANGE) {
+ ShowWindow(GetDlgItem(hW, IDC_LABEL_TO), SW_SHOW);
+ ShowWindow(GetDlgItem(hW, IDC_VALUETO), SW_SHOW);
+ }
+ else {
+ ShowWindow(GetDlgItem(hW, IDC_LABEL_TO), SW_HIDE);
+ ShowWindow(GetDlgItem(hW, IDC_VALUETO), SW_HIDE);
+ }
+
+ SendMessage(GetDlgItem(hW, IDC_DATATYPE), CB_SETCURSEL, (WPARAM)current_searchtype, 0);
+ SendMessage(GetDlgItem(hW, IDC_DATABASE), CB_SETCURSEL, (WPARAM)current_searchbase, 0);
+
+ if (current_searchbase == SEARCHBASE_HEX) {
+ sprintf(buf, "%X", current_valuefrom);
+ SetWindowText(GetDlgItem(hW, IDC_VALUEFROM), buf);
+ sprintf(buf, "%X", current_valueto);
+ SetWindowText(GetDlgItem(hW, IDC_VALUETO), buf);
+ }
+ else {
+ sprintf(buf, "%u", current_valuefrom);
+ SetWindowText(GetDlgItem(hW, IDC_VALUEFROM), buf);
+ sprintf(buf, "%u", current_valueto);
+ SetWindowText(GetDlgItem(hW, IDC_VALUETO), buf);
+ }
+
+ if (prevM == NULL) {
+ SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_ADDSTRING, (WPARAM)0, (LPARAM)_("Enter the values and start your search."));
+ EnableWindow(GetDlgItem(hW, IDC_RESLIST), FALSE);
+ }
+ else {
+ if (NumSearchResults == 0) {
+ SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_ADDSTRING, (WPARAM)0, (LPARAM)_("No addresses found."));
+ EnableWindow(GetDlgItem(hW, IDC_RESLIST), FALSE);
+ }
+ else if (NumSearchResults > 100) {
+ SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_ADDSTRING, (WPARAM)0, (LPARAM)_("Too many addresses found."));
+ EnableWindow(GetDlgItem(hW, IDC_RESLIST), FALSE);
+ }
+ else {
+ for (i = 0; i < NumSearchResults; i++) {
+ u32 addr = SearchResults[i];
+
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ sprintf(buf, _("%.8X Current: %u (%.2X), Previous: %u (%.2X)"),
+ addr, PSXMu8(addr), PSXMu8(addr), PrevMu8(addr), PrevMu8(addr));
+ break;
+
+ case SEARCHTYPE_16BIT:
+ sprintf(buf, _("%.8X Current: %u (%.4X), Previous: %u (%.4X)"),
+ addr, PSXMu16(addr), PSXMu16(addr), PrevMu16(addr), PrevMu16(addr));
+ break;
+
+ case SEARCHTYPE_32BIT:
+ sprintf(buf, _("%.8X Current: %u (%.8X), Previous: %u (%.8X)"),
+ addr, PSXMu32(addr), PSXMu32(addr), PrevMu32(addr), PrevMu32(addr));
+ break;
+
+ default:
+ assert(FALSE); // impossible
+ break;
+ }
+
+ SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_ADDSTRING, (WPARAM)0, (LPARAM)buf);
+ SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_SETITEMDATA, i, (LPARAM)i);
+ }
+ EnableWindow(GetDlgItem(hW, IDC_RESLIST), TRUE);
+ }
+ }
+
+ sprintf(buf, _("Founded Addresses: %d"), NumSearchResults);
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_RESULTSFOUND), buf);
+}
+
+static int iCurItem = 0;
+
+static LRESULT WINAPI CheatFreezeProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ u32 val;
+ char buf[256];
+
+ switch (uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("Freeze"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_ADDRESS), _("Address:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_VALUE), _("Value:"));
+
+ sprintf(buf, "%.8X", SearchResults[iCurItem]);
+ SetWindowText(GetDlgItem(hW, IDC_ADDRESS), buf);
+
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ val = PSXMu8(SearchResults[iCurItem]);
+ break;
+
+ case SEARCHTYPE_16BIT:
+ val = PSXMu16(SearchResults[iCurItem]);
+ break;
+
+ case SEARCHTYPE_32BIT:
+ val = PSXMu32(SearchResults[iCurItem]);
+ break;
+
+ default:
+ assert(FALSE); // should not reach here
+ break;
+ }
+
+ sprintf(buf, "%u", val);
+ SetWindowText(GetDlgItem(hW, IDC_VALUE), buf);
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case IDOK:
+ val = 0;
+ GetWindowText(GetDlgItem(hW, IDC_VALUE), buf, 255);
+ sscanf(buf, "%u", &val);
+
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ if (val > (u32)0xFF) {
+ val = 0xFF;
+ }
+ sprintf(szCode, "%.8X %.4X", (SearchResults[iCurItem] & 0x1FFFFF) | (CHEAT_CONST8 << 24), val);
+ break;
+
+ case SEARCHTYPE_16BIT:
+ if (val > (u32)0xFFFF) {
+ val = 0xFFFF;
+ }
+ sprintf(szCode, "%.8X %.4X", (SearchResults[iCurItem] & 0x1FFFFF) | (CHEAT_CONST16 << 24), val);
+ break;
+
+ case SEARCHTYPE_32BIT:
+ sprintf(szCode, "%.8X %.4X\n%.8X %.4X",
+ (SearchResults[iCurItem] & 0x1FFFFF) | (CHEAT_CONST16 << 24), val & 0xFFFF,
+ ((SearchResults[iCurItem] + 2) & 0x1FFFFF) | (CHEAT_CONST16 << 24), ((val & 0xFFFF0000) >> 16) & 0xFFFF);
+ break;
+
+ default:
+ assert(FALSE); // should not reach here
+ break;
+ }
+
+ sprintf(szDescr, _("Freeze %.8X"), SearchResults[iCurItem]);
+
+ if (DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATEDIT), hW, (DLGPROC)CheatAddDlgProc)) {
+ Cheats[NumCheats - 1].Enabled = 1;
+ EndDialog(hW, TRUE);
+ return TRUE;
+ }
+ break;
+
+ case IDCANCEL:
+ EndDialog(hW, FALSE);
+ return TRUE;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog(hW, FALSE);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static LRESULT WINAPI CheatModifyProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ u32 val;
+ char buf[256];
+
+ switch (uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("Modify"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_ADDRESS), _("Address:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_VALUE), _("Value:"));
+
+ sprintf(buf, "%.8X", SearchResults[iCurItem]);
+ SetWindowText(GetDlgItem(hW, IDC_ADDRESS), buf);
+
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ val = PSXMu8(SearchResults[iCurItem]);
+ break;
+
+ case SEARCHTYPE_16BIT:
+ val = PSXMu16(SearchResults[iCurItem]);
+ break;
+
+ case SEARCHTYPE_32BIT:
+ val = PSXMu32(SearchResults[iCurItem]);
+ break;
+
+ default:
+ assert(FALSE); // should not reach here
+ break;
+ }
+
+ sprintf(buf, "%u", val);
+ SetWindowText(GetDlgItem(hW, IDC_VALUE), buf);
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case IDOK:
+ val = 0;
+ GetWindowText(GetDlgItem(hW, IDC_VALUE), buf, 255);
+ sscanf(buf, "%u", &val);
+
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ if (val > 0xFF) {
+ val = 0xFF;
+ }
+ psxMemWrite8(SearchResults[iCurItem], (u8)val);
+ break;
+
+ case SEARCHTYPE_16BIT:
+ if (val > 0xFFFF) {
+ val = 0xFFFF;
+ }
+ psxMemWrite16(SearchResults[iCurItem], (u16)val);
+ break;
+
+ case SEARCHTYPE_32BIT:
+ psxMemWrite32(SearchResults[iCurItem], (u32)val);
+ break;
+
+ default:
+ assert(FALSE); // should not reach here
+ break;
+ }
+
+ EndDialog(hW, TRUE);
+ return TRUE;
+
+ case IDCANCEL:
+ EndDialog(hW, TRUE);
+ return FALSE;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog(hW, TRUE);
+ return FALSE;
+ }
+
+ return FALSE;
+}
+
+LRESULT WINAPI CheatSearchDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ char buf[256];
+ uint32_t i;
+
+ switch (uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("Cheat Search"));
+
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_SEARCHFOR), _("Search For:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_DATATYPE), _("Data Type:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_VALUE), _("Value:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_DATABASE), _("Data Base:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_TO), _("To:"));
+ Button_SetText(GetDlgItem(hW, IDC_FREEZE), _("&Freeze"));
+ Button_SetText(GetDlgItem(hW, IDC_MODIFY), _("&Modify"));
+ Button_SetText(GetDlgItem(hW, IDC_COPY), _("&Copy"));
+ Button_SetText(GetDlgItem(hW, IDC_SEARCH), _("&Search"));
+ Button_SetText(GetDlgItem(hW, IDC_NEWSEARCH), _("&New Search"));
+ Button_SetText(GetDlgItem(hW, IDCANCEL), _("C&lose"));
+
+ SendMessage(GetDlgItem(hW, IDC_DATATYPE), CB_ADDSTRING, 0, (LPARAM)_("8-bit"));
+ SendMessage(GetDlgItem(hW, IDC_DATATYPE), CB_ADDSTRING, 0, (LPARAM)_("16-bit"));
+ SendMessage(GetDlgItem(hW, IDC_DATATYPE), CB_ADDSTRING, 0, (LPARAM)_("32-bit"));
+ SendMessage(GetDlgItem(hW, IDC_DATABASE), CB_ADDSTRING, 0, (LPARAM)_("Decimal"));
+ SendMessage(GetDlgItem(hW, IDC_DATABASE), CB_ADDSTRING, 0, (LPARAM)_("Hexadecimal"));
+
+ UpdateCheatSearchDlg(hW);
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case IDCANCEL:
+ EndDialog(hW, FALSE);
+ return TRUE;
+
+ case IDC_FREEZE:
+ iCurItem = SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_GETCURSEL, 0, 0);
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATVALEDIT), hW, (DLGPROC)CheatFreezeProc);
+ break;
+
+ case IDC_MODIFY:
+ iCurItem = SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_GETCURSEL, 0, 0);
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATVALEDIT), hW, (DLGPROC)CheatModifyProc);
+ UpdateCheatSearchDlg(hW);
+ break;
+
+ case IDC_COPY:
+ i = SendMessage(GetDlgItem(hW, IDC_RESLIST), LB_GETCURSEL, 0, 0);
+ sprintf(buf, "%.8X", SearchResults[i]);
+
+ if (OpenClipboard(gApp.hWnd)) {
+ HGLOBAL hglbCopy = GlobalAlloc(GHND, 256);
+ char *p;
+
+ if (hglbCopy != NULL) {
+ p = (char *)GlobalLock(hglbCopy);
+ strcpy(p, buf);
+ GlobalUnlock(p);
+
+ EmptyClipboard();
+ SetClipboardData(CF_TEXT, (HANDLE)hglbCopy);
+ }
+
+ CloseClipboard();
+ }
+ break;
+
+ case IDC_SEARCH:
+ current_search = SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_GETCURSEL, 0, 0);
+ current_searchtype = SendMessage(GetDlgItem(hW, IDC_DATATYPE), CB_GETCURSEL, 0, 0);
+ current_searchbase = SendMessage(GetDlgItem(hW, IDC_DATABASE), CB_GETCURSEL, 0, 0);
+ current_valuefrom = 0;
+ current_valueto = 0;
+
+ if (current_searchbase == SEARCHBASE_DEC) {
+ GetWindowText(GetDlgItem(hW, IDC_VALUEFROM), (LPTSTR)buf, 255);
+ sscanf(buf, "%u", &current_valuefrom);
+ GetWindowText(GetDlgItem(hW, IDC_VALUETO), (LPTSTR)buf, 255);
+ sscanf(buf, "%u", &current_valueto);
+ }
+ else {
+ GetWindowText(GetDlgItem(hW, IDC_VALUEFROM), (LPTSTR)buf, 255);
+ sscanf(buf, "%x", &current_valuefrom);
+ GetWindowText(GetDlgItem(hW, IDC_VALUETO), (LPTSTR)buf, 255);
+ sscanf(buf, "%x", &current_valueto);
+ }
+
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ if (current_valuefrom > (u32)0xFF) {
+ current_valuefrom = 0xFF;
+ }
+ if (current_valueto > (u32)0xFF) {
+ current_valueto = 0xFF;
+ }
+ break;
+
+ case SEARCHTYPE_16BIT:
+ if (current_valuefrom > (u32)0xFFFF) {
+ current_valuefrom = 0xFFFF;
+ }
+ if (current_valueto > (u32)0xFFFF) {
+ current_valueto = 0xFFFF;
+ }
+ break;
+ }
+
+ if (current_search == SEARCH_RANGE && current_valuefrom > current_valueto) {
+ u32 t = current_valuefrom;
+ current_valuefrom = current_valueto;
+ current_valueto = t;
+ }
+
+ switch (current_search) {
+ case SEARCH_EQUALVAL:
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ CheatSearchEqual8((u8)current_valuefrom);
+ break;
+
+ case SEARCHTYPE_16BIT:
+ CheatSearchEqual16((u16)current_valuefrom);
+ break;
+
+ case SEARCHTYPE_32BIT:
+ CheatSearchEqual32((u32)current_valuefrom);
+ break;
+ }
+ break;
+
+ case SEARCH_NOTEQUALVAL:
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ CheatSearchNotEqual8((u8)current_valuefrom);
+ break;
+
+ case SEARCHTYPE_16BIT:
+ CheatSearchNotEqual16((u16)current_valuefrom);
+ break;
+
+ case SEARCHTYPE_32BIT:
+ CheatSearchNotEqual32((u32)current_valuefrom);
+ break;
+ }
+ break;
+
+ case SEARCH_RANGE:
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ CheatSearchRange8((u8)current_valuefrom, (u8)current_valueto);
+ break;
+
+ case SEARCHTYPE_16BIT:
+ CheatSearchRange16((u16)current_valuefrom, (u16)current_valueto);
+ break;
+
+ case SEARCHTYPE_32BIT:
+ CheatSearchRange32((u32)current_valuefrom, (u32)current_valueto);
+ break;
+ }
+ break;
+
+ case SEARCH_INCBY:
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ CheatSearchIncreasedBy8((u8)current_valuefrom);
+ break;
+
+ case SEARCHTYPE_16BIT:
+ CheatSearchIncreasedBy16((u16)current_valuefrom);
+ break;
+
+ case SEARCHTYPE_32BIT:
+ CheatSearchIncreasedBy32((u32)current_valuefrom);
+ break;
+ }
+ break;
+
+ case SEARCH_DECBY:
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ CheatSearchDecreasedBy8((u8)current_valuefrom);
+ break;
+
+ case SEARCHTYPE_16BIT:
+ CheatSearchDecreasedBy16((u16)current_valuefrom);
+ break;
+
+ case SEARCHTYPE_32BIT:
+ CheatSearchDecreasedBy32((u32)current_valuefrom);
+ break;
+ }
+ break;
+
+ case SEARCH_INC:
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ CheatSearchIncreased8();
+ break;
+
+ case SEARCHTYPE_16BIT:
+ CheatSearchIncreased16();
+ break;
+
+ case SEARCHTYPE_32BIT:
+ CheatSearchIncreased32();
+ break;
+ }
+ break;
+
+ case SEARCH_DEC:
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ CheatSearchDecreased8();
+ break;
+
+ case SEARCHTYPE_16BIT:
+ CheatSearchDecreased16();
+ break;
+
+ case SEARCHTYPE_32BIT:
+ CheatSearchDecreased32();
+ break;
+ }
+ break;
+
+ case SEARCH_DIFFERENT:
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ CheatSearchDifferent8();
+ break;
+
+ case SEARCHTYPE_16BIT:
+ CheatSearchDifferent16();
+ break;
+
+ case SEARCHTYPE_32BIT:
+ CheatSearchDifferent32();
+ break;
+ }
+ break;
+
+ case SEARCH_NOCHANGE:
+ switch (current_searchtype) {
+ case SEARCHTYPE_8BIT:
+ CheatSearchNoChange8();
+ break;
+
+ case SEARCHTYPE_16BIT:
+ CheatSearchNoChange16();
+ break;
+
+ case SEARCHTYPE_32BIT:
+ CheatSearchNoChange32();
+ break;
+ }
+ break;
+
+ default:
+ assert(FALSE); // not possible
+ break;
+ }
+
+ UpdateCheatSearchDlg(hW);
+ break;
+
+ case IDC_NEWSEARCH:
+ FreeCheatSearchMem();
+ FreeCheatSearchResults();
+
+ current_search = SEARCH_EQUALVAL;
+ current_searchtype = SEARCHTYPE_8BIT;
+ current_searchbase = SEARCHBASE_DEC;
+ current_valuefrom = 0;
+ current_valueto = 0;
+
+ UpdateCheatSearchDlg(hW);
+ EnableWindow(GetDlgItem(hW, IDC_VALUEFROM), TRUE);
+ break;
+
+ case IDC_SEARCHFOR:
+ EnableWindow(GetDlgItem(hW, IDC_VALUEFROM), TRUE);
+
+ if (SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_GETCURSEL, 0, 0) == SEARCH_RANGE) {
+ ShowWindow(GetDlgItem(hW, IDC_LABEL_TO), SW_SHOW);
+ ShowWindow(GetDlgItem(hW, IDC_VALUETO), SW_SHOW);
+ }
+ else {
+ ShowWindow(GetDlgItem(hW, IDC_LABEL_TO), SW_HIDE);
+ ShowWindow(GetDlgItem(hW, IDC_VALUETO), SW_HIDE);
+
+ if (SendMessage(GetDlgItem(hW, IDC_SEARCHFOR), CB_GETCURSEL, 0, 0) >= SEARCH_INC) {
+ EnableWindow(GetDlgItem(hW, IDC_VALUEFROM), FALSE);
+ }
+ }
+ break;
+
+ case IDC_DATABASE:
+ if (SendMessage(GetDlgItem(hW, IDC_DATABASE), CB_GETCURSEL, 0, 0) == SEARCHBASE_DEC) {
+ if (current_searchbase == SEARCHBASE_HEX) {
+ GetWindowText(GetDlgItem(hW, IDC_VALUEFROM), (LPTSTR)buf, 255);
+ sscanf(buf, "%x", &i);
+ sprintf(buf, "%u", i);
+ SetWindowText(GetDlgItem(hW, IDC_VALUEFROM), (LPCTSTR)buf);
+
+ GetWindowText(GetDlgItem(hW, IDC_VALUETO), (LPTSTR)buf, 255);
+ sscanf(buf, "%x", &i);
+ sprintf(buf, "%u", i);
+ SetWindowText(GetDlgItem(hW, IDC_VALUETO), (LPCTSTR)buf);
+ }
+ }
+ else if (current_searchbase == SEARCHBASE_DEC){
+ GetWindowText(GetDlgItem(hW, IDC_VALUEFROM), (LPTSTR)buf, 255);
+ sscanf(buf, "%u", &i);
+ sprintf(buf, "%X", i);
+ SetWindowText(GetDlgItem(hW, IDC_VALUEFROM), (LPCTSTR)buf);
+
+ GetWindowText(GetDlgItem(hW, IDC_VALUETO), (LPTSTR)buf, 255);
+ sscanf(buf, "%u", &i);
+ sprintf(buf, "%X", i);
+ SetWindowText(GetDlgItem(hW, IDC_VALUETO), (LPCTSTR)buf);
+ }
+ current_searchbase = SendMessage(GetDlgItem(hW, IDC_DATABASE), CB_GETCURSEL, 0, 0);
+ break;
+
+ case IDC_RESLIST:
+ switch (HIWORD(wParam)) {
+ case LBN_SELCHANGE:
+ Button_Enable(GetDlgItem(hW, IDC_FREEZE), TRUE);
+ Button_Enable(GetDlgItem(hW, IDC_MODIFY), TRUE);
+ Button_Enable(GetDlgItem(hW, IDC_COPY), TRUE);
+ break;
+
+ case LBN_SELCANCEL:
+ Button_Enable(GetDlgItem(hW, IDC_FREEZE), FALSE);
+ Button_Enable(GetDlgItem(hW, IDC_MODIFY), FALSE);
+ Button_Enable(GetDlgItem(hW, IDC_COPY), FALSE);
+ break;
+ }
+ break;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog(hW, FALSE);
+ return TRUE;
+ }
+
+ return FALSE;
+}
diff --git a/win32/gui/ConfigurePlugins.c b/win32/gui/ConfigurePlugins.c
index dc51f013..2edc2bf8 100644..100755
--- a/win32/gui/ConfigurePlugins.c
+++ b/win32/gui/ConfigurePlugins.c
@@ -1,653 +1,653 @@
-/* Pcsx - Pc Psx Emulator
- * Copyright (C) 1999-2003 Pcsx Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <windows.h>
-#include <windowsx.h>
-#include <stdio.h>
-#include "psxcommon.h"
-#include "plugin.h"
-#include "plugins.h"
-#include "resource.h"
-#include "Win32.h"
-
-#define QueryKeyV(name, var) \
- size = sizeof(DWORD); \
- if (RegQueryValueEx(myKey, name, 0, &type, (LPBYTE)&tmp, &size) != 0) { if (err) { RegCloseKey(myKey); return -1; } } \
- var = tmp;
-
-#define QueryKey(s, name, var) \
- size = s; \
- if (RegQueryValueEx(myKey, name, 0, &type, (LPBYTE)var, &size) != 0) { if (err) { RegCloseKey(myKey); return -1; } }
-
-#define SetKeyV(name, var) \
- tmp = var; \
- RegSetValueEx(myKey, name, 0, REG_DWORD, (LPBYTE)&tmp, sizeof(DWORD));
-
-#define SetKey(name, var, s, t) \
- RegSetValueEx(myKey, name, 0, t, (LPBYTE)var, s);
-
-int LoadConfig() {
- HKEY myKey;
- DWORD type, size, tmp;
- PcsxConfig *Conf = &Config;
- int err;
-#ifdef ENABLE_NLS
- char text[256];
-#endif
-
- if (RegOpenKeyEx(HKEY_CURRENT_USER,cfgfile,0,KEY_ALL_ACCESS,&myKey)!=ERROR_SUCCESS) return -1;
-
- err = 1;
- QueryKey(256, "Bios", Conf->Bios);
- QueryKey(256, "Gpu", Conf->Gpu);
- QueryKey(256, "Spu", Conf->Spu);
- QueryKey(256, "Cdr", Conf->Cdr);
- QueryKey(256, "Pad1", Conf->Pad1);
- QueryKey(256, "Pad2", Conf->Pad2);
- QueryKey(256, "Mcd1", Conf->Mcd1);
- QueryKey(256, "Mcd2", Conf->Mcd2);
- QueryKey(256, "PluginsDir", Conf->PluginsDir);
- QueryKey(256, "BiosDir", Conf->BiosDir);
- err = 0;
- QueryKey(256, "Net", Conf->Net);
- QueryKey(256, "Lang", Conf->Lang);
-
- QueryKeyV("Xa", Conf->Xa);
- QueryKeyV("Sio", Conf->Sio);
- QueryKeyV("Mdec", Conf->Mdec);
- QueryKeyV("PsxAuto", Conf->PsxAuto);
- QueryKeyV("Cdda", Conf->Cdda);
- QueryKeyV("SlowBoot", Conf->SlowBoot);
- QueryKeyV("Debug", Conf->Debug);
- QueryKeyV("PsxOut", Conf->PsxOut);
- QueryKeyV("SpuIrq", Conf->SpuIrq);
- QueryKeyV("RCntFix", Conf->RCntFix);
- QueryKeyV("VSyncWA", Conf->VSyncWA);
- QueryKeyV("Widescreen", Conf->Widescreen);
-
- QueryKeyV("Cpu", Conf->Cpu);
- QueryKeyV("PsxType", Conf->PsxType);
-
- if (Config.Cpu == CPU_DYNAREC) {
- Config.Debug = 0; // don't enable debugger if using dynarec core
- }
-
- RegCloseKey(myKey);
-
-#ifdef ENABLE_NLS
- sprintf(text, "LANGUAGE=%s", Conf->Lang);
- gettext_putenv(text);
-#endif
-
- return 0;
-}
-
-/////////////////////////////////////////////////////////
-
-void SaveConfig() {
- HKEY myKey;
- DWORD myDisp, tmp;
- PcsxConfig *Conf = &Config;
-
- RegCreateKeyEx(HKEY_CURRENT_USER, cfgfile, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &myKey, &myDisp);
-
- SetKey("Bios", Conf->Bios, strlen(Conf->Bios), REG_SZ);
- SetKey("Gpu", Conf->Gpu, strlen(Conf->Gpu), REG_SZ);
- SetKey("Spu", Conf->Spu, strlen(Conf->Spu), REG_SZ);
- SetKey("Cdr", Conf->Cdr, strlen(Conf->Cdr), REG_SZ);
- SetKey("Pad1", Conf->Pad1, strlen(Conf->Pad1), REG_SZ);
- SetKey("Pad2", Conf->Pad2, strlen(Conf->Pad2), REG_SZ);
- SetKey("Net", Conf->Net, strlen(Conf->Net), REG_SZ);
- SetKey("Mcd1", Conf->Mcd1, strlen(Conf->Mcd1), REG_SZ);
- SetKey("Mcd2", Conf->Mcd2, strlen(Conf->Mcd2), REG_SZ);
- SetKey("Lang", Conf->Lang, strlen(Conf->Lang), REG_SZ);
- SetKey("PluginsDir", Conf->PluginsDir, strlen(Conf->PluginsDir), REG_SZ);
- SetKey("BiosDir", Conf->BiosDir, strlen(Conf->BiosDir), REG_SZ);
-
- SetKeyV("Xa", Conf->Xa);
- SetKeyV("Sio", Conf->Sio);
- SetKeyV("Mdec", Conf->Mdec);
- SetKeyV("PsxAuto", Conf->PsxAuto);
- SetKeyV("Cdda", Conf->Cdda);
- SetKeyV("SlowBoot",Conf->SlowBoot);
- SetKeyV("Debug", Conf->Debug);
- SetKeyV("PsxOut", Conf->PsxOut);
- SetKeyV("SpuIrq", Conf->SpuIrq);
- SetKeyV("RCntFix", Conf->RCntFix);
- SetKeyV("VSyncWA", Conf->VSyncWA);
- SetKeyV("Widescreen", Conf->Widescreen);
-
- SetKeyV("Cpu", Conf->Cpu);
- SetKeyV("PsxType", Conf->PsxType);
-
- RegCloseKey(myKey);
-}
-
-/////////////////////////////////////////////////////////
-
-#define ComboAddPlugin(hw, str) { \
- lp = (char *)malloc(strlen(FindData.cFileName)+8); \
- sprintf(lp, "%s", FindData.cFileName); \
- i = ComboBox_AddString(hw, tmpStr); \
- ComboBox_SetItemData(hw, i, lp); \
- if (stricmp(str, lp)==0) \
- ComboBox_SetCurSel(hw, i); \
-}
-
-BOOL OnConfigurePluginsDialog(HWND hW) {
- WIN32_FIND_DATA FindData;
- HANDLE Find;
- HANDLE Lib;
- PSEgetLibType PSE_GetLibType;
- PSEgetLibName PSE_GetLibName;
- PSEgetLibVersion PSE_GetLibVersion;
- HWND hWC_GPU=GetDlgItem(hW,IDC_LISTGPU);
- HWND hWC_SPU=GetDlgItem(hW,IDC_LISTSPU);
- HWND hWC_CDR=GetDlgItem(hW,IDC_LISTCDR);
- HWND hWC_PAD1=GetDlgItem(hW,IDC_LISTPAD1);
- HWND hWC_PAD2=GetDlgItem(hW,IDC_LISTPAD2);
- HWND hWC_BIOS=GetDlgItem(hW,IDC_LISTBIOS);
- char tmpStr[256];
- char *lp;
- int i;
-
- strcpy(tmpStr, Config.PluginsDir);
- strcat(tmpStr, "*.dll");
- Find = FindFirstFile(tmpStr, &FindData);
-
- if (Find != INVALID_HANDLE_VALUE) {
- do {
- sprintf(tmpStr,"%s%s", Config.PluginsDir, FindData.cFileName);
- Lib = LoadLibrary(tmpStr);
- if (Lib != NULL) {
- PSE_GetLibType = (PSEgetLibType) GetProcAddress((HMODULE)Lib,"PSEgetLibType");
- PSE_GetLibName = (PSEgetLibName) GetProcAddress((HMODULE)Lib,"PSEgetLibName");
- PSE_GetLibVersion = (PSEgetLibVersion) GetProcAddress((HMODULE)Lib,"PSEgetLibVersion");
-
- if (PSE_GetLibType != NULL && PSE_GetLibName != NULL && PSE_GetLibVersion != NULL) {
- unsigned long version = PSE_GetLibVersion();
- long type;
-
- sprintf(tmpStr, "%s %d.%d", PSE_GetLibName(), (int)(version>>8)&0xff, (int)version&0xff);
- type = PSE_GetLibType();
- if (type & PSE_LT_CDR) {
- ComboAddPlugin(hWC_CDR, Config.Cdr);
- }
-
- if (type & PSE_LT_SPU) {
- ComboAddPlugin(hWC_SPU, Config.Spu);
- }
-
- if (type & PSE_LT_GPU) {
- ComboAddPlugin(hWC_GPU, Config.Gpu);
- }
-
- if (type & PSE_LT_PAD) {
- PADquery query;
-
- query = (PADquery)GetProcAddress((HMODULE)Lib, "PADquery");
- if (query != NULL) {
- if (query() & 0x1)
- ComboAddPlugin(hWC_PAD1, Config.Pad1);
- if (query() & 0x2)
- ComboAddPlugin(hWC_PAD2, Config.Pad2);
- } else { // just a guess
- ComboAddPlugin(hWC_PAD1, Config.Pad1);
- }
- }
- }
- }
- } while (FindNextFile(Find,&FindData));
- FindClose(Find);
- }
-
-// BIOS
-
- lp = (char *)malloc(strlen("HLE") + 1);
- sprintf(lp, "HLE");
- i = ComboBox_AddString(hWC_BIOS, _("Simulate Psx Bios"));
- ComboBox_SetItemData(hWC_BIOS, i, lp);
- if (stricmp(Config.Bios, lp)==0)
- ComboBox_SetCurSel(hWC_BIOS, i);
-
- strcpy(tmpStr, Config.BiosDir);
- strcat(tmpStr, "*");
- Find=FindFirstFile(tmpStr, &FindData);
-
- if (Find != INVALID_HANDLE_VALUE) {
- do {
- if (!strcmp(FindData.cFileName, ".")) continue;
- if (!strcmp(FindData.cFileName, "..")) continue;
- if (FindData.nFileSizeLow != 1024 * 512) continue;
- lp = (char *)malloc(strlen(FindData.cFileName)+8);
- sprintf(lp, "%s", (char *)FindData.cFileName);
- i = ComboBox_AddString(hWC_BIOS, FindData.cFileName);
- ComboBox_SetItemData(hWC_BIOS, i, lp);
- if (Config.Bios[0]=='\0') {
- ComboBox_SetCurSel(hWC_BIOS, i);
- strcpy(Config.Bios, FindData.cFileName);
- } else if (stricmp(Config.Bios, FindData.cFileName)==0)
- ComboBox_SetCurSel(hWC_BIOS, i);
- } while (FindNextFile(Find,&FindData));
- FindClose(Find);
- }
-
- if (ComboBox_GetCurSel(hWC_CDR ) == -1)
- ComboBox_SetCurSel(hWC_CDR, 0);
- if (ComboBox_GetCurSel(hWC_GPU ) == -1)
- ComboBox_SetCurSel(hWC_GPU, 0);
- if (ComboBox_GetCurSel(hWC_SPU ) == -1)
- ComboBox_SetCurSel(hWC_SPU, 0);
- if (ComboBox_GetCurSel(hWC_PAD1) == -1)
- ComboBox_SetCurSel(hWC_PAD1, 0);
- if (ComboBox_GetCurSel(hWC_PAD2) == -1)
- ComboBox_SetCurSel(hWC_PAD2, 0);
- if (ComboBox_GetCurSel(hWC_BIOS) == -1)
- ComboBox_SetCurSel(hWC_BIOS, 0);
-
- return TRUE;
-}
-
-#define CleanCombo(item) \
- hWC = GetDlgItem(hW, item); \
- iCnt = ComboBox_GetCount(hWC); \
- for (i=0; i<iCnt; i++) { \
- lp = (char *)ComboBox_GetItemData(hWC, i); \
- if (lp) free(lp); \
- } \
- ComboBox_ResetContent(hWC);
-
-void CleanUpCombos(HWND hW) {
- int i,iCnt;HWND hWC;char * lp;
-
- CleanCombo(IDC_LISTGPU);
- CleanCombo(IDC_LISTSPU);
- CleanCombo(IDC_LISTCDR);
- CleanCombo(IDC_LISTPAD1);
- CleanCombo(IDC_LISTPAD2);
- CleanCombo(IDC_LISTBIOS);
-}
-
-void OnCancel(HWND hW) {
- CleanUpCombos(hW);
- EndDialog(hW,FALSE);
-}
-
-char *GetSelDLL(HWND hW,int id) {
- HWND hWC = GetDlgItem(hW,id);
- int iSel;
- iSel = ComboBox_GetCurSel(hWC);
- if (iSel<0) return NULL;
- return (char *)ComboBox_GetItemData(hWC, iSel);
-}
-
-void OnOK(HWND hW) {
- char *gpuDLL=GetSelDLL(hW,IDC_LISTGPU);
- char *spuDLL=GetSelDLL(hW,IDC_LISTSPU);
- char *cdrDLL=GetSelDLL(hW,IDC_LISTCDR);
- char *pad1DLL=GetSelDLL(hW,IDC_LISTPAD1);
- char *pad2DLL=GetSelDLL(hW,IDC_LISTPAD2);
- char *biosFILE=GetSelDLL(hW,IDC_LISTBIOS);
-
- if (gpuDLL == NULL || spuDLL == NULL || cdrDLL == NULL || pad1DLL == NULL ||
- pad2DLL == NULL || biosFILE == NULL) {
- MessageBox(hW, _("Configuration not OK!"), _("Error"), MB_OK | MB_ICONERROR);
- return;
- }
-
- strcpy(Config.Bios, biosFILE);
- strcpy(Config.Gpu, gpuDLL);
- strcpy(Config.Spu, spuDLL);
- strcpy(Config.Cdr, cdrDLL);
- strcpy(Config.Pad1, pad1DLL);
- strcpy(Config.Pad2, pad2DLL);
-
- SaveConfig();
-
- CleanUpCombos(hW);
-
- if (!ConfPlug) {
- LoadPlugins();
- }
- EndDialog(hW,TRUE);
-}
-
-
-#define ConfPlugin(src, confs, name) \
- void *drv; \
- src conf; \
- char * pDLL = GetSelDLL(hW, confs); \
- char file[256]; \
- if(pDLL==NULL) return; \
- strcpy(file, Config.PluginsDir); \
- strcat(file, pDLL); \
- drv = SysLoadLibrary(file); \
- if (drv == NULL) return; \
- conf = (src) SysLoadSym(drv, name); \
- if (SysLibError() == NULL) conf(); \
- SysCloseLibrary(drv);
-
-void ConfigureGPU(HWND hW) {
- ConfPlugin(GPUconfigure, IDC_LISTGPU, "GPUconfigure");
-}
-
-void ConfigureSPU(HWND hW) {
- ConfPlugin(SPUconfigure, IDC_LISTSPU, "SPUconfigure");
-}
-
-void ConfigureCDR(HWND hW) {
- ConfPlugin(CDRconfigure, IDC_LISTCDR, "CDRconfigure");
-}
-
-void ConfigureNET(HWND hW) {
- ConfPlugin(NETconfigure, IDC_LISTNET, "NETconfigure");
-}
-
-void ConfigurePAD1(HWND hW) {
- ConfPlugin(PADconfigure, IDC_LISTPAD1, "PADconfigure");
-}
-
-void ConfigurePAD2(HWND hW) {
- ConfPlugin(PADconfigure, IDC_LISTPAD2, "PADconfigure");
-}
-
-
-void AboutGPU(HWND hW) {
- ConfPlugin(GPUabout, IDC_LISTGPU, "GPUabout");
-}
-
-void AboutSPU(HWND hW) {
- ConfPlugin(SPUabout, IDC_LISTSPU, "SPUabout");
-}
-
-void AboutCDR(HWND hW) {
- ConfPlugin(CDRabout, IDC_LISTCDR, "CDRabout");
-}
-
-void AboutNET(HWND hW) {
- ConfPlugin(NETabout, IDC_LISTNET, "NETabout");
-}
-
-void AboutPAD1(HWND hW) {
- ConfPlugin(PADabout, IDC_LISTPAD1, "PADabout");
-}
-
-void AboutPAD2(HWND hW) {
- ConfPlugin(PADabout, IDC_LISTPAD2, "PADabout");
-}
-
-
-#define TestPlugin(src, confs, name) \
- void *drv; \
- src conf; \
- int ret = 0; \
- char * pDLL = GetSelDLL(hW, confs); \
- char file[256]; \
- if (pDLL== NULL) return; \
- strcpy(file, Config.PluginsDir); \
- strcat(file, pDLL); \
- drv = SysLoadLibrary(file); \
- if (drv == NULL) return; \
- conf = (src) SysLoadSym(drv, name); \
- if (SysLibError() == NULL) { \
- ret = conf(); \
- if (ret == 0) \
- SysMessage(_("This plugin reports that should work correctly")); \
- else SysMessage(_("This plugin reports that should not work correctly")); \
- } \
- SysCloseLibrary(drv);
-
-void TestGPU(HWND hW) {
- TestPlugin(GPUtest, IDC_LISTGPU, "GPUtest");
-}
-
-void TestSPU(HWND hW) {
- TestPlugin(SPUtest, IDC_LISTSPU, "SPUtest");
-}
-
-void TestCDR(HWND hW) {
- TestPlugin(CDRtest, IDC_LISTCDR, "CDRtest");
-}
-
-void TestNET(HWND hW) {
- TestPlugin(NETtest, IDC_LISTNET, "NETtest");
-}
-
-void TestPAD1(HWND hW) {
- TestPlugin(PADtest, IDC_LISTPAD1, "PADtest");
-}
-
-void TestPAD2(HWND hW) {
- TestPlugin(PADtest, IDC_LISTPAD2, "PADtest");
-}
-
-#include <shlobj.h>
-
-int SelectPath(HWND hW, char *Title, char *Path) {
- LPITEMIDLIST pidl;
- BROWSEINFO bi;
- char Buffer[256];
-
- bi.hwndOwner = hW;
- bi.pidlRoot = NULL;
- bi.pszDisplayName = Buffer;
- bi.lpszTitle = Title;
- bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;
- bi.lpfn = NULL;
- bi.lParam = 0;
- if ((pidl = SHBrowseForFolder(&bi)) != NULL) {
- if (SHGetPathFromIDList(pidl, Path)) {
- int len = strlen(Path);
-
- if (Path[len - 1] != '\\') { strcat(Path,"\\"); }
- return 0;
- }
- }
- return -1;
-}
-
-void SetPluginsDir(HWND hW) {
- char Path[256];
-
- if (SelectPath(hW, _("Select Plugins Directory"), Path) == -1) return;
- strcpy(Config.PluginsDir, Path);
- CleanUpCombos(hW);
- OnConfigurePluginsDialog(hW);
-}
-
-void SetBiosDir(HWND hW) {
- char Path[256];
-
- if (SelectPath(hW, _("Select Bios Directory"), Path) == -1) return;
- strcpy(Config.BiosDir, Path);
- CleanUpCombos(hW);
- OnConfigurePluginsDialog(hW);
-}
-
-BOOL CALLBACK ConfigurePluginsDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- switch(uMsg) {
- case WM_INITDIALOG:
- SetWindowText(hW, _("Configuration"));
-
- Button_SetText(GetDlgItem(hW, IDOK), _("OK"));
- Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));
- Static_SetText(GetDlgItem(hW, IDC_GRAPHICS), _("Graphics"));
- Static_SetText(GetDlgItem(hW, IDC_FIRSTCONTROLLER), _("First Controller"));
- Static_SetText(GetDlgItem(hW, IDC_SECONDCONTROLLER), _("Second Controller"));
- Static_SetText(GetDlgItem(hW, IDC_SOUND), _("Sound"));
- Static_SetText(GetDlgItem(hW, IDC_CDROM), _("Cdrom"));
- Static_SetText(GetDlgItem(hW, IDC_BIOS), _("Bios"));
- Button_SetText(GetDlgItem(hW, IDC_BIOSDIR), _("Set Bios Directory"));
- Button_SetText(GetDlgItem(hW, IDC_PLUGINSDIR), _("Set Plugins Directory"));
- Button_SetText(GetDlgItem(hW, IDC_CONFIGGPU), _("Configure..."));
- Button_SetText(GetDlgItem(hW, IDC_TESTGPU), _("Test..."));
- Button_SetText(GetDlgItem(hW, IDC_ABOUTGPU), _("About..."));
- Button_SetText(GetDlgItem(hW, IDC_CONFIGSPU), _("Configure..."));
- Button_SetText(GetDlgItem(hW, IDC_TESTSPU), _("Test..."));
- Button_SetText(GetDlgItem(hW, IDC_ABOUTSPU), _("About..."));
- Button_SetText(GetDlgItem(hW, IDC_CONFIGCDR), _("Configure..."));
- Button_SetText(GetDlgItem(hW, IDC_TESTCDR), _("Test..."));
- Button_SetText(GetDlgItem(hW, IDC_ABOUTCDR), _("About..."));
- Button_SetText(GetDlgItem(hW, IDC_CONFIGPAD1), _("Configure..."));
- Button_SetText(GetDlgItem(hW, IDC_TESTPAD1), _("Test..."));
- Button_SetText(GetDlgItem(hW, IDC_ABOUTPAD1), _("About..."));
- Button_SetText(GetDlgItem(hW, IDC_CONFIGPAD2), _("Configure..."));
- Button_SetText(GetDlgItem(hW, IDC_TESTPAD2), _("Test..."));
- Button_SetText(GetDlgItem(hW, IDC_ABOUTPAD2), _("About..."));
-
- return OnConfigurePluginsDialog(hW);
-
- case WM_COMMAND:
- switch(LOWORD(wParam)) {
- case IDC_CONFIGGPU: ConfigureGPU(hW); return TRUE;
- case IDC_CONFIGSPU: ConfigureSPU(hW); return TRUE;
- case IDC_CONFIGCDR: ConfigureCDR(hW); return TRUE;
- case IDC_CONFIGPAD1: ConfigurePAD1(hW); return TRUE;
- case IDC_CONFIGPAD2: ConfigurePAD2(hW); return TRUE;
-
- case IDC_TESTGPU: TestGPU(hW); return TRUE;
- case IDC_TESTSPU: TestSPU(hW); return TRUE;
- case IDC_TESTCDR: TestCDR(hW); return TRUE;
- case IDC_TESTPAD1: TestPAD1(hW); return TRUE;
- case IDC_TESTPAD2: TestPAD2(hW); return TRUE;
-
- case IDC_ABOUTGPU: AboutGPU(hW); return TRUE;
- case IDC_ABOUTSPU: AboutSPU(hW); return TRUE;
- case IDC_ABOUTCDR: AboutCDR(hW); return TRUE;
- case IDC_ABOUTPAD1: AboutPAD1(hW); return TRUE;
- case IDC_ABOUTPAD2: AboutPAD2(hW); return TRUE;
-
- case IDC_PLUGINSDIR: SetPluginsDir(hW); return TRUE;
- case IDC_BIOSDIR: SetBiosDir(hW); return TRUE;
-
- case IDCANCEL:
- OnCancel(hW);
- if (CancelQuit) {
- SysClose(); exit(1);
- }
- return TRUE;
- case IDOK:
- OnOK(hW);
- return TRUE;
- }
- }
- return FALSE;
-}
-
-
-void ConfigurePlugins(HWND hWnd) {
- DialogBox(gApp.hInstance,
- MAKEINTRESOURCE(IDD_CONFIG),
- hWnd,
- (DLGPROC)ConfigurePluginsDlgProc);
-}
-
-// NetPlay Config Dialog
-
-BOOL OnConfigureNetPlayDialog(HWND hW) {
- WIN32_FIND_DATA FindData;
- HANDLE Find;
- HANDLE Lib;
- PSEgetLibType PSE_GetLibType;
- PSEgetLibName PSE_GetLibName;
- PSEgetLibVersion PSE_GetLibVersion;
- HWND hWC_NET=GetDlgItem(hW,IDC_LISTNET);
- char tmpStr[256];
- char *lp;
- int i;
-
- strcpy(tmpStr, Config.PluginsDir);
- strcat(tmpStr, "*.dll");
- Find = FindFirstFile(tmpStr, &FindData);
-
- lp = (char *)malloc(strlen("Disabled")+8);
- sprintf(lp, "Disabled");
- i = ComboBox_AddString(hWC_NET, "Disabled");
- ComboBox_SetItemData(hWC_NET, i, lp);
- ComboBox_SetCurSel(hWC_NET, 0);
-
- if (Find != INVALID_HANDLE_VALUE) {
- do {
- sprintf(tmpStr,"%s%s", Config.PluginsDir, FindData.cFileName);
- Lib = LoadLibrary(tmpStr);
- if (Lib!=NULL) {
- PSE_GetLibType = (PSEgetLibType) GetProcAddress((HMODULE)Lib,"PSEgetLibType");
- PSE_GetLibName = (PSEgetLibName) GetProcAddress((HMODULE)Lib,"PSEgetLibName");
- PSE_GetLibVersion = (PSEgetLibVersion) GetProcAddress((HMODULE)Lib,"PSEgetLibVersion");
-
- if (PSE_GetLibType != NULL && PSE_GetLibName != NULL && PSE_GetLibVersion != NULL) {
- unsigned long version = PSE_GetLibVersion();
- long type;
-
- sprintf(tmpStr, "%s %d.%d", PSE_GetLibName(), (int)(version>>8)&0xff, (int)version&0xff);
- type = PSE_GetLibType();
- if (type & PSE_LT_NET && ((version >> 16) == 2)) {
- ComboAddPlugin(hWC_NET, Config.Net);
- }
- }
- }
- } while (FindNextFile(Find,&FindData));
- FindClose(Find);
- }
-
- return TRUE;
-}
-
-BOOL CALLBACK ConfigureNetPlayDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- int i,iCnt;HWND hWC;char * lp;
-
- switch(uMsg) {
- case WM_INITDIALOG:
- SetWindowText(hW, _("NetPlay Configuration"));
-
- Button_SetText(GetDlgItem(hW, IDOK), _("OK"));
- Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));
- Static_SetText(GetDlgItem(hW, IDC_NETPLAY), _("NetPlay"));
- Button_SetText(GetDlgItem(hW, IDC_CONFIGNET), _("Configure..."));
- Button_SetText(GetDlgItem(hW, IDC_TESTNET), _("Test..."));
- Button_SetText(GetDlgItem(hW, IDC_ABOUTNET), _("About..."));
- Static_SetText(GetDlgItem(hW, IDC_NETPLAYNOTE), _("Note: The NetPlay Plugin Directory should be the same as the other Plugins."));
-
- OnConfigureNetPlayDialog(hW);
- return TRUE;
-
- case WM_COMMAND: {
- switch (LOWORD(wParam)) {
- case IDC_CONFIGNET: ConfigureNET(hW); return TRUE;
- case IDC_TESTNET: TestNET(hW); return TRUE;
- case IDC_ABOUTNET: AboutNET(hW); return TRUE;
-
- case IDCANCEL:
- CleanCombo(IDC_LISTNET);
- EndDialog(hW,FALSE);
- return TRUE;
-
- case IDOK:
- strcpy(Config.Net, GetSelDLL(hW, IDC_LISTNET));
- SaveConfig();
- CleanUpCombos(hW);
- LoadPlugins();
- CleanCombo(IDC_LISTNET);
- EndDialog(hW,TRUE);
- return TRUE;
- }
- }
- }
-
- return FALSE;
-}
+/* Pcsx - Pc Psx Emulator
+ * Copyright (C) 1999-2003 Pcsx Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <windows.h>
+#include <windowsx.h>
+#include <stdio.h>
+#include "psxcommon.h"
+#include "plugin.h"
+#include "plugins.h"
+#include "resource.h"
+#include "Win32.h"
+
+#define QueryKeyV(name, var) \
+ size = sizeof(DWORD); \
+ if (RegQueryValueEx(myKey, name, 0, &type, (LPBYTE)&tmp, &size) != 0) { if (err) { RegCloseKey(myKey); return -1; } } \
+ var = tmp;
+
+#define QueryKey(s, name, var) \
+ size = s; \
+ if (RegQueryValueEx(myKey, name, 0, &type, (LPBYTE)var, &size) != 0) { if (err) { RegCloseKey(myKey); return -1; } }
+
+#define SetKeyV(name, var) \
+ tmp = var; \
+ RegSetValueEx(myKey, name, 0, REG_DWORD, (LPBYTE)&tmp, sizeof(DWORD));
+
+#define SetKey(name, var, s, t) \
+ RegSetValueEx(myKey, name, 0, t, (LPBYTE)var, s);
+
+int LoadConfig() {
+ HKEY myKey;
+ DWORD type, size, tmp;
+ PcsxConfig *Conf = &Config;
+ int err;
+#ifdef ENABLE_NLS
+ char text[256];
+#endif
+
+ if (RegOpenKeyEx(HKEY_CURRENT_USER,cfgfile,0,KEY_ALL_ACCESS,&myKey)!=ERROR_SUCCESS) return -1;
+
+ err = 1;
+ QueryKey(256, "Bios", Conf->Bios);
+ QueryKey(256, "Gpu", Conf->Gpu);
+ QueryKey(256, "Spu", Conf->Spu);
+ QueryKey(256, "Cdr", Conf->Cdr);
+ QueryKey(256, "Pad1", Conf->Pad1);
+ QueryKey(256, "Pad2", Conf->Pad2);
+ QueryKey(256, "Mcd1", Conf->Mcd1);
+ QueryKey(256, "Mcd2", Conf->Mcd2);
+ QueryKey(256, "PluginsDir", Conf->PluginsDir);
+ QueryKey(256, "BiosDir", Conf->BiosDir);
+ err = 0;
+ QueryKey(256, "Net", Conf->Net);
+ QueryKey(256, "Lang", Conf->Lang);
+
+ QueryKeyV("Xa", Conf->Xa);
+ QueryKeyV("Sio", Conf->Sio);
+ QueryKeyV("Mdec", Conf->Mdec);
+ QueryKeyV("PsxAuto", Conf->PsxAuto);
+ QueryKeyV("Cdda", Conf->Cdda);
+ QueryKeyV("SlowBoot", Conf->SlowBoot);
+ QueryKeyV("Debug", Conf->Debug);
+ QueryKeyV("PsxOut", Conf->PsxOut);
+ QueryKeyV("SpuIrq", Conf->SpuIrq);
+ QueryKeyV("RCntFix", Conf->RCntFix);
+ QueryKeyV("VSyncWA", Conf->VSyncWA);
+ QueryKeyV("Widescreen", Conf->Widescreen);
+
+ QueryKeyV("Cpu", Conf->Cpu);
+ QueryKeyV("PsxType", Conf->PsxType);
+
+ if (Config.Cpu == CPU_DYNAREC) {
+ Config.Debug = 0; // don't enable debugger if using dynarec core
+ }
+
+ RegCloseKey(myKey);
+
+#ifdef ENABLE_NLS
+ sprintf(text, "LANGUAGE=%s", Conf->Lang);
+ gettext_putenv(text);
+#endif
+
+ return 0;
+}
+
+/////////////////////////////////////////////////////////
+
+void SaveConfig() {
+ HKEY myKey;
+ DWORD myDisp, tmp;
+ PcsxConfig *Conf = &Config;
+
+ RegCreateKeyEx(HKEY_CURRENT_USER, cfgfile, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &myKey, &myDisp);
+
+ SetKey("Bios", Conf->Bios, strlen(Conf->Bios), REG_SZ);
+ SetKey("Gpu", Conf->Gpu, strlen(Conf->Gpu), REG_SZ);
+ SetKey("Spu", Conf->Spu, strlen(Conf->Spu), REG_SZ);
+ SetKey("Cdr", Conf->Cdr, strlen(Conf->Cdr), REG_SZ);
+ SetKey("Pad1", Conf->Pad1, strlen(Conf->Pad1), REG_SZ);
+ SetKey("Pad2", Conf->Pad2, strlen(Conf->Pad2), REG_SZ);
+ SetKey("Net", Conf->Net, strlen(Conf->Net), REG_SZ);
+ SetKey("Mcd1", Conf->Mcd1, strlen(Conf->Mcd1), REG_SZ);
+ SetKey("Mcd2", Conf->Mcd2, strlen(Conf->Mcd2), REG_SZ);
+ SetKey("Lang", Conf->Lang, strlen(Conf->Lang), REG_SZ);
+ SetKey("PluginsDir", Conf->PluginsDir, strlen(Conf->PluginsDir), REG_SZ);
+ SetKey("BiosDir", Conf->BiosDir, strlen(Conf->BiosDir), REG_SZ);
+
+ SetKeyV("Xa", Conf->Xa);
+ SetKeyV("Sio", Conf->Sio);
+ SetKeyV("Mdec", Conf->Mdec);
+ SetKeyV("PsxAuto", Conf->PsxAuto);
+ SetKeyV("Cdda", Conf->Cdda);
+ SetKeyV("SlowBoot",Conf->SlowBoot);
+ SetKeyV("Debug", Conf->Debug);
+ SetKeyV("PsxOut", Conf->PsxOut);
+ SetKeyV("SpuIrq", Conf->SpuIrq);
+ SetKeyV("RCntFix", Conf->RCntFix);
+ SetKeyV("VSyncWA", Conf->VSyncWA);
+ SetKeyV("Widescreen", Conf->Widescreen);
+
+ SetKeyV("Cpu", Conf->Cpu);
+ SetKeyV("PsxType", Conf->PsxType);
+
+ RegCloseKey(myKey);
+}
+
+/////////////////////////////////////////////////////////
+
+#define ComboAddPlugin(hw, str) { \
+ lp = (char *)malloc(strlen(FindData.cFileName)+8); \
+ sprintf(lp, "%s", FindData.cFileName); \
+ i = ComboBox_AddString(hw, tmpStr); \
+ ComboBox_SetItemData(hw, i, lp); \
+ if (stricmp(str, lp)==0) \
+ ComboBox_SetCurSel(hw, i); \
+}
+
+BOOL OnConfigurePluginsDialog(HWND hW) {
+ WIN32_FIND_DATA FindData;
+ HANDLE Find;
+ HANDLE Lib;
+ PSEgetLibType PSE_GetLibType;
+ PSEgetLibName PSE_GetLibName;
+ PSEgetLibVersion PSE_GetLibVersion;
+ HWND hWC_GPU=GetDlgItem(hW,IDC_LISTGPU);
+ HWND hWC_SPU=GetDlgItem(hW,IDC_LISTSPU);
+ HWND hWC_CDR=GetDlgItem(hW,IDC_LISTCDR);
+ HWND hWC_PAD1=GetDlgItem(hW,IDC_LISTPAD1);
+ HWND hWC_PAD2=GetDlgItem(hW,IDC_LISTPAD2);
+ HWND hWC_BIOS=GetDlgItem(hW,IDC_LISTBIOS);
+ char tmpStr[256];
+ char *lp;
+ int i;
+
+ strcpy(tmpStr, Config.PluginsDir);
+ strcat(tmpStr, "*.dll");
+ Find = FindFirstFile(tmpStr, &FindData);
+
+ if (Find != INVALID_HANDLE_VALUE) {
+ do {
+ sprintf(tmpStr,"%s%s", Config.PluginsDir, FindData.cFileName);
+ Lib = LoadLibrary(tmpStr);
+ if (Lib != NULL) {
+ PSE_GetLibType = (PSEgetLibType) GetProcAddress((HMODULE)Lib,"PSEgetLibType");
+ PSE_GetLibName = (PSEgetLibName) GetProcAddress((HMODULE)Lib,"PSEgetLibName");
+ PSE_GetLibVersion = (PSEgetLibVersion) GetProcAddress((HMODULE)Lib,"PSEgetLibVersion");
+
+ if (PSE_GetLibType != NULL && PSE_GetLibName != NULL && PSE_GetLibVersion != NULL) {
+ unsigned long version = PSE_GetLibVersion();
+ long type;
+
+ sprintf(tmpStr, "%s %d.%d", PSE_GetLibName(), (int)(version>>8)&0xff, (int)version&0xff);
+ type = PSE_GetLibType();
+ if (type & PSE_LT_CDR) {
+ ComboAddPlugin(hWC_CDR, Config.Cdr);
+ }
+
+ if (type & PSE_LT_SPU) {
+ ComboAddPlugin(hWC_SPU, Config.Spu);
+ }
+
+ if (type & PSE_LT_GPU) {
+ ComboAddPlugin(hWC_GPU, Config.Gpu);
+ }
+
+ if (type & PSE_LT_PAD) {
+ PADquery query;
+
+ query = (PADquery)GetProcAddress((HMODULE)Lib, "PADquery");
+ if (query != NULL) {
+ if (query() & 0x1)
+ ComboAddPlugin(hWC_PAD1, Config.Pad1);
+ if (query() & 0x2)
+ ComboAddPlugin(hWC_PAD2, Config.Pad2);
+ } else { // just a guess
+ ComboAddPlugin(hWC_PAD1, Config.Pad1);
+ }
+ }
+ }
+ }
+ } while (FindNextFile(Find,&FindData));
+ FindClose(Find);
+ }
+
+// BIOS
+
+ lp = (char *)malloc(strlen("HLE") + 1);
+ sprintf(lp, "HLE");
+ i = ComboBox_AddString(hWC_BIOS, _("Simulate Psx Bios"));
+ ComboBox_SetItemData(hWC_BIOS, i, lp);
+ if (stricmp(Config.Bios, lp)==0)
+ ComboBox_SetCurSel(hWC_BIOS, i);
+
+ strcpy(tmpStr, Config.BiosDir);
+ strcat(tmpStr, "*");
+ Find=FindFirstFile(tmpStr, &FindData);
+
+ if (Find != INVALID_HANDLE_VALUE) {
+ do {
+ if (!strcmp(FindData.cFileName, ".")) continue;
+ if (!strcmp(FindData.cFileName, "..")) continue;
+ if (FindData.nFileSizeLow != 1024 * 512) continue;
+ lp = (char *)malloc(strlen(FindData.cFileName)+8);
+ sprintf(lp, "%s", (char *)FindData.cFileName);
+ i = ComboBox_AddString(hWC_BIOS, FindData.cFileName);
+ ComboBox_SetItemData(hWC_BIOS, i, lp);
+ if (Config.Bios[0]=='\0') {
+ ComboBox_SetCurSel(hWC_BIOS, i);
+ strcpy(Config.Bios, FindData.cFileName);
+ } else if (stricmp(Config.Bios, FindData.cFileName)==0)
+ ComboBox_SetCurSel(hWC_BIOS, i);
+ } while (FindNextFile(Find,&FindData));
+ FindClose(Find);
+ }
+
+ if (ComboBox_GetCurSel(hWC_CDR ) == -1)
+ ComboBox_SetCurSel(hWC_CDR, 0);
+ if (ComboBox_GetCurSel(hWC_GPU ) == -1)
+ ComboBox_SetCurSel(hWC_GPU, 0);
+ if (ComboBox_GetCurSel(hWC_SPU ) == -1)
+ ComboBox_SetCurSel(hWC_SPU, 0);
+ if (ComboBox_GetCurSel(hWC_PAD1) == -1)
+ ComboBox_SetCurSel(hWC_PAD1, 0);
+ if (ComboBox_GetCurSel(hWC_PAD2) == -1)
+ ComboBox_SetCurSel(hWC_PAD2, 0);
+ if (ComboBox_GetCurSel(hWC_BIOS) == -1)
+ ComboBox_SetCurSel(hWC_BIOS, 0);
+
+ return TRUE;
+}
+
+#define CleanCombo(item) \
+ hWC = GetDlgItem(hW, item); \
+ iCnt = ComboBox_GetCount(hWC); \
+ for (i=0; i<iCnt; i++) { \
+ lp = (char *)ComboBox_GetItemData(hWC, i); \
+ if (lp) free(lp); \
+ } \
+ ComboBox_ResetContent(hWC);
+
+void CleanUpCombos(HWND hW) {
+ int i,iCnt;HWND hWC;char * lp;
+
+ CleanCombo(IDC_LISTGPU);
+ CleanCombo(IDC_LISTSPU);
+ CleanCombo(IDC_LISTCDR);
+ CleanCombo(IDC_LISTPAD1);
+ CleanCombo(IDC_LISTPAD2);
+ CleanCombo(IDC_LISTBIOS);
+}
+
+void OnCancel(HWND hW) {
+ CleanUpCombos(hW);
+ EndDialog(hW,FALSE);
+}
+
+char *GetSelDLL(HWND hW,int id) {
+ HWND hWC = GetDlgItem(hW,id);
+ int iSel;
+ iSel = ComboBox_GetCurSel(hWC);
+ if (iSel<0) return NULL;
+ return (char *)ComboBox_GetItemData(hWC, iSel);
+}
+
+void OnOK(HWND hW) {
+ char *gpuDLL=GetSelDLL(hW,IDC_LISTGPU);
+ char *spuDLL=GetSelDLL(hW,IDC_LISTSPU);
+ char *cdrDLL=GetSelDLL(hW,IDC_LISTCDR);
+ char *pad1DLL=GetSelDLL(hW,IDC_LISTPAD1);
+ char *pad2DLL=GetSelDLL(hW,IDC_LISTPAD2);
+ char *biosFILE=GetSelDLL(hW,IDC_LISTBIOS);
+
+ if (gpuDLL == NULL || spuDLL == NULL || cdrDLL == NULL || pad1DLL == NULL ||
+ pad2DLL == NULL || biosFILE == NULL) {
+ MessageBox(hW, _("Configuration not OK!"), _("Error"), MB_OK | MB_ICONERROR);
+ return;
+ }
+
+ strcpy(Config.Bios, biosFILE);
+ strcpy(Config.Gpu, gpuDLL);
+ strcpy(Config.Spu, spuDLL);
+ strcpy(Config.Cdr, cdrDLL);
+ strcpy(Config.Pad1, pad1DLL);
+ strcpy(Config.Pad2, pad2DLL);
+
+ SaveConfig();
+
+ CleanUpCombos(hW);
+
+ if (!ConfPlug) {
+ LoadPlugins();
+ }
+ EndDialog(hW,TRUE);
+}
+
+
+#define ConfPlugin(src, confs, name) \
+ void *drv; \
+ src conf; \
+ char * pDLL = GetSelDLL(hW, confs); \
+ char file[256]; \
+ if(pDLL==NULL) return; \
+ strcpy(file, Config.PluginsDir); \
+ strcat(file, pDLL); \
+ drv = SysLoadLibrary(file); \
+ if (drv == NULL) return; \
+ conf = (src) SysLoadSym(drv, name); \
+ if (SysLibError() == NULL) conf(); \
+ SysCloseLibrary(drv);
+
+void ConfigureGPU(HWND hW) {
+ ConfPlugin(GPUconfigure, IDC_LISTGPU, "GPUconfigure");
+}
+
+void ConfigureSPU(HWND hW) {
+ ConfPlugin(SPUconfigure, IDC_LISTSPU, "SPUconfigure");
+}
+
+void ConfigureCDR(HWND hW) {
+ ConfPlugin(CDRconfigure, IDC_LISTCDR, "CDRconfigure");
+}
+
+void ConfigureNET(HWND hW) {
+ ConfPlugin(NETconfigure, IDC_LISTNET, "NETconfigure");
+}
+
+void ConfigurePAD1(HWND hW) {
+ ConfPlugin(PADconfigure, IDC_LISTPAD1, "PADconfigure");
+}
+
+void ConfigurePAD2(HWND hW) {
+ ConfPlugin(PADconfigure, IDC_LISTPAD2, "PADconfigure");
+}
+
+
+void AboutGPU(HWND hW) {
+ ConfPlugin(GPUabout, IDC_LISTGPU, "GPUabout");
+}
+
+void AboutSPU(HWND hW) {
+ ConfPlugin(SPUabout, IDC_LISTSPU, "SPUabout");
+}
+
+void AboutCDR(HWND hW) {
+ ConfPlugin(CDRabout, IDC_LISTCDR, "CDRabout");
+}
+
+void AboutNET(HWND hW) {
+ ConfPlugin(NETabout, IDC_LISTNET, "NETabout");
+}
+
+void AboutPAD1(HWND hW) {
+ ConfPlugin(PADabout, IDC_LISTPAD1, "PADabout");
+}
+
+void AboutPAD2(HWND hW) {
+ ConfPlugin(PADabout, IDC_LISTPAD2, "PADabout");
+}
+
+
+#define TestPlugin(src, confs, name) \
+ void *drv; \
+ src conf; \
+ int ret = 0; \
+ char * pDLL = GetSelDLL(hW, confs); \
+ char file[256]; \
+ if (pDLL== NULL) return; \
+ strcpy(file, Config.PluginsDir); \
+ strcat(file, pDLL); \
+ drv = SysLoadLibrary(file); \
+ if (drv == NULL) return; \
+ conf = (src) SysLoadSym(drv, name); \
+ if (SysLibError() == NULL) { \
+ ret = conf(); \
+ if (ret == 0) \
+ SysMessage(_("This plugin reports that should work correctly")); \
+ else SysMessage(_("This plugin reports that should not work correctly")); \
+ } \
+ SysCloseLibrary(drv);
+
+void TestGPU(HWND hW) {
+ TestPlugin(GPUtest, IDC_LISTGPU, "GPUtest");
+}
+
+void TestSPU(HWND hW) {
+ TestPlugin(SPUtest, IDC_LISTSPU, "SPUtest");
+}
+
+void TestCDR(HWND hW) {
+ TestPlugin(CDRtest, IDC_LISTCDR, "CDRtest");
+}
+
+void TestNET(HWND hW) {
+ TestPlugin(NETtest, IDC_LISTNET, "NETtest");
+}
+
+void TestPAD1(HWND hW) {
+ TestPlugin(PADtest, IDC_LISTPAD1, "PADtest");
+}
+
+void TestPAD2(HWND hW) {
+ TestPlugin(PADtest, IDC_LISTPAD2, "PADtest");
+}
+
+#include <shlobj.h>
+
+int SelectPath(HWND hW, char *Title, char *Path) {
+ LPITEMIDLIST pidl;
+ BROWSEINFO bi;
+ char Buffer[256];
+
+ bi.hwndOwner = hW;
+ bi.pidlRoot = NULL;
+ bi.pszDisplayName = Buffer;
+ bi.lpszTitle = Title;
+ bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;
+ bi.lpfn = NULL;
+ bi.lParam = 0;
+ if ((pidl = SHBrowseForFolder(&bi)) != NULL) {
+ if (SHGetPathFromIDList(pidl, Path)) {
+ int len = strlen(Path);
+
+ if (Path[len - 1] != '\\') { strcat(Path,"\\"); }
+ return 0;
+ }
+ }
+ return -1;
+}
+
+void SetPluginsDir(HWND hW) {
+ char Path[256];
+
+ if (SelectPath(hW, _("Select Plugins Directory"), Path) == -1) return;
+ strcpy(Config.PluginsDir, Path);
+ CleanUpCombos(hW);
+ OnConfigurePluginsDialog(hW);
+}
+
+void SetBiosDir(HWND hW) {
+ char Path[256];
+
+ if (SelectPath(hW, _("Select Bios Directory"), Path) == -1) return;
+ strcpy(Config.BiosDir, Path);
+ CleanUpCombos(hW);
+ OnConfigurePluginsDialog(hW);
+}
+
+BOOL CALLBACK ConfigurePluginsDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ switch(uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("Configuration"));
+
+ Button_SetText(GetDlgItem(hW, IDOK), _("OK"));
+ Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));
+ Static_SetText(GetDlgItem(hW, IDC_GRAPHICS), _("Graphics"));
+ Static_SetText(GetDlgItem(hW, IDC_FIRSTCONTROLLER), _("First Controller"));
+ Static_SetText(GetDlgItem(hW, IDC_SECONDCONTROLLER), _("Second Controller"));
+ Static_SetText(GetDlgItem(hW, IDC_SOUND), _("Sound"));
+ Static_SetText(GetDlgItem(hW, IDC_CDROM), _("Cdrom"));
+ Static_SetText(GetDlgItem(hW, IDC_BIOS), _("Bios"));
+ Button_SetText(GetDlgItem(hW, IDC_BIOSDIR), _("Set Bios Directory"));
+ Button_SetText(GetDlgItem(hW, IDC_PLUGINSDIR), _("Set Plugins Directory"));
+ Button_SetText(GetDlgItem(hW, IDC_CONFIGGPU), _("Configure..."));
+ Button_SetText(GetDlgItem(hW, IDC_TESTGPU), _("Test..."));
+ Button_SetText(GetDlgItem(hW, IDC_ABOUTGPU), _("About..."));
+ Button_SetText(GetDlgItem(hW, IDC_CONFIGSPU), _("Configure..."));
+ Button_SetText(GetDlgItem(hW, IDC_TESTSPU), _("Test..."));
+ Button_SetText(GetDlgItem(hW, IDC_ABOUTSPU), _("About..."));
+ Button_SetText(GetDlgItem(hW, IDC_CONFIGCDR), _("Configure..."));
+ Button_SetText(GetDlgItem(hW, IDC_TESTCDR), _("Test..."));
+ Button_SetText(GetDlgItem(hW, IDC_ABOUTCDR), _("About..."));
+ Button_SetText(GetDlgItem(hW, IDC_CONFIGPAD1), _("Configure..."));
+ Button_SetText(GetDlgItem(hW, IDC_TESTPAD1), _("Test..."));
+ Button_SetText(GetDlgItem(hW, IDC_ABOUTPAD1), _("About..."));
+ Button_SetText(GetDlgItem(hW, IDC_CONFIGPAD2), _("Configure..."));
+ Button_SetText(GetDlgItem(hW, IDC_TESTPAD2), _("Test..."));
+ Button_SetText(GetDlgItem(hW, IDC_ABOUTPAD2), _("About..."));
+
+ return OnConfigurePluginsDialog(hW);
+
+ case WM_COMMAND:
+ switch(LOWORD(wParam)) {
+ case IDC_CONFIGGPU: ConfigureGPU(hW); return TRUE;
+ case IDC_CONFIGSPU: ConfigureSPU(hW); return TRUE;
+ case IDC_CONFIGCDR: ConfigureCDR(hW); return TRUE;
+ case IDC_CONFIGPAD1: ConfigurePAD1(hW); return TRUE;
+ case IDC_CONFIGPAD2: ConfigurePAD2(hW); return TRUE;
+
+ case IDC_TESTGPU: TestGPU(hW); return TRUE;
+ case IDC_TESTSPU: TestSPU(hW); return TRUE;
+ case IDC_TESTCDR: TestCDR(hW); return TRUE;
+ case IDC_TESTPAD1: TestPAD1(hW); return TRUE;
+ case IDC_TESTPAD2: TestPAD2(hW); return TRUE;
+
+ case IDC_ABOUTGPU: AboutGPU(hW); return TRUE;
+ case IDC_ABOUTSPU: AboutSPU(hW); return TRUE;
+ case IDC_ABOUTCDR: AboutCDR(hW); return TRUE;
+ case IDC_ABOUTPAD1: AboutPAD1(hW); return TRUE;
+ case IDC_ABOUTPAD2: AboutPAD2(hW); return TRUE;
+
+ case IDC_PLUGINSDIR: SetPluginsDir(hW); return TRUE;
+ case IDC_BIOSDIR: SetBiosDir(hW); return TRUE;
+
+ case IDCANCEL:
+ OnCancel(hW);
+ if (CancelQuit) {
+ SysClose(); exit(1);
+ }
+ return TRUE;
+ case IDOK:
+ OnOK(hW);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+
+void ConfigurePlugins(HWND hWnd) {
+ DialogBox(gApp.hInstance,
+ MAKEINTRESOURCE(IDD_CONFIG),
+ hWnd,
+ (DLGPROC)ConfigurePluginsDlgProc);
+}
+
+// NetPlay Config Dialog
+
+BOOL OnConfigureNetPlayDialog(HWND hW) {
+ WIN32_FIND_DATA FindData;
+ HANDLE Find;
+ HANDLE Lib;
+ PSEgetLibType PSE_GetLibType;
+ PSEgetLibName PSE_GetLibName;
+ PSEgetLibVersion PSE_GetLibVersion;
+ HWND hWC_NET=GetDlgItem(hW,IDC_LISTNET);
+ char tmpStr[256];
+ char *lp;
+ int i;
+
+ strcpy(tmpStr, Config.PluginsDir);
+ strcat(tmpStr, "*.dll");
+ Find = FindFirstFile(tmpStr, &FindData);
+
+ lp = (char *)malloc(strlen("Disabled")+8);
+ sprintf(lp, "Disabled");
+ i = ComboBox_AddString(hWC_NET, "Disabled");
+ ComboBox_SetItemData(hWC_NET, i, lp);
+ ComboBox_SetCurSel(hWC_NET, 0);
+
+ if (Find != INVALID_HANDLE_VALUE) {
+ do {
+ sprintf(tmpStr,"%s%s", Config.PluginsDir, FindData.cFileName);
+ Lib = LoadLibrary(tmpStr);
+ if (Lib!=NULL) {
+ PSE_GetLibType = (PSEgetLibType) GetProcAddress((HMODULE)Lib,"PSEgetLibType");
+ PSE_GetLibName = (PSEgetLibName) GetProcAddress((HMODULE)Lib,"PSEgetLibName");
+ PSE_GetLibVersion = (PSEgetLibVersion) GetProcAddress((HMODULE)Lib,"PSEgetLibVersion");
+
+ if (PSE_GetLibType != NULL && PSE_GetLibName != NULL && PSE_GetLibVersion != NULL) {
+ unsigned long version = PSE_GetLibVersion();
+ long type;
+
+ sprintf(tmpStr, "%s %d.%d", PSE_GetLibName(), (int)(version>>8)&0xff, (int)version&0xff);
+ type = PSE_GetLibType();
+ if (type & PSE_LT_NET && ((version >> 16) == 2)) {
+ ComboAddPlugin(hWC_NET, Config.Net);
+ }
+ }
+ }
+ } while (FindNextFile(Find,&FindData));
+ FindClose(Find);
+ }
+
+ return TRUE;
+}
+
+BOOL CALLBACK ConfigureNetPlayDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ int i,iCnt;HWND hWC;char * lp;
+
+ switch(uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("NetPlay Configuration"));
+
+ Button_SetText(GetDlgItem(hW, IDOK), _("OK"));
+ Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));
+ Static_SetText(GetDlgItem(hW, IDC_NETPLAY), _("NetPlay"));
+ Button_SetText(GetDlgItem(hW, IDC_CONFIGNET), _("Configure..."));
+ Button_SetText(GetDlgItem(hW, IDC_TESTNET), _("Test..."));
+ Button_SetText(GetDlgItem(hW, IDC_ABOUTNET), _("About..."));
+ Static_SetText(GetDlgItem(hW, IDC_NETPLAYNOTE), _("Note: The NetPlay Plugin Directory should be the same as the other Plugins."));
+
+ OnConfigureNetPlayDialog(hW);
+ return TRUE;
+
+ case WM_COMMAND: {
+ switch (LOWORD(wParam)) {
+ case IDC_CONFIGNET: ConfigureNET(hW); return TRUE;
+ case IDC_TESTNET: TestNET(hW); return TRUE;
+ case IDC_ABOUTNET: AboutNET(hW); return TRUE;
+
+ case IDCANCEL:
+ CleanCombo(IDC_LISTNET);
+ EndDialog(hW,FALSE);
+ return TRUE;
+
+ case IDOK:
+ strcpy(Config.Net, GetSelDLL(hW, IDC_LISTNET));
+ SaveConfig();
+ CleanUpCombos(hW);
+ LoadPlugins();
+ CleanCombo(IDC_LISTNET);
+ EndDialog(hW,TRUE);
+ return TRUE;
+ }
+ }
+ }
+
+ return FALSE;
+}
diff --git a/win32/gui/NoPic.h b/win32/gui/NoPic.h
index 553cede5..553cede5 100644..100755
--- a/win32/gui/NoPic.h
+++ b/win32/gui/NoPic.h
diff --git a/win32/gui/Win32.h b/win32/gui/Win32.h
index 446290f4..b03a1a09 100644..100755
--- a/win32/gui/Win32.h
+++ b/win32/gui/Win32.h
@@ -1,70 +1,70 @@
-/* Pcsx - Pc Psx Emulator
- * Copyright (C) 1999-2003 Pcsx Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef __WIN32_H__
-#define __WIN32_H__
-
-typedef struct {
- HWND hWnd; // Main window handle
- HINSTANCE hInstance; // Application instance
- HMENU hMenu; // Main window menu
-} AppData;
-
-AppData gApp;
-HANDLE hConsole;
-
-extern int StatesC;
-extern int AccBreak;
-extern int ConfPlug;
-extern int CancelQuit;
-extern char cfgfile[256];
-extern int Running;
-extern boolean UseGui;
-extern char PcsxrDir[256];
-
-void strcatz(char *dst, char *src);
-
-LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
-BOOL CALLBACK ConfigureMcdsDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
-BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
-BOOL CALLBACK ConfigureNetPlayDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
-
-LRESULT WINAPI CheatDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
-LRESULT WINAPI CheatSearchDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
-
-void ConfigurePlugins(HWND hWnd);
-
-int Open_File_Proc(char *file);
-int Open_Iso_Proc(char *file);
-void Open_Mcd_Proc(HWND hW, int MCDID);
-void CreateMainWindow(int nCmdShow);
-void RunGui();
-void PADhandleKey(int key);
-
-int LoadConfig();
-void SaveConfig();
-
-void ResetMenuSlots();
-void UpdateMenuItems();
-
-void InitLanguages();
-char *GetLanguageNext();
-void CloseLanguages();
-void ChangeLanguage(char *lang);
-
-#endif /* __WIN32_H__ */
+/* Pcsx - Pc Psx Emulator
+ * Copyright (C) 1999-2003 Pcsx Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef __WIN32_H__
+#define __WIN32_H__
+
+typedef struct {
+ HWND hWnd; // Main window handle
+ HINSTANCE hInstance; // Application instance
+ HMENU hMenu; // Main window menu
+} AppData;
+
+AppData gApp;
+HANDLE hConsole;
+
+extern int StatesC;
+extern int AccBreak;
+extern int ConfPlug;
+extern int CancelQuit;
+extern char cfgfile[256];
+extern int Running;
+extern boolean UseGui;
+extern char PcsxrDir[256];
+
+void strcatz(char *dst, char *src);
+
+LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
+BOOL CALLBACK ConfigureMcdsDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
+BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
+BOOL CALLBACK ConfigureNetPlayDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+LRESULT WINAPI CheatDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
+LRESULT WINAPI CheatSearchDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+void ConfigurePlugins(HWND hWnd);
+
+int Open_File_Proc(char *file);
+int Open_Iso_Proc(char *file);
+void Open_Mcd_Proc(HWND hW, int MCDID);
+void CreateMainWindow(int nCmdShow);
+void RunGui();
+void PADhandleKey(int key);
+
+int LoadConfig();
+void SaveConfig();
+
+void ResetMenuSlots();
+void UpdateMenuItems();
+
+void InitLanguages();
+char *GetLanguageNext();
+void CloseLanguages();
+void ChangeLanguage(char *lang);
+
+#endif /* __WIN32_H__ */
diff --git a/win32/gui/WndMain.c b/win32/gui/WndMain.c
index 61b0efd4..39c213d8 100644..100755
--- a/win32/gui/WndMain.c
+++ b/win32/gui/WndMain.c
@@ -1,1935 +1,1935 @@
-/* Pcsx - Pc Psx Emulator
- * Copyright (C) 1999-2003 Pcsx Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <windows.h>
-#include <windowsx.h>
-#include <commctrl.h>
-#include <time.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdarg.h>
-
-#include "resource.h"
-#include "AboutDlg.h"
-
-#include "psxcommon.h"
-#include "plugin.h"
-#include "debug.h"
-#include "Win32.h"
-#include "sio.h"
-#include "misc.h"
-#include "cheat.h"
-
-#ifdef __MINGW32__
-#ifndef LVM_GETSELECTIONMARK
-#define LVM_GETSELECTIONMARK (LVM_FIRST+66)
-#endif
-#ifndef ListView_GetSelectionMark
-#define ListView_GetSelectionMark(w) (INT)SNDMSG((w),LVM_GETSELECTIONMARK,0,0)
-#endif
-#endif
-
-int AccBreak = 0;
-int ConfPlug = 0;
-int StatesC = 0;
-int CancelQuit = 0;
-char cfgfile[256];
-int Running = 0;
-boolean UseGui = TRUE;
-char PcsxrDir[256];
-
-static HDC hDC;
-static HDC hdcmem;
-static HBITMAP hBm;
-static BITMAP bm;
-
-#ifdef ENABLE_NLS
-
-unsigned int langsMax;
-
-typedef struct {
- char lang[256];
-} _langs;
-_langs *langs = NULL;
-
-typedef struct {
- char id[8];
- char name[64];
- LANGID langid;
-} LangDef;
-
-LangDef sLangs[] = {
- { "ar", N_("Arabic"), 0x0401 },
- { "ca", N_("Catalan"), 0x0403 },
- { "de", N_("German"), 0x0407 },
- { "el", N_("Greek"), 0x0408 },
- { "en", N_("English"), 0x0409 },
- { "es", N_("Spanish"), 0x040a },
- { "fr_FR", N_("French"), 0x040c },
- { "it", N_("Italian"), 0x0410 },
- { "pt", N_("Portuguese"), 0x0816 },
- { "pt_BR", N_("Portuguese (Brazilian)"), 0x0416 },
- { "ro", N_("Romanian"), 0x0418 },
- { "ru_RU", N_("Russian"), 0x0419 },
- { "zh_CN", N_("Simplified Chinese"), 0x0804 },
- { "zh_TW", N_("Traditional Chinese"), 0x0404 },
- { "ja", N_("Japanese"), 0x0411 },
- { "ko", N_("Korean"), 0x0412 },
- { "", "", 0xFFFF },
-};
-
-char *ParseLang(char *id) {
- int i=0;
-
- while (sLangs[i].id[0] != '\0') {
- if (!strcmp(id, sLangs[i].id))
- return _(sLangs[i].name);
- i++;
- }
-
- return id;
-}
-
-static void SetDefaultLang(void) {
- LANGID langid;
- int i;
-
- langid = GetSystemDefaultLangID();
-
- i = 0;
- while (sLangs[i].id[0] != '\0') {
- if (langid == sLangs[i].langid) {
- strcpy(Config.Lang, sLangs[i].id);
- return;
- }
- i++;
- }
-
- strcpy(Config.Lang, "English");
-}
-
-#endif
-
-void strcatz(char *dst, char *src) {
- int len = strlen(dst) + 1;
- strcpy(dst + len, src);
-}
-
-int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
- char *arg = NULL;
- char cdfile[MAXPATHLEN] = "", buf[4096];
- int loadstatenum = -1;
-
- strcpy(cfgfile, "Software\\Pcsxr");
-
- gApp.hInstance = hInstance;
-
-#ifdef ENABLE_NLS
- bindtextdomain(PACKAGE, "Langs\\");
- textdomain(PACKAGE);
-#endif
-
- Running = 0;
-
- GetCurrentDirectory(256, PcsxrDir);
-
- memset(&Config, 0, sizeof(PcsxConfig));
- strcpy(Config.Net, "Disabled");
- if (LoadConfig() == -1) {
- Config.PsxAuto = 1;
- strcpy(Config.PluginsDir, "Plugins\\");
- strcpy(Config.BiosDir, "Bios\\");
-
- strcpy(Config.Mcd1, "memcards\\Mcd001.mcr");
- strcpy(Config.Mcd2, "memcards\\Mcd002.mcr");
-
- ConfPlug = 1;
-
-#ifdef ENABLE_NLS
- {
- char text[256];
- SetDefaultLang();
- sprintf(text, "LANGUAGE=%s", Config.Lang);
- gettext_putenv(text);
- }
-#endif
-
- ConfigurePlugins(gApp.hWnd);
-
- if (LoadConfig() == -1) {
- return 0;
- }
- }
-
- strcpy(Config.PatchesDir, "Patches\\");
-
-#ifdef ENABLE_NLS
- if (Config.Lang[0] == 0) {
- SetDefaultLang();
- SaveConfig();
- LoadConfig();
- }
-#endif
-
- // Parse command-line
- strncpy(buf, lpCmdLine, 4096);
-
- for (arg = strtok(buf, " "); arg != NULL; arg = strtok(NULL, " ")) {
- if (strcmp(arg, "-nogui") == 0) {
- UseGui = FALSE;
- } else if (strcmp(arg, "-runcd") == 0) {
- cdfile[0] = '\0';
- } else if (strcmp(arg, "-cdfile") == 0) {
- arg = strtok(NULL, " ");
- if (arg != NULL) {
- if (arg[0] == '"') {
- strncpy(buf, lpCmdLine + (arg - buf), 4096);
- arg = strtok(buf, "\"");
- if (arg != NULL) strcpy(cdfile, arg);
- } else {
- strcpy(cdfile, arg);
- }
- UseGui = FALSE;
- }
- } else if (strcmp(arg, "-psxout") == 0) {
- Config.PsxOut = TRUE;
- } else if (strcmp(arg, "-slowboot") == 0) {
- Config.SlowBoot = TRUE;
- } else if (strcmp(arg, "-help") == 0) {
- MessageBox(gApp.hWnd, _(
- "Usage: pcsxr [options]\n"
- "\toptions:\n"
- "\t-nogui\t\tDon't open the GUI\n"
- "\t-psxout\t\tEnable PSX output\n"
- "\t-slowboot\tEnable BIOS logo\n"
- "\t-runcd\t\tRuns CD-ROM (requires -nogui)\n"
- "\t-cdfile FILE\tRuns a CD image file (requires -nogui)\n"
- "\t-help\t\tDisplay this message"),
- "PCSXR", 0);
-
- return 0;
- }
- }
-
- if (SysInit() == -1) return 1;
-
- CreateMainWindow(nCmdShow);
-
- if (!UseGui) {
- SetIsoFile(cdfile);
- PostMessage(gApp.hWnd, WM_COMMAND, ID_FILE_RUN_NOGUI, 0);
- }
-
- RunGui();
-
- return 0;
-}
-
-void RunGui() {
- MSG msg;
-
- for (;;) {
- if (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE)) {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- else
- {
- // Avoid 100% cpu usage.
- Sleep(10);
- }
- }
-}
-
-void RestoreWindow() {
- AccBreak = 1;
- DestroyWindow(gApp.hWnd);
- CreateMainWindow(SW_SHOWNORMAL);
- ShowCursor(TRUE);
- SetCursor(LoadCursor(gApp.hInstance, IDC_ARROW));
- ShowCursor(TRUE);
-
- if (!UseGui) PostMessage(gApp.hWnd, WM_COMMAND, ID_FILE_EXIT, 0);
-}
-
-void ResetMenuSlots() {
- char str[256];
- int i;
-
- for (i = 0; i < 9; i++) {
- GetStateFilename(str, i);
- if (CheckState(str) == -1)
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT1+i, MF_GRAYED);
- else
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT1+i, MF_ENABLED);
- }
-}
-
-void OpenConsole() {
- if (hConsole) return;
- AllocConsole();
- SetConsoleTitle("Psx Output");
- hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
-}
-
-void CloseConsole() {
- FreeConsole();
- hConsole = NULL;
-}
-
-void States_Load(int num) {
- char Text[256];
- int ret;
-
- SetMenu(gApp.hWnd, NULL);
- OpenPlugins(gApp.hWnd);
-
- GetStateFilename(Text, num);
-
- ret = LoadState(Text);
- if (ret == 0)
- sprintf(Text, _("*PCSXR*: Loaded State %d"), num+1);
- else sprintf(Text, _("*PCSXR*: Error Loading State %d"), num+1);
- GPU_displayText(Text);
-
- Running = 1;
- CheatSearchBackupMemory();
- psxCpu->Execute();
-}
-
-void States_Save(int num) {
- char Text[256];
- int ret;
-
- SetMenu(gApp.hWnd, NULL);
- OpenPlugins(gApp.hWnd);
-
- GPU_updateLace();
-
- GetStateFilename(Text, num);
- GPU_freeze(2, (GPUFreeze_t *)&num);
- ret = SaveState(Text);
- if (ret == 0)
- sprintf(Text, _("*PCSXR*: Saved State %d"), num+1);
- else sprintf(Text, _("*PCSXR*: Error Saving State %d"), num+1);
- GPU_displayText(Text);
-
- Running = 1;
- CheatSearchBackupMemory();
- psxCpu->Execute();
-}
-
-void OnStates_LoadOther() {
- OPENFILENAME ofn;
- char szFileName[MAXPATHLEN];
- char szFileTitle[MAXPATHLEN];
- char szFilter[256];
-
- memset(&szFileName, 0, sizeof(szFileName));
- memset(&szFileTitle, 0, sizeof(szFileTitle));
- memset(&szFilter, 0, sizeof(szFilter));
-
- strcpy(szFilter, _("PCSXR State Format"));
- strcatz(szFilter, "*.*");
-
- ofn.lStructSize = sizeof(OPENFILENAME);
- ofn.hwndOwner = gApp.hWnd;
- ofn.lpstrFilter = szFilter;
- ofn.lpstrCustomFilter = NULL;
- ofn.nMaxCustFilter = 0;
- ofn.nFilterIndex = 1;
- ofn.lpstrFile = szFileName;
- ofn.nMaxFile = MAXPATHLEN;
- ofn.lpstrInitialDir = NULL;
- ofn.lpstrFileTitle = szFileTitle;
- ofn.nMaxFileTitle = MAXPATHLEN;
- ofn.lpstrTitle = NULL;
- ofn.lpstrDefExt = NULL;
- ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
-
- if (GetOpenFileName ((LPOPENFILENAME)&ofn)) {
- char Text[256];
- int ret;
-
- SetMenu(gApp.hWnd, NULL);
- OpenPlugins(gApp.hWnd);
-
- ret = LoadState(szFileName);
- if (ret == 0)
- sprintf(Text, _("*PCSXR*: Loaded State %s"), szFileName);
- else sprintf(Text, _("*PCSXR*: Error Loading State %s"), szFileName);
- GPU_displayText(Text);
-
- Running = 1;
- psxCpu->Execute();
- }
-}
-
-void OnStates_SaveOther() {
- OPENFILENAME ofn;
- char szFileName[MAXPATHLEN];
- char szFileTitle[MAXPATHLEN];
- char szFilter[256];
-
- memset(&szFileName, 0, sizeof(szFileName));
- memset(&szFileTitle, 0, sizeof(szFileTitle));
- memset(&szFilter, 0, sizeof(szFilter));
-
- strcpy(szFilter, _("PCSXR State Format"));
- strcatz(szFilter, "*.*");
-
- ofn.lStructSize = sizeof(OPENFILENAME);
- ofn.hwndOwner = gApp.hWnd;
- ofn.lpstrFilter = szFilter;
- ofn.lpstrCustomFilter = NULL;
- ofn.nMaxCustFilter = 0;
- ofn.nFilterIndex = 1;
- ofn.lpstrFile = szFileName;
- ofn.nMaxFile = MAXPATHLEN;
- ofn.lpstrInitialDir = NULL;
- ofn.lpstrFileTitle = szFileTitle;
- ofn.nMaxFileTitle = MAXPATHLEN;
- ofn.lpstrTitle = NULL;
- ofn.lpstrDefExt = NULL;
- ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
-
- if (GetOpenFileName ((LPOPENFILENAME)&ofn)) {
- char Text[256];
- int ret;
-
- SetMenu(gApp.hWnd, NULL);
- OpenPlugins(gApp.hWnd);
-
- ret = SaveState(szFileName);
- if (ret == 0)
- sprintf(Text, _("*PCSXR*: Saved State %s"), szFileName);
- else sprintf(Text, _("*PCSXR*: Error Saving State %s"), szFileName);
- GPU_displayText(Text);
-
- Running = 1;
- psxCpu->Execute();
- }
-}
-
-LRESULT WINAPI MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
- char File[256];
- PAINTSTRUCT ps;
-
- switch (msg) {
- case WM_CREATE:
- hBm = LoadBitmap(gApp.hInstance, MAKEINTRESOURCE(MAIN_LOGO));
- GetObject(hBm, sizeof(BITMAP), (LPVOID)&bm);
- hDC = GetDC(hWnd);
- hdcmem = CreateCompatibleDC(hDC);
- ReleaseDC(hWnd, hDC);
- break;
-
- case WM_PAINT:
- hDC = BeginPaint(hWnd, &ps);
- SelectObject(hdcmem, hBm);
- if (!Running) BitBlt(hDC, 0, 0, bm.bmWidth, bm.bmHeight, hdcmem, 0, 0, SRCCOPY);
- EndPaint(hWnd, &ps);
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case ID_FILE_EXIT:
- SysClose();
- PostQuitMessage(0);
- exit(0);
- return TRUE;
-
- case ID_FILE_RUN_CD:
- SetIsoFile(NULL);
- SetMenu(hWnd, NULL);
- LoadPlugins();
- if (OpenPlugins(hWnd) == -1) {
- ClosePlugins();
- RestoreWindow();
- return TRUE;
- }
- if (CheckCdrom() == -1) {
- ClosePlugins();
- RestoreWindow();
- SysMessage(_("The CD does not appear to be a valid Playstation CD"));
- return TRUE;
- }
-
- // Auto-detect: region first, then rcnt reset
- SysReset();
-
- if (LoadCdrom() == -1) {
- ClosePlugins();
- RestoreWindow();
- SysMessage(_("Could not load CD-ROM!"));
- return TRUE;
- }
- ShowCursor(FALSE);
- Running = 1;
- psxCpu->Execute();
- return TRUE;
-
- case ID_FILE_RUNBIOS:
- if (strcmp(Config.Bios, "HLE") == 0) {
- SysMessage(_("Running BIOS is not supported with Internal HLE Bios."));
- return TRUE;
- }
- SetIsoFile(NULL);
- SetMenu(hWnd, NULL);
- LoadPlugins();
- if (OpenPlugins(hWnd) == -1) {
- ClosePlugins();
- RestoreWindow();
- return TRUE;
- }
- ShowCursor(FALSE);
- SysReset();
- CdromId[0] = '\0';
- CdromLabel[0] = '\0';
- Running = 1;
- psxCpu->Execute();
- return TRUE;
-
- case ID_FILE_RUN_ISO:
- if (!Open_Iso_Proc(File)) return TRUE;
- SetIsoFile(File);
- SetMenu(hWnd, NULL);
- LoadPlugins();
- if (OpenPlugins(hWnd) == -1) {
- ClosePlugins();
- RestoreWindow();
- return TRUE;
- }
- if (CheckCdrom() == -1) {
- ClosePlugins();
- RestoreWindow();
- SysMessage(_("The CD does not appear to be a valid Playstation CD"));
- return TRUE;
- }
-
- // Auto-detect: region first, then rcnt reset
- SysReset();
-
- if (LoadCdrom() == -1) {
- ClosePlugins();
- RestoreWindow();
- SysMessage(_("Could not load CD-ROM!"));
- return TRUE;
- }
- ShowCursor(FALSE);
- Running = 1;
- psxCpu->Execute();
- return TRUE;
-
- case ID_FILE_RUN_EXE:
- if (!Open_File_Proc(File)) return TRUE;
- SetIsoFile(NULL);
- SetMenu(hWnd, NULL);
- LoadPlugins();
- if (OpenPlugins(hWnd) == -1) {
- ClosePlugins();
- RestoreWindow();
- return TRUE;
- }
- CheckCdrom();
-
- // Auto-detect: region first, then rcnt reset
- SysReset();
-
- Load(File);
- Running = 1;
- psxCpu->Execute();
- return TRUE;
-
- case ID_FILE_STATES_LOAD_SLOT1: States_Load(0); return TRUE;
- case ID_FILE_STATES_LOAD_SLOT2: States_Load(1); return TRUE;
- case ID_FILE_STATES_LOAD_SLOT3: States_Load(2); return TRUE;
- case ID_FILE_STATES_LOAD_SLOT4: States_Load(3); return TRUE;
- case ID_FILE_STATES_LOAD_SLOT5: States_Load(4); return TRUE;
- case ID_FILE_STATES_LOAD_SLOT6: States_Load(5); return TRUE;
- case ID_FILE_STATES_LOAD_SLOT7: States_Load(6); return TRUE;
- case ID_FILE_STATES_LOAD_SLOT8: States_Load(7); return TRUE;
- case ID_FILE_STATES_LOAD_SLOT9: States_Load(8); return TRUE;
- case ID_FILE_STATES_LOAD_OTHER: OnStates_LoadOther(); return TRUE;
-
- case ID_FILE_STATES_SAVE_SLOT1: States_Save(0); return TRUE;
- case ID_FILE_STATES_SAVE_SLOT2: States_Save(1); return TRUE;
- case ID_FILE_STATES_SAVE_SLOT3: States_Save(2); return TRUE;
- case ID_FILE_STATES_SAVE_SLOT4: States_Save(3); return TRUE;
- case ID_FILE_STATES_SAVE_SLOT5: States_Save(4); return TRUE;
- case ID_FILE_STATES_SAVE_SLOT6: States_Save(5); return TRUE;
- case ID_FILE_STATES_SAVE_SLOT7: States_Save(6); return TRUE;
- case ID_FILE_STATES_SAVE_SLOT8: States_Save(7); return TRUE;
- case ID_FILE_STATES_SAVE_SLOT9: States_Save(8); return TRUE;
- case ID_FILE_STATES_SAVE_OTHER: OnStates_SaveOther(); return TRUE;
-
- case ID_FILE_RUN_NOGUI:
- SetMenu(hWnd, NULL);
- LoadPlugins();
- if (OpenPlugins(hWnd) == -1) {
- ClosePlugins();
- RestoreWindow();
- return TRUE;
- }
- if (CheckCdrom() == -1) {
- fprintf(stderr, _("The CD does not appear to be a valid Playstation CD"));
- ClosePlugins();
- RestoreWindow();
- return TRUE;
- }
-
- // Auto-detect: region first, then rcnt reset
- SysReset();
-
- if (LoadCdrom() == -1) {
- fprintf(stderr, _("Could not load CD-ROM!"));
- ClosePlugins();
- RestoreWindow();
- return TRUE;
- }
- ShowCursor(FALSE);
- Running = 1;
- psxCpu->Execute();
- return TRUE;
-
- case ID_EMULATOR_RUN:
- SetMenu(hWnd, NULL);
- OpenPlugins(hWnd);
- ShowCursor(FALSE);
- Running = 1;
- CheatSearchBackupMemory();
- psxCpu->Execute();
- return TRUE;
-
- case ID_EMULATOR_RESET:
- SetMenu(hWnd, NULL);
- OpenPlugins(hWnd);
- CheckCdrom();
-
- // Auto-detect: region first, then rcnt reset
- SysReset();
-
- LoadCdrom();
- ShowCursor(FALSE);
- Running = 1;
- psxCpu->Execute();
- return TRUE;
-
- case ID_EMULATOR_SHUTDOWN:
- ReleasePlugins();
- SetIsoFile(NULL);
- CdromId[0] = '\0';
- CdromLabel[0] = '\0';
- UpdateMenuItems();
- return TRUE;
-
- case ID_EMULATOR_SWITCH_ISO:
- if (!Open_Iso_Proc(File)) return TRUE;
- SetIsoFile(File);
- SetMenu(hWnd, NULL);
- if (OpenPlugins(hWnd) == -1) {
- ClosePlugins();
- RestoreWindow();
- return TRUE;
- }
- ShowCursor(FALSE);
- Running = 1;
- SetCdOpenCaseTime(time(NULL) + 2);
- CheatSearchBackupMemory();
- psxCpu->Execute();
- return TRUE;
-
- case ID_CONFIGURATION_GRAPHICS:
- if (GPU_configure) GPU_configure();
- return TRUE;
-
- case ID_CONFIGURATION_SOUND:
- if (SPU_configure) SPU_configure();
- return TRUE;
-
- case ID_CONFIGURATION_CONTROLLERS:
- if (PAD1_configure) PAD1_configure();
- if (strcmp(Config.Pad1, Config.Pad2)) if (PAD2_configure) PAD2_configure();
- return TRUE;
-
- case ID_CONFIGURATION_CDROM:
- if (CDR_configure) CDR_configure();
- return TRUE;
-
- case ID_CONFIGURATION_NETPLAY:
- DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_NETPLAY), hWnd, (DLGPROC)ConfigureNetPlayDlgProc);
- return TRUE;
-
- case ID_CONFIGURATION_MEMORYCARDMANAGER:
- DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_MCDCONF), hWnd, (DLGPROC)ConfigureMcdsDlgProc);
- return TRUE;
-
- case ID_CONFIGURATION_CPU:
- DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CPUCONF), hWnd, (DLGPROC)ConfigureCpuDlgProc);
- return TRUE;
-
- case ID_CONFIGURATION:
- ConfigurePlugins(hWnd);
- return TRUE;
-
- case ID_CONFIGURATION_CHEATLIST:
- DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATLIST), hWnd, (DLGPROC)CheatDlgProc);
- break;
-
- case ID_CONFIGURATION_CHEATSEARCH:
- DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATSEARCH), hWnd, (DLGPROC)CheatSearchDlgProc);
- break;
-
- case ID_HELP_ABOUT:
- DialogBox(gApp.hInstance, MAKEINTRESOURCE(ABOUT_DIALOG), hWnd, (DLGPROC)AboutDlgProc);
- return TRUE;
-
- default:
-#ifdef ENABLE_NLS
- if (LOWORD(wParam) >= ID_LANGS && LOWORD(wParam) <= (ID_LANGS + langsMax)) {
- AccBreak = 1;
- DestroyWindow(gApp.hWnd);
- ChangeLanguage(langs[LOWORD(wParam) - ID_LANGS].lang);
- CreateMainWindow(SW_NORMAL);
- return TRUE;
- }
-#endif
- break;
- }
- break;
-
- case WM_SYSKEYDOWN:
- if (wParam != VK_F10)
- return DefWindowProc(hWnd, msg, wParam, lParam);
- case WM_KEYDOWN:
- PADhandleKey(wParam);
- return TRUE;
-
- case WM_DESTROY:
- if (!AccBreak) {
- if (Running) ClosePlugins();
- SysClose();
- PostQuitMessage(0);
- exit(0);
- }
- else AccBreak = 0;
-
- DeleteObject(hBm);
- DeleteDC(hdcmem);
- return TRUE;
-
- case WM_QUIT:
- exit(0);
- break;
-
- default:
- return DefWindowProc(hWnd, msg, wParam, lParam);
- }
-
- return FALSE;
-}
-
-HWND mcdDlg;
-McdBlock Blocks[2][15];
-int IconC[2][15];
-HIMAGELIST Iiml[2];
-HICON eICON;
-
-void CreateListView(int idc) {
- HWND List;
- LV_COLUMN col;
-
- List = GetDlgItem(mcdDlg, idc);
-
- col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
- col.fmt = LVCFMT_LEFT;
-
- col.pszText = _("Title");
- col.cx = 170;
- col.iSubItem = 0;
-
- ListView_InsertColumn(List, 0, &col);
-
- col.pszText = _("Status");
- col.cx = 50;
- col.iSubItem = 1;
-
- ListView_InsertColumn(List, 1, &col);
-
- col.pszText = _("Game ID");
- col.cx = 90;
- col.iSubItem = 2;
-
- ListView_InsertColumn(List, 2, &col);
-
- col.pszText = _("Game");
- col.cx = 80;
- col.iSubItem = 3;
-
- ListView_InsertColumn(List, 3, &col);
-}
-
-int GetRGB() {
- HDC scrDC, memDC;
- HBITMAP oldBmp = NULL;
- HBITMAP curBmp = NULL;
- COLORREF oldColor;
- COLORREF curColor = RGB(255,255,255);
- int i, R, G, B;
-
- R = G = B = 1;
-
- scrDC = CreateDC("DISPLAY", NULL, NULL, NULL);
- memDC = CreateCompatibleDC(NULL);
- curBmp = CreateCompatibleBitmap(scrDC, 1, 1);
- oldBmp = (HBITMAP)SelectObject(memDC, curBmp);
-
- for (i = 255; i >= 0; --i) {
- oldColor = curColor;
- curColor = SetPixel(memDC, 0, 0, RGB(i, i, i));
-
- if (GetRValue(curColor) < GetRValue(oldColor)) ++R;
- if (GetGValue(curColor) < GetGValue(oldColor)) ++G;
- if (GetBValue(curColor) < GetBValue(oldColor)) ++B;
- }
-
- DeleteObject(oldBmp);
- DeleteObject(curBmp);
- DeleteDC(scrDC);
- DeleteDC(memDC);
-
- return (R * G * B);
-}
-
-HICON GetIcon(short *icon) {
- ICONINFO iInfo;
- HDC hDC;
- char mask[16*16];
- int x, y, c, Depth;
-
- hDC = CreateIC("DISPLAY",NULL,NULL,NULL);
- Depth=GetDeviceCaps(hDC, BITSPIXEL);
- DeleteDC(hDC);
-
- if (Depth == 16) {
- if (GetRGB() == (32 * 32 * 32))
- Depth = 15;
- }
-
- for (y=0; y<16; y++) {
- for (x=0; x<16; x++) {
- c = icon[y*16+x];
- if (Depth == 15 || Depth == 32)
- c = ((c&0x001f) << 10) |
- ((c&0x7c00) >> 10) |
- ((c&0x03e0) );
- else
- c = ((c&0x001f) << 11) |
- ((c&0x7c00) >> 9) |
- ((c&0x03e0) << 1);
-
- icon[y*16+x] = c;
- }
- }
-
- iInfo.fIcon = TRUE;
- memset(mask, 0, 16*16);
- iInfo.hbmMask = CreateBitmap(16, 16, 1, 1, mask);
- iInfo.hbmColor = CreateBitmap(16, 16, 1, 16, icon);
-
- return CreateIconIndirect(&iInfo);
-}
-
-HICON hICON[2][3][15];
-int aIover[2];
-int ani[2];
-
-void LoadMcdItems(int mcd, int idc) {
- HWND List = GetDlgItem(mcdDlg, idc);
- LV_ITEM item;
- HIMAGELIST iml = Iiml[mcd-1];
- int i, j;
- HICON hIcon;
- McdBlock *Info;
-
- aIover[mcd-1]=0;
- ani[mcd-1]=0;
-
- ListView_DeleteAllItems(List);
-
- for (i=0; i<15; i++) {
-
- item.mask = LVIF_TEXT | LVIF_IMAGE;
- item.iItem = i;
- item.iImage = i;
- item.pszText = LPSTR_TEXTCALLBACK;
- item.iSubItem = 0;
-
- IconC[mcd-1][i] = 0;
- Info = &Blocks[mcd-1][i];
-
- if ((Info->Flags & 0xF) == 1 && Info->IconCount != 0) {
- hIcon = GetIcon(Info->Icon);
-
- if (Info->IconCount > 1) {
- for(j = 0; j < 3; j++)
- hICON[mcd-1][j][i]=hIcon;
- }
- } else {
- hIcon = eICON;
- }
-
- ImageList_ReplaceIcon(iml, -1, hIcon);
- ListView_InsertItem(List, &item);
- }
-}
-
-void UpdateMcdItems(int mcd, int idc) {
- HWND List = GetDlgItem(mcdDlg, idc);
- LV_ITEM item;
- HIMAGELIST iml = Iiml[mcd-1];
- int i, j;
- McdBlock *Info;
- HICON hIcon;
-
- aIover[mcd-1]=0;
- ani[mcd-1]=0;
-
- for (i=0; i<15; i++) {
-
- item.mask = LVIF_TEXT | LVIF_IMAGE;
- item.iItem = i;
- item.iImage = i;
- item.pszText = LPSTR_TEXTCALLBACK;
- item.iSubItem = 0;
-
- IconC[mcd-1][i] = 0;
- Info = &Blocks[mcd-1][i];
-
- if ((Info->Flags & 0xF) == 1 && Info->IconCount != 0) {
- hIcon = GetIcon(Info->Icon);
-
- if (Info->IconCount > 1) {
- for(j = 0; j < 3; j++)
- hICON[mcd-1][j][i]=hIcon;
- }
- } else {
- hIcon = eICON;
- }
-
- ImageList_ReplaceIcon(iml, i, hIcon);
- ListView_SetItem(List, &item);
- }
- ListView_Update(List, -1);
-}
-
-void McdListGetDispInfo(int mcd, int idc, LPNMHDR pnmh) {
- LV_DISPINFO *lpdi = (LV_DISPINFO *)pnmh;
- McdBlock *Info;
- char buf[256];
- static char buftitle[256];
-
- Info = &Blocks[mcd - 1][lpdi->item.iItem];
-
- switch (lpdi->item.iSubItem) {
- case 0:
- switch (Info->Flags & 0xF) {
- case 1:
- if (MultiByteToWideChar(932, 0, (LPCSTR)Info->sTitle, -1, (LPWSTR)buf, sizeof(buf)) == 0) {
- lpdi->item.pszText = Info->Title;
- } else if (WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)buf, -1, (LPSTR)buftitle, sizeof(buftitle), NULL, NULL) == 0) {
- lpdi->item.pszText = Info->Title;
- } else {
- lpdi->item.pszText = buftitle;
- }
- break;
- case 2:
- lpdi->item.pszText = _("mid link block");
- break;
- case 3:
- lpdi->item.pszText = _("terminiting link block");
- break;
- }
- break;
- case 1:
- if ((Info->Flags & 0xF0) == 0xA0) {
- if ((Info->Flags & 0xF) >= 1 &&
- (Info->Flags & 0xF) <= 3) {
- lpdi->item.pszText = _("Deleted");
- } else lpdi->item.pszText = _("Free");
- } else if ((Info->Flags & 0xF0) == 0x50)
- lpdi->item.pszText = _("Used");
- else { lpdi->item.pszText = _("Free"); }
- break;
- case 2:
- if((Info->Flags & 0xF)==1)
- lpdi->item.pszText = Info->ID;
- break;
- case 3:
- if((Info->Flags & 0xF)==1)
- lpdi->item.pszText = Info->Name;
- break;
- }
-}
-
-void McdListNotify(int mcd, int idc, LPNMHDR pnmh) {
- switch (pnmh->code) {
- case LVN_GETDISPINFO: McdListGetDispInfo(mcd, idc, pnmh); break;
- }
-}
-
-void UpdateMcdDlg() {
- int i;
-
- for (i=1; i<16; i++) GetMcdBlockInfo(1, i, &Blocks[0][i-1]);
- for (i=1; i<16; i++) GetMcdBlockInfo(2, i, &Blocks[1][i-1]);
- UpdateMcdItems(1, IDC_LIST1);
- UpdateMcdItems(2, IDC_LIST2);
-}
-
-void LoadMcdDlg() {
- int i;
-
- for (i=1; i<16; i++) GetMcdBlockInfo(1, i, &Blocks[0][i-1]);
- for (i=1; i<16; i++) GetMcdBlockInfo(2, i, &Blocks[1][i-1]);
- LoadMcdItems(1, IDC_LIST1);
- LoadMcdItems(2, IDC_LIST2);
-}
-
-void UpdateMcdIcon(int mcd, int idc) {
- HWND List = GetDlgItem(mcdDlg, idc);
- HIMAGELIST iml = Iiml[mcd-1];
- int i;
- McdBlock *Info;
- int *count;
-
- if(!aIover[mcd-1]) {
- ani[mcd-1]++;
-
- for (i=0; i<15; i++) {
- Info = &Blocks[mcd-1][i];
- count = &IconC[mcd-1][i];
-
- if ((Info->Flags & 0xF) != 1) continue;
- if (Info->IconCount <= 1) continue;
-
- if (*count < Info->IconCount) {
- (*count)++;
- aIover[mcd-1]=0;
-
- if(ani[mcd-1] <= (Info->IconCount-1)) // last frame and below...
- hICON[mcd-1][ani[mcd-1]][i] = GetIcon(&Info->Icon[(*count)*16*16]);
- } else {
- aIover[mcd-1]=1;
- }
- }
-
- } else {
-
- if (ani[mcd-1] > 1) ani[mcd-1] = 0; // 1st frame
- else ani[mcd-1]++; // 2nd, 3rd frame
-
- for(i=0;i<15;i++) {
- Info = &Blocks[mcd-1][i];
-
- if (((Info->Flags & 0xF) == 1) && (Info->IconCount > 1))
- ImageList_ReplaceIcon(iml, i, hICON[mcd-1][ani[mcd-1]][i]);
- }
- InvalidateRect(List, NULL, FALSE);
- }
-}
-
-static int copy = 0, copymcd = 0;
-//static int listsel = 0;
-
-BOOL CALLBACK ConfigureMcdsDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- char str[256];
- LPBYTE lpAND, lpXOR;
- LPBYTE lpA, lpX;
- int i, j;
-
- switch(uMsg) {
- case WM_INITDIALOG:
- mcdDlg = hW;
-
- SetWindowText(hW, _("Memcard Manager"));
-
- Button_SetText(GetDlgItem(hW, IDOK), _("OK"));
- Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));
- Button_SetText(GetDlgItem(hW, IDC_MCDSEL1), _("Select Mcd"));
- Button_SetText(GetDlgItem(hW, IDC_FORMAT1), _("Format Mcd"));
- Button_SetText(GetDlgItem(hW, IDC_RELOAD1), _("Reload Mcd"));
- Button_SetText(GetDlgItem(hW, IDC_MCDSEL2), _("Select Mcd"));
- Button_SetText(GetDlgItem(hW, IDC_FORMAT2), _("Format Mcd"));
- Button_SetText(GetDlgItem(hW, IDC_RELOAD2), _("Reload Mcd"));
- Button_SetText(GetDlgItem(hW, IDC_COPYTO2), _("-> Copy ->"));
- Button_SetText(GetDlgItem(hW, IDC_COPYTO1), _("<- Copy <-"));
- Button_SetText(GetDlgItem(hW, IDC_PASTE), _("Paste"));
- Button_SetText(GetDlgItem(hW, IDC_DELETE1), _("<- Un/Delete"));
- Button_SetText(GetDlgItem(hW, IDC_DELETE2), _("Un/Delete ->"));
-
- Static_SetText(GetDlgItem(hW, IDC_FRAMEMCD1), _("Memory Card 1"));
- Static_SetText(GetDlgItem(hW, IDC_FRAMEMCD2), _("Memory Card 2"));
-
- lpA=lpAND=(LPBYTE)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,(16*16));
- lpX=lpXOR=(LPBYTE)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,(16*16));
-
- for(i=0;i<16;i++)
- {
- for(j=0;j<16;j++)
- {
- *lpA++=0xff;
- *lpX++=0;
- }
- }
- eICON=CreateIcon(gApp.hInstance,16,16,1,1,lpAND,lpXOR);
-
- HeapFree(GetProcessHeap(),0,lpAND);
- HeapFree(GetProcessHeap(),0,lpXOR);
-
- if (!strlen(Config.Mcd1)) strcpy(Config.Mcd1, "memcards\\Mcd001.mcr");
- if (!strlen(Config.Mcd2)) strcpy(Config.Mcd2, "memcards\\Mcd002.mcr");
- Edit_SetText(GetDlgItem(hW,IDC_MCD1), Config.Mcd1);
- Edit_SetText(GetDlgItem(hW,IDC_MCD2), Config.Mcd2);
-
- CreateListView(IDC_LIST1);
- CreateListView(IDC_LIST2);
-
- Iiml[0] = ImageList_Create(16, 16, ILC_COLOR16, 0, 0);
- Iiml[1] = ImageList_Create(16, 16, ILC_COLOR16, 0, 0);
-
- ListView_SetImageList(GetDlgItem(mcdDlg, IDC_LIST1), Iiml[0], LVSIL_SMALL);
- ListView_SetImageList(GetDlgItem(mcdDlg, IDC_LIST2), Iiml[1], LVSIL_SMALL);
-
- Button_Enable(GetDlgItem(hW, IDC_PASTE), FALSE);
-
- LoadMcdDlg();
-
- SetTimer(hW, 1, 250, NULL);
-
- return TRUE;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_COPYTO1:
- copy = ListView_GetSelectionMark(GetDlgItem(mcdDlg, IDC_LIST2));
- copymcd = 1;
-
- Button_Enable(GetDlgItem(hW, IDC_PASTE), TRUE);
- return TRUE;
- case IDC_COPYTO2:
- copy = ListView_GetSelectionMark(GetDlgItem(mcdDlg, IDC_LIST1));
- copymcd = 2;
-
- Button_Enable(GetDlgItem(hW, IDC_PASTE), TRUE);
- return TRUE;
- case IDC_PASTE:
- if (MessageBox(hW, _("Are you sure you want to paste this selection?"), _("Confirmation"), MB_YESNO) == IDNO) return TRUE;
-
- if (copymcd == 1) {
- Edit_GetText(GetDlgItem(hW,IDC_MCD1), str, 256);
- i = ListView_GetSelectionMark(GetDlgItem(mcdDlg, IDC_LIST1));
-
- // save dir data + save data
- memcpy(Mcd1Data + (i+1) * 128, Mcd2Data + (copy+1) * 128, 128);
- SaveMcd(str, Mcd1Data, (i+1) * 128, 128);
- memcpy(Mcd1Data + (i+1) * 1024 * 8, Mcd2Data + (copy+1) * 1024 * 8, 1024 * 8);
- SaveMcd(str, Mcd1Data, (i+1) * 1024 * 8, 1024 * 8);
- } else { // 2
- Edit_GetText(GetDlgItem(hW,IDC_MCD2), str, 256);
- i = ListView_GetSelectionMark(GetDlgItem(mcdDlg, IDC_LIST2));
-
- // save dir data + save data
- memcpy(Mcd2Data + (i+1) * 128, Mcd1Data + (copy+1) * 128, 128);
- SaveMcd(str, Mcd2Data, (i+1) * 128, 128);
- memcpy(Mcd2Data + (i+1) * 1024 * 8, Mcd1Data + (copy+1) * 1024 * 8, 1024 * 8);
- SaveMcd(str, Mcd2Data, (i+1) * 1024 * 8, 1024 * 8);
- }
-
- UpdateMcdDlg();
-
- return TRUE;
- case IDC_DELETE1:
- {
- McdBlock *Info;
- int mcd = 1;
- int i, xor = 0, j;
- unsigned char *data, *ptr;
-
- Edit_GetText(GetDlgItem(hW,IDC_MCD1), str, 256);
- i = ListView_GetSelectionMark(GetDlgItem(mcdDlg, IDC_LIST1));
- data = Mcd1Data;
-
- i++;
-
- ptr = data + i * 128;
-
- Info = &Blocks[mcd-1][i-1];
-
- if ((Info->Flags & 0xF0) == 0xA0) {
- if ((Info->Flags & 0xF) >= 1 &&
- (Info->Flags & 0xF) <= 3) { // deleted
- *ptr = 0x50 | (Info->Flags & 0xF);
- } else return TRUE;
- } else if ((Info->Flags & 0xF0) == 0x50) { // used
- *ptr = 0xA0 | (Info->Flags & 0xF);
- } else { return TRUE; }
-
- for (j=0; j<127; j++) xor^=*ptr++;
- *ptr = xor;
-
- SaveMcd(str, data, i * 128, 128);
- UpdateMcdDlg();
- }
-
- return TRUE;
- case IDC_DELETE2:
- {
- McdBlock *Info;
- int mcd = 2;
- int i, xor = 0, j;
- unsigned char *data, *ptr;
-
- Edit_GetText(GetDlgItem(hW,IDC_MCD2), str, 256);
- i = ListView_GetSelectionMark(GetDlgItem(mcdDlg, IDC_LIST2));
- data = Mcd2Data;
-
- i++;
-
- ptr = data + i * 128;
-
- Info = &Blocks[mcd-1][i-1];
-
- if ((Info->Flags & 0xF0) == 0xA0) {
- if ((Info->Flags & 0xF) >= 1 &&
- (Info->Flags & 0xF) <= 3) { // deleted
- *ptr = 0x50 | (Info->Flags & 0xF);
- } else return TRUE;
- } else if ((Info->Flags & 0xF0) == 0x50) { // used
- *ptr = 0xA0 | (Info->Flags & 0xF);
- } else { return TRUE; }
-
- for (j=0; j<127; j++) xor^=*ptr++;
- *ptr = xor;
-
- SaveMcd(str, data, i * 128, 128);
- UpdateMcdDlg();
- }
-
- return TRUE;
-
- case IDC_MCDSEL1:
- Open_Mcd_Proc(hW, 1);
- return TRUE;
- case IDC_MCDSEL2:
- Open_Mcd_Proc(hW, 2);
- return TRUE;
- case IDC_RELOAD1:
- Edit_GetText(GetDlgItem(hW,IDC_MCD1), str, 256);
- LoadMcd(1, str);
- UpdateMcdDlg();
- return TRUE;
- case IDC_RELOAD2:
- Edit_GetText(GetDlgItem(hW,IDC_MCD2), str, 256);
- LoadMcd(2, str);
- UpdateMcdDlg();
- return TRUE;
- case IDC_FORMAT1:
- if (MessageBox(hW, _("Are you sure you want to format this Memory Card?"), _("Confirmation"), MB_YESNO) == IDNO) return TRUE;
- Edit_GetText(GetDlgItem(hW,IDC_MCD1), str, 256);
- CreateMcd(str);
- LoadMcd(1, str);
- UpdateMcdDlg();
- return TRUE;
- case IDC_FORMAT2:
- if (MessageBox(hW, _("Are you sure you want to format this Memory Card?"), _("Confirmation"), MB_YESNO) == IDNO) return TRUE;
- Edit_GetText(GetDlgItem(hW,IDC_MCD2), str, 256);
- CreateMcd(str);
- LoadMcd(2, str);
- UpdateMcdDlg();
- return TRUE;
- case IDCANCEL:
- LoadMcds(Config.Mcd1, Config.Mcd2);
-
- EndDialog(hW,FALSE);
-
- return TRUE;
- case IDOK:
- Edit_GetText(GetDlgItem(hW,IDC_MCD1), Config.Mcd1, 256);
- Edit_GetText(GetDlgItem(hW,IDC_MCD2), Config.Mcd2, 256);
-
- LoadMcds(Config.Mcd1, Config.Mcd2);
- SaveConfig();
-
- EndDialog(hW,TRUE);
-
- return TRUE;
- }
- case WM_NOTIFY:
- switch (wParam) {
- case IDC_LIST1: McdListNotify(1, IDC_LIST1, (LPNMHDR)lParam); break;
- case IDC_LIST2: McdListNotify(2, IDC_LIST2, (LPNMHDR)lParam); break;
- }
- return TRUE;
- case WM_TIMER:
- UpdateMcdIcon(1, IDC_LIST1);
- UpdateMcdIcon(2, IDC_LIST2);
- return TRUE;
- case WM_DESTROY:
- DestroyIcon(eICON);
- //KillTimer(hW, 1);
- return TRUE;
- }
- return FALSE;
-}
-
-BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- long tmp;
-
- switch(uMsg) {
- case WM_INITDIALOG:
- SetWindowText(hW, _("Cpu Config"));
-
- Button_SetText(GetDlgItem(hW,IDOK), _("OK"));
- Button_SetText(GetDlgItem(hW,IDCANCEL), _("Cancel"));
-
- Button_SetText(GetDlgItem(hW,IDC_XA), _("Disable Xa Decoding"));
- Button_SetText(GetDlgItem(hW,IDC_SIO), _("Sio Irq Always Enabled"));
- Button_SetText(GetDlgItem(hW,IDC_MDEC), _("Black && White Movies"));
- Button_SetText(GetDlgItem(hW,IDC_CDDA), _("Disable Cd audio"));
- Button_SetText(GetDlgItem(hW,IDC_SLOWBOOT),_("Slow Boot"));
- Button_SetText(GetDlgItem(hW,IDC_PSXAUTO), _("Autodetect"));
- Button_SetText(GetDlgItem(hW,IDC_CPU), _("Enable Interpreter Cpu"));
- Button_SetText(GetDlgItem(hW,IDC_PSXOUT), _("Enable Console Output"));
- Button_SetText(GetDlgItem(hW,IDC_DEBUG), _("Enable Debugger"));
- Button_SetText(GetDlgItem(hW,IDC_SPUIRQ), _("Spu Irq Always Enabled"));
- Button_SetText(GetDlgItem(hW,IDC_RCNTFIX), _("Parasite Eve 2, Vandal Hearts 1/2 Fix"));
- Button_SetText(GetDlgItem(hW,IDC_VSYNCWA), _("InuYasha Sengoku Battle Fix"));
- Button_SetText(GetDlgItem(hW,IDC_WIDESCREEN), _("Widescreen (GTE Hack)"));
-
- Static_SetText(GetDlgItem(hW,IDC_MISCOPT), _("Options"));
- Static_SetText(GetDlgItem(hW,IDC_SELPSX), _("Psx System Type"));
-
- Button_SetCheck(GetDlgItem(hW,IDC_XA), Config.Xa);
- Button_SetCheck(GetDlgItem(hW,IDC_SIO), Config.Sio);
- Button_SetCheck(GetDlgItem(hW,IDC_MDEC), Config.Mdec);
- Button_SetCheck(GetDlgItem(hW,IDC_CDDA), Config.Cdda);
- Button_SetCheck(GetDlgItem(hW,IDC_SLOWBOOT),Config.SlowBoot);
- Button_SetCheck(GetDlgItem(hW,IDC_PSXAUTO), Config.PsxAuto);
- Button_SetCheck(GetDlgItem(hW,IDC_CPU), (Config.Cpu == CPU_INTERPRETER));
- Button_SetCheck(GetDlgItem(hW,IDC_PSXOUT), Config.PsxOut);
- Button_SetCheck(GetDlgItem(hW,IDC_DEBUG), Config.Debug);
- Button_SetCheck(GetDlgItem(hW,IDC_SPUIRQ), Config.SpuIrq);
- Button_SetCheck(GetDlgItem(hW,IDC_RCNTFIX), Config.RCntFix);
- Button_SetCheck(GetDlgItem(hW,IDC_VSYNCWA), Config.VSyncWA);
- Button_SetCheck(GetDlgItem(hW,IDC_WIDESCREEN), Config.Widescreen);
- ComboBox_AddString(GetDlgItem(hW,IDC_PSXTYPES), "NTSC");
- ComboBox_AddString(GetDlgItem(hW,IDC_PSXTYPES), "PAL");
- ComboBox_SetCurSel(GetDlgItem(hW,IDC_PSXTYPES),Config.PsxType);
-
- if (Config.Cpu == CPU_DYNAREC) {
- Config.Debug = 0;
- Button_SetCheck(GetDlgItem(hW, IDC_DEBUG), FALSE);
- EnableWindow(GetDlgItem(hW, IDC_DEBUG), FALSE);
- }
-
- EnableWindow(GetDlgItem(hW,IDC_PSXTYPES), !Config.PsxAuto);
- break;
-
- case WM_COMMAND: {
- switch (LOWORD(wParam)) {
- case IDCANCEL: EndDialog(hW, FALSE); return TRUE;
- case IDOK:
- tmp = ComboBox_GetCurSel(GetDlgItem(hW,IDC_PSXTYPES));
- if (tmp == 0) Config.PsxType = 0;
- else Config.PsxType = 1;
-
- Config.Xa = Button_GetCheck(GetDlgItem(hW,IDC_XA));
- Config.Sio = Button_GetCheck(GetDlgItem(hW,IDC_SIO));
- Config.Mdec = Button_GetCheck(GetDlgItem(hW,IDC_MDEC));
- Config.Cdda = Button_GetCheck(GetDlgItem(hW,IDC_CDDA));
- Config.SlowBoot= Button_GetCheck(GetDlgItem(hW,IDC_SLOWBOOT));
- Config.PsxAuto = Button_GetCheck(GetDlgItem(hW,IDC_PSXAUTO));
- tmp = Config.Cpu;
- Config.Cpu = (Button_GetCheck(GetDlgItem(hW,IDC_CPU)) ? CPU_INTERPRETER : CPU_DYNAREC);
- if (tmp != Config.Cpu) {
- psxCpu->Shutdown();
- if (Config.Cpu == CPU_INTERPRETER) psxCpu = &psxInt;
- else psxCpu = &psxRec;
- if (psxCpu->Init() == -1) {
- SysClose();
- exit(1);
- }
- psxCpu->Reset();
- }
- Config.PsxOut = Button_GetCheck(GetDlgItem(hW,IDC_PSXOUT));
- Config.SpuIrq = Button_GetCheck(GetDlgItem(hW,IDC_SPUIRQ));
- Config.RCntFix = Button_GetCheck(GetDlgItem(hW,IDC_RCNTFIX));
- Config.VSyncWA = Button_GetCheck(GetDlgItem(hW,IDC_VSYNCWA));
- Config.Widescreen = Button_GetCheck(GetDlgItem(hW,IDC_WIDESCREEN));
- tmp = Config.Debug;
- Config.Debug = Button_GetCheck(GetDlgItem(hW,IDC_DEBUG));
- if (tmp != Config.Debug) {
- if (Config.Debug) StartDebugger();
- else StopDebugger();
- }
-
- SaveConfig();
-
- EndDialog(hW,TRUE);
-
- if (Config.PsxOut) OpenConsole();
- else CloseConsole();
-
- return TRUE;
-
- case IDC_CPU:
- if (Button_GetCheck(GetDlgItem(hW,IDC_CPU))) {
- EnableWindow(GetDlgItem(hW,IDC_DEBUG), TRUE);
- } else {
- Button_SetCheck(GetDlgItem(hW,IDC_DEBUG), FALSE);
- EnableWindow(GetDlgItem(hW,IDC_DEBUG), FALSE);
- }
- break;
-
- case IDC_PSXAUTO:
- if (Button_GetCheck(GetDlgItem(hW,IDC_PSXAUTO))) {
- EnableWindow(GetDlgItem(hW,IDC_PSXTYPES), FALSE);
- } else {
- EnableWindow(GetDlgItem(hW,IDC_PSXTYPES), TRUE);
- }
- break;
- }
- }
- }
- return FALSE;
-}
-
-void Open_Mcd_Proc(HWND hW, int mcd) {
- OPENFILENAME ofn;
- char szFileName[MAXPATHLEN];
- char szFileTitle[MAXPATHLEN];
- char szFilter[1024];
- char *str;
-
- memset(&szFileName, 0, sizeof(szFileName));
- memset(&szFileTitle, 0, sizeof(szFileTitle));
- memset(&szFilter, 0, sizeof(szFilter));
-
- strcpy(szFilter, _("Psx Mcd Format (*.mcr;*.mc;*.mem;*.vgs;*.mcd;*.gme;*.ddf)"));
- str = szFilter + strlen(szFilter) + 1;
- strcpy(str, "*.mcr;*.mcd;*.mem;*.gme;*.mc;*.ddf");
-
- str+= strlen(str) + 1;
- strcpy(str, _("Psx Memory Card (*.mcr;*.mc)"));
- str+= strlen(str) + 1;
- strcpy(str, "*.mcr;0*.mc");
-
- str+= strlen(str) + 1;
- strcpy(str, _("CVGS Memory Card (*.mem;*.vgs)"));
- str+= strlen(str) + 1;
- strcpy(str, "*.mem;*.vgs");
-
- str+= strlen(str) + 1;
- strcpy(str, _("Bleem Memory Card (*.mcd)"));
- str+= strlen(str) + 1;
- strcpy(str, "*.mcd");
-
- str+= strlen(str) + 1;
- strcpy(str, _("DexDrive Memory Card (*.gme)"));
- str+= strlen(str) + 1;
- strcpy(str, "*.gme");
-
- str+= strlen(str) + 1;
- strcpy(str, _("DataDeck Memory Card (*.ddf)"));
- str+= strlen(str) + 1;
- strcpy(str, "*.ddf");
-
- str+= strlen(str) + 1;
- strcpy(str, _("All Files"));
- str+= strlen(str) + 1;
- strcpy(str, "*.*");
-
- ofn.lStructSize = sizeof(OPENFILENAME);
- ofn.hwndOwner = hW;
- ofn.lpstrFilter = szFilter;
- ofn.lpstrCustomFilter = NULL;
- ofn.nMaxCustFilter = 0;
- ofn.nFilterIndex = 1;
- ofn.lpstrFile = szFileName;
- ofn.nMaxFile = MAXPATHLEN;
- ofn.lpstrInitialDir = "memcards";
- ofn.lpstrFileTitle = szFileTitle;
- ofn.nMaxFileTitle = MAXPATHLEN;
- ofn.lpstrTitle = NULL;
- ofn.lpstrDefExt = "MCR";
- ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
-
- if (GetOpenFileName ((LPOPENFILENAME)&ofn)) {
- Edit_SetText(GetDlgItem(hW,mcd == 1 ? IDC_MCD1 : IDC_MCD2), szFileName);
- LoadMcd(mcd, szFileName);
- UpdateMcdDlg();
- }
-}
-
-int Open_File_Proc(char *file) {
- OPENFILENAME ofn;
- char szFileName[MAXPATHLEN];
- char szFileTitle[MAXPATHLEN];
- char szFilter[256];
-
- memset(&szFileName, 0, sizeof(szFileName));
- memset(&szFileTitle, 0, sizeof(szFileTitle));
- memset(&szFilter, 0, sizeof(szFilter));
-
- ofn.lStructSize = sizeof(OPENFILENAME);
- ofn.hwndOwner = gApp.hWnd;
-
- strcpy(szFilter, _("Psx Exe Format"));
- strcatz(szFilter, "*.*");
-
- ofn.lpstrFilter = szFilter;
- ofn.lpstrCustomFilter = NULL;
- ofn.nMaxCustFilter = 0;
- ofn.nFilterIndex = 1;
- ofn.lpstrFile = szFileName;
- ofn.nMaxFile = MAXPATHLEN;
- ofn.lpstrInitialDir = NULL;
- ofn.lpstrFileTitle = szFileTitle;
- ofn.nMaxFileTitle = MAXPATHLEN;
- ofn.lpstrTitle = NULL;
- ofn.lpstrDefExt = "EXE";
- ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
-
- if (GetOpenFileName ((LPOPENFILENAME)&ofn)) {
- strcpy(file, szFileName);
- return 1;
- } else
- return 0;
-}
-
-int Open_Iso_Proc(char *file) {
- OPENFILENAME ofn;
- char szFileName[MAXPATHLEN];
- char szFileTitle[MAXPATHLEN];
- char szFilter[256];
- char *str;
-
- memset(&szFileName, 0, sizeof(szFileName));
- memset(&szFileTitle, 0, sizeof(szFileTitle));
- memset(&szFilter, 0, sizeof(szFilter));
-
- ofn.lStructSize = sizeof(OPENFILENAME);
- ofn.hwndOwner = gApp.hWnd;
-
- strcpy(szFilter, _("Psx Isos (*.iso;*.mdf;*.img;*.bin)"));
- str = szFilter + strlen(szFilter) + 1;
- strcpy(str, "*.iso;*.mdf;*.img;*.bin");
-
- str += strlen(str) + 1;
- strcpy(str, _("All Files"));
- str += strlen(str) + 1;
- strcpy(str, "*.*");
-
- ofn.lpstrFilter = szFilter;
- ofn.lpstrCustomFilter = NULL;
- ofn.nMaxCustFilter = 0;
- ofn.nFilterIndex = 1;
- ofn.lpstrFile = szFileName;
- ofn.nMaxFile = MAXPATHLEN;
- ofn.lpstrInitialDir = NULL;
- ofn.lpstrFileTitle = szFileTitle;
- ofn.nMaxFileTitle = MAXPATHLEN;
- ofn.lpstrTitle = NULL;
- ofn.lpstrDefExt = "ISO";
- ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
-
- if (GetOpenFileName ((LPOPENFILENAME)&ofn)) {
- strcpy(file, szFileName);
- return 1;
- } else
- return 0;
-}
-
-#define _ADDSUBMENU(menu, menun, string) \
- submenu[menun] = CreatePopupMenu(); \
- AppendMenu(menu, MF_STRING | MF_POPUP, (UINT)submenu[menun], string);
-
-#define ADDSUBMENU(menun, string) \
- _ADDSUBMENU(gApp.hMenu, menun, string);
-
-#define ADDSUBMENUS(submn, menun, string) \
- submenu[menun] = CreatePopupMenu(); \
- InsertMenu(submenu[submn], 0, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)submenu[menun], string);
-
-#define ADDMENUITEM(menun, string, id) \
- item.fType = MFT_STRING; \
- item.fMask = MIIM_STATE | MIIM_TYPE | MIIM_ID; \
- item.fState = MFS_ENABLED; \
- item.wID = id; \
- sprintf(buf, string); \
- InsertMenuItem(submenu[menun], 0, TRUE, &item);
-
-#define ADDMENUITEMC(menun, string, id) \
- item.fType = MFT_STRING; \
- item.fMask = MIIM_STATE | MIIM_TYPE | MIIM_ID; \
- item.fState = MFS_ENABLED | MFS_CHECKED; \
- item.wID = id; \
- sprintf(buf, string); \
- InsertMenuItem(submenu[menun], 0, TRUE, &item);
-
-#define ADDSEPARATOR(menun) \
- item.fMask = MIIM_TYPE; \
- item.fType = MFT_SEPARATOR; \
- InsertMenuItem(submenu[menun], 0, TRUE, &item);
-
-void CreateMainMenu() {
- MENUITEMINFO item;
- HMENU submenu[256];
- char buf[256];
-#ifdef ENABLE_NLS
- char *lang;
- int i;
-#endif
-
- item.cbSize = sizeof(MENUITEMINFO);
- item.dwTypeData = buf;
- item.cch = 256;
-
- gApp.hMenu = CreateMenu();
-
- ADDSUBMENU(0, _("&File"));
- ADDMENUITEM(0, _("E&xit"), ID_FILE_EXIT);
- ADDSEPARATOR(0);
- ADDMENUITEM(0, _("Run &EXE..."), ID_FILE_RUN_EXE);
- ADDMENUITEM(0, _("Run &BIOS"), ID_FILE_RUNBIOS);
- ADDMENUITEM(0, _("Run &ISO..."), ID_FILE_RUN_ISO);
- ADDMENUITEM(0, _("Run &CD"), ID_FILE_RUN_CD);
-
- ADDSUBMENU(0, _("&Emulator"));
- ADDSUBMENUS(0, 1, _("&States"));
- ADDSEPARATOR(0);
- ADDMENUITEM(0, _("S&witch ISO..."), ID_EMULATOR_SWITCH_ISO);
- ADDSEPARATOR(0);
- ADDMENUITEM(0, _("S&hutdown"), ID_EMULATOR_SHUTDOWN);
- ADDMENUITEM(0, _("Re&set"), ID_EMULATOR_RESET);
- ADDMENUITEM(0, _("&Run"), ID_EMULATOR_RUN);
- ADDSUBMENUS(1, 3, _("&Save"));
- ADDSUBMENUS(1, 2, _("&Load"));
- ADDMENUITEM(2, _("&Other..."), ID_FILE_STATES_LOAD_OTHER);
- ADDMENUITEM(2, _("Slot &9"), ID_FILE_STATES_LOAD_SLOT9);
- ADDMENUITEM(2, _("Slot &8"), ID_FILE_STATES_LOAD_SLOT8);
- ADDMENUITEM(2, _("Slot &7"), ID_FILE_STATES_LOAD_SLOT7);
- ADDMENUITEM(2, _("Slot &6"), ID_FILE_STATES_LOAD_SLOT6);
- ADDMENUITEM(2, _("Slot &5"), ID_FILE_STATES_LOAD_SLOT5);
- ADDMENUITEM(2, _("Slot &4"), ID_FILE_STATES_LOAD_SLOT4);
- ADDMENUITEM(2, _("Slot &3"), ID_FILE_STATES_LOAD_SLOT3);
- ADDMENUITEM(2, _("Slot &2"), ID_FILE_STATES_LOAD_SLOT2);
- ADDMENUITEM(2, _("Slot &1"), ID_FILE_STATES_LOAD_SLOT1);
- ADDMENUITEM(3, _("&Other..."), ID_FILE_STATES_SAVE_OTHER);
- ADDMENUITEM(3, _("Slot &9"), ID_FILE_STATES_SAVE_SLOT9);
- ADDMENUITEM(3, _("Slot &8"), ID_FILE_STATES_SAVE_SLOT8);
- ADDMENUITEM(3, _("Slot &7"), ID_FILE_STATES_SAVE_SLOT7);
- ADDMENUITEM(3, _("Slot &6"), ID_FILE_STATES_SAVE_SLOT6);
- ADDMENUITEM(3, _("Slot &5"), ID_FILE_STATES_SAVE_SLOT5);
- ADDMENUITEM(3, _("Slot &4"), ID_FILE_STATES_SAVE_SLOT4);
- ADDMENUITEM(3, _("Slot &3"), ID_FILE_STATES_SAVE_SLOT3);
- ADDMENUITEM(3, _("Slot &2"), ID_FILE_STATES_SAVE_SLOT2);
- ADDMENUITEM(3, _("Slot &1"), ID_FILE_STATES_SAVE_SLOT1);
-
- ADDSUBMENU(0, _("&Configuration"));
- ADDMENUITEM(0, _("Cheat &Search..."), ID_CONFIGURATION_CHEATSEARCH);
- ADDMENUITEM(0, _("Ch&eat Code..."), ID_CONFIGURATION_CHEATLIST);
- ADDSEPARATOR(0);
-#ifdef ENABLE_NLS
- ADDSUBMENUS(0, 1, _("&Language"));
-
- if (langs != langs) free(langs);
- langs = (_langs*)malloc(sizeof(_langs));
- strcpy(langs[0].lang, "English");
- InitLanguages(); i=1;
- while ((lang = GetLanguageNext()) != NULL) {
- langs = (_langs*)realloc(langs, sizeof(_langs)*(i+1));
- strcpy(langs[i].lang, lang);
- if (!strcmp(Config.Lang, lang)) {
- ADDMENUITEMC(1, ParseLang(langs[i].lang), ID_LANGS + i);
- } else {
- ADDMENUITEM(1, ParseLang(langs[i].lang), ID_LANGS + i);
- }
- i++;
- }
- CloseLanguages();
- langsMax = i;
- if (!strcmp(Config.Lang, "English")) {
- ADDMENUITEMC(1, _("English"), ID_LANGS);
- } else {
- ADDMENUITEM(1, _("English"), ID_LANGS);
- }
- ADDSEPARATOR(0);
-#endif
- ADDMENUITEM(0, _("&Memory cards..."), ID_CONFIGURATION_MEMORYCARDMANAGER);
- ADDMENUITEM(0, _("C&PU..."), ID_CONFIGURATION_CPU);
- ADDSEPARATOR(0);
- ADDMENUITEM(0, _("&NetPlay..."), ID_CONFIGURATION_NETPLAY);
- ADDSEPARATOR(0);
- ADDMENUITEM(0, _("&Controllers..."), ID_CONFIGURATION_CONTROLLERS);
- ADDMENUITEM(0, _("CD-&ROM..."), ID_CONFIGURATION_CDROM);
- ADDMENUITEM(0, _("&Sound..."), ID_CONFIGURATION_SOUND);
- ADDMENUITEM(0, _("&Graphics..."), ID_CONFIGURATION_GRAPHICS);
- ADDSEPARATOR(0);
- ADDMENUITEM(0, _("&Plugins && Bios..."), ID_CONFIGURATION);
-
- ADDSUBMENU(0, _("&Help"));
- ADDMENUITEM(0, _("&About..."), ID_HELP_ABOUT);
-
- UpdateMenuItems();
-}
-
-void CreateMainWindow(int nCmdShow) {
- WNDCLASS wc;
- HWND hWnd;
-
- wc.lpszClassName = "PCSXR Main";
- wc.lpfnWndProc = MainWndProc;
- wc.style = 0;
- wc.hInstance = gApp.hInstance;
- wc.hIcon = LoadIcon(gApp.hInstance, MAKEINTRESOURCE(IDI_APP_ICON));
- wc.hCursor = NULL;
- wc.hbrBackground = (HBRUSH)(COLOR_MENUTEXT);
- wc.lpszMenuName = 0;
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 0;
-
- RegisterClass(&wc);
-
- hWnd = CreateWindow("PCSXR Main",
- "PCSXR",
- WS_CAPTION | WS_POPUPWINDOW | WS_MINIMIZEBOX,
- CW_USEDEFAULT,
- 0,
- 356,
- 252,
- NULL,
- NULL,
- gApp.hInstance,
- NULL);
-
- gApp.hWnd = hWnd;
-
- CreateMainMenu();
- SetMenu(gApp.hWnd, gApp.hMenu);
-
- ShowWindow(hWnd, nCmdShow);
-}
-
-#ifdef ENABLE_NLS
-
-WIN32_FIND_DATA lFindData;
-HANDLE lFind;
-int lFirst;
-
-void InitLanguages() {
- lFind = FindFirstFile("Langs\\*", &lFindData);
- lFirst = 1;
-}
-
-char *GetLanguageNext() {
- for (;;) {
- if (!strcmp(lFindData.cFileName, ".")) {
- if (FindNextFile(lFind, &lFindData) == FALSE)
- return NULL;
- continue;
- }
- if (!strcmp(lFindData.cFileName, "..")) {
- if (FindNextFile(lFind, &lFindData) == FALSE)
- return NULL;
- continue;
- }
- break;
- }
- if (lFirst == 0) {
- if (FindNextFile(lFind, &lFindData) == FALSE)
- return NULL;
- } else lFirst = 0;
- if (lFind==INVALID_HANDLE_VALUE) return NULL;
-
- return lFindData.cFileName;
-}
-
-void CloseLanguages() {
- if (lFind != INVALID_HANDLE_VALUE) FindClose(lFind);
-}
-
-void ChangeLanguage(char *lang) {
- strcpy(Config.Lang, lang);
- SaveConfig();
- LoadConfig();
-}
-
-#endif
-
-int SysInit() {
- if (Config.PsxOut) OpenConsole();
-
- if (EmuInit() == -1) return -1;
-
-#ifdef EMU_LOG
- emuLog = fopen("emuLog.txt","w");
- setvbuf(emuLog, NULL, _IONBF, 0);
-#endif
-
- while (LoadPlugins(0) == -1) {
- CancelQuit = 1;
- ConfigurePlugins(gApp.hWnd);
- CancelQuit = 0;
- }
- LoadMcds(Config.Mcd1, Config.Mcd2);
-
- if (Config.Debug) StartDebugger();
-
- return 0;
-}
-
-void SysReset() {
- EmuReset();
-}
-
-void SysClose() {
- EmuShutdown();
- ReleasePlugins();
-
- StopDebugger();
-
- if (Config.PsxOut) CloseConsole();
-
- if (emuLog != NULL) fclose(emuLog);
-}
-
-void SysPrintf(const char *fmt, ...) {
- va_list list;
- char msg[512];
- DWORD tmp;
-
- if (!hConsole) return;
-
- va_start(list,fmt);
- vsprintf(msg,fmt,list);
- va_end(list);
-
- WriteConsole(hConsole, msg, (DWORD)strlen(msg), &tmp, 0);
-#ifdef EMU_LOG
-#ifndef LOG_STDOUT
- if (emuLog != NULL) fprintf(emuLog, "%s", msg);
-#endif
-#endif
-}
-
-void SysMessage(const char *fmt, ...) {
- va_list list;
- char tmp[512];
-
- va_start(list,fmt);
- vsprintf(tmp,fmt,list);
- va_end(list);
- MessageBox(0, tmp, _("Pcsxr Msg"), 0);
-}
-
-static char *err = N_("Error Loading Symbol");
-static int errval;
-
-void *SysLoadLibrary(const char *lib) {
- return LoadLibrary(lib);
-}
-
-void *SysLoadSym(void *lib, const char *sym) {
- void *tmp = GetProcAddress((HINSTANCE)lib, sym);
- if (tmp == NULL) errval = 1;
- else errval = 0;
- return tmp;
-}
-
-const char *SysLibError() {
- if (errval) { errval = 0; return err; }
- return NULL;
-}
-
-void SysCloseLibrary(void *lib) {
- FreeLibrary((HINSTANCE)lib);
-}
-
-void SysUpdate() {
- MSG msg;
-
- while (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE)) {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
-}
-
-void SysRunGui() {
- RestoreWindow();
- RunGui();
-}
-
-void UpdateMenuItems() {
- if (CdromId[0] != '\0') {
- EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_NETPLAY, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_CONTROLLERS, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_CDROM, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_SOUND, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_GRAPHICS, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_CONFIGURATION, MF_BYCOMMAND | MF_GRAYED);
- if (!UsingIso()) {
- EnableMenuItem(gApp.hMenu, ID_EMULATOR_SWITCH_ISO, MF_BYCOMMAND | MF_GRAYED);
- }
-
- ResetMenuSlots();
- } else {
- EnableMenuItem(gApp.hMenu, ID_EMULATOR_RESET, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_EMULATOR_RUN, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_EMULATOR_SHUTDOWN, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_EMULATOR_SWITCH_ISO, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT1, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT2, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT3, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT4, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT5, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT6, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT7, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT8, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT9, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_OTHER, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT1, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT2, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT3, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT4, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT5, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT6, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT7, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT8, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT9, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_OTHER, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_CHEATSEARCH, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_NETPLAY, MF_BYCOMMAND | MF_ENABLED);
- EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_CONTROLLERS, MF_BYCOMMAND | MF_ENABLED);
- EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_CDROM, MF_BYCOMMAND | MF_ENABLED);
- EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_SOUND, MF_BYCOMMAND | MF_ENABLED);
- EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_GRAPHICS, MF_BYCOMMAND | MF_ENABLED);
- EnableMenuItem(gApp.hMenu, ID_CONFIGURATION, MF_BYCOMMAND | MF_ENABLED);
- }
-}
+/* Pcsx - Pc Psx Emulator
+ * Copyright (C) 1999-2003 Pcsx Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+#include <time.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+
+#include "resource.h"
+#include "AboutDlg.h"
+
+#include "psxcommon.h"
+#include "plugin.h"
+#include "debug.h"
+#include "Win32.h"
+#include "sio.h"
+#include "misc.h"
+#include "cheat.h"
+
+#ifdef __MINGW32__
+#ifndef LVM_GETSELECTIONMARK
+#define LVM_GETSELECTIONMARK (LVM_FIRST+66)
+#endif
+#ifndef ListView_GetSelectionMark
+#define ListView_GetSelectionMark(w) (INT)SNDMSG((w),LVM_GETSELECTIONMARK,0,0)
+#endif
+#endif
+
+int AccBreak = 0;
+int ConfPlug = 0;
+int StatesC = 0;
+int CancelQuit = 0;
+char cfgfile[256];
+int Running = 0;
+boolean UseGui = TRUE;
+char PcsxrDir[256];
+
+static HDC hDC;
+static HDC hdcmem;
+static HBITMAP hBm;
+static BITMAP bm;
+
+#ifdef ENABLE_NLS
+
+unsigned int langsMax;
+
+typedef struct {
+ char lang[256];
+} _langs;
+_langs *langs = NULL;
+
+typedef struct {
+ char id[8];
+ char name[64];
+ LANGID langid;
+} LangDef;
+
+LangDef sLangs[] = {
+ { "ar", N_("Arabic"), 0x0401 },
+ { "ca", N_("Catalan"), 0x0403 },
+ { "de", N_("German"), 0x0407 },
+ { "el", N_("Greek"), 0x0408 },
+ { "en", N_("English"), 0x0409 },
+ { "es", N_("Spanish"), 0x040a },
+ { "fr_FR", N_("French"), 0x040c },
+ { "it", N_("Italian"), 0x0410 },
+ { "pt", N_("Portuguese"), 0x0816 },
+ { "pt_BR", N_("Portuguese (Brazilian)"), 0x0416 },
+ { "ro", N_("Romanian"), 0x0418 },
+ { "ru_RU", N_("Russian"), 0x0419 },
+ { "zh_CN", N_("Simplified Chinese"), 0x0804 },
+ { "zh_TW", N_("Traditional Chinese"), 0x0404 },
+ { "ja", N_("Japanese"), 0x0411 },
+ { "ko", N_("Korean"), 0x0412 },
+ { "", "", 0xFFFF },
+};
+
+char *ParseLang(char *id) {
+ int i=0;
+
+ while (sLangs[i].id[0] != '\0') {
+ if (!strcmp(id, sLangs[i].id))
+ return _(sLangs[i].name);
+ i++;
+ }
+
+ return id;
+}
+
+static void SetDefaultLang(void) {
+ LANGID langid;
+ int i;
+
+ langid = GetSystemDefaultLangID();
+
+ i = 0;
+ while (sLangs[i].id[0] != '\0') {
+ if (langid == sLangs[i].langid) {
+ strcpy(Config.Lang, sLangs[i].id);
+ return;
+ }
+ i++;
+ }
+
+ strcpy(Config.Lang, "English");
+}
+
+#endif
+
+void strcatz(char *dst, char *src) {
+ int len = strlen(dst) + 1;
+ strcpy(dst + len, src);
+}
+
+int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
+ char *arg = NULL;
+ char cdfile[MAXPATHLEN] = "", buf[4096];
+ int loadstatenum = -1;
+
+ strcpy(cfgfile, "Software\\Pcsxr");
+
+ gApp.hInstance = hInstance;
+
+#ifdef ENABLE_NLS
+ bindtextdomain(PACKAGE, "Langs\\");
+ textdomain(PACKAGE);
+#endif
+
+ Running = 0;
+
+ GetCurrentDirectory(256, PcsxrDir);
+
+ memset(&Config, 0, sizeof(PcsxConfig));
+ strcpy(Config.Net, "Disabled");
+ if (LoadConfig() == -1) {
+ Config.PsxAuto = 1;
+ strcpy(Config.PluginsDir, "Plugins\\");
+ strcpy(Config.BiosDir, "Bios\\");
+
+ strcpy(Config.Mcd1, "memcards\\Mcd001.mcr");
+ strcpy(Config.Mcd2, "memcards\\Mcd002.mcr");
+
+ ConfPlug = 1;
+
+#ifdef ENABLE_NLS
+ {
+ char text[256];
+ SetDefaultLang();
+ sprintf(text, "LANGUAGE=%s", Config.Lang);
+ gettext_putenv(text);
+ }
+#endif
+
+ ConfigurePlugins(gApp.hWnd);
+
+ if (LoadConfig() == -1) {
+ return 0;
+ }
+ }
+
+ strcpy(Config.PatchesDir, "Patches\\");
+
+#ifdef ENABLE_NLS
+ if (Config.Lang[0] == 0) {
+ SetDefaultLang();
+ SaveConfig();
+ LoadConfig();
+ }
+#endif
+
+ // Parse command-line
+ strncpy(buf, lpCmdLine, 4096);
+
+ for (arg = strtok(buf, " "); arg != NULL; arg = strtok(NULL, " ")) {
+ if (strcmp(arg, "-nogui") == 0) {
+ UseGui = FALSE;
+ } else if (strcmp(arg, "-runcd") == 0) {
+ cdfile[0] = '\0';
+ } else if (strcmp(arg, "-cdfile") == 0) {
+ arg = strtok(NULL, " ");
+ if (arg != NULL) {
+ if (arg[0] == '"') {
+ strncpy(buf, lpCmdLine + (arg - buf), 4096);
+ arg = strtok(buf, "\"");
+ if (arg != NULL) strcpy(cdfile, arg);
+ } else {
+ strcpy(cdfile, arg);
+ }
+ UseGui = FALSE;
+ }
+ } else if (strcmp(arg, "-psxout") == 0) {
+ Config.PsxOut = TRUE;
+ } else if (strcmp(arg, "-slowboot") == 0) {
+ Config.SlowBoot = TRUE;
+ } else if (strcmp(arg, "-help") == 0) {
+ MessageBox(gApp.hWnd, _(
+ "Usage: pcsxr [options]\n"
+ "\toptions:\n"
+ "\t-nogui\t\tDon't open the GUI\n"
+ "\t-psxout\t\tEnable PSX output\n"
+ "\t-slowboot\tEnable BIOS logo\n"
+ "\t-runcd\t\tRuns CD-ROM (requires -nogui)\n"
+ "\t-cdfile FILE\tRuns a CD image file (requires -nogui)\n"
+ "\t-help\t\tDisplay this message"),
+ "PCSXR", 0);
+
+ return 0;
+ }
+ }
+
+ if (SysInit() == -1) return 1;
+
+ CreateMainWindow(nCmdShow);
+
+ if (!UseGui) {
+ SetIsoFile(cdfile);
+ PostMessage(gApp.hWnd, WM_COMMAND, ID_FILE_RUN_NOGUI, 0);
+ }
+
+ RunGui();
+
+ return 0;
+}
+
+void RunGui() {
+ MSG msg;
+
+ for (;;) {
+ if (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE)) {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ else
+ {
+ // Avoid 100% cpu usage.
+ Sleep(10);
+ }
+ }
+}
+
+void RestoreWindow() {
+ AccBreak = 1;
+ DestroyWindow(gApp.hWnd);
+ CreateMainWindow(SW_SHOWNORMAL);
+ ShowCursor(TRUE);
+ SetCursor(LoadCursor(gApp.hInstance, IDC_ARROW));
+ ShowCursor(TRUE);
+
+ if (!UseGui) PostMessage(gApp.hWnd, WM_COMMAND, ID_FILE_EXIT, 0);
+}
+
+void ResetMenuSlots() {
+ char str[256];
+ int i;
+
+ for (i = 0; i < 9; i++) {
+ GetStateFilename(str, i);
+ if (CheckState(str) == -1)
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT1+i, MF_GRAYED);
+ else
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT1+i, MF_ENABLED);
+ }
+}
+
+void OpenConsole() {
+ if (hConsole) return;
+ AllocConsole();
+ SetConsoleTitle("Psx Output");
+ hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
+}
+
+void CloseConsole() {
+ FreeConsole();
+ hConsole = NULL;
+}
+
+void States_Load(int num) {
+ char Text[256];
+ int ret;
+
+ SetMenu(gApp.hWnd, NULL);
+ OpenPlugins(gApp.hWnd);
+
+ GetStateFilename(Text, num);
+
+ ret = LoadState(Text);
+ if (ret == 0)
+ sprintf(Text, _("*PCSXR*: Loaded State %d"), num+1);
+ else sprintf(Text, _("*PCSXR*: Error Loading State %d"), num+1);
+ GPU_displayText(Text);
+
+ Running = 1;
+ CheatSearchBackupMemory();
+ psxCpu->Execute();
+}
+
+void States_Save(int num) {
+ char Text[256];
+ int ret;
+
+ SetMenu(gApp.hWnd, NULL);
+ OpenPlugins(gApp.hWnd);
+
+ GPU_updateLace();
+
+ GetStateFilename(Text, num);
+ GPU_freeze(2, (GPUFreeze_t *)&num);
+ ret = SaveState(Text);
+ if (ret == 0)
+ sprintf(Text, _("*PCSXR*: Saved State %d"), num+1);
+ else sprintf(Text, _("*PCSXR*: Error Saving State %d"), num+1);
+ GPU_displayText(Text);
+
+ Running = 1;
+ CheatSearchBackupMemory();
+ psxCpu->Execute();
+}
+
+void OnStates_LoadOther() {
+ OPENFILENAME ofn;
+ char szFileName[MAXPATHLEN];
+ char szFileTitle[MAXPATHLEN];
+ char szFilter[256];
+
+ memset(&szFileName, 0, sizeof(szFileName));
+ memset(&szFileTitle, 0, sizeof(szFileTitle));
+ memset(&szFilter, 0, sizeof(szFilter));
+
+ strcpy(szFilter, _("PCSXR State Format"));
+ strcatz(szFilter, "*.*");
+
+ ofn.lStructSize = sizeof(OPENFILENAME);
+ ofn.hwndOwner = gApp.hWnd;
+ ofn.lpstrFilter = szFilter;
+ ofn.lpstrCustomFilter = NULL;
+ ofn.nMaxCustFilter = 0;
+ ofn.nFilterIndex = 1;
+ ofn.lpstrFile = szFileName;
+ ofn.nMaxFile = MAXPATHLEN;
+ ofn.lpstrInitialDir = NULL;
+ ofn.lpstrFileTitle = szFileTitle;
+ ofn.nMaxFileTitle = MAXPATHLEN;
+ ofn.lpstrTitle = NULL;
+ ofn.lpstrDefExt = NULL;
+ ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
+
+ if (GetOpenFileName ((LPOPENFILENAME)&ofn)) {
+ char Text[256];
+ int ret;
+
+ SetMenu(gApp.hWnd, NULL);
+ OpenPlugins(gApp.hWnd);
+
+ ret = LoadState(szFileName);
+ if (ret == 0)
+ sprintf(Text, _("*PCSXR*: Loaded State %s"), szFileName);
+ else sprintf(Text, _("*PCSXR*: Error Loading State %s"), szFileName);
+ GPU_displayText(Text);
+
+ Running = 1;
+ psxCpu->Execute();
+ }
+}
+
+void OnStates_SaveOther() {
+ OPENFILENAME ofn;
+ char szFileName[MAXPATHLEN];
+ char szFileTitle[MAXPATHLEN];
+ char szFilter[256];
+
+ memset(&szFileName, 0, sizeof(szFileName));
+ memset(&szFileTitle, 0, sizeof(szFileTitle));
+ memset(&szFilter, 0, sizeof(szFilter));
+
+ strcpy(szFilter, _("PCSXR State Format"));
+ strcatz(szFilter, "*.*");
+
+ ofn.lStructSize = sizeof(OPENFILENAME);
+ ofn.hwndOwner = gApp.hWnd;
+ ofn.lpstrFilter = szFilter;
+ ofn.lpstrCustomFilter = NULL;
+ ofn.nMaxCustFilter = 0;
+ ofn.nFilterIndex = 1;
+ ofn.lpstrFile = szFileName;
+ ofn.nMaxFile = MAXPATHLEN;
+ ofn.lpstrInitialDir = NULL;
+ ofn.lpstrFileTitle = szFileTitle;
+ ofn.nMaxFileTitle = MAXPATHLEN;
+ ofn.lpstrTitle = NULL;
+ ofn.lpstrDefExt = NULL;
+ ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
+
+ if (GetOpenFileName ((LPOPENFILENAME)&ofn)) {
+ char Text[256];
+ int ret;
+
+ SetMenu(gApp.hWnd, NULL);
+ OpenPlugins(gApp.hWnd);
+
+ ret = SaveState(szFileName);
+ if (ret == 0)
+ sprintf(Text, _("*PCSXR*: Saved State %s"), szFileName);
+ else sprintf(Text, _("*PCSXR*: Error Saving State %s"), szFileName);
+ GPU_displayText(Text);
+
+ Running = 1;
+ psxCpu->Execute();
+ }
+}
+
+LRESULT WINAPI MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
+ char File[256];
+ PAINTSTRUCT ps;
+
+ switch (msg) {
+ case WM_CREATE:
+ hBm = LoadBitmap(gApp.hInstance, MAKEINTRESOURCE(MAIN_LOGO));
+ GetObject(hBm, sizeof(BITMAP), (LPVOID)&bm);
+ hDC = GetDC(hWnd);
+ hdcmem = CreateCompatibleDC(hDC);
+ ReleaseDC(hWnd, hDC);
+ break;
+
+ case WM_PAINT:
+ hDC = BeginPaint(hWnd, &ps);
+ SelectObject(hdcmem, hBm);
+ if (!Running) BitBlt(hDC, 0, 0, bm.bmWidth, bm.bmHeight, hdcmem, 0, 0, SRCCOPY);
+ EndPaint(hWnd, &ps);
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case ID_FILE_EXIT:
+ SysClose();
+ PostQuitMessage(0);
+ exit(0);
+ return TRUE;
+
+ case ID_FILE_RUN_CD:
+ SetIsoFile(NULL);
+ SetMenu(hWnd, NULL);
+ LoadPlugins();
+ if (OpenPlugins(hWnd) == -1) {
+ ClosePlugins();
+ RestoreWindow();
+ return TRUE;
+ }
+ if (CheckCdrom() == -1) {
+ ClosePlugins();
+ RestoreWindow();
+ SysMessage(_("The CD does not appear to be a valid Playstation CD"));
+ return TRUE;
+ }
+
+ // Auto-detect: region first, then rcnt reset
+ SysReset();
+
+ if (LoadCdrom() == -1) {
+ ClosePlugins();
+ RestoreWindow();
+ SysMessage(_("Could not load CD-ROM!"));
+ return TRUE;
+ }
+ ShowCursor(FALSE);
+ Running = 1;
+ psxCpu->Execute();
+ return TRUE;
+
+ case ID_FILE_RUNBIOS:
+ if (strcmp(Config.Bios, "HLE") == 0) {
+ SysMessage(_("Running BIOS is not supported with Internal HLE Bios."));
+ return TRUE;
+ }
+ SetIsoFile(NULL);
+ SetMenu(hWnd, NULL);
+ LoadPlugins();
+ if (OpenPlugins(hWnd) == -1) {
+ ClosePlugins();
+ RestoreWindow();
+ return TRUE;
+ }
+ ShowCursor(FALSE);
+ SysReset();
+ CdromId[0] = '\0';
+ CdromLabel[0] = '\0';
+ Running = 1;
+ psxCpu->Execute();
+ return TRUE;
+
+ case ID_FILE_RUN_ISO:
+ if (!Open_Iso_Proc(File)) return TRUE;
+ SetIsoFile(File);
+ SetMenu(hWnd, NULL);
+ LoadPlugins();
+ if (OpenPlugins(hWnd) == -1) {
+ ClosePlugins();
+ RestoreWindow();
+ return TRUE;
+ }
+ if (CheckCdrom() == -1) {
+ ClosePlugins();
+ RestoreWindow();
+ SysMessage(_("The CD does not appear to be a valid Playstation CD"));
+ return TRUE;
+ }
+
+ // Auto-detect: region first, then rcnt reset
+ SysReset();
+
+ if (LoadCdrom() == -1) {
+ ClosePlugins();
+ RestoreWindow();
+ SysMessage(_("Could not load CD-ROM!"));
+ return TRUE;
+ }
+ ShowCursor(FALSE);
+ Running = 1;
+ psxCpu->Execute();
+ return TRUE;
+
+ case ID_FILE_RUN_EXE:
+ if (!Open_File_Proc(File)) return TRUE;
+ SetIsoFile(NULL);
+ SetMenu(hWnd, NULL);
+ LoadPlugins();
+ if (OpenPlugins(hWnd) == -1) {
+ ClosePlugins();
+ RestoreWindow();
+ return TRUE;
+ }
+ CheckCdrom();
+
+ // Auto-detect: region first, then rcnt reset
+ SysReset();
+
+ Load(File);
+ Running = 1;
+ psxCpu->Execute();
+ return TRUE;
+
+ case ID_FILE_STATES_LOAD_SLOT1: States_Load(0); return TRUE;
+ case ID_FILE_STATES_LOAD_SLOT2: States_Load(1); return TRUE;
+ case ID_FILE_STATES_LOAD_SLOT3: States_Load(2); return TRUE;
+ case ID_FILE_STATES_LOAD_SLOT4: States_Load(3); return TRUE;
+ case ID_FILE_STATES_LOAD_SLOT5: States_Load(4); return TRUE;
+ case ID_FILE_STATES_LOAD_SLOT6: States_Load(5); return TRUE;
+ case ID_FILE_STATES_LOAD_SLOT7: States_Load(6); return TRUE;
+ case ID_FILE_STATES_LOAD_SLOT8: States_Load(7); return TRUE;
+ case ID_FILE_STATES_LOAD_SLOT9: States_Load(8); return TRUE;
+ case ID_FILE_STATES_LOAD_OTHER: OnStates_LoadOther(); return TRUE;
+
+ case ID_FILE_STATES_SAVE_SLOT1: States_Save(0); return TRUE;
+ case ID_FILE_STATES_SAVE_SLOT2: States_Save(1); return TRUE;
+ case ID_FILE_STATES_SAVE_SLOT3: States_Save(2); return TRUE;
+ case ID_FILE_STATES_SAVE_SLOT4: States_Save(3); return TRUE;
+ case ID_FILE_STATES_SAVE_SLOT5: States_Save(4); return TRUE;
+ case ID_FILE_STATES_SAVE_SLOT6: States_Save(5); return TRUE;
+ case ID_FILE_STATES_SAVE_SLOT7: States_Save(6); return TRUE;
+ case ID_FILE_STATES_SAVE_SLOT8: States_Save(7); return TRUE;
+ case ID_FILE_STATES_SAVE_SLOT9: States_Save(8); return TRUE;
+ case ID_FILE_STATES_SAVE_OTHER: OnStates_SaveOther(); return TRUE;
+
+ case ID_FILE_RUN_NOGUI:
+ SetMenu(hWnd, NULL);
+ LoadPlugins();
+ if (OpenPlugins(hWnd) == -1) {
+ ClosePlugins();
+ RestoreWindow();
+ return TRUE;
+ }
+ if (CheckCdrom() == -1) {
+ fprintf(stderr, _("The CD does not appear to be a valid Playstation CD"));
+ ClosePlugins();
+ RestoreWindow();
+ return TRUE;
+ }
+
+ // Auto-detect: region first, then rcnt reset
+ SysReset();
+
+ if (LoadCdrom() == -1) {
+ fprintf(stderr, _("Could not load CD-ROM!"));
+ ClosePlugins();
+ RestoreWindow();
+ return TRUE;
+ }
+ ShowCursor(FALSE);
+ Running = 1;
+ psxCpu->Execute();
+ return TRUE;
+
+ case ID_EMULATOR_RUN:
+ SetMenu(hWnd, NULL);
+ OpenPlugins(hWnd);
+ ShowCursor(FALSE);
+ Running = 1;
+ CheatSearchBackupMemory();
+ psxCpu->Execute();
+ return TRUE;
+
+ case ID_EMULATOR_RESET:
+ SetMenu(hWnd, NULL);
+ OpenPlugins(hWnd);
+ CheckCdrom();
+
+ // Auto-detect: region first, then rcnt reset
+ SysReset();
+
+ LoadCdrom();
+ ShowCursor(FALSE);
+ Running = 1;
+ psxCpu->Execute();
+ return TRUE;
+
+ case ID_EMULATOR_SHUTDOWN:
+ ReleasePlugins();
+ SetIsoFile(NULL);
+ CdromId[0] = '\0';
+ CdromLabel[0] = '\0';
+ UpdateMenuItems();
+ return TRUE;
+
+ case ID_EMULATOR_SWITCH_ISO:
+ if (!Open_Iso_Proc(File)) return TRUE;
+ SetIsoFile(File);
+ SetMenu(hWnd, NULL);
+ if (OpenPlugins(hWnd) == -1) {
+ ClosePlugins();
+ RestoreWindow();
+ return TRUE;
+ }
+ ShowCursor(FALSE);
+ Running = 1;
+ SetCdOpenCaseTime(time(NULL) + 2);
+ CheatSearchBackupMemory();
+ psxCpu->Execute();
+ return TRUE;
+
+ case ID_CONFIGURATION_GRAPHICS:
+ if (GPU_configure) GPU_configure();
+ return TRUE;
+
+ case ID_CONFIGURATION_SOUND:
+ if (SPU_configure) SPU_configure();
+ return TRUE;
+
+ case ID_CONFIGURATION_CONTROLLERS:
+ if (PAD1_configure) PAD1_configure();
+ if (strcmp(Config.Pad1, Config.Pad2)) if (PAD2_configure) PAD2_configure();
+ return TRUE;
+
+ case ID_CONFIGURATION_CDROM:
+ if (CDR_configure) CDR_configure();
+ return TRUE;
+
+ case ID_CONFIGURATION_NETPLAY:
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_NETPLAY), hWnd, (DLGPROC)ConfigureNetPlayDlgProc);
+ return TRUE;
+
+ case ID_CONFIGURATION_MEMORYCARDMANAGER:
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_MCDCONF), hWnd, (DLGPROC)ConfigureMcdsDlgProc);
+ return TRUE;
+
+ case ID_CONFIGURATION_CPU:
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CPUCONF), hWnd, (DLGPROC)ConfigureCpuDlgProc);
+ return TRUE;
+
+ case ID_CONFIGURATION:
+ ConfigurePlugins(hWnd);
+ return TRUE;
+
+ case ID_CONFIGURATION_CHEATLIST:
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATLIST), hWnd, (DLGPROC)CheatDlgProc);
+ break;
+
+ case ID_CONFIGURATION_CHEATSEARCH:
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATSEARCH), hWnd, (DLGPROC)CheatSearchDlgProc);
+ break;
+
+ case ID_HELP_ABOUT:
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(ABOUT_DIALOG), hWnd, (DLGPROC)AboutDlgProc);
+ return TRUE;
+
+ default:
+#ifdef ENABLE_NLS
+ if (LOWORD(wParam) >= ID_LANGS && LOWORD(wParam) <= (ID_LANGS + langsMax)) {
+ AccBreak = 1;
+ DestroyWindow(gApp.hWnd);
+ ChangeLanguage(langs[LOWORD(wParam) - ID_LANGS].lang);
+ CreateMainWindow(SW_NORMAL);
+ return TRUE;
+ }
+#endif
+ break;
+ }
+ break;
+
+ case WM_SYSKEYDOWN:
+ if (wParam != VK_F10)
+ return DefWindowProc(hWnd, msg, wParam, lParam);
+ case WM_KEYDOWN:
+ PADhandleKey(wParam);
+ return TRUE;
+
+ case WM_DESTROY:
+ if (!AccBreak) {
+ if (Running) ClosePlugins();
+ SysClose();
+ PostQuitMessage(0);
+ exit(0);
+ }
+ else AccBreak = 0;
+
+ DeleteObject(hBm);
+ DeleteDC(hdcmem);
+ return TRUE;
+
+ case WM_QUIT:
+ exit(0);
+ break;
+
+ default:
+ return DefWindowProc(hWnd, msg, wParam, lParam);
+ }
+
+ return FALSE;
+}
+
+HWND mcdDlg;
+McdBlock Blocks[2][15];
+int IconC[2][15];
+HIMAGELIST Iiml[2];
+HICON eICON;
+
+void CreateListView(int idc) {
+ HWND List;
+ LV_COLUMN col;
+
+ List = GetDlgItem(mcdDlg, idc);
+
+ col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
+ col.fmt = LVCFMT_LEFT;
+
+ col.pszText = _("Title");
+ col.cx = 170;
+ col.iSubItem = 0;
+
+ ListView_InsertColumn(List, 0, &col);
+
+ col.pszText = _("Status");
+ col.cx = 50;
+ col.iSubItem = 1;
+
+ ListView_InsertColumn(List, 1, &col);
+
+ col.pszText = _("Game ID");
+ col.cx = 90;
+ col.iSubItem = 2;
+
+ ListView_InsertColumn(List, 2, &col);
+
+ col.pszText = _("Game");
+ col.cx = 80;
+ col.iSubItem = 3;
+
+ ListView_InsertColumn(List, 3, &col);
+}
+
+int GetRGB() {
+ HDC scrDC, memDC;
+ HBITMAP oldBmp = NULL;
+ HBITMAP curBmp = NULL;
+ COLORREF oldColor;
+ COLORREF curColor = RGB(255,255,255);
+ int i, R, G, B;
+
+ R = G = B = 1;
+
+ scrDC = CreateDC("DISPLAY", NULL, NULL, NULL);
+ memDC = CreateCompatibleDC(NULL);
+ curBmp = CreateCompatibleBitmap(scrDC, 1, 1);
+ oldBmp = (HBITMAP)SelectObject(memDC, curBmp);
+
+ for (i = 255; i >= 0; --i) {
+ oldColor = curColor;
+ curColor = SetPixel(memDC, 0, 0, RGB(i, i, i));
+
+ if (GetRValue(curColor) < GetRValue(oldColor)) ++R;
+ if (GetGValue(curColor) < GetGValue(oldColor)) ++G;
+ if (GetBValue(curColor) < GetBValue(oldColor)) ++B;
+ }
+
+ DeleteObject(oldBmp);
+ DeleteObject(curBmp);
+ DeleteDC(scrDC);
+ DeleteDC(memDC);
+
+ return (R * G * B);
+}
+
+HICON GetIcon(short *icon) {
+ ICONINFO iInfo;
+ HDC hDC;
+ char mask[16*16];
+ int x, y, c, Depth;
+
+ hDC = CreateIC("DISPLAY",NULL,NULL,NULL);
+ Depth=GetDeviceCaps(hDC, BITSPIXEL);
+ DeleteDC(hDC);
+
+ if (Depth == 16) {
+ if (GetRGB() == (32 * 32 * 32))
+ Depth = 15;
+ }
+
+ for (y=0; y<16; y++) {
+ for (x=0; x<16; x++) {
+ c = icon[y*16+x];
+ if (Depth == 15 || Depth == 32)
+ c = ((c&0x001f) << 10) |
+ ((c&0x7c00) >> 10) |
+ ((c&0x03e0) );
+ else
+ c = ((c&0x001f) << 11) |
+ ((c&0x7c00) >> 9) |
+ ((c&0x03e0) << 1);
+
+ icon[y*16+x] = c;
+ }
+ }
+
+ iInfo.fIcon = TRUE;
+ memset(mask, 0, 16*16);
+ iInfo.hbmMask = CreateBitmap(16, 16, 1, 1, mask);
+ iInfo.hbmColor = CreateBitmap(16, 16, 1, 16, icon);
+
+ return CreateIconIndirect(&iInfo);
+}
+
+HICON hICON[2][3][15];
+int aIover[2];
+int ani[2];
+
+void LoadMcdItems(int mcd, int idc) {
+ HWND List = GetDlgItem(mcdDlg, idc);
+ LV_ITEM item;
+ HIMAGELIST iml = Iiml[mcd-1];
+ int i, j;
+ HICON hIcon;
+ McdBlock *Info;
+
+ aIover[mcd-1]=0;
+ ani[mcd-1]=0;
+
+ ListView_DeleteAllItems(List);
+
+ for (i=0; i<15; i++) {
+
+ item.mask = LVIF_TEXT | LVIF_IMAGE;
+ item.iItem = i;
+ item.iImage = i;
+ item.pszText = LPSTR_TEXTCALLBACK;
+ item.iSubItem = 0;
+
+ IconC[mcd-1][i] = 0;
+ Info = &Blocks[mcd-1][i];
+
+ if ((Info->Flags & 0xF) == 1 && Info->IconCount != 0) {
+ hIcon = GetIcon(Info->Icon);
+
+ if (Info->IconCount > 1) {
+ for(j = 0; j < 3; j++)
+ hICON[mcd-1][j][i]=hIcon;
+ }
+ } else {
+ hIcon = eICON;
+ }
+
+ ImageList_ReplaceIcon(iml, -1, hIcon);
+ ListView_InsertItem(List, &item);
+ }
+}
+
+void UpdateMcdItems(int mcd, int idc) {
+ HWND List = GetDlgItem(mcdDlg, idc);
+ LV_ITEM item;
+ HIMAGELIST iml = Iiml[mcd-1];
+ int i, j;
+ McdBlock *Info;
+ HICON hIcon;
+
+ aIover[mcd-1]=0;
+ ani[mcd-1]=0;
+
+ for (i=0; i<15; i++) {
+
+ item.mask = LVIF_TEXT | LVIF_IMAGE;
+ item.iItem = i;
+ item.iImage = i;
+ item.pszText = LPSTR_TEXTCALLBACK;
+ item.iSubItem = 0;
+
+ IconC[mcd-1][i] = 0;
+ Info = &Blocks[mcd-1][i];
+
+ if ((Info->Flags & 0xF) == 1 && Info->IconCount != 0) {
+ hIcon = GetIcon(Info->Icon);
+
+ if (Info->IconCount > 1) {
+ for(j = 0; j < 3; j++)
+ hICON[mcd-1][j][i]=hIcon;
+ }
+ } else {
+ hIcon = eICON;
+ }
+
+ ImageList_ReplaceIcon(iml, i, hIcon);
+ ListView_SetItem(List, &item);
+ }
+ ListView_Update(List, -1);
+}
+
+void McdListGetDispInfo(int mcd, int idc, LPNMHDR pnmh) {
+ LV_DISPINFO *lpdi = (LV_DISPINFO *)pnmh;
+ McdBlock *Info;
+ char buf[256];
+ static char buftitle[256];
+
+ Info = &Blocks[mcd - 1][lpdi->item.iItem];
+
+ switch (lpdi->item.iSubItem) {
+ case 0:
+ switch (Info->Flags & 0xF) {
+ case 1:
+ if (MultiByteToWideChar(932, 0, (LPCSTR)Info->sTitle, -1, (LPWSTR)buf, sizeof(buf)) == 0) {
+ lpdi->item.pszText = Info->Title;
+ } else if (WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)buf, -1, (LPSTR)buftitle, sizeof(buftitle), NULL, NULL) == 0) {
+ lpdi->item.pszText = Info->Title;
+ } else {
+ lpdi->item.pszText = buftitle;
+ }
+ break;
+ case 2:
+ lpdi->item.pszText = _("mid link block");
+ break;
+ case 3:
+ lpdi->item.pszText = _("terminiting link block");
+ break;
+ }
+ break;
+ case 1:
+ if ((Info->Flags & 0xF0) == 0xA0) {
+ if ((Info->Flags & 0xF) >= 1 &&
+ (Info->Flags & 0xF) <= 3) {
+ lpdi->item.pszText = _("Deleted");
+ } else lpdi->item.pszText = _("Free");
+ } else if ((Info->Flags & 0xF0) == 0x50)
+ lpdi->item.pszText = _("Used");
+ else { lpdi->item.pszText = _("Free"); }
+ break;
+ case 2:
+ if((Info->Flags & 0xF)==1)
+ lpdi->item.pszText = Info->ID;
+ break;
+ case 3:
+ if((Info->Flags & 0xF)==1)
+ lpdi->item.pszText = Info->Name;
+ break;
+ }
+}
+
+void McdListNotify(int mcd, int idc, LPNMHDR pnmh) {
+ switch (pnmh->code) {
+ case LVN_GETDISPINFO: McdListGetDispInfo(mcd, idc, pnmh); break;
+ }
+}
+
+void UpdateMcdDlg() {
+ int i;
+
+ for (i=1; i<16; i++) GetMcdBlockInfo(1, i, &Blocks[0][i-1]);
+ for (i=1; i<16; i++) GetMcdBlockInfo(2, i, &Blocks[1][i-1]);
+ UpdateMcdItems(1, IDC_LIST1);
+ UpdateMcdItems(2, IDC_LIST2);
+}
+
+void LoadMcdDlg() {
+ int i;
+
+ for (i=1; i<16; i++) GetMcdBlockInfo(1, i, &Blocks[0][i-1]);
+ for (i=1; i<16; i++) GetMcdBlockInfo(2, i, &Blocks[1][i-1]);
+ LoadMcdItems(1, IDC_LIST1);
+ LoadMcdItems(2, IDC_LIST2);
+}
+
+void UpdateMcdIcon(int mcd, int idc) {
+ HWND List = GetDlgItem(mcdDlg, idc);
+ HIMAGELIST iml = Iiml[mcd-1];
+ int i;
+ McdBlock *Info;
+ int *count;
+
+ if(!aIover[mcd-1]) {
+ ani[mcd-1]++;
+
+ for (i=0; i<15; i++) {
+ Info = &Blocks[mcd-1][i];
+ count = &IconC[mcd-1][i];
+
+ if ((Info->Flags & 0xF) != 1) continue;
+ if (Info->IconCount <= 1) continue;
+
+ if (*count < Info->IconCount) {
+ (*count)++;
+ aIover[mcd-1]=0;
+
+ if(ani[mcd-1] <= (Info->IconCount-1)) // last frame and below...
+ hICON[mcd-1][ani[mcd-1]][i] = GetIcon(&Info->Icon[(*count)*16*16]);
+ } else {
+ aIover[mcd-1]=1;
+ }
+ }
+
+ } else {
+
+ if (ani[mcd-1] > 1) ani[mcd-1] = 0; // 1st frame
+ else ani[mcd-1]++; // 2nd, 3rd frame
+
+ for(i=0;i<15;i++) {
+ Info = &Blocks[mcd-1][i];
+
+ if (((Info->Flags & 0xF) == 1) && (Info->IconCount > 1))
+ ImageList_ReplaceIcon(iml, i, hICON[mcd-1][ani[mcd-1]][i]);
+ }
+ InvalidateRect(List, NULL, FALSE);
+ }
+}
+
+static int copy = 0, copymcd = 0;
+//static int listsel = 0;
+
+BOOL CALLBACK ConfigureMcdsDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ char str[256];
+ LPBYTE lpAND, lpXOR;
+ LPBYTE lpA, lpX;
+ int i, j;
+
+ switch(uMsg) {
+ case WM_INITDIALOG:
+ mcdDlg = hW;
+
+ SetWindowText(hW, _("Memcard Manager"));
+
+ Button_SetText(GetDlgItem(hW, IDOK), _("OK"));
+ Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));
+ Button_SetText(GetDlgItem(hW, IDC_MCDSEL1), _("Select Mcd"));
+ Button_SetText(GetDlgItem(hW, IDC_FORMAT1), _("Format Mcd"));
+ Button_SetText(GetDlgItem(hW, IDC_RELOAD1), _("Reload Mcd"));
+ Button_SetText(GetDlgItem(hW, IDC_MCDSEL2), _("Select Mcd"));
+ Button_SetText(GetDlgItem(hW, IDC_FORMAT2), _("Format Mcd"));
+ Button_SetText(GetDlgItem(hW, IDC_RELOAD2), _("Reload Mcd"));
+ Button_SetText(GetDlgItem(hW, IDC_COPYTO2), _("-> Copy ->"));
+ Button_SetText(GetDlgItem(hW, IDC_COPYTO1), _("<- Copy <-"));
+ Button_SetText(GetDlgItem(hW, IDC_PASTE), _("Paste"));
+ Button_SetText(GetDlgItem(hW, IDC_DELETE1), _("<- Un/Delete"));
+ Button_SetText(GetDlgItem(hW, IDC_DELETE2), _("Un/Delete ->"));
+
+ Static_SetText(GetDlgItem(hW, IDC_FRAMEMCD1), _("Memory Card 1"));
+ Static_SetText(GetDlgItem(hW, IDC_FRAMEMCD2), _("Memory Card 2"));
+
+ lpA=lpAND=(LPBYTE)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,(16*16));
+ lpX=lpXOR=(LPBYTE)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,(16*16));
+
+ for(i=0;i<16;i++)
+ {
+ for(j=0;j<16;j++)
+ {
+ *lpA++=0xff;
+ *lpX++=0;
+ }
+ }
+ eICON=CreateIcon(gApp.hInstance,16,16,1,1,lpAND,lpXOR);
+
+ HeapFree(GetProcessHeap(),0,lpAND);
+ HeapFree(GetProcessHeap(),0,lpXOR);
+
+ if (!strlen(Config.Mcd1)) strcpy(Config.Mcd1, "memcards\\Mcd001.mcr");
+ if (!strlen(Config.Mcd2)) strcpy(Config.Mcd2, "memcards\\Mcd002.mcr");
+ Edit_SetText(GetDlgItem(hW,IDC_MCD1), Config.Mcd1);
+ Edit_SetText(GetDlgItem(hW,IDC_MCD2), Config.Mcd2);
+
+ CreateListView(IDC_LIST1);
+ CreateListView(IDC_LIST2);
+
+ Iiml[0] = ImageList_Create(16, 16, ILC_COLOR16, 0, 0);
+ Iiml[1] = ImageList_Create(16, 16, ILC_COLOR16, 0, 0);
+
+ ListView_SetImageList(GetDlgItem(mcdDlg, IDC_LIST1), Iiml[0], LVSIL_SMALL);
+ ListView_SetImageList(GetDlgItem(mcdDlg, IDC_LIST2), Iiml[1], LVSIL_SMALL);
+
+ Button_Enable(GetDlgItem(hW, IDC_PASTE), FALSE);
+
+ LoadMcdDlg();
+
+ SetTimer(hW, 1, 250, NULL);
+
+ return TRUE;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case IDC_COPYTO1:
+ copy = ListView_GetSelectionMark(GetDlgItem(mcdDlg, IDC_LIST2));
+ copymcd = 1;
+
+ Button_Enable(GetDlgItem(hW, IDC_PASTE), TRUE);
+ return TRUE;
+ case IDC_COPYTO2:
+ copy = ListView_GetSelectionMark(GetDlgItem(mcdDlg, IDC_LIST1));
+ copymcd = 2;
+
+ Button_Enable(GetDlgItem(hW, IDC_PASTE), TRUE);
+ return TRUE;
+ case IDC_PASTE:
+ if (MessageBox(hW, _("Are you sure you want to paste this selection?"), _("Confirmation"), MB_YESNO) == IDNO) return TRUE;
+
+ if (copymcd == 1) {
+ Edit_GetText(GetDlgItem(hW,IDC_MCD1), str, 256);
+ i = ListView_GetSelectionMark(GetDlgItem(mcdDlg, IDC_LIST1));
+
+ // save dir data + save data
+ memcpy(Mcd1Data + (i+1) * 128, Mcd2Data + (copy+1) * 128, 128);
+ SaveMcd(str, Mcd1Data, (i+1) * 128, 128);
+ memcpy(Mcd1Data + (i+1) * 1024 * 8, Mcd2Data + (copy+1) * 1024 * 8, 1024 * 8);
+ SaveMcd(str, Mcd1Data, (i+1) * 1024 * 8, 1024 * 8);
+ } else { // 2
+ Edit_GetText(GetDlgItem(hW,IDC_MCD2), str, 256);
+ i = ListView_GetSelectionMark(GetDlgItem(mcdDlg, IDC_LIST2));
+
+ // save dir data + save data
+ memcpy(Mcd2Data + (i+1) * 128, Mcd1Data + (copy+1) * 128, 128);
+ SaveMcd(str, Mcd2Data, (i+1) * 128, 128);
+ memcpy(Mcd2Data + (i+1) * 1024 * 8, Mcd1Data + (copy+1) * 1024 * 8, 1024 * 8);
+ SaveMcd(str, Mcd2Data, (i+1) * 1024 * 8, 1024 * 8);
+ }
+
+ UpdateMcdDlg();
+
+ return TRUE;
+ case IDC_DELETE1:
+ {
+ McdBlock *Info;
+ int mcd = 1;
+ int i, xor = 0, j;
+ unsigned char *data, *ptr;
+
+ Edit_GetText(GetDlgItem(hW,IDC_MCD1), str, 256);
+ i = ListView_GetSelectionMark(GetDlgItem(mcdDlg, IDC_LIST1));
+ data = Mcd1Data;
+
+ i++;
+
+ ptr = data + i * 128;
+
+ Info = &Blocks[mcd-1][i-1];
+
+ if ((Info->Flags & 0xF0) == 0xA0) {
+ if ((Info->Flags & 0xF) >= 1 &&
+ (Info->Flags & 0xF) <= 3) { // deleted
+ *ptr = 0x50 | (Info->Flags & 0xF);
+ } else return TRUE;
+ } else if ((Info->Flags & 0xF0) == 0x50) { // used
+ *ptr = 0xA0 | (Info->Flags & 0xF);
+ } else { return TRUE; }
+
+ for (j=0; j<127; j++) xor^=*ptr++;
+ *ptr = xor;
+
+ SaveMcd(str, data, i * 128, 128);
+ UpdateMcdDlg();
+ }
+
+ return TRUE;
+ case IDC_DELETE2:
+ {
+ McdBlock *Info;
+ int mcd = 2;
+ int i, xor = 0, j;
+ unsigned char *data, *ptr;
+
+ Edit_GetText(GetDlgItem(hW,IDC_MCD2), str, 256);
+ i = ListView_GetSelectionMark(GetDlgItem(mcdDlg, IDC_LIST2));
+ data = Mcd2Data;
+
+ i++;
+
+ ptr = data + i * 128;
+
+ Info = &Blocks[mcd-1][i-1];
+
+ if ((Info->Flags & 0xF0) == 0xA0) {
+ if ((Info->Flags & 0xF) >= 1 &&
+ (Info->Flags & 0xF) <= 3) { // deleted
+ *ptr = 0x50 | (Info->Flags & 0xF);
+ } else return TRUE;
+ } else if ((Info->Flags & 0xF0) == 0x50) { // used
+ *ptr = 0xA0 | (Info->Flags & 0xF);
+ } else { return TRUE; }
+
+ for (j=0; j<127; j++) xor^=*ptr++;
+ *ptr = xor;
+
+ SaveMcd(str, data, i * 128, 128);
+ UpdateMcdDlg();
+ }
+
+ return TRUE;
+
+ case IDC_MCDSEL1:
+ Open_Mcd_Proc(hW, 1);
+ return TRUE;
+ case IDC_MCDSEL2:
+ Open_Mcd_Proc(hW, 2);
+ return TRUE;
+ case IDC_RELOAD1:
+ Edit_GetText(GetDlgItem(hW,IDC_MCD1), str, 256);
+ LoadMcd(1, str);
+ UpdateMcdDlg();
+ return TRUE;
+ case IDC_RELOAD2:
+ Edit_GetText(GetDlgItem(hW,IDC_MCD2), str, 256);
+ LoadMcd(2, str);
+ UpdateMcdDlg();
+ return TRUE;
+ case IDC_FORMAT1:
+ if (MessageBox(hW, _("Are you sure you want to format this Memory Card?"), _("Confirmation"), MB_YESNO) == IDNO) return TRUE;
+ Edit_GetText(GetDlgItem(hW,IDC_MCD1), str, 256);
+ CreateMcd(str);
+ LoadMcd(1, str);
+ UpdateMcdDlg();
+ return TRUE;
+ case IDC_FORMAT2:
+ if (MessageBox(hW, _("Are you sure you want to format this Memory Card?"), _("Confirmation"), MB_YESNO) == IDNO) return TRUE;
+ Edit_GetText(GetDlgItem(hW,IDC_MCD2), str, 256);
+ CreateMcd(str);
+ LoadMcd(2, str);
+ UpdateMcdDlg();
+ return TRUE;
+ case IDCANCEL:
+ LoadMcds(Config.Mcd1, Config.Mcd2);
+
+ EndDialog(hW,FALSE);
+
+ return TRUE;
+ case IDOK:
+ Edit_GetText(GetDlgItem(hW,IDC_MCD1), Config.Mcd1, 256);
+ Edit_GetText(GetDlgItem(hW,IDC_MCD2), Config.Mcd2, 256);
+
+ LoadMcds(Config.Mcd1, Config.Mcd2);
+ SaveConfig();
+
+ EndDialog(hW,TRUE);
+
+ return TRUE;
+ }
+ case WM_NOTIFY:
+ switch (wParam) {
+ case IDC_LIST1: McdListNotify(1, IDC_LIST1, (LPNMHDR)lParam); break;
+ case IDC_LIST2: McdListNotify(2, IDC_LIST2, (LPNMHDR)lParam); break;
+ }
+ return TRUE;
+ case WM_TIMER:
+ UpdateMcdIcon(1, IDC_LIST1);
+ UpdateMcdIcon(2, IDC_LIST2);
+ return TRUE;
+ case WM_DESTROY:
+ DestroyIcon(eICON);
+ //KillTimer(hW, 1);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ long tmp;
+
+ switch(uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("Cpu Config"));
+
+ Button_SetText(GetDlgItem(hW,IDOK), _("OK"));
+ Button_SetText(GetDlgItem(hW,IDCANCEL), _("Cancel"));
+
+ Button_SetText(GetDlgItem(hW,IDC_XA), _("Disable Xa Decoding"));
+ Button_SetText(GetDlgItem(hW,IDC_SIO), _("Sio Irq Always Enabled"));
+ Button_SetText(GetDlgItem(hW,IDC_MDEC), _("Black && White Movies"));
+ Button_SetText(GetDlgItem(hW,IDC_CDDA), _("Disable Cd audio"));
+ Button_SetText(GetDlgItem(hW,IDC_SLOWBOOT),_("Slow Boot"));
+ Button_SetText(GetDlgItem(hW,IDC_PSXAUTO), _("Autodetect"));
+ Button_SetText(GetDlgItem(hW,IDC_CPU), _("Enable Interpreter Cpu"));
+ Button_SetText(GetDlgItem(hW,IDC_PSXOUT), _("Enable Console Output"));
+ Button_SetText(GetDlgItem(hW,IDC_DEBUG), _("Enable Debugger"));
+ Button_SetText(GetDlgItem(hW,IDC_SPUIRQ), _("Spu Irq Always Enabled"));
+ Button_SetText(GetDlgItem(hW,IDC_RCNTFIX), _("Parasite Eve 2, Vandal Hearts 1/2 Fix"));
+ Button_SetText(GetDlgItem(hW,IDC_VSYNCWA), _("InuYasha Sengoku Battle Fix"));
+ Button_SetText(GetDlgItem(hW,IDC_WIDESCREEN), _("Widescreen (GTE Hack)"));
+
+ Static_SetText(GetDlgItem(hW,IDC_MISCOPT), _("Options"));
+ Static_SetText(GetDlgItem(hW,IDC_SELPSX), _("Psx System Type"));
+
+ Button_SetCheck(GetDlgItem(hW,IDC_XA), Config.Xa);
+ Button_SetCheck(GetDlgItem(hW,IDC_SIO), Config.Sio);
+ Button_SetCheck(GetDlgItem(hW,IDC_MDEC), Config.Mdec);
+ Button_SetCheck(GetDlgItem(hW,IDC_CDDA), Config.Cdda);
+ Button_SetCheck(GetDlgItem(hW,IDC_SLOWBOOT),Config.SlowBoot);
+ Button_SetCheck(GetDlgItem(hW,IDC_PSXAUTO), Config.PsxAuto);
+ Button_SetCheck(GetDlgItem(hW,IDC_CPU), (Config.Cpu == CPU_INTERPRETER));
+ Button_SetCheck(GetDlgItem(hW,IDC_PSXOUT), Config.PsxOut);
+ Button_SetCheck(GetDlgItem(hW,IDC_DEBUG), Config.Debug);
+ Button_SetCheck(GetDlgItem(hW,IDC_SPUIRQ), Config.SpuIrq);
+ Button_SetCheck(GetDlgItem(hW,IDC_RCNTFIX), Config.RCntFix);
+ Button_SetCheck(GetDlgItem(hW,IDC_VSYNCWA), Config.VSyncWA);
+ Button_SetCheck(GetDlgItem(hW,IDC_WIDESCREEN), Config.Widescreen);
+ ComboBox_AddString(GetDlgItem(hW,IDC_PSXTYPES), "NTSC");
+ ComboBox_AddString(GetDlgItem(hW,IDC_PSXTYPES), "PAL");
+ ComboBox_SetCurSel(GetDlgItem(hW,IDC_PSXTYPES),Config.PsxType);
+
+ if (Config.Cpu == CPU_DYNAREC) {
+ Config.Debug = 0;
+ Button_SetCheck(GetDlgItem(hW, IDC_DEBUG), FALSE);
+ EnableWindow(GetDlgItem(hW, IDC_DEBUG), FALSE);
+ }
+
+ EnableWindow(GetDlgItem(hW,IDC_PSXTYPES), !Config.PsxAuto);
+ break;
+
+ case WM_COMMAND: {
+ switch (LOWORD(wParam)) {
+ case IDCANCEL: EndDialog(hW, FALSE); return TRUE;
+ case IDOK:
+ tmp = ComboBox_GetCurSel(GetDlgItem(hW,IDC_PSXTYPES));
+ if (tmp == 0) Config.PsxType = 0;
+ else Config.PsxType = 1;
+
+ Config.Xa = Button_GetCheck(GetDlgItem(hW,IDC_XA));
+ Config.Sio = Button_GetCheck(GetDlgItem(hW,IDC_SIO));
+ Config.Mdec = Button_GetCheck(GetDlgItem(hW,IDC_MDEC));
+ Config.Cdda = Button_GetCheck(GetDlgItem(hW,IDC_CDDA));
+ Config.SlowBoot= Button_GetCheck(GetDlgItem(hW,IDC_SLOWBOOT));
+ Config.PsxAuto = Button_GetCheck(GetDlgItem(hW,IDC_PSXAUTO));
+ tmp = Config.Cpu;
+ Config.Cpu = (Button_GetCheck(GetDlgItem(hW,IDC_CPU)) ? CPU_INTERPRETER : CPU_DYNAREC);
+ if (tmp != Config.Cpu) {
+ psxCpu->Shutdown();
+ if (Config.Cpu == CPU_INTERPRETER) psxCpu = &psxInt;
+ else psxCpu = &psxRec;
+ if (psxCpu->Init() == -1) {
+ SysClose();
+ exit(1);
+ }
+ psxCpu->Reset();
+ }
+ Config.PsxOut = Button_GetCheck(GetDlgItem(hW,IDC_PSXOUT));
+ Config.SpuIrq = Button_GetCheck(GetDlgItem(hW,IDC_SPUIRQ));
+ Config.RCntFix = Button_GetCheck(GetDlgItem(hW,IDC_RCNTFIX));
+ Config.VSyncWA = Button_GetCheck(GetDlgItem(hW,IDC_VSYNCWA));
+ Config.Widescreen = Button_GetCheck(GetDlgItem(hW,IDC_WIDESCREEN));
+ tmp = Config.Debug;
+ Config.Debug = Button_GetCheck(GetDlgItem(hW,IDC_DEBUG));
+ if (tmp != Config.Debug) {
+ if (Config.Debug) StartDebugger();
+ else StopDebugger();
+ }
+
+ SaveConfig();
+
+ EndDialog(hW,TRUE);
+
+ if (Config.PsxOut) OpenConsole();
+ else CloseConsole();
+
+ return TRUE;
+
+ case IDC_CPU:
+ if (Button_GetCheck(GetDlgItem(hW,IDC_CPU))) {
+ EnableWindow(GetDlgItem(hW,IDC_DEBUG), TRUE);
+ } else {
+ Button_SetCheck(GetDlgItem(hW,IDC_DEBUG), FALSE);
+ EnableWindow(GetDlgItem(hW,IDC_DEBUG), FALSE);
+ }
+ break;
+
+ case IDC_PSXAUTO:
+ if (Button_GetCheck(GetDlgItem(hW,IDC_PSXAUTO))) {
+ EnableWindow(GetDlgItem(hW,IDC_PSXTYPES), FALSE);
+ } else {
+ EnableWindow(GetDlgItem(hW,IDC_PSXTYPES), TRUE);
+ }
+ break;
+ }
+ }
+ }
+ return FALSE;
+}
+
+void Open_Mcd_Proc(HWND hW, int mcd) {
+ OPENFILENAME ofn;
+ char szFileName[MAXPATHLEN];
+ char szFileTitle[MAXPATHLEN];
+ char szFilter[1024];
+ char *str;
+
+ memset(&szFileName, 0, sizeof(szFileName));
+ memset(&szFileTitle, 0, sizeof(szFileTitle));
+ memset(&szFilter, 0, sizeof(szFilter));
+
+ strcpy(szFilter, _("Psx Mcd Format (*.mcr;*.mc;*.mem;*.vgs;*.mcd;*.gme;*.ddf)"));
+ str = szFilter + strlen(szFilter) + 1;
+ strcpy(str, "*.mcr;*.mcd;*.mem;*.gme;*.mc;*.ddf");
+
+ str+= strlen(str) + 1;
+ strcpy(str, _("Psx Memory Card (*.mcr;*.mc)"));
+ str+= strlen(str) + 1;
+ strcpy(str, "*.mcr;0*.mc");
+
+ str+= strlen(str) + 1;
+ strcpy(str, _("CVGS Memory Card (*.mem;*.vgs)"));
+ str+= strlen(str) + 1;
+ strcpy(str, "*.mem;*.vgs");
+
+ str+= strlen(str) + 1;
+ strcpy(str, _("Bleem Memory Card (*.mcd)"));
+ str+= strlen(str) + 1;
+ strcpy(str, "*.mcd");
+
+ str+= strlen(str) + 1;
+ strcpy(str, _("DexDrive Memory Card (*.gme)"));
+ str+= strlen(str) + 1;
+ strcpy(str, "*.gme");
+
+ str+= strlen(str) + 1;
+ strcpy(str, _("DataDeck Memory Card (*.ddf)"));
+ str+= strlen(str) + 1;
+ strcpy(str, "*.ddf");
+
+ str+= strlen(str) + 1;
+ strcpy(str, _("All Files"));
+ str+= strlen(str) + 1;
+ strcpy(str, "*.*");
+
+ ofn.lStructSize = sizeof(OPENFILENAME);
+ ofn.hwndOwner = hW;
+ ofn.lpstrFilter = szFilter;
+ ofn.lpstrCustomFilter = NULL;
+ ofn.nMaxCustFilter = 0;
+ ofn.nFilterIndex = 1;
+ ofn.lpstrFile = szFileName;
+ ofn.nMaxFile = MAXPATHLEN;
+ ofn.lpstrInitialDir = "memcards";
+ ofn.lpstrFileTitle = szFileTitle;
+ ofn.nMaxFileTitle = MAXPATHLEN;
+ ofn.lpstrTitle = NULL;
+ ofn.lpstrDefExt = "MCR";
+ ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
+
+ if (GetOpenFileName ((LPOPENFILENAME)&ofn)) {
+ Edit_SetText(GetDlgItem(hW,mcd == 1 ? IDC_MCD1 : IDC_MCD2), szFileName);
+ LoadMcd(mcd, szFileName);
+ UpdateMcdDlg();
+ }
+}
+
+int Open_File_Proc(char *file) {
+ OPENFILENAME ofn;
+ char szFileName[MAXPATHLEN];
+ char szFileTitle[MAXPATHLEN];
+ char szFilter[256];
+
+ memset(&szFileName, 0, sizeof(szFileName));
+ memset(&szFileTitle, 0, sizeof(szFileTitle));
+ memset(&szFilter, 0, sizeof(szFilter));
+
+ ofn.lStructSize = sizeof(OPENFILENAME);
+ ofn.hwndOwner = gApp.hWnd;
+
+ strcpy(szFilter, _("Psx Exe Format"));
+ strcatz(szFilter, "*.*");
+
+ ofn.lpstrFilter = szFilter;
+ ofn.lpstrCustomFilter = NULL;
+ ofn.nMaxCustFilter = 0;
+ ofn.nFilterIndex = 1;
+ ofn.lpstrFile = szFileName;
+ ofn.nMaxFile = MAXPATHLEN;
+ ofn.lpstrInitialDir = NULL;
+ ofn.lpstrFileTitle = szFileTitle;
+ ofn.nMaxFileTitle = MAXPATHLEN;
+ ofn.lpstrTitle = NULL;
+ ofn.lpstrDefExt = "EXE";
+ ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
+
+ if (GetOpenFileName ((LPOPENFILENAME)&ofn)) {
+ strcpy(file, szFileName);
+ return 1;
+ } else
+ return 0;
+}
+
+int Open_Iso_Proc(char *file) {
+ OPENFILENAME ofn;
+ char szFileName[MAXPATHLEN];
+ char szFileTitle[MAXPATHLEN];
+ char szFilter[256];
+ char *str;
+
+ memset(&szFileName, 0, sizeof(szFileName));
+ memset(&szFileTitle, 0, sizeof(szFileTitle));
+ memset(&szFilter, 0, sizeof(szFilter));
+
+ ofn.lStructSize = sizeof(OPENFILENAME);
+ ofn.hwndOwner = gApp.hWnd;
+
+ strcpy(szFilter, _("Psx Isos (*.iso;*.mdf;*.img;*.bin)"));
+ str = szFilter + strlen(szFilter) + 1;
+ strcpy(str, "*.iso;*.mdf;*.img;*.bin");
+
+ str += strlen(str) + 1;
+ strcpy(str, _("All Files"));
+ str += strlen(str) + 1;
+ strcpy(str, "*.*");
+
+ ofn.lpstrFilter = szFilter;
+ ofn.lpstrCustomFilter = NULL;
+ ofn.nMaxCustFilter = 0;
+ ofn.nFilterIndex = 1;
+ ofn.lpstrFile = szFileName;
+ ofn.nMaxFile = MAXPATHLEN;
+ ofn.lpstrInitialDir = NULL;
+ ofn.lpstrFileTitle = szFileTitle;
+ ofn.nMaxFileTitle = MAXPATHLEN;
+ ofn.lpstrTitle = NULL;
+ ofn.lpstrDefExt = "ISO";
+ ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
+
+ if (GetOpenFileName ((LPOPENFILENAME)&ofn)) {
+ strcpy(file, szFileName);
+ return 1;
+ } else
+ return 0;
+}
+
+#define _ADDSUBMENU(menu, menun, string) \
+ submenu[menun] = CreatePopupMenu(); \
+ AppendMenu(menu, MF_STRING | MF_POPUP, (UINT)submenu[menun], string);
+
+#define ADDSUBMENU(menun, string) \
+ _ADDSUBMENU(gApp.hMenu, menun, string);
+
+#define ADDSUBMENUS(submn, menun, string) \
+ submenu[menun] = CreatePopupMenu(); \
+ InsertMenu(submenu[submn], 0, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)submenu[menun], string);
+
+#define ADDMENUITEM(menun, string, id) \
+ item.fType = MFT_STRING; \
+ item.fMask = MIIM_STATE | MIIM_TYPE | MIIM_ID; \
+ item.fState = MFS_ENABLED; \
+ item.wID = id; \
+ sprintf(buf, string); \
+ InsertMenuItem(submenu[menun], 0, TRUE, &item);
+
+#define ADDMENUITEMC(menun, string, id) \
+ item.fType = MFT_STRING; \
+ item.fMask = MIIM_STATE | MIIM_TYPE | MIIM_ID; \
+ item.fState = MFS_ENABLED | MFS_CHECKED; \
+ item.wID = id; \
+ sprintf(buf, string); \
+ InsertMenuItem(submenu[menun], 0, TRUE, &item);
+
+#define ADDSEPARATOR(menun) \
+ item.fMask = MIIM_TYPE; \
+ item.fType = MFT_SEPARATOR; \
+ InsertMenuItem(submenu[menun], 0, TRUE, &item);
+
+void CreateMainMenu() {
+ MENUITEMINFO item;
+ HMENU submenu[256];
+ char buf[256];
+#ifdef ENABLE_NLS
+ char *lang;
+ int i;
+#endif
+
+ item.cbSize = sizeof(MENUITEMINFO);
+ item.dwTypeData = buf;
+ item.cch = 256;
+
+ gApp.hMenu = CreateMenu();
+
+ ADDSUBMENU(0, _("&File"));
+ ADDMENUITEM(0, _("E&xit"), ID_FILE_EXIT);
+ ADDSEPARATOR(0);
+ ADDMENUITEM(0, _("Run &EXE..."), ID_FILE_RUN_EXE);
+ ADDMENUITEM(0, _("Run &BIOS"), ID_FILE_RUNBIOS);
+ ADDMENUITEM(0, _("Run &ISO..."), ID_FILE_RUN_ISO);
+ ADDMENUITEM(0, _("Run &CD"), ID_FILE_RUN_CD);
+
+ ADDSUBMENU(0, _("&Emulator"));
+ ADDSUBMENUS(0, 1, _("&States"));
+ ADDSEPARATOR(0);
+ ADDMENUITEM(0, _("S&witch ISO..."), ID_EMULATOR_SWITCH_ISO);
+ ADDSEPARATOR(0);
+ ADDMENUITEM(0, _("S&hutdown"), ID_EMULATOR_SHUTDOWN);
+ ADDMENUITEM(0, _("Re&set"), ID_EMULATOR_RESET);
+ ADDMENUITEM(0, _("&Run"), ID_EMULATOR_RUN);
+ ADDSUBMENUS(1, 3, _("&Save"));
+ ADDSUBMENUS(1, 2, _("&Load"));
+ ADDMENUITEM(2, _("&Other..."), ID_FILE_STATES_LOAD_OTHER);
+ ADDMENUITEM(2, _("Slot &9"), ID_FILE_STATES_LOAD_SLOT9);
+ ADDMENUITEM(2, _("Slot &8"), ID_FILE_STATES_LOAD_SLOT8);
+ ADDMENUITEM(2, _("Slot &7"), ID_FILE_STATES_LOAD_SLOT7);
+ ADDMENUITEM(2, _("Slot &6"), ID_FILE_STATES_LOAD_SLOT6);
+ ADDMENUITEM(2, _("Slot &5"), ID_FILE_STATES_LOAD_SLOT5);
+ ADDMENUITEM(2, _("Slot &4"), ID_FILE_STATES_LOAD_SLOT4);
+ ADDMENUITEM(2, _("Slot &3"), ID_FILE_STATES_LOAD_SLOT3);
+ ADDMENUITEM(2, _("Slot &2"), ID_FILE_STATES_LOAD_SLOT2);
+ ADDMENUITEM(2, _("Slot &1"), ID_FILE_STATES_LOAD_SLOT1);
+ ADDMENUITEM(3, _("&Other..."), ID_FILE_STATES_SAVE_OTHER);
+ ADDMENUITEM(3, _("Slot &9"), ID_FILE_STATES_SAVE_SLOT9);
+ ADDMENUITEM(3, _("Slot &8"), ID_FILE_STATES_SAVE_SLOT8);
+ ADDMENUITEM(3, _("Slot &7"), ID_FILE_STATES_SAVE_SLOT7);
+ ADDMENUITEM(3, _("Slot &6"), ID_FILE_STATES_SAVE_SLOT6);
+ ADDMENUITEM(3, _("Slot &5"), ID_FILE_STATES_SAVE_SLOT5);
+ ADDMENUITEM(3, _("Slot &4"), ID_FILE_STATES_SAVE_SLOT4);
+ ADDMENUITEM(3, _("Slot &3"), ID_FILE_STATES_SAVE_SLOT3);
+ ADDMENUITEM(3, _("Slot &2"), ID_FILE_STATES_SAVE_SLOT2);
+ ADDMENUITEM(3, _("Slot &1"), ID_FILE_STATES_SAVE_SLOT1);
+
+ ADDSUBMENU(0, _("&Configuration"));
+ ADDMENUITEM(0, _("Cheat &Search..."), ID_CONFIGURATION_CHEATSEARCH);
+ ADDMENUITEM(0, _("Ch&eat Code..."), ID_CONFIGURATION_CHEATLIST);
+ ADDSEPARATOR(0);
+#ifdef ENABLE_NLS
+ ADDSUBMENUS(0, 1, _("&Language"));
+
+ if (langs != langs) free(langs);
+ langs = (_langs*)malloc(sizeof(_langs));
+ strcpy(langs[0].lang, "English");
+ InitLanguages(); i=1;
+ while ((lang = GetLanguageNext()) != NULL) {
+ langs = (_langs*)realloc(langs, sizeof(_langs)*(i+1));
+ strcpy(langs[i].lang, lang);
+ if (!strcmp(Config.Lang, lang)) {
+ ADDMENUITEMC(1, ParseLang(langs[i].lang), ID_LANGS + i);
+ } else {
+ ADDMENUITEM(1, ParseLang(langs[i].lang), ID_LANGS + i);
+ }
+ i++;
+ }
+ CloseLanguages();
+ langsMax = i;
+ if (!strcmp(Config.Lang, "English")) {
+ ADDMENUITEMC(1, _("English"), ID_LANGS);
+ } else {
+ ADDMENUITEM(1, _("English"), ID_LANGS);
+ }
+ ADDSEPARATOR(0);
+#endif
+ ADDMENUITEM(0, _("&Memory cards..."), ID_CONFIGURATION_MEMORYCARDMANAGER);
+ ADDMENUITEM(0, _("C&PU..."), ID_CONFIGURATION_CPU);
+ ADDSEPARATOR(0);
+ ADDMENUITEM(0, _("&NetPlay..."), ID_CONFIGURATION_NETPLAY);
+ ADDSEPARATOR(0);
+ ADDMENUITEM(0, _("&Controllers..."), ID_CONFIGURATION_CONTROLLERS);
+ ADDMENUITEM(0, _("CD-&ROM..."), ID_CONFIGURATION_CDROM);
+ ADDMENUITEM(0, _("&Sound..."), ID_CONFIGURATION_SOUND);
+ ADDMENUITEM(0, _("&Graphics..."), ID_CONFIGURATION_GRAPHICS);
+ ADDSEPARATOR(0);
+ ADDMENUITEM(0, _("&Plugins && Bios..."), ID_CONFIGURATION);
+
+ ADDSUBMENU(0, _("&Help"));
+ ADDMENUITEM(0, _("&About..."), ID_HELP_ABOUT);
+
+ UpdateMenuItems();
+}
+
+void CreateMainWindow(int nCmdShow) {
+ WNDCLASS wc;
+ HWND hWnd;
+
+ wc.lpszClassName = "PCSXR Main";
+ wc.lpfnWndProc = MainWndProc;
+ wc.style = 0;
+ wc.hInstance = gApp.hInstance;
+ wc.hIcon = LoadIcon(gApp.hInstance, MAKEINTRESOURCE(IDI_APP_ICON));
+ wc.hCursor = NULL;
+ wc.hbrBackground = (HBRUSH)(COLOR_MENUTEXT);
+ wc.lpszMenuName = 0;
+ wc.cbClsExtra = 0;
+ wc.cbWndExtra = 0;
+
+ RegisterClass(&wc);
+
+ hWnd = CreateWindow("PCSXR Main",
+ "PCSXR",
+ WS_CAPTION | WS_POPUPWINDOW | WS_MINIMIZEBOX,
+ CW_USEDEFAULT,
+ 0,
+ 356,
+ 252,
+ NULL,
+ NULL,
+ gApp.hInstance,
+ NULL);
+
+ gApp.hWnd = hWnd;
+
+ CreateMainMenu();
+ SetMenu(gApp.hWnd, gApp.hMenu);
+
+ ShowWindow(hWnd, nCmdShow);
+}
+
+#ifdef ENABLE_NLS
+
+WIN32_FIND_DATA lFindData;
+HANDLE lFind;
+int lFirst;
+
+void InitLanguages() {
+ lFind = FindFirstFile("Langs\\*", &lFindData);
+ lFirst = 1;
+}
+
+char *GetLanguageNext() {
+ for (;;) {
+ if (!strcmp(lFindData.cFileName, ".")) {
+ if (FindNextFile(lFind, &lFindData) == FALSE)
+ return NULL;
+ continue;
+ }
+ if (!strcmp(lFindData.cFileName, "..")) {
+ if (FindNextFile(lFind, &lFindData) == FALSE)
+ return NULL;
+ continue;
+ }
+ break;
+ }
+ if (lFirst == 0) {
+ if (FindNextFile(lFind, &lFindData) == FALSE)
+ return NULL;
+ } else lFirst = 0;
+ if (lFind==INVALID_HANDLE_VALUE) return NULL;
+
+ return lFindData.cFileName;
+}
+
+void CloseLanguages() {
+ if (lFind != INVALID_HANDLE_VALUE) FindClose(lFind);
+}
+
+void ChangeLanguage(char *lang) {
+ strcpy(Config.Lang, lang);
+ SaveConfig();
+ LoadConfig();
+}
+
+#endif
+
+int SysInit() {
+ if (Config.PsxOut) OpenConsole();
+
+ if (EmuInit() == -1) return -1;
+
+#ifdef EMU_LOG
+ emuLog = fopen("emuLog.txt","w");
+ setvbuf(emuLog, NULL, _IONBF, 0);
+#endif
+
+ while (LoadPlugins(0) == -1) {
+ CancelQuit = 1;
+ ConfigurePlugins(gApp.hWnd);
+ CancelQuit = 0;
+ }
+ LoadMcds(Config.Mcd1, Config.Mcd2);
+
+ if (Config.Debug) StartDebugger();
+
+ return 0;
+}
+
+void SysReset() {
+ EmuReset();
+}
+
+void SysClose() {
+ EmuShutdown();
+ ReleasePlugins();
+
+ StopDebugger();
+
+ if (Config.PsxOut) CloseConsole();
+
+ if (emuLog != NULL) fclose(emuLog);
+}
+
+void SysPrintf(const char *fmt, ...) {
+ va_list list;
+ char msg[512];
+ DWORD tmp;
+
+ if (!hConsole) return;
+
+ va_start(list,fmt);
+ vsprintf(msg,fmt,list);
+ va_end(list);
+
+ WriteConsole(hConsole, msg, (DWORD)strlen(msg), &tmp, 0);
+#ifdef EMU_LOG
+#ifndef LOG_STDOUT
+ if (emuLog != NULL) fprintf(emuLog, "%s", msg);
+#endif
+#endif
+}
+
+void SysMessage(const char *fmt, ...) {
+ va_list list;
+ char tmp[512];
+
+ va_start(list,fmt);
+ vsprintf(tmp,fmt,list);
+ va_end(list);
+ MessageBox(0, tmp, _("Pcsxr Msg"), 0);
+}
+
+static char *err = N_("Error Loading Symbol");
+static int errval;
+
+void *SysLoadLibrary(const char *lib) {
+ return LoadLibrary(lib);
+}
+
+void *SysLoadSym(void *lib, const char *sym) {
+ void *tmp = GetProcAddress((HINSTANCE)lib, sym);
+ if (tmp == NULL) errval = 1;
+ else errval = 0;
+ return tmp;
+}
+
+const char *SysLibError() {
+ if (errval) { errval = 0; return err; }
+ return NULL;
+}
+
+void SysCloseLibrary(void *lib) {
+ FreeLibrary((HINSTANCE)lib);
+}
+
+void SysUpdate() {
+ MSG msg;
+
+ while (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE)) {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+}
+
+void SysRunGui() {
+ RestoreWindow();
+ RunGui();
+}
+
+void UpdateMenuItems() {
+ if (CdromId[0] != '\0') {
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_NETPLAY, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_CONTROLLERS, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_CDROM, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_SOUND, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_GRAPHICS, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION, MF_BYCOMMAND | MF_GRAYED);
+ if (!UsingIso()) {
+ EnableMenuItem(gApp.hMenu, ID_EMULATOR_SWITCH_ISO, MF_BYCOMMAND | MF_GRAYED);
+ }
+
+ ResetMenuSlots();
+ } else {
+ EnableMenuItem(gApp.hMenu, ID_EMULATOR_RESET, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_EMULATOR_RUN, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_EMULATOR_SHUTDOWN, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_EMULATOR_SWITCH_ISO, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT1, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT2, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT3, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT4, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT5, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT6, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT7, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT8, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_SLOT9, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_LOAD_OTHER, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT1, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT2, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT3, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT4, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT5, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT6, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT7, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT8, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT9, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_OTHER, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_CHEATSEARCH, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_NETPLAY, MF_BYCOMMAND | MF_ENABLED);
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_CONTROLLERS, MF_BYCOMMAND | MF_ENABLED);
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_CDROM, MF_BYCOMMAND | MF_ENABLED);
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_SOUND, MF_BYCOMMAND | MF_ENABLED);
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_GRAPHICS, MF_BYCOMMAND | MF_ENABLED);
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION, MF_BYCOMMAND | MF_ENABLED);
+ }
+}
diff --git a/win32/gui/pcsxr.exe.manifest b/win32/gui/pcsxr.exe.manifest
index 841aa3ce..0bcb865c 100644..100755
--- a/win32/gui/pcsxr.exe.manifest
+++ b/win32/gui/pcsxr.exe.manifest
@@ -1,22 +1,22 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
-<assemblyIdentity
- version="1.0.0.0"
- processorArchitecture="X86"
- name="Free Download Manager"
- type="win32"
-/>
-<description>MyApplication</description>
-<dependency>
- <dependentAssembly>
- <assemblyIdentity
- type="win32"
- name="Microsoft.Windows.Common-Controls"
- version="6.0.0.0"
- processorArchitecture="X86"
- publicKeyToken="6595b64144ccf1df"
- language="*"
- />
- </dependentAssembly>
-</dependency>
-</assembly>
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<assemblyIdentity
+ version="1.0.0.0"
+ processorArchitecture="X86"
+ name="Free Download Manager"
+ type="win32"
+/>
+<description>MyApplication</description>
+<dependency>
+ <dependentAssembly>
+ <assemblyIdentity
+ type="win32"
+ name="Microsoft.Windows.Common-Controls"
+ version="6.0.0.0"
+ processorArchitecture="X86"
+ publicKeyToken="6595b64144ccf1df"
+ language="*"
+ />
+ </dependentAssembly>
+</dependency>
+</assembly>
diff --git a/win32/gui/plugin.c b/win32/gui/plugin.c
index b22ff012..cf968a18 100644..100755
--- a/win32/gui/plugin.c
+++ b/win32/gui/plugin.c
@@ -1,359 +1,359 @@
-/* Pcsx - Pc Psx Emulator
- * Copyright (C) 1999-2003 Pcsx Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <windows.h>
-#include <windowsx.h>
-#include <stdio.h>
-#include "plugin.h"
-#include "plugins.h"
-#include "resource.h"
-#include <time.h>
-#include <stdio.h>
-
-#include "r3000a.h"
-#include "Win32.h"
-#include "NoPic.h"
-#include "misc.h"
-#include "sio.h"
-
-int ShowPic = 0;
-
-extern void LidInterrupt();
-
-void gpuShowPic() {
- char Text[255];
- gzFile f;
-
- if (!ShowPic) {
- unsigned char *pMem;
-
- pMem = (unsigned char *) malloc(128*96*3);
- if (pMem == NULL) return;
- GetStateFilename(Text, StatesC);
-
- GPU_freeze(2, (GPUFreeze_t *)&StatesC);
-
- f = gzopen(Text, "rb");
- if (f != NULL) {
- gzseek(f, 32, SEEK_SET); // skip header
- gzseek(f, sizeof(u32), SEEK_CUR);
- gzseek(f, sizeof(boolean), SEEK_CUR);
- gzread(f, pMem, 128*96*3);
- gzclose(f);
- } else {
- memcpy(pMem, NoPic_Image.pixel_data, 128*96*3);
- DrawNumBorPic(pMem, StatesC+1);
- }
- GPU_showScreenPic(pMem);
-
- free(pMem);
- ShowPic = 1;
- } else { GPU_showScreenPic(NULL); ShowPic = 0; }
-}
-
-void GetStateFilename(char *out, int i) {
- char trimlabel[33];
- int j;
-
- strncpy(trimlabel, CdromLabel, 32);
- trimlabel[32] = 0;
- for (j=31; j>=0; j--)
- if (trimlabel[j] == ' ')
- trimlabel[j] = '\0';
-
- sprintf(out, "sstates\\%.32s-%.9s.%3.3d", trimlabel, CdromId, i);
-}
-
-void PADhandleKey(int key) {
- char Text[255];
- int ret;
-
- if (Running == 0) return;
- switch (key) {
- case 0: break;
- case VK_F1:
- GetStateFilename(Text, StatesC);
- GPU_freeze(2, (GPUFreeze_t *)&StatesC);
- ret = SaveState(Text);
- if (ret == 0)
- sprintf(Text, _("*PCSXR*: Saved State %d"), StatesC+1);
- else sprintf(Text, _("*PCSXR*: Error Saving State %d"), StatesC+1);
- GPU_displayText(Text);
- if (ShowPic) { ShowPic = 0; gpuShowPic(); }
- break;
-
- case VK_F2:
- if (StatesC < 8) StatesC++;
- else StatesC = 0;
- GPU_freeze(2, (GPUFreeze_t *)&StatesC);
- if (ShowPic) { ShowPic = 0; gpuShowPic(); }
- break;
-
- case VK_F3:
- GetStateFilename(Text, StatesC);
- ret = LoadState(Text);
- if (ret == 0)
- sprintf(Text, _("*PCSXR*: Loaded State %d"), StatesC+1);
- else sprintf(Text, _("*PCSXR*: Error Loading State %d"), StatesC+1);
- GPU_displayText(Text);
- break;
-
- case VK_F4:
- gpuShowPic();
- break;
-
- case VK_F5:
- Config.Sio ^= 0x1;
- if (Config.Sio)
- sprintf(Text, _("*PCSXR*: Sio Irq Always Enabled"));
- else sprintf(Text, _("*PCSXR*: Sio Irq Not Always Enabled"));
- GPU_displayText(Text);
- break;
-
- case VK_F6:
- Config.Mdec ^= 0x1;
- if (Config.Mdec)
- sprintf(Text, _("*PCSXR*: Black&White Mdecs Only Enabled"));
- else sprintf(Text, _("*PCSXR*: Black&White Mdecs Only Disabled"));
- GPU_displayText(Text);
- break;
-
- case VK_F7:
- Config.Xa ^= 0x1;
- if (Config.Xa == 0)
- sprintf (Text, _("*PCSXR*: Xa Enabled"));
- else sprintf (Text, _("*PCSXR*: Xa Disabled"));
- GPU_displayText(Text);
- break;
-
- case VK_F8:
- GPU_makeSnapshot();
- return;
-
- case VK_F9:
- GPU_displayText(_("*PCSXR*: CdRom Case Opened"));
- SetCdOpenCaseTime(-1);
- LidInterrupt();
- break;
-
- case VK_F10:
- GPU_displayText(_("*PCSXR*: CdRom Case Closed"));
- SetCdOpenCaseTime(0);
- LidInterrupt();
- break;
-
- case VK_F12:
- SysPrintf("*PCSXR*: CpuReset\n");
- psxReset();
- break;
-
- case VK_ESCAPE:
- Running = 0;
- ClosePlugins();
- SysRunGui();
- break;
- }
-}
-
-void CALLBACK SPUirq(void);
-
-char charsTable[4] = { "|/-\\" };
-
-BOOL CALLBACK ConnectDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- char str[256];
- static int waitState;
-
- switch(uMsg) {
- case WM_INITDIALOG:
- SetWindowText(hW, _("Connecting..."));
-
- sprintf(str, _("Please wait while connecting... %c\n"), charsTable[waitState]);
- Static_SetText(GetDlgItem(hW, IDC_CONNECTSTR), str);
- SetTimer(hW, 0, 100, NULL);
- return TRUE;
-
- case WM_TIMER:
- if (++waitState == 4) waitState = 0;
- sprintf(str, _("Please wait while connecting... %c\n"), charsTable[waitState]);
- Static_SetText(GetDlgItem(hW, IDC_CONNECTSTR), str);
- return TRUE;
-
-/* case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDCANCEL:
- WaitCancel = 1;
- return TRUE;
- }*/
- }
-
- return FALSE;
-}
-
-#define PARSEPATH(dst, src) \
- ptr = src + strlen(src); \
- while (*ptr != '\\' && ptr != src) ptr--; \
- if (ptr != src) { \
- strcpy(dst, ptr+1); \
- }
-
-int _OpenPlugins(HWND hWnd) {
- int ret;
-
- GPU_clearDynarec(clearDynarec);
-
- ret = CDR_open();
- if (ret < 0) { SysMessage (_("Error Opening CDR Plugin")); return -1; }
-
- SetCurrentDirectory(PcsxrDir);
- if (Config.UseNet && !NetOpened) {
- netInfo info;
- char path[256];
-
- strcpy(info.EmuName, "PCSXR " PACKAGE_VERSION);
- strncpy(info.CdromID, CdromId, 9);
- strncpy(info.CdromLabel, CdromLabel, 9);
- info.psxMem = psxM;
- info.GPU_showScreenPic = GPU_showScreenPic;
- info.GPU_displayText = GPU_displayText;
- info.GPU_showScreenPic = GPU_showScreenPic;
- info.PAD_setSensitive = PAD1_setSensitive;
- sprintf(path, "%s%s", Config.BiosDir, Config.Bios);
- strcpy(info.BIOSpath, path);
- strcpy(info.MCD1path, Config.Mcd1);
- strcpy(info.MCD2path, Config.Mcd2);
- sprintf(path, "%s%s", Config.PluginsDir, Config.Gpu);
- strcpy(info.GPUpath, path);
- sprintf(path, "%s%s", Config.PluginsDir, Config.Spu);
- strcpy(info.SPUpath, path);
- sprintf(path, "%s%s", Config.PluginsDir, Config.Cdr);
- strcpy(info.CDRpath, path);
- NET_setInfo(&info);
-
- ret = NET_open(hWnd);
- if (ret < 0) {
- if (ret == -2) {
- // -2 is returned when something in the info
- // changed and needs to be synced
- char *ptr;
-
- PARSEPATH(Config.Bios, info.BIOSpath);
- PARSEPATH(Config.Gpu, info.GPUpath);
- PARSEPATH(Config.Spu, info.SPUpath);
- PARSEPATH(Config.Cdr, info.CDRpath);
-
- strcpy(Config.Mcd1, info.MCD1path);
- strcpy(Config.Mcd2, info.MCD2path);
- return -2;
- } else {
- Config.UseNet = FALSE;
- }
- } else {
- HWND hW = CreateDialog(gApp.hInstance, MAKEINTRESOURCE(IDD_CONNECT), gApp.hWnd, ConnectDlgProc);
- ShowWindow(hW, SW_SHOW);
-
- if (NET_queryPlayer() == 1) {
- if (SendPcsxInfo() == -1) Config.UseNet = FALSE;
- } else {
- if (RecvPcsxInfo() == -1) Config.UseNet = FALSE;
- }
-
- DestroyWindow(hW);
- }
- NetOpened = TRUE;
- } else if (Config.UseNet) {
- NET_resume();
- }
-
- ret = GPU_open(hWnd);
- if (ret < 0) { SysMessage (_("Error Opening GPU Plugin (%d)"), ret); return -1; }
- ret = SPU_open(hWnd);
- if (ret < 0) { SysMessage (_("Error Opening SPU Plugin (%d)"), ret); return -1; }
- SPU_registerCallback(SPUirq);
- ret = PAD1_open(hWnd);
- if (ret < 0) { SysMessage (_("Error Opening PAD1 Plugin (%d)"), ret); return -1; }
- PAD1_registerVibration(GPU_visualVibration);
- PAD1_registerCursor(GPU_cursor);
- ret = PAD2_open(hWnd);
- if (ret < 0) { SysMessage (_("Error Opening PAD2 Plugin (%d)"), ret); return -1; }
- PAD2_registerVibration(GPU_visualVibration);
- PAD2_registerCursor(GPU_cursor);
-
- SetCurrentDirectory(PcsxrDir);
- ShowCursor(FALSE);
- return 0;
-}
-
-int OpenPlugins(HWND hWnd, int internaliso) {
- int ret;
-
- while ((ret = _OpenPlugins(hWnd)) == -2) {
- ReleasePlugins();
- LoadMcds(Config.Mcd1, Config.Mcd2);
- if (LoadPlugins() == -1) return -1;
- }
- return ret;
-}
-
-void ClosePlugins() {
- int ret;
-
- // PAD plugins have to be closed first, otherwise some plugins like
- // LilyPad will mess up the window handle and cause crash.
- // Also don't check return value here, as LilyPad uses void.
- PAD1_close();
- PAD2_close();
-
- ret = CDR_close();
- if (ret < 0) { SysMessage (_("Error Closing CDR Plugin")); return; }
- ret = GPU_close();
- if (ret < 0) { SysMessage (_("Error Closing GPU Plugin")); return; }
- ret = SPU_close();
- if (ret < 0) { SysMessage (_("Error Closing SPU Plugin")); return; }
-
- if (Config.UseNet) {
- NET_pause();
- }
-}
-
-void ResetPlugins() {
- int ret;
-
- CDR_shutdown();
- GPU_shutdown();
- SPU_shutdown();
- PAD1_shutdown();
- PAD2_shutdown();
- if (Config.UseNet) NET_shutdown();
-
- ret = CDR_init();
- if (ret != 0) { SysMessage (_("CDRinit error: %d"), ret); return; }
- ret = GPU_init();
- if (ret != 0) { SysMessage (_("GPUinit error: %d"), ret); return; }
- ret = SPU_init();
- if (ret != 0) { SysMessage (_("SPUinit error: %d"), ret); return; }
- ret = PAD1_init(1);
- if (ret != 0) { SysMessage (_("PAD1init error: %d"), ret); return; }
- ret = PAD2_init(2);
- if (ret != 0) { SysMessage (_("PAD2init error: %d"), ret); return; }
- if (Config.UseNet) {
- ret = NET_init();
- if (ret < 0) { SysMessage (_("NETinit error: %d"), ret); return; }
- }
-
- NetOpened = FALSE;
-}
+/* Pcsx - Pc Psx Emulator
+ * Copyright (C) 1999-2003 Pcsx Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <windows.h>
+#include <windowsx.h>
+#include <stdio.h>
+#include "plugin.h"
+#include "plugins.h"
+#include "resource.h"
+#include <time.h>
+#include <stdio.h>
+
+#include "r3000a.h"
+#include "Win32.h"
+#include "NoPic.h"
+#include "misc.h"
+#include "sio.h"
+
+int ShowPic = 0;
+
+extern void LidInterrupt();
+
+void gpuShowPic() {
+ char Text[255];
+ gzFile f;
+
+ if (!ShowPic) {
+ unsigned char *pMem;
+
+ pMem = (unsigned char *) malloc(128*96*3);
+ if (pMem == NULL) return;
+ GetStateFilename(Text, StatesC);
+
+ GPU_freeze(2, (GPUFreeze_t *)&StatesC);
+
+ f = gzopen(Text, "rb");
+ if (f != NULL) {
+ gzseek(f, 32, SEEK_SET); // skip header
+ gzseek(f, sizeof(u32), SEEK_CUR);
+ gzseek(f, sizeof(boolean), SEEK_CUR);
+ gzread(f, pMem, 128*96*3);
+ gzclose(f);
+ } else {
+ memcpy(pMem, NoPic_Image.pixel_data, 128*96*3);
+ DrawNumBorPic(pMem, StatesC+1);
+ }
+ GPU_showScreenPic(pMem);
+
+ free(pMem);
+ ShowPic = 1;
+ } else { GPU_showScreenPic(NULL); ShowPic = 0; }
+}
+
+void GetStateFilename(char *out, int i) {
+ char trimlabel[33];
+ int j;
+
+ strncpy(trimlabel, CdromLabel, 32);
+ trimlabel[32] = 0;
+ for (j=31; j>=0; j--)
+ if (trimlabel[j] == ' ')
+ trimlabel[j] = '\0';
+
+ sprintf(out, "sstates\\%.32s-%.9s.%3.3d", trimlabel, CdromId, i);
+}
+
+void PADhandleKey(int key) {
+ char Text[255];
+ int ret;
+
+ if (Running == 0) return;
+ switch (key) {
+ case 0: break;
+ case VK_F1:
+ GetStateFilename(Text, StatesC);
+ GPU_freeze(2, (GPUFreeze_t *)&StatesC);
+ ret = SaveState(Text);
+ if (ret == 0)
+ sprintf(Text, _("*PCSXR*: Saved State %d"), StatesC+1);
+ else sprintf(Text, _("*PCSXR*: Error Saving State %d"), StatesC+1);
+ GPU_displayText(Text);
+ if (ShowPic) { ShowPic = 0; gpuShowPic(); }
+ break;
+
+ case VK_F2:
+ if (StatesC < 8) StatesC++;
+ else StatesC = 0;
+ GPU_freeze(2, (GPUFreeze_t *)&StatesC);
+ if (ShowPic) { ShowPic = 0; gpuShowPic(); }
+ break;
+
+ case VK_F3:
+ GetStateFilename(Text, StatesC);
+ ret = LoadState(Text);
+ if (ret == 0)
+ sprintf(Text, _("*PCSXR*: Loaded State %d"), StatesC+1);
+ else sprintf(Text, _("*PCSXR*: Error Loading State %d"), StatesC+1);
+ GPU_displayText(Text);
+ break;
+
+ case VK_F4:
+ gpuShowPic();
+ break;
+
+ case VK_F5:
+ Config.Sio ^= 0x1;
+ if (Config.Sio)
+ sprintf(Text, _("*PCSXR*: Sio Irq Always Enabled"));
+ else sprintf(Text, _("*PCSXR*: Sio Irq Not Always Enabled"));
+ GPU_displayText(Text);
+ break;
+
+ case VK_F6:
+ Config.Mdec ^= 0x1;
+ if (Config.Mdec)
+ sprintf(Text, _("*PCSXR*: Black&White Mdecs Only Enabled"));
+ else sprintf(Text, _("*PCSXR*: Black&White Mdecs Only Disabled"));
+ GPU_displayText(Text);
+ break;
+
+ case VK_F7:
+ Config.Xa ^= 0x1;
+ if (Config.Xa == 0)
+ sprintf (Text, _("*PCSXR*: Xa Enabled"));
+ else sprintf (Text, _("*PCSXR*: Xa Disabled"));
+ GPU_displayText(Text);
+ break;
+
+ case VK_F8:
+ GPU_makeSnapshot();
+ return;
+
+ case VK_F9:
+ GPU_displayText(_("*PCSXR*: CdRom Case Opened"));
+ SetCdOpenCaseTime(-1);
+ LidInterrupt();
+ break;
+
+ case VK_F10:
+ GPU_displayText(_("*PCSXR*: CdRom Case Closed"));
+ SetCdOpenCaseTime(0);
+ LidInterrupt();
+ break;
+
+ case VK_F12:
+ SysPrintf("*PCSXR*: CpuReset\n");
+ psxReset();
+ break;
+
+ case VK_ESCAPE:
+ Running = 0;
+ ClosePlugins();
+ SysRunGui();
+ break;
+ }
+}
+
+void CALLBACK SPUirq(void);
+
+char charsTable[4] = { "|/-\\" };
+
+BOOL CALLBACK ConnectDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ char str[256];
+ static int waitState;
+
+ switch(uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("Connecting..."));
+
+ sprintf(str, _("Please wait while connecting... %c\n"), charsTable[waitState]);
+ Static_SetText(GetDlgItem(hW, IDC_CONNECTSTR), str);
+ SetTimer(hW, 0, 100, NULL);
+ return TRUE;
+
+ case WM_TIMER:
+ if (++waitState == 4) waitState = 0;
+ sprintf(str, _("Please wait while connecting... %c\n"), charsTable[waitState]);
+ Static_SetText(GetDlgItem(hW, IDC_CONNECTSTR), str);
+ return TRUE;
+
+/* case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case IDCANCEL:
+ WaitCancel = 1;
+ return TRUE;
+ }*/
+ }
+
+ return FALSE;
+}
+
+#define PARSEPATH(dst, src) \
+ ptr = src + strlen(src); \
+ while (*ptr != '\\' && ptr != src) ptr--; \
+ if (ptr != src) { \
+ strcpy(dst, ptr+1); \
+ }
+
+int _OpenPlugins(HWND hWnd) {
+ int ret;
+
+ GPU_clearDynarec(clearDynarec);
+
+ ret = CDR_open();
+ if (ret < 0) { SysMessage (_("Error Opening CDR Plugin")); return -1; }
+
+ SetCurrentDirectory(PcsxrDir);
+ if (Config.UseNet && !NetOpened) {
+ netInfo info;
+ char path[256];
+
+ strcpy(info.EmuName, "PCSXR " PACKAGE_VERSION);
+ strncpy(info.CdromID, CdromId, 9);
+ strncpy(info.CdromLabel, CdromLabel, 9);
+ info.psxMem = psxM;
+ info.GPU_showScreenPic = GPU_showScreenPic;
+ info.GPU_displayText = GPU_displayText;
+ info.GPU_showScreenPic = GPU_showScreenPic;
+ info.PAD_setSensitive = PAD1_setSensitive;
+ sprintf(path, "%s%s", Config.BiosDir, Config.Bios);
+ strcpy(info.BIOSpath, path);
+ strcpy(info.MCD1path, Config.Mcd1);
+ strcpy(info.MCD2path, Config.Mcd2);
+ sprintf(path, "%s%s", Config.PluginsDir, Config.Gpu);
+ strcpy(info.GPUpath, path);
+ sprintf(path, "%s%s", Config.PluginsDir, Config.Spu);
+ strcpy(info.SPUpath, path);
+ sprintf(path, "%s%s", Config.PluginsDir, Config.Cdr);
+ strcpy(info.CDRpath, path);
+ NET_setInfo(&info);
+
+ ret = NET_open(hWnd);
+ if (ret < 0) {
+ if (ret == -2) {
+ // -2 is returned when something in the info
+ // changed and needs to be synced
+ char *ptr;
+
+ PARSEPATH(Config.Bios, info.BIOSpath);
+ PARSEPATH(Config.Gpu, info.GPUpath);
+ PARSEPATH(Config.Spu, info.SPUpath);
+ PARSEPATH(Config.Cdr, info.CDRpath);
+
+ strcpy(Config.Mcd1, info.MCD1path);
+ strcpy(Config.Mcd2, info.MCD2path);
+ return -2;
+ } else {
+ Config.UseNet = FALSE;
+ }
+ } else {
+ HWND hW = CreateDialog(gApp.hInstance, MAKEINTRESOURCE(IDD_CONNECT), gApp.hWnd, ConnectDlgProc);
+ ShowWindow(hW, SW_SHOW);
+
+ if (NET_queryPlayer() == 1) {
+ if (SendPcsxInfo() == -1) Config.UseNet = FALSE;
+ } else {
+ if (RecvPcsxInfo() == -1) Config.UseNet = FALSE;
+ }
+
+ DestroyWindow(hW);
+ }
+ NetOpened = TRUE;
+ } else if (Config.UseNet) {
+ NET_resume();
+ }
+
+ ret = GPU_open(hWnd);
+ if (ret < 0) { SysMessage (_("Error Opening GPU Plugin (%d)"), ret); return -1; }
+ ret = SPU_open(hWnd);
+ if (ret < 0) { SysMessage (_("Error Opening SPU Plugin (%d)"), ret); return -1; }
+ SPU_registerCallback(SPUirq);
+ ret = PAD1_open(hWnd);
+ if (ret < 0) { SysMessage (_("Error Opening PAD1 Plugin (%d)"), ret); return -1; }
+ PAD1_registerVibration(GPU_visualVibration);
+ PAD1_registerCursor(GPU_cursor);
+ ret = PAD2_open(hWnd);
+ if (ret < 0) { SysMessage (_("Error Opening PAD2 Plugin (%d)"), ret); return -1; }
+ PAD2_registerVibration(GPU_visualVibration);
+ PAD2_registerCursor(GPU_cursor);
+
+ SetCurrentDirectory(PcsxrDir);
+ ShowCursor(FALSE);
+ return 0;
+}
+
+int OpenPlugins(HWND hWnd, int internaliso) {
+ int ret;
+
+ while ((ret = _OpenPlugins(hWnd)) == -2) {
+ ReleasePlugins();
+ LoadMcds(Config.Mcd1, Config.Mcd2);
+ if (LoadPlugins() == -1) return -1;
+ }
+ return ret;
+}
+
+void ClosePlugins() {
+ int ret;
+
+ // PAD plugins have to be closed first, otherwise some plugins like
+ // LilyPad will mess up the window handle and cause crash.
+ // Also don't check return value here, as LilyPad uses void.
+ PAD1_close();
+ PAD2_close();
+
+ ret = CDR_close();
+ if (ret < 0) { SysMessage (_("Error Closing CDR Plugin")); return; }
+ ret = GPU_close();
+ if (ret < 0) { SysMessage (_("Error Closing GPU Plugin")); return; }
+ ret = SPU_close();
+ if (ret < 0) { SysMessage (_("Error Closing SPU Plugin")); return; }
+
+ if (Config.UseNet) {
+ NET_pause();
+ }
+}
+
+void ResetPlugins() {
+ int ret;
+
+ CDR_shutdown();
+ GPU_shutdown();
+ SPU_shutdown();
+ PAD1_shutdown();
+ PAD2_shutdown();
+ if (Config.UseNet) NET_shutdown();
+
+ ret = CDR_init();
+ if (ret != 0) { SysMessage (_("CDRinit error: %d"), ret); return; }
+ ret = GPU_init();
+ if (ret != 0) { SysMessage (_("GPUinit error: %d"), ret); return; }
+ ret = SPU_init();
+ if (ret != 0) { SysMessage (_("SPUinit error: %d"), ret); return; }
+ ret = PAD1_init(1);
+ if (ret != 0) { SysMessage (_("PAD1init error: %d"), ret); return; }
+ ret = PAD2_init(2);
+ if (ret != 0) { SysMessage (_("PAD2init error: %d"), ret); return; }
+ if (Config.UseNet) {
+ ret = NET_init();
+ if (ret < 0) { SysMessage (_("NETinit error: %d"), ret); return; }
+ }
+
+ NetOpened = FALSE;
+}
diff --git a/win32/gui/plugin.h b/win32/gui/plugin.h
index 9cef38fd..9cef38fd 100644..100755
--- a/win32/gui/plugin.h
+++ b/win32/gui/plugin.h
diff --git a/win32/intl/bindtextdom.c b/win32/intl/bindtextdom.c
index 045b86c0..045b86c0 100644..100755
--- a/win32/intl/bindtextdom.c
+++ b/win32/intl/bindtextdom.c
diff --git a/win32/intl/dcgettext.c b/win32/intl/dcgettext.c
index 043f19ed..043f19ed 100644..100755
--- a/win32/intl/dcgettext.c
+++ b/win32/intl/dcgettext.c
diff --git a/win32/intl/dgettext.c b/win32/intl/dgettext.c
index b6975251..b6975251 100644..100755
--- a/win32/intl/dgettext.c
+++ b/win32/intl/dgettext.c
diff --git a/win32/intl/explodename.c b/win32/intl/explodename.c
index 0d55a66d..0d55a66d 100644..100755
--- a/win32/intl/explodename.c
+++ b/win32/intl/explodename.c
diff --git a/win32/intl/finddomain.c b/win32/intl/finddomain.c
index 1c25aa0f..1c25aa0f 100644..100755
--- a/win32/intl/finddomain.c
+++ b/win32/intl/finddomain.c
diff --git a/win32/intl/gettext.c b/win32/intl/gettext.c
index 51f921f7..51f921f7 100644..100755
--- a/win32/intl/gettext.c
+++ b/win32/intl/gettext.c
diff --git a/win32/intl/gettext.h b/win32/intl/gettext.h
index 64bbed2c..64bbed2c 100644..100755
--- a/win32/intl/gettext.h
+++ b/win32/intl/gettext.h
diff --git a/win32/intl/gettextP.h b/win32/intl/gettextP.h
index d403ada7..d403ada7 100644..100755
--- a/win32/intl/gettextP.h
+++ b/win32/intl/gettextP.h
diff --git a/win32/intl/hash-string.h b/win32/intl/hash-string.h
index a21b68ec..a21b68ec 100644..100755
--- a/win32/intl/hash-string.h
+++ b/win32/intl/hash-string.h
diff --git a/win32/intl/intl-compat.c b/win32/intl/intl-compat.c
index 4a405b86..4a405b86 100644..100755
--- a/win32/intl/intl-compat.c
+++ b/win32/intl/intl-compat.c
diff --git a/win32/intl/intlconfig.h b/win32/intl/intlconfig.h
index fa86071e..cc6ce91d 100644..100755
--- a/win32/intl/intlconfig.h
+++ b/win32/intl/intlconfig.h
@@ -1,248 +1,248 @@
-/* config.h. Generated automatically by configure. */
-/* config.h.in. Generated automatically from configure.in by autoheader. */
-/* Special definitions, processed by autoheader.
- Copyright (C) 1995, 1996, 1997 Free Software Foundation.
- Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */
-
-/* Default value for alignment of strings in .mo file. */
-#define DEFAULT_OUTPUT_ALIGNMENT 1
-
-#ifndef PARAMS
-# if __STDC__
-# define PARAMS(args) args
-# else
-# define PARAMS(args) ()
-# endif
-#endif
-
-
-/* Define if using alloca.c. */
-/* #undef C_ALLOCA */
-
-/* Define to empty if the keyword does not work. */
-/* #undef const */
-
-/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
- This function is required for alloca.c support on those systems. */
-/* #undef CRAY_STACKSEG_END */
-
-/* Define if you have alloca, as a function or macro. */
-/* #define HAVE_ALLOCA 1 */
-
-/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
-/* #undef HAVE_ALLOCA_H */
-
-/* Define if you don't have vprintf but do have _doprnt. */
-/* #undef HAVE_DOPRNT */
-
-/* Define if you have a working `mmap' system call. */
-/* #undef HAVE_MMAP */
-
-/* Define if you have the vprintf function. */
-#define HAVE_VPRINTF 1
-
-/* Define as __inline if that's what the C compiler calls it. */
-/* #undef inline */
-
-/* Define to `long' if <sys/types.h> doesn't define. */
-/* #undef off_t */
-
-/* Define if you need to in order for stat and other things to work. */
-/* #undef _POSIX_SOURCE */
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-/* #undef size_t */
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown
- */
-/* #undef STACK_DIRECTION */
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define to the name of the distribution. */
-/* #define PACKAGE "gettext" */
-
-/* Define to the version of the distribution. */
-/* #define VERSION "0.10.35" */
-
-/* Define if <stddef.h> defines ptrdiff_t. */
-#define HAVE_PTRDIFF_T 1
-
-/* Define if your locale.h file contains LC_MESSAGES. */
-/* #undef HAVE_LC_MESSAGES */
-
-/* Define if you have the parse_printf_format function. */
-/* #undef HAVE_PARSE_PRINTF_FORMAT */
-
-/* Define to 1 if NLS is requested. */
-/* #undef ENABLE_NLS */
-
-/* Define as 1 if you have catgets and don't want to use GNU gettext. */
-/* #undef HAVE_CATGETS */
-
-/* Define as 1 if you have gettext and don't want to use GNU gettext. */
-/* #undef HAVE_GETTEXT */
-
-/* Define as 1 if you have the stpcpy function. */
-/* #undef HAVE_STPCPY */
-
-/* Define if you have the __argz_count function. */
-/* #undef HAVE___ARGZ_COUNT */
-
-/* Define if you have the __argz_next function. */
-/* #undef HAVE___ARGZ_NEXT */
-
-/* Define if you have the __argz_stringify function. */
-/* #undef HAVE___ARGZ_STRINGIFY */
-
-/* Define if you have the dcgettext function. */
-/* #undef HAVE_DCGETTEXT */
-
-/* Define if you have the getcwd function. */
-#define HAVE_GETCWD 1
-
-/* Define if you have the getdelim function. */
-/* #undef HAVE_GETDELIM */
-
-/* Define if you have the getline function. */
-/* #undef HAVE_GETLINE */
-
-/* Define if you have the getpagesize function. */
-#define HAVE_GETPAGESIZE 1
-
-/* Define if you have the mblen function. */
-#define HAVE_MBLEN 1
-
-/* Define if you have the memcpy function. */
-#define HAVE_MEMCPY 1
-
-/* Define if you have the memmove function. */
-#define HAVE_MEMMOVE 1
-
-/* Define if you have the memset function. */
-#define HAVE_MEMSET 1
-
-/* Define if you have the munmap function. */
-/* #undef HAVE_MUNMAP */
-
-/* Define if you have the putenv function. */
-#define HAVE_PUTENV 1
-
-/* Define if you have the setenv function. */
-/* #undef HAVE_SETENV */
-
-/* Define if you have the setlocale function. */
-#define HAVE_SETLOCALE 1
-
-/* Define if you have the stpcpy function. */
-/* #undef HAVE_STPCPY */
-
-/* Define if you have the stpncpy function. */
-/* #undef HAVE_STPNCPY */
-
-/* Define if you have the strcasecmp function. */
-/* #define HAVE_STRCASECMP 1 */
-
-/* Define if you have the strchr function. */
-#define HAVE_STRCHR 1
-
-/* Define if you have the strcspn function. */
-#define HAVE_STRCSPN 1
-
-/* Define if you have the strdup function. */
-#define HAVE_STRDUP 1
-
-/* Define if you have the strerror function. */
-#define HAVE_STRERROR 1
-
-/* Define if you have the strncasecmp function. */
-#define HAVE_STRNCASECMP 1
-
-/* Define if you have the strstr function. */
-#define HAVE_STRSTR 1
-
-/* Define if you have the strtoul function. */
-#define HAVE_STRTOUL 1
-
-/* Define if you have the uname function. */
-/* #undef HAVE_UNAME */
-
-/* Define if you have the vasprintf function. */
-/* #undef HAVE_VASPRINTF */
-
-/* Define if you have the <argz.h> header file. */
-/* #undef HAVE_ARGZ_H */
-
-/* Define if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
-/* Define if you have the <locale.h> header file. */
-#define HAVE_LOCALE_H 1
-
-/* Define if you have the <malloc.h> header file. */
-#define HAVE_MALLOC_H 1
-
-/* Define if you have the <nl_types.h> header file. */
-/* #undef HAVE_NL_TYPES_H */
-
-/* Define if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define if you have the <sys/param.h> header file. */
-/* #undef HAVE_SYS_PARAM_H */
-
-/* Define if you have the <unistd.h> header file. */
-/* #define HAVE_UNISTD_H 1 */
-
-/* Define if you have the <values.h> header file. */
-#define HAVE_VALUES_H 1
-
-/* Define if you have the i library (-li). */
-/* #undef HAVE_LIBI */
-
-/* We don't test for the basename function but still want to use the
- version in the libc when compiling for a system using glibc. */
-#ifdef __GNU_LIBRARY__
-# define HAVE_BASENAME 1
-#endif
-
-/* On GNU systems we want to use the extensions. */
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-#endif
-
-
-/* A file name cannot consist of any character possible. INVALID_PATH_CHAR
- contains the characters not allowed. */
-#ifndef MSDOS
-# define INVALID_PATH_CHAR "\1\2\3\4\5\6\7\10\11\12\13\14\15\16\17\20\21\22\23\24\25\26\27\30\31\32\33\34\35\36\37 \177/"
-#else
-/* Something like this for MSDOG. */
-# define INVALID_PATH_CHAR "\1\2\3\4\5\6\7\10\11\12\13\14\15\16\17\20\21\22\23\24\25\26\27\30\31\32\33\34\35\36\37 \177\\:."
-#endif
-
-/* Length from which starting on warnings about too long strings are given.
- Several systems have limits for strings itself, more have problems with
- strings in their tools (important here: gencat). 1024 bytes is a
- conservative limit. Because many translation let the message size grow
- (German translations are always bigger) choose a length < 1024. */
-#define WARN_ID_LEN 900
-
-/* This is the page width for the message_print function. It should
- not be set to more than 79 characters (Emacs users will appreciate
- it). It is used to wrap the msgid and msgstr strings, and also to
- wrap the file position (#:) comments. */
-#define PAGE_WIDTH 79
-
-#define GNULOCALEDIR "./Langs"
-#define LOCALE_ALIAS_PATH GNULOCALEDIR
-
-#ifdef _MSC_VER
-#pragma warning (disable:4996)
-#endif
+/* config.h. Generated automatically by configure. */
+/* config.h.in. Generated automatically from configure.in by autoheader. */
+/* Special definitions, processed by autoheader.
+ Copyright (C) 1995, 1996, 1997 Free Software Foundation.
+ Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */
+
+/* Default value for alignment of strings in .mo file. */
+#define DEFAULT_OUTPUT_ALIGNMENT 1
+
+#ifndef PARAMS
+# if __STDC__
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+
+/* Define if using alloca.c. */
+/* #undef C_ALLOCA */
+
+/* Define to empty if the keyword does not work. */
+/* #undef const */
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
+ This function is required for alloca.c support on those systems. */
+/* #undef CRAY_STACKSEG_END */
+
+/* Define if you have alloca, as a function or macro. */
+/* #define HAVE_ALLOCA 1 */
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
+/* #undef HAVE_ALLOCA_H */
+
+/* Define if you don't have vprintf but do have _doprnt. */
+/* #undef HAVE_DOPRNT */
+
+/* Define if you have a working `mmap' system call. */
+/* #undef HAVE_MMAP */
+
+/* Define if you have the vprintf function. */
+#define HAVE_VPRINTF 1
+
+/* Define as __inline if that's what the C compiler calls it. */
+/* #undef inline */
+
+/* Define to `long' if <sys/types.h> doesn't define. */
+/* #undef off_t */
+
+/* Define if you need to in order for stat and other things to work. */
+/* #undef _POSIX_SOURCE */
+
+/* Define to `unsigned' if <sys/types.h> doesn't define. */
+/* #undef size_t */
+
+/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at run-time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
+ */
+/* #undef STACK_DIRECTION */
+
+/* Define if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to the name of the distribution. */
+/* #define PACKAGE "gettext" */
+
+/* Define to the version of the distribution. */
+/* #define VERSION "0.10.35" */
+
+/* Define if <stddef.h> defines ptrdiff_t. */
+#define HAVE_PTRDIFF_T 1
+
+/* Define if your locale.h file contains LC_MESSAGES. */
+/* #undef HAVE_LC_MESSAGES */
+
+/* Define if you have the parse_printf_format function. */
+/* #undef HAVE_PARSE_PRINTF_FORMAT */
+
+/* Define to 1 if NLS is requested. */
+/* #undef ENABLE_NLS */
+
+/* Define as 1 if you have catgets and don't want to use GNU gettext. */
+/* #undef HAVE_CATGETS */
+
+/* Define as 1 if you have gettext and don't want to use GNU gettext. */
+/* #undef HAVE_GETTEXT */
+
+/* Define as 1 if you have the stpcpy function. */
+/* #undef HAVE_STPCPY */
+
+/* Define if you have the __argz_count function. */
+/* #undef HAVE___ARGZ_COUNT */
+
+/* Define if you have the __argz_next function. */
+/* #undef HAVE___ARGZ_NEXT */
+
+/* Define if you have the __argz_stringify function. */
+/* #undef HAVE___ARGZ_STRINGIFY */
+
+/* Define if you have the dcgettext function. */
+/* #undef HAVE_DCGETTEXT */
+
+/* Define if you have the getcwd function. */
+#define HAVE_GETCWD 1
+
+/* Define if you have the getdelim function. */
+/* #undef HAVE_GETDELIM */
+
+/* Define if you have the getline function. */
+/* #undef HAVE_GETLINE */
+
+/* Define if you have the getpagesize function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define if you have the mblen function. */
+#define HAVE_MBLEN 1
+
+/* Define if you have the memcpy function. */
+#define HAVE_MEMCPY 1
+
+/* Define if you have the memmove function. */
+#define HAVE_MEMMOVE 1
+
+/* Define if you have the memset function. */
+#define HAVE_MEMSET 1
+
+/* Define if you have the munmap function. */
+/* #undef HAVE_MUNMAP */
+
+/* Define if you have the putenv function. */
+#define HAVE_PUTENV 1
+
+/* Define if you have the setenv function. */
+/* #undef HAVE_SETENV */
+
+/* Define if you have the setlocale function. */
+#define HAVE_SETLOCALE 1
+
+/* Define if you have the stpcpy function. */
+/* #undef HAVE_STPCPY */
+
+/* Define if you have the stpncpy function. */
+/* #undef HAVE_STPNCPY */
+
+/* Define if you have the strcasecmp function. */
+/* #define HAVE_STRCASECMP 1 */
+
+/* Define if you have the strchr function. */
+#define HAVE_STRCHR 1
+
+/* Define if you have the strcspn function. */
+#define HAVE_STRCSPN 1
+
+/* Define if you have the strdup function. */
+#define HAVE_STRDUP 1
+
+/* Define if you have the strerror function. */
+#define HAVE_STRERROR 1
+
+/* Define if you have the strncasecmp function. */
+#define HAVE_STRNCASECMP 1
+
+/* Define if you have the strstr function. */
+#define HAVE_STRSTR 1
+
+/* Define if you have the strtoul function. */
+#define HAVE_STRTOUL 1
+
+/* Define if you have the uname function. */
+/* #undef HAVE_UNAME */
+
+/* Define if you have the vasprintf function. */
+/* #undef HAVE_VASPRINTF */
+
+/* Define if you have the <argz.h> header file. */
+/* #undef HAVE_ARGZ_H */
+
+/* Define if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1
+
+/* Define if you have the <malloc.h> header file. */
+#define HAVE_MALLOC_H 1
+
+/* Define if you have the <nl_types.h> header file. */
+/* #undef HAVE_NL_TYPES_H */
+
+/* Define if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define if you have the <sys/param.h> header file. */
+/* #undef HAVE_SYS_PARAM_H */
+
+/* Define if you have the <unistd.h> header file. */
+/* #define HAVE_UNISTD_H 1 */
+
+/* Define if you have the <values.h> header file. */
+#define HAVE_VALUES_H 1
+
+/* Define if you have the i library (-li). */
+/* #undef HAVE_LIBI */
+
+/* We don't test for the basename function but still want to use the
+ version in the libc when compiling for a system using glibc. */
+#ifdef __GNU_LIBRARY__
+# define HAVE_BASENAME 1
+#endif
+
+/* On GNU systems we want to use the extensions. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+
+/* A file name cannot consist of any character possible. INVALID_PATH_CHAR
+ contains the characters not allowed. */
+#ifndef MSDOS
+# define INVALID_PATH_CHAR "\1\2\3\4\5\6\7\10\11\12\13\14\15\16\17\20\21\22\23\24\25\26\27\30\31\32\33\34\35\36\37 \177/"
+#else
+/* Something like this for MSDOG. */
+# define INVALID_PATH_CHAR "\1\2\3\4\5\6\7\10\11\12\13\14\15\16\17\20\21\22\23\24\25\26\27\30\31\32\33\34\35\36\37 \177\\:."
+#endif
+
+/* Length from which starting on warnings about too long strings are given.
+ Several systems have limits for strings itself, more have problems with
+ strings in their tools (important here: gencat). 1024 bytes is a
+ conservative limit. Because many translation let the message size grow
+ (German translations are always bigger) choose a length < 1024. */
+#define WARN_ID_LEN 900
+
+/* This is the page width for the message_print function. It should
+ not be set to more than 79 characters (Emacs users will appreciate
+ it). It is used to wrap the msgid and msgstr strings, and also to
+ wrap the file position (#:) comments. */
+#define PAGE_WIDTH 79
+
+#define GNULOCALEDIR "./Langs"
+#define LOCALE_ALIAS_PATH GNULOCALEDIR
+
+#ifdef _MSC_VER
+#pragma warning (disable:4996)
+#endif
diff --git a/win32/intl/l10nflist.c b/win32/intl/l10nflist.c
index df7128fb..df7128fb 100644..100755
--- a/win32/intl/l10nflist.c
+++ b/win32/intl/l10nflist.c
diff --git a/win32/intl/libgettext.h b/win32/intl/libgettext.h
index f1274bbd..f1274bbd 100644..100755
--- a/win32/intl/libgettext.h
+++ b/win32/intl/libgettext.h
diff --git a/win32/intl/libintl.h b/win32/intl/libintl.h
index 4dea79d1..fb1d3a9a 100644..100755
--- a/win32/intl/libintl.h
+++ b/win32/intl/libintl.h
@@ -1,112 +1,112 @@
-/* This file is part of a Windows32 DLL Interface to:
- GNU gettext - internationalization aids
- Copyright (C) 1996, 1998 Free Software Foundation, Inc.
-
- This file was written by Franco Bez <franco.bez@gmx.de>
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-/* REPLACEMENT FOR ORIGINAL LIBINTL.H for use with Windows32 */
-
-#if !defined(__LIBINTL_H_INCLUDED)
-#define __LIBINTL_H_INCLUDED
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* See if we allready know what we want static or dll linkage or none at all*/
-#if defined DONT_USE_GETTEXT || ( defined USE_SAFE_GETTEXT_DLL && defined USE_GETTEXT_STATIC ) || ( defined USE_GETTEXT_DLL && defined USE_SAFE_GETTEXT_DLL ) || ( defined USE_GETTEXT_DLL && defined USE_GETTEXT_STATIC )
-/* TWO IS HARDLY POSSIBLE */
-#undef USE_GETTEXT_DLL
-#undef USE_GETTEXT_STATIC
-#undef USE_SAFE_GETTEXT_DLL
-#endif /* MORE THAN ONE - OR NONE AT ALL */
-
-#if !defined USE_GETTEXT_DLL && !defined USE_SAFE_GETTEXT_DLL && !defined USE_GETTEXT_STATIC && !defined DONT_USE_GETTEXT
-/* not explicitly defined so try to guess it -
- if GNUC is used - we use static linkage by default
- because at the moment this is the only plattform
- for which a static lib is available
- else we use the DLL built with GNUC */
-# define USE_GETTEXT_STATIC
-#endif /* NONE */
-
-/* NOW ONLY ONE OF
- DONT_USE_GETTEXT , USE_GETTEXT_DLL , USE_SAFE_GETTEXT_DLL , USE_GETTEXT_STATIC
- IS DEFINED */
-
-#if defined USE_GETTEXT_DLL
-/* exported functions in DLL gnu_gettext.dll
- you should link with import library
- -lgnu_gettext (for mingw32) OR gnu_gettext.lib (MSVC) */
-__declspec(dllimport) char *gettext(const char *__msgid);
-__declspec(dllimport) char *dgettext(const char *__domainname,const char *__msgid);
-__declspec(dllimport) char *dcgettext(const char *__domainname,const char *__msgid, int __category);
-__declspec(dllimport) char *textdomain(const char *__domainname);
-__declspec(dllimport) char *bindtextdomain(const char *__domainname,const char *__dirname);
-/* calling _putenv from within the DLL */
-__declspec(dllexport) int gettext_putenv(const char *envstring);
-#endif /* DLL */
-
-#if defined USE_SAFE_GETTEXT_DLL
-/* Uses DLL gnu_gettext.dll ONLY if present, otherwise NO translation will take place
- you should link with "safe_gettext_dll.o -lstdc++" see README for safe_gettext_dll for Details */
-/* The safe gettext functions */
-extern char *gettext(const char *szMsgId);
-extern char *dgettext(const char *szDomain,const char *szMsgId);
-extern char *dcgettext(const char *szDomain,const char *szMsgId,int iCategory);
-extern char *textdomain(const char *szDomain);
-extern char *bindtextdomain(const char *szDomain,const char *szDirectory);
-/* calling _putenv from within the DLL */
-extern int gettext_putenv(const char *envstring);
-#endif /* SAFE DLL */
-
-#if defined USE_GETTEXT_STATIC
-/* exported functions in static library libintl.a
- and supporting macros
- you should link with -lintl (mingw32) */
-extern char *gettext__(const char *__msgid);
-extern char *dgettext__(const char *__domainname,const char *__msgid);
-extern char *dcgettext__(const char *__domainname,const char *__msgid, int __category);
-extern char *textdomain__(const char *__domainname);
-extern char *bindtextdomain__(const char *__domainname,const char *__dirname);
-#define gettext(szMsgId) gettext__(szMsgId)
-#define dgettext(szDomain,szMsgId) dgettext__(szDomain,szMsgId)
-#define dcgettext(szDomain,szMsgId,iCategory) dcgettext__(szDomain,szMsgId,iCategory)
-#define textdomain(szDomain) textdomain__(szDomain)
-#define bindtextdomain(szDomain,szDirectory) bindtextdomain__(szDomain,szDirectory)
-// dummy - for static linkage - calling _putenv from within the DLL
-#define gettext_putenv(a) _putenv(a)
-#endif /* STATIC */
-
-#if defined DONT_USE_GETTEXT
-/* DON'T USE GETTEXT AT ALL
- MAKROS TO MAKE CODE COMPILE WELL, BUT GETTEXT WILL NOT BE USESD
-*/
-# define gettext(Msgid) (Msgid)
-# define dgettext(Domainname, Msgid) (Msgid)
-# define dcgettext(Domainname, Msgid, Category) (Msgid)
-# define textdomain(Domainname) ((char *) Domainname)
-# define bindtextdomain(Domainname, Dirname) ((char *) Dirname)
-// dummy - for static linkage - calling _putenv from within the DLL
-# define gettext_putenv(a) _putenv(a)
-#endif /* DON'T USE AT ALL */
-
-#if defined(__cplusplus)
-} /* extern "C" */
-#endif
-
-#endif /*!defined(__LIBINTL_H_INCLUDED)*/
+/* This file is part of a Windows32 DLL Interface to:
+ GNU gettext - internationalization aids
+ Copyright (C) 1996, 1998 Free Software Foundation, Inc.
+
+ This file was written by Franco Bez <franco.bez@gmx.de>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+
+/* REPLACEMENT FOR ORIGINAL LIBINTL.H for use with Windows32 */
+
+#if !defined(__LIBINTL_H_INCLUDED)
+#define __LIBINTL_H_INCLUDED
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+/* See if we allready know what we want static or dll linkage or none at all*/
+#if defined DONT_USE_GETTEXT || ( defined USE_SAFE_GETTEXT_DLL && defined USE_GETTEXT_STATIC ) || ( defined USE_GETTEXT_DLL && defined USE_SAFE_GETTEXT_DLL ) || ( defined USE_GETTEXT_DLL && defined USE_GETTEXT_STATIC )
+/* TWO IS HARDLY POSSIBLE */
+#undef USE_GETTEXT_DLL
+#undef USE_GETTEXT_STATIC
+#undef USE_SAFE_GETTEXT_DLL
+#endif /* MORE THAN ONE - OR NONE AT ALL */
+
+#if !defined USE_GETTEXT_DLL && !defined USE_SAFE_GETTEXT_DLL && !defined USE_GETTEXT_STATIC && !defined DONT_USE_GETTEXT
+/* not explicitly defined so try to guess it -
+ if GNUC is used - we use static linkage by default
+ because at the moment this is the only plattform
+ for which a static lib is available
+ else we use the DLL built with GNUC */
+# define USE_GETTEXT_STATIC
+#endif /* NONE */
+
+/* NOW ONLY ONE OF
+ DONT_USE_GETTEXT , USE_GETTEXT_DLL , USE_SAFE_GETTEXT_DLL , USE_GETTEXT_STATIC
+ IS DEFINED */
+
+#if defined USE_GETTEXT_DLL
+/* exported functions in DLL gnu_gettext.dll
+ you should link with import library
+ -lgnu_gettext (for mingw32) OR gnu_gettext.lib (MSVC) */
+__declspec(dllimport) char *gettext(const char *__msgid);
+__declspec(dllimport) char *dgettext(const char *__domainname,const char *__msgid);
+__declspec(dllimport) char *dcgettext(const char *__domainname,const char *__msgid, int __category);
+__declspec(dllimport) char *textdomain(const char *__domainname);
+__declspec(dllimport) char *bindtextdomain(const char *__domainname,const char *__dirname);
+/* calling _putenv from within the DLL */
+__declspec(dllexport) int gettext_putenv(const char *envstring);
+#endif /* DLL */
+
+#if defined USE_SAFE_GETTEXT_DLL
+/* Uses DLL gnu_gettext.dll ONLY if present, otherwise NO translation will take place
+ you should link with "safe_gettext_dll.o -lstdc++" see README for safe_gettext_dll for Details */
+/* The safe gettext functions */
+extern char *gettext(const char *szMsgId);
+extern char *dgettext(const char *szDomain,const char *szMsgId);
+extern char *dcgettext(const char *szDomain,const char *szMsgId,int iCategory);
+extern char *textdomain(const char *szDomain);
+extern char *bindtextdomain(const char *szDomain,const char *szDirectory);
+/* calling _putenv from within the DLL */
+extern int gettext_putenv(const char *envstring);
+#endif /* SAFE DLL */
+
+#if defined USE_GETTEXT_STATIC
+/* exported functions in static library libintl.a
+ and supporting macros
+ you should link with -lintl (mingw32) */
+extern char *gettext__(const char *__msgid);
+extern char *dgettext__(const char *__domainname,const char *__msgid);
+extern char *dcgettext__(const char *__domainname,const char *__msgid, int __category);
+extern char *textdomain__(const char *__domainname);
+extern char *bindtextdomain__(const char *__domainname,const char *__dirname);
+#define gettext(szMsgId) gettext__(szMsgId)
+#define dgettext(szDomain,szMsgId) dgettext__(szDomain,szMsgId)
+#define dcgettext(szDomain,szMsgId,iCategory) dcgettext__(szDomain,szMsgId,iCategory)
+#define textdomain(szDomain) textdomain__(szDomain)
+#define bindtextdomain(szDomain,szDirectory) bindtextdomain__(szDomain,szDirectory)
+// dummy - for static linkage - calling _putenv from within the DLL
+#define gettext_putenv(a) _putenv(a)
+#endif /* STATIC */
+
+#if defined DONT_USE_GETTEXT
+/* DON'T USE GETTEXT AT ALL
+ MAKROS TO MAKE CODE COMPILE WELL, BUT GETTEXT WILL NOT BE USESD
+*/
+# define gettext(Msgid) (Msgid)
+# define dgettext(Domainname, Msgid) (Msgid)
+# define dcgettext(Domainname, Msgid, Category) (Msgid)
+# define textdomain(Domainname) ((char *) Domainname)
+# define bindtextdomain(Domainname, Dirname) ((char *) Dirname)
+// dummy - for static linkage - calling _putenv from within the DLL
+# define gettext_putenv(a) _putenv(a)
+#endif /* DON'T USE AT ALL */
+
+#if defined(__cplusplus)
+} /* extern "C" */
+#endif
+
+#endif /*!defined(__LIBINTL_H_INCLUDED)*/
diff --git a/win32/intl/loadinfo.h b/win32/intl/loadinfo.h
index 2af57c32..2af57c32 100644..100755
--- a/win32/intl/loadinfo.h
+++ b/win32/intl/loadinfo.h
diff --git a/win32/intl/loadmsgcat.c b/win32/intl/loadmsgcat.c
index 4874ef1e..cdc0dd5e 100644..100755
--- a/win32/intl/loadmsgcat.c
+++ b/win32/intl/loadmsgcat.c
@@ -1,227 +1,227 @@
-/* Load needed message catalogs.
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-#include "intlconfig.h"
-
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#endif
-
-#if defined HAVE_UNISTD_H || defined _LIBC
-# include <unistd.h>
-#endif
-
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC
-# include <sys/mman.h>
-#endif
-
-#ifdef _WIN32
-#include <io.h>
-#ifdef _MSC_VER
-#pragma warning (disable:4018)
-#endif
-#endif
-
-#include "gettext.h"
-#include "gettextP.h"
-
-/* @@ end of prolog @@ */
-
-#ifdef _LIBC
-/* Rename the non ISO C functions. This is required by the standard
- because some ISO C functions will require linking with this object
- file and the name space must not be polluted. */
-# define open __open
-# define close __close
-# define read __read
-# define mmap __mmap
-# define munmap __munmap
-#endif
-
-/* We need a sign, whether a new catalog was loaded, which can be associated
- with all translations. This is important if the translations are
- cached by one of GCC's features. */
-int _nl_msg_cat_cntr = 0;
-
-
-/* Load the message catalogs specified by FILENAME. If it is no valid
- message catalog do nothing. */
-void
-internal_function
-_nl_load_domain (domain_file)
- struct loaded_l10nfile *domain_file;
-{
- int fd;
- size_t size;
- struct stat st;
- struct mo_file_header *data = (struct mo_file_header *) -1;
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- int use_mmap = 0;
-#endif
- struct loaded_domain *domain;
-
- domain_file->decided = 1;
- domain_file->data = NULL;
-
- /* If the record does not represent a valid locale the FILENAME
- might be NULL. This can happen when according to the given
- specification the locale file name is different for XPG and CEN
- syntax. */
- if (domain_file->filename == NULL)
- return;
-
- /* Try to open the addressed file. */
- fd = open (domain_file->filename, O_RDONLY | O_BINARY); /*FRANCO - binary*/
- if (fd == -1)
- return;
-
- /* We must know about the size of the file. */
- if (fstat (fd, &st) != 0
- || (size = (size_t) st.st_size) != st.st_size
- || size < sizeof (struct mo_file_header))
- {
- /* Something went wrong. */
- close (fd);
- return;
- }
-
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- /* Now we are ready to load the file. If mmap() is available we try
- this first. If not available or it failed we try to load it. */
- data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
- MAP_PRIVATE, fd, 0);
-
- if (data != (struct mo_file_header *) -1)
- {
- /* mmap() call was successful. */
- close (fd);
- use_mmap = 1;
- }
-#endif
-
- /* If the data is not yet available (i.e. mmap'ed) we try to load
- it manually. */
- if (data == (struct mo_file_header *) -1)
- {
- size_t to_read;
- char *read_ptr;
-
- data = (struct mo_file_header *) malloc (size);
- if (data == NULL)
- return;
-
- to_read = size;
- read_ptr = (char *) data;
- do
- {
- long int nb = (long int) read (fd, read_ptr, to_read);
- if (nb == -1)
- {
- close (fd);
- return;
- }
-
- read_ptr += nb;
- to_read -= nb;
- }
- while (to_read > 0);
-
- close (fd);
- }
-
- /* Using the magic number we can test whether it really is a message
- catalog file. */
- if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED)
- {
- /* The magic number is wrong: not a message catalog file. */
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- if (use_mmap)
- munmap ((caddr_t) data, size);
- else
-#endif
- free (data);
- return;
- }
-
- domain_file->data
- = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
- if (domain_file->data == NULL)
- return;
-
- domain = (struct loaded_domain *) domain_file->data;
- domain->data = (char *) data;
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- domain->use_mmap = use_mmap;
-#endif
- domain->mmap_size = size;
- domain->must_swap = data->magic != _MAGIC;
-
- /* Fill in the information about the available tables. */
- switch (W (domain->must_swap, data->revision))
- {
- case 0:
- domain->nstrings = W (domain->must_swap, data->nstrings);
- domain->orig_tab = (struct string_desc *)
- ((char *) data + W (domain->must_swap, data->orig_tab_offset));
- domain->trans_tab = (struct string_desc *)
- ((char *) data + W (domain->must_swap, data->trans_tab_offset));
- domain->hash_size = W (domain->must_swap, data->hash_tab_size);
- domain->hash_tab = (nls_uint32 *)
- ((char *) data + W (domain->must_swap, data->hash_tab_offset));
- break;
- default:
- /* This is an illegal revision. */
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- if (use_mmap)
- munmap ((caddr_t) data, size);
- else
-#endif
- free (data);
- free (domain);
- domain_file->data = NULL;
- return;
- }
-
- /* Show that one domain is changed. This might make some cached
- translations invalid. */
- ++_nl_msg_cat_cntr;
-}
-
-
-#ifdef _LIBC
-void
-internal_function
-_nl_unload_domain (domain)
- struct loaded_domain *domain;
-{
- if (domain->use_mmap)
- munmap ((caddr_t) domain->data, domain->mmap_size);
- else
- free ((void *) domain->data);
-
- free (domain);
-}
-#endif
+/* Load needed message catalogs.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+
+#include "intlconfig.h"
+
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#endif
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC
+# include <sys/mman.h>
+#endif
+
+#ifdef _WIN32
+#include <io.h>
+#ifdef _MSC_VER
+#pragma warning (disable:4018)
+#endif
+#endif
+
+#include "gettext.h"
+#include "gettextP.h"
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ISO C functions. This is required by the standard
+ because some ISO C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define open __open
+# define close __close
+# define read __read
+# define mmap __mmap
+# define munmap __munmap
+#endif
+
+/* We need a sign, whether a new catalog was loaded, which can be associated
+ with all translations. This is important if the translations are
+ cached by one of GCC's features. */
+int _nl_msg_cat_cntr = 0;
+
+
+/* Load the message catalogs specified by FILENAME. If it is no valid
+ message catalog do nothing. */
+void
+internal_function
+_nl_load_domain (domain_file)
+ struct loaded_l10nfile *domain_file;
+{
+ int fd;
+ size_t size;
+ struct stat st;
+ struct mo_file_header *data = (struct mo_file_header *) -1;
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ int use_mmap = 0;
+#endif
+ struct loaded_domain *domain;
+
+ domain_file->decided = 1;
+ domain_file->data = NULL;
+
+ /* If the record does not represent a valid locale the FILENAME
+ might be NULL. This can happen when according to the given
+ specification the locale file name is different for XPG and CEN
+ syntax. */
+ if (domain_file->filename == NULL)
+ return;
+
+ /* Try to open the addressed file. */
+ fd = open (domain_file->filename, O_RDONLY | O_BINARY); /*FRANCO - binary*/
+ if (fd == -1)
+ return;
+
+ /* We must know about the size of the file. */
+ if (fstat (fd, &st) != 0
+ || (size = (size_t) st.st_size) != st.st_size
+ || size < sizeof (struct mo_file_header))
+ {
+ /* Something went wrong. */
+ close (fd);
+ return;
+ }
+
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ /* Now we are ready to load the file. If mmap() is available we try
+ this first. If not available or it failed we try to load it. */
+ data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
+ MAP_PRIVATE, fd, 0);
+
+ if (data != (struct mo_file_header *) -1)
+ {
+ /* mmap() call was successful. */
+ close (fd);
+ use_mmap = 1;
+ }
+#endif
+
+ /* If the data is not yet available (i.e. mmap'ed) we try to load
+ it manually. */
+ if (data == (struct mo_file_header *) -1)
+ {
+ size_t to_read;
+ char *read_ptr;
+
+ data = (struct mo_file_header *) malloc (size);
+ if (data == NULL)
+ return;
+
+ to_read = size;
+ read_ptr = (char *) data;
+ do
+ {
+ long int nb = (long int) read (fd, read_ptr, to_read);
+ if (nb == -1)
+ {
+ close (fd);
+ return;
+ }
+
+ read_ptr += nb;
+ to_read -= nb;
+ }
+ while (to_read > 0);
+
+ close (fd);
+ }
+
+ /* Using the magic number we can test whether it really is a message
+ catalog file. */
+ if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED)
+ {
+ /* The magic number is wrong: not a message catalog file. */
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ if (use_mmap)
+ munmap ((caddr_t) data, size);
+ else
+#endif
+ free (data);
+ return;
+ }
+
+ domain_file->data
+ = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
+ if (domain_file->data == NULL)
+ return;
+
+ domain = (struct loaded_domain *) domain_file->data;
+ domain->data = (char *) data;
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ domain->use_mmap = use_mmap;
+#endif
+ domain->mmap_size = size;
+ domain->must_swap = data->magic != _MAGIC;
+
+ /* Fill in the information about the available tables. */
+ switch (W (domain->must_swap, data->revision))
+ {
+ case 0:
+ domain->nstrings = W (domain->must_swap, data->nstrings);
+ domain->orig_tab = (struct string_desc *)
+ ((char *) data + W (domain->must_swap, data->orig_tab_offset));
+ domain->trans_tab = (struct string_desc *)
+ ((char *) data + W (domain->must_swap, data->trans_tab_offset));
+ domain->hash_size = W (domain->must_swap, data->hash_tab_size);
+ domain->hash_tab = (nls_uint32 *)
+ ((char *) data + W (domain->must_swap, data->hash_tab_offset));
+ break;
+ default:
+ /* This is an illegal revision. */
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ if (use_mmap)
+ munmap ((caddr_t) data, size);
+ else
+#endif
+ free (data);
+ free (domain);
+ domain_file->data = NULL;
+ return;
+ }
+
+ /* Show that one domain is changed. This might make some cached
+ translations invalid. */
+ ++_nl_msg_cat_cntr;
+}
+
+
+#ifdef _LIBC
+void
+internal_function
+_nl_unload_domain (domain)
+ struct loaded_domain *domain;
+{
+ if (domain->use_mmap)
+ munmap ((caddr_t) domain->data, domain->mmap_size);
+ else
+ free ((void *) domain->data);
+
+ free (domain);
+}
+#endif
diff --git a/win32/intl/localealias.c b/win32/intl/localealias.c
index 63619ab6..0841b7b9 100644..100755
--- a/win32/intl/localealias.c
+++ b/win32/intl/localealias.c
@@ -1,426 +1,426 @@
-/* Handle aliases for locale names.
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-#include "intlconfig.h"
-
-#include <ctype.h>
-#include <stdio.h>
-#include <sys/types.h>
-
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-# define HAVE_ALLOCA 1
-#else
-# if defined HAVE_ALLOCA_H || defined _LIBC
-# include <alloca.h>
-# else
-# ifdef _AIX
- #pragma alloca
-# else
-# ifndef alloca
-char *alloca ();
-# endif
-# endif
-# endif
-#endif
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#else
-char *getenv ();
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# else
-void free ();
-# endif
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-# endif
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
-#if !HAVE_STRCHR && !defined _LIBC
-# ifndef strchr
-# define strchr index
-# endif
-#endif
-
-#include "gettext.h"
-#include "gettextP.h"
-
-#ifdef _MSC_VER
-#pragma warning (disable:4113)
-#endif
-
-/* @@ end of prolog @@ */
-
-#ifdef _LIBC
-/* Rename the non ANSI C functions. This is required by the standard
- because some ANSI C functions will require linking with this object
- file and the name space must not be polluted. */
-# define strcasecmp __strcasecmp
-
-# define mempcpy __mempcpy
-# define HAVE_MEMPCPY 1
-
-/* We need locking here since we can be called from different places. */
-# include <bits/libc-lock.h>
-
-__libc_lock_define_initialized (static, lock);
-#endif
-
-
-/* For those loosing systems which don't have `alloca' we have to add
- some additional code emulating it. */
-#ifdef HAVE_ALLOCA
-/* Nothing has to be done. */
-# define ADD_BLOCK(list, address) /* nothing */
-# define FREE_BLOCKS(list) /* nothing */
-#else
-struct block_list
-{
- void *address;
- struct block_list *next;
-};
-# define ADD_BLOCK(list, addr) \
- do { \
- struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
- /* If we cannot get a free block we cannot add the new element to \
- the list. */ \
- if (newp != NULL) { \
- newp->address = (addr); \
- newp->next = (list); \
- (list) = newp; \
- } \
- } while (0)
-# define FREE_BLOCKS(list) \
- do { \
- while (list != NULL) { \
- struct block_list *old = list; \
- list = list->next; \
- free (old); \
- } \
- } while (0)
-# undef alloca
-# define alloca(size) (malloc (size))
-#endif /* have alloca */
-
-
-struct alias_map
-{
- const char *alias;
- const char *value;
-};
-
-
-static char *string_space = NULL;
-static size_t string_space_act = 0;
-static size_t string_space_max = 0;
-static struct alias_map *map;
-static size_t nmap = 0;
-static size_t maxmap = 0;
-
-
-/* Prototypes for local functions. */
-static size_t read_alias_file PARAMS ((const char *fname, int fname_len))
- internal_function;
-static void extend_alias_table PARAMS ((void));
-static int alias_compare PARAMS ((const struct alias_map *map1,
- const struct alias_map *map2));
-
-
-const char *
-_nl_expand_alias (name)
- const char *name;
-{
- static const char *locale_alias_path = LOCALE_ALIAS_PATH;
- struct alias_map *retval;
- const char *result = NULL;
- size_t added;
-
-#ifdef _LIBC
- __libc_lock_lock (lock);
-#endif
-
- do
- {
- struct alias_map item;
-
- item.alias = name;
-
- if (nmap > 0)
- retval = (struct alias_map *) bsearch (&item, map, nmap,
- sizeof (struct alias_map),
- (int (*) PARAMS ((const void *,
- const void *))
- ) alias_compare);
- else
- retval = NULL;
-
- /* We really found an alias. Return the value. */
- if (retval != NULL)
- {
- result = retval->value;
- break;
- }
-
- /* Perhaps we can find another alias file. */
- added = 0;
- while (added == 0 && locale_alias_path[0] != '\0')
- {
- const char *start;
-
- while (locale_alias_path[0] == ';')/*FRANCO changed : to ; for win32*/
- ++locale_alias_path;
- start = locale_alias_path;
-
- while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ';')/*FRANCO changed : to ; for win32*/
- ++locale_alias_path;
-
- if (start < locale_alias_path)
- added = read_alias_file (start, locale_alias_path - start);
- }
- }
- while (added != 0);
-
-#ifdef _LIBC
- __libc_lock_unlock (lock);
-#endif
-
- return result;
-}
-
-
-static size_t
-internal_function
-read_alias_file (fname, fname_len)
- const char *fname;
- int fname_len;
-{
-#ifndef HAVE_ALLOCA
- struct block_list *block_list = NULL;
-#endif
- FILE *fp;
- char *full_fname;
- size_t added;
- static const char aliasfile[] = "/locale.alias";
-
- full_fname = (char *) alloca (fname_len + sizeof aliasfile);
- ADD_BLOCK (block_list, full_fname);
-#ifdef HAVE_MEMPCPY
- mempcpy (mempcpy (full_fname, fname, fname_len),
- aliasfile, sizeof aliasfile);
-#else
- memcpy (full_fname, fname, fname_len);
- memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
-#endif
-
- fp = fopen (full_fname, "r");
- if (fp == NULL)
- {
- FREE_BLOCKS (block_list);
- return 0;
- }
-
- added = 0;
- while (!feof (fp))
- {
- /* It is a reasonable approach to use a fix buffer here because
- a) we are only interested in the first two fields
- b) these fields must be usable as file names and so must not
- be that long
- */
- unsigned char buf[BUFSIZ];
- unsigned char *alias;
- unsigned char *value;
- unsigned char *cp;
-
- if (fgets (buf, sizeof buf, fp) == NULL)
- /* EOF reached. */
- break;
-
- /* Possibly not the whole line fits into the buffer. Ignore
- the rest of the line. */
- if (strchr (buf, '\n') == NULL)
- {
- char altbuf[BUFSIZ];
- do
- if (fgets (altbuf, sizeof altbuf, fp) == NULL)
- /* Make sure the inner loop will be left. The outer loop
- will exit at the `feof' test. */
- break;
- while (strchr (altbuf, '\n') == NULL);
- }
-
- cp = buf;
- /* Ignore leading white space. */
- while (isspace (cp[0]))
- ++cp;
-
- /* A leading '#' signals a comment line. */
- if (cp[0] != '\0' && cp[0] != '#')
- {
- alias = cp++;
- while (cp[0] != '\0' && !isspace (cp[0]))
- ++cp;
- /* Terminate alias name. */
- if (cp[0] != '\0')
- *cp++ = '\0';
-
- /* Now look for the beginning of the value. */
- while (isspace (cp[0]))
- ++cp;
-
- if (cp[0] != '\0')
- {
- size_t alias_len;
- size_t value_len;
-
- value = cp++;
- while (cp[0] != '\0' && !isspace (cp[0]))
- ++cp;
- /* Terminate value. */
- if (cp[0] == '\n')
- {
- /* This has to be done to make the following test
- for the end of line possible. We are looking for
- the terminating '\n' which do not overwrite here. */
- *cp++ = '\0';
- *cp = '\n';
- }
- else if (cp[0] != '\0')
- *cp++ = '\0';
-
- if (nmap >= maxmap)
- extend_alias_table ();
-
- alias_len = strlen (alias) + 1;
- value_len = strlen (value) + 1;
-
- if (string_space_act + alias_len + value_len > string_space_max)
- {
- /* Increase size of memory pool. */
- size_t new_size = (string_space_max
- + (alias_len + value_len > 1024
- ? alias_len + value_len : 1024));
- char *new_pool = (char *) realloc (string_space, new_size);
- if (new_pool == NULL)
- {
- FREE_BLOCKS (block_list);
- return added;
- }
- string_space = new_pool;
- string_space_max = new_size;
- }
-
- map[nmap].alias = memcpy (&string_space[string_space_act],
- alias, alias_len);
- string_space_act += alias_len;
-
- map[nmap].value = memcpy (&string_space[string_space_act],
- value, value_len);
- string_space_act += value_len;
-
- ++nmap;
- ++added;
- }
- }
- }
-
- /* Should we test for ferror()? I think we have to silently ignore
- errors. --drepper */
- fclose (fp);
-
- if (added > 0)
- qsort (map, nmap, sizeof (struct alias_map),
- (int (*) PARAMS ((const void *, const void *))) alias_compare);
-
- FREE_BLOCKS (block_list);
- return added;
-}
-
-
-static void
-extend_alias_table ()
-{
- size_t new_size;
- struct alias_map *new_map;
-
- new_size = maxmap == 0 ? 100 : 2 * maxmap;
- new_map = (struct alias_map *) realloc (map, (new_size
- * sizeof (struct alias_map)));
- if (new_map == NULL)
- /* Simply don't extend: we don't have any more core. */
- return;
-
- map = new_map;
- maxmap = new_size;
-}
-
-
-#ifdef _LIBC
-static void __attribute__ ((unused))
-free_mem (void)
-{
- if (string_space != NULL)
- free (string_space);
- if (map != NULL)
- free (map);
-}
-text_set_element (__libc_subfreeres, free_mem);
-#endif
-
-
-static int
-alias_compare (map1, map2)
- const struct alias_map *map1;
- const struct alias_map *map2;
-{
-#if defined _LIBC || defined HAVE_STRCASECMP
- return strcasecmp (map1->alias, map2->alias);
-#else
- const unsigned char *p1 = (const unsigned char *) map1->alias;
- const unsigned char *p2 = (const unsigned char *) map2->alias;
- unsigned char c1, c2;
-
- if (p1 == p2)
- return 0;
-
- do
- {
- /* I know this seems to be odd but the tolower() function in
- some systems libc cannot handle nonalpha characters. */
- c1 = isupper (*p1) ? tolower (*p1) : *p1;
- c2 = isupper (*p2) ? tolower (*p2) : *p2;
- if (c1 == '\0')
- break;
- ++p1;
- ++p2;
- }
- while (c1 == c2);
-
- return c1 - c2;
-#endif
-}
+/* Handle aliases for locale names.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+
+#include "intlconfig.h"
+
+#include <ctype.h>
+#include <stdio.h>
+#include <sys/types.h>
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+#endif
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#else
+char *getenv ();
+# ifdef HAVE_MALLOC_H
+# include <malloc.h>
+# else
+void free ();
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+# endif
+# include <string.h>
+#else
+# include <strings.h>
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#include "gettext.h"
+#include "gettextP.h"
+
+#ifdef _MSC_VER
+#pragma warning (disable:4113)
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define strcasecmp __strcasecmp
+
+# define mempcpy __mempcpy
+# define HAVE_MEMPCPY 1
+
+/* We need locking here since we can be called from different places. */
+# include <bits/libc-lock.h>
+
+__libc_lock_define_initialized (static, lock);
+#endif
+
+
+/* For those loosing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+/* Nothing has to be done. */
+# define ADD_BLOCK(list, address) /* nothing */
+# define FREE_BLOCKS(list) /* nothing */
+#else
+struct block_list
+{
+ void *address;
+ struct block_list *next;
+};
+# define ADD_BLOCK(list, addr) \
+ do { \
+ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
+ /* If we cannot get a free block we cannot add the new element to \
+ the list. */ \
+ if (newp != NULL) { \
+ newp->address = (addr); \
+ newp->next = (list); \
+ (list) = newp; \
+ } \
+ } while (0)
+# define FREE_BLOCKS(list) \
+ do { \
+ while (list != NULL) { \
+ struct block_list *old = list; \
+ list = list->next; \
+ free (old); \
+ } \
+ } while (0)
+# undef alloca
+# define alloca(size) (malloc (size))
+#endif /* have alloca */
+
+
+struct alias_map
+{
+ const char *alias;
+ const char *value;
+};
+
+
+static char *string_space = NULL;
+static size_t string_space_act = 0;
+static size_t string_space_max = 0;
+static struct alias_map *map;
+static size_t nmap = 0;
+static size_t maxmap = 0;
+
+
+/* Prototypes for local functions. */
+static size_t read_alias_file PARAMS ((const char *fname, int fname_len))
+ internal_function;
+static void extend_alias_table PARAMS ((void));
+static int alias_compare PARAMS ((const struct alias_map *map1,
+ const struct alias_map *map2));
+
+
+const char *
+_nl_expand_alias (name)
+ const char *name;
+{
+ static const char *locale_alias_path = LOCALE_ALIAS_PATH;
+ struct alias_map *retval;
+ const char *result = NULL;
+ size_t added;
+
+#ifdef _LIBC
+ __libc_lock_lock (lock);
+#endif
+
+ do
+ {
+ struct alias_map item;
+
+ item.alias = name;
+
+ if (nmap > 0)
+ retval = (struct alias_map *) bsearch (&item, map, nmap,
+ sizeof (struct alias_map),
+ (int (*) PARAMS ((const void *,
+ const void *))
+ ) alias_compare);
+ else
+ retval = NULL;
+
+ /* We really found an alias. Return the value. */
+ if (retval != NULL)
+ {
+ result = retval->value;
+ break;
+ }
+
+ /* Perhaps we can find another alias file. */
+ added = 0;
+ while (added == 0 && locale_alias_path[0] != '\0')
+ {
+ const char *start;
+
+ while (locale_alias_path[0] == ';')/*FRANCO changed : to ; for win32*/
+ ++locale_alias_path;
+ start = locale_alias_path;
+
+ while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ';')/*FRANCO changed : to ; for win32*/
+ ++locale_alias_path;
+
+ if (start < locale_alias_path)
+ added = read_alias_file (start, locale_alias_path - start);
+ }
+ }
+ while (added != 0);
+
+#ifdef _LIBC
+ __libc_lock_unlock (lock);
+#endif
+
+ return result;
+}
+
+
+static size_t
+internal_function
+read_alias_file (fname, fname_len)
+ const char *fname;
+ int fname_len;
+{
+#ifndef HAVE_ALLOCA
+ struct block_list *block_list = NULL;
+#endif
+ FILE *fp;
+ char *full_fname;
+ size_t added;
+ static const char aliasfile[] = "/locale.alias";
+
+ full_fname = (char *) alloca (fname_len + sizeof aliasfile);
+ ADD_BLOCK (block_list, full_fname);
+#ifdef HAVE_MEMPCPY
+ mempcpy (mempcpy (full_fname, fname, fname_len),
+ aliasfile, sizeof aliasfile);
+#else
+ memcpy (full_fname, fname, fname_len);
+ memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
+#endif
+
+ fp = fopen (full_fname, "r");
+ if (fp == NULL)
+ {
+ FREE_BLOCKS (block_list);
+ return 0;
+ }
+
+ added = 0;
+ while (!feof (fp))
+ {
+ /* It is a reasonable approach to use a fix buffer here because
+ a) we are only interested in the first two fields
+ b) these fields must be usable as file names and so must not
+ be that long
+ */
+ unsigned char buf[BUFSIZ];
+ unsigned char *alias;
+ unsigned char *value;
+ unsigned char *cp;
+
+ if (fgets (buf, sizeof buf, fp) == NULL)
+ /* EOF reached. */
+ break;
+
+ /* Possibly not the whole line fits into the buffer. Ignore
+ the rest of the line. */
+ if (strchr (buf, '\n') == NULL)
+ {
+ char altbuf[BUFSIZ];
+ do
+ if (fgets (altbuf, sizeof altbuf, fp) == NULL)
+ /* Make sure the inner loop will be left. The outer loop
+ will exit at the `feof' test. */
+ break;
+ while (strchr (altbuf, '\n') == NULL);
+ }
+
+ cp = buf;
+ /* Ignore leading white space. */
+ while (isspace (cp[0]))
+ ++cp;
+
+ /* A leading '#' signals a comment line. */
+ if (cp[0] != '\0' && cp[0] != '#')
+ {
+ alias = cp++;
+ while (cp[0] != '\0' && !isspace (cp[0]))
+ ++cp;
+ /* Terminate alias name. */
+ if (cp[0] != '\0')
+ *cp++ = '\0';
+
+ /* Now look for the beginning of the value. */
+ while (isspace (cp[0]))
+ ++cp;
+
+ if (cp[0] != '\0')
+ {
+ size_t alias_len;
+ size_t value_len;
+
+ value = cp++;
+ while (cp[0] != '\0' && !isspace (cp[0]))
+ ++cp;
+ /* Terminate value. */
+ if (cp[0] == '\n')
+ {
+ /* This has to be done to make the following test
+ for the end of line possible. We are looking for
+ the terminating '\n' which do not overwrite here. */
+ *cp++ = '\0';
+ *cp = '\n';
+ }
+ else if (cp[0] != '\0')
+ *cp++ = '\0';
+
+ if (nmap >= maxmap)
+ extend_alias_table ();
+
+ alias_len = strlen (alias) + 1;
+ value_len = strlen (value) + 1;
+
+ if (string_space_act + alias_len + value_len > string_space_max)
+ {
+ /* Increase size of memory pool. */
+ size_t new_size = (string_space_max
+ + (alias_len + value_len > 1024
+ ? alias_len + value_len : 1024));
+ char *new_pool = (char *) realloc (string_space, new_size);
+ if (new_pool == NULL)
+ {
+ FREE_BLOCKS (block_list);
+ return added;
+ }
+ string_space = new_pool;
+ string_space_max = new_size;
+ }
+
+ map[nmap].alias = memcpy (&string_space[string_space_act],
+ alias, alias_len);
+ string_space_act += alias_len;
+
+ map[nmap].value = memcpy (&string_space[string_space_act],
+ value, value_len);
+ string_space_act += value_len;
+
+ ++nmap;
+ ++added;
+ }
+ }
+ }
+
+ /* Should we test for ferror()? I think we have to silently ignore
+ errors. --drepper */
+ fclose (fp);
+
+ if (added > 0)
+ qsort (map, nmap, sizeof (struct alias_map),
+ (int (*) PARAMS ((const void *, const void *))) alias_compare);
+
+ FREE_BLOCKS (block_list);
+ return added;
+}
+
+
+static void
+extend_alias_table ()
+{
+ size_t new_size;
+ struct alias_map *new_map;
+
+ new_size = maxmap == 0 ? 100 : 2 * maxmap;
+ new_map = (struct alias_map *) realloc (map, (new_size
+ * sizeof (struct alias_map)));
+ if (new_map == NULL)
+ /* Simply don't extend: we don't have any more core. */
+ return;
+
+ map = new_map;
+ maxmap = new_size;
+}
+
+
+#ifdef _LIBC
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ if (string_space != NULL)
+ free (string_space);
+ if (map != NULL)
+ free (map);
+}
+text_set_element (__libc_subfreeres, free_mem);
+#endif
+
+
+static int
+alias_compare (map1, map2)
+ const struct alias_map *map1;
+ const struct alias_map *map2;
+{
+#if defined _LIBC || defined HAVE_STRCASECMP
+ return strcasecmp (map1->alias, map2->alias);
+#else
+ const unsigned char *p1 = (const unsigned char *) map1->alias;
+ const unsigned char *p2 = (const unsigned char *) map2->alias;
+ unsigned char c1, c2;
+
+ if (p1 == p2)
+ return 0;
+
+ do
+ {
+ /* I know this seems to be odd but the tolower() function in
+ some systems libc cannot handle nonalpha characters. */
+ c1 = isupper (*p1) ? tolower (*p1) : *p1;
+ c2 = isupper (*p2) ? tolower (*p2) : *p2;
+ if (c1 == '\0')
+ break;
+ ++p1;
+ ++p2;
+ }
+ while (c1 == c2);
+
+ return c1 - c2;
+#endif
+}
diff --git a/win32/intl/textdomain.c b/win32/intl/textdomain.c
index 78b23a22..78b23a22 100644..100755
--- a/win32/intl/textdomain.c
+++ b/win32/intl/textdomain.c
diff --git a/win32/pcsxr.dev b/win32/pcsxr.dev
index 67d60b89..0d4a2837 100644..100755
--- a/win32/pcsxr.dev
+++ b/win32/pcsxr.dev
@@ -1,1209 +1,1209 @@
-[Project]
-FileName=pcsxr.dev
-Name=pcsxr
-Ver=1
-IsCpp=1
-Type=0
-Compiler=-D__GNUWIN32__ -march=pentiumpro -D_M_IX86=600 -W -finline-functions -fomit-frame-pointer -DWIN32 -DNDEBUG -D_WINDOWS -D_MBCS -D__WIN32__ -DPCSXR_VERSION=\"1.5\" -D__i386__ -DENABLE_NLS -DPACKAGE=\"pcsxr\" -Dinline=__inline___@@_
-CppCompiler=-D__GNUWIN32__ -march=pentiumpro -D_M_IX86=600 -W -finline-functions -DWIN32 -DNDEBUG -D_WINDOWS -D_MBCS -D__WIN32__ -D_MSC_VER_ -DPCSXR_VERSION=\"1.5\" -D__i386__ -DENABLE_NLS -DPACKAGE=\"pcsxr\"_@@_
-Includes=.;./zlib;../libpcsxcore;./glue;./gui;./intl
-Linker=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 -lcomctl32 -lwsock32_@@_
-Libs=
-UnitCount=116
-Folders=glue,glue/sys,gui,intl,libpcsxcore,libpcsxcore/ix86,zlib
-ObjFiles=
-PrivateResource=pcsxr_private.rc
-ResourceIncludes=
-MakeIncludes=
-Icon=
-ExeOutput=
-ObjectOutput=
-OverrideOutput=0
-OverrideOutputName=pcsxr.exe
-HostApplication=
-CommandLine=
-UseCustomMakefile=0
-CustomMakefile=
-IncludeVersionInfo=0
-SupportXPThemes=0
-CompilerSet=0
-CompilerSettings=0010000001001000000100
-
-[Unit1]
-FileName=..\libpcsxcore\ix86\iGte.h
-Folder=libpcsxcore/ix86
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit2]
-FileName=..\libpcsxcore\ix86\iR3000A.c
-Folder=libpcsxcore/ix86
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit3]
-FileName=..\libpcsxcore\ix86\ix86.c
-Folder=libpcsxcore/ix86
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit4]
-FileName=..\libpcsxcore\ix86\ix86.h
-Folder=libpcsxcore/ix86
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit5]
-FileName=..\libpcsxcore\cdrom.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit6]
-FileName=..\libpcsxcore\cdrom.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit7]
-FileName=..\libpcsxcore\coff.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit8]
-FileName=..\libpcsxcore\debug.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit9]
-FileName=..\libpcsxcore\decode_xa.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit10]
-FileName=..\libpcsxcore\decode_xa.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit11]
-FileName=..\libpcsxcore\disr3000a.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit12]
-FileName=..\libpcsxcore\gte.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit13]
-FileName=..\libpcsxcore\gte.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit14]
-FileName=..\libpcsxcore\mdec.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit15]
-FileName=..\libpcsxcore\mdec.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit16]
-FileName=..\libpcsxcore\misc.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit17]
-FileName=..\libpcsxcore\misc.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit18]
-FileName=..\libpcsxcore\plugins.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit19]
-FileName=..\libpcsxcore\plugins.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit20]
-FileName=..\libpcsxcore\psemu_plugin_defs.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit21]
-FileName=..\libpcsxcore\psxbios.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit22]
-FileName=..\libpcsxcore\psxbios.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit23]
-FileName=..\libpcsxcore\psxcommon.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit24]
-FileName=..\libpcsxcore\psxcounters.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit25]
-FileName=..\libpcsxcore\psxcounters.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit26]
-FileName=..\libpcsxcore\psxdma.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit27]
-FileName=..\libpcsxcore\psxdma.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit28]
-FileName=..\libpcsxcore\psxhle.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit29]
-FileName=..\libpcsxcore\psxhle.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit30]
-FileName=..\libpcsxcore\psxhw.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit31]
-FileName=..\libpcsxcore\psxhw.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit32]
-FileName=..\libpcsxcore\psxinterpreter.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit33]
-FileName=..\libpcsxcore\psxmem.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit34]
-FileName=..\libpcsxcore\psxmem.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit35]
-FileName=..\libpcsxcore\r3000a.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit36]
-FileName=..\libpcsxcore\r3000a.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit37]
-FileName=..\libpcsxcore\sio.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit38]
-FileName=..\libpcsxcore\sio.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit39]
-FileName=..\libpcsxcore\spu.c
-Folder=libpcsxcore
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit40]
-FileName=..\libpcsxcore\spu.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit41]
-FileName=..\libpcsxcore\system.h
-Folder=libpcsxcore
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit42]
-FileName=gui\about.bmp
-Folder=gui
-Compile=0
-CompileCpp=0
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit43]
-FileName=gui\AboutDlg.c
-Folder=gui
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit44]
-FileName=gui\AboutDlg.h
-Folder=gui
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit45]
-FileName=gui\pcsxr.ico
-Folder=gui
-Compile=0
-CompileCpp=0
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit46]
-FileName=gui\ConfigurePlugins.c
-Folder=gui
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit47]
-FileName=gui\NoPic.h
-Folder=gui
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit48]
-FileName=gui\pcsxr.bmp
-Folder=gui
-Compile=0
-CompileCpp=0
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit49]
-FileName=gui\pcsxr.exe.manifest
-Folder=gui
-Compile=0
-CompileCpp=0
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit51]
-FileName=gui\plugin.h
-Folder=gui
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit52]
-FileName=gui\Win32.h
-Folder=gui
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit53]
-FileName=gui\WndMain.c
-Folder=gui
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit54]
-FileName=zlib\adler32.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit55]
-FileName=zlib\compress.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit56]
-FileName=zlib\crc32.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit57]
-FileName=zlib\deflate.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit58]
-FileName=zlib\deflate.h
-Folder=zlib
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit59]
-FileName=zlib\gzio.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit60]
-FileName=zlib\infblock.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit61]
-FileName=zlib\infblock.h
-Folder=zlib
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit62]
-FileName=zlib\infcodes.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit63]
-FileName=zlib\infcodes.h
-Folder=zlib
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit64]
-FileName=zlib\inffast.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit65]
-FileName=zlib\inffast.h
-Folder=zlib
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit66]
-FileName=zlib\inffixed.h
-Folder=zlib
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit67]
-FileName=zlib\inflate.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit68]
-FileName=zlib\inftrees.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit69]
-FileName=zlib\inftrees.h
-Folder=zlib
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit70]
-FileName=zlib\infutil.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit71]
-FileName=zlib\infutil.h
-Folder=zlib
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit72]
-FileName=zlib\trees.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit73]
-FileName=zlib\trees.h
-Folder=zlib
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit74]
-FileName=zlib\uncompr.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit75]
-FileName=zlib\zconf.h
-Folder=zlib
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit76]
-FileName=zlib\zlib.h
-Folder=zlib
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit77]
-FileName=zlib\zutil.c
-Folder=zlib
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit78]
-FileName=zlib\zutil.h
-Folder=zlib
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit79]
-FileName=glue\sys\mman.h
-Folder=glue/sys
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit80]
-FileName=glue\stdint.h
-Folder=glue
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit81]
-FileName=intl\bindtextdom.c
-Folder=intl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit82]
-FileName=intl\intlconfig.h
-Folder=intl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit83]
-FileName=intl\dcgettext.c
-Folder=intl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit84]
-FileName=intl\dgettext.c
-Folder=intl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit85]
-FileName=intl\explodename.c
-Folder=intl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit86]
-FileName=intl\finddomain.c
-Folder=intl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit87]
-FileName=intl\gettext.c
-Folder=intl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit88]
-FileName=intl\gettext.h
-Folder=intl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit89]
-FileName=intl\gettextP.h
-Folder=intl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit90]
-FileName=intl\l10nflist.c
-Folder=intl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit91]
-FileName=intl\libgettext.h
-Folder=intl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit92]
-FileName=intl\libintl.h
-Folder=intl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit93]
-FileName=intl\loadinfo.h
-Folder=intl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit94]
-FileName=intl\loadmsgcat.c
-Folder=intl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit95]
-FileName=intl\localealias.c
-Folder=intl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit96]
-FileName=intl\textdomain.c
-Folder=intl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit97]
-FileName=config.h
-Folder=
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit98]
-FileName=intl\intl-compat.c
-Folder=intl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=$(CC) -c intl-compat.c -o intl-compat.o $(CFLAGS)
-
-[Unit99]
-FileName=intl\hash-string.h
-Folder=intl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[VersionInfo]
-Major=0
-Minor=1
-Release=1
-Build=1
-LanguageID=1033
-CharsetID=1252
-CompanyName=
-FileVersion=0.1
-FileDescription=Developed using the Dev-C++ IDE
-InternalName=
-LegalCopyright=
-LegalTrademarks=
-OriginalFilename=pcsxr.exe
-ProductName=pcsxr
-ProductVersion=0.1
-AutoIncBuildNr=0
-
-[Unit50]
-FileName=gui\plugin.c
-CompileCpp=0
-Folder=gui
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit102]
-FileName=..\libpcsxcore\cdriso.h
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-CompileCpp=1
-
-[Unit101]
-FileName=pcsxr.rc
-CompileCpp=1
-Folder=pcsxr
-Compile=1
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit100]
-FileName=resource.h
-CompileCpp=1
-Folder=pcsxr
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit103]
-FileName=..\libpcsxcore\cdriso.c
-CompileCpp=0
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=$(CC) -c cdriso.c -o cdriso.o $(CFLAGS)
-
-[Unit104]
-FileName=..\libpcsxcore\cheat.h
-CompileCpp=1
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit105]
-FileName=..\libpcsxcore\cheat.c
-CompileCpp=0
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=$(CC) -c cheat.c -o cheat.o $(CFLAGS)
-
-[Unit106]
-FileName=gui\CheatDlg.c
-CompileCpp=0
-Folder=gui
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=$(CC) -c CheatDlg.c -o CheatDlg.o $(CFLAGS)
-
-[Unit107]
-FileName=..\libpcsxcore\socket.h
-CompileCpp=1
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit108]
-FileName=..\libpcsxcore\debug.c
-CompileCpp=0
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=$(CC) -c debug.c -o debug.o $(CFLAGS)
-
-[Unit109]
-FileName=..\libpcsxcore\socket.c
-CompileCpp=0
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=$(CC) -c socket.c -o socket.o $(CFLAGS)
-
-[Unit110]
-FileName=..\libpcsxcore\ppf.h
-CompileCpp=1
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit111]
-FileName=..\libpcsxcore\ppf.c
-CompileCpp=0
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=$(CC) -c ppf.c -o ppf.o $(CFLAGS)
-
-[Unit112]
-FileName=..\libpcsxcore\psxcommon.c
-CompileCpp=0
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=$(CC) -c psxcommon.c -o psxcommon.o $(CFLAGS)
-
-[Unit113]
-FileName=..\libpcsxcore\gte_divider.h
-CompileCpp=1
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit114]
-FileName=..\libpcsxcore\sjisfont.h
-CompileCpp=1
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit115]
-FileName=..\libpcsxcore\gpu.c
-CompileCpp=0
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=$(CC) -c gpu.c -o gpu.o $(CFLAGS)
-
-[Unit116]
-FileName=..\libpcsxcore\gpu.h
-CompileCpp=1
-Folder=libpcsxcore
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
+[Project]
+FileName=pcsxr.dev
+Name=pcsxr
+Ver=1
+IsCpp=1
+Type=0
+Compiler=-D__GNUWIN32__ -march=pentiumpro -D_M_IX86=600 -W -finline-functions -fomit-frame-pointer -DWIN32 -DNDEBUG -D_WINDOWS -D_MBCS -D__WIN32__ -DPCSXR_VERSION=\"1.5\" -D__i386__ -DENABLE_NLS -DPACKAGE=\"pcsxr\" -Dinline=__inline___@@_
+CppCompiler=-D__GNUWIN32__ -march=pentiumpro -D_M_IX86=600 -W -finline-functions -DWIN32 -DNDEBUG -D_WINDOWS -D_MBCS -D__WIN32__ -D_MSC_VER_ -DPCSXR_VERSION=\"1.5\" -D__i386__ -DENABLE_NLS -DPACKAGE=\"pcsxr\"_@@_
+Includes=.;./zlib;../libpcsxcore;./glue;./gui;./intl
+Linker=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 -lcomctl32 -lwsock32_@@_
+Libs=
+UnitCount=116
+Folders=glue,glue/sys,gui,intl,libpcsxcore,libpcsxcore/ix86,zlib
+ObjFiles=
+PrivateResource=pcsxr_private.rc
+ResourceIncludes=
+MakeIncludes=
+Icon=
+ExeOutput=
+ObjectOutput=
+OverrideOutput=0
+OverrideOutputName=pcsxr.exe
+HostApplication=
+CommandLine=
+UseCustomMakefile=0
+CustomMakefile=
+IncludeVersionInfo=0
+SupportXPThemes=0
+CompilerSet=0
+CompilerSettings=0010000001001000000100
+
+[Unit1]
+FileName=..\libpcsxcore\ix86\iGte.h
+Folder=libpcsxcore/ix86
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit2]
+FileName=..\libpcsxcore\ix86\iR3000A.c
+Folder=libpcsxcore/ix86
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit3]
+FileName=..\libpcsxcore\ix86\ix86.c
+Folder=libpcsxcore/ix86
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit4]
+FileName=..\libpcsxcore\ix86\ix86.h
+Folder=libpcsxcore/ix86
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit5]
+FileName=..\libpcsxcore\cdrom.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit6]
+FileName=..\libpcsxcore\cdrom.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit7]
+FileName=..\libpcsxcore\coff.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit8]
+FileName=..\libpcsxcore\debug.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit9]
+FileName=..\libpcsxcore\decode_xa.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit10]
+FileName=..\libpcsxcore\decode_xa.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit11]
+FileName=..\libpcsxcore\disr3000a.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit12]
+FileName=..\libpcsxcore\gte.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit13]
+FileName=..\libpcsxcore\gte.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit14]
+FileName=..\libpcsxcore\mdec.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit15]
+FileName=..\libpcsxcore\mdec.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit16]
+FileName=..\libpcsxcore\misc.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit17]
+FileName=..\libpcsxcore\misc.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit18]
+FileName=..\libpcsxcore\plugins.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit19]
+FileName=..\libpcsxcore\plugins.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit20]
+FileName=..\libpcsxcore\psemu_plugin_defs.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit21]
+FileName=..\libpcsxcore\psxbios.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit22]
+FileName=..\libpcsxcore\psxbios.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit23]
+FileName=..\libpcsxcore\psxcommon.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit24]
+FileName=..\libpcsxcore\psxcounters.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit25]
+FileName=..\libpcsxcore\psxcounters.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit26]
+FileName=..\libpcsxcore\psxdma.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit27]
+FileName=..\libpcsxcore\psxdma.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit28]
+FileName=..\libpcsxcore\psxhle.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit29]
+FileName=..\libpcsxcore\psxhle.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit30]
+FileName=..\libpcsxcore\psxhw.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit31]
+FileName=..\libpcsxcore\psxhw.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit32]
+FileName=..\libpcsxcore\psxinterpreter.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit33]
+FileName=..\libpcsxcore\psxmem.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit34]
+FileName=..\libpcsxcore\psxmem.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit35]
+FileName=..\libpcsxcore\r3000a.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit36]
+FileName=..\libpcsxcore\r3000a.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit37]
+FileName=..\libpcsxcore\sio.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit38]
+FileName=..\libpcsxcore\sio.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit39]
+FileName=..\libpcsxcore\spu.c
+Folder=libpcsxcore
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit40]
+FileName=..\libpcsxcore\spu.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit41]
+FileName=..\libpcsxcore\system.h
+Folder=libpcsxcore
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit42]
+FileName=gui\about.bmp
+Folder=gui
+Compile=0
+CompileCpp=0
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit43]
+FileName=gui\AboutDlg.c
+Folder=gui
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit44]
+FileName=gui\AboutDlg.h
+Folder=gui
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit45]
+FileName=gui\pcsxr.ico
+Folder=gui
+Compile=0
+CompileCpp=0
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit46]
+FileName=gui\ConfigurePlugins.c
+Folder=gui
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit47]
+FileName=gui\NoPic.h
+Folder=gui
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit48]
+FileName=gui\pcsxr.bmp
+Folder=gui
+Compile=0
+CompileCpp=0
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit49]
+FileName=gui\pcsxr.exe.manifest
+Folder=gui
+Compile=0
+CompileCpp=0
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit51]
+FileName=gui\plugin.h
+Folder=gui
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit52]
+FileName=gui\Win32.h
+Folder=gui
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit53]
+FileName=gui\WndMain.c
+Folder=gui
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit54]
+FileName=zlib\adler32.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit55]
+FileName=zlib\compress.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit56]
+FileName=zlib\crc32.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit57]
+FileName=zlib\deflate.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit58]
+FileName=zlib\deflate.h
+Folder=zlib
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit59]
+FileName=zlib\gzio.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit60]
+FileName=zlib\infblock.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit61]
+FileName=zlib\infblock.h
+Folder=zlib
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit62]
+FileName=zlib\infcodes.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit63]
+FileName=zlib\infcodes.h
+Folder=zlib
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit64]
+FileName=zlib\inffast.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit65]
+FileName=zlib\inffast.h
+Folder=zlib
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit66]
+FileName=zlib\inffixed.h
+Folder=zlib
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit67]
+FileName=zlib\inflate.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit68]
+FileName=zlib\inftrees.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit69]
+FileName=zlib\inftrees.h
+Folder=zlib
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit70]
+FileName=zlib\infutil.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit71]
+FileName=zlib\infutil.h
+Folder=zlib
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit72]
+FileName=zlib\trees.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit73]
+FileName=zlib\trees.h
+Folder=zlib
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit74]
+FileName=zlib\uncompr.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit75]
+FileName=zlib\zconf.h
+Folder=zlib
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit76]
+FileName=zlib\zlib.h
+Folder=zlib
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit77]
+FileName=zlib\zutil.c
+Folder=zlib
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit78]
+FileName=zlib\zutil.h
+Folder=zlib
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit79]
+FileName=glue\sys\mman.h
+Folder=glue/sys
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit80]
+FileName=glue\stdint.h
+Folder=glue
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit81]
+FileName=intl\bindtextdom.c
+Folder=intl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit82]
+FileName=intl\intlconfig.h
+Folder=intl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit83]
+FileName=intl\dcgettext.c
+Folder=intl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit84]
+FileName=intl\dgettext.c
+Folder=intl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit85]
+FileName=intl\explodename.c
+Folder=intl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit86]
+FileName=intl\finddomain.c
+Folder=intl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit87]
+FileName=intl\gettext.c
+Folder=intl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit88]
+FileName=intl\gettext.h
+Folder=intl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit89]
+FileName=intl\gettextP.h
+Folder=intl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit90]
+FileName=intl\l10nflist.c
+Folder=intl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit91]
+FileName=intl\libgettext.h
+Folder=intl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit92]
+FileName=intl\libintl.h
+Folder=intl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit93]
+FileName=intl\loadinfo.h
+Folder=intl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit94]
+FileName=intl\loadmsgcat.c
+Folder=intl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit95]
+FileName=intl\localealias.c
+Folder=intl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit96]
+FileName=intl\textdomain.c
+Folder=intl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit97]
+FileName=config.h
+Folder=
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit98]
+FileName=intl\intl-compat.c
+Folder=intl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c intl-compat.c -o intl-compat.o $(CFLAGS)
+
+[Unit99]
+FileName=intl\hash-string.h
+Folder=intl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[VersionInfo]
+Major=0
+Minor=1
+Release=1
+Build=1
+LanguageID=1033
+CharsetID=1252
+CompanyName=
+FileVersion=0.1
+FileDescription=Developed using the Dev-C++ IDE
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=pcsxr.exe
+ProductName=pcsxr
+ProductVersion=0.1
+AutoIncBuildNr=0
+
+[Unit50]
+FileName=gui\plugin.c
+CompileCpp=0
+Folder=gui
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit102]
+FileName=..\libpcsxcore\cdriso.h
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+CompileCpp=1
+
+[Unit101]
+FileName=pcsxr.rc
+CompileCpp=1
+Folder=pcsxr
+Compile=1
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit100]
+FileName=resource.h
+CompileCpp=1
+Folder=pcsxr
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit103]
+FileName=..\libpcsxcore\cdriso.c
+CompileCpp=0
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c cdriso.c -o cdriso.o $(CFLAGS)
+
+[Unit104]
+FileName=..\libpcsxcore\cheat.h
+CompileCpp=1
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit105]
+FileName=..\libpcsxcore\cheat.c
+CompileCpp=0
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c cheat.c -o cheat.o $(CFLAGS)
+
+[Unit106]
+FileName=gui\CheatDlg.c
+CompileCpp=0
+Folder=gui
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c CheatDlg.c -o CheatDlg.o $(CFLAGS)
+
+[Unit107]
+FileName=..\libpcsxcore\socket.h
+CompileCpp=1
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit108]
+FileName=..\libpcsxcore\debug.c
+CompileCpp=0
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c debug.c -o debug.o $(CFLAGS)
+
+[Unit109]
+FileName=..\libpcsxcore\socket.c
+CompileCpp=0
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c socket.c -o socket.o $(CFLAGS)
+
+[Unit110]
+FileName=..\libpcsxcore\ppf.h
+CompileCpp=1
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit111]
+FileName=..\libpcsxcore\ppf.c
+CompileCpp=0
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c ppf.c -o ppf.o $(CFLAGS)
+
+[Unit112]
+FileName=..\libpcsxcore\psxcommon.c
+CompileCpp=0
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c psxcommon.c -o psxcommon.o $(CFLAGS)
+
+[Unit113]
+FileName=..\libpcsxcore\gte_divider.h
+CompileCpp=1
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit114]
+FileName=..\libpcsxcore\sjisfont.h
+CompileCpp=1
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit115]
+FileName=..\libpcsxcore\gpu.c
+CompileCpp=0
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c gpu.c -o gpu.o $(CFLAGS)
+
+[Unit116]
+FileName=..\libpcsxcore\gpu.h
+CompileCpp=1
+Folder=libpcsxcore
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
diff --git a/win32/pcsxr.dsp b/win32/pcsxr.dsp
index 755cf539..6a6aa25f 100644..100755
--- a/win32/pcsxr.dsp
+++ b/win32/pcsxr.dsp
@@ -1,583 +1,583 @@
-# Microsoft Developer Studio Project File - Name="pcsxr" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Application" 0x0101
-
-CFG=PCSXR - WIN32 RELEASE
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "pcsxr.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "pcsxr.mak" CFG="PCSXR - WIN32 RELEASE"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "pcsxr - Win32 Release" (based on "Win32 (x86) Application")
-!MESSAGE "pcsxr - Win32 Debug" (based on "Win32 (x86) Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "pcsxr - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /G6 /Zp16 /MT /W3 /GX /O2 /Op /Ob2 /I "../" /I "./zlib" /I "../libpcsxcore" /I "./glue" /I "./" /I "./gui" /I "./intl" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "__WIN32__" /D "_MSC_VER_" /D PCSX_VERSION=\"1.5\" /D "__i386__" /D "ENABLE_NLS" /D PACKAGE=\"pcsxr\" /D inline=__forceinline /FR /FD /Zm200 /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x408 /d "NDEBUG"
-# ADD RSC /l 0x408 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib wsock32.lib /nologo /subsystem:windows /pdb:none /machine:I386
-
-!ELSEIF "$(CFG)" == "pcsxr - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D PCSXR_VERSION=\"1.3\" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /GX /Zi /Od /I "../" /I "./zlib" /I "../libpcsxcore" /I "./glue" /I "./" /I "./gui" /I "./intl" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "__WIN32__" /D "__i386__" /D PCSXR_VERSION=\"1.5\" /D "ENABLE_NLS" /D PACKAGE=\"pcsxr\" /D inline= /FR /FD /GZ /Zm200 /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x408 /d "_DEBUG"
-# ADD RSC /l 0x408 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib wsock32.lib /nologo /subsystem:windows /incremental:no /debug /machine:I386 /pdbtype:sept
-
-!ENDIF
-
-# Begin Target
-
-# Name "pcsxr - Win32 Release"
-# Name "pcsxr - Win32 Debug"
-# Begin Group "libpcsxcore"
-
-# PROP Default_Filter ""
-# Begin Group "ix86"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\libpcsxcore\ix86\iGte.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\ix86\iR3000A.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\ix86\ix86.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\ix86\ix86.h
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=..\libpcsxcore\cdriso.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\cdriso.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\cdrom.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\cdrom.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\cheat.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\cheat.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\coff.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\debug.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\debug.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\decode_xa.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\decode_xa.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\disr3000a.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\gpu.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\gpu.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\gte.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\gte.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\gte_divider.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\mdec.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\mdec.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\misc.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\misc.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\plugins.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\plugins.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\ppf.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\ppf.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psemu_plugin_defs.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxbios.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxbios.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxcommon.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxcommon.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxcounters.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxcounters.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxdma.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxdma.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxhle.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxhle.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxhw.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxhw.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxinterpreter.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxmem.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\psxmem.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\r3000a.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\r3000a.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\sio.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\sio.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\sjisfont.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\socket.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\socket.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\spu.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\spu.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\libpcsxcore\system.h
-# End Source File
-# End Group
-# Begin Group "gui"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\gui\about.bmp
-# End Source File
-# Begin Source File
-
-SOURCE=.\gui\AboutDlg.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\gui\AboutDlg.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\gui\pcsxr.ico
-# End Source File
-# Begin Source File
-
-SOURCE=.\gui\CheatDlg.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\gui\ConfigurePlugins.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\gui\NoPic.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\gui\pcsxr.bmp
-# End Source File
-# Begin Source File
-
-SOURCE=.\gui\pcsxr.exe.manifest
-# End Source File
-# Begin Source File
-
-SOURCE=.\gui\plugin.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\gui\plugin.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\gui\Win32.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\gui\WndMain.c
-# End Source File
-# End Group
-# Begin Group "zlib"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\zlib\adler32.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\compress.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\crc32.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\deflate.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\deflate.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\gzio.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\infblock.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\infblock.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\infcodes.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\infcodes.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\inffast.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\inffast.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\inffixed.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\inflate.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\inftrees.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\inftrees.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\infutil.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\infutil.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\trees.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\trees.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\uncompr.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\zconf.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\zlib.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\zutil.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib\zutil.h
-# End Source File
-# End Group
-# Begin Group "glue"
-
-# PROP Default_Filter ""
-# Begin Group "sys"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\glue\sys\mman.h
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=.\glue\stdint.h
-# End Source File
-# End Group
-# Begin Group "intl"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\intl\bindtextdom.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\dcgettext.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\dgettext.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\explodename.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\finddomain.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\gettext.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\gettext.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\gettextP.h
-# End Source File
-# Begin Source File
-
-SOURCE=".\intl\hash-string.h"
-# End Source File
-# Begin Source File
-
-SOURCE=".\intl\intl-compat.c"
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\intlconfig.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\l10nflist.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\libgettext.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\libintl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\loadinfo.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\loadmsgcat.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\localealias.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\intl\textdomain.c
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=.\config.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\pcsxr.rc
-# End Source File
-# Begin Source File
-
-SOURCE=.\resource.h
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="pcsxr" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=PCSXR - WIN32 RELEASE
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "pcsxr.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "pcsxr.mak" CFG="PCSXR - WIN32 RELEASE"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "pcsxr - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "pcsxr - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "pcsxr - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /Zp16 /MT /W3 /GX /O2 /Op /Ob2 /I "../" /I "./zlib" /I "../libpcsxcore" /I "./glue" /I "./" /I "./gui" /I "./intl" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "__WIN32__" /D "_MSC_VER_" /D PCSX_VERSION=\"1.5\" /D "__i386__" /D "ENABLE_NLS" /D PACKAGE=\"pcsxr\" /D inline=__forceinline /FR /FD /Zm200 /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x408 /d "NDEBUG"
+# ADD RSC /l 0x408 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib wsock32.lib /nologo /subsystem:windows /pdb:none /machine:I386
+
+!ELSEIF "$(CFG)" == "pcsxr - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D PCSXR_VERSION=\"1.3\" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /GX /Zi /Od /I "../" /I "./zlib" /I "../libpcsxcore" /I "./glue" /I "./" /I "./gui" /I "./intl" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "__WIN32__" /D "__i386__" /D PCSXR_VERSION=\"1.5\" /D "ENABLE_NLS" /D PACKAGE=\"pcsxr\" /D inline= /FR /FD /GZ /Zm200 /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x408 /d "_DEBUG"
+# ADD RSC /l 0x408 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib wsock32.lib /nologo /subsystem:windows /incremental:no /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "pcsxr - Win32 Release"
+# Name "pcsxr - Win32 Debug"
+# Begin Group "libpcsxcore"
+
+# PROP Default_Filter ""
+# Begin Group "ix86"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\libpcsxcore\ix86\iGte.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\ix86\iR3000A.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\ix86\ix86.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\ix86\ix86.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\libpcsxcore\cdriso.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\cdriso.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\cdrom.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\cdrom.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\cheat.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\cheat.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\coff.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\debug.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\debug.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\decode_xa.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\decode_xa.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\disr3000a.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\gpu.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\gpu.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\gte.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\gte.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\gte_divider.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\mdec.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\mdec.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\misc.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\misc.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\plugins.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\plugins.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\ppf.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\ppf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psemu_plugin_defs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxbios.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxbios.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxcommon.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxcommon.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxcounters.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxcounters.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxdma.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxdma.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxhle.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxhle.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxhw.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxhw.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxinterpreter.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxmem.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\psxmem.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\r3000a.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\r3000a.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\sio.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\sio.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\sjisfont.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\socket.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\socket.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\spu.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\spu.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\libpcsxcore\system.h
+# End Source File
+# End Group
+# Begin Group "gui"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\gui\about.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\gui\AboutDlg.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\gui\AboutDlg.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\gui\pcsxr.ico
+# End Source File
+# Begin Source File
+
+SOURCE=.\gui\CheatDlg.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\gui\ConfigurePlugins.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\gui\NoPic.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\gui\pcsxr.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\gui\pcsxr.exe.manifest
+# End Source File
+# Begin Source File
+
+SOURCE=.\gui\plugin.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\gui\plugin.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\gui\Win32.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\gui\WndMain.c
+# End Source File
+# End Group
+# Begin Group "zlib"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\zlib\adler32.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\compress.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\crc32.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\deflate.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\deflate.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\gzio.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\infblock.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\infblock.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\infcodes.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\infcodes.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\inffast.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\inffast.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\inffixed.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\inflate.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\inftrees.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\inftrees.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\infutil.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\infutil.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\trees.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\trees.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\uncompr.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\zconf.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\zlib.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\zutil.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\zlib\zutil.h
+# End Source File
+# End Group
+# Begin Group "glue"
+
+# PROP Default_Filter ""
+# Begin Group "sys"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\glue\sys\mman.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\glue\stdint.h
+# End Source File
+# End Group
+# Begin Group "intl"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\intl\bindtextdom.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\dcgettext.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\dgettext.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\explodename.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\finddomain.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\gettext.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\gettext.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\gettextP.h
+# End Source File
+# Begin Source File
+
+SOURCE=".\intl\hash-string.h"
+# End Source File
+# Begin Source File
+
+SOURCE=".\intl\intl-compat.c"
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\intlconfig.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\l10nflist.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\libgettext.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\libintl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\loadinfo.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\loadmsgcat.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\localealias.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\intl\textdomain.c
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\config.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcsxr.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\resource.h
+# End Source File
+# End Target
+# End Project
diff --git a/win32/pcsxr.dsw b/win32/pcsxr.dsw
index 12b36c8b..ff14dd32 100644..100755
--- a/win32/pcsxr.dsw
+++ b/win32/pcsxr.dsw
@@ -1,77 +1,77 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "DFSound"=.\plugins\dfsound\DFSound.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "DFXVideo"=.\plugins\dfxvideo\DFXVideo.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "SSSPSXpad"=.\plugins\PadSSSPSX\PadSSSPSX.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "gpuPeopsOpenGL"=.\plugins\peopsxgl\gpuPeopsOpenGL.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "pcsxr"=.\pcsxr.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "DFSound"=.\plugins\dfsound\DFSound.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "DFXVideo"=.\plugins\dfxvideo\DFXVideo.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "SSSPSXpad"=.\plugins\PadSSSPSX\PadSSSPSX.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "gpuPeopsOpenGL"=.\plugins\peopsxgl\gpuPeopsOpenGL.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "pcsxr"=.\pcsxr.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/win32/pcsxr.rc b/win32/pcsxr.rc
index 53332c81..914d0493 100644..100755
--- a/win32/pcsxr.rc
+++ b/win32/pcsxr.rc
@@ -1,444 +1,444 @@
-//Microsoft Developer Studio generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifndef _MAC
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,0,1
- PRODUCTVERSION 1,0,0,1
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x40004L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "080404b0"
- BEGIN
- VALUE "CompanyName", "http://pcsxr.codeplex.com/\0"
- VALUE "FileDescription", "Playstation Emulator based on PCSX-df\0"
- VALUE "FileVersion", "1, 9, 1, 1\0"
- VALUE "InternalName", "pcsxr\0"
- VALUE "LegalCopyright", "Copyright (c) 2010\0"
- VALUE "OriginalFilename", "pcsxr.exe\0"
- VALUE "ProductName", "PCSX-Reloaded\0"
- VALUE "ProductVersion", "1, 9, 1, 1\0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x804, 1200
- END
-END
-
-#endif // !_MAC
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_MCDCONF DIALOG DISCARDABLE 0, 0, 407, 197
-STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Memcard Manager"
-FONT 8, "MS Sans Serif"
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,285,175,50,14
- PUSHBUTTON "Cancel",IDCANCEL,345,175,50,14
- EDITTEXT IDC_MCD1,10,155,160,14,ES_AUTOHSCROLL
- EDITTEXT IDC_MCD2,235,155,160,14,ES_AUTOHSCROLL
- PUSHBUTTON "Select Mcd",IDC_MCDSEL1,10,135,50,14
- PUSHBUTTON "Select Mcd",IDC_MCDSEL2,235,135,50,14
- GROUPBOX "Memory Card 2",IDC_FRAMEMCD2,230,5,170,125
- PUSHBUTTON "Format Mcd",IDC_FORMAT1,65,135,50,14
- GROUPBOX "Memory Card 1",IDC_FRAMEMCD1,5,5,170,125
- PUSHBUTTON "Format Mcd",IDC_FORMAT2,290,135,50,14
- CONTROL "List3",IDC_LIST1,"SysListView32",LVS_REPORT |
- LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,10,15,160,110
- CONTROL "List3",IDC_LIST2,"SysListView32",LVS_REPORT |
- LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,235,15,160,110
- PUSHBUTTON "Reload Mcd",IDC_RELOAD1,120,135,50,14
- PUSHBUTTON "Reload Mcd",IDC_RELOAD2,345,135,50,14
- PUSHBUTTON "-> Copy ->",IDC_COPYTO2,180,30,45,14
- PUSHBUTTON "<- Copy <-",IDC_COPYTO1,180,50,45,14
- PUSHBUTTON "Paste",IDC_PASTE,180,70,45,14
- PUSHBUTTON "<- Un/Delete",IDC_DELETE1,180,90,45,14
- PUSHBUTTON "Un/Delete ->",IDC_DELETE2,180,110,45,14
-END
-
-ABOUT_DIALOG DIALOGEX 0, 0, 332, 209
-STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "About"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,134,187,50,14
- CTEXT "PCSXR EMU\nVersion x.x",IDC_PCSXR_ABOUT_TEXT,22,10,112,15,
- 0,WS_EX_TRANSPARENT
- CTEXT "PCSXR a psx emulator...",IDC_PCSXR_ABOUT_AUTHORS,10,35,
- 135,63,0,WS_EX_TRANSPARENT
- CTEXT "Greets to...",IDC_PCSXR_ABOUT_GREETS,45,110,232,65
- CONTROL 113,IDC_STATIC,"Static",SS_BITMAP | WS_BORDER,155,10,171,
- 101
- GROUPBOX "",IDC_STATIC,5,25,145,77
- GROUPBOX "",IDC_STATIC,43,100,234,79
-END
-
-IDD_CPUCONF DIALOG DISCARDABLE 0, 0, 232, 201
-STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Cpu Config"
-FONT 8, "MS Sans Serif"
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,50,181,50,14
- PUSHBUTTON "Cancel",IDCANCEL,120,181,50,14
- CONTROL "Disable Xa Decoding",IDC_XA,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,10,15,91,10
- CONTROL "Sio Irq Always Enabled",IDC_SIO,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,10,30,92,10
- CONTROL "Black && White Movies",IDC_MDEC,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,10,60,100,10
- CONTROL "Autodetect",IDC_PSXAUTO,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,10,153,83,10
- GROUPBOX "Misc Options",IDC_MISCOPT,5,5,220,129
- COMBOBOX IDC_PSXTYPES,105,153,53,50,CBS_DROPDOWNLIST | CBS_SORT |
- WS_VSCROLL | WS_TABSTOP
- GROUPBOX "Select Psx System Type",IDC_SELPSX,5,139,220,35
- CONTROL "Disable Cd Audio",IDC_CDDA,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,112,15,113,10
- CONTROL "Enable Console Output",IDC_PSXOUT,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,112,30,113,10
- CONTROL "Enable Interpreter Cpu",IDC_CPU,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,112,45,113,10
- CONTROL "Spu Irq Always Enabled",IDC_SPUIRQ,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,10,45,91,10
- CONTROL "Parasite Eve 2, Vandal Hearts 1/2 Fix",IDC_RCNTFIX,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,75,205,10
- CONTROL "InuYasha Sengoku Battle Fix",IDC_VSYNCWA,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,10,90,205,10
- CONTROL "Enable Debugger",IDC_DEBUG,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,112,60,76,10
- CONTROL "Slow Boot",IDC_SLOWBOOT,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,10,104,113,10
- CONTROL "Widescreen (GTE Hack)",IDC_WIDESCREEN,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,10,118,113,10
-END
-
-IDD_NETPLAY DIALOG DISCARDABLE 0, 0, 165, 95
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "NetPlay Configuration"
-FONT 8, "MS Sans Serif"
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,55,75,50,14
- PUSHBUTTON "Cancel",IDCANCEL,110,75,50,14
- COMBOBOX IDC_LISTNET,10,15,145,74,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- PUSHBUTTON "Configure...",IDC_CONFIGNET,10,35,45,12
- PUSHBUTTON "Test...",IDC_TESTNET,60,35,45,12
- PUSHBUTTON "About...",IDC_ABOUTNET,110,35,45,12
- RTEXT "NetPlay",IDC_NETPLAY,50,5,41,10,SS_CENTERIMAGE
- CTEXT "Note: The NetPlay Plugin Directory should be the same as the other Plugins.",
- IDC_NETPLAYNOTE,10,50,145,19
-END
-
-IDD_CONNECT DIALOG DISCARDABLE 0, 0, 112, 31
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Connecting..."
-FONT 8, "MS Sans Serif"
-BEGIN
- LTEXT "Please wait while connecting... /",IDC_CONNECTSTR,5,10,
- 104,8
-END
-
-IDD_CONFIG DIALOGEX 0, 0, 322, 161
-STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Configuration"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- COMBOBOX IDC_LISTGPU,10,10,145,74,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- PUSHBUTTON "Configure...",IDC_CONFIGGPU,10,30,45,12
- PUSHBUTTON "Test...",IDC_TESTGPU,60,30,45,12
- PUSHBUTTON "About...",IDC_ABOUTGPU,110,30,45,12
- COMBOBOX IDC_LISTSPU,165,10,145,74,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- PUSHBUTTON "Configure...",IDC_CONFIGSPU,165,30,45,12
- PUSHBUTTON "Test...",IDC_TESTSPU,215,30,45,12
- PUSHBUTTON "About...",IDC_ABOUTSPU,265,30,43,12
- COMBOBOX IDC_LISTCDR,10,100,145,74,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- PUSHBUTTON "Configure...",IDC_CONFIGCDR,10,120,43,12
- PUSHBUTTON "Test...",IDC_TESTCDR,60,120,45,12
- PUSHBUTTON "About...",IDC_ABOUTCDR,110,120,45,12
- COMBOBOX IDC_LISTBIOS,165,100,145,74,CBS_DROPDOWNLIST |
- WS_VSCROLL | WS_TABSTOP
- DEFPUSHBUTTON "OK",IDOK,205,140,50,14
- PUSHBUTTON "Cancel",IDCANCEL,260,140,50,14
- CTEXT "Graphics",IDC_GRAPHICS,10,0,145,10,SS_CENTERIMAGE
- CTEXT "Sound",IDC_SOUND,165,0,144,10,SS_CENTERIMAGE
- CTEXT "Cdrom",IDC_CDROM,10,90,144,10,SS_CENTERIMAGE
- CTEXT "Bios",IDC_BIOS,166,90,146,10,SS_CENTERIMAGE
- COMBOBOX IDC_LISTPAD1,10,55,145,74,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- PUSHBUTTON "Configure...",IDC_CONFIGPAD1,10,75,45,12
- PUSHBUTTON "Test...",IDC_TESTPAD1,60,75,45,12
- PUSHBUTTON "About...",IDC_ABOUTPAD1,110,75,45,12
- CTEXT "Second Controller",IDC_SECONDCONTROLLER,164,45,144,10,
- SS_CENTERIMAGE
- COMBOBOX IDC_LISTPAD2,165,55,145,74,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- PUSHBUTTON "Configure...",IDC_CONFIGPAD2,165,75,45,12
- PUSHBUTTON "Test...",IDC_TESTPAD2,215,75,45,12
- PUSHBUTTON "About...",IDC_ABOUTPAD2,265,75,45,12
- CTEXT "First Controller",IDC_FIRSTCONTROLLER,11,45,138,10,
- SS_CENTERIMAGE
- PUSHBUTTON "Set Bios Directory",IDC_BIOSDIR,90,140,65,14
- PUSHBUTTON "Set Plugins Directory",IDC_PLUGINSDIR,10,140,75,14
-END
-
-IDD_CHEATLIST DIALOGEX 0, 0, 392, 201
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Edit Cheat Codes"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- PUSHBUTTON "&Close",IDCANCEL,324,180,61,14
- CONTROL "List2",IDC_CODELIST,"SysListView32",LVS_REPORT |
- LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT |
- LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,7,312,187
- PUSHBUTTON "&Enable/Disable",IDC_TOGGLECODE,324,7,61,14
- PUSHBUTTON "&Add Code",IDC_ADDCODE,324,32,61,14
- PUSHBUTTON "&Edit Code",IDC_EDITCODE,324,50,61,14
- PUSHBUTTON "&Remove Code",IDC_REMOVECODE,324,68,61,14
- PUSHBUTTON "&Load...",IDC_LOADCODE,324,96,61,14
- PUSHBUTTON "&Save As...",IDC_SAVECODE,324,114,61,14
-END
-
-IDD_CHEATSEARCH DIALOGEX 0, 0, 280, 214
-STYLE DS_SETFOREGROUND | DS_CENTER | WS_POPUP | WS_CAPTION
-CAPTION "Cheat Search"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- LTEXT "Search For:",IDC_LABEL_SEARCHFOR,7,9,51,8,0,
- WS_EX_TRANSPARENT
- COMBOBOX IDC_SEARCHFOR,60,7,80,224,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- LTEXT "Data Type:",IDC_LABEL_DATATYPE,7,26,51,8,0,
- WS_EX_TRANSPARENT
- COMBOBOX IDC_DATATYPE,60,24,80,224,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- LTEXT "Data Base:",IDC_LABEL_DATABASE,147,26,44,8,0,
- WS_EX_TRANSPARENT
- COMBOBOX IDC_DATABASE,194,24,81,224,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- LTEXT "Value:",IDC_LABEL_VALUE,7,43,50,8,0,WS_EX_TRANSPARENT
- EDITTEXT IDC_VALUEFROM,60,41,80,12,ES_AUTOHSCROLL
- RTEXT "To",IDC_LABEL_TO,144,43,45,8,0,WS_EX_TRANSPARENT
- EDITTEXT IDC_VALUETO,194,41,80,12,ES_AUTOHSCROLL
- LTEXT "Addresses Found : 0",IDC_LABEL_RESULTSFOUND,7,180,263,8,
- 0,WS_EX_TRANSPARENT
- LISTBOX IDC_RESLIST,6,62,199,112,LBS_NOINTEGRALHEIGHT |
- WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "&Freeze",IDC_FREEZE,213,63,62,17,WS_DISABLED
- PUSHBUTTON "&Modify",IDC_MODIFY,213,86,62,17,WS_DISABLED
- PUSHBUTTON "&Copy",IDC_COPY,213,109,62,17,WS_DISABLED
- DEFPUSHBUTTON "&Search",IDC_SEARCH,8,194,86,14
- PUSHBUTTON "&New Search",IDC_NEWSEARCH,98,194,86,14
- PUSHBUTTON "C&lose",IDCANCEL,188,194,86,14
- EDITTEXT 10000,0,1000,10,10,ES_AUTOHSCROLL | NOT WS_BORDER | NOT
- WS_TABSTOP
-END
-
-IDD_CHEATEDIT DIALOGEX 0, 0, 242, 161
-STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Edit Cheat Code"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,126,143,50,14
- PUSHBUTTON "Cancel",IDCANCEL,185,143,50,14
- LTEXT "Description:",IDC_LABEL_DESCR,7,6,39,8
- LTEXT "Cheat Code:",IDC_LABEL_CODE,6,40,42,8
- EDITTEXT IDC_DESCR,6,17,232,14,ES_AUTOHSCROLL
- EDITTEXT IDC_CODE,6,52,231,84,ES_MULTILINE | ES_UPPERCASE |
- ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
-END
-
-IDD_CHEATVALEDIT DIALOGEX 0, 0, 162, 57
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Enter New Value"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,25,40,50,14
- PUSHBUTTON "Cancel",IDCANCEL,87,40,50,14
- LTEXT "Address:",IDC_LABEL_ADDRESS,7,7,30,8
- LTEXT "Value:",IDC_LABEL_VALUE,8,24,30,8
- EDITTEXT IDC_ADDRESS,41,4,113,12,ES_AUTOHSCROLL | WS_DISABLED
- EDITTEXT IDC_VALUE,41,22,113,12,ES_AUTOHSCROLL
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO MOVEABLE PURE
-BEGIN
- IDD_MCDCONF, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 400
- TOPMARGIN, 7
- BOTTOMMARGIN, 190
- END
-
- ABOUT_DIALOG, DIALOG
- BEGIN
- RIGHTMARGIN, 310
- BOTTOMMARGIN, 201
- END
-
- IDD_CPUCONF, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 225
- TOPMARGIN, 7
- BOTTOMMARGIN, 168
- END
-
- IDD_NETPLAY, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 158
- TOPMARGIN, 7
- BOTTOMMARGIN, 88
- END
-
- IDD_CONNECT, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 105
- TOPMARGIN, 7
- BOTTOMMARGIN, 24
- END
-
- IDD_CONFIG, DIALOG
- BEGIN
- BOTTOMMARGIN, 147
- END
-
- IDD_CHEATLIST, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 385
- TOPMARGIN, 7
- BOTTOMMARGIN, 194
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_APP_ICON ICON DISCARDABLE "gui\\pcsxr.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-SPLASH_LOGO BITMAP MOVEABLE PURE "gui\\about.bmp"
-MAIN_LOGO BITMAP MOVEABLE PURE "gui\\pcsxr.bmp"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// 24
-//
-
-1 24 MOVEABLE PURE "gui\\pcsxr.exe.manifest"
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// Greek resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ELL)
-#ifdef _WIN32
-LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
-#pragma code_page(1253)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE MOVEABLE PURE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE MOVEABLE PURE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE MOVEABLE PURE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-#endif // Greek resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "080404b0"
+ BEGIN
+ VALUE "CompanyName", "http://pcsxr.codeplex.com/\0"
+ VALUE "FileDescription", "Playstation Emulator based on PCSX-df\0"
+ VALUE "FileVersion", "1, 9, 1, 1\0"
+ VALUE "InternalName", "pcsxr\0"
+ VALUE "LegalCopyright", "Copyright (c) 2010\0"
+ VALUE "OriginalFilename", "pcsxr.exe\0"
+ VALUE "ProductName", "PCSX-Reloaded\0"
+ VALUE "ProductVersion", "1, 9, 1, 1\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x804, 1200
+ END
+END
+
+#endif // !_MAC
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_MCDCONF DIALOG DISCARDABLE 0, 0, 407, 197
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Memcard Manager"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,285,175,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,345,175,50,14
+ EDITTEXT IDC_MCD1,10,155,160,14,ES_AUTOHSCROLL
+ EDITTEXT IDC_MCD2,235,155,160,14,ES_AUTOHSCROLL
+ PUSHBUTTON "Select Mcd",IDC_MCDSEL1,10,135,50,14
+ PUSHBUTTON "Select Mcd",IDC_MCDSEL2,235,135,50,14
+ GROUPBOX "Memory Card 2",IDC_FRAMEMCD2,230,5,170,125
+ PUSHBUTTON "Format Mcd",IDC_FORMAT1,65,135,50,14
+ GROUPBOX "Memory Card 1",IDC_FRAMEMCD1,5,5,170,125
+ PUSHBUTTON "Format Mcd",IDC_FORMAT2,290,135,50,14
+ CONTROL "List3",IDC_LIST1,"SysListView32",LVS_REPORT |
+ LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,10,15,160,110
+ CONTROL "List3",IDC_LIST2,"SysListView32",LVS_REPORT |
+ LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,235,15,160,110
+ PUSHBUTTON "Reload Mcd",IDC_RELOAD1,120,135,50,14
+ PUSHBUTTON "Reload Mcd",IDC_RELOAD2,345,135,50,14
+ PUSHBUTTON "-> Copy ->",IDC_COPYTO2,180,30,45,14
+ PUSHBUTTON "<- Copy <-",IDC_COPYTO1,180,50,45,14
+ PUSHBUTTON "Paste",IDC_PASTE,180,70,45,14
+ PUSHBUTTON "<- Un/Delete",IDC_DELETE1,180,90,45,14
+ PUSHBUTTON "Un/Delete ->",IDC_DELETE2,180,110,45,14
+END
+
+ABOUT_DIALOG DIALOGEX 0, 0, 332, 209
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "About"
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,134,187,50,14
+ CTEXT "PCSXR EMU\nVersion x.x",IDC_PCSXR_ABOUT_TEXT,22,10,112,15,
+ 0,WS_EX_TRANSPARENT
+ CTEXT "PCSXR a psx emulator...",IDC_PCSXR_ABOUT_AUTHORS,10,35,
+ 135,63,0,WS_EX_TRANSPARENT
+ CTEXT "Greets to...",IDC_PCSXR_ABOUT_GREETS,45,110,232,65
+ CONTROL 113,IDC_STATIC,"Static",SS_BITMAP | WS_BORDER,155,10,171,
+ 101
+ GROUPBOX "",IDC_STATIC,5,25,145,77
+ GROUPBOX "",IDC_STATIC,43,100,234,79
+END
+
+IDD_CPUCONF DIALOG DISCARDABLE 0, 0, 232, 201
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Cpu Config"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,50,181,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,120,181,50,14
+ CONTROL "Disable Xa Decoding",IDC_XA,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,15,91,10
+ CONTROL "Sio Irq Always Enabled",IDC_SIO,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,30,92,10
+ CONTROL "Black && White Movies",IDC_MDEC,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,60,100,10
+ CONTROL "Autodetect",IDC_PSXAUTO,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,153,83,10
+ GROUPBOX "Misc Options",IDC_MISCOPT,5,5,220,129
+ COMBOBOX IDC_PSXTYPES,105,153,53,50,CBS_DROPDOWNLIST | CBS_SORT |
+ WS_VSCROLL | WS_TABSTOP
+ GROUPBOX "Select Psx System Type",IDC_SELPSX,5,139,220,35
+ CONTROL "Disable Cd Audio",IDC_CDDA,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,112,15,113,10
+ CONTROL "Enable Console Output",IDC_PSXOUT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,112,30,113,10
+ CONTROL "Enable Interpreter Cpu",IDC_CPU,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,112,45,113,10
+ CONTROL "Spu Irq Always Enabled",IDC_SPUIRQ,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,45,91,10
+ CONTROL "Parasite Eve 2, Vandal Hearts 1/2 Fix",IDC_RCNTFIX,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,75,205,10
+ CONTROL "InuYasha Sengoku Battle Fix",IDC_VSYNCWA,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,90,205,10
+ CONTROL "Enable Debugger",IDC_DEBUG,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,112,60,76,10
+ CONTROL "Slow Boot",IDC_SLOWBOOT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,104,113,10
+ CONTROL "Widescreen (GTE Hack)",IDC_WIDESCREEN,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,118,113,10
+END
+
+IDD_NETPLAY DIALOG DISCARDABLE 0, 0, 165, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "NetPlay Configuration"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,55,75,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,110,75,50,14
+ COMBOBOX IDC_LISTNET,10,15,145,74,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ PUSHBUTTON "Configure...",IDC_CONFIGNET,10,35,45,12
+ PUSHBUTTON "Test...",IDC_TESTNET,60,35,45,12
+ PUSHBUTTON "About...",IDC_ABOUTNET,110,35,45,12
+ RTEXT "NetPlay",IDC_NETPLAY,50,5,41,10,SS_CENTERIMAGE
+ CTEXT "Note: The NetPlay Plugin Directory should be the same as the other Plugins.",
+ IDC_NETPLAYNOTE,10,50,145,19
+END
+
+IDD_CONNECT DIALOG DISCARDABLE 0, 0, 112, 31
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Connecting..."
+FONT 8, "MS Sans Serif"
+BEGIN
+ LTEXT "Please wait while connecting... /",IDC_CONNECTSTR,5,10,
+ 104,8
+END
+
+IDD_CONFIG DIALOGEX 0, 0, 322, 161
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Configuration"
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+ COMBOBOX IDC_LISTGPU,10,10,145,74,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ PUSHBUTTON "Configure...",IDC_CONFIGGPU,10,30,45,12
+ PUSHBUTTON "Test...",IDC_TESTGPU,60,30,45,12
+ PUSHBUTTON "About...",IDC_ABOUTGPU,110,30,45,12
+ COMBOBOX IDC_LISTSPU,165,10,145,74,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ PUSHBUTTON "Configure...",IDC_CONFIGSPU,165,30,45,12
+ PUSHBUTTON "Test...",IDC_TESTSPU,215,30,45,12
+ PUSHBUTTON "About...",IDC_ABOUTSPU,265,30,43,12
+ COMBOBOX IDC_LISTCDR,10,100,145,74,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ PUSHBUTTON "Configure...",IDC_CONFIGCDR,10,120,43,12
+ PUSHBUTTON "Test...",IDC_TESTCDR,60,120,45,12
+ PUSHBUTTON "About...",IDC_ABOUTCDR,110,120,45,12
+ COMBOBOX IDC_LISTBIOS,165,100,145,74,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ DEFPUSHBUTTON "OK",IDOK,205,140,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,260,140,50,14
+ CTEXT "Graphics",IDC_GRAPHICS,10,0,145,10,SS_CENTERIMAGE
+ CTEXT "Sound",IDC_SOUND,165,0,144,10,SS_CENTERIMAGE
+ CTEXT "Cdrom",IDC_CDROM,10,90,144,10,SS_CENTERIMAGE
+ CTEXT "Bios",IDC_BIOS,166,90,146,10,SS_CENTERIMAGE
+ COMBOBOX IDC_LISTPAD1,10,55,145,74,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ PUSHBUTTON "Configure...",IDC_CONFIGPAD1,10,75,45,12
+ PUSHBUTTON "Test...",IDC_TESTPAD1,60,75,45,12
+ PUSHBUTTON "About...",IDC_ABOUTPAD1,110,75,45,12
+ CTEXT "Second Controller",IDC_SECONDCONTROLLER,164,45,144,10,
+ SS_CENTERIMAGE
+ COMBOBOX IDC_LISTPAD2,165,55,145,74,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ PUSHBUTTON "Configure...",IDC_CONFIGPAD2,165,75,45,12
+ PUSHBUTTON "Test...",IDC_TESTPAD2,215,75,45,12
+ PUSHBUTTON "About...",IDC_ABOUTPAD2,265,75,45,12
+ CTEXT "First Controller",IDC_FIRSTCONTROLLER,11,45,138,10,
+ SS_CENTERIMAGE
+ PUSHBUTTON "Set Bios Directory",IDC_BIOSDIR,90,140,65,14
+ PUSHBUTTON "Set Plugins Directory",IDC_PLUGINSDIR,10,140,75,14
+END
+
+IDD_CHEATLIST DIALOGEX 0, 0, 392, 201
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Edit Cheat Codes"
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+ PUSHBUTTON "&Close",IDCANCEL,324,180,61,14
+ CONTROL "List2",IDC_CODELIST,"SysListView32",LVS_REPORT |
+ LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT |
+ LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,7,312,187
+ PUSHBUTTON "&Enable/Disable",IDC_TOGGLECODE,324,7,61,14
+ PUSHBUTTON "&Add Code",IDC_ADDCODE,324,32,61,14
+ PUSHBUTTON "&Edit Code",IDC_EDITCODE,324,50,61,14
+ PUSHBUTTON "&Remove Code",IDC_REMOVECODE,324,68,61,14
+ PUSHBUTTON "&Load...",IDC_LOADCODE,324,96,61,14
+ PUSHBUTTON "&Save As...",IDC_SAVECODE,324,114,61,14
+END
+
+IDD_CHEATSEARCH DIALOGEX 0, 0, 280, 214
+STYLE DS_SETFOREGROUND | DS_CENTER | WS_POPUP | WS_CAPTION
+CAPTION "Cheat Search"
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+ LTEXT "Search For:",IDC_LABEL_SEARCHFOR,7,9,51,8,0,
+ WS_EX_TRANSPARENT
+ COMBOBOX IDC_SEARCHFOR,60,7,80,224,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ LTEXT "Data Type:",IDC_LABEL_DATATYPE,7,26,51,8,0,
+ WS_EX_TRANSPARENT
+ COMBOBOX IDC_DATATYPE,60,24,80,224,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ LTEXT "Data Base:",IDC_LABEL_DATABASE,147,26,44,8,0,
+ WS_EX_TRANSPARENT
+ COMBOBOX IDC_DATABASE,194,24,81,224,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ LTEXT "Value:",IDC_LABEL_VALUE,7,43,50,8,0,WS_EX_TRANSPARENT
+ EDITTEXT IDC_VALUEFROM,60,41,80,12,ES_AUTOHSCROLL
+ RTEXT "To",IDC_LABEL_TO,144,43,45,8,0,WS_EX_TRANSPARENT
+ EDITTEXT IDC_VALUETO,194,41,80,12,ES_AUTOHSCROLL
+ LTEXT "Addresses Found : 0",IDC_LABEL_RESULTSFOUND,7,180,263,8,
+ 0,WS_EX_TRANSPARENT
+ LISTBOX IDC_RESLIST,6,62,199,112,LBS_NOINTEGRALHEIGHT |
+ WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "&Freeze",IDC_FREEZE,213,63,62,17,WS_DISABLED
+ PUSHBUTTON "&Modify",IDC_MODIFY,213,86,62,17,WS_DISABLED
+ PUSHBUTTON "&Copy",IDC_COPY,213,109,62,17,WS_DISABLED
+ DEFPUSHBUTTON "&Search",IDC_SEARCH,8,194,86,14
+ PUSHBUTTON "&New Search",IDC_NEWSEARCH,98,194,86,14
+ PUSHBUTTON "C&lose",IDCANCEL,188,194,86,14
+ EDITTEXT 10000,0,1000,10,10,ES_AUTOHSCROLL | NOT WS_BORDER | NOT
+ WS_TABSTOP
+END
+
+IDD_CHEATEDIT DIALOGEX 0, 0, 242, 161
+STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Edit Cheat Code"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,126,143,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,185,143,50,14
+ LTEXT "Description:",IDC_LABEL_DESCR,7,6,39,8
+ LTEXT "Cheat Code:",IDC_LABEL_CODE,6,40,42,8
+ EDITTEXT IDC_DESCR,6,17,232,14,ES_AUTOHSCROLL
+ EDITTEXT IDC_CODE,6,52,231,84,ES_MULTILINE | ES_UPPERCASE |
+ ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
+END
+
+IDD_CHEATVALEDIT DIALOGEX 0, 0, 162, 57
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Enter New Value"
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,25,40,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,87,40,50,14
+ LTEXT "Address:",IDC_LABEL_ADDRESS,7,7,30,8
+ LTEXT "Value:",IDC_LABEL_VALUE,8,24,30,8
+ EDITTEXT IDC_ADDRESS,41,4,113,12,ES_AUTOHSCROLL | WS_DISABLED
+ EDITTEXT IDC_VALUE,41,22,113,12,ES_AUTOHSCROLL
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO MOVEABLE PURE
+BEGIN
+ IDD_MCDCONF, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 400
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 190
+ END
+
+ ABOUT_DIALOG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 310
+ BOTTOMMARGIN, 201
+ END
+
+ IDD_CPUCONF, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 225
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 168
+ END
+
+ IDD_NETPLAY, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 158
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 88
+ END
+
+ IDD_CONNECT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 105
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 24
+ END
+
+ IDD_CONFIG, DIALOG
+ BEGIN
+ BOTTOMMARGIN, 147
+ END
+
+ IDD_CHEATLIST, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 385
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 194
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_APP_ICON ICON DISCARDABLE "gui\\pcsxr.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+SPLASH_LOGO BITMAP MOVEABLE PURE "gui\\about.bmp"
+MAIN_LOGO BITMAP MOVEABLE PURE "gui\\pcsxr.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// 24
+//
+
+1 24 MOVEABLE PURE "gui\\pcsxr.exe.manifest"
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Greek resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ELL)
+#ifdef _WIN32
+LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
+#pragma code_page(1253)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // Greek resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/win32/pcsxr.sln b/win32/pcsxr.sln
index 8d0b0b2d..3a42e12e 100644..100755
--- a/win32/pcsxr.sln
+++ b/win32/pcsxr.sln
@@ -1,44 +1,44 @@
-
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DFSound", "plugins\dfsound\DFSound.vcproj", "{DB25BF63-9B9E-4A40-A45E-BBBA49AD6F22}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DFXVideo", "plugins\dfxvideo\DFXVideo.vcproj", "{30F06328-DD64-4030-AF7A-19FBC74CF298}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SSSPSXpad", "plugins\PadSSSPSX\PadSSSPSX.vcproj", "{0639CDF3-8C1F-47F4-A760-F5568194A083}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpuPeopsOpenGL", "plugins\peopsxgl\gpuPeopsOpenGL.vcproj", "{726BDE88-F2AD-4666-A4BC-5858F973976E}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcsxr", "pcsxr.vcproj", "{9EEA62F5-46DC-4C07-AFE1-F72F9D6B9E3E}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {DB25BF63-9B9E-4A40-A45E-BBBA49AD6F22}.Debug|Win32.ActiveCfg = Debug|Win32
- {DB25BF63-9B9E-4A40-A45E-BBBA49AD6F22}.Debug|Win32.Build.0 = Debug|Win32
- {DB25BF63-9B9E-4A40-A45E-BBBA49AD6F22}.Release|Win32.ActiveCfg = Release|Win32
- {DB25BF63-9B9E-4A40-A45E-BBBA49AD6F22}.Release|Win32.Build.0 = Release|Win32
- {30F06328-DD64-4030-AF7A-19FBC74CF298}.Debug|Win32.ActiveCfg = Debug|Win32
- {30F06328-DD64-4030-AF7A-19FBC74CF298}.Debug|Win32.Build.0 = Debug|Win32
- {30F06328-DD64-4030-AF7A-19FBC74CF298}.Release|Win32.ActiveCfg = Release|Win32
- {30F06328-DD64-4030-AF7A-19FBC74CF298}.Release|Win32.Build.0 = Release|Win32
- {0639CDF3-8C1F-47F4-A760-F5568194A083}.Debug|Win32.ActiveCfg = Debug|Win32
- {0639CDF3-8C1F-47F4-A760-F5568194A083}.Debug|Win32.Build.0 = Debug|Win32
- {0639CDF3-8C1F-47F4-A760-F5568194A083}.Release|Win32.ActiveCfg = Release|Win32
- {0639CDF3-8C1F-47F4-A760-F5568194A083}.Release|Win32.Build.0 = Release|Win32
- {726BDE88-F2AD-4666-A4BC-5858F973976E}.Debug|Win32.ActiveCfg = Debug|Win32
- {726BDE88-F2AD-4666-A4BC-5858F973976E}.Debug|Win32.Build.0 = Debug|Win32
- {726BDE88-F2AD-4666-A4BC-5858F973976E}.Release|Win32.ActiveCfg = Release|Win32
- {726BDE88-F2AD-4666-A4BC-5858F973976E}.Release|Win32.Build.0 = Release|Win32
- {9EEA62F5-46DC-4C07-AFE1-F72F9D6B9E3E}.Debug|Win32.ActiveCfg = Debug|Win32
- {9EEA62F5-46DC-4C07-AFE1-F72F9D6B9E3E}.Debug|Win32.Build.0 = Debug|Win32
- {9EEA62F5-46DC-4C07-AFE1-F72F9D6B9E3E}.Release|Win32.ActiveCfg = Release|Win32
- {9EEA62F5-46DC-4C07-AFE1-F72F9D6B9E3E}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DFSound", "plugins\dfsound\DFSound.vcproj", "{DB25BF63-9B9E-4A40-A45E-BBBA49AD6F22}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DFXVideo", "plugins\dfxvideo\DFXVideo.vcproj", "{30F06328-DD64-4030-AF7A-19FBC74CF298}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SSSPSXpad", "plugins\PadSSSPSX\PadSSSPSX.vcproj", "{0639CDF3-8C1F-47F4-A760-F5568194A083}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpuPeopsOpenGL", "plugins\peopsxgl\gpuPeopsOpenGL.vcproj", "{726BDE88-F2AD-4666-A4BC-5858F973976E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcsxr", "pcsxr.vcproj", "{9EEA62F5-46DC-4C07-AFE1-F72F9D6B9E3E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {DB25BF63-9B9E-4A40-A45E-BBBA49AD6F22}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DB25BF63-9B9E-4A40-A45E-BBBA49AD6F22}.Debug|Win32.Build.0 = Debug|Win32
+ {DB25BF63-9B9E-4A40-A45E-BBBA49AD6F22}.Release|Win32.ActiveCfg = Release|Win32
+ {DB25BF63-9B9E-4A40-A45E-BBBA49AD6F22}.Release|Win32.Build.0 = Release|Win32
+ {30F06328-DD64-4030-AF7A-19FBC74CF298}.Debug|Win32.ActiveCfg = Debug|Win32
+ {30F06328-DD64-4030-AF7A-19FBC74CF298}.Debug|Win32.Build.0 = Debug|Win32
+ {30F06328-DD64-4030-AF7A-19FBC74CF298}.Release|Win32.ActiveCfg = Release|Win32
+ {30F06328-DD64-4030-AF7A-19FBC74CF298}.Release|Win32.Build.0 = Release|Win32
+ {0639CDF3-8C1F-47F4-A760-F5568194A083}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0639CDF3-8C1F-47F4-A760-F5568194A083}.Debug|Win32.Build.0 = Debug|Win32
+ {0639CDF3-8C1F-47F4-A760-F5568194A083}.Release|Win32.ActiveCfg = Release|Win32
+ {0639CDF3-8C1F-47F4-A760-F5568194A083}.Release|Win32.Build.0 = Release|Win32
+ {726BDE88-F2AD-4666-A4BC-5858F973976E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {726BDE88-F2AD-4666-A4BC-5858F973976E}.Debug|Win32.Build.0 = Debug|Win32
+ {726BDE88-F2AD-4666-A4BC-5858F973976E}.Release|Win32.ActiveCfg = Release|Win32
+ {726BDE88-F2AD-4666-A4BC-5858F973976E}.Release|Win32.Build.0 = Release|Win32
+ {9EEA62F5-46DC-4C07-AFE1-F72F9D6B9E3E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9EEA62F5-46DC-4C07-AFE1-F72F9D6B9E3E}.Debug|Win32.Build.0 = Debug|Win32
+ {9EEA62F5-46DC-4C07-AFE1-F72F9D6B9E3E}.Release|Win32.ActiveCfg = Release|Win32
+ {9EEA62F5-46DC-4C07-AFE1-F72F9D6B9E3E}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/win32/pcsxr.vcproj b/win32/pcsxr.vcproj
index ef1c8343..97840480 100644..100755
--- a/win32/pcsxr.vcproj
+++ b/win32/pcsxr.vcproj
@@ -1,1712 +1,1712 @@
-<?xml version="1.0" encoding="gb2312"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="pcsxr"
- ProjectGUID="{9EEA62F5-46DC-4C07-AFE1-F72F9D6B9E3E}"
- RootNamespace="pcsxr"
- TargetFrameworkVersion="0"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory=".\Debug"
- IntermediateDirectory=".\Debug"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Debug/pcsxr.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/Zm200 "
- Optimization="0"
- AdditionalIncludeDirectories="../,./zlib,../libpcsxcore,./glue,./,./gui,./intl"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;__WIN32__;__i386__;PCSXR_VERSION=\&quot;1.5\&quot;;ENABLE_NLS;PACKAGE=\&quot;pcsxr\&quot;;inline="
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- PrecompiledHeaderFile=".\Debug/pcsxr.pch"
- AssemblerListingLocation=".\Debug/"
- ObjectFile=".\Debug/"
- ProgramDataBaseFileName=".\Debug/"
- BrowseInformation="1"
- WarningLevel="3"
- SuppressStartupBanner="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1032"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib wsock32.lib"
- OutputFile=".\Debug/pcsxr.exe"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- GenerateDebugInformation="true"
- ProgramDatabaseFile=".\Debug/pcsxr.pdb"
- SubSystem="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- EmbedManifest="false"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- SuppressStartupBanner="true"
- OutputFile=".\Debug/pcsxr.bsc"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory=".\Release"
- IntermediateDirectory=".\Release"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Release/pcsxr.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/Zm200 "
- Optimization="2"
- InlineFunctionExpansion="2"
- AdditionalIncludeDirectories="../,./zlib,../libpcsxcore,./glue,./,./gui,./intl"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;__WIN32__;_MSC_VER_;PCSXR_VERSION=\&quot;1.5\&quot;;__i386__;ENABLE_NLS;PACKAGE=\&quot;pcsxr\&quot;;inline=__forceinline"
- StringPooling="true"
- RuntimeLibrary="0"
- StructMemberAlignment="5"
- EnableFunctionLevelLinking="true"
- PrecompiledHeaderFile=".\Release/pcsxr.pch"
- AssemblerListingLocation=".\Release/"
- ObjectFile=".\Release/"
- ProgramDataBaseFileName=".\Release/"
- BrowseInformation="1"
- WarningLevel="3"
- SuppressStartupBanner="true"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1032"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib wsock32.lib"
- OutputFile=".\Release/pcsxr.exe"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- SubSystem="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- SuppressStartupBanner="true"
- OutputFile=".\Release/pcsxr.bsc"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="libpcsxcore"
- >
- <File
- RelativePath="..\libpcsxcore\cdriso.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\cdriso.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\cdrom.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\cdrom.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\cheat.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\cheat.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\coff.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\debug.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\debug.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\decode_xa.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\decode_xa.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\disr3000a.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\gpu.c"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\gpu.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\gte.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\gte.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\gte_divider.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\mdec.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\mdec.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\misc.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\misc.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\plugins.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\plugins.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\ppf.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\ppf.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\psemu_plugin_defs.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\psxbios.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\psxbios.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\psxcommon.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\psxcommon.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\psxcounters.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\psxcounters.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\psxdma.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\psxdma.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\psxhle.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\psxhle.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\psxhw.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\psxhw.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\psxinterpreter.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\psxmem.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\psxmem.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\r3000a.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\r3000a.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\sio.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\sio.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\sjisfont.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\socket.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\socket.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\spu.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\spu.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\system.h"
- >
- </File>
- <Filter
- Name="ix86"
- >
- <File
- RelativePath="..\libpcsxcore\ix86\iGte.h"
- >
- </File>
- <File
- RelativePath="..\libpcsxcore\ix86\iR3000A.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\ix86\ix86.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\libpcsxcore\ix86\ix86.h"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="gui"
- >
- <File
- RelativePath="gui\about.bmp"
- >
- </File>
- <File
- RelativePath="gui\AboutDlg.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="gui\AboutDlg.h"
- >
- </File>
- <File
- RelativePath="gui\pcsxr.ico"
- >
- </File>
- <File
- RelativePath="gui\CheatDlg.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="gui\ConfigurePlugins.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="gui\NoPic.h"
- >
- </File>
- <File
- RelativePath="gui\pcsxr.bmp"
- >
- </File>
- <File
- RelativePath="gui\pcsxr.exe.manifest"
- >
- </File>
- <File
- RelativePath="gui\plugin.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="gui\plugin.h"
- >
- </File>
- <File
- RelativePath="gui\Win32.h"
- >
- </File>
- <File
- RelativePath="gui\WndMain.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="zlib"
- >
- <File
- RelativePath="zlib\adler32.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\compress.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\crc32.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\deflate.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\deflate.h"
- >
- </File>
- <File
- RelativePath="zlib\gzio.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\infblock.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\infblock.h"
- >
- </File>
- <File
- RelativePath="zlib\infcodes.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\infcodes.h"
- >
- </File>
- <File
- RelativePath="zlib\inffast.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\inffast.h"
- >
- </File>
- <File
- RelativePath="zlib\inffixed.h"
- >
- </File>
- <File
- RelativePath="zlib\inflate.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\inftrees.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\inftrees.h"
- >
- </File>
- <File
- RelativePath="zlib\infutil.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\infutil.h"
- >
- </File>
- <File
- RelativePath="zlib\trees.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\trees.h"
- >
- </File>
- <File
- RelativePath="zlib\uncompr.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\zconf.h"
- >
- </File>
- <File
- RelativePath="zlib\zlib.h"
- >
- </File>
- <File
- RelativePath="zlib\zutil.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="zlib\zutil.h"
- >
- </File>
- </Filter>
- <Filter
- Name="glue"
- >
- <File
- RelativePath="glue\stdint.h"
- >
- </File>
- <Filter
- Name="sys"
- >
- <File
- RelativePath="glue\sys\mman.h"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="intl"
- >
- <File
- RelativePath="intl\bindtextdom.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="intl\dcgettext.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="intl\dgettext.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="intl\explodename.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="intl\finddomain.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="intl\gettext.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="intl\gettext.h"
- >
- </File>
- <File
- RelativePath="intl\gettextP.h"
- >
- </File>
- <File
- RelativePath="intl\hash-string.h"
- >
- </File>
- <File
- RelativePath="intl\intl-compat.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="intl\intlconfig.h"
- >
- </File>
- <File
- RelativePath="intl\l10nflist.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="intl\libgettext.h"
- >
- </File>
- <File
- RelativePath="intl\libintl.h"
- >
- </File>
- <File
- RelativePath="intl\loadinfo.h"
- >
- </File>
- <File
- RelativePath="intl\loadmsgcat.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="intl\localealias.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="intl\textdomain.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- </Filter>
- <File
- RelativePath="config.h"
- >
- </File>
- <File
- RelativePath="pcsxr.rc"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="resource.h"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="gb2312"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="pcsxr"
+ ProjectGUID="{9EEA62F5-46DC-4C07-AFE1-F72F9D6B9E3E}"
+ RootNamespace="pcsxr"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/pcsxr.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/Zm200 "
+ Optimization="0"
+ AdditionalIncludeDirectories="../,./zlib,../libpcsxcore,./glue,./,./gui,./intl"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;__WIN32__;__i386__;PCSXR_VERSION=\&quot;1.5\&quot;;ENABLE_NLS;PACKAGE=\&quot;pcsxr\&quot;;inline="
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile=".\Debug/pcsxr.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1032"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib wsock32.lib"
+ OutputFile=".\Debug/pcsxr.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\Debug/pcsxr.pdb"
+ SubSystem="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ EmbedManifest="false"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Debug/pcsxr.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/pcsxr.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/Zm200 "
+ Optimization="2"
+ InlineFunctionExpansion="2"
+ AdditionalIncludeDirectories="../,./zlib,../libpcsxcore,./glue,./,./gui,./intl"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;__WIN32__;_MSC_VER_;PCSXR_VERSION=\&quot;1.5\&quot;;__i386__;ENABLE_NLS;PACKAGE=\&quot;pcsxr\&quot;;inline=__forceinline"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ StructMemberAlignment="5"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\Release/pcsxr.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1032"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib wsock32.lib"
+ OutputFile=".\Release/pcsxr.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ SubSystem="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Release/pcsxr.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="libpcsxcore"
+ >
+ <File
+ RelativePath="..\libpcsxcore\cdriso.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\cdriso.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\cdrom.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\cdrom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\cheat.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\cheat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\coff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\debug.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\debug.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\decode_xa.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\decode_xa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\disr3000a.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\gpu.c"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\gpu.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\gte.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\gte.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\gte_divider.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\mdec.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\mdec.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\misc.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\misc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\plugins.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\plugins.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\ppf.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\ppf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psemu_plugin_defs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxbios.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxbios.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxcommon.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxcommon.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxcounters.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxcounters.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxdma.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxdma.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxhle.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxhle.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxhw.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxhw.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxinterpreter.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxmem.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\psxmem.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\r3000a.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\r3000a.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\sio.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\sio.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\sjisfont.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\socket.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\socket.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\spu.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\spu.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\system.h"
+ >
+ </File>
+ <Filter
+ Name="ix86"
+ >
+ <File
+ RelativePath="..\libpcsxcore\ix86\iGte.h"
+ >
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\ix86\iR3000A.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\ix86\ix86.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libpcsxcore\ix86\ix86.h"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="gui"
+ >
+ <File
+ RelativePath="gui\about.bmp"
+ >
+ </File>
+ <File
+ RelativePath="gui\AboutDlg.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="gui\AboutDlg.h"
+ >
+ </File>
+ <File
+ RelativePath="gui\pcsxr.ico"
+ >
+ </File>
+ <File
+ RelativePath="gui\CheatDlg.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="gui\ConfigurePlugins.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="gui\NoPic.h"
+ >
+ </File>
+ <File
+ RelativePath="gui\pcsxr.bmp"
+ >
+ </File>
+ <File
+ RelativePath="gui\pcsxr.exe.manifest"
+ >
+ </File>
+ <File
+ RelativePath="gui\plugin.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="gui\plugin.h"
+ >
+ </File>
+ <File
+ RelativePath="gui\Win32.h"
+ >
+ </File>
+ <File
+ RelativePath="gui\WndMain.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="zlib"
+ >
+ <File
+ RelativePath="zlib\adler32.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\compress.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\crc32.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\deflate.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\deflate.h"
+ >
+ </File>
+ <File
+ RelativePath="zlib\gzio.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\infblock.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\infblock.h"
+ >
+ </File>
+ <File
+ RelativePath="zlib\infcodes.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\infcodes.h"
+ >
+ </File>
+ <File
+ RelativePath="zlib\inffast.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\inffast.h"
+ >
+ </File>
+ <File
+ RelativePath="zlib\inffixed.h"
+ >
+ </File>
+ <File
+ RelativePath="zlib\inflate.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\inftrees.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\inftrees.h"
+ >
+ </File>
+ <File
+ RelativePath="zlib\infutil.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\infutil.h"
+ >
+ </File>
+ <File
+ RelativePath="zlib\trees.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\trees.h"
+ >
+ </File>
+ <File
+ RelativePath="zlib\uncompr.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\zconf.h"
+ >
+ </File>
+ <File
+ RelativePath="zlib\zlib.h"
+ >
+ </File>
+ <File
+ RelativePath="zlib\zutil.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="zlib\zutil.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="glue"
+ >
+ <File
+ RelativePath="glue\stdint.h"
+ >
+ </File>
+ <Filter
+ Name="sys"
+ >
+ <File
+ RelativePath="glue\sys\mman.h"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="intl"
+ >
+ <File
+ RelativePath="intl\bindtextdom.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="intl\dcgettext.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="intl\dgettext.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="intl\explodename.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="intl\finddomain.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="intl\gettext.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="intl\gettext.h"
+ >
+ </File>
+ <File
+ RelativePath="intl\gettextP.h"
+ >
+ </File>
+ <File
+ RelativePath="intl\hash-string.h"
+ >
+ </File>
+ <File
+ RelativePath="intl\intl-compat.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="intl\intlconfig.h"
+ >
+ </File>
+ <File
+ RelativePath="intl\l10nflist.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="intl\libgettext.h"
+ >
+ </File>
+ <File
+ RelativePath="intl\libintl.h"
+ >
+ </File>
+ <File
+ RelativePath="intl\loadinfo.h"
+ >
+ </File>
+ <File
+ RelativePath="intl\loadmsgcat.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="intl\localealias.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="intl\textdomain.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <File
+ RelativePath="config.h"
+ >
+ </File>
+ <File
+ RelativePath="pcsxr.rc"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="resource.h"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/win32/plugins/PadSSSPSX/PadSSSPSX.cpp b/win32/plugins/PadSSSPSX/PadSSSPSX.cpp
index 8de98114..8c494e4d 100644..100755
--- a/win32/plugins/PadSSSPSX/PadSSSPSX.cpp
+++ b/win32/plugins/PadSSSPSX/PadSSSPSX.cpp
@@ -1,1144 +1,1144 @@
-#define WINVER 0x0500
-#define _WIN32_WINNT WINVER
-#define DIRECTINPUT_VERSION 0x0800
-
-// Modified by Wei Mingzhi <whistler_wmz@users.sf.net> at 10/2/2009
-// Added default keys, use registry instead of configuration file
-
-// Modified by Wei Mingzhi <whistler_wmz@users.sf.net> at 12/3/2009
-// Quick hack fix for FF8 "reverting" problem in menus
-// Added configuration for enabling/disabling DualShock
-
-#include <windows.h>
-#include <windowsx.h>
-#include <commctrl.h>
-#include <dinput.h>
-
-#include "PadSSSPSX.h"
-
-static const char* LibraryName = "SSSPSX PAD Plugin Pressure Mod";
-static const unsigned char version = 0x0002;
-static const unsigned char revision = 1;
-static const unsigned char build = 6;
-
-HMODULE hInstance;
-HWND hTargetWnd;
-
-static void (CALLBACK *gpuVisualVibration)(unsigned long, unsigned long) = NULL;
-
-static struct
-{
- Config config;
- int devcnt;
- LPDIRECTINPUT8 pDInput;
- LPDIRECTINPUTDEVICE8 pDKeyboard;
- LPDIRECTINPUTDEVICE8 pDDevice[4];
- LPDIRECTINPUTEFFECT pDEffect[4][2]; /* for Small & Big Motor */
- DIJOYSTATE JoyState[4];
- u16 padStat[2];
- int padID[2];
- int padMode1[2];
- int padMode2[2];
- int padModeE[2];
- int padModeC[2];
- int padModeF[2];
- int padVib0[2];
- int padVib1[2];
- int padVibF[2][4];
- int padVibC[2];
- DWORD padPress[2][16];
- int curPad;
- int curByte;
- int curCmd;
- int cmdLen;
-} global;
-
-static BOOL CALLBACK EnumAxesCallback (LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef)
-{
- LPDIRECTINPUTDEVICE8 pDDevice = (LPDIRECTINPUTDEVICE8)pvRef;
- DIPROPRANGE diprg;
- diprg.diph.dwSize = sizeof (diprg);
- diprg.diph.dwHeaderSize = sizeof (diprg.diph);
- diprg.diph.dwObj = lpddoi->dwType;
- diprg.diph.dwHow = DIPH_BYID;
- diprg.lMin = -128;
- diprg.lMax = 127;
- pDDevice->SetProperty (DIPROP_RANGE, &diprg.diph);
- return DIENUM_CONTINUE;
-}
-
-static BOOL CALLBACK EnumJoysticksCallback (const DIDEVICEINSTANCE* instance, VOID* pContext)
-{
- const int devno = global.devcnt;
- if (devno >= 4)
- return DIENUM_STOP;
- HRESULT result = global.pDInput->CreateDevice (instance->guidInstance, &global.pDDevice[devno], NULL);
- if (FAILED (result))
- return DIENUM_CONTINUE;
- global.devcnt++;
- return DIENUM_CONTINUE;
-}
-
-static bool ReleaseDirectInput (void)
-{
- int index = 4;
- while (index--)
- {
- if (global.pDEffect[index][0])
- {
- global.pDEffect[index][0]->Unload();
- global.pDEffect[index][0]->Release();
- global.pDEffect[index][0] = NULL;
- }
- if (global.pDEffect[index][1])
- {
- global.pDEffect[index][1]->Unload();
- global.pDEffect[index][1]->Release();
- global.pDEffect[index][1] = NULL;
- }
- if (global.pDDevice[index])
- {
- global.pDDevice[index]->Unacquire();
- global.pDDevice[index]->Release();
- global.pDDevice[index] = NULL;
- }
- }
- if (global.pDKeyboard)
- {
- global.pDKeyboard->Unacquire();
- global.pDKeyboard->Release();
- global.pDKeyboard = NULL;
- }
- if (global.pDInput)
- {
- global.pDInput->Release();
- global.pDInput = NULL;
- }
- global.devcnt = 0;
- return FALSE;
-}
-
-static bool InitDirectInput (void)
-{
- if (global.pDInput)
- return TRUE;
- HRESULT result = DirectInput8Create (hInstance, DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&global.pDInput, NULL);
- if (FAILED (result))
- return ReleaseDirectInput();
- result = global.pDInput->CreateDevice (GUID_SysKeyboard, &global.pDKeyboard, NULL);
- if (FAILED (result))
- return ReleaseDirectInput();
- result = global.pDInput->EnumDevices (DI8DEVCLASS_GAMECTRL, EnumJoysticksCallback, NULL, DIEDFL_ATTACHEDONLY);
- if (FAILED (result))
- return ReleaseDirectInput();
- result = global.pDKeyboard->SetDataFormat (&c_dfDIKeyboard);
- if (FAILED (result))
- return ReleaseDirectInput();
- if (hTargetWnd)
- {
- global.pDKeyboard->Unacquire();
- result = global.pDKeyboard->SetCooperativeLevel (hTargetWnd, DISCL_FOREGROUND | DISCL_NONEXCLUSIVE);
- if (FAILED (result))
- return ReleaseDirectInput();
- }
- int index = global.devcnt;
- while (index--)
- {
- const LPDIRECTINPUTDEVICE8 pDDevice = global.pDDevice[index];
- result = pDDevice->SetDataFormat (&c_dfDIJoystick);
- if (FAILED (result))
- return ReleaseDirectInput();
- if (hTargetWnd)
- {
- pDDevice->Unacquire();
- result = pDDevice->SetCooperativeLevel (hTargetWnd, DISCL_FOREGROUND | DISCL_EXCLUSIVE);
- if (FAILED (result))
- return ReleaseDirectInput();
- }
- struct
- {
- DIPROPDWORD dipdw;
- DWORD rgdwAxes[2];
- LONG rglDirection[2];
- DIPERIODIC per;
- DICONSTANTFORCE cf;
- DIEFFECT eff;
- } local;
- memset (&local, 0, sizeof (local));
- local.dipdw.diph.dwSize = sizeof (DIPROPDWORD);
- local.dipdw.diph.dwHeaderSize = sizeof (DIPROPHEADER);
- local.dipdw.diph.dwHow = DIPH_DEVICE;
- local.dipdw.dwData = DIPROPAUTOCENTER_OFF;
- pDDevice->SetProperty (DIPROP_AUTOCENTER, &local.dipdw.diph);
- result = pDDevice->EnumObjects (EnumAxesCallback, pDDevice, DIDFT_AXIS);
- if (FAILED (result))
- return ReleaseDirectInput();
-
- local.rgdwAxes[0] = DIJOFS_X;
- local.rgdwAxes[1] = DIJOFS_Y;
- local.eff.dwSize = sizeof (DIEFFECT);
- local.eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS;
- local.eff.dwDuration = INFINITE;
- local.eff.dwGain = DI_FFNOMINALMAX;
- local.eff.dwTriggerButton = DIEB_NOTRIGGER;
- local.eff.cAxes = 2;
- local.eff.rgdwAxes = local.rgdwAxes;
- local.eff.rglDirection = local.rglDirection;
-
- /* Small Motor */
- local.eff.cbTypeSpecificParams = sizeof (DIPERIODIC);
- local.eff.lpvTypeSpecificParams = &local.per;
- result = pDDevice->CreateEffect (GUID_Square , &local.eff, &global.pDEffect[index][0], NULL);
- if (FAILED (result))
- global.pDEffect[index][0] = NULL;
-
- /* Big Motor */
- local.eff.cbTypeSpecificParams = sizeof (DICONSTANTFORCE);
- local.eff.lpvTypeSpecificParams = &local.cf;
- result = pDDevice->CreateEffect (GUID_ConstantForce , &local.eff, &global.pDEffect[index][1], NULL);
- if (FAILED (result))
- global.pDEffect[index][1] = NULL;
- }
- return TRUE;
-}
-
-static bool AcquireDevice (LPDIRECTINPUTDEVICE8 lpDirectInputDevice)
-{
- if (FAILED (lpDirectInputDevice->Acquire()))
- {
- HRESULT result = lpDirectInputDevice->Acquire();
- if (result == DIERR_OTHERAPPHASPRIO)
- return FALSE;
- if (FAILED (result))
- return ReleaseDirectInput();
- }
- return TRUE;
-}
-
-/* Small Motor */
-static bool SetDeviceForceS (int pad, DWORD force)
-{
- InitDirectInput();
- if (global.pDEffect[pad][0])
- {
- if ( force == 0) {
- if (FAILED (global.pDEffect[pad][0]->Stop())) {
- AcquireDevice (global.pDDevice[pad]);
- if (FAILED (global.pDEffect[pad][0]->Stop()))
- return ReleaseDirectInput();
- }
- return TRUE;
- }
- LONG rglDirection[2] = { 0, 0 };
- DIPERIODIC per;
- rglDirection[0] = force;
- rglDirection[1] = force;
- per.dwMagnitude = force;
- per.dwPeriod = (DWORD) (0.01 * DI_SECONDS);
- per.lOffset = 0;
- per.dwPhase = 0;
- DIEFFECT eff;
- eff.dwSize = sizeof (DIEFFECT);
- eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS;
- eff.cAxes = 2;
- eff.rglDirection = rglDirection;
- eff.lpEnvelope = 0;
- eff.cbTypeSpecificParams = sizeof (DIPERIODIC);
- eff.lpvTypeSpecificParams = &per;
- if (FAILED (global.pDEffect[pad][0]->SetParameters (&eff, DIEP_DIRECTION | DIEP_TYPESPECIFICPARAMS | DIEP_START)))
- return ReleaseDirectInput();
- if (FAILED (global.pDEffect[pad][0]->Start (1, 0)))
- {
- AcquireDevice (global.pDDevice[pad]);
- if (FAILED (global.pDEffect[pad][0]->Start (1, 0)))
- return ReleaseDirectInput();
- }
- }
- return TRUE;
-}
-
-/* Big Motor */
-static bool SetDeviceForceB (int pad, DWORD force)
-{
- InitDirectInput();
- if (global.pDEffect[pad][1])
- {
- if ( force == 0) {
- if (FAILED (global.pDEffect[pad][1]->Stop())) {
- AcquireDevice (global.pDDevice[pad]);
- if (FAILED (global.pDEffect[pad][1]->Stop()))
- return ReleaseDirectInput();
- }
- return TRUE;
- }
- LONG rglDirection[2] = { 0, 0 };
- DICONSTANTFORCE cf;
- rglDirection[0] = force;
- rglDirection[1] = force;
- cf.lMagnitude = force;
- DIEFFECT eff;
- eff.dwSize = sizeof (DIEFFECT);
- eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS;
- eff.cAxes = 2;
- eff.rglDirection = rglDirection;
- eff.lpEnvelope = 0;
- eff.cbTypeSpecificParams = sizeof (DICONSTANTFORCE);
- eff.lpvTypeSpecificParams = &cf;
- if (FAILED (global.pDEffect[pad][1]->SetParameters (&eff, DIEP_DIRECTION | DIEP_TYPESPECIFICPARAMS | DIEP_START)))
- return ReleaseDirectInput();
- if (FAILED (global.pDEffect[pad][1]->Start (1, 0)))
- {
- AcquireDevice (global.pDDevice[pad]);
- if (FAILED (global.pDEffect[pad][1]->Start (1, 0)))
- return ReleaseDirectInput();
- }
- }
- return TRUE;
-}
-
-static bool GetJoyState (const int devno)
-{
- InitDirectInput();
- if (global.pDDevice[devno] == NULL)
- return FALSE;
- global.pDDevice[devno]->Poll();
- if (FAILED (global.pDDevice[devno]->GetDeviceState (sizeof (DIJOYSTATE), &global.JoyState[devno])))
- {
- AcquireDevice (global.pDDevice[devno]);
- return FALSE;
- }
- return TRUE;
-}
-
-static bool GetKeyState (u8* keyboard)
-{
- InitDirectInput();
- if (global.pDKeyboard == NULL)
- return FALSE;
- global.pDKeyboard->Poll();
- if (FAILED (global.pDKeyboard->GetDeviceState (256, keyboard)))
- {
- AcquireDevice (global.pDKeyboard);
- return FALSE;
- }
- return TRUE;
-}
-
-static void SetDefaultConfig (void)
-{
- memset (&global.config, 0, sizeof(global.config));
-
- global.config.keys[0][0] = 0x2E;
- global.config.keys[0][3] = 0x2F;
- global.config.keys[0][4] = 0xC8;
- global.config.keys[0][5] = 0xCD;
- global.config.keys[0][6] = 0xD0;
- global.config.keys[0][7] = 0xCB;
- global.config.keys[0][8] = 0x12;
- global.config.keys[0][9] = 0x14;
- global.config.keys[0][10] = 0x11;
- global.config.keys[0][11] = 0x13;
- global.config.keys[0][12] = 0x20;
- global.config.keys[0][13] = 0x2D;
- global.config.keys[0][14] = 0x2C;
- global.config.keys[0][15] = 0x1F;
-
- global.config.dualshock = FALSE;
-}
-
-static void SaveConfig (void)
-{
- HKEY myKey;
- DWORD myDisp;
-
- RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Vision Thing\\PSEmu Pro\\PAD\\PadSSSPSX", 0, NULL,
- REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &myKey, &myDisp);
-
- RegSetValueEx(myKey, "cfg", 0, REG_BINARY, (CONST BYTE *)&global.config, sizeof(global.config));
-
- RegCloseKey(myKey);
-}
-
-static void LoadConfig (void)
-{
- HKEY myKey;
- DWORD type, size;
-
- SetDefaultConfig ();
-
- if (RegOpenKeyEx (HKEY_CURRENT_USER, "Software\\Vision Thing\\PSEmu Pro\\PAD\\PadSSSPSX", 0,
- KEY_ALL_ACCESS, &myKey) == ERROR_SUCCESS)
- {
- size = sizeof(global.config);
- RegQueryValueEx (myKey, "cfg", NULL, &type, (LPBYTE)&global.config, &size);
- RegCloseKey (myKey);
- }
-
- global.padVibC[0] = global.padVibC[1] = -1;
- for (int cnt = 21; cnt--; )
- {
- const int key0 = global.config.keys[0][cnt];
- if (key0 >= 0x1000)
- global.padVibC[0] = (key0 & 0xfff) / 0x100;
- const int key1 = global.config.keys[1][cnt];
- if (key1 >= 0x1000)
- global.padVibC[1] = (key1 & 0xfff) / 0x100;
- }
-}
-
-static void PADsetMode (const int pad, const int mode)
-{
- static const u8 padID[] = { 0x41, 0x73, 0x41, 0x79 };
- global.padMode1[pad] = mode;
- global.padVib0[pad] = 0;
- global.padVib1[pad] = 0;
- global.padVibF[pad][0] = 0;
- global.padVibF[pad][1] = 0;
- global.padID[pad] = padID[global.padMode2[pad] * 2 + mode];
-}
-
-static void KeyPress (const int pad, const int index, const bool press)
-{
- if (index < 16)
- {
- if (press)
- {
- global.padStat[pad] &= ~(1 << index);
- if (global.padPress[pad][index] == 0)
- global.padPress[pad][index] = GetTickCount();
- }
- else
- {
- global.padStat[pad] |= 1 << index;
- global.padPress[pad][index] = 0;
- }
- }
- else if (global.config.dualshock)
- {
- static bool prev[2] = { FALSE, FALSE };
- if ((prev[pad] != press) && (global.padModeF[pad] == 0))
- {
- prev[pad] = press;
- if (press) PADsetMode (pad, !global.padMode1[pad]);
- }
- }
-}
-
-static void UpdateState (const int pad)
-{
- static int flag_keyboard;
- static int flag_joypad[4];
- if (pad == 0)
- {
- flag_keyboard = 0;
- flag_joypad[0] = 0;
- flag_joypad[1] = 0;
- flag_joypad[2] = 0;
- flag_joypad[3] = 0;
- }
- static u8 keystate[256];
- for (int index = 17; index--; )
- {
- const int key = global.config.keys[pad][index];
- if (key == 0)
- continue;
- else if (key < 0x100)
- {
- if (flag_keyboard == FALSE)
- {
- flag_keyboard = TRUE;
- if (GetKeyState (keystate) == FALSE)
- return;
- }
- KeyPress (pad, index, keystate[key] & 0x80);
- }
- else
- {
- const int joypad = ((key & 0xfff) / 100);
- if (flag_joypad[joypad] == FALSE)
- {
- flag_joypad[joypad] = TRUE;
- if (GetJoyState (joypad) == FALSE)
- return;
- }
- if (key < 0x2000)
- {
- KeyPress (pad, index, global.JoyState[joypad].rgbButtons[key & 0xff]);
- }
- else if (key < 0x3000)
- {
- const int state = ((int*)&global.JoyState[joypad].lX)[(key & 0xff) /2];
- switch (key & 1)
- {
- case 0: KeyPress (pad, index, state < -64); break;
- case 1: KeyPress (pad, index, state >= 64); break;
- }
- }
- else
- {
- const u32 state = global.JoyState[joypad].rgdwPOV[(key & 0xff) /4];
- switch (key & 3)
- {
- case 0: KeyPress (pad, index, (state >= 0 && state <= 4500) || (state >= 31500 && state <= 36000)); break;
- case 1: KeyPress (pad, index, state >= 4500 && state <= 13500); break;
- case 2: KeyPress (pad, index, state >= 13500 && state <= 22500); break;
- case 3: KeyPress (pad, index, state >= 22500 && state <= 31500); break;
- }
- }
- }
- }
-
- /* Small Motor */
- const int vib0 = global.padVibF[pad][0] ? 10000 : 0;
- if ((global.padVibF[pad][2] != vib0) && (global.padVibC[pad] >= 0))
- {
- global.padVibF[pad][2] = vib0;
- SetDeviceForceS (global.padVibC[pad], vib0);
- }
- /* Big Motor */
- const int vib1 = global.padVibF[pad][1] ? 500 + 37*global.padVibF[pad][1] : 0;
- if ((global.padVibF[pad][3] != vib1) && (global.padVibC[pad] >= 0))
- {
- global.padVibF[pad][3] = vib1;
- SetDeviceForceB (global.padVibC[pad], vib1);
- }
-}
-
-static void set_label (const HWND hWnd, const int pad, const int index)
-{
- const int key = global.config.keys[pad][index];
- char buff[64];
- if (key < 0x100)
- {
- if (key == 0)
- strcpy (buff, "NONE");
- else if (GetKeyNameText (key << 16, buff, sizeof (buff)) == 0)
- wsprintf (buff, "Keyboard 0x%02X", key);
- }
- else if (key >= 0x1000 && key < 0x2000)
- {
- wsprintf (buff, "J%d_%d", (key & 0xfff) / 0x100, (key & 0xff) + 1);
- }
- else if (key >= 0x2000 && key < 0x3000)
- {
- static const char name[][4] = { "MIN", "MAX" };
- const int axis = (key & 0xff);
- wsprintf (buff, "J%d_AXIS%d_%s", (key & 0xfff) / 0x100, axis / 2, name[axis % 2]);
- if (index >= 17 && index <= 20)
- buff[strlen (buff) -4] = '\0';
- }
- else if (key >= 0x3000 && key < 0x4000)
- {
- static const char name[][7] = { "FOWARD", "RIGHT", "BACK", "LEFT" };
- const int pov = (key & 0xff);
- wsprintf (buff, "J%d_POV%d_%s", (key & 0xfff) / 0x100, pov /4, name[pov % 4]);
- }
- Button_SetText (GetDlgItem (hWnd, IDC_ESELECT + index), buff);
-}
-
-static BOOL CALLBACK ConfigureDlgProc (const HWND hWnd, const UINT msg, const WPARAM wParam, const LPARAM lParam)
-{
- static BYTE keymaps[2][256];
- static DWORD countdown;
- static int disabled;
- static HWND hTabWnd;
- static int pad;
- int cnt1;
- int cnt2;
- int key;
- switch (msg)
- {
- case WM_INITDIALOG:
- hTargetWnd = hWnd;
- pad = disabled = 0;
- LoadConfig();
- for (cnt1 = 21; cnt1--; )
- set_label (hWnd, pad, cnt1);
- hTabWnd = GetDlgItem (hWnd, IDC_TABC);
- TCITEM tcI;
- tcI.mask = TCIF_TEXT;
- tcI.pszText = "PAD1";
- TabCtrl_InsertItem (hTabWnd, 0, &tcI);
- tcI.mask = TCIF_TEXT;
- tcI.pszText = "PAD2";
- TabCtrl_InsertItem (hTabWnd, 1, &tcI);
- CheckDlgButton(hWnd, IDC_DS2, global.config.dualshock);
- CheckDlgButton(hWnd, IDC_VV3, global.config.visualvibration[0]);
- EnableWindow(GetDlgItem(hWnd, IDC_BMODE), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_BLAX), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_BLAY), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_BRAX), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_BRAY), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_BL3), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_BR3), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_EMODE), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_ELAX), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_ELAY), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_ERAX), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_ERAY), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_EL3), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_ER3), global.config.dualshock);
- SetTimer (hWnd, 0x80, 50, NULL);
- return TRUE;
- case WM_DESTROY:
- break;
- case WM_NOTIFY:
- if (wParam == IDC_TABC)
- {
- if (disabled)
- EnableWindow (GetDlgItem (hWnd, disabled), TRUE);
- disabled = 0;
- pad = TabCtrl_GetCurSel (hTabWnd);
- for (cnt1 = 21; cnt1--; )
- set_label (hWnd, pad, cnt1);
- CheckDlgButton(hWnd, IDC_VV3, global.config.visualvibration[pad]);
- }
- break;
- case WM_COMMAND:
- for (cnt1 = 21; cnt1--; )
- {
- if (LOWORD (wParam) == IDC_BSELECT + cnt1)
- {
- if (disabled)
- EnableWindow (GetDlgItem (hWnd, disabled), TRUE);
- EnableWindow (GetDlgItem (hWnd, disabled = wParam), FALSE);
- EnableWindow (GetDlgItem (hWnd, IDC_DS2), FALSE);
- countdown = GetTickCount();
- GetKeyState (keymaps[0]);
- return TRUE;
- }
- }
- if (LOWORD (wParam) == IDOK)
- EndDialog (hWnd, IDOK);
- else if (LOWORD (wParam) == IDCANCEL)
- EndDialog (hWnd, IDCANCEL);
- else if (LOWORD (wParam) == IDC_DS2)
- {
- global.config.dualshock = IsDlgButtonChecked(hWnd, IDC_DS2);
-
- EnableWindow(GetDlgItem(hWnd, IDC_BMODE), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_BLAX), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_BLAY), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_BRAX), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_BRAY), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_BL3), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_BR3), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_EMODE), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_ELAX), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_ELAY), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_ERAX), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_ERAY), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_EL3), global.config.dualshock);
- EnableWindow(GetDlgItem(hWnd, IDC_ER3), global.config.dualshock);
- }
- else if (LOWORD (wParam) == IDC_VV3)
- {
- global.config.visualvibration[pad] ^= 1;
- }
- break;
- case WM_TIMER:
- if (disabled)
- {
- const int index = disabled - IDC_BSELECT;
- int analog = FALSE;
- if ((GetTickCount() - countdown) / 1000 != 10)
- {
- char buff[64];
- wsprintf (buff, "Timeout: %d", 10 - (GetTickCount() - countdown) / 1000);
- SetWindowText (GetDlgItem (hWnd, IDC_ESELECT + index), buff);
- }
- else
- {
- global.config.keys[pad][index] = 0;
- set_label (hWnd, pad, index);
- EnableWindow (GetDlgItem (hWnd, disabled), TRUE);
- EnableWindow (GetDlgItem (hWnd, IDC_DS2), TRUE);
- disabled = 0;
- break;
- }
- if (GetKeyState (keymaps[1]) == FALSE)
- break;
- for (key = 0x100; key--; )
- {
- if (~keymaps[0][key] & keymaps[1][key] & 0x80)
- break;
- }
- for (cnt1 = global.devcnt; cnt1--;)
- {
- if (GetJoyState (cnt1) == FALSE)
- break;
-
- for (cnt2 = 32; cnt2--; )
- {
- if (global.JoyState[cnt1].rgbButtons[cnt2])
- key = 0x1000 + 0x100 * cnt1 + cnt2;
- }
- for (cnt2 = 8; cnt2--; )
- {
- const int now = ((u32*)&global.JoyState[cnt1].lX)[cnt2];
- if (now < -64)
- {
- key = 0x2000 + 0x100 * cnt1 + cnt2 * 2 +0;
- analog = TRUE;
- }
- else if (now >= 64)
- {
- key = 0x2000 + 0x100 * cnt1 + cnt2 * 2 +1;
- analog = TRUE;
- }
- }
- for (cnt2 = 4; cnt2--; )
- {
- const u32 now = global.JoyState[cnt1].rgdwPOV[cnt2];
- if ((now >= 0 && now < 4500) || (now >= 31500 && now < 36000))
- key = 0x3000 + 0x100 * cnt1 + cnt2 * 4 +0;
- if (now >= 4500 && now < 13500)
- key = 0x3000 + 0x100 * cnt1 + cnt2 * 4 +1;
- if (now >= 13500 && now < 22500)
- key = 0x3000 + 0x100 * cnt1 + cnt2 * 4 +2;
- if (now >= 22500 && now < 31500)
- key = 0x3000 + 0x100 * cnt1 + cnt2 * 4 +3;
- }
- }
- if (index >= 17 && index <= 20 && analog == 0)
- key = 0;
- else if (key > 0)
- {
- if (key != 1)
- global.config.keys[pad][index] = key;
- set_label (hWnd, pad, index);
- EnableWindow (GetDlgItem (hWnd, disabled), TRUE);
- EnableWindow (GetDlgItem (hWnd, IDC_DS2), TRUE);
- disabled = 0;
- }
- }
- }
- return FALSE;
-}
-
-u32 CALLBACK PS2EgetLibType (void)
-{
- return 0x02;
-}
-
-const char* CALLBACK PS2EgetLibName (void)
-{
- return LibraryName;
-}
-
-u32 CALLBACK PS2EgetLibVersion2 (u32 type)
-{
- return (version << 16) | (revision << 8) | build;
-}
-
-u32 CALLBACK PSEgetLibType (void)
-{
- return 8;
-}
-
-const char* CALLBACK PSEgetLibName (void)
-{
- return LibraryName;
-}
-
-u32 CALLBACK PSEgetLibVersion (void)
-{
- return (version << 16) | (revision << 8) | build;
-}
-
-s32 CALLBACK PADinit (u32 flags)
-{
- return 0;
-}
-
-void CALLBACK PADshutdown (void)
-{
-}
-
-static int n_open = 0;
-s32 CALLBACK PADopen (HWND hWnd)
-{
- if (!IsWindow (hWnd) && !IsBadReadPtr ((u32*)hWnd, 4))
- hWnd = *(HWND*)hWnd;
- if (!IsWindow (hWnd))
- hWnd = NULL;
- else
- {
- while (GetWindowLong (hWnd, GWL_STYLE) & WS_CHILD)
- hWnd = GetParent (hWnd);
- }
- hTargetWnd = hWnd;
- if (n_open++ == FALSE)
- {
- memset (&global, 0, sizeof (global));
- global.padStat[0] = 0xffff;
- global.padStat[1] = 0xffff;
- LoadConfig();
- PADsetMode (0, 0);
- PADsetMode (1, 0);
- }
- return 0;
-}
-
-void CALLBACK PADclose (void)
-{
- if (--n_open == 0)
- ReleaseDirectInput();
-}
-
-u32 CALLBACK PADquery (void)
-{
- return 3;
-}
-
-u8 CALLBACK PADstartPoll (int pad)
-{
- global.curPad = pad -1;
- global.curByte = 0;
- return 0xff;
-}
-
-static const u8 cmd40[8] =
-{
- 0xff, 0x5a, 0x00, 0x00, 0x02, 0x00, 0x00, 0x5a
-};
-static const u8 cmd41[8] =
-{
- 0xff, 0x5a, 0xff, 0xff, 0x03, 0x00, 0x00, 0x5a,
-};
-static const u8 cmd44[8] =
-{
- 0xff, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-static const u8 cmd45[8] =
-{
- 0xff, 0x5a, 0x03, 0x02, 0x01, 0x02, 0x01, 0x00,
-};
-static const u8 cmd46[8] =
-{
- 0xff, 0x5a, 0x00, 0x00, 0x01, 0x02, 0x00, 0x0a,
-};
-static const u8 cmd47[8] =
-{
- 0xff, 0x5a, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00,
-};
-static const u8 cmd4c[8] =
-{
- 0xff, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-static const u8 cmd4d[8] =
-{
- 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-};
-static const u8 cmd4f[8] =
-{
- 0xff, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a,
-};
-
-static u8 get_analog (const int key)
-{
- const int pad = ((key & 0xf00) / 0x100);
- const int pos = ((key & 0x0ff) /2);
-// return (u8)(((int*)&global.JoyState[pad].lX)[pos] + 128);
- u8 r = (u8)(((int*)&global.JoyState[pad].lX)[pos] + 128);
- if (r == 128) r = 127; // FIXME: ???
- return r;
-}
-
-static u8 get_pressure (const DWORD now, const DWORD press)
-{
- /*if (press == 0)
- return 0;
- return (u8)((now - press > 2550) ? 255 : (now - press) / 10);*/
- return 255;
-}
-
-u8 CALLBACK PADpoll (u8 value)
-{
- const int pad = global.curPad;
- const int cur = global.curByte;
- static u8 buf[20];
-
- if (!global.config.dualshock)
- {
- value = 0x42;
- }
-
- if (cur == 0)
- {
- global.curByte++;
- global.curCmd = value;
- switch (value)
- {
- case 0x40:
- global.cmdLen = sizeof (cmd40);
- memcpy (buf, cmd40, sizeof (cmd40));
- return 0xf3;
- case 0x41:
- global.cmdLen = sizeof (cmd41);
- memcpy (buf, cmd41, sizeof (cmd41));
- return 0xf3;
- case 0x42:
- case 0x43:
- if (value == 0x42) UpdateState (pad);
- global.cmdLen = 2 + 2 * (global.padID[pad] & 0x0f);
- buf[1] = global.padModeC[pad] ? 0x00 : 0x5a;
- *(u16*)&buf[2] = global.padStat[pad];
- if (value == 0x43 && global.padModeE[pad])
- {
- buf[4] = 0;
- buf[5] = 0;
- buf[6] = 0;
- buf[7] = 0;
- return 0xf3;
- }
- else
- {
- buf[ 4] = get_analog (global.config.keys[pad][19]);
- buf[ 5] = get_analog (global.config.keys[pad][20]);
- buf[ 6] = get_analog (global.config.keys[pad][17]);
- buf[ 7] = get_analog (global.config.keys[pad][18]);
-
- if (global.padID[pad] == 0x79)
- {
- const DWORD now = GetTickCount();
- buf[ 8] = get_pressure (now, global.padPress[pad][2]);
- buf[ 9] = get_pressure (now, global.padPress[pad][0]);
- buf[10] = get_pressure (now, global.padPress[pad][3]);
- buf[11] = get_pressure (now, global.padPress[pad][1]);
- buf[12] = get_pressure (now, global.padPress[pad][11]);
- buf[13] = get_pressure (now, global.padPress[pad][10]);
- buf[14] = get_pressure (now, global.padPress[pad][9]);
- buf[15] = get_pressure (now, global.padPress[pad][8]);
- buf[16] = get_pressure (now, global.padPress[pad][13]);
- buf[17] = get_pressure (now, global.padPress[pad][12]);
- buf[18] = get_pressure (now, global.padPress[pad][15]);
- buf[19] = get_pressure (now, global.padPress[pad][14]);
- }
- return (u8)global.padID[pad];
- }
- break;
- case 0x44:
- global.cmdLen = sizeof (cmd44);
- memcpy (buf, cmd44, sizeof (cmd44));
- return 0xf3;
- case 0x45:
- global.cmdLen = sizeof (cmd45);
- memcpy (buf, cmd45, sizeof (cmd45));
- buf[4] = (u8)global.padMode1[pad];
- return 0xf3;
- case 0x46:
- global.cmdLen = sizeof (cmd46);
- memcpy (buf, cmd46, sizeof (cmd46));
- return 0xf3;
- case 0x47:
- global.cmdLen = sizeof (cmd47);
- memcpy (buf, cmd47, sizeof (cmd47));
- return 0xf3;
- case 0x4c:
- global.cmdLen = sizeof (cmd4c);
- memcpy (buf, cmd4c, sizeof (cmd4c));
- return 0xf3;
- case 0x4d:
- global.cmdLen = sizeof (cmd4d);
- memcpy (buf, cmd4d, sizeof (cmd4d));
- return 0xf3;
- case 0x4f:
- global.padID[pad] = 0x79;
- global.padMode2[pad] = 1;
- global.cmdLen = sizeof (cmd4f);
- memcpy (buf, cmd4f, sizeof (cmd4f));
- return 0xf3;
- }
- }
- switch (global.curCmd)
- {
- case 0x42:
- if (global.config.dualshock)
- {
- if (cur == global.padVib0[pad])
- {
- global.padVibF[pad][0] = value;
-
- if (gpuVisualVibration != NULL && (global.padVibF[pad][0] || global.padVibF[pad][1]) &&
- global.config.visualvibration[pad])
- gpuVisualVibration(global.padVibF[pad][0], global.padVibF[pad][1]);
- }
-
- if (cur == global.padVib1[pad])
- {
- global.padVibF[pad][1] = value;
-
- if (gpuVisualVibration != NULL && (global.padVibF[pad][0] || global.padVibF[pad][1]) &&
- global.config.visualvibration[pad])
- gpuVisualVibration(global.padVibF[pad][0], global.padVibF[pad][1]);
- }
- }
- break;
- case 0x43:
- if (cur == 2)
- {
- global.padModeE[pad] = value;
- global.padModeC[pad] = 0;
- }
- break;
- case 0x44:
- if (cur == 2)
- PADsetMode (pad, value);
- if (cur == 3)
- global.padModeF[pad] = (value == 3);
- break;
- case 0x46:
- if (cur == 2)
- {
- switch(value)
- {
- case 0:
- buf[5] = 0x02;
- buf[6] = 0x00;
- buf[7] = 0x0A;
- break;
- case 1:
- buf[5] = 0x01;
- buf[6] = 0x01;
- buf[7] = 0x14;
- break;
- }
- }
- break;
- case 0x4c:
- if (cur == 2)
- {
- static const u8 buf5[] = { 0x04, 0x07, 0x02, 0x05 };
- buf[5] = buf5[value & 3];
- }
- break;
- case 0x4d:
- if (cur >= 2)
- {
- if (cur == global.padVib0[pad])
- buf[cur] = 0x00;
- if (cur == global.padVib1[pad])
- buf[cur] = 0x01;
- if (value == 0x00)
- {
- global.padVib0[pad] = cur;
- if ((global.padID[pad] & 0x0f) < (cur - 1) / 2)
- global.padID[pad] = (global.padID[pad] & 0xf0) + (cur - 1) / 2;
- }
- else if (value == 0x01)
- {
- global.padVib1[pad] = cur;
- if ((global.padID[pad] & 0x0f) < (cur - 1) / 2)
- global.padID[pad] = (global.padID[pad] & 0xf0) + (cur - 1) / 2;
- }
- }
- break;
- }
- if (cur >= global.cmdLen)
- return 0;
- return buf[global.curByte++];
-}
-
-typedef struct
-{
- unsigned char controllerType;
- unsigned short buttonStatus;
- unsigned char rightJoyX, rightJoyY, leftJoyX, leftJoyY;
- unsigned char moveX, moveY;
- unsigned char reserved[91];
-} PadDataS;
-
-long PADreadPort1 (PadDataS* pads)
-{
- memset (pads, 0, sizeof (PadDataS));
- if ((global.padID[0] & 0xf0) == 0x40)
- pads->controllerType = 4;
- else
- pads->controllerType = 7;
- pads->buttonStatus = global.padStat[0];
- pads->leftJoyX = get_analog (global.config.keys[0][17]);
- pads->leftJoyY = get_analog (global.config.keys[0][18]);
- pads->rightJoyX = get_analog (global.config.keys[0][19]);
- pads->rightJoyY = get_analog (global.config.keys[0][20]);
- pads->moveX = 0;
- pads->moveY = 0;
- return 0;
-}
-
-long PADreadPort2 (PadDataS* pads)
-{
- memset (pads, 0, sizeof (PadDataS));
- if ((global.padID[1] & 0xf0) == 0x40)
- pads->controllerType = 4;
- else
- pads->controllerType = 7;
- pads->buttonStatus = global.padStat[1];
- pads->leftJoyX = get_analog (global.config.keys[1][17]);
- pads->leftJoyY = get_analog (global.config.keys[1][18]);
- pads->rightJoyX = get_analog (global.config.keys[1][19]);
- pads->rightJoyY = get_analog (global.config.keys[1][20]);
- pads->moveX = 0;
- pads->moveY = 0;
- return 0;
-}
-
-keyEvent* CALLBACK PADkeyEvent (void)
-{
- static keyEvent ev;
- static u8 state[2][256];
- if (n_open)
- {
- memcpy (state[0], state[1], sizeof (state[0]));
- GetKeyState (state[1]);
- for (int cnt = 0; cnt < 256; cnt++)
- {
- if (~state[0][cnt] & state[1][cnt] & 0x80)
- {
- ev.event = (state[1][cnt] & 0x80) ? 1 : 2;
- ev.key = MapVirtualKey (cnt, 1);
- return &ev;
- }
- }
- }
- return NULL;
-}
-
-void CALLBACK PADconfigure (void)
-{
- if (n_open == 0)
- {
- memset (&global, 0, sizeof (global));
- if (DialogBox (hInstance, MAKEINTRESOURCE (IDD_DIALOG1), GetActiveWindow(), (DLGPROC)ConfigureDlgProc) == IDOK)
- SaveConfig();
- ReleaseDirectInput();
- }
-}
-
-void CALLBACK PADabout (void)
-{
- MessageBox (0, "Copyright (C) 2004-2005 Nagisa", "SSSPSX PAD plugin", 0);
-}
-
-s32 CALLBACK PADtest (void)
-{
- return 0;
-}
-
-void CALLBACK PADregisterVibration(void (CALLBACK *callback)(unsigned long, unsigned long)) {
- gpuVisualVibration = callback;
-}
-
-//#ifdef _WIN64
-BOOL APIENTRY DllMain(HMODULE hInst, DWORD dwReason, LPVOID lpReserved)
-{
- hInstance = hInst;
- return TRUE;
-}
-//#else
-BOOL APIENTRY EntryPoint (HMODULE hInst, DWORD dwReason, LPVOID lpReserved)
-{
- hInstance = hInst;
- return TRUE;
-}
-//#endif
+#define WINVER 0x0500
+#define _WIN32_WINNT WINVER
+#define DIRECTINPUT_VERSION 0x0800
+
+// Modified by Wei Mingzhi <whistler_wmz@users.sf.net> at 10/2/2009
+// Added default keys, use registry instead of configuration file
+
+// Modified by Wei Mingzhi <whistler_wmz@users.sf.net> at 12/3/2009
+// Quick hack fix for FF8 "reverting" problem in menus
+// Added configuration for enabling/disabling DualShock
+
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+#include <dinput.h>
+
+#include "PadSSSPSX.h"
+
+static const char* LibraryName = "SSSPSX PAD Plugin Pressure Mod";
+static const unsigned char version = 0x0002;
+static const unsigned char revision = 1;
+static const unsigned char build = 6;
+
+HMODULE hInstance;
+HWND hTargetWnd;
+
+static void (CALLBACK *gpuVisualVibration)(unsigned long, unsigned long) = NULL;
+
+static struct
+{
+ Config config;
+ int devcnt;
+ LPDIRECTINPUT8 pDInput;
+ LPDIRECTINPUTDEVICE8 pDKeyboard;
+ LPDIRECTINPUTDEVICE8 pDDevice[4];
+ LPDIRECTINPUTEFFECT pDEffect[4][2]; /* for Small & Big Motor */
+ DIJOYSTATE JoyState[4];
+ u16 padStat[2];
+ int padID[2];
+ int padMode1[2];
+ int padMode2[2];
+ int padModeE[2];
+ int padModeC[2];
+ int padModeF[2];
+ int padVib0[2];
+ int padVib1[2];
+ int padVibF[2][4];
+ int padVibC[2];
+ DWORD padPress[2][16];
+ int curPad;
+ int curByte;
+ int curCmd;
+ int cmdLen;
+} global;
+
+static BOOL CALLBACK EnumAxesCallback (LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef)
+{
+ LPDIRECTINPUTDEVICE8 pDDevice = (LPDIRECTINPUTDEVICE8)pvRef;
+ DIPROPRANGE diprg;
+ diprg.diph.dwSize = sizeof (diprg);
+ diprg.diph.dwHeaderSize = sizeof (diprg.diph);
+ diprg.diph.dwObj = lpddoi->dwType;
+ diprg.diph.dwHow = DIPH_BYID;
+ diprg.lMin = -128;
+ diprg.lMax = 127;
+ pDDevice->SetProperty (DIPROP_RANGE, &diprg.diph);
+ return DIENUM_CONTINUE;
+}
+
+static BOOL CALLBACK EnumJoysticksCallback (const DIDEVICEINSTANCE* instance, VOID* pContext)
+{
+ const int devno = global.devcnt;
+ if (devno >= 4)
+ return DIENUM_STOP;
+ HRESULT result = global.pDInput->CreateDevice (instance->guidInstance, &global.pDDevice[devno], NULL);
+ if (FAILED (result))
+ return DIENUM_CONTINUE;
+ global.devcnt++;
+ return DIENUM_CONTINUE;
+}
+
+static bool ReleaseDirectInput (void)
+{
+ int index = 4;
+ while (index--)
+ {
+ if (global.pDEffect[index][0])
+ {
+ global.pDEffect[index][0]->Unload();
+ global.pDEffect[index][0]->Release();
+ global.pDEffect[index][0] = NULL;
+ }
+ if (global.pDEffect[index][1])
+ {
+ global.pDEffect[index][1]->Unload();
+ global.pDEffect[index][1]->Release();
+ global.pDEffect[index][1] = NULL;
+ }
+ if (global.pDDevice[index])
+ {
+ global.pDDevice[index]->Unacquire();
+ global.pDDevice[index]->Release();
+ global.pDDevice[index] = NULL;
+ }
+ }
+ if (global.pDKeyboard)
+ {
+ global.pDKeyboard->Unacquire();
+ global.pDKeyboard->Release();
+ global.pDKeyboard = NULL;
+ }
+ if (global.pDInput)
+ {
+ global.pDInput->Release();
+ global.pDInput = NULL;
+ }
+ global.devcnt = 0;
+ return FALSE;
+}
+
+static bool InitDirectInput (void)
+{
+ if (global.pDInput)
+ return TRUE;
+ HRESULT result = DirectInput8Create (hInstance, DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&global.pDInput, NULL);
+ if (FAILED (result))
+ return ReleaseDirectInput();
+ result = global.pDInput->CreateDevice (GUID_SysKeyboard, &global.pDKeyboard, NULL);
+ if (FAILED (result))
+ return ReleaseDirectInput();
+ result = global.pDInput->EnumDevices (DI8DEVCLASS_GAMECTRL, EnumJoysticksCallback, NULL, DIEDFL_ATTACHEDONLY);
+ if (FAILED (result))
+ return ReleaseDirectInput();
+ result = global.pDKeyboard->SetDataFormat (&c_dfDIKeyboard);
+ if (FAILED (result))
+ return ReleaseDirectInput();
+ if (hTargetWnd)
+ {
+ global.pDKeyboard->Unacquire();
+ result = global.pDKeyboard->SetCooperativeLevel (hTargetWnd, DISCL_FOREGROUND | DISCL_NONEXCLUSIVE);
+ if (FAILED (result))
+ return ReleaseDirectInput();
+ }
+ int index = global.devcnt;
+ while (index--)
+ {
+ const LPDIRECTINPUTDEVICE8 pDDevice = global.pDDevice[index];
+ result = pDDevice->SetDataFormat (&c_dfDIJoystick);
+ if (FAILED (result))
+ return ReleaseDirectInput();
+ if (hTargetWnd)
+ {
+ pDDevice->Unacquire();
+ result = pDDevice->SetCooperativeLevel (hTargetWnd, DISCL_FOREGROUND | DISCL_EXCLUSIVE);
+ if (FAILED (result))
+ return ReleaseDirectInput();
+ }
+ struct
+ {
+ DIPROPDWORD dipdw;
+ DWORD rgdwAxes[2];
+ LONG rglDirection[2];
+ DIPERIODIC per;
+ DICONSTANTFORCE cf;
+ DIEFFECT eff;
+ } local;
+ memset (&local, 0, sizeof (local));
+ local.dipdw.diph.dwSize = sizeof (DIPROPDWORD);
+ local.dipdw.diph.dwHeaderSize = sizeof (DIPROPHEADER);
+ local.dipdw.diph.dwHow = DIPH_DEVICE;
+ local.dipdw.dwData = DIPROPAUTOCENTER_OFF;
+ pDDevice->SetProperty (DIPROP_AUTOCENTER, &local.dipdw.diph);
+ result = pDDevice->EnumObjects (EnumAxesCallback, pDDevice, DIDFT_AXIS);
+ if (FAILED (result))
+ return ReleaseDirectInput();
+
+ local.rgdwAxes[0] = DIJOFS_X;
+ local.rgdwAxes[1] = DIJOFS_Y;
+ local.eff.dwSize = sizeof (DIEFFECT);
+ local.eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS;
+ local.eff.dwDuration = INFINITE;
+ local.eff.dwGain = DI_FFNOMINALMAX;
+ local.eff.dwTriggerButton = DIEB_NOTRIGGER;
+ local.eff.cAxes = 2;
+ local.eff.rgdwAxes = local.rgdwAxes;
+ local.eff.rglDirection = local.rglDirection;
+
+ /* Small Motor */
+ local.eff.cbTypeSpecificParams = sizeof (DIPERIODIC);
+ local.eff.lpvTypeSpecificParams = &local.per;
+ result = pDDevice->CreateEffect (GUID_Square , &local.eff, &global.pDEffect[index][0], NULL);
+ if (FAILED (result))
+ global.pDEffect[index][0] = NULL;
+
+ /* Big Motor */
+ local.eff.cbTypeSpecificParams = sizeof (DICONSTANTFORCE);
+ local.eff.lpvTypeSpecificParams = &local.cf;
+ result = pDDevice->CreateEffect (GUID_ConstantForce , &local.eff, &global.pDEffect[index][1], NULL);
+ if (FAILED (result))
+ global.pDEffect[index][1] = NULL;
+ }
+ return TRUE;
+}
+
+static bool AcquireDevice (LPDIRECTINPUTDEVICE8 lpDirectInputDevice)
+{
+ if (FAILED (lpDirectInputDevice->Acquire()))
+ {
+ HRESULT result = lpDirectInputDevice->Acquire();
+ if (result == DIERR_OTHERAPPHASPRIO)
+ return FALSE;
+ if (FAILED (result))
+ return ReleaseDirectInput();
+ }
+ return TRUE;
+}
+
+/* Small Motor */
+static bool SetDeviceForceS (int pad, DWORD force)
+{
+ InitDirectInput();
+ if (global.pDEffect[pad][0])
+ {
+ if ( force == 0) {
+ if (FAILED (global.pDEffect[pad][0]->Stop())) {
+ AcquireDevice (global.pDDevice[pad]);
+ if (FAILED (global.pDEffect[pad][0]->Stop()))
+ return ReleaseDirectInput();
+ }
+ return TRUE;
+ }
+ LONG rglDirection[2] = { 0, 0 };
+ DIPERIODIC per;
+ rglDirection[0] = force;
+ rglDirection[1] = force;
+ per.dwMagnitude = force;
+ per.dwPeriod = (DWORD) (0.01 * DI_SECONDS);
+ per.lOffset = 0;
+ per.dwPhase = 0;
+ DIEFFECT eff;
+ eff.dwSize = sizeof (DIEFFECT);
+ eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS;
+ eff.cAxes = 2;
+ eff.rglDirection = rglDirection;
+ eff.lpEnvelope = 0;
+ eff.cbTypeSpecificParams = sizeof (DIPERIODIC);
+ eff.lpvTypeSpecificParams = &per;
+ if (FAILED (global.pDEffect[pad][0]->SetParameters (&eff, DIEP_DIRECTION | DIEP_TYPESPECIFICPARAMS | DIEP_START)))
+ return ReleaseDirectInput();
+ if (FAILED (global.pDEffect[pad][0]->Start (1, 0)))
+ {
+ AcquireDevice (global.pDDevice[pad]);
+ if (FAILED (global.pDEffect[pad][0]->Start (1, 0)))
+ return ReleaseDirectInput();
+ }
+ }
+ return TRUE;
+}
+
+/* Big Motor */
+static bool SetDeviceForceB (int pad, DWORD force)
+{
+ InitDirectInput();
+ if (global.pDEffect[pad][1])
+ {
+ if ( force == 0) {
+ if (FAILED (global.pDEffect[pad][1]->Stop())) {
+ AcquireDevice (global.pDDevice[pad]);
+ if (FAILED (global.pDEffect[pad][1]->Stop()))
+ return ReleaseDirectInput();
+ }
+ return TRUE;
+ }
+ LONG rglDirection[2] = { 0, 0 };
+ DICONSTANTFORCE cf;
+ rglDirection[0] = force;
+ rglDirection[1] = force;
+ cf.lMagnitude = force;
+ DIEFFECT eff;
+ eff.dwSize = sizeof (DIEFFECT);
+ eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS;
+ eff.cAxes = 2;
+ eff.rglDirection = rglDirection;
+ eff.lpEnvelope = 0;
+ eff.cbTypeSpecificParams = sizeof (DICONSTANTFORCE);
+ eff.lpvTypeSpecificParams = &cf;
+ if (FAILED (global.pDEffect[pad][1]->SetParameters (&eff, DIEP_DIRECTION | DIEP_TYPESPECIFICPARAMS | DIEP_START)))
+ return ReleaseDirectInput();
+ if (FAILED (global.pDEffect[pad][1]->Start (1, 0)))
+ {
+ AcquireDevice (global.pDDevice[pad]);
+ if (FAILED (global.pDEffect[pad][1]->Start (1, 0)))
+ return ReleaseDirectInput();
+ }
+ }
+ return TRUE;
+}
+
+static bool GetJoyState (const int devno)
+{
+ InitDirectInput();
+ if (global.pDDevice[devno] == NULL)
+ return FALSE;
+ global.pDDevice[devno]->Poll();
+ if (FAILED (global.pDDevice[devno]->GetDeviceState (sizeof (DIJOYSTATE), &global.JoyState[devno])))
+ {
+ AcquireDevice (global.pDDevice[devno]);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static bool GetKeyState (u8* keyboard)
+{
+ InitDirectInput();
+ if (global.pDKeyboard == NULL)
+ return FALSE;
+ global.pDKeyboard->Poll();
+ if (FAILED (global.pDKeyboard->GetDeviceState (256, keyboard)))
+ {
+ AcquireDevice (global.pDKeyboard);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static void SetDefaultConfig (void)
+{
+ memset (&global.config, 0, sizeof(global.config));
+
+ global.config.keys[0][0] = 0x2E;
+ global.config.keys[0][3] = 0x2F;
+ global.config.keys[0][4] = 0xC8;
+ global.config.keys[0][5] = 0xCD;
+ global.config.keys[0][6] = 0xD0;
+ global.config.keys[0][7] = 0xCB;
+ global.config.keys[0][8] = 0x12;
+ global.config.keys[0][9] = 0x14;
+ global.config.keys[0][10] = 0x11;
+ global.config.keys[0][11] = 0x13;
+ global.config.keys[0][12] = 0x20;
+ global.config.keys[0][13] = 0x2D;
+ global.config.keys[0][14] = 0x2C;
+ global.config.keys[0][15] = 0x1F;
+
+ global.config.dualshock = FALSE;
+}
+
+static void SaveConfig (void)
+{
+ HKEY myKey;
+ DWORD myDisp;
+
+ RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Vision Thing\\PSEmu Pro\\PAD\\PadSSSPSX", 0, NULL,
+ REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &myKey, &myDisp);
+
+ RegSetValueEx(myKey, "cfg", 0, REG_BINARY, (CONST BYTE *)&global.config, sizeof(global.config));
+
+ RegCloseKey(myKey);
+}
+
+static void LoadConfig (void)
+{
+ HKEY myKey;
+ DWORD type, size;
+
+ SetDefaultConfig ();
+
+ if (RegOpenKeyEx (HKEY_CURRENT_USER, "Software\\Vision Thing\\PSEmu Pro\\PAD\\PadSSSPSX", 0,
+ KEY_ALL_ACCESS, &myKey) == ERROR_SUCCESS)
+ {
+ size = sizeof(global.config);
+ RegQueryValueEx (myKey, "cfg", NULL, &type, (LPBYTE)&global.config, &size);
+ RegCloseKey (myKey);
+ }
+
+ global.padVibC[0] = global.padVibC[1] = -1;
+ for (int cnt = 21; cnt--; )
+ {
+ const int key0 = global.config.keys[0][cnt];
+ if (key0 >= 0x1000)
+ global.padVibC[0] = (key0 & 0xfff) / 0x100;
+ const int key1 = global.config.keys[1][cnt];
+ if (key1 >= 0x1000)
+ global.padVibC[1] = (key1 & 0xfff) / 0x100;
+ }
+}
+
+static void PADsetMode (const int pad, const int mode)
+{
+ static const u8 padID[] = { 0x41, 0x73, 0x41, 0x79 };
+ global.padMode1[pad] = mode;
+ global.padVib0[pad] = 0;
+ global.padVib1[pad] = 0;
+ global.padVibF[pad][0] = 0;
+ global.padVibF[pad][1] = 0;
+ global.padID[pad] = padID[global.padMode2[pad] * 2 + mode];
+}
+
+static void KeyPress (const int pad, const int index, const bool press)
+{
+ if (index < 16)
+ {
+ if (press)
+ {
+ global.padStat[pad] &= ~(1 << index);
+ if (global.padPress[pad][index] == 0)
+ global.padPress[pad][index] = GetTickCount();
+ }
+ else
+ {
+ global.padStat[pad] |= 1 << index;
+ global.padPress[pad][index] = 0;
+ }
+ }
+ else if (global.config.dualshock)
+ {
+ static bool prev[2] = { FALSE, FALSE };
+ if ((prev[pad] != press) && (global.padModeF[pad] == 0))
+ {
+ prev[pad] = press;
+ if (press) PADsetMode (pad, !global.padMode1[pad]);
+ }
+ }
+}
+
+static void UpdateState (const int pad)
+{
+ static int flag_keyboard;
+ static int flag_joypad[4];
+ if (pad == 0)
+ {
+ flag_keyboard = 0;
+ flag_joypad[0] = 0;
+ flag_joypad[1] = 0;
+ flag_joypad[2] = 0;
+ flag_joypad[3] = 0;
+ }
+ static u8 keystate[256];
+ for (int index = 17; index--; )
+ {
+ const int key = global.config.keys[pad][index];
+ if (key == 0)
+ continue;
+ else if (key < 0x100)
+ {
+ if (flag_keyboard == FALSE)
+ {
+ flag_keyboard = TRUE;
+ if (GetKeyState (keystate) == FALSE)
+ return;
+ }
+ KeyPress (pad, index, keystate[key] & 0x80);
+ }
+ else
+ {
+ const int joypad = ((key & 0xfff) / 100);
+ if (flag_joypad[joypad] == FALSE)
+ {
+ flag_joypad[joypad] = TRUE;
+ if (GetJoyState (joypad) == FALSE)
+ return;
+ }
+ if (key < 0x2000)
+ {
+ KeyPress (pad, index, global.JoyState[joypad].rgbButtons[key & 0xff]);
+ }
+ else if (key < 0x3000)
+ {
+ const int state = ((int*)&global.JoyState[joypad].lX)[(key & 0xff) /2];
+ switch (key & 1)
+ {
+ case 0: KeyPress (pad, index, state < -64); break;
+ case 1: KeyPress (pad, index, state >= 64); break;
+ }
+ }
+ else
+ {
+ const u32 state = global.JoyState[joypad].rgdwPOV[(key & 0xff) /4];
+ switch (key & 3)
+ {
+ case 0: KeyPress (pad, index, (state >= 0 && state <= 4500) || (state >= 31500 && state <= 36000)); break;
+ case 1: KeyPress (pad, index, state >= 4500 && state <= 13500); break;
+ case 2: KeyPress (pad, index, state >= 13500 && state <= 22500); break;
+ case 3: KeyPress (pad, index, state >= 22500 && state <= 31500); break;
+ }
+ }
+ }
+ }
+
+ /* Small Motor */
+ const int vib0 = global.padVibF[pad][0] ? 10000 : 0;
+ if ((global.padVibF[pad][2] != vib0) && (global.padVibC[pad] >= 0))
+ {
+ global.padVibF[pad][2] = vib0;
+ SetDeviceForceS (global.padVibC[pad], vib0);
+ }
+ /* Big Motor */
+ const int vib1 = global.padVibF[pad][1] ? 500 + 37*global.padVibF[pad][1] : 0;
+ if ((global.padVibF[pad][3] != vib1) && (global.padVibC[pad] >= 0))
+ {
+ global.padVibF[pad][3] = vib1;
+ SetDeviceForceB (global.padVibC[pad], vib1);
+ }
+}
+
+static void set_label (const HWND hWnd, const int pad, const int index)
+{
+ const int key = global.config.keys[pad][index];
+ char buff[64];
+ if (key < 0x100)
+ {
+ if (key == 0)
+ strcpy (buff, "NONE");
+ else if (GetKeyNameText (key << 16, buff, sizeof (buff)) == 0)
+ wsprintf (buff, "Keyboard 0x%02X", key);
+ }
+ else if (key >= 0x1000 && key < 0x2000)
+ {
+ wsprintf (buff, "J%d_%d", (key & 0xfff) / 0x100, (key & 0xff) + 1);
+ }
+ else if (key >= 0x2000 && key < 0x3000)
+ {
+ static const char name[][4] = { "MIN", "MAX" };
+ const int axis = (key & 0xff);
+ wsprintf (buff, "J%d_AXIS%d_%s", (key & 0xfff) / 0x100, axis / 2, name[axis % 2]);
+ if (index >= 17 && index <= 20)
+ buff[strlen (buff) -4] = '\0';
+ }
+ else if (key >= 0x3000 && key < 0x4000)
+ {
+ static const char name[][7] = { "FOWARD", "RIGHT", "BACK", "LEFT" };
+ const int pov = (key & 0xff);
+ wsprintf (buff, "J%d_POV%d_%s", (key & 0xfff) / 0x100, pov /4, name[pov % 4]);
+ }
+ Button_SetText (GetDlgItem (hWnd, IDC_ESELECT + index), buff);
+}
+
+static BOOL CALLBACK ConfigureDlgProc (const HWND hWnd, const UINT msg, const WPARAM wParam, const LPARAM lParam)
+{
+ static BYTE keymaps[2][256];
+ static DWORD countdown;
+ static int disabled;
+ static HWND hTabWnd;
+ static int pad;
+ int cnt1;
+ int cnt2;
+ int key;
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ hTargetWnd = hWnd;
+ pad = disabled = 0;
+ LoadConfig();
+ for (cnt1 = 21; cnt1--; )
+ set_label (hWnd, pad, cnt1);
+ hTabWnd = GetDlgItem (hWnd, IDC_TABC);
+ TCITEM tcI;
+ tcI.mask = TCIF_TEXT;
+ tcI.pszText = "PAD1";
+ TabCtrl_InsertItem (hTabWnd, 0, &tcI);
+ tcI.mask = TCIF_TEXT;
+ tcI.pszText = "PAD2";
+ TabCtrl_InsertItem (hTabWnd, 1, &tcI);
+ CheckDlgButton(hWnd, IDC_DS2, global.config.dualshock);
+ CheckDlgButton(hWnd, IDC_VV3, global.config.visualvibration[0]);
+ EnableWindow(GetDlgItem(hWnd, IDC_BMODE), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_BLAX), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_BLAY), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_BRAX), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_BRAY), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_BL3), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_BR3), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_EMODE), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_ELAX), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_ELAY), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_ERAX), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_ERAY), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_EL3), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_ER3), global.config.dualshock);
+ SetTimer (hWnd, 0x80, 50, NULL);
+ return TRUE;
+ case WM_DESTROY:
+ break;
+ case WM_NOTIFY:
+ if (wParam == IDC_TABC)
+ {
+ if (disabled)
+ EnableWindow (GetDlgItem (hWnd, disabled), TRUE);
+ disabled = 0;
+ pad = TabCtrl_GetCurSel (hTabWnd);
+ for (cnt1 = 21; cnt1--; )
+ set_label (hWnd, pad, cnt1);
+ CheckDlgButton(hWnd, IDC_VV3, global.config.visualvibration[pad]);
+ }
+ break;
+ case WM_COMMAND:
+ for (cnt1 = 21; cnt1--; )
+ {
+ if (LOWORD (wParam) == IDC_BSELECT + cnt1)
+ {
+ if (disabled)
+ EnableWindow (GetDlgItem (hWnd, disabled), TRUE);
+ EnableWindow (GetDlgItem (hWnd, disabled = wParam), FALSE);
+ EnableWindow (GetDlgItem (hWnd, IDC_DS2), FALSE);
+ countdown = GetTickCount();
+ GetKeyState (keymaps[0]);
+ return TRUE;
+ }
+ }
+ if (LOWORD (wParam) == IDOK)
+ EndDialog (hWnd, IDOK);
+ else if (LOWORD (wParam) == IDCANCEL)
+ EndDialog (hWnd, IDCANCEL);
+ else if (LOWORD (wParam) == IDC_DS2)
+ {
+ global.config.dualshock = IsDlgButtonChecked(hWnd, IDC_DS2);
+
+ EnableWindow(GetDlgItem(hWnd, IDC_BMODE), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_BLAX), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_BLAY), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_BRAX), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_BRAY), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_BL3), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_BR3), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_EMODE), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_ELAX), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_ELAY), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_ERAX), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_ERAY), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_EL3), global.config.dualshock);
+ EnableWindow(GetDlgItem(hWnd, IDC_ER3), global.config.dualshock);
+ }
+ else if (LOWORD (wParam) == IDC_VV3)
+ {
+ global.config.visualvibration[pad] ^= 1;
+ }
+ break;
+ case WM_TIMER:
+ if (disabled)
+ {
+ const int index = disabled - IDC_BSELECT;
+ int analog = FALSE;
+ if ((GetTickCount() - countdown) / 1000 != 10)
+ {
+ char buff[64];
+ wsprintf (buff, "Timeout: %d", 10 - (GetTickCount() - countdown) / 1000);
+ SetWindowText (GetDlgItem (hWnd, IDC_ESELECT + index), buff);
+ }
+ else
+ {
+ global.config.keys[pad][index] = 0;
+ set_label (hWnd, pad, index);
+ EnableWindow (GetDlgItem (hWnd, disabled), TRUE);
+ EnableWindow (GetDlgItem (hWnd, IDC_DS2), TRUE);
+ disabled = 0;
+ break;
+ }
+ if (GetKeyState (keymaps[1]) == FALSE)
+ break;
+ for (key = 0x100; key--; )
+ {
+ if (~keymaps[0][key] & keymaps[1][key] & 0x80)
+ break;
+ }
+ for (cnt1 = global.devcnt; cnt1--;)
+ {
+ if (GetJoyState (cnt1) == FALSE)
+ break;
+
+ for (cnt2 = 32; cnt2--; )
+ {
+ if (global.JoyState[cnt1].rgbButtons[cnt2])
+ key = 0x1000 + 0x100 * cnt1 + cnt2;
+ }
+ for (cnt2 = 8; cnt2--; )
+ {
+ const int now = ((u32*)&global.JoyState[cnt1].lX)[cnt2];
+ if (now < -64)
+ {
+ key = 0x2000 + 0x100 * cnt1 + cnt2 * 2 +0;
+ analog = TRUE;
+ }
+ else if (now >= 64)
+ {
+ key = 0x2000 + 0x100 * cnt1 + cnt2 * 2 +1;
+ analog = TRUE;
+ }
+ }
+ for (cnt2 = 4; cnt2--; )
+ {
+ const u32 now = global.JoyState[cnt1].rgdwPOV[cnt2];
+ if ((now >= 0 && now < 4500) || (now >= 31500 && now < 36000))
+ key = 0x3000 + 0x100 * cnt1 + cnt2 * 4 +0;
+ if (now >= 4500 && now < 13500)
+ key = 0x3000 + 0x100 * cnt1 + cnt2 * 4 +1;
+ if (now >= 13500 && now < 22500)
+ key = 0x3000 + 0x100 * cnt1 + cnt2 * 4 +2;
+ if (now >= 22500 && now < 31500)
+ key = 0x3000 + 0x100 * cnt1 + cnt2 * 4 +3;
+ }
+ }
+ if (index >= 17 && index <= 20 && analog == 0)
+ key = 0;
+ else if (key > 0)
+ {
+ if (key != 1)
+ global.config.keys[pad][index] = key;
+ set_label (hWnd, pad, index);
+ EnableWindow (GetDlgItem (hWnd, disabled), TRUE);
+ EnableWindow (GetDlgItem (hWnd, IDC_DS2), TRUE);
+ disabled = 0;
+ }
+ }
+ }
+ return FALSE;
+}
+
+u32 CALLBACK PS2EgetLibType (void)
+{
+ return 0x02;
+}
+
+const char* CALLBACK PS2EgetLibName (void)
+{
+ return LibraryName;
+}
+
+u32 CALLBACK PS2EgetLibVersion2 (u32 type)
+{
+ return (version << 16) | (revision << 8) | build;
+}
+
+u32 CALLBACK PSEgetLibType (void)
+{
+ return 8;
+}
+
+const char* CALLBACK PSEgetLibName (void)
+{
+ return LibraryName;
+}
+
+u32 CALLBACK PSEgetLibVersion (void)
+{
+ return (version << 16) | (revision << 8) | build;
+}
+
+s32 CALLBACK PADinit (u32 flags)
+{
+ return 0;
+}
+
+void CALLBACK PADshutdown (void)
+{
+}
+
+static int n_open = 0;
+s32 CALLBACK PADopen (HWND hWnd)
+{
+ if (!IsWindow (hWnd) && !IsBadReadPtr ((u32*)hWnd, 4))
+ hWnd = *(HWND*)hWnd;
+ if (!IsWindow (hWnd))
+ hWnd = NULL;
+ else
+ {
+ while (GetWindowLong (hWnd, GWL_STYLE) & WS_CHILD)
+ hWnd = GetParent (hWnd);
+ }
+ hTargetWnd = hWnd;
+ if (n_open++ == FALSE)
+ {
+ memset (&global, 0, sizeof (global));
+ global.padStat[0] = 0xffff;
+ global.padStat[1] = 0xffff;
+ LoadConfig();
+ PADsetMode (0, 0);
+ PADsetMode (1, 0);
+ }
+ return 0;
+}
+
+void CALLBACK PADclose (void)
+{
+ if (--n_open == 0)
+ ReleaseDirectInput();
+}
+
+u32 CALLBACK PADquery (void)
+{
+ return 3;
+}
+
+u8 CALLBACK PADstartPoll (int pad)
+{
+ global.curPad = pad -1;
+ global.curByte = 0;
+ return 0xff;
+}
+
+static const u8 cmd40[8] =
+{
+ 0xff, 0x5a, 0x00, 0x00, 0x02, 0x00, 0x00, 0x5a
+};
+static const u8 cmd41[8] =
+{
+ 0xff, 0x5a, 0xff, 0xff, 0x03, 0x00, 0x00, 0x5a,
+};
+static const u8 cmd44[8] =
+{
+ 0xff, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+static const u8 cmd45[8] =
+{
+ 0xff, 0x5a, 0x03, 0x02, 0x01, 0x02, 0x01, 0x00,
+};
+static const u8 cmd46[8] =
+{
+ 0xff, 0x5a, 0x00, 0x00, 0x01, 0x02, 0x00, 0x0a,
+};
+static const u8 cmd47[8] =
+{
+ 0xff, 0x5a, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00,
+};
+static const u8 cmd4c[8] =
+{
+ 0xff, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+static const u8 cmd4d[8] =
+{
+ 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+};
+static const u8 cmd4f[8] =
+{
+ 0xff, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a,
+};
+
+static u8 get_analog (const int key)
+{
+ const int pad = ((key & 0xf00) / 0x100);
+ const int pos = ((key & 0x0ff) /2);
+// return (u8)(((int*)&global.JoyState[pad].lX)[pos] + 128);
+ u8 r = (u8)(((int*)&global.JoyState[pad].lX)[pos] + 128);
+ if (r == 128) r = 127; // FIXME: ???
+ return r;
+}
+
+static u8 get_pressure (const DWORD now, const DWORD press)
+{
+ /*if (press == 0)
+ return 0;
+ return (u8)((now - press > 2550) ? 255 : (now - press) / 10);*/
+ return 255;
+}
+
+u8 CALLBACK PADpoll (u8 value)
+{
+ const int pad = global.curPad;
+ const int cur = global.curByte;
+ static u8 buf[20];
+
+ if (!global.config.dualshock)
+ {
+ value = 0x42;
+ }
+
+ if (cur == 0)
+ {
+ global.curByte++;
+ global.curCmd = value;
+ switch (value)
+ {
+ case 0x40:
+ global.cmdLen = sizeof (cmd40);
+ memcpy (buf, cmd40, sizeof (cmd40));
+ return 0xf3;
+ case 0x41:
+ global.cmdLen = sizeof (cmd41);
+ memcpy (buf, cmd41, sizeof (cmd41));
+ return 0xf3;
+ case 0x42:
+ case 0x43:
+ if (value == 0x42) UpdateState (pad);
+ global.cmdLen = 2 + 2 * (global.padID[pad] & 0x0f);
+ buf[1] = global.padModeC[pad] ? 0x00 : 0x5a;
+ *(u16*)&buf[2] = global.padStat[pad];
+ if (value == 0x43 && global.padModeE[pad])
+ {
+ buf[4] = 0;
+ buf[5] = 0;
+ buf[6] = 0;
+ buf[7] = 0;
+ return 0xf3;
+ }
+ else
+ {
+ buf[ 4] = get_analog (global.config.keys[pad][19]);
+ buf[ 5] = get_analog (global.config.keys[pad][20]);
+ buf[ 6] = get_analog (global.config.keys[pad][17]);
+ buf[ 7] = get_analog (global.config.keys[pad][18]);
+
+ if (global.padID[pad] == 0x79)
+ {
+ const DWORD now = GetTickCount();
+ buf[ 8] = get_pressure (now, global.padPress[pad][2]);
+ buf[ 9] = get_pressure (now, global.padPress[pad][0]);
+ buf[10] = get_pressure (now, global.padPress[pad][3]);
+ buf[11] = get_pressure (now, global.padPress[pad][1]);
+ buf[12] = get_pressure (now, global.padPress[pad][11]);
+ buf[13] = get_pressure (now, global.padPress[pad][10]);
+ buf[14] = get_pressure (now, global.padPress[pad][9]);
+ buf[15] = get_pressure (now, global.padPress[pad][8]);
+ buf[16] = get_pressure (now, global.padPress[pad][13]);
+ buf[17] = get_pressure (now, global.padPress[pad][12]);
+ buf[18] = get_pressure (now, global.padPress[pad][15]);
+ buf[19] = get_pressure (now, global.padPress[pad][14]);
+ }
+ return (u8)global.padID[pad];
+ }
+ break;
+ case 0x44:
+ global.cmdLen = sizeof (cmd44);
+ memcpy (buf, cmd44, sizeof (cmd44));
+ return 0xf3;
+ case 0x45:
+ global.cmdLen = sizeof (cmd45);
+ memcpy (buf, cmd45, sizeof (cmd45));
+ buf[4] = (u8)global.padMode1[pad];
+ return 0xf3;
+ case 0x46:
+ global.cmdLen = sizeof (cmd46);
+ memcpy (buf, cmd46, sizeof (cmd46));
+ return 0xf3;
+ case 0x47:
+ global.cmdLen = sizeof (cmd47);
+ memcpy (buf, cmd47, sizeof (cmd47));
+ return 0xf3;
+ case 0x4c:
+ global.cmdLen = sizeof (cmd4c);
+ memcpy (buf, cmd4c, sizeof (cmd4c));
+ return 0xf3;
+ case 0x4d:
+ global.cmdLen = sizeof (cmd4d);
+ memcpy (buf, cmd4d, sizeof (cmd4d));
+ return 0xf3;
+ case 0x4f:
+ global.padID[pad] = 0x79;
+ global.padMode2[pad] = 1;
+ global.cmdLen = sizeof (cmd4f);
+ memcpy (buf, cmd4f, sizeof (cmd4f));
+ return 0xf3;
+ }
+ }
+ switch (global.curCmd)
+ {
+ case 0x42:
+ if (global.config.dualshock)
+ {
+ if (cur == global.padVib0[pad])
+ {
+ global.padVibF[pad][0] = value;
+
+ if (gpuVisualVibration != NULL && (global.padVibF[pad][0] || global.padVibF[pad][1]) &&
+ global.config.visualvibration[pad])
+ gpuVisualVibration(global.padVibF[pad][0], global.padVibF[pad][1]);
+ }
+
+ if (cur == global.padVib1[pad])
+ {
+ global.padVibF[pad][1] = value;
+
+ if (gpuVisualVibration != NULL && (global.padVibF[pad][0] || global.padVibF[pad][1]) &&
+ global.config.visualvibration[pad])
+ gpuVisualVibration(global.padVibF[pad][0], global.padVibF[pad][1]);
+ }
+ }
+ break;
+ case 0x43:
+ if (cur == 2)
+ {
+ global.padModeE[pad] = value;
+ global.padModeC[pad] = 0;
+ }
+ break;
+ case 0x44:
+ if (cur == 2)
+ PADsetMode (pad, value);
+ if (cur == 3)
+ global.padModeF[pad] = (value == 3);
+ break;
+ case 0x46:
+ if (cur == 2)
+ {
+ switch(value)
+ {
+ case 0:
+ buf[5] = 0x02;
+ buf[6] = 0x00;
+ buf[7] = 0x0A;
+ break;
+ case 1:
+ buf[5] = 0x01;
+ buf[6] = 0x01;
+ buf[7] = 0x14;
+ break;
+ }
+ }
+ break;
+ case 0x4c:
+ if (cur == 2)
+ {
+ static const u8 buf5[] = { 0x04, 0x07, 0x02, 0x05 };
+ buf[5] = buf5[value & 3];
+ }
+ break;
+ case 0x4d:
+ if (cur >= 2)
+ {
+ if (cur == global.padVib0[pad])
+ buf[cur] = 0x00;
+ if (cur == global.padVib1[pad])
+ buf[cur] = 0x01;
+ if (value == 0x00)
+ {
+ global.padVib0[pad] = cur;
+ if ((global.padID[pad] & 0x0f) < (cur - 1) / 2)
+ global.padID[pad] = (global.padID[pad] & 0xf0) + (cur - 1) / 2;
+ }
+ else if (value == 0x01)
+ {
+ global.padVib1[pad] = cur;
+ if ((global.padID[pad] & 0x0f) < (cur - 1) / 2)
+ global.padID[pad] = (global.padID[pad] & 0xf0) + (cur - 1) / 2;
+ }
+ }
+ break;
+ }
+ if (cur >= global.cmdLen)
+ return 0;
+ return buf[global.curByte++];
+}
+
+typedef struct
+{
+ unsigned char controllerType;
+ unsigned short buttonStatus;
+ unsigned char rightJoyX, rightJoyY, leftJoyX, leftJoyY;
+ unsigned char moveX, moveY;
+ unsigned char reserved[91];
+} PadDataS;
+
+long PADreadPort1 (PadDataS* pads)
+{
+ memset (pads, 0, sizeof (PadDataS));
+ if ((global.padID[0] & 0xf0) == 0x40)
+ pads->controllerType = 4;
+ else
+ pads->controllerType = 7;
+ pads->buttonStatus = global.padStat[0];
+ pads->leftJoyX = get_analog (global.config.keys[0][17]);
+ pads->leftJoyY = get_analog (global.config.keys[0][18]);
+ pads->rightJoyX = get_analog (global.config.keys[0][19]);
+ pads->rightJoyY = get_analog (global.config.keys[0][20]);
+ pads->moveX = 0;
+ pads->moveY = 0;
+ return 0;
+}
+
+long PADreadPort2 (PadDataS* pads)
+{
+ memset (pads, 0, sizeof (PadDataS));
+ if ((global.padID[1] & 0xf0) == 0x40)
+ pads->controllerType = 4;
+ else
+ pads->controllerType = 7;
+ pads->buttonStatus = global.padStat[1];
+ pads->leftJoyX = get_analog (global.config.keys[1][17]);
+ pads->leftJoyY = get_analog (global.config.keys[1][18]);
+ pads->rightJoyX = get_analog (global.config.keys[1][19]);
+ pads->rightJoyY = get_analog (global.config.keys[1][20]);
+ pads->moveX = 0;
+ pads->moveY = 0;
+ return 0;
+}
+
+keyEvent* CALLBACK PADkeyEvent (void)
+{
+ static keyEvent ev;
+ static u8 state[2][256];
+ if (n_open)
+ {
+ memcpy (state[0], state[1], sizeof (state[0]));
+ GetKeyState (state[1]);
+ for (int cnt = 0; cnt < 256; cnt++)
+ {
+ if (~state[0][cnt] & state[1][cnt] & 0x80)
+ {
+ ev.event = (state[1][cnt] & 0x80) ? 1 : 2;
+ ev.key = MapVirtualKey (cnt, 1);
+ return &ev;
+ }
+ }
+ }
+ return NULL;
+}
+
+void CALLBACK PADconfigure (void)
+{
+ if (n_open == 0)
+ {
+ memset (&global, 0, sizeof (global));
+ if (DialogBox (hInstance, MAKEINTRESOURCE (IDD_DIALOG1), GetActiveWindow(), (DLGPROC)ConfigureDlgProc) == IDOK)
+ SaveConfig();
+ ReleaseDirectInput();
+ }
+}
+
+void CALLBACK PADabout (void)
+{
+ MessageBox (0, "Copyright (C) 2004-2005 Nagisa", "SSSPSX PAD plugin", 0);
+}
+
+s32 CALLBACK PADtest (void)
+{
+ return 0;
+}
+
+void CALLBACK PADregisterVibration(void (CALLBACK *callback)(unsigned long, unsigned long)) {
+ gpuVisualVibration = callback;
+}
+
+//#ifdef _WIN64
+BOOL APIENTRY DllMain(HMODULE hInst, DWORD dwReason, LPVOID lpReserved)
+{
+ hInstance = hInst;
+ return TRUE;
+}
+//#else
+BOOL APIENTRY EntryPoint (HMODULE hInst, DWORD dwReason, LPVOID lpReserved)
+{
+ hInstance = hInst;
+ return TRUE;
+}
+//#endif
diff --git a/win32/plugins/PadSSSPSX/PadSSSPSX.def b/win32/plugins/PadSSSPSX/PadSSSPSX.def
index dd5e4ed2..8e493d6b 100644..100755
--- a/win32/plugins/PadSSSPSX/PadSSSPSX.def
+++ b/win32/plugins/PadSSSPSX/PadSSSPSX.def
@@ -1,23 +1,23 @@
-LIBRARY "PadSSSPSX"
-
-EXPORTS
- PSEgetLibType @1
- PSEgetLibName @2
- PSEgetLibVersion @3
- PS2EgetLibType @4
- PS2EgetLibName @5
- PS2EgetLibVersion2 @6
- PADinit @7
- PADshutdown @8
- PADopen @9
- PADclose @10
- PADkeyEvent @11
- PADstartPoll @12
- PADpoll @13
- PADreadPort1 @14
- PADreadPort2 @15
- PADquery @16
- PADconfigure @17
- PADtest @18
- PADabout @19
+LIBRARY "PadSSSPSX"
+
+EXPORTS
+ PSEgetLibType @1
+ PSEgetLibName @2
+ PSEgetLibVersion @3
+ PS2EgetLibType @4
+ PS2EgetLibName @5
+ PS2EgetLibVersion2 @6
+ PADinit @7
+ PADshutdown @8
+ PADopen @9
+ PADclose @10
+ PADkeyEvent @11
+ PADstartPoll @12
+ PADpoll @13
+ PADreadPort1 @14
+ PADreadPort2 @15
+ PADquery @16
+ PADconfigure @17
+ PADtest @18
+ PADabout @19
PADregisterVibration @20 \ No newline at end of file
diff --git a/win32/plugins/PadSSSPSX/PadSSSPSX.dsp b/win32/plugins/PadSSSPSX/PadSSSPSX.dsp
index e816d306..8f26f4a6 100644..100755
--- a/win32/plugins/PadSSSPSX/PadSSSPSX.dsp
+++ b/win32/plugins/PadSSSPSX/PadSSSPSX.dsp
@@ -1,123 +1,123 @@
-# Microsoft Developer Studio Project File - Name="SSSPSXpad" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=SSSPSXpad - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "PadSSSPSX.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "PadSSSPSX.mak" CFG="SSSPSXpad - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "SSSPSXpad - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "SSSPSXpad - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "SSSPSXpad - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SSSPSXPAD_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SSSPSXPAD_EXPORTS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x804 /d "NDEBUG"
-# ADD RSC /l 0x804 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib dinput8.lib dxguid.lib /nologo /dll /machine:I386
-
-!ELSEIF "$(CFG)" == "SSSPSXpad - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SSSPSXPAD_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SSSPSXPAD_EXPORTS" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x804 /d "_DEBUG"
-# ADD RSC /l 0x804 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib dinput8.lib dxguid.lib /nologo /dll /incremental:no /debug /machine:I386 /pdbtype:sept
-
-!ENDIF
-
-# Begin Target
-
-# Name "SSSPSXpad - Win32 Release"
-# Name "SSSPSXpad - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\PadSSSPSX.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\PadSSSPSX.def
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\PadSSSPSX.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\PadSSSPSXres.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=.\PadSSSPSX.rc
-# End Source File
-# End Group
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="SSSPSXpad" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=SSSPSXpad - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "PadSSSPSX.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "PadSSSPSX.mak" CFG="SSSPSXpad - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "SSSPSXpad - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "SSSPSXpad - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "SSSPSXpad - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SSSPSXPAD_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SSSPSXPAD_EXPORTS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x804 /d "NDEBUG"
+# ADD RSC /l 0x804 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib dinput8.lib dxguid.lib /nologo /dll /machine:I386
+
+!ELSEIF "$(CFG)" == "SSSPSXpad - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SSSPSXPAD_EXPORTS" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SSSPSXPAD_EXPORTS" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x804 /d "_DEBUG"
+# ADD RSC /l 0x804 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib dinput8.lib dxguid.lib /nologo /dll /incremental:no /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "SSSPSXpad - Win32 Release"
+# Name "SSSPSXpad - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\PadSSSPSX.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\PadSSSPSX.def
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\PadSSSPSX.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\PadSSSPSXres.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\PadSSSPSX.rc
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/win32/plugins/PadSSSPSX/PadSSSPSX.h b/win32/plugins/PadSSSPSX/PadSSSPSX.h
index 85a0d2dd..b53f64d4 100644..100755
--- a/win32/plugins/PadSSSPSX/PadSSSPSX.h
+++ b/win32/plugins/PadSSSPSX/PadSSSPSX.h
@@ -1,47 +1,47 @@
-/* PADwin
- * Copyright (C) 2002-2004 PADwin Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef __PAD_H__
-#define __PAD_H__
-
-#include "PadSSSPSXres.h"
-
-typedef signed char s8;
-typedef signed short s16;
-typedef signed int s32;
-typedef __int64 s64;
-
-typedef unsigned char u8;
-typedef unsigned short u16;
-typedef unsigned int u32;
-typedef unsigned __int64 u64;
-
-typedef struct
-{
- u32 key;
- u32 event;
-} keyEvent;
-
-typedef struct
-{
- u32 keys[2][21];
- u32 dualshock;
- u32 visualvibration[2];
-} Config;
-
-#endif
+/* PADwin
+ * Copyright (C) 2002-2004 PADwin Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef __PAD_H__
+#define __PAD_H__
+
+#include "PadSSSPSXres.h"
+
+typedef signed char s8;
+typedef signed short s16;
+typedef signed int s32;
+typedef __int64 s64;
+
+typedef unsigned char u8;
+typedef unsigned short u16;
+typedef unsigned int u32;
+typedef unsigned __int64 u64;
+
+typedef struct
+{
+ u32 key;
+ u32 event;
+} keyEvent;
+
+typedef struct
+{
+ u32 keys[2][21];
+ u32 dualshock;
+ u32 visualvibration[2];
+} Config;
+
+#endif
diff --git a/win32/plugins/PadSSSPSX/PadSSSPSX.rc b/win32/plugins/PadSSSPSX/PadSSSPSX.rc
index 3901a74a..e3f1c178 100644..100755
--- a/win32/plugins/PadSSSPSX/PadSSSPSX.rc
+++ b/win32/plugins/PadSSSPSX/PadSSSPSX.rc
@@ -1,120 +1,120 @@
-#include "PadSSSPSXres.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-
-#include "afxres.h"
-
-#undef APSTUDIO_READONLY_SYMBOLS
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
-#ifdef _WIN32
-//LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
-//#pragma code_page(932)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-
-1 TEXTINCLUDE
-BEGIN
- "PadSSSPSXres.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif
-
-IDD_DIALOG1 DIALOGEX 0, 0, 442, 239
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION
-CAPTION "PAD Settings"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- CONTROL "",IDC_TABC,"SysTabControl32",0x0,6,6,432,210
- PUSHBUTTON "L2",IDC_BL2,54,24,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_EL2,54,36,72,12,ES_READONLY | NOT WS_TABSTOP
- PUSHBUTTON "L1",IDC_BL1,54,48,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_EL1,54,60,72,12,ES_READONLY | NOT WS_TABSTOP
- PUSHBUTTON "Up",IDC_BUP,54,78,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_EUP,54,90,72,12,ES_READONLY | NOT WS_TABSTOP
- PUSHBUTTON "Left",IDC_BLEFT,12,102,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_ELEFT,12,114,72,12,ES_READONLY | NOT WS_TABSTOP
- PUSHBUTTON "Right",IDC_BRIGHT,96,102,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_ERIGHT,96,114,72,12,ES_READONLY | NOT WS_TABSTOP
- PUSHBUTTON "Down",IDC_BDOWN,54,126,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_EDOWN,54,138,72,12,ES_READONLY | NOT WS_TABSTOP
- PUSHBUTTON "Select",IDC_BSELECT,144,36,72,12,NOT WS_TABSTOP,
- WS_EX_TRANSPARENT
- EDITTEXT IDC_ESELECT,144,48,72,12,ES_READONLY | NOT WS_TABSTOP,
- WS_EX_TRANSPARENT
- PUSHBUTTON "Start",IDC_BSTART,228,36,72,12,NOT WS_TABSTOP,
- WS_EX_TRANSPARENT
- EDITTEXT IDC_ESTART,228,48,72,12,ES_READONLY | NOT WS_TABSTOP,
- WS_EX_TRANSPARENT
- PUSHBUTTON "Analog",IDC_BMODE,186,66,72,12,NOT WS_TABSTOP,
- WS_EX_TRANSPARENT
- EDITTEXT IDC_EMODE,186,78,72,12,ES_READONLY | NOT WS_TABSTOP,
- WS_EX_TRANSPARENT
- PUSHBUTTON "R2",IDC_BR2,318,24,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_ER2,318,36,72,12,ES_AUTOHSCROLL | ES_READONLY | NOT
- WS_TABSTOP
- PUSHBUTTON "R1",IDC_BR1,318,48,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_ER1,318,60,72,12,ES_AUTOHSCROLL | ES_READONLY | NOT
- WS_TABSTOP
- PUSHBUTTON "Triangle",IDC_BTRIANGLE,318,78,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_ETRIANGLE,318,90,72,12,ES_AUTOHSCROLL | ES_READONLY |
- NOT WS_TABSTOP
- PUSHBUTTON "Square",IDC_BSQUARE,276,102,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_ESQUARE,276,114,72,12,ES_AUTOHSCROLL | ES_READONLY |
- NOT WS_TABSTOP
- PUSHBUTTON "Circle",IDC_BCIRCLE,360,102,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_ECIRCLE,360,114,72,12,ES_AUTOHSCROLL | ES_READONLY |
- NOT WS_TABSTOP
- PUSHBUTTON "Cross",IDC_BCROSS,318,126,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_ECROSS,318,138,72,12,ES_AUTOHSCROLL | ES_READONLY |
- NOT WS_TABSTOP
- PUSHBUTTON "L3",IDC_BL3,144,132,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_EL3,144,144,72,12,ES_READONLY | NOT WS_TABSTOP
- PUSHBUTTON "LX",IDC_BLAX,144,162,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_ELAX,144,174,72,12,ES_READONLY | NOT WS_TABSTOP
- PUSHBUTTON "LY",IDC_BLAY,144,186,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_ELAY,144,198,72,12,ES_READONLY | NOT WS_TABSTOP
- PUSHBUTTON "R3",IDC_BR3,228,132,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_ER3,228,144,72,12,ES_READONLY | NOT WS_TABSTOP
- PUSHBUTTON "RX",IDC_BRAX,228,162,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_ERAX,228,174,72,12,ES_READONLY | NOT WS_TABSTOP
- PUSHBUTTON "RY",IDC_BRAY,228,186,72,12,NOT WS_TABSTOP
- EDITTEXT IDC_ERAY,228,198,72,12,ES_READONLY | NOT WS_TABSTOP
- PUSHBUTTON "OK",IDOK,330,222,48,12,NOT WS_TABSTOP
- PUSHBUTTON "Cancel",IDCANCEL,390,222,48,12,NOT WS_TABSTOP
- CTEXT "",IDC_STATIC,318,174,108,30,0,WS_EX_STATICEDGE
- CONTROL "DUALSHOCK2 INSIDE",IDC_DS2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,331,179,84,8
- CONTROL "VISUAL VIBRATION",IDC_VV3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,331,191,84,8
-END
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_DIALOG1, DIALOG
- BEGIN
- RIGHTMARGIN, 432
- BOTTOMMARGIN, 233
- END
-END
-#endif
-
-#endif
-
-
-#ifndef APSTUDIO_INVOKED
-
-#endif
-
+#include "PadSSSPSXres.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+
+#include "afxres.h"
+
+#undef APSTUDIO_READONLY_SYMBOLS
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
+#ifdef _WIN32
+//LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
+//#pragma code_page(932)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+
+1 TEXTINCLUDE
+BEGIN
+ "PadSSSPSXres.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif
+
+IDD_DIALOG1 DIALOGEX 0, 0, 442, 239
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION
+CAPTION "PAD Settings"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "",IDC_TABC,"SysTabControl32",0x0,6,6,432,210
+ PUSHBUTTON "L2",IDC_BL2,54,24,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_EL2,54,36,72,12,ES_READONLY | NOT WS_TABSTOP
+ PUSHBUTTON "L1",IDC_BL1,54,48,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_EL1,54,60,72,12,ES_READONLY | NOT WS_TABSTOP
+ PUSHBUTTON "Up",IDC_BUP,54,78,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_EUP,54,90,72,12,ES_READONLY | NOT WS_TABSTOP
+ PUSHBUTTON "Left",IDC_BLEFT,12,102,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_ELEFT,12,114,72,12,ES_READONLY | NOT WS_TABSTOP
+ PUSHBUTTON "Right",IDC_BRIGHT,96,102,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_ERIGHT,96,114,72,12,ES_READONLY | NOT WS_TABSTOP
+ PUSHBUTTON "Down",IDC_BDOWN,54,126,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_EDOWN,54,138,72,12,ES_READONLY | NOT WS_TABSTOP
+ PUSHBUTTON "Select",IDC_BSELECT,144,36,72,12,NOT WS_TABSTOP,
+ WS_EX_TRANSPARENT
+ EDITTEXT IDC_ESELECT,144,48,72,12,ES_READONLY | NOT WS_TABSTOP,
+ WS_EX_TRANSPARENT
+ PUSHBUTTON "Start",IDC_BSTART,228,36,72,12,NOT WS_TABSTOP,
+ WS_EX_TRANSPARENT
+ EDITTEXT IDC_ESTART,228,48,72,12,ES_READONLY | NOT WS_TABSTOP,
+ WS_EX_TRANSPARENT
+ PUSHBUTTON "Analog",IDC_BMODE,186,66,72,12,NOT WS_TABSTOP,
+ WS_EX_TRANSPARENT
+ EDITTEXT IDC_EMODE,186,78,72,12,ES_READONLY | NOT WS_TABSTOP,
+ WS_EX_TRANSPARENT
+ PUSHBUTTON "R2",IDC_BR2,318,24,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_ER2,318,36,72,12,ES_AUTOHSCROLL | ES_READONLY | NOT
+ WS_TABSTOP
+ PUSHBUTTON "R1",IDC_BR1,318,48,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_ER1,318,60,72,12,ES_AUTOHSCROLL | ES_READONLY | NOT
+ WS_TABSTOP
+ PUSHBUTTON "Triangle",IDC_BTRIANGLE,318,78,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_ETRIANGLE,318,90,72,12,ES_AUTOHSCROLL | ES_READONLY |
+ NOT WS_TABSTOP
+ PUSHBUTTON "Square",IDC_BSQUARE,276,102,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_ESQUARE,276,114,72,12,ES_AUTOHSCROLL | ES_READONLY |
+ NOT WS_TABSTOP
+ PUSHBUTTON "Circle",IDC_BCIRCLE,360,102,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_ECIRCLE,360,114,72,12,ES_AUTOHSCROLL | ES_READONLY |
+ NOT WS_TABSTOP
+ PUSHBUTTON "Cross",IDC_BCROSS,318,126,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_ECROSS,318,138,72,12,ES_AUTOHSCROLL | ES_READONLY |
+ NOT WS_TABSTOP
+ PUSHBUTTON "L3",IDC_BL3,144,132,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_EL3,144,144,72,12,ES_READONLY | NOT WS_TABSTOP
+ PUSHBUTTON "LX",IDC_BLAX,144,162,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_ELAX,144,174,72,12,ES_READONLY | NOT WS_TABSTOP
+ PUSHBUTTON "LY",IDC_BLAY,144,186,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_ELAY,144,198,72,12,ES_READONLY | NOT WS_TABSTOP
+ PUSHBUTTON "R3",IDC_BR3,228,132,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_ER3,228,144,72,12,ES_READONLY | NOT WS_TABSTOP
+ PUSHBUTTON "RX",IDC_BRAX,228,162,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_ERAX,228,174,72,12,ES_READONLY | NOT WS_TABSTOP
+ PUSHBUTTON "RY",IDC_BRAY,228,186,72,12,NOT WS_TABSTOP
+ EDITTEXT IDC_ERAY,228,198,72,12,ES_READONLY | NOT WS_TABSTOP
+ PUSHBUTTON "OK",IDOK,330,222,48,12,NOT WS_TABSTOP
+ PUSHBUTTON "Cancel",IDCANCEL,390,222,48,12,NOT WS_TABSTOP
+ CTEXT "",IDC_STATIC,318,174,108,30,0,WS_EX_STATICEDGE
+ CONTROL "DUALSHOCK2 INSIDE",IDC_DS2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,331,179,84,8
+ CONTROL "VISUAL VIBRATION",IDC_VV3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,331,191,84,8
+END
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_DIALOG1, DIALOG
+ BEGIN
+ RIGHTMARGIN, 432
+ BOTTOMMARGIN, 233
+ END
+END
+#endif
+
+#endif
+
+
+#ifndef APSTUDIO_INVOKED
+
+#endif
+
diff --git a/win32/plugins/PadSSSPSX/PadSSSPSX.vcproj b/win32/plugins/PadSSSPSX/PadSSSPSX.vcproj
index 96db2cc1..4a412622 100644..100755
--- a/win32/plugins/PadSSSPSX/PadSSSPSX.vcproj
+++ b/win32/plugins/PadSSSPSX/PadSSSPSX.vcproj
@@ -1,281 +1,281 @@
-<?xml version="1.0" encoding="gb2312"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="SSSPSXpad"
- ProjectGUID="{0639CDF3-8C1F-47F4-A760-F5568194A083}"
- RootNamespace="SSSPSXpad"
- TargetFrameworkVersion="0"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory=".\Debug"
- IntermediateDirectory=".\Debug"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Debug/PadSSSPSX.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SSSPSXPAD_EXPORTS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- PrecompiledHeaderFile=".\Debug/PadSSSPSX.pch"
- AssemblerListingLocation=".\Debug/"
- ObjectFile=".\Debug/"
- ProgramDataBaseFileName=".\Debug/"
- WarningLevel="3"
- SuppressStartupBanner="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="2052"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="odbc32.lib odbccp32.lib dinput8.lib dxguid.lib"
- OutputFile=".\Debug/PadSSSPSX.dll"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- ModuleDefinitionFile=".\PadSSSPSX.def"
- GenerateDebugInformation="true"
- ProgramDatabaseFile=".\Debug/PadSSSPSX.pdb"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary=".\Debug/PadSSSPSX.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- SuppressStartupBanner="true"
- OutputFile=".\Debug/PadSSSPSX.bsc"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory=".\Release"
- IntermediateDirectory=".\Release"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Release/PadSSSPSX.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="1"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SSSPSXPAD_EXPORTS"
- StringPooling="true"
- RuntimeLibrary="0"
- EnableFunctionLevelLinking="true"
- PrecompiledHeaderFile=".\Release/PadSSSPSX.pch"
- AssemblerListingLocation=".\Release/"
- ObjectFile=".\Release/"
- ProgramDataBaseFileName=".\Release/"
- WarningLevel="3"
- SuppressStartupBanner="true"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="2052"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="odbc32.lib odbccp32.lib dinput8.lib dxguid.lib"
- OutputFile=".\Release/PadSSSPSX.dll"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- ModuleDefinitionFile=".\PadSSSPSX.def"
- ProgramDatabaseFile=".\Release/PadSSSPSX.pdb"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary=".\Release/PadSSSPSX.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- SuppressStartupBanner="true"
- OutputFile=".\Release/PadSSSPSX.bsc"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
- >
- <File
- RelativePath="PadSSSPSX.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="PadSSSPSX.def"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl"
- >
- <File
- RelativePath="PadSSSPSX.h"
- >
- </File>
- <File
- RelativePath="PadSSSPSXres.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
- >
- <File
- RelativePath="PadSSSPSX.rc"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="gb2312"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="SSSPSXpad"
+ ProjectGUID="{0639CDF3-8C1F-47F4-A760-F5568194A083}"
+ RootNamespace="SSSPSXpad"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/PadSSSPSX.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SSSPSXPAD_EXPORTS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile=".\Debug/PadSSSPSX.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="2052"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib dinput8.lib dxguid.lib"
+ OutputFile=".\Debug/PadSSSPSX.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ModuleDefinitionFile=".\PadSSSPSX.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\Debug/PadSSSPSX.pdb"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary=".\Debug/PadSSSPSX.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Debug/PadSSSPSX.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/PadSSSPSX.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SSSPSXPAD_EXPORTS"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\Release/PadSSSPSX.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="2052"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib dinput8.lib dxguid.lib"
+ OutputFile=".\Release/PadSSSPSX.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ModuleDefinitionFile=".\PadSSSPSX.def"
+ ProgramDatabaseFile=".\Release/PadSSSPSX.pdb"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary=".\Release/PadSSSPSX.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Release/PadSSSPSX.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="PadSSSPSX.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="PadSSSPSX.def"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="PadSSSPSX.h"
+ >
+ </File>
+ <File
+ RelativePath="PadSSSPSXres.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ <File
+ RelativePath="PadSSSPSX.rc"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/win32/plugins/PadSSSPSX/PadSSSPSXres.h b/win32/plugins/PadSSSPSX/PadSSSPSXres.h
index 70b10f39..3134e9a5 100644..100755
--- a/win32/plugins/PadSSSPSX/PadSSSPSXres.h
+++ b/win32/plugins/PadSSSPSX/PadSSSPSXres.h
@@ -1,61 +1,61 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by PadSSSPSX.rc
-//
-#define IDD_DIALOG1 100
-#define IDC_BSELECT 1000
-#define IDC_BL3 1001
-#define IDC_BR3 1002
-#define IDC_BSTART 1003
-#define IDC_BUP 1004
-#define IDC_BRIGHT 1005
-#define IDC_BDOWN 1006
-#define IDC_BLEFT 1007
-#define IDC_BL2 1008
-#define IDC_BR2 1009
-#define IDC_BL1 1010
-#define IDC_BR1 1011
-#define IDC_BTRIANGLE 1012
-#define IDC_BCIRCLE 1013
-#define IDC_BCROSS 1014
-#define IDC_BSQUARE 1015
-#define IDC_BMODE 1016
-#define IDC_BLAX 1017
-#define IDC_BLAY 1018
-#define IDC_BRAX 1019
-#define IDC_BRAY 1020
-#define IDC_ESELECT 1030
-#define IDC_EL3 1031
-#define IDC_ER3 1032
-#define IDC_ESTART 1033
-#define IDC_EUP 1034
-#define IDC_ERIGHT 1035
-#define IDC_EDOWN 1036
-#define IDC_ELEFT 1037
-#define IDC_EL2 1038
-#define IDC_ER2 1039
-#define IDC_EL1 1040
-#define IDC_ER1 1041
-#define IDC_ETRIANGLE 1042
-#define IDC_ECIRCLE 1043
-#define IDC_ECROSS 1044
-#define IDC_ESQUARE 1045
-#define IDC_EMODE 1046
-#define IDC_ELAX 1047
-#define IDC_ELAY 1048
-#define IDC_ERAX 1049
-#define IDC_ERAY 1050
-#define IDC_TABC 1060
-#define IDC_DS2 1070
-#define IDC_VV3 1071
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 101
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1061
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by PadSSSPSX.rc
+//
+#define IDD_DIALOG1 100
+#define IDC_BSELECT 1000
+#define IDC_BL3 1001
+#define IDC_BR3 1002
+#define IDC_BSTART 1003
+#define IDC_BUP 1004
+#define IDC_BRIGHT 1005
+#define IDC_BDOWN 1006
+#define IDC_BLEFT 1007
+#define IDC_BL2 1008
+#define IDC_BR2 1009
+#define IDC_BL1 1010
+#define IDC_BR1 1011
+#define IDC_BTRIANGLE 1012
+#define IDC_BCIRCLE 1013
+#define IDC_BCROSS 1014
+#define IDC_BSQUARE 1015
+#define IDC_BMODE 1016
+#define IDC_BLAX 1017
+#define IDC_BLAY 1018
+#define IDC_BRAX 1019
+#define IDC_BRAY 1020
+#define IDC_ESELECT 1030
+#define IDC_EL3 1031
+#define IDC_ER3 1032
+#define IDC_ESTART 1033
+#define IDC_EUP 1034
+#define IDC_ERIGHT 1035
+#define IDC_EDOWN 1036
+#define IDC_ELEFT 1037
+#define IDC_EL2 1038
+#define IDC_ER2 1039
+#define IDC_EL1 1040
+#define IDC_ER1 1041
+#define IDC_ETRIANGLE 1042
+#define IDC_ECIRCLE 1043
+#define IDC_ECROSS 1044
+#define IDC_ESQUARE 1045
+#define IDC_EMODE 1046
+#define IDC_ELAX 1047
+#define IDC_ELAY 1048
+#define IDC_ERAX 1049
+#define IDC_ERAY 1050
+#define IDC_TABC 1060
+#define IDC_DS2 1070
+#define IDC_VV3 1071
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 101
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/win32/plugins/PadSSSPSX/readmewip.txt b/win32/plugins/PadSSSPSX/readmewip.txt
index 14443362..fe3e66ea 100644..100755
--- a/win32/plugins/PadSSSPSX/readmewip.txt
+++ b/win32/plugins/PadSSSPSX/readmewip.txt
@@ -1,48 +1,48 @@
-SSSPSX Pad - An Open Source Pad plugin for PSX and PS2 emulators
-Author: Nagisa
-Homepage: http://www.asahi-net.or.jp/~bz7t-skmt/
-
-Overview:
--Small executable program
--Source code under 1000 step,20kb binary
--Open Source,under the GPL Licence
-
-
-Features:
-
-For PS1 emulators
-- Force feedback support (PCSX only)
- Delete the following PCSX sorce code.
- File: sio.c Line: 138
-@---------------------
-@if (buf[parp] == 0x41) {
-@@switch (value) {
-@@@case 0x43:
-@@@@buf[1] = 0x43;
-@@@@break;
-@@@case 0x45:
-@@@@buf[1] = 0xf3;
-@@@@break;
-@@}
-@}
-@---------------------
-
-For PCSX2
--Force feedback support (maybe)
--PADKeyEvent API support
--Using DirectInput 9 (game controller and keyboard)
-
-Thanks to:
-http://www.hm5.aitai.ne.jp/~takuya/index.html#ds2_analisys for the valuable info
-PCSX2 team for the PadWinKeyb source code
-bositman for some report
-
-Version History:
-v1.0: -Initial Release
-v1.1: -Changed to DirectInput 9
-v1.2: -PADKeyEvent API support added
-v1.3: -DirectInput collision problem fixed
-v1.4: -Added timeout on settings dialog.If the countdown ends, the key will be set to "NONE".
- -Changed "ESC" key action on settings dialog.If you press the "ESC" key, the setting will keep the previous one.
- -Fixed silly bug. (dont ask me about it).
-v1.5: -Fixed 0x4D packet.
+SSSPSX Pad - An Open Source Pad plugin for PSX and PS2 emulators
+Author: Nagisa
+Homepage: http://www.asahi-net.or.jp/~bz7t-skmt/
+
+Overview:
+-Small executable program
+-Source code under 1000 step,20kb binary
+-Open Source,under the GPL Licence
+
+
+Features:
+
+For PS1 emulators
+- Force feedback support (PCSX only)
+ Delete the following PCSX sorce code.
+ File: sio.c Line: 138
+@---------------------
+@if (buf[parp] == 0x41) {
+@@switch (value) {
+@@@case 0x43:
+@@@@buf[1] = 0x43;
+@@@@break;
+@@@case 0x45:
+@@@@buf[1] = 0xf3;
+@@@@break;
+@@}
+@}
+@---------------------
+
+For PCSX2
+-Force feedback support (maybe)
+-PADKeyEvent API support
+-Using DirectInput 9 (game controller and keyboard)
+
+Thanks to:
+http://www.hm5.aitai.ne.jp/~takuya/index.html#ds2_analisys for the valuable info
+PCSX2 team for the PadWinKeyb source code
+bositman for some report
+
+Version History:
+v1.0: -Initial Release
+v1.1: -Changed to DirectInput 9
+v1.2: -PADKeyEvent API support added
+v1.3: -DirectInput collision problem fixed
+v1.4: -Added timeout on settings dialog.If the countdown ends, the key will be set to "NONE".
+ -Changed "ESC" key action on settings dialog.If you press the "ESC" key, the setting will keep the previous one.
+ -Fixed silly bug. (dont ask me about it).
+v1.5: -Fixed 0x4D packet.
diff --git a/win32/plugins/dfsound/DFSound.def b/win32/plugins/dfsound/DFSound.def
index 745e5114..609da333 100644..100755
--- a/win32/plugins/dfsound/DFSound.def
+++ b/win32/plugins/dfsound/DFSound.def
@@ -1,45 +1,45 @@
-; Declares the module parameters for the DLL.
-
-LIBRARY "DFSound"
-
-EXPORTS
- ; Explicit exports can go here
- PSEgetLibType @2
- PSEgetLibName @3
- PSEgetLibVersion @4
- SPUconfigure @5
- SPUabout @6
- SPUinit @7
- SPUshutdown @8
- SPUtest @9
- SPUopen @10
- SPUclose @11
-
- SPUplayADPCMchannel @12
- SPUwriteRegister @13
- SPUreadRegister @14
- SPUregisterCallback @15
-
- SPUwriteDMA @16
- SPUreadDMA @17
- SPUregisterCDDAVolume @18
- SPUwriteDMAMem @19
- SPUreadDMAMem @20
- SPUfreeze @21
- ;SPUupdate @22
- SPUasync @23
-
- SPUplayCDDAchannel @24
-
- SPUgetOne @25
- SPUputOne @26
- SPUplaySample @27
- SPUsetAddr @28
- SPUsetPitch @29
- SPUsetVolumeL @30
- SPUsetVolumeR @31
- SPUstartChannels1 @32
- SPUstartChannels2 @33
- SPUstopChannels1 @34
- SPUstopChannels2 @35
- SPUplaySector @36
+; Declares the module parameters for the DLL.
+
+LIBRARY "DFSound"
+
+EXPORTS
+ ; Explicit exports can go here
+ PSEgetLibType @2
+ PSEgetLibName @3
+ PSEgetLibVersion @4
+ SPUconfigure @5
+ SPUabout @6
+ SPUinit @7
+ SPUshutdown @8
+ SPUtest @9
+ SPUopen @10
+ SPUclose @11
+
+ SPUplayADPCMchannel @12
+ SPUwriteRegister @13
+ SPUreadRegister @14
+ SPUregisterCallback @15
+
+ SPUwriteDMA @16
+ SPUreadDMA @17
+ SPUregisterCDDAVolume @18
+ SPUwriteDMAMem @19
+ SPUreadDMAMem @20
+ SPUfreeze @21
+ ;SPUupdate @22
+ SPUasync @23
+
+ SPUplayCDDAchannel @24
+
+ SPUgetOne @25
+ SPUputOne @26
+ SPUplaySample @27
+ SPUsetAddr @28
+ SPUsetPitch @29
+ SPUsetVolumeL @30
+ SPUsetVolumeR @31
+ SPUstartChannels1 @32
+ SPUstartChannels2 @33
+ SPUstopChannels1 @34
+ SPUstopChannels2 @35
+ SPUplaySector @36
diff --git a/win32/plugins/dfsound/DFSound.dev b/win32/plugins/dfsound/DFSound.dev
index f3f2b646..4da3c412 100644..100755
--- a/win32/plugins/dfsound/DFSound.dev
+++ b/win32/plugins/dfsound/DFSound.dev
@@ -1,369 +1,369 @@
-[Project]
-FileName=DFSound.dev
-Name=DFSound
-Ver=1
-IsCpp=1
-Type=3
-Compiler=-W -DWIN32 -DNDEBUG -D_WINDOWS_@@_
-CppCompiler=-W -DWIN32 -DNDEBUG -D_WINDOWS_@@_
-Includes=.\\;.\winsrc;..\..\..\plugins\dfsound;..\..\glue;..\..\..\libpcsxcore
-Linker=--enable-stdcall-fixup -ldsound -lwinmm -luser32 -lgdi32 -ladvapi32 -def DFSound.def_@@_
-Libs=
-UnitCount=31
-Folders=dfsound,winsrc
-ObjFiles=
-PrivateResource=DFSound_private.rc
-ResourceIncludes=
-MakeIncludes=
-Icon=
-ExeOutput=
-ObjectOutput=
-OverrideOutput=0
-OverrideOutputName=DFSound.exe
-HostApplication=
-CommandLine=
-UseCustomMakefile=0
-CustomMakefile=
-IncludeVersionInfo=0
-SupportXPThemes=0
-CompilerSet=0
-CompilerSettings=0010000001001000010100
-
-[Unit1]
-FileName=winsrc\cfg.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit2]
-FileName=winsrc\debug.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit3]
-FileName=winsrc\debug.h
-Folder=winsrc
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit4]
-FileName=winsrc\dsound.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit5]
-FileName=winsrc\dsound.h
-Folder=winsrc
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit6]
-FileName=winsrc\psemu.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit7]
-FileName=winsrc\record.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit8]
-FileName=winsrc\record.h
-Folder=winsrc
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit9]
-FileName=winsrc\winmain.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit10]
-FileName=..\..\..\plugins\dfsound\adsr.c
-Folder=dfsound
-Compile=0
-CompileCpp=0
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=$(CC) -c adsr.c -o adsr.o $(CFLAGS)
-
-[Unit11]
-FileName=..\..\..\plugins\dfsound\adsr.h
-Folder=dfsound
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit12]
-FileName=..\..\..\plugins\dfsound\dma.c
-Folder=dfsound
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit13]
-FileName=..\..\..\plugins\dfsound\dma.h
-Folder=dfsound
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit14]
-FileName=..\..\..\plugins\dfsound\dsoundoss.h
-Folder=dfsound
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit15]
-FileName=..\..\..\plugins\dfsound\externals.h
-Folder=dfsound
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit16]
-FileName=..\..\..\plugins\dfsound\externals.c
-Folder=dfsound
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit17]
-FileName=..\..\..\plugins\dfsound\freeze.c
-Folder=dfsound
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit18]
-FileName=..\..\..\plugins\dfsound\gauss_i.h
-Folder=dfsound
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit19]
-FileName=..\..\..\plugins\dfsound\psemuxa.h
-Folder=dfsound
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit20]
-FileName=..\..\..\plugins\dfsound\registers.c
-Folder=dfsound
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit21]
-FileName=..\..\..\plugins\dfsound\registers.h
-Folder=dfsound
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit22]
-FileName=..\..\..\plugins\dfsound\regs.h
-Folder=dfsound
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit23]
-FileName=..\..\..\plugins\dfsound\reverb.c
-Folder=dfsound
-Compile=0
-CompileCpp=0
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=$(CC) -c reverb.c -o reverb.o $(CFLAGS)
-
-[Unit24]
-FileName=..\..\..\plugins\dfsound\reverb.h
-Folder=dfsound
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit25]
-FileName=..\..\..\plugins\dfsound\spu.c
-Folder=dfsound
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit26]
-FileName=..\..\..\plugins\dfsound\spu.h
-Folder=dfsound
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit27]
-FileName=..\..\..\plugins\dfsound\stdafx.h
-Folder=dfsound
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit28]
-FileName=..\..\..\plugins\dfsound\xa.c
-Folder=dfsound
-Compile=0
-CompileCpp=0
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=$(CC) -c xa.c -o xa.o $(CFLAGS)
-
-[Unit29]
-FileName=..\..\..\plugins\dfsound\xa.h
-Folder=dfsound
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit30]
-FileName=DFSound.def
-Folder=
-Compile=0
-CompileCpp=0
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit31]
-FileName=DFSound.rc
-Folder=Resources
-Compile=1
-CompileCpp=1
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit32]
-FileName=resource.h
-Folder=
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[VersionInfo]
-Major=0
-Minor=1
-Release=1
-Build=1
-LanguageID=1033
-CharsetID=1252
-CompanyName=
-FileVersion=0.1
-FileDescription=Developed using the Dev-C++ IDE
-InternalName=
-LegalCopyright=
-LegalTrademarks=
-OriginalFilename=DFSound.exe
-ProductName=DFSound
-ProductVersion=0.1
-AutoIncBuildNr=0
-
+[Project]
+FileName=DFSound.dev
+Name=DFSound
+Ver=1
+IsCpp=1
+Type=3
+Compiler=-W -DWIN32 -DNDEBUG -D_WINDOWS_@@_
+CppCompiler=-W -DWIN32 -DNDEBUG -D_WINDOWS_@@_
+Includes=.\\;.\winsrc;..\..\..\plugins\dfsound;..\..\glue;..\..\..\libpcsxcore
+Linker=--enable-stdcall-fixup -ldsound -lwinmm -luser32 -lgdi32 -ladvapi32 -def DFSound.def_@@_
+Libs=
+UnitCount=31
+Folders=dfsound,winsrc
+ObjFiles=
+PrivateResource=DFSound_private.rc
+ResourceIncludes=
+MakeIncludes=
+Icon=
+ExeOutput=
+ObjectOutput=
+OverrideOutput=0
+OverrideOutputName=DFSound.exe
+HostApplication=
+CommandLine=
+UseCustomMakefile=0
+CustomMakefile=
+IncludeVersionInfo=0
+SupportXPThemes=0
+CompilerSet=0
+CompilerSettings=0010000001001000010100
+
+[Unit1]
+FileName=winsrc\cfg.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit2]
+FileName=winsrc\debug.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit3]
+FileName=winsrc\debug.h
+Folder=winsrc
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit4]
+FileName=winsrc\dsound.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit5]
+FileName=winsrc\dsound.h
+Folder=winsrc
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit6]
+FileName=winsrc\psemu.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit7]
+FileName=winsrc\record.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit8]
+FileName=winsrc\record.h
+Folder=winsrc
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit9]
+FileName=winsrc\winmain.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit10]
+FileName=..\..\..\plugins\dfsound\adsr.c
+Folder=dfsound
+Compile=0
+CompileCpp=0
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c adsr.c -o adsr.o $(CFLAGS)
+
+[Unit11]
+FileName=..\..\..\plugins\dfsound\adsr.h
+Folder=dfsound
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit12]
+FileName=..\..\..\plugins\dfsound\dma.c
+Folder=dfsound
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit13]
+FileName=..\..\..\plugins\dfsound\dma.h
+Folder=dfsound
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit14]
+FileName=..\..\..\plugins\dfsound\dsoundoss.h
+Folder=dfsound
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit15]
+FileName=..\..\..\plugins\dfsound\externals.h
+Folder=dfsound
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit16]
+FileName=..\..\..\plugins\dfsound\externals.c
+Folder=dfsound
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit17]
+FileName=..\..\..\plugins\dfsound\freeze.c
+Folder=dfsound
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit18]
+FileName=..\..\..\plugins\dfsound\gauss_i.h
+Folder=dfsound
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit19]
+FileName=..\..\..\plugins\dfsound\psemuxa.h
+Folder=dfsound
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit20]
+FileName=..\..\..\plugins\dfsound\registers.c
+Folder=dfsound
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit21]
+FileName=..\..\..\plugins\dfsound\registers.h
+Folder=dfsound
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit22]
+FileName=..\..\..\plugins\dfsound\regs.h
+Folder=dfsound
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit23]
+FileName=..\..\..\plugins\dfsound\reverb.c
+Folder=dfsound
+Compile=0
+CompileCpp=0
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c reverb.c -o reverb.o $(CFLAGS)
+
+[Unit24]
+FileName=..\..\..\plugins\dfsound\reverb.h
+Folder=dfsound
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit25]
+FileName=..\..\..\plugins\dfsound\spu.c
+Folder=dfsound
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit26]
+FileName=..\..\..\plugins\dfsound\spu.h
+Folder=dfsound
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit27]
+FileName=..\..\..\plugins\dfsound\stdafx.h
+Folder=dfsound
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit28]
+FileName=..\..\..\plugins\dfsound\xa.c
+Folder=dfsound
+Compile=0
+CompileCpp=0
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c xa.c -o xa.o $(CFLAGS)
+
+[Unit29]
+FileName=..\..\..\plugins\dfsound\xa.h
+Folder=dfsound
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit30]
+FileName=DFSound.def
+Folder=
+Compile=0
+CompileCpp=0
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit31]
+FileName=DFSound.rc
+Folder=Resources
+Compile=1
+CompileCpp=1
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit32]
+FileName=resource.h
+Folder=
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[VersionInfo]
+Major=0
+Minor=1
+Release=1
+Build=1
+LanguageID=1033
+CharsetID=1252
+CompanyName=
+FileVersion=0.1
+FileDescription=Developed using the Dev-C++ IDE
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=DFSound.exe
+ProductName=DFSound
+ProductVersion=0.1
+AutoIncBuildNr=0
+
diff --git a/win32/plugins/dfsound/DFSound.dsp b/win32/plugins/dfsound/DFSound.dsp
index 93c97006..2ec5c2b5 100644..100755
--- a/win32/plugins/dfsound/DFSound.dsp
+++ b/win32/plugins/dfsound/DFSound.dsp
@@ -1,254 +1,254 @@
-# Microsoft Developer Studio Project File - Name="DFSound" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=DFSound - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "DFSound.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "DFSound.mak" CFG="DFSound - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "DFSound - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "DFSound - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "DFSound - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /G5 /MD /W3 /GX /O2 /I ".\\" /I ".\winsrc" /I "..\..\..\plugins\dfsound" /I "..\..\glue" /I "..\..\..\libpcsxcore" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x407 /d "NDEBUG"
-# ADD RSC /l 0x407 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 dsound.lib winmm.lib user32.lib gdi32.lib advapi32.lib /nologo /subsystem:windows /dll /machine:I386
-
-!ELSEIF "$(CFG)" == "DFSound - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".\\" /I ".\winsrc" /I "..\..\..\plugins\dfsound" /I "..\..\glue" /I "..\..\..\libpcsxcore" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x407 /d "_DEBUG"
-# ADD RSC /l 0x407 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 dsound.lib winmm.lib user32.lib gdi32.lib advapi32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /pdbtype:sept
-
-!ENDIF
-
-# Begin Target
-
-# Name "DFSound - Win32 Release"
-# Name "DFSound - Win32 Debug"
-# Begin Group "winsrc"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\winsrc\cfg.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\debug.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\debug.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\dsound.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\dsound.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\psemu.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\record.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\record.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\winmain.c
-# End Source File
-# End Group
-# Begin Group "dfsound"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\adsr.c
-
-!IF "$(CFG)" == "DFSound - Win32 Release"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "DFSound - Win32 Debug"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\adsr.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\dma.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\dma.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\dsoundoss.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\externals.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\externals.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\freeze.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\gauss_i.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\psemuxa.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\registers.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\registers.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\regs.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\reverb.c
-
-!IF "$(CFG)" == "DFSound - Win32 Release"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "DFSound - Win32 Debug"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\reverb.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\spu.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\spu.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\stdafx.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\xa.c
-
-!IF "$(CFG)" == "DFSound - Win32 Release"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "DFSound - Win32 Debug"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfsound\xa.h
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=.\DFSound.def
-# End Source File
-# Begin Source File
-
-SOURCE=.\DFSound.rc
-# End Source File
-# Begin Source File
-
-SOURCE=.\resource.h
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="DFSound" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=DFSound - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "DFSound.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "DFSound.mak" CFG="DFSound - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "DFSound - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "DFSound - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "DFSound - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /G5 /MD /W3 /GX /O2 /I ".\\" /I ".\winsrc" /I "..\..\..\plugins\dfsound" /I "..\..\glue" /I "..\..\..\libpcsxcore" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
+# ADD LINK32 dsound.lib winmm.lib user32.lib gdi32.lib advapi32.lib /nologo /subsystem:windows /dll /machine:I386
+
+!ELSEIF "$(CFG)" == "DFSound - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".\\" /I ".\winsrc" /I "..\..\..\plugins\dfsound" /I "..\..\glue" /I "..\..\..\libpcsxcore" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 dsound.lib winmm.lib user32.lib gdi32.lib advapi32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "DFSound - Win32 Release"
+# Name "DFSound - Win32 Debug"
+# Begin Group "winsrc"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\winsrc\cfg.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\debug.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\debug.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\dsound.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\dsound.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\psemu.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\record.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\record.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\winmain.c
+# End Source File
+# End Group
+# Begin Group "dfsound"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\adsr.c
+
+!IF "$(CFG)" == "DFSound - Win32 Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "DFSound - Win32 Debug"
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\adsr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\dma.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\dma.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\dsoundoss.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\externals.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\externals.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\freeze.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\gauss_i.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\psemuxa.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\registers.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\registers.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\regs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\reverb.c
+
+!IF "$(CFG)" == "DFSound - Win32 Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "DFSound - Win32 Debug"
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\reverb.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\spu.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\spu.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\stdafx.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\xa.c
+
+!IF "$(CFG)" == "DFSound - Win32 Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "DFSound - Win32 Debug"
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfsound\xa.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\DFSound.def
+# End Source File
+# Begin Source File
+
+SOURCE=.\DFSound.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\resource.h
+# End Source File
+# End Target
+# End Project
diff --git a/win32/plugins/dfsound/DFSound.rc b/win32/plugins/dfsound/DFSound.rc
index 1b86cca4..79b40ad2 100644..100755
--- a/win32/plugins/dfsound/DFSound.rc
+++ b/win32/plugins/dfsound/DFSound.rc
@@ -1,411 +1,411 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// Neutral resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
-#ifdef _WIN32
-LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-#pragma code_page(936)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_ABOUT DIALOGEX 0, 0, 239, 175
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "About"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,98,155,44,14
- RTEXT "Version :",IDC_STATIC,5,5,74,9
- RTEXT "Based on :",IDC_STATIC,5,16,74,9
- RTEXT "Coded by :",IDC_STATIC,5,27,74,9
- RTEXT "Pete's EMail :",IDC_STATIC,5,40,74,9
- RTEXT "Pete's homepage :",IDC_STATIC,5,51,74,9
- LTEXT "1.0",IDC_STATIC,82,5,154,9
- LTEXT "P.E.Op.S DSound PSX SPU Audio Driver",IDC_STATIC,81,16,154,9
- LTEXT "Pete Bernert and the P.E.Op.S. team",IDC_STATIC,81,27,154,9
- LTEXT "BlackDove@addcom.de",IDC_STATIC,81,40,154,9
- LTEXT "http://www.pbernert.com",IDC_STATIC,81,51,154,9
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,9,107,218,41,WS_EX_DLGMODALFRAME
- RTEXT "Greetings to:",IDC_STATIC,16,116,45,9
- LTEXT "_Demo_, Null2, Iori, Andy, Ben, Bilgerat, linuzappz and everybody else who is trying to create nice psx emu sounds :)",IDC_STATIC,65,116,153,27
- RTEXT "P.E.Op.S. homepage :",IDC_STATIC,5,91,74,9
- LTEXT "https://sourceforge.net/projects/peops/",IDC_STATIC,81,91,154,9
- RTEXT "linuzappz :",IDC_STATIC,10,63,69,10
- LTEXT "http://www.pcsx.net",IDC_STATIC,81,63,142,10
- RTEXT "kode54 :",IDC_STATIC,10,75,69,10
- LTEXT "http://home.earthlink.net/~kode54/",IDC_STATIC,81,75,142,10
-END
-
-IDD_CFGDLG DIALOGEX 0, 0, 253, 217
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Configure the P.E.Op.S. DSound PSX SPU Audio Driver..."
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- COMBOBOX IDC_USETIMER,54,14,186,44,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_VOLUME,54,30,186,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_USEREVERB,54,46,186,44,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_INTERPOL,54,62,186,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- CONTROL "Change XA speed, if it is played too fast (more cpu power needed)",IDC_XAPITCH,
- "Button",BS_AUTOCHECKBOX | BS_LEFT | BS_VCENTER | WS_TABSTOP,13,97,225,10
- CONTROL "SPU IRQ - wait for CPU action (Valkyrie Profile && MGS + SPUasync)",IDC_IRQWAIT,
- "Button",BS_AUTOCHECKBOX | BS_LEFT | BS_VCENTER | WS_TABSTOP,13,128,231,10
- CONTROL "Mono sound mode (for slower PCs/sound cards)",IDC_DISSTEREO,
- "Button",BS_AUTOCHECKBOX | BS_LEFT | BS_VCENTER | WS_TABSTOP,13,140,229,10
- CONTROL "Enable developer debug mode",IDC_DEBUGMODE,"Button",BS_AUTOCHECKBOX | BS_LEFT | BS_VCENTER | WS_TABSTOP,13,164,229,10
- CONTROL "Enable sound recording window",IDC_RECORDMODE,"Button",BS_AUTOCHECKBOX | BS_LEFT | BS_VCENTER | WS_TABSTOP,13,177,229,10
- DEFPUSHBUTTON "OK",IDOK,51,196,45,14
- PUSHBUTTON "Cancel",IDCANCEL,157,196,45,14
- RTEXT "Volume:",IDC_STATIC,22,32,29,10,SS_CENTERIMAGE
- GROUPBOX "General settings",IDC_STATIC,4,2,245,81
- GROUPBOX "XA music",IDC_STATIC,4,85,245,27
- GROUPBOX "Misc",IDC_STATIC,4,115,245,77
- RTEXT "Reverb:",IDC_STATIC,22,48,29,10,SS_CENTERIMAGE
- RTEXT "Mode:",IDC_STATIC,20,16,29,10,SS_CENTERIMAGE
- RTEXT "Interpolation:",IDC_STATIC,8,64,43,10,SS_CENTERIMAGE
- CONTROL "Enable frequency response - output filter",IDC_FREQRESPONSE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,152,224,10
-END
-
-IDD_DEBUG DIALOG 0, 0, 397, 314
-STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Sound debug screen"
-FONT 8, "MS Sans Serif"
-BEGIN
- GROUPBOX "XA",IDC_STATIC,201,249,92,61
- LTEXT "",IDC_SAREA,4,12,150,288,WS_BORDER
- CONTROL "",IDC_MUTE1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,14,9,9
- CONTROL "1",IDC_CHAN1,"Button",BS_AUTORADIOBUTTON,168,14,22,9
- CONTROL "",IDC_MUTE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,26,9,9
- CONTROL "2",IDC_CHAN2,"Button",BS_AUTORADIOBUTTON,168,26,22,9
- CONTROL "",IDC_MUTE3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,38,9,9
- CONTROL "3",IDC_CHAN3,"Button",BS_AUTORADIOBUTTON,168,38,22,9
- CONTROL "",IDC_MUTE4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,50,9,9
- CONTROL "4",IDC_CHAN4,"Button",BS_AUTORADIOBUTTON,168,50,22,9
- CONTROL "",IDC_MUTE5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,62,9,9
- CONTROL "5",IDC_CHAN5,"Button",BS_AUTORADIOBUTTON,168,62,22,9
- CONTROL "",IDC_MUTE6,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,74,9,9
- CONTROL "6",IDC_CHAN6,"Button",BS_AUTORADIOBUTTON,168,74,22,9
- CONTROL "",IDC_MUTE7,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,86,9,9
- CONTROL "7",IDC_CHAN7,"Button",BS_AUTORADIOBUTTON,168,86,22,9
- CONTROL "",IDC_MUTE8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,98,9,9
- CONTROL "8",IDC_CHAN8,"Button",BS_AUTORADIOBUTTON,168,98,22,9
- CONTROL "",IDC_MUTE9,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,110,9,9
- CONTROL "9",IDC_CHAN9,"Button",BS_AUTORADIOBUTTON,168,110,22,9
- CONTROL "",IDC_MUTE10,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,122,9,9
- CONTROL "10",IDC_CHAN10,"Button",BS_AUTORADIOBUTTON,168,122,22,9
- CONTROL "",IDC_MUTE11,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,134,9,9
- CONTROL "11",IDC_CHAN11,"Button",BS_AUTORADIOBUTTON,168,134,22,9
- CONTROL "",IDC_MUTE12,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,146,9,9
- CONTROL "12",IDC_CHAN12,"Button",BS_AUTORADIOBUTTON,168,146,22,9
- CONTROL "",IDC_MUTE13,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,158,9,9
- CONTROL "13",IDC_CHAN13,"Button",BS_AUTORADIOBUTTON,168,158,22,9
- CONTROL "",IDC_MUTE14,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,170,9,9
- CONTROL "14",IDC_CHAN14,"Button",BS_AUTORADIOBUTTON,168,170,22,9
- CONTROL "",IDC_MUTE15,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,182,9,9
- CONTROL "15",IDC_CHAN15,"Button",BS_AUTORADIOBUTTON,168,182,22,9
- CONTROL "",IDC_MUTE16,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,194,9,9
- CONTROL "16",IDC_CHAN16,"Button",BS_AUTORADIOBUTTON,168,194,22,9
- CONTROL "",IDC_MUTE17,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,206,9,9
- CONTROL "17",IDC_CHAN17,"Button",BS_AUTORADIOBUTTON,168,206,22,9
- CONTROL "",IDC_MUTE18,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,218,9,9
- CONTROL "18",IDC_CHAN18,"Button",BS_AUTORADIOBUTTON,168,218,22,9
- CONTROL "",IDC_MUTE19,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,230,9,9
- CONTROL "19",IDC_CHAN19,"Button",BS_AUTORADIOBUTTON,168,230,22,9
- CONTROL "",IDC_MUTE20,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,242,9,9
- CONTROL "20",IDC_CHAN20,"Button",BS_AUTORADIOBUTTON,168,242,22,9
- CONTROL "",IDC_MUTE21,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,254,9,9
- CONTROL "21",IDC_CHAN21,"Button",BS_AUTORADIOBUTTON,168,254,22,9
- CONTROL "",IDC_MUTE22,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,266,9,9
- CONTROL "22",IDC_CHAN22,"Button",BS_AUTORADIOBUTTON,168,266,22,9
- CONTROL "",IDC_MUTE23,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,278,9,9
- CONTROL "23",IDC_CHAN23,"Button",BS_AUTORADIOBUTTON,168,278,22,9
- CONTROL "",IDC_MUTE24,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,290,9,9
- CONTROL "24",IDC_CHAN24,"Button",BS_AUTORADIOBUTTON,168,290,22,9
- LTEXT "Streams",IDC_STATIC,6,2,55,8
- CTEXT "Mute/Select",IDC_STATIC,144,2,55,8
- LTEXT "",IDC_ADSR,208,25,176,55,WS_BORDER
- RTEXT "Attack:",IDC_STATIC,221,84,30,9
- RTEXT "Decay:",IDC_STATIC,221,95,30,9
- RTEXT "Sustain:",IDC_STATIC,221,106,30,9
- RTEXT "Release:",IDC_STATIC,221,117,30,9
- LTEXT "---",IDC_SADSR1,254,84,44,9
- LTEXT "---",IDC_SADSR2,254,95,44,9
- LTEXT "---",IDC_SADSR3,254,106,44,9
- LTEXT "---",IDC_SADSR4,254,117,42,9
- RTEXT "Sustain level:",IDC_STATIC,302,84,44,9
- LTEXT "---",IDC_SADSR5,349,84,38,9
- RTEXT "Sustain inc.:",IDC_STATIC,302,95,44,9
- LTEXT "---",IDC_SADSR6,349,95,38,9
- RTEXT "Channel:",IDC_STATIC,204,2,30,8
- GROUPBOX "ADSR channel info",IDC_STATIC,201,14,190,119
- LTEXT "1",IDC_CHANNUM,238,2,33,8
- CONTROL 136,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | SS_REALSIZEIMAGE,208,83,11,10
- CONTROL 137,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | SS_REALSIZEIMAGE,208,94,11,10
- CONTROL 138,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | SS_REALSIZEIMAGE,208,105,11,10
- CONTROL 139,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | SS_REALSIZEIMAGE,208,116,11,10
- CONTROL 140,IDC_STATIC,"Static",SS_BITMAP | SS_REALSIZEIMAGE,4,302,150,8
- PUSHBUTTON "M0",IDC_MUTEOFF,157,300,15,10
- PUSHBUTTON "M1",IDC_MUTEON,174,300,15,10
- GROUPBOX "Generic channel info",IDC_STATIC,201,134,190,114
- RTEXT "On:",IDC_STATIC,210,146,41,9
- RTEXT "Stop:",IDC_STATIC,210,157,41,9
- RTEXT "Reverb:",IDC_STATIC,210,190,41,9
- RTEXT "Start pos:",IDC_STATIC,301,146,35,9
- RTEXT "Curr pos:",IDC_STATIC,301,157,35,9
- RTEXT "Loop pos:",IDC_STATIC,301,168,35,9
- RTEXT "Act freq:",IDC_STATIC,300,223,35,9
- RTEXT "Used freq:",IDC_STATIC,300,234,35,9
- RTEXT "Right vol:",IDC_STATIC,300,190,35,9
- RTEXT "Left vol:",IDC_STATIC,300,201,35,9
- RTEXT "Rvb active:",IDC_STATIC,210,201,41,9
- RTEXT "Rvb offset:",IDC_STATIC,210,223,41,9
- RTEXT "Rvb repeat:",IDC_STATIC,210,234,41,9
- RTEXT "Noise:",IDC_STATIC,210,168,41,9
- RTEXT "FMod:",IDC_STATIC,210,179,41,9
- RTEXT "Rvb number:",IDC_STATIC,210,212,41,9
- RTEXT "Irq addr.:",IDC_STATIC,300,262,35,9
- RTEXT "Curr adsr vol.:",IDC_STATIC,302,106,44,9
- LTEXT "---",IDC_SADSR7,349,106,38,9
- LTEXT "---",IDC_CI1,254,146,39,9
- LTEXT "---",IDC_CI2,254,157,39,9
- LTEXT "---",IDC_CI3,254,168,39,9
- LTEXT "---",IDC_CI4,254,179,39,9
- LTEXT "---",IDC_CI5,254,190,39,9
- LTEXT "---",IDC_CI6,254,201,39,9
- LTEXT "---",IDC_CI7,254,212,39,9
- LTEXT "---",IDC_CI8,254,223,39,9
- LTEXT "---",IDC_CI9,254,234,39,9
- LTEXT "---",IDC_CI10,339,146,46,9
- GROUPBOX "Spu states",IDC_STATIC,297,249,94,61
- LTEXT "---",IDC_CI11,339,157,46,9
- LTEXT "---",IDC_CI12,339,168,46,9
- LTEXT "---",IDC_CI13,339,190,23,9
- LTEXT "---",IDC_CI14,339,201,22,9
- LTEXT "---",IDC_CI15,339,223,46,9
- LTEXT "---",IDC_CI16,339,234,46,9
- LTEXT "---",IDC_STA1,339,262,46,9
- RTEXT "Raw envelope:",IDC_STATIC,296,117,50,9
- LTEXT "---",IDC_SADSR8,349,117,38,9
- RTEXT "Ctrl:",IDC_STATIC,300,273,35,9
- LTEXT "---",IDC_STA2,340,273,46,9
- RTEXT "Stat:",IDC_STATIC,300,284,35,9
- LTEXT "---",IDC_STA3,340,284,46,9
- RTEXT "Spu mem:",IDC_STATIC,300,295,35,9
- LTEXT "---",IDC_STA4,340,295,46,9
- RTEXT "Freq:",IDC_STATIC,204,258,31,9
- RTEXT "Stereo:",IDC_STATIC,204,268,31,9
- RTEXT "Samples:",IDC_STATIC,204,278,31,9
- RTEXT "Buffered:",IDC_STATIC,204,288,31,9
- LTEXT "---",IDC_XA1,239,258,46,9
- LTEXT "---",IDC_XA2,239,268,17,9
- LTEXT "---",IDC_XA3,239,278,46,9
- LTEXT "---",IDC_XA4,239,288,46,9
- LTEXT "---",IDC_CI17,367,190,18,9
- LTEXT "---",IDC_CI18,367,201,18,9
- LTEXT "---",IDC_XA5,239,298,22,9
- LTEXT "---",IDC_XA6,266,298,22,9
- RTEXT "Volume:",IDC_STATIC,204,298,31,9
-END
-
-IDD_RECORD DIALOG 0, 0, 248, 18
-STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "P.E.Op.S. sound recording"
-FONT 8, "MS Sans Serif"
-BEGIN
- RTEXT "Filename:",IDC_STATIC,3,5,33,9
- EDITTEXT IDC_WAVFILE,41,3,134,12,ES_AUTOHSCROLL
- PUSHBUTTON "Start recording",IDC_RECORD,180,3,61,12
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_ABOUT, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 232
- TOPMARGIN, 7
- BOTTOMMARGIN, 168
- END
-
- IDD_CFGDLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 246
- TOPMARGIN, 7
- BOTTOMMARGIN, 210
- END
-
- IDD_DEBUG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 390
- TOPMARGIN, 7
- BOTTOMMARGIN, 307
- END
-
- IDD_RECORD, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 241
- TOPMARGIN, 7
- BOTTOMMARGIN, 11
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,9,0
- PRODUCTVERSION 1,0,9,0
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x2L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "Comments", "Based on P.E.Op.S. DSound PSX SPU Audio driver by Pete Bernert and the P.E.Op.S. team"
- VALUE "FileDescription", "DFSound"
- VALUE "FileVersion", "1, 0, 9, 0"
- VALUE "InternalName", "DFSound"
- VALUE "OriginalFilename", "DFSound.DLL"
- VALUE "ProductName", "DFSound"
- VALUE "ProductVersion", "1, 0, 9, 0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
-#endif // Neutral resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// Polish resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_PLK)
-#ifdef _WIN32
-LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
-#pragma code_page(1250)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
- "#define _AFX_NO_OLE_RESOURCES\r\n"
- "#define _AFX_NO_TRACKER_RESOURCES\r\n"
- "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
- "\r\n"
- "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
- "#ifdef _WIN32\r\n"
- "LANGUAGE 9, 1\r\n"
- "#pragma code_page(1252)\r\n"
- "#endif\r\n"
- "#endif\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-#endif // Polish resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// German (Germany) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
-#ifdef _WIN32
-LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_BITMAP1 BITMAP "res\\bitmap1.bmp"
-IDB_BITMAP2 BITMAP "res\\bitmap2.bmp"
-IDB_BITMAP3 BITMAP "res\\bitmap3.bmp"
-IDB_BITMAP4 BITMAP "res\\bitmap4.bmp"
-IDB_BITMAP5 BITMAP "res\\bitmap5.bmp"
-#endif // German (Germany) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-#define _AFX_NO_SPLITTER_RESOURCES
-#define _AFX_NO_OLE_RESOURCES
-#define _AFX_NO_TRACKER_RESOURCES
-#define _AFX_NO_PROPERTY_RESOURCES
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE 9, 1
-#pragma code_page(1252)
-#endif
-#endif
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Neutral resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
+#ifdef _WIN32
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+#pragma code_page(936)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUT DIALOGEX 0, 0, 239, 175
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "About"
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,98,155,44,14
+ RTEXT "Version :",IDC_STATIC,5,5,74,9
+ RTEXT "Based on :",IDC_STATIC,5,16,74,9
+ RTEXT "Coded by :",IDC_STATIC,5,27,74,9
+ RTEXT "Pete's EMail :",IDC_STATIC,5,40,74,9
+ RTEXT "Pete's homepage :",IDC_STATIC,5,51,74,9
+ LTEXT "1.0",IDC_STATIC,82,5,154,9
+ LTEXT "P.E.Op.S DSound PSX SPU Audio Driver",IDC_STATIC,81,16,154,9
+ LTEXT "Pete Bernert and the P.E.Op.S. team",IDC_STATIC,81,27,154,9
+ LTEXT "BlackDove@addcom.de",IDC_STATIC,81,40,154,9
+ LTEXT "http://www.pbernert.com",IDC_STATIC,81,51,154,9
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,9,107,218,41,WS_EX_DLGMODALFRAME
+ RTEXT "Greetings to:",IDC_STATIC,16,116,45,9
+ LTEXT "_Demo_, Null2, Iori, Andy, Ben, Bilgerat, linuzappz and everybody else who is trying to create nice psx emu sounds :)",IDC_STATIC,65,116,153,27
+ RTEXT "P.E.Op.S. homepage :",IDC_STATIC,5,91,74,9
+ LTEXT "https://sourceforge.net/projects/peops/",IDC_STATIC,81,91,154,9
+ RTEXT "linuzappz :",IDC_STATIC,10,63,69,10
+ LTEXT "http://www.pcsx.net",IDC_STATIC,81,63,142,10
+ RTEXT "kode54 :",IDC_STATIC,10,75,69,10
+ LTEXT "http://home.earthlink.net/~kode54/",IDC_STATIC,81,75,142,10
+END
+
+IDD_CFGDLG DIALOGEX 0, 0, 253, 217
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Configure the P.E.Op.S. DSound PSX SPU Audio Driver..."
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+ COMBOBOX IDC_USETIMER,54,14,186,44,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_VOLUME,54,30,186,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_USEREVERB,54,46,186,44,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_INTERPOL,54,62,186,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ CONTROL "Change XA speed, if it is played too fast (more cpu power needed)",IDC_XAPITCH,
+ "Button",BS_AUTOCHECKBOX | BS_LEFT | BS_VCENTER | WS_TABSTOP,13,97,225,10
+ CONTROL "SPU IRQ - wait for CPU action (Valkyrie Profile && MGS + SPUasync)",IDC_IRQWAIT,
+ "Button",BS_AUTOCHECKBOX | BS_LEFT | BS_VCENTER | WS_TABSTOP,13,128,231,10
+ CONTROL "Mono sound mode (for slower PCs/sound cards)",IDC_DISSTEREO,
+ "Button",BS_AUTOCHECKBOX | BS_LEFT | BS_VCENTER | WS_TABSTOP,13,140,229,10
+ CONTROL "Enable developer debug mode",IDC_DEBUGMODE,"Button",BS_AUTOCHECKBOX | BS_LEFT | BS_VCENTER | WS_TABSTOP,13,164,229,10
+ CONTROL "Enable sound recording window",IDC_RECORDMODE,"Button",BS_AUTOCHECKBOX | BS_LEFT | BS_VCENTER | WS_TABSTOP,13,177,229,10
+ DEFPUSHBUTTON "OK",IDOK,51,196,45,14
+ PUSHBUTTON "Cancel",IDCANCEL,157,196,45,14
+ RTEXT "Volume:",IDC_STATIC,22,32,29,10,SS_CENTERIMAGE
+ GROUPBOX "General settings",IDC_STATIC,4,2,245,81
+ GROUPBOX "XA music",IDC_STATIC,4,85,245,27
+ GROUPBOX "Misc",IDC_STATIC,4,115,245,77
+ RTEXT "Reverb:",IDC_STATIC,22,48,29,10,SS_CENTERIMAGE
+ RTEXT "Mode:",IDC_STATIC,20,16,29,10,SS_CENTERIMAGE
+ RTEXT "Interpolation:",IDC_STATIC,8,64,43,10,SS_CENTERIMAGE
+ CONTROL "Enable frequency response - output filter",IDC_FREQRESPONSE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,152,224,10
+END
+
+IDD_DEBUG DIALOG 0, 0, 397, 314
+STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Sound debug screen"
+FONT 8, "MS Sans Serif"
+BEGIN
+ GROUPBOX "XA",IDC_STATIC,201,249,92,61
+ LTEXT "",IDC_SAREA,4,12,150,288,WS_BORDER
+ CONTROL "",IDC_MUTE1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,14,9,9
+ CONTROL "1",IDC_CHAN1,"Button",BS_AUTORADIOBUTTON,168,14,22,9
+ CONTROL "",IDC_MUTE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,26,9,9
+ CONTROL "2",IDC_CHAN2,"Button",BS_AUTORADIOBUTTON,168,26,22,9
+ CONTROL "",IDC_MUTE3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,38,9,9
+ CONTROL "3",IDC_CHAN3,"Button",BS_AUTORADIOBUTTON,168,38,22,9
+ CONTROL "",IDC_MUTE4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,50,9,9
+ CONTROL "4",IDC_CHAN4,"Button",BS_AUTORADIOBUTTON,168,50,22,9
+ CONTROL "",IDC_MUTE5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,62,9,9
+ CONTROL "5",IDC_CHAN5,"Button",BS_AUTORADIOBUTTON,168,62,22,9
+ CONTROL "",IDC_MUTE6,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,74,9,9
+ CONTROL "6",IDC_CHAN6,"Button",BS_AUTORADIOBUTTON,168,74,22,9
+ CONTROL "",IDC_MUTE7,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,86,9,9
+ CONTROL "7",IDC_CHAN7,"Button",BS_AUTORADIOBUTTON,168,86,22,9
+ CONTROL "",IDC_MUTE8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,98,9,9
+ CONTROL "8",IDC_CHAN8,"Button",BS_AUTORADIOBUTTON,168,98,22,9
+ CONTROL "",IDC_MUTE9,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,110,9,9
+ CONTROL "9",IDC_CHAN9,"Button",BS_AUTORADIOBUTTON,168,110,22,9
+ CONTROL "",IDC_MUTE10,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,122,9,9
+ CONTROL "10",IDC_CHAN10,"Button",BS_AUTORADIOBUTTON,168,122,22,9
+ CONTROL "",IDC_MUTE11,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,134,9,9
+ CONTROL "11",IDC_CHAN11,"Button",BS_AUTORADIOBUTTON,168,134,22,9
+ CONTROL "",IDC_MUTE12,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,146,9,9
+ CONTROL "12",IDC_CHAN12,"Button",BS_AUTORADIOBUTTON,168,146,22,9
+ CONTROL "",IDC_MUTE13,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,158,9,9
+ CONTROL "13",IDC_CHAN13,"Button",BS_AUTORADIOBUTTON,168,158,22,9
+ CONTROL "",IDC_MUTE14,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,170,9,9
+ CONTROL "14",IDC_CHAN14,"Button",BS_AUTORADIOBUTTON,168,170,22,9
+ CONTROL "",IDC_MUTE15,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,182,9,9
+ CONTROL "15",IDC_CHAN15,"Button",BS_AUTORADIOBUTTON,168,182,22,9
+ CONTROL "",IDC_MUTE16,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,194,9,9
+ CONTROL "16",IDC_CHAN16,"Button",BS_AUTORADIOBUTTON,168,194,22,9
+ CONTROL "",IDC_MUTE17,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,206,9,9
+ CONTROL "17",IDC_CHAN17,"Button",BS_AUTORADIOBUTTON,168,206,22,9
+ CONTROL "",IDC_MUTE18,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,218,9,9
+ CONTROL "18",IDC_CHAN18,"Button",BS_AUTORADIOBUTTON,168,218,22,9
+ CONTROL "",IDC_MUTE19,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,230,9,9
+ CONTROL "19",IDC_CHAN19,"Button",BS_AUTORADIOBUTTON,168,230,22,9
+ CONTROL "",IDC_MUTE20,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,242,9,9
+ CONTROL "20",IDC_CHAN20,"Button",BS_AUTORADIOBUTTON,168,242,22,9
+ CONTROL "",IDC_MUTE21,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,254,9,9
+ CONTROL "21",IDC_CHAN21,"Button",BS_AUTORADIOBUTTON,168,254,22,9
+ CONTROL "",IDC_MUTE22,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,266,9,9
+ CONTROL "22",IDC_CHAN22,"Button",BS_AUTORADIOBUTTON,168,266,22,9
+ CONTROL "",IDC_MUTE23,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,278,9,9
+ CONTROL "23",IDC_CHAN23,"Button",BS_AUTORADIOBUTTON,168,278,22,9
+ CONTROL "",IDC_MUTE24,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,290,9,9
+ CONTROL "24",IDC_CHAN24,"Button",BS_AUTORADIOBUTTON,168,290,22,9
+ LTEXT "Streams",IDC_STATIC,6,2,55,8
+ CTEXT "Mute/Select",IDC_STATIC,144,2,55,8
+ LTEXT "",IDC_ADSR,208,25,176,55,WS_BORDER
+ RTEXT "Attack:",IDC_STATIC,221,84,30,9
+ RTEXT "Decay:",IDC_STATIC,221,95,30,9
+ RTEXT "Sustain:",IDC_STATIC,221,106,30,9
+ RTEXT "Release:",IDC_STATIC,221,117,30,9
+ LTEXT "---",IDC_SADSR1,254,84,44,9
+ LTEXT "---",IDC_SADSR2,254,95,44,9
+ LTEXT "---",IDC_SADSR3,254,106,44,9
+ LTEXT "---",IDC_SADSR4,254,117,42,9
+ RTEXT "Sustain level:",IDC_STATIC,302,84,44,9
+ LTEXT "---",IDC_SADSR5,349,84,38,9
+ RTEXT "Sustain inc.:",IDC_STATIC,302,95,44,9
+ LTEXT "---",IDC_SADSR6,349,95,38,9
+ RTEXT "Channel:",IDC_STATIC,204,2,30,8
+ GROUPBOX "ADSR channel info",IDC_STATIC,201,14,190,119
+ LTEXT "1",IDC_CHANNUM,238,2,33,8
+ CONTROL 136,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | SS_REALSIZEIMAGE,208,83,11,10
+ CONTROL 137,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | SS_REALSIZEIMAGE,208,94,11,10
+ CONTROL 138,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | SS_REALSIZEIMAGE,208,105,11,10
+ CONTROL 139,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | SS_REALSIZEIMAGE,208,116,11,10
+ CONTROL 140,IDC_STATIC,"Static",SS_BITMAP | SS_REALSIZEIMAGE,4,302,150,8
+ PUSHBUTTON "M0",IDC_MUTEOFF,157,300,15,10
+ PUSHBUTTON "M1",IDC_MUTEON,174,300,15,10
+ GROUPBOX "Generic channel info",IDC_STATIC,201,134,190,114
+ RTEXT "On:",IDC_STATIC,210,146,41,9
+ RTEXT "Stop:",IDC_STATIC,210,157,41,9
+ RTEXT "Reverb:",IDC_STATIC,210,190,41,9
+ RTEXT "Start pos:",IDC_STATIC,301,146,35,9
+ RTEXT "Curr pos:",IDC_STATIC,301,157,35,9
+ RTEXT "Loop pos:",IDC_STATIC,301,168,35,9
+ RTEXT "Act freq:",IDC_STATIC,300,223,35,9
+ RTEXT "Used freq:",IDC_STATIC,300,234,35,9
+ RTEXT "Right vol:",IDC_STATIC,300,190,35,9
+ RTEXT "Left vol:",IDC_STATIC,300,201,35,9
+ RTEXT "Rvb active:",IDC_STATIC,210,201,41,9
+ RTEXT "Rvb offset:",IDC_STATIC,210,223,41,9
+ RTEXT "Rvb repeat:",IDC_STATIC,210,234,41,9
+ RTEXT "Noise:",IDC_STATIC,210,168,41,9
+ RTEXT "FMod:",IDC_STATIC,210,179,41,9
+ RTEXT "Rvb number:",IDC_STATIC,210,212,41,9
+ RTEXT "Irq addr.:",IDC_STATIC,300,262,35,9
+ RTEXT "Curr adsr vol.:",IDC_STATIC,302,106,44,9
+ LTEXT "---",IDC_SADSR7,349,106,38,9
+ LTEXT "---",IDC_CI1,254,146,39,9
+ LTEXT "---",IDC_CI2,254,157,39,9
+ LTEXT "---",IDC_CI3,254,168,39,9
+ LTEXT "---",IDC_CI4,254,179,39,9
+ LTEXT "---",IDC_CI5,254,190,39,9
+ LTEXT "---",IDC_CI6,254,201,39,9
+ LTEXT "---",IDC_CI7,254,212,39,9
+ LTEXT "---",IDC_CI8,254,223,39,9
+ LTEXT "---",IDC_CI9,254,234,39,9
+ LTEXT "---",IDC_CI10,339,146,46,9
+ GROUPBOX "Spu states",IDC_STATIC,297,249,94,61
+ LTEXT "---",IDC_CI11,339,157,46,9
+ LTEXT "---",IDC_CI12,339,168,46,9
+ LTEXT "---",IDC_CI13,339,190,23,9
+ LTEXT "---",IDC_CI14,339,201,22,9
+ LTEXT "---",IDC_CI15,339,223,46,9
+ LTEXT "---",IDC_CI16,339,234,46,9
+ LTEXT "---",IDC_STA1,339,262,46,9
+ RTEXT "Raw envelope:",IDC_STATIC,296,117,50,9
+ LTEXT "---",IDC_SADSR8,349,117,38,9
+ RTEXT "Ctrl:",IDC_STATIC,300,273,35,9
+ LTEXT "---",IDC_STA2,340,273,46,9
+ RTEXT "Stat:",IDC_STATIC,300,284,35,9
+ LTEXT "---",IDC_STA3,340,284,46,9
+ RTEXT "Spu mem:",IDC_STATIC,300,295,35,9
+ LTEXT "---",IDC_STA4,340,295,46,9
+ RTEXT "Freq:",IDC_STATIC,204,258,31,9
+ RTEXT "Stereo:",IDC_STATIC,204,268,31,9
+ RTEXT "Samples:",IDC_STATIC,204,278,31,9
+ RTEXT "Buffered:",IDC_STATIC,204,288,31,9
+ LTEXT "---",IDC_XA1,239,258,46,9
+ LTEXT "---",IDC_XA2,239,268,17,9
+ LTEXT "---",IDC_XA3,239,278,46,9
+ LTEXT "---",IDC_XA4,239,288,46,9
+ LTEXT "---",IDC_CI17,367,190,18,9
+ LTEXT "---",IDC_CI18,367,201,18,9
+ LTEXT "---",IDC_XA5,239,298,22,9
+ LTEXT "---",IDC_XA6,266,298,22,9
+ RTEXT "Volume:",IDC_STATIC,204,298,31,9
+END
+
+IDD_RECORD DIALOG 0, 0, 248, 18
+STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "P.E.Op.S. sound recording"
+FONT 8, "MS Sans Serif"
+BEGIN
+ RTEXT "Filename:",IDC_STATIC,3,5,33,9
+ EDITTEXT IDC_WAVFILE,41,3,134,12,ES_AUTOHSCROLL
+ PUSHBUTTON "Start recording",IDC_RECORD,180,3,61,12
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_ABOUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 232
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 168
+ END
+
+ IDD_CFGDLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 246
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 210
+ END
+
+ IDD_DEBUG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 390
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 307
+ END
+
+ IDD_RECORD, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 241
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 11
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,9,0
+ PRODUCTVERSION 1,0,9,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "Comments", "Based on P.E.Op.S. DSound PSX SPU Audio driver by Pete Bernert and the P.E.Op.S. team"
+ VALUE "FileDescription", "DFSound"
+ VALUE "FileVersion", "1, 0, 9, 0"
+ VALUE "InternalName", "DFSound"
+ VALUE "OriginalFilename", "DFSound.DLL"
+ VALUE "ProductName", "DFSound"
+ VALUE "ProductVersion", "1, 0, 9, 0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif // Neutral resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Polish resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_PLK)
+#ifdef _WIN32
+LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
+#pragma code_page(1250)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
+ "#define _AFX_NO_OLE_RESOURCES\r\n"
+ "#define _AFX_NO_TRACKER_RESOURCES\r\n"
+ "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
+ "\r\n"
+ "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
+ "#ifdef _WIN32\r\n"
+ "LANGUAGE 9, 1\r\n"
+ "#pragma code_page(1252)\r\n"
+ "#endif\r\n"
+ "#endif\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // Polish resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// German (Germany) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
+#ifdef _WIN32
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDB_BITMAP1 BITMAP "res\\bitmap1.bmp"
+IDB_BITMAP2 BITMAP "res\\bitmap2.bmp"
+IDB_BITMAP3 BITMAP "res\\bitmap3.bmp"
+IDB_BITMAP4 BITMAP "res\\bitmap4.bmp"
+IDB_BITMAP5 BITMAP "res\\bitmap5.bmp"
+#endif // German (Germany) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#define _AFX_NO_SPLITTER_RESOURCES
+#define _AFX_NO_OLE_RESOURCES
+#define _AFX_NO_TRACKER_RESOURCES
+#define _AFX_NO_PROPERTY_RESOURCES
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE 9, 1
+#pragma code_page(1252)
+#endif
+#endif
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/win32/plugins/dfsound/DFSound.vcproj b/win32/plugins/dfsound/DFSound.vcproj
index 9314bbc2..443abd6e 100644..100755
--- a/win32/plugins/dfsound/DFSound.vcproj
+++ b/win32/plugins/dfsound/DFSound.vcproj
@@ -1,606 +1,606 @@
-<?xml version="1.0" encoding="gb2312"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="DFSound"
- ProjectGUID="{DB25BF63-9B9E-4A40-A45E-BBBA49AD6F22}"
- RootNamespace="DFSound"
- TargetFrameworkVersion="0"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Release|Win32"
- OutputDirectory=".\Release"
- IntermediateDirectory=".\Release"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Release/DFSound.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="1"
- AdditionalIncludeDirectories=".\,.\winsrc,..\..\..\plugins\dfsound,..\..\glue,..\..\..\libpcsxcore"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
- StringPooling="true"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- PrecompiledHeaderFile=".\Release/DFSound.pch"
- AssemblerListingLocation=".\Release/"
- ObjectFile=".\Release/"
- ProgramDataBaseFileName=".\Release/"
- BrowseInformation="1"
- WarningLevel="3"
- SuppressStartupBanner="true"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1031"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="dsound.lib winmm.lib"
- OutputFile=".\Release/DFSound.dll"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- ModuleDefinitionFile=".\DFSound.def"
- ProgramDatabaseFile=".\Release/DFSound.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary=".\Release/DFSound.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- SuppressStartupBanner="true"
- OutputFile=".\Release/DFSound.bsc"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory=".\Debug"
- IntermediateDirectory=".\Debug"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Debug/DFSound.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=".\,.\winsrc,..\..\..\plugins\dfsound,..\..\glue,..\..\..\libpcsxcore"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- PrecompiledHeaderFile=".\Debug/DFSound.pch"
- AssemblerListingLocation=".\Debug/"
- ObjectFile=".\Debug/"
- ProgramDataBaseFileName=".\Debug/"
- WarningLevel="3"
- SuppressStartupBanner="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1031"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="dsound.lib winmm.lib"
- OutputFile=".\Debug/DFSound.dll"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- ModuleDefinitionFile=".\DFSound.def"
- GenerateDebugInformation="true"
- ProgramDatabaseFile=".\Debug/DFSound.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary=".\Debug/DFSound.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- SuppressStartupBanner="true"
- OutputFile=".\Debug/DFSound.bsc"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="winsrc"
- >
- <File
- RelativePath="winsrc\cfg.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\debug.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\debug.h"
- >
- </File>
- <File
- RelativePath="winsrc\dsound.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\dsound.h"
- >
- </File>
- <File
- RelativePath="winsrc\psemu.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\record.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\record.h"
- >
- </File>
- <File
- RelativePath="winsrc\winmain.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="dfsound"
- >
- <File
- RelativePath="..\..\..\plugins\dfsound\adsr.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\adsr.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\dma.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\dma.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\dsoundoss.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\externals.c"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\externals.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\freeze.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\gauss_i.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\psemuxa.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\registers.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\registers.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\regs.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\reverb.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\reverb.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\spu.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\spu.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\stdafx.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\xa.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\dfsound\xa.h"
- >
- </File>
- </Filter>
- <File
- RelativePath="DFSound.def"
- >
- </File>
- <File
- RelativePath="DFSound.rc"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="resource.h"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="gb2312"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="DFSound"
+ ProjectGUID="{DB25BF63-9B9E-4A40-A45E-BBBA49AD6F22}"
+ RootNamespace="DFSound"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/DFSound.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories=".\,.\winsrc,..\..\..\plugins\dfsound,..\..\glue,..\..\..\libpcsxcore"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\Release/DFSound.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1031"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="dsound.lib winmm.lib"
+ OutputFile=".\Release/DFSound.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ModuleDefinitionFile=".\DFSound.def"
+ ProgramDatabaseFile=".\Release/DFSound.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary=".\Release/DFSound.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Release/DFSound.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/DFSound.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=".\,.\winsrc,..\..\..\plugins\dfsound,..\..\glue,..\..\..\libpcsxcore"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile=".\Debug/DFSound.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1031"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="dsound.lib winmm.lib"
+ OutputFile=".\Debug/DFSound.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ModuleDefinitionFile=".\DFSound.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\Debug/DFSound.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary=".\Debug/DFSound.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Debug/DFSound.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="winsrc"
+ >
+ <File
+ RelativePath="winsrc\cfg.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\debug.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\debug.h"
+ >
+ </File>
+ <File
+ RelativePath="winsrc\dsound.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\dsound.h"
+ >
+ </File>
+ <File
+ RelativePath="winsrc\psemu.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\record.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\record.h"
+ >
+ </File>
+ <File
+ RelativePath="winsrc\winmain.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="dfsound"
+ >
+ <File
+ RelativePath="..\..\..\plugins\dfsound\adsr.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\adsr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\dma.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\dma.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\dsoundoss.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\externals.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\externals.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\freeze.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\gauss_i.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\psemuxa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\registers.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\registers.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\regs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\reverb.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\reverb.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\spu.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\spu.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\stdafx.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\xa.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfsound\xa.h"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="DFSound.def"
+ >
+ </File>
+ <File
+ RelativePath="DFSound.rc"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="resource.h"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/win32/plugins/dfsound/resource.h b/win32/plugins/dfsound/resource.h
index 7b071946..8185d103 100644..100755
--- a/win32/plugins/dfsound/resource.h
+++ b/win32/plugins/dfsound/resource.h
@@ -1,149 +1,149 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by DFSound.rc
-//
-#define IDC_SETS1 3
-#define IDC_SETS2 4
-#define IDOK2 5
-#define IDD_DIALOG1 130
-#define IDD_ABOUT 130
-#define IDD_CFGDLG 131
-#define IDD_DEBUG 135
-#define IDB_BITMAP1 136
-#define IDB_BITMAP2 137
-#define IDB_BITMAP3 138
-#define IDB_BITMAP4 139
-#define IDB_BITMAP5 140
-#define IDD_RECORD 141
-#define IDC_XAVOLUME 1004
-#define IDC_ENABXA 1005
-#define IDC_XAPITCH 1006
-#define IDC_XABLOCK 1007
-#define IDC_USETIMER 1007
-#define IDC_CMIXRATE 1008
-#define IDC_USEIRQ 1008
-#define IDC_USEREVERB 1008
-#define IDC_CMODE 1009
-#define IDC_VOLUME 1009
-#define IDC_CFILTER 1010
-#define IDC_IRQWAIT 1010
-#define IDC_CQUALITY 1011
-#define IDC_DEBUGMODE 1011
-#define IDC_CDSOUND 1012
-#define IDC_INTERPOL 1012
-#define IDC_PLAYALWAYS 1013
-#define IDC_RECORDMODE 1013
-#define IDC_IGNOREPITCH 1014
-#define IDC_DISSTEREO 1014
-#define IDC_AMPLIF 1015
-#define IDC_IRQDECODE 1015
-#define IDC_VENVELOPE 1016
-#define IDC_VOL1 1016
-#define IDC_REVERB 1017
-#define IDC_VOL2 1017
-#define IDC_VOL3 1018
-#define IDC_VOL4 1019
-#define IDC_SAREA 1022
-#define IDC_ADSR 1023
-#define IDC_MUTE1 1047
-#define IDC_MUTE2 1048
-#define IDC_MUTE3 1049
-#define IDC_MUTE4 1050
-#define IDC_MUTE5 1051
-#define IDC_MUTE6 1052
-#define IDC_MUTE7 1053
-#define IDC_MUTE8 1054
-#define IDC_MUTE9 1055
-#define IDC_MUTE10 1056
-#define IDC_MUTE11 1057
-#define IDC_MUTE12 1058
-#define IDC_MUTE13 1059
-#define IDC_MUTE14 1060
-#define IDC_MUTE15 1061
-#define IDC_MUTE16 1062
-#define IDC_MUTE17 1063
-#define IDC_MUTE18 1064
-#define IDC_MUTE19 1065
-#define IDC_MUTE20 1066
-#define IDC_MUTE21 1067
-#define IDC_MUTE22 1068
-#define IDC_MUTE23 1069
-#define IDC_MUTE24 1070
-#define IDC_CHAN1 1071
-#define IDC_CHAN2 1072
-#define IDC_CHAN3 1073
-#define IDC_CHAN4 1074
-#define IDC_CHAN5 1075
-#define IDC_CHAN6 1076
-#define IDC_CHAN7 1077
-#define IDC_CHAN8 1078
-#define IDC_CHAN9 1079
-#define IDC_CHAN10 1080
-#define IDC_CHAN11 1081
-#define IDC_CHAN12 1082
-#define IDC_CHAN13 1083
-#define IDC_CHAN14 1084
-#define IDC_CHAN15 1085
-#define IDC_CHAN16 1086
-#define IDC_CHAN17 1087
-#define IDC_CHAN18 1088
-#define IDC_CHAN19 1089
-#define IDC_CHAN20 1090
-#define IDC_CHAN21 1091
-#define IDC_CHAN22 1092
-#define IDC_CHAN23 1093
-#define IDC_CHAN24 1094
-#define IDC_SADSR1 1096
-#define IDC_SADSR2 1097
-#define IDC_SADSR3 1098
-#define IDC_SADSR4 1099
-#define IDC_SADSR5 1100
-#define IDC_SADSR6 1101
-#define IDC_CHANNUM 1102
-#define IDC_MUTEOFF 1103
-#define IDC_MUTEON 1104
-#define IDC_SADSR7 1105
-#define IDC_CI1 1106
-#define IDC_CI2 1107
-#define IDC_CI3 1108
-#define IDC_CI4 1109
-#define IDC_CI5 1110
-#define IDC_CI6 1111
-#define IDC_CI7 1112
-#define IDC_CI8 1113
-#define IDC_CI9 1114
-#define IDC_CI10 1115
-#define IDC_CI11 1116
-#define IDC_CI12 1117
-#define IDC_CI13 1118
-#define IDC_CI14 1119
-#define IDC_CI15 1120
-#define IDC_CI16 1121
-#define IDC_STA1 1122
-#define IDC_SADSR8 1123
-#define IDC_STA2 1124
-#define IDC_STA3 1125
-#define IDC_STA4 1126
-#define IDC_XA1 1127
-#define IDC_XA2 1128
-#define IDC_XA3 1129
-#define IDC_XA4 1130
-#define IDC_CI17 1131
-#define IDC_CI18 1132
-#define IDC_XA 1133
-#define IDC_WAVFILE 1134
-#define IDC_XA5 1135
-#define IDC_RECORD 1135
-#define IDC_XA6 1136
-#define IDC_FREQRESPONSE 1136
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 144
-#define _APS_NEXT_COMMAND_VALUE 32771
-#define _APS_NEXT_CONTROL_VALUE 1137
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by DFSound.rc
+//
+#define IDC_SETS1 3
+#define IDC_SETS2 4
+#define IDOK2 5
+#define IDD_DIALOG1 130
+#define IDD_ABOUT 130
+#define IDD_CFGDLG 131
+#define IDD_DEBUG 135
+#define IDB_BITMAP1 136
+#define IDB_BITMAP2 137
+#define IDB_BITMAP3 138
+#define IDB_BITMAP4 139
+#define IDB_BITMAP5 140
+#define IDD_RECORD 141
+#define IDC_XAVOLUME 1004
+#define IDC_ENABXA 1005
+#define IDC_XAPITCH 1006
+#define IDC_XABLOCK 1007
+#define IDC_USETIMER 1007
+#define IDC_CMIXRATE 1008
+#define IDC_USEIRQ 1008
+#define IDC_USEREVERB 1008
+#define IDC_CMODE 1009
+#define IDC_VOLUME 1009
+#define IDC_CFILTER 1010
+#define IDC_IRQWAIT 1010
+#define IDC_CQUALITY 1011
+#define IDC_DEBUGMODE 1011
+#define IDC_CDSOUND 1012
+#define IDC_INTERPOL 1012
+#define IDC_PLAYALWAYS 1013
+#define IDC_RECORDMODE 1013
+#define IDC_IGNOREPITCH 1014
+#define IDC_DISSTEREO 1014
+#define IDC_AMPLIF 1015
+#define IDC_IRQDECODE 1015
+#define IDC_VENVELOPE 1016
+#define IDC_VOL1 1016
+#define IDC_REVERB 1017
+#define IDC_VOL2 1017
+#define IDC_VOL3 1018
+#define IDC_VOL4 1019
+#define IDC_SAREA 1022
+#define IDC_ADSR 1023
+#define IDC_MUTE1 1047
+#define IDC_MUTE2 1048
+#define IDC_MUTE3 1049
+#define IDC_MUTE4 1050
+#define IDC_MUTE5 1051
+#define IDC_MUTE6 1052
+#define IDC_MUTE7 1053
+#define IDC_MUTE8 1054
+#define IDC_MUTE9 1055
+#define IDC_MUTE10 1056
+#define IDC_MUTE11 1057
+#define IDC_MUTE12 1058
+#define IDC_MUTE13 1059
+#define IDC_MUTE14 1060
+#define IDC_MUTE15 1061
+#define IDC_MUTE16 1062
+#define IDC_MUTE17 1063
+#define IDC_MUTE18 1064
+#define IDC_MUTE19 1065
+#define IDC_MUTE20 1066
+#define IDC_MUTE21 1067
+#define IDC_MUTE22 1068
+#define IDC_MUTE23 1069
+#define IDC_MUTE24 1070
+#define IDC_CHAN1 1071
+#define IDC_CHAN2 1072
+#define IDC_CHAN3 1073
+#define IDC_CHAN4 1074
+#define IDC_CHAN5 1075
+#define IDC_CHAN6 1076
+#define IDC_CHAN7 1077
+#define IDC_CHAN8 1078
+#define IDC_CHAN9 1079
+#define IDC_CHAN10 1080
+#define IDC_CHAN11 1081
+#define IDC_CHAN12 1082
+#define IDC_CHAN13 1083
+#define IDC_CHAN14 1084
+#define IDC_CHAN15 1085
+#define IDC_CHAN16 1086
+#define IDC_CHAN17 1087
+#define IDC_CHAN18 1088
+#define IDC_CHAN19 1089
+#define IDC_CHAN20 1090
+#define IDC_CHAN21 1091
+#define IDC_CHAN22 1092
+#define IDC_CHAN23 1093
+#define IDC_CHAN24 1094
+#define IDC_SADSR1 1096
+#define IDC_SADSR2 1097
+#define IDC_SADSR3 1098
+#define IDC_SADSR4 1099
+#define IDC_SADSR5 1100
+#define IDC_SADSR6 1101
+#define IDC_CHANNUM 1102
+#define IDC_MUTEOFF 1103
+#define IDC_MUTEON 1104
+#define IDC_SADSR7 1105
+#define IDC_CI1 1106
+#define IDC_CI2 1107
+#define IDC_CI3 1108
+#define IDC_CI4 1109
+#define IDC_CI5 1110
+#define IDC_CI6 1111
+#define IDC_CI7 1112
+#define IDC_CI8 1113
+#define IDC_CI9 1114
+#define IDC_CI10 1115
+#define IDC_CI11 1116
+#define IDC_CI12 1117
+#define IDC_CI13 1118
+#define IDC_CI14 1119
+#define IDC_CI15 1120
+#define IDC_CI16 1121
+#define IDC_STA1 1122
+#define IDC_SADSR8 1123
+#define IDC_STA2 1124
+#define IDC_STA3 1125
+#define IDC_STA4 1126
+#define IDC_XA1 1127
+#define IDC_XA2 1128
+#define IDC_XA3 1129
+#define IDC_XA4 1130
+#define IDC_CI17 1131
+#define IDC_CI18 1132
+#define IDC_XA 1133
+#define IDC_WAVFILE 1134
+#define IDC_XA5 1135
+#define IDC_RECORD 1135
+#define IDC_XA6 1136
+#define IDC_FREQRESPONSE 1136
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 144
+#define _APS_NEXT_COMMAND_VALUE 32771
+#define _APS_NEXT_CONTROL_VALUE 1137
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/win32/plugins/dfsound/winsrc/cfg.c b/win32/plugins/dfsound/winsrc/cfg.c
index dc497989..f5f9cff5 100644..100755
--- a/win32/plugins/dfsound/winsrc/cfg.c
+++ b/win32/plugins/dfsound/winsrc/cfg.c
@@ -64,8 +64,8 @@ void ReadConfig(void)
iRecordMode=0;
iUseReverb=2;
iUseInterpolation=2;
- iDisStereo=0;
- iFreqResponse=0;
+ iDisStereo=0;
+ iFreqResponse=0;
if (RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Vision Thing\\PSEmu Pro\\SPU\\DFSound",0,KEY_ALL_ACCESS,&myKey)==ERROR_SUCCESS)
{
@@ -82,8 +82,8 @@ void ReadConfig(void)
if(RegQueryValueEx(myKey,"SPUIRQWait",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
iSPUIRQWait=(int)temp;
size = 4;
- if(RegQueryValueEx(myKey,"FreqResponse",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iFreqResponse=(int)temp;
+ if(RegQueryValueEx(myKey,"FreqResponse",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iFreqResponse=(int)temp;
size = 4;
if(RegQueryValueEx(myKey,"DebugMode",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
iDebugMode=(int)temp;
@@ -127,8 +127,8 @@ void WriteConfig(void)
RegSetValueEx(myKey,"UseTimer",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
temp=iSPUIRQWait;
RegSetValueEx(myKey,"SPUIRQWait",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iFreqResponse;
- RegSetValueEx(myKey,"FreqResponse",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iFreqResponse;
+ RegSetValueEx(myKey,"FreqResponse",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
temp=iDebugMode;
RegSetValueEx(myKey,"DebugMode",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
temp=iRecordMode;
@@ -139,7 +139,7 @@ void WriteConfig(void)
RegSetValueEx(myKey,"UseInterpolation",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
temp=iDisStereo;
RegSetValueEx(myKey,"DisStereo",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
-
+
RegCloseKey(myKey);
}
@@ -225,10 +225,10 @@ void OnDSoundOK(HWND hW)
if(IsDlgButtonChecked(hW,IDC_DISSTEREO))
iDisStereo=1; else iDisStereo=0;
-
- if(IsDlgButtonChecked(hW,IDC_FREQRESPONSE))
- iFreqResponse=1; else iFreqResponse=0;
-
+
+ if(IsDlgButtonChecked(hW,IDC_FREQRESPONSE))
+ iFreqResponse=1; else iFreqResponse=0;
+
WriteConfig(); // write registry
EndDialog(hW,TRUE);
diff --git a/win32/plugins/dfsound/winsrc/debug.c b/win32/plugins/dfsound/winsrc/debug.c
index 223be4ce..26c15c14 100644..100755
--- a/win32/plugins/dfsound/winsrc/debug.c
+++ b/win32/plugins/dfsound/winsrc/debug.c
@@ -1,372 +1,372 @@
-/***************************************************************************
- debug.c - description
- -------------------
- begin : Wed May 15 2002
- copyright : (C) 2002 by Pete Bernert
- email : BlackDove@addcom.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. See also the license.txt file for *
- * additional informations. *
- * *
- ***************************************************************************/
-
-//*************************************************************************//
-// History of changes:
-//
-// 2004/09/18 - Pete
-// - corrected ADSRX value display
-//
-// 2003/01/06 - Pete
-// - added Neil's ADSR timings
-//
-// 2002/05/15 - Pete
-// - generic cleanup for the Peops release
-//
-//*************************************************************************//
-
-#include "stdafx.h"
-
-#define _IN_DEBUG
-
-#include "externals.h"
-
-////////////////////////////////////////////////////////////////////////
-// WINDOWS DEBUG DIALOG HANDLING
-////////////////////////////////////////////////////////////////////////
-
-#ifdef _WINDOWS
-
-#include "resource.h"
-
-//#define SMALLDEBUG
-//#include <dbgout.h>
-
-////////////////////////////////////////////////////////////////////////
-// display debug infos
-
-const COLORREF crStreamCol[]={
- RGB( 0, 0, 0),
- RGB(255,255,255),
- RGB(128, 0,128),
- RGB( 0,128, 0),
- RGB( 0, 0,255),
- RGB(255, 0, 0)
- };
-
-const COLORREF crAdsrCol[] ={
- RGB( 0, 0, 0),
- RGB(255, 0, 0),
- RGB( 0,255, 0),
- RGB(255, 0,255),
- RGB( 0, 0,255),
- RGB( 0, 0, 0),
- };
-
-HBRUSH hBStream[6]; // brushes for stream lines
-HPEN hPAdsr[6]; // pens for adsr lines
-int iSelChannel=0; // user selected channel
-
-////////////////////////////////////////////////////////////////////////
-// display the sound data waves: no subclassing used, so the
-// area will not be redrawn... but faster that way, and good enuff
-// for debugging purposes
-
-void DisplayStreamInfos(HWND hW)
-{
- HWND hWS=GetDlgItem(hW,IDC_SAREA);
- HDC hdc;RECT r;HBRUSH hBO;int ch,dy,i,j,id;
-
- //----------------------------------------------------//
-
- GetClientRect(hWS,&r); // get size of stream display
- hdc=GetDC(hWS); // device context
- r.right--; // leave the right border intact
- ScrollDC(hdc,-1,0,&r,&r,NULL,NULL); // scroll one pixel to the left
-
- //----------------------------------------------------//
-
- hBO=SelectObject(hdc,hBStream[0]); // clean the right border
- PatBlt(hdc,r.right-1,0,1,r.bottom,PATCOPY);
-
- //----------------------------------------------------//
-
- dy=r.bottom/MAXCHAN; // size of one channel area
-
- for(ch=0;ch<MAXCHAN;ch++) // loop the channels
- {
- if(s_chan[ch].bOn) // channel is on?
- {
- if(s_chan[ch].iIrqDone)
- {
- s_chan[ch].iIrqDone=0;
- PatBlt(hdc,r.right-1,ch*r.bottom/MAXCHAN,
- 1,dy,BLACKNESS);
- continue;
- }
-
- j=s_chan[ch].sval;if(j<0) j=-j; // -> get one channel data (-32k ... 32k)
- j=(dy*j)/32768; if(j==0) j=1; // -> adjust to display coords
- i=(dy/2)+(ch*r.bottom/MAXCHAN)-j/2; // -> position where to paint it
-
-
-
- if (s_chan[ch].iMute) id=1; // -> get color id
- else if(s_chan[ch].bNoise) id=2;
- else if(s_chan[ch].bFMod==2) id=3;
- else if(s_chan[ch].bFMod==1) id=4;
- else id=5;
-
- SelectObject(hdc,hBStream[id]); // -> select the brush
- PatBlt(hdc,r.right-1,i,1,j,PATCOPY); // -> paint the value line
- }
-
- if(ch) SetPixel(hdc,r.right-1, // -> not first line?
- ch*r.bottom/MAXCHAN,RGB(0,0,0)); // --> draw the line (one dot scrolled to the left)
- }
-
- //----------------------------------------------------//
-
- SelectObject(hdc,hBO); // repair brush
-
- ReleaseDC(hWS,hdc); // release context
-}
-
-////////////////////////////////////////////////////////////////////////
-// display adsr lines: also no subclassing for repainting used
-
-void DisplayADSRInfos(HWND hW)
-{
- HWND hWS=GetDlgItem(hW,IDC_ADSR);
- HDC hdc;RECT r;HBRUSH hBO;char szB[16];
- int ch=iSelChannel,dx,dy,dm,dn,ia,id,is,ir;
-
- //----------------------------------------------------// get display size
-
- GetClientRect(hWS,&r);
- hdc=GetDC(hWS);
-
- //----------------------------------------------------// clean the area
-
- hBO=SelectObject(hdc,hBStream[0]);
- PatBlt(hdc,0,0,r.right,r.bottom,PATCOPY);
- r.left++;r.right-=2;r.top++;r.bottom-=2; // shrink the display rect for better optics
-
- //----------------------------------------------------//
-
- ia=min(s_chan[ch].ADSR.AttackTime,10000); // get adsr, but limit it for drawing
- id=min(s_chan[ch].ADSR.DecayTime,10000);
- is=min(s_chan[ch].ADSR.SustainTime,10000);
- ir=min(s_chan[ch].ADSR.ReleaseTime,10000);
-
- dx=ia+id+is+ir; // get the dx in (limited) adsr units
-
- // set the real values to the info statics
- SetDlgItemInt(hW,IDC_SADSR1,s_chan[ch].ADSRX.AttackRate^0x7f,FALSE);
- SetDlgItemInt(hW,IDC_SADSR2,(s_chan[ch].ADSRX.DecayRate^0x1f)/4,FALSE);
- SetDlgItemInt(hW,IDC_SADSR3,s_chan[ch].ADSRX.SustainRate^0x7f,FALSE);
- SetDlgItemInt(hW,IDC_SADSR4,(s_chan[ch].ADSRX.ReleaseRate^0x1f)/4,FALSE);
- SetDlgItemInt(hW,IDC_SADSR5,s_chan[ch].ADSRX.SustainLevel>>27,FALSE);
-
- SetDlgItemInt(hW,IDC_SADSR6,s_chan[ch].ADSRX.SustainIncrease,TRUE);
- SetDlgItemInt(hW,IDC_SADSR7,s_chan[ch].ADSRX.lVolume,TRUE);
- wsprintf(szB,"%08lx",s_chan[ch].ADSRX.EnvelopeVol);
- SetDlgItemText(hW,IDC_SADSR8,szB);
-
- if(dx) // something to draw?
- {
- HPEN hPO=SelectObject(hdc,hPAdsr[1]); // sel A pen
- dn=r.left;
- MoveToEx(hdc,dn,r.bottom,NULL); // move to bottom left corner
-
- dn+=(ia*r.right)/dx; // calc A x line pos
- LineTo(hdc,dn,r.top); // line to AxPos,top
-
- SelectObject(hdc,hPAdsr[2]); // sel D pen
- dn+=(id*r.right)/dx; // calc D x line pos
- dy=r.top+((1024-s_chan[ch].ADSR.SustainLevel)* // calc the D y pos
- r.bottom)/1024; // (our S level is ranged from 0 to 1024)
- LineTo(hdc,dn,dy); // line to DxPos,SLevel
-
- SelectObject(hdc,hPAdsr[3]); // sel S pen
- if(s_chan[ch].ADSR.SustainTime>10000) dm=1; // we have to fake the S values... S will
- else // inc/decrease until channel stop...
- if(s_chan[ch].ADSR.SustainTime==0) dm=0; // we dunno here when this will happen,
- else dm=21-(((s_chan[ch].ADSR.SustainTime/500))); // so we do some more ore less angled line,
- dy=dy-(s_chan[ch].ADSR.SustainModeDec*dm); // roughly depending on the S Time
- if(dy>r.bottom) dy=r.bottom;
- if(dy<r.top) dy=r.top;
- dn+=(is*r.right)/dx;
- LineTo(hdc,dn,dy); // line to SxPos, fake end volume level
-
- SelectObject(hdc,hPAdsr[4]); // sel R pen
- dn+=(ir*r.right)/dx; // calc R x line pos
- LineTo(hdc,dn,r.bottom); // line to RxPos, bottom right y
-
- SelectObject(hdc,hPO); // repair pen
- }
-
- SelectObject(hdc,hBO); // repair brush
- ReleaseDC(hWS,hdc); // release context
-}
-
-////////////////////////////////////////////////////////////////////////
-
-void DisplayChannelInfos(HWND hW)
-{
- int ch=iSelChannel;char szB[16];
-
- // channel infos
- SetDlgItemInt(hW,IDC_CI1,s_chan[ch].bOn,TRUE);
- SetDlgItemInt(hW,IDC_CI2,s_chan[ch].bStop,TRUE);
- SetDlgItemInt(hW,IDC_CI3,s_chan[ch].bNoise,TRUE);
- SetDlgItemInt(hW,IDC_CI4,s_chan[ch].bFMod,TRUE);
- SetDlgItemInt(hW,IDC_CI5,s_chan[ch].bReverb,TRUE);
- SetDlgItemInt(hW,IDC_CI6,s_chan[ch].bRVBActive,TRUE);
- SetDlgItemInt(hW,IDC_CI7,s_chan[ch].iRVBNum,TRUE);
- SetDlgItemInt(hW,IDC_CI8,s_chan[ch].iRVBOffset,TRUE);
- SetDlgItemInt(hW,IDC_CI9,s_chan[ch].iRVBRepeat,TRUE);
- SetDlgItemInt(hW,IDC_CI10,(unsigned long)s_chan[ch].pStart-(unsigned long)spuMemC,FALSE);
- SetDlgItemInt(hW,IDC_CI11,(unsigned long)s_chan[ch].pCurr-(unsigned long)spuMemC,FALSE);
- SetDlgItemInt(hW,IDC_CI12,(unsigned long)s_chan[ch].pLoop-(unsigned long)spuMemC,FALSE);
- SetDlgItemInt(hW,IDC_CI13,s_chan[ch].iRightVolume,TRUE);
- SetDlgItemInt(hW,IDC_CI14,s_chan[ch].iLeftVolume,TRUE);
- SetDlgItemInt(hW,IDC_CI15,s_chan[ch].iActFreq,TRUE);
- SetDlgItemInt(hW,IDC_CI16,s_chan[ch].iUsedFreq,TRUE);
-
- wsprintf(szB,"%04x",s_chan[ch].iRightVolRaw);
- SetDlgItemText(hW,IDC_CI17,szB);
- wsprintf(szB,"%04x",s_chan[ch].iLeftVolRaw);
- SetDlgItemText(hW,IDC_CI18,szB);
-
- // generic infos
- if(pSpuIrq==0)
- SetDlgItemInt(hW,IDC_STA1,-1,TRUE);
- else SetDlgItemInt(hW,IDC_STA1,(unsigned long)pSpuIrq-(unsigned long)spuMemC,FALSE);
- wsprintf(szB,"%04x",spuCtrl);
- SetDlgItemText(hW,IDC_STA2,szB);
- wsprintf(szB,"%04x",spuStat);
- SetDlgItemText(hW,IDC_STA3,szB);
- SetDlgItemInt(hW,IDC_STA4,spuAddr,TRUE);
-
- // xa infos
- if(XAPlay<=XAFeed) ch=XAFeed-XAPlay;
- else ch=(XAFeed-XAStart)+(XAEnd-XAPlay);
- SetDlgItemInt(hW,IDC_XA4,ch,FALSE);
- SetDlgItemInt(hW,IDC_XA5,iLeftXAVol,TRUE);
- SetDlgItemInt(hW,IDC_XA6,iRightXAVol,TRUE);
- if(!xapGlobal) return;
- SetDlgItemInt(hW,IDC_XA1,xapGlobal->freq,TRUE);
- SetDlgItemInt(hW,IDC_XA2,xapGlobal->stereo,TRUE);
- SetDlgItemInt(hW,IDC_XA3,xapGlobal->nsamples,TRUE);
-}
-
-////////////////////////////////////////////////////////////////////////
-// display everything (called in dialog timer for value refreshing)
-
-void DisplayDebugInfos(HWND hW)
-{
- DisplayStreamInfos(hW);
- DisplayADSRInfos(hW);
- DisplayChannelInfos(hW);
-}
-
-////////////////////////////////////////////////////////////////////////
-// main debug dlg handler
-
-BOOL CALLBACK DebugDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
- switch(uMsg)
- {
- //--------------------------------------------------// init
- case WM_INITDIALOG:
- {
- int i;
- ShowCursor(TRUE); // mmm... who is hiding it? main emu? tsts
- iSelChannel=0; // sel first channel
- CheckRadioButton(hW,IDC_CHAN1,IDC_CHAN24,IDC_CHAN1);
- // create brushes/pens
- hBStream[0]=CreateSolidBrush(GetSysColor(COLOR_3DFACE));
- hPAdsr[0]=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DFACE));
- for(i=1;i<6;i++)
- {
- hBStream[i]=CreateSolidBrush(crStreamCol[i]);
- hPAdsr[i]=CreatePen(PS_SOLID,0,crAdsrCol[i]);
- }
- SetTimer(hW,999,50,NULL); // now create update timer
- return TRUE;
- }
- //--------------------------------------------------// destroy
- case WM_DESTROY:
- {
- int i;
- KillTimer(hW,999); // first kill timer
- for(i=0;i<6;i++) // then kill brushes/pens
- {
- DeleteObject(hBStream[i]);
- DeleteObject(hPAdsr[i]);
- }
- }break;
- //--------------------------------------------------// timer
- case WM_TIMER:
- {
- if(wParam==999) DisplayDebugInfos(hW); // update all values
- }break;
- //--------------------------------------------------// command
- case WM_COMMAND:
- {
- if(wParam==IDCANCEL) iDebugMode=2; // cancel? raise flag for destroying the dialog
-
- if(wParam>=IDC_MUTE1 && wParam<=IDC_MUTE24) // mute clicked?
- {
- if(IsDlgButtonChecked(hW,wParam)) // -> mute/unmute it
- s_chan[wParam-IDC_MUTE1].iMute=1;
- else s_chan[wParam-IDC_MUTE1].iMute=0;
- }
- // all mute/unmute
- if(wParam==IDC_MUTEOFF) SendMessage(hW,WM_MUTE,0,0);
- if(wParam==IDC_MUTEON) SendMessage(hW,WM_MUTE,1,0);
-
- if(wParam>=IDC_CHAN1 && wParam<=IDC_CHAN24) // sel channel
- {
- if(IsDlgButtonChecked(hW,wParam))
- {
- iSelChannel=wParam-IDC_CHAN1;
- SetDlgItemInt(hW,IDC_CHANNUM,iSelChannel+1,FALSE);
- }
- }
- }break;
- //--------------------------------------------------// mute
- case WM_MUTE:
- { // will be called by the mute/unmute all button and on savestate load
- int i;
- for(i=IDC_MUTE1;i<=IDC_MUTE24;i++)
- {
- CheckDlgButton(hW,i,wParam);
- if(wParam) s_chan[i-IDC_MUTE1].iMute=1;
- else s_chan[i-IDC_MUTE1].iMute=0;
- }
- }break;
- //--------------------------------------------------// size
- case WM_SIZE:
- if(wParam==SIZE_MINIMIZED) SetFocus(hWMain); // if we get minimized, set the foxus to the main window
- break;
- //--------------------------------------------------// setcursor
- case WM_SETCURSOR:
- {
- SetCursor(LoadCursor(NULL,IDC_ARROW)); // force the arrow
- return TRUE;
- }
- //--------------------------------------------------//
- }
- return FALSE;
-}
-
-////////////////////////////////////////////////////////////////////////
-
+/***************************************************************************
+ debug.c - description
+ -------------------
+ begin : Wed May 15 2002
+ copyright : (C) 2002 by Pete Bernert
+ email : BlackDove@addcom.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. See also the license.txt file for *
+ * additional informations. *
+ * *
+ ***************************************************************************/
+
+//*************************************************************************//
+// History of changes:
+//
+// 2004/09/18 - Pete
+// - corrected ADSRX value display
+//
+// 2003/01/06 - Pete
+// - added Neil's ADSR timings
+//
+// 2002/05/15 - Pete
+// - generic cleanup for the Peops release
+//
+//*************************************************************************//
+
+#include "stdafx.h"
+
+#define _IN_DEBUG
+
+#include "externals.h"
+
+////////////////////////////////////////////////////////////////////////
+// WINDOWS DEBUG DIALOG HANDLING
+////////////////////////////////////////////////////////////////////////
+
+#ifdef _WINDOWS
+
+#include "resource.h"
+
+//#define SMALLDEBUG
+//#include <dbgout.h>
+
+////////////////////////////////////////////////////////////////////////
+// display debug infos
+
+const COLORREF crStreamCol[]={
+ RGB( 0, 0, 0),
+ RGB(255,255,255),
+ RGB(128, 0,128),
+ RGB( 0,128, 0),
+ RGB( 0, 0,255),
+ RGB(255, 0, 0)
+ };
+
+const COLORREF crAdsrCol[] ={
+ RGB( 0, 0, 0),
+ RGB(255, 0, 0),
+ RGB( 0,255, 0),
+ RGB(255, 0,255),
+ RGB( 0, 0,255),
+ RGB( 0, 0, 0),
+ };
+
+HBRUSH hBStream[6]; // brushes for stream lines
+HPEN hPAdsr[6]; // pens for adsr lines
+int iSelChannel=0; // user selected channel
+
+////////////////////////////////////////////////////////////////////////
+// display the sound data waves: no subclassing used, so the
+// area will not be redrawn... but faster that way, and good enuff
+// for debugging purposes
+
+void DisplayStreamInfos(HWND hW)
+{
+ HWND hWS=GetDlgItem(hW,IDC_SAREA);
+ HDC hdc;RECT r;HBRUSH hBO;int ch,dy,i,j,id;
+
+ //----------------------------------------------------//
+
+ GetClientRect(hWS,&r); // get size of stream display
+ hdc=GetDC(hWS); // device context
+ r.right--; // leave the right border intact
+ ScrollDC(hdc,-1,0,&r,&r,NULL,NULL); // scroll one pixel to the left
+
+ //----------------------------------------------------//
+
+ hBO=SelectObject(hdc,hBStream[0]); // clean the right border
+ PatBlt(hdc,r.right-1,0,1,r.bottom,PATCOPY);
+
+ //----------------------------------------------------//
+
+ dy=r.bottom/MAXCHAN; // size of one channel area
+
+ for(ch=0;ch<MAXCHAN;ch++) // loop the channels
+ {
+ if(s_chan[ch].bOn) // channel is on?
+ {
+ if(s_chan[ch].iIrqDone)
+ {
+ s_chan[ch].iIrqDone=0;
+ PatBlt(hdc,r.right-1,ch*r.bottom/MAXCHAN,
+ 1,dy,BLACKNESS);
+ continue;
+ }
+
+ j=s_chan[ch].sval;if(j<0) j=-j; // -> get one channel data (-32k ... 32k)
+ j=(dy*j)/32768; if(j==0) j=1; // -> adjust to display coords
+ i=(dy/2)+(ch*r.bottom/MAXCHAN)-j/2; // -> position where to paint it
+
+
+
+ if (s_chan[ch].iMute) id=1; // -> get color id
+ else if(s_chan[ch].bNoise) id=2;
+ else if(s_chan[ch].bFMod==2) id=3;
+ else if(s_chan[ch].bFMod==1) id=4;
+ else id=5;
+
+ SelectObject(hdc,hBStream[id]); // -> select the brush
+ PatBlt(hdc,r.right-1,i,1,j,PATCOPY); // -> paint the value line
+ }
+
+ if(ch) SetPixel(hdc,r.right-1, // -> not first line?
+ ch*r.bottom/MAXCHAN,RGB(0,0,0)); // --> draw the line (one dot scrolled to the left)
+ }
+
+ //----------------------------------------------------//
+
+ SelectObject(hdc,hBO); // repair brush
+
+ ReleaseDC(hWS,hdc); // release context
+}
+
+////////////////////////////////////////////////////////////////////////
+// display adsr lines: also no subclassing for repainting used
+
+void DisplayADSRInfos(HWND hW)
+{
+ HWND hWS=GetDlgItem(hW,IDC_ADSR);
+ HDC hdc;RECT r;HBRUSH hBO;char szB[16];
+ int ch=iSelChannel,dx,dy,dm,dn,ia,id,is,ir;
+
+ //----------------------------------------------------// get display size
+
+ GetClientRect(hWS,&r);
+ hdc=GetDC(hWS);
+
+ //----------------------------------------------------// clean the area
+
+ hBO=SelectObject(hdc,hBStream[0]);
+ PatBlt(hdc,0,0,r.right,r.bottom,PATCOPY);
+ r.left++;r.right-=2;r.top++;r.bottom-=2; // shrink the display rect for better optics
+
+ //----------------------------------------------------//
+
+ ia=min(s_chan[ch].ADSR.AttackTime,10000); // get adsr, but limit it for drawing
+ id=min(s_chan[ch].ADSR.DecayTime,10000);
+ is=min(s_chan[ch].ADSR.SustainTime,10000);
+ ir=min(s_chan[ch].ADSR.ReleaseTime,10000);
+
+ dx=ia+id+is+ir; // get the dx in (limited) adsr units
+
+ // set the real values to the info statics
+ SetDlgItemInt(hW,IDC_SADSR1,s_chan[ch].ADSRX.AttackRate^0x7f,FALSE);
+ SetDlgItemInt(hW,IDC_SADSR2,(s_chan[ch].ADSRX.DecayRate^0x1f)/4,FALSE);
+ SetDlgItemInt(hW,IDC_SADSR3,s_chan[ch].ADSRX.SustainRate^0x7f,FALSE);
+ SetDlgItemInt(hW,IDC_SADSR4,(s_chan[ch].ADSRX.ReleaseRate^0x1f)/4,FALSE);
+ SetDlgItemInt(hW,IDC_SADSR5,s_chan[ch].ADSRX.SustainLevel>>27,FALSE);
+
+ SetDlgItemInt(hW,IDC_SADSR6,s_chan[ch].ADSRX.SustainIncrease,TRUE);
+ SetDlgItemInt(hW,IDC_SADSR7,s_chan[ch].ADSRX.lVolume,TRUE);
+ wsprintf(szB,"%08lx",s_chan[ch].ADSRX.EnvelopeVol);
+ SetDlgItemText(hW,IDC_SADSR8,szB);
+
+ if(dx) // something to draw?
+ {
+ HPEN hPO=SelectObject(hdc,hPAdsr[1]); // sel A pen
+ dn=r.left;
+ MoveToEx(hdc,dn,r.bottom,NULL); // move to bottom left corner
+
+ dn+=(ia*r.right)/dx; // calc A x line pos
+ LineTo(hdc,dn,r.top); // line to AxPos,top
+
+ SelectObject(hdc,hPAdsr[2]); // sel D pen
+ dn+=(id*r.right)/dx; // calc D x line pos
+ dy=r.top+((1024-s_chan[ch].ADSR.SustainLevel)* // calc the D y pos
+ r.bottom)/1024; // (our S level is ranged from 0 to 1024)
+ LineTo(hdc,dn,dy); // line to DxPos,SLevel
+
+ SelectObject(hdc,hPAdsr[3]); // sel S pen
+ if(s_chan[ch].ADSR.SustainTime>10000) dm=1; // we have to fake the S values... S will
+ else // inc/decrease until channel stop...
+ if(s_chan[ch].ADSR.SustainTime==0) dm=0; // we dunno here when this will happen,
+ else dm=21-(((s_chan[ch].ADSR.SustainTime/500))); // so we do some more ore less angled line,
+ dy=dy-(s_chan[ch].ADSR.SustainModeDec*dm); // roughly depending on the S Time
+ if(dy>r.bottom) dy=r.bottom;
+ if(dy<r.top) dy=r.top;
+ dn+=(is*r.right)/dx;
+ LineTo(hdc,dn,dy); // line to SxPos, fake end volume level
+
+ SelectObject(hdc,hPAdsr[4]); // sel R pen
+ dn+=(ir*r.right)/dx; // calc R x line pos
+ LineTo(hdc,dn,r.bottom); // line to RxPos, bottom right y
+
+ SelectObject(hdc,hPO); // repair pen
+ }
+
+ SelectObject(hdc,hBO); // repair brush
+ ReleaseDC(hWS,hdc); // release context
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void DisplayChannelInfos(HWND hW)
+{
+ int ch=iSelChannel;char szB[16];
+
+ // channel infos
+ SetDlgItemInt(hW,IDC_CI1,s_chan[ch].bOn,TRUE);
+ SetDlgItemInt(hW,IDC_CI2,s_chan[ch].bStop,TRUE);
+ SetDlgItemInt(hW,IDC_CI3,s_chan[ch].bNoise,TRUE);
+ SetDlgItemInt(hW,IDC_CI4,s_chan[ch].bFMod,TRUE);
+ SetDlgItemInt(hW,IDC_CI5,s_chan[ch].bReverb,TRUE);
+ SetDlgItemInt(hW,IDC_CI6,s_chan[ch].bRVBActive,TRUE);
+ SetDlgItemInt(hW,IDC_CI7,s_chan[ch].iRVBNum,TRUE);
+ SetDlgItemInt(hW,IDC_CI8,s_chan[ch].iRVBOffset,TRUE);
+ SetDlgItemInt(hW,IDC_CI9,s_chan[ch].iRVBRepeat,TRUE);
+ SetDlgItemInt(hW,IDC_CI10,(unsigned long)s_chan[ch].pStart-(unsigned long)spuMemC,FALSE);
+ SetDlgItemInt(hW,IDC_CI11,(unsigned long)s_chan[ch].pCurr-(unsigned long)spuMemC,FALSE);
+ SetDlgItemInt(hW,IDC_CI12,(unsigned long)s_chan[ch].pLoop-(unsigned long)spuMemC,FALSE);
+ SetDlgItemInt(hW,IDC_CI13,s_chan[ch].iRightVolume,TRUE);
+ SetDlgItemInt(hW,IDC_CI14,s_chan[ch].iLeftVolume,TRUE);
+ SetDlgItemInt(hW,IDC_CI15,s_chan[ch].iActFreq,TRUE);
+ SetDlgItemInt(hW,IDC_CI16,s_chan[ch].iUsedFreq,TRUE);
+
+ wsprintf(szB,"%04x",s_chan[ch].iRightVolRaw);
+ SetDlgItemText(hW,IDC_CI17,szB);
+ wsprintf(szB,"%04x",s_chan[ch].iLeftVolRaw);
+ SetDlgItemText(hW,IDC_CI18,szB);
+
+ // generic infos
+ if(pSpuIrq==0)
+ SetDlgItemInt(hW,IDC_STA1,-1,TRUE);
+ else SetDlgItemInt(hW,IDC_STA1,(unsigned long)pSpuIrq-(unsigned long)spuMemC,FALSE);
+ wsprintf(szB,"%04x",spuCtrl);
+ SetDlgItemText(hW,IDC_STA2,szB);
+ wsprintf(szB,"%04x",spuStat);
+ SetDlgItemText(hW,IDC_STA3,szB);
+ SetDlgItemInt(hW,IDC_STA4,spuAddr,TRUE);
+
+ // xa infos
+ if(XAPlay<=XAFeed) ch=XAFeed-XAPlay;
+ else ch=(XAFeed-XAStart)+(XAEnd-XAPlay);
+ SetDlgItemInt(hW,IDC_XA4,ch,FALSE);
+ SetDlgItemInt(hW,IDC_XA5,iLeftXAVol,TRUE);
+ SetDlgItemInt(hW,IDC_XA6,iRightXAVol,TRUE);
+ if(!xapGlobal) return;
+ SetDlgItemInt(hW,IDC_XA1,xapGlobal->freq,TRUE);
+ SetDlgItemInt(hW,IDC_XA2,xapGlobal->stereo,TRUE);
+ SetDlgItemInt(hW,IDC_XA3,xapGlobal->nsamples,TRUE);
+}
+
+////////////////////////////////////////////////////////////////////////
+// display everything (called in dialog timer for value refreshing)
+
+void DisplayDebugInfos(HWND hW)
+{
+ DisplayStreamInfos(hW);
+ DisplayADSRInfos(hW);
+ DisplayChannelInfos(hW);
+}
+
+////////////////////////////////////////////////////////////////////////
+// main debug dlg handler
+
+BOOL CALLBACK DebugDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch(uMsg)
+ {
+ //--------------------------------------------------// init
+ case WM_INITDIALOG:
+ {
+ int i;
+ ShowCursor(TRUE); // mmm... who is hiding it? main emu? tsts
+ iSelChannel=0; // sel first channel
+ CheckRadioButton(hW,IDC_CHAN1,IDC_CHAN24,IDC_CHAN1);
+ // create brushes/pens
+ hBStream[0]=CreateSolidBrush(GetSysColor(COLOR_3DFACE));
+ hPAdsr[0]=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DFACE));
+ for(i=1;i<6;i++)
+ {
+ hBStream[i]=CreateSolidBrush(crStreamCol[i]);
+ hPAdsr[i]=CreatePen(PS_SOLID,0,crAdsrCol[i]);
+ }
+ SetTimer(hW,999,50,NULL); // now create update timer
+ return TRUE;
+ }
+ //--------------------------------------------------// destroy
+ case WM_DESTROY:
+ {
+ int i;
+ KillTimer(hW,999); // first kill timer
+ for(i=0;i<6;i++) // then kill brushes/pens
+ {
+ DeleteObject(hBStream[i]);
+ DeleteObject(hPAdsr[i]);
+ }
+ }break;
+ //--------------------------------------------------// timer
+ case WM_TIMER:
+ {
+ if(wParam==999) DisplayDebugInfos(hW); // update all values
+ }break;
+ //--------------------------------------------------// command
+ case WM_COMMAND:
+ {
+ if(wParam==IDCANCEL) iDebugMode=2; // cancel? raise flag for destroying the dialog
+
+ if(wParam>=IDC_MUTE1 && wParam<=IDC_MUTE24) // mute clicked?
+ {
+ if(IsDlgButtonChecked(hW,wParam)) // -> mute/unmute it
+ s_chan[wParam-IDC_MUTE1].iMute=1;
+ else s_chan[wParam-IDC_MUTE1].iMute=0;
+ }
+ // all mute/unmute
+ if(wParam==IDC_MUTEOFF) SendMessage(hW,WM_MUTE,0,0);
+ if(wParam==IDC_MUTEON) SendMessage(hW,WM_MUTE,1,0);
+
+ if(wParam>=IDC_CHAN1 && wParam<=IDC_CHAN24) // sel channel
+ {
+ if(IsDlgButtonChecked(hW,wParam))
+ {
+ iSelChannel=wParam-IDC_CHAN1;
+ SetDlgItemInt(hW,IDC_CHANNUM,iSelChannel+1,FALSE);
+ }
+ }
+ }break;
+ //--------------------------------------------------// mute
+ case WM_MUTE:
+ { // will be called by the mute/unmute all button and on savestate load
+ int i;
+ for(i=IDC_MUTE1;i<=IDC_MUTE24;i++)
+ {
+ CheckDlgButton(hW,i,wParam);
+ if(wParam) s_chan[i-IDC_MUTE1].iMute=1;
+ else s_chan[i-IDC_MUTE1].iMute=0;
+ }
+ }break;
+ //--------------------------------------------------// size
+ case WM_SIZE:
+ if(wParam==SIZE_MINIMIZED) SetFocus(hWMain); // if we get minimized, set the foxus to the main window
+ break;
+ //--------------------------------------------------// setcursor
+ case WM_SETCURSOR:
+ {
+ SetCursor(LoadCursor(NULL,IDC_ARROW)); // force the arrow
+ return TRUE;
+ }
+ //--------------------------------------------------//
+ }
+ return FALSE;
+}
+
+////////////////////////////////////////////////////////////////////////
+
#endif \ No newline at end of file
diff --git a/win32/plugins/dfsound/winsrc/debug.h b/win32/plugins/dfsound/winsrc/debug.h
index 9c309c17..47a9343b 100644..100755
--- a/win32/plugins/dfsound/winsrc/debug.h
+++ b/win32/plugins/dfsound/winsrc/debug.h
@@ -1,29 +1,29 @@
-/***************************************************************************
- debug.h - description
- -------------------
- begin : Wed May 15 2002
- copyright : (C) 2002 by Pete Bernert
- email : BlackDove@addcom.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. See also the license.txt file for *
- * additional informations. *
- * *
- ***************************************************************************/
-
-//*************************************************************************//
-// History of changes:
-//
-// 2002/05/15 - Pete
-// - generic cleanup for the Peops release
-//
-//*************************************************************************//
-
-#ifdef _WINDOWS
-BOOL CALLBACK DebugDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
-#endif
+/***************************************************************************
+ debug.h - description
+ -------------------
+ begin : Wed May 15 2002
+ copyright : (C) 2002 by Pete Bernert
+ email : BlackDove@addcom.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. See also the license.txt file for *
+ * additional informations. *
+ * *
+ ***************************************************************************/
+
+//*************************************************************************//
+// History of changes:
+//
+// 2002/05/15 - Pete
+// - generic cleanup for the Peops release
+//
+//*************************************************************************//
+
+#ifdef _WINDOWS
+BOOL CALLBACK DebugDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
+#endif
diff --git a/win32/plugins/dfsound/winsrc/dsound.c b/win32/plugins/dfsound/winsrc/dsound.c
index 1d6ce66e..94a606f3 100644..100755
--- a/win32/plugins/dfsound/winsrc/dsound.c
+++ b/win32/plugins/dfsound/winsrc/dsound.c
@@ -1,277 +1,277 @@
-/***************************************************************************
- dsound.c - description
- -------------------
- begin : Wed May 15 2002
- copyright : (C) 2002 by Pete Bernert
- email : BlackDove@addcom.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. See also the license.txt file for *
- * additional informations. *
- * *
- ***************************************************************************/
-
-//*************************************************************************//
-// History of changes:
-//
-// 2003/01/12 - Pete
-// - added recording funcs
-//
-// 2002/05/15 - Pete
-// - generic cleanup for the Peops release
-//
-//*************************************************************************//
-
-#include "stdafx.h"
-
-#define _IN_DSOUND
-
-#include "externals.h"
-
-#ifdef _WINDOWS
-
-#include <dsound.h>
-
-#include "record.h"
-
-////////////////////////////////////////////////////////////////////////
-// dsound globals
-////////////////////////////////////////////////////////////////////////
-
-LPDIRECTSOUND lpDS;
-LPDIRECTSOUNDBUFFER lpDSBP = NULL;
-LPDIRECTSOUNDBUFFER lpDSB = NULL;
-DSBUFFERDESC dsbd;
-DSBUFFERDESC dsbdesc;
-DSCAPS dscaps;
-DSBCAPS dsbcaps;
-
-unsigned long LastWrite=0xffffffff;
-unsigned long LastPlay=0;
-
-////////////////////////////////////////////////////////////////////////
-// SETUP SOUND
-////////////////////////////////////////////////////////////////////////
-
-void SetupSound(void)
-{
- HRESULT dsval;WAVEFORMATEX pcmwf;
-
- dsval = DirectSoundCreate(NULL,&lpDS,NULL);
- if(dsval!=DS_OK)
- {
- MessageBox(hWMain,"DirectSoundCreate!","Error",MB_OK);
- return;
- }
-
- if(DS_OK!=IDirectSound_SetCooperativeLevel(lpDS,hWMain, DSSCL_PRIORITY))
- {
- if(DS_OK!=IDirectSound_SetCooperativeLevel(lpDS,hWMain, DSSCL_NORMAL))
- {
- MessageBox(hWMain,"SetCooperativeLevel!","Error",MB_OK);
- return;
- }
- }
-
- memset(&dsbd,0,sizeof(DSBUFFERDESC));
- dsbd.dwSize = 20; // NT4 hack! sizeof(dsbd);
- dsbd.dwFlags = DSBCAPS_PRIMARYBUFFER;
- dsbd.dwBufferBytes = 0;
- dsbd.lpwfxFormat = NULL;
-
- dsval=IDirectSound_CreateSoundBuffer(lpDS,&dsbd,&lpDSBP,NULL);
- if(dsval!=DS_OK)
- {
- MessageBox(hWMain, "CreateSoundBuffer (Primary)", "Error",MB_OK);
- return;
- }
-
- memset(&pcmwf, 0, sizeof(WAVEFORMATEX));
- pcmwf.wFormatTag = WAVE_FORMAT_PCM;
-
- if(iDisStereo) {pcmwf.nChannels = 1; pcmwf.nBlockAlign = 2;}
- else {pcmwf.nChannels = 2; pcmwf.nBlockAlign = 4;}
-
- pcmwf.nSamplesPerSec = 44100;
-
- pcmwf.nAvgBytesPerSec = pcmwf.nSamplesPerSec * pcmwf.nBlockAlign;
- pcmwf.wBitsPerSample = 16;
-
- dsval=IDirectSoundBuffer_SetFormat(lpDSBP,&pcmwf);
- if(dsval!=DS_OK)
- {
- MessageBox(hWMain, "SetFormat!", "Error",MB_OK);
- return;
- }
-
- dscaps.dwSize = sizeof(DSCAPS);
- dsbcaps.dwSize = sizeof(DSBCAPS);
- IDirectSound_GetCaps(lpDS,&dscaps);
- IDirectSoundBuffer_GetCaps(lpDSBP,&dsbcaps);
-
- memset(&dsbdesc, 0, sizeof(DSBUFFERDESC));
- dsbdesc.dwSize = 20; // NT4 hack! sizeof(DSBUFFERDESC);
- dsbdesc.dwFlags = DSBCAPS_LOCSOFTWARE | DSBCAPS_STICKYFOCUS | DSBCAPS_GETCURRENTPOSITION2;
- dsbdesc.dwBufferBytes = SOUNDSIZE;
- dsbdesc.lpwfxFormat = (LPWAVEFORMATEX)&pcmwf;
-
- dsval=IDirectSound_CreateSoundBuffer(lpDS,&dsbdesc,&lpDSB,NULL);
- if(dsval!=DS_OK)
- {
- MessageBox(hWMain,"CreateSoundBuffer (Secondary)", "Error",MB_OK);
- return;
- }
-
- dsval=IDirectSoundBuffer_Play(lpDSBP,0,0,DSBPLAY_LOOPING);
- if(dsval!=DS_OK)
- {
- MessageBox(hWMain,"Play (Primary)","Error",MB_OK);
- return;
- }
-
- dsval=IDirectSoundBuffer_Play(lpDSB,0,0,DSBPLAY_LOOPING);
- if(dsval!=DS_OK)
- {
- MessageBox(hWMain,"Play (Secondary)","Error",MB_OK);
- return;
- }
-}
-
-////////////////////////////////////////////////////////////////////////
-// REMOVE SOUND
-////////////////////////////////////////////////////////////////////////
-
-void RemoveSound(void)
-{
- int iRes;
-
- if(iDoRecord) RecordStop();
-
- if(lpDSB!=NULL)
- {
- IDirectSoundBuffer_Stop(lpDSB);
- iRes=IDirectSoundBuffer_Release(lpDSB);
- // FF says such a loop is bad... Demo says it's good... Pete doesn't care
- while(iRes!=0) iRes=IDirectSoundBuffer_Release(lpDSB);
- lpDSB=NULL;
- }
-
- if(lpDSBP!=NULL)
- {
- IDirectSoundBuffer_Stop(lpDSBP);
- iRes=IDirectSoundBuffer_Release(lpDSBP);
- // FF says such a loop is bad... Demo says it's good... Pete doesn't care
- while(iRes!=0) iRes=IDirectSoundBuffer_Release(lpDSBP);
- lpDSBP=NULL;
- }
-
- if(lpDS!=NULL)
- {
- iRes=IDirectSound_Release(lpDS);
- // FF says such a loop is bad... Demo says it's good... Pete doesn't care
- while(iRes!=0) iRes=IDirectSound_Release(lpDS);
- lpDS=NULL;
- }
-
-}
-
-////////////////////////////////////////////////////////////////////////
-// GET BYTES BUFFERED
-////////////////////////////////////////////////////////////////////////
-
-unsigned long SoundGetBytesBuffered(void)
-{
- unsigned long cplay,cwrite;
-
- if(LastWrite==0xffffffff) return 0;
-
- IDirectSoundBuffer_GetCurrentPosition(lpDSB,&cplay,&cwrite);
-
- if(cplay>SOUNDSIZE) return SOUNDSIZE;
-
- if(cplay<LastWrite) return LastWrite-cplay;
- return (SOUNDSIZE-cplay)+LastWrite;
-}
-
-////////////////////////////////////////////////////////////////////////
-// FEED SOUND DATA
-////////////////////////////////////////////////////////////////////////
-
-void SoundFeedStreamData(unsigned char* pSound,long lBytes)
-{
- LPVOID lpvPtr1, lpvPtr2;
- unsigned long dwBytes1,dwBytes2;
- unsigned long *lpSS, *lpSD;
- unsigned long dw,cplay,cwrite;
- HRESULT hr;
- unsigned long status;
-
- if(iDoRecord) RecordBuffer(pSound,lBytes);
-
- IDirectSoundBuffer_GetStatus(lpDSB,&status);
- if(status&DSBSTATUS_BUFFERLOST)
- {
- if(IDirectSoundBuffer_Restore(lpDSB)!=DS_OK) return;
- IDirectSoundBuffer_Play(lpDSB,0,0,DSBPLAY_LOOPING);
- }
-
- IDirectSoundBuffer_GetCurrentPosition(lpDSB,&cplay,&cwrite);
-
- if(LastWrite==0xffffffff) LastWrite=cwrite;
-
-/*
-// mmm... security... not needed, I think
- if(LastWrite<cplay)
- {
- if((cplay-LastWrite)<=(unsigned long)lBytes)
- {
- LastWrite=0xffffffff;
- return;
- }
- }
- else
- {
- if(LastWrite<cwrite)
- {
- LastWrite=0xffffffff;
- return;
- }
- }
-*/
-
- hr=IDirectSoundBuffer_Lock(lpDSB,LastWrite,lBytes,
- &lpvPtr1, &dwBytes1,
- &lpvPtr2, &dwBytes2,
- 0);
-
- if(hr!=DS_OK) {LastWrite=0xffffffff;return;}
-
- lpSD=(unsigned long *)lpvPtr1;
- dw=dwBytes1>>2;
-
- lpSS=(unsigned long *)pSound;
- while(dw) {*lpSD++=*lpSS++;dw--;}
-
- if(lpvPtr2)
- {
- lpSD=(unsigned long *)lpvPtr2;
- dw=dwBytes2>>2;
- while(dw) {*lpSD++=*lpSS++;dw--;}
- }
-
- IDirectSoundBuffer_Unlock(lpDSB,lpvPtr1,dwBytes1,lpvPtr2,dwBytes2);
-
- LastWrite+=lBytes;
- if(LastWrite>=SOUNDSIZE) LastWrite-=SOUNDSIZE;
- LastPlay=cplay;
-}
-
-#endif
-
-
-
+/***************************************************************************
+ dsound.c - description
+ -------------------
+ begin : Wed May 15 2002
+ copyright : (C) 2002 by Pete Bernert
+ email : BlackDove@addcom.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. See also the license.txt file for *
+ * additional informations. *
+ * *
+ ***************************************************************************/
+
+//*************************************************************************//
+// History of changes:
+//
+// 2003/01/12 - Pete
+// - added recording funcs
+//
+// 2002/05/15 - Pete
+// - generic cleanup for the Peops release
+//
+//*************************************************************************//
+
+#include "stdafx.h"
+
+#define _IN_DSOUND
+
+#include "externals.h"
+
+#ifdef _WINDOWS
+
+#include <dsound.h>
+
+#include "record.h"
+
+////////////////////////////////////////////////////////////////////////
+// dsound globals
+////////////////////////////////////////////////////////////////////////
+
+LPDIRECTSOUND lpDS;
+LPDIRECTSOUNDBUFFER lpDSBP = NULL;
+LPDIRECTSOUNDBUFFER lpDSB = NULL;
+DSBUFFERDESC dsbd;
+DSBUFFERDESC dsbdesc;
+DSCAPS dscaps;
+DSBCAPS dsbcaps;
+
+unsigned long LastWrite=0xffffffff;
+unsigned long LastPlay=0;
+
+////////////////////////////////////////////////////////////////////////
+// SETUP SOUND
+////////////////////////////////////////////////////////////////////////
+
+void SetupSound(void)
+{
+ HRESULT dsval;WAVEFORMATEX pcmwf;
+
+ dsval = DirectSoundCreate(NULL,&lpDS,NULL);
+ if(dsval!=DS_OK)
+ {
+ MessageBox(hWMain,"DirectSoundCreate!","Error",MB_OK);
+ return;
+ }
+
+ if(DS_OK!=IDirectSound_SetCooperativeLevel(lpDS,hWMain, DSSCL_PRIORITY))
+ {
+ if(DS_OK!=IDirectSound_SetCooperativeLevel(lpDS,hWMain, DSSCL_NORMAL))
+ {
+ MessageBox(hWMain,"SetCooperativeLevel!","Error",MB_OK);
+ return;
+ }
+ }
+
+ memset(&dsbd,0,sizeof(DSBUFFERDESC));
+ dsbd.dwSize = 20; // NT4 hack! sizeof(dsbd);
+ dsbd.dwFlags = DSBCAPS_PRIMARYBUFFER;
+ dsbd.dwBufferBytes = 0;
+ dsbd.lpwfxFormat = NULL;
+
+ dsval=IDirectSound_CreateSoundBuffer(lpDS,&dsbd,&lpDSBP,NULL);
+ if(dsval!=DS_OK)
+ {
+ MessageBox(hWMain, "CreateSoundBuffer (Primary)", "Error",MB_OK);
+ return;
+ }
+
+ memset(&pcmwf, 0, sizeof(WAVEFORMATEX));
+ pcmwf.wFormatTag = WAVE_FORMAT_PCM;
+
+ if(iDisStereo) {pcmwf.nChannels = 1; pcmwf.nBlockAlign = 2;}
+ else {pcmwf.nChannels = 2; pcmwf.nBlockAlign = 4;}
+
+ pcmwf.nSamplesPerSec = 44100;
+
+ pcmwf.nAvgBytesPerSec = pcmwf.nSamplesPerSec * pcmwf.nBlockAlign;
+ pcmwf.wBitsPerSample = 16;
+
+ dsval=IDirectSoundBuffer_SetFormat(lpDSBP,&pcmwf);
+ if(dsval!=DS_OK)
+ {
+ MessageBox(hWMain, "SetFormat!", "Error",MB_OK);
+ return;
+ }
+
+ dscaps.dwSize = sizeof(DSCAPS);
+ dsbcaps.dwSize = sizeof(DSBCAPS);
+ IDirectSound_GetCaps(lpDS,&dscaps);
+ IDirectSoundBuffer_GetCaps(lpDSBP,&dsbcaps);
+
+ memset(&dsbdesc, 0, sizeof(DSBUFFERDESC));
+ dsbdesc.dwSize = 20; // NT4 hack! sizeof(DSBUFFERDESC);
+ dsbdesc.dwFlags = DSBCAPS_LOCSOFTWARE | DSBCAPS_STICKYFOCUS | DSBCAPS_GETCURRENTPOSITION2;
+ dsbdesc.dwBufferBytes = SOUNDSIZE;
+ dsbdesc.lpwfxFormat = (LPWAVEFORMATEX)&pcmwf;
+
+ dsval=IDirectSound_CreateSoundBuffer(lpDS,&dsbdesc,&lpDSB,NULL);
+ if(dsval!=DS_OK)
+ {
+ MessageBox(hWMain,"CreateSoundBuffer (Secondary)", "Error",MB_OK);
+ return;
+ }
+
+ dsval=IDirectSoundBuffer_Play(lpDSBP,0,0,DSBPLAY_LOOPING);
+ if(dsval!=DS_OK)
+ {
+ MessageBox(hWMain,"Play (Primary)","Error",MB_OK);
+ return;
+ }
+
+ dsval=IDirectSoundBuffer_Play(lpDSB,0,0,DSBPLAY_LOOPING);
+ if(dsval!=DS_OK)
+ {
+ MessageBox(hWMain,"Play (Secondary)","Error",MB_OK);
+ return;
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
+// REMOVE SOUND
+////////////////////////////////////////////////////////////////////////
+
+void RemoveSound(void)
+{
+ int iRes;
+
+ if(iDoRecord) RecordStop();
+
+ if(lpDSB!=NULL)
+ {
+ IDirectSoundBuffer_Stop(lpDSB);
+ iRes=IDirectSoundBuffer_Release(lpDSB);
+ // FF says such a loop is bad... Demo says it's good... Pete doesn't care
+ while(iRes!=0) iRes=IDirectSoundBuffer_Release(lpDSB);
+ lpDSB=NULL;
+ }
+
+ if(lpDSBP!=NULL)
+ {
+ IDirectSoundBuffer_Stop(lpDSBP);
+ iRes=IDirectSoundBuffer_Release(lpDSBP);
+ // FF says such a loop is bad... Demo says it's good... Pete doesn't care
+ while(iRes!=0) iRes=IDirectSoundBuffer_Release(lpDSBP);
+ lpDSBP=NULL;
+ }
+
+ if(lpDS!=NULL)
+ {
+ iRes=IDirectSound_Release(lpDS);
+ // FF says such a loop is bad... Demo says it's good... Pete doesn't care
+ while(iRes!=0) iRes=IDirectSound_Release(lpDS);
+ lpDS=NULL;
+ }
+
+}
+
+////////////////////////////////////////////////////////////////////////
+// GET BYTES BUFFERED
+////////////////////////////////////////////////////////////////////////
+
+unsigned long SoundGetBytesBuffered(void)
+{
+ unsigned long cplay,cwrite;
+
+ if(LastWrite==0xffffffff) return 0;
+
+ IDirectSoundBuffer_GetCurrentPosition(lpDSB,&cplay,&cwrite);
+
+ if(cplay>SOUNDSIZE) return SOUNDSIZE;
+
+ if(cplay<LastWrite) return LastWrite-cplay;
+ return (SOUNDSIZE-cplay)+LastWrite;
+}
+
+////////////////////////////////////////////////////////////////////////
+// FEED SOUND DATA
+////////////////////////////////////////////////////////////////////////
+
+void SoundFeedStreamData(unsigned char* pSound,long lBytes)
+{
+ LPVOID lpvPtr1, lpvPtr2;
+ unsigned long dwBytes1,dwBytes2;
+ unsigned long *lpSS, *lpSD;
+ unsigned long dw,cplay,cwrite;
+ HRESULT hr;
+ unsigned long status;
+
+ if(iDoRecord) RecordBuffer(pSound,lBytes);
+
+ IDirectSoundBuffer_GetStatus(lpDSB,&status);
+ if(status&DSBSTATUS_BUFFERLOST)
+ {
+ if(IDirectSoundBuffer_Restore(lpDSB)!=DS_OK) return;
+ IDirectSoundBuffer_Play(lpDSB,0,0,DSBPLAY_LOOPING);
+ }
+
+ IDirectSoundBuffer_GetCurrentPosition(lpDSB,&cplay,&cwrite);
+
+ if(LastWrite==0xffffffff) LastWrite=cwrite;
+
+/*
+// mmm... security... not needed, I think
+ if(LastWrite<cplay)
+ {
+ if((cplay-LastWrite)<=(unsigned long)lBytes)
+ {
+ LastWrite=0xffffffff;
+ return;
+ }
+ }
+ else
+ {
+ if(LastWrite<cwrite)
+ {
+ LastWrite=0xffffffff;
+ return;
+ }
+ }
+*/
+
+ hr=IDirectSoundBuffer_Lock(lpDSB,LastWrite,lBytes,
+ &lpvPtr1, &dwBytes1,
+ &lpvPtr2, &dwBytes2,
+ 0);
+
+ if(hr!=DS_OK) {LastWrite=0xffffffff;return;}
+
+ lpSD=(unsigned long *)lpvPtr1;
+ dw=dwBytes1>>2;
+
+ lpSS=(unsigned long *)pSound;
+ while(dw) {*lpSD++=*lpSS++;dw--;}
+
+ if(lpvPtr2)
+ {
+ lpSD=(unsigned long *)lpvPtr2;
+ dw=dwBytes2>>2;
+ while(dw) {*lpSD++=*lpSS++;dw--;}
+ }
+
+ IDirectSoundBuffer_Unlock(lpDSB,lpvPtr1,dwBytes1,lpvPtr2,dwBytes2);
+
+ LastWrite+=lBytes;
+ if(LastWrite>=SOUNDSIZE) LastWrite-=SOUNDSIZE;
+ LastPlay=cplay;
+}
+
+#endif
+
+
+
diff --git a/win32/plugins/dfsound/winsrc/dsound.h b/win32/plugins/dfsound/winsrc/dsound.h
index 0589cdbe..0589cdbe 100644..100755
--- a/win32/plugins/dfsound/winsrc/dsound.h
+++ b/win32/plugins/dfsound/winsrc/dsound.h
diff --git a/win32/plugins/dfsound/winsrc/psemu.c b/win32/plugins/dfsound/winsrc/psemu.c
index 1451ea4a..63ec352e 100644..100755
--- a/win32/plugins/dfsound/winsrc/psemu.c
+++ b/win32/plugins/dfsound/winsrc/psemu.c
@@ -1,101 +1,101 @@
-/***************************************************************************
- psemu.c - description
- -------------------
- begin : Wed May 15 2002
- copyright : (C) 2002 by Pete Bernert
- email : BlackDove@addcom.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. See also the license.txt file for *
- * additional informations. *
- * *
- ***************************************************************************/
-
-// These ancient stuff are still necessary for epsxe, so keep these but only for
-// Windows port -Whistler
-
-#include "stdafx.h"
-
-#define _IN_PSEMU
-
-#include "externals.h"
-#include "regs.h"
-#include "dma.h"
-
-////////////////////////////////////////////////////////////////////////
-// OLD, SOMEWHAT (BUT NOT MUCH) SUPPORTED PSEMUPRO FUNCS
-////////////////////////////////////////////////////////////////////////
-
-unsigned short CALLBACK SPUgetOne(unsigned long val)
-{
- if(spuAddr!=0xffffffff)
- {
- return SPUreadDMA();
- }
- if(val>=512*1024) val=512*1024-1;
- return spuMem[val>>1];
-}
-
-void CALLBACK SPUputOne(unsigned long val,unsigned short data)
-{
- if(spuAddr!=0xffffffff)
- {
- SPUwriteDMA(data);
- return;
- }
- if(val>=512*1024) val=512*1024-1;
- spuMem[val>>1] = data;
-}
-
-void CALLBACK SPUplaySample(unsigned char ch)
-{
-}
-
-void CALLBACK SPUsetAddr(unsigned char ch, unsigned short waddr)
-{
- s_chan[ch].pStart=spuMemC+((unsigned long) waddr<<3);
-}
-
-void CALLBACK SPUsetPitch(unsigned char ch, unsigned short pitch)
-{
- SetPitch(ch,pitch);
-}
-
-void CALLBACK SPUsetVolumeL(unsigned char ch, short vol)
-{
- SetVolumeR(ch,vol);
-}
-
-void CALLBACK SPUsetVolumeR(unsigned char ch, short vol)
-{
- SetVolumeL(ch,vol);
-}
-
-void CALLBACK SPUstartChannels1(unsigned short channels)
-{
- SoundOn(0,16,channels);
-}
-
-void CALLBACK SPUstartChannels2(unsigned short channels)
-{
- SoundOn(16,24,channels);
-}
-
-void CALLBACK SPUstopChannels1(unsigned short channels)
-{
- SoundOff(0,16,channels);
-}
-
-void CALLBACK SPUstopChannels2(unsigned short channels)
-{
- SoundOff(16,24,channels);
-}
-
-void CALLBACK SPUplaySector(unsigned long mode, unsigned char * p)
-{
-}
+/***************************************************************************
+ psemu.c - description
+ -------------------
+ begin : Wed May 15 2002
+ copyright : (C) 2002 by Pete Bernert
+ email : BlackDove@addcom.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. See also the license.txt file for *
+ * additional informations. *
+ * *
+ ***************************************************************************/
+
+// These ancient stuff are still necessary for epsxe, so keep these but only for
+// Windows port -Whistler
+
+#include "stdafx.h"
+
+#define _IN_PSEMU
+
+#include "externals.h"
+#include "regs.h"
+#include "dma.h"
+
+////////////////////////////////////////////////////////////////////////
+// OLD, SOMEWHAT (BUT NOT MUCH) SUPPORTED PSEMUPRO FUNCS
+////////////////////////////////////////////////////////////////////////
+
+unsigned short CALLBACK SPUgetOne(unsigned long val)
+{
+ if(spuAddr!=0xffffffff)
+ {
+ return SPUreadDMA();
+ }
+ if(val>=512*1024) val=512*1024-1;
+ return spuMem[val>>1];
+}
+
+void CALLBACK SPUputOne(unsigned long val,unsigned short data)
+{
+ if(spuAddr!=0xffffffff)
+ {
+ SPUwriteDMA(data);
+ return;
+ }
+ if(val>=512*1024) val=512*1024-1;
+ spuMem[val>>1] = data;
+}
+
+void CALLBACK SPUplaySample(unsigned char ch)
+{
+}
+
+void CALLBACK SPUsetAddr(unsigned char ch, unsigned short waddr)
+{
+ s_chan[ch].pStart=spuMemC+((unsigned long) waddr<<3);
+}
+
+void CALLBACK SPUsetPitch(unsigned char ch, unsigned short pitch)
+{
+ SetPitch(ch,pitch);
+}
+
+void CALLBACK SPUsetVolumeL(unsigned char ch, short vol)
+{
+ SetVolumeR(ch,vol);
+}
+
+void CALLBACK SPUsetVolumeR(unsigned char ch, short vol)
+{
+ SetVolumeL(ch,vol);
+}
+
+void CALLBACK SPUstartChannels1(unsigned short channels)
+{
+ SoundOn(0,16,channels);
+}
+
+void CALLBACK SPUstartChannels2(unsigned short channels)
+{
+ SoundOn(16,24,channels);
+}
+
+void CALLBACK SPUstopChannels1(unsigned short channels)
+{
+ SoundOff(0,16,channels);
+}
+
+void CALLBACK SPUstopChannels2(unsigned short channels)
+{
+ SoundOff(16,24,channels);
+}
+
+void CALLBACK SPUplaySector(unsigned long mode, unsigned char * p)
+{
+}
diff --git a/win32/plugins/dfsound/winsrc/record.c b/win32/plugins/dfsound/winsrc/record.c
index 93c10b00..c78b7660 100644..100755
--- a/win32/plugins/dfsound/winsrc/record.c
+++ b/win32/plugins/dfsound/winsrc/record.c
@@ -1,188 +1,188 @@
-/***************************************************************************
- spu.c - description
- -------------------
- begin : Sun Jan 12 2003
- copyright : (C) 2003 by Pete Bernert
- email : BlackDove@addcom.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. See also the license.txt file for *
- * additional informations. *
- * *
- ***************************************************************************/
-
-//*************************************************************************//
-// History of changes:
-//
-// 2003/03/01 - Pete
-// - added mono mode
-//
-// 2003/01/12 - Pete
-// - added recording funcs (win version only)
-//
-//*************************************************************************//
-
-#include "stdafx.h"
-
-#ifdef _WINDOWS
-
-#include <mmsystem.h>
-#include "resource.h"
-#include "externals.h"
-
-#define _IN_RECORD
-
-#include "record.h"
-
-////////////////////////////////////////////////////////////////////////
-
-int iDoRecord=0;
-HMMIO hWaveFile=NULL;
-MMCKINFO mmckMain;
-MMCKINFO mmckData;
-char szFileName[256];
-
-////////////////////////////////////////////////////////////////////////
-
-void RecordStart()
-{
- WAVEFORMATEX pcmwf;
-
- // setup header in the same format as our directsound stream
- memset(&pcmwf,0,sizeof(WAVEFORMATEX));
- pcmwf.wFormatTag = WAVE_FORMAT_PCM;
-
- if(iDisStereo)
- {
- pcmwf.nChannels = 1;
- pcmwf.nBlockAlign = 2;
- }
- else
- {
- pcmwf.nChannels = 2;
- pcmwf.nBlockAlign = 4;
- }
-
- pcmwf.nSamplesPerSec = 44100;
- pcmwf.nAvgBytesPerSec = pcmwf.nSamplesPerSec * pcmwf.nBlockAlign;
- pcmwf.wBitsPerSample = 16;
-
- // create file
- hWaveFile=mmioOpen(szFileName,NULL,MMIO_CREATE|MMIO_WRITE|MMIO_EXCLUSIVE | MMIO_ALLOCBUF);
- if(!hWaveFile) return;
-
- // setup WAVE, fmt and data chunks
- memset(&mmckMain,0,sizeof(MMCKINFO));
- mmckMain.fccType = mmioFOURCC('W','A','V','E');
-
- mmioCreateChunk(hWaveFile,&mmckMain,MMIO_CREATERIFF);
-
- memset(&mmckData,0,sizeof(MMCKINFO));
- mmckData.ckid = mmioFOURCC('f','m','t',' ');
- mmckData.cksize = sizeof(WAVEFORMATEX);
-
- mmioCreateChunk(hWaveFile,&mmckData,0);
- mmioWrite(hWaveFile,(char*)&pcmwf,sizeof(WAVEFORMATEX));
- mmioAscend(hWaveFile,&mmckData,0);
-
- mmckData.ckid = mmioFOURCC('d','a','t','a');
- mmioCreateChunk(hWaveFile,&mmckData,0);
-}
-
-////////////////////////////////////////////////////////////////////////
-
-void RecordStop()
-{
- // first some check, if recording is running
- iDoRecord=0;
- if(!hWaveFile) return;
-
- // now finish writing & close the wave file
- mmioAscend(hWaveFile,&mmckData,0);
- mmioAscend(hWaveFile,&mmckMain,0);
- mmioClose(hWaveFile,0);
-
- // init var
- hWaveFile=NULL;
-}
-
-////////////////////////////////////////////////////////////////////////
-
-void RecordBuffer(unsigned char* pSound,long lBytes)
-{
- // write the samples
- if(hWaveFile) mmioWrite(hWaveFile,pSound,lBytes);
-}
-
-////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////
-
-BOOL CALLBACK RecordDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
- switch(uMsg)
- {
- //--------------------------------------------------// init
- case WM_INITDIALOG:
- {
- SetDlgItemText(hW,IDC_WAVFILE,"C:\\PEOPS.WAV"); // init filename edit
- ShowCursor(TRUE); // mmm... who is hiding it? main emu? tsts
- return TRUE;
- }
- //--------------------------------------------------// destroy
- case WM_DESTROY:
- {
- RecordStop();
- }break;
- //--------------------------------------------------// command
- case WM_COMMAND:
- {
- if(wParam==IDCANCEL) iRecordMode=2; // cancel? raise flag for destroying the dialog
-
- if(wParam==IDC_RECORD) // record start/stop?
- {
- if(IsWindowEnabled(GetDlgItem(hW,IDC_WAVFILE))) // not started yet (edit is not disabled):
- {
- GetDlgItemText(hW,IDC_WAVFILE,szFileName,255);// get filename
-
- RecordStart(); // start recording
-
- if(hWaveFile) // start was ok?
- { // -> disable filename edit, change text, raise flag
- EnableWindow(GetDlgItem(hW,IDC_WAVFILE),FALSE);
- SetDlgItemText(hW,IDC_RECORD,"Stop recording");
- iDoRecord=1;
- }
- else MessageBeep(0xFFFFFFFF); // error starting recording? BEEP
- }
- else // stop recording?
- {
- RecordStop(); // -> just do it
- EnableWindow(GetDlgItem(hW,IDC_WAVFILE),TRUE);// -> enable filename edit again
- SetDlgItemText(hW,IDC_RECORD,"Start recording");
- }
- SetFocus(hWMain);
- }
- }break;
- //--------------------------------------------------// size
- case WM_SIZE:
- if(wParam==SIZE_MINIMIZED) SetFocus(hWMain); // if we get minimized, set the foxus to the main window
- break;
- //--------------------------------------------------// setcursor
- case WM_SETCURSOR:
- {
- SetCursor(LoadCursor(NULL,IDC_ARROW)); // force the arrow
- return TRUE;
- }
- //--------------------------------------------------//
- }
- return FALSE;
-}
-
-////////////////////////////////////////////////////////////////////////
-#endif
+/***************************************************************************
+ spu.c - description
+ -------------------
+ begin : Sun Jan 12 2003
+ copyright : (C) 2003 by Pete Bernert
+ email : BlackDove@addcom.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. See also the license.txt file for *
+ * additional informations. *
+ * *
+ ***************************************************************************/
+
+//*************************************************************************//
+// History of changes:
+//
+// 2003/03/01 - Pete
+// - added mono mode
+//
+// 2003/01/12 - Pete
+// - added recording funcs (win version only)
+//
+//*************************************************************************//
+
+#include "stdafx.h"
+
+#ifdef _WINDOWS
+
+#include <mmsystem.h>
+#include "resource.h"
+#include "externals.h"
+
+#define _IN_RECORD
+
+#include "record.h"
+
+////////////////////////////////////////////////////////////////////////
+
+int iDoRecord=0;
+HMMIO hWaveFile=NULL;
+MMCKINFO mmckMain;
+MMCKINFO mmckData;
+char szFileName[256];
+
+////////////////////////////////////////////////////////////////////////
+
+void RecordStart()
+{
+ WAVEFORMATEX pcmwf;
+
+ // setup header in the same format as our directsound stream
+ memset(&pcmwf,0,sizeof(WAVEFORMATEX));
+ pcmwf.wFormatTag = WAVE_FORMAT_PCM;
+
+ if(iDisStereo)
+ {
+ pcmwf.nChannels = 1;
+ pcmwf.nBlockAlign = 2;
+ }
+ else
+ {
+ pcmwf.nChannels = 2;
+ pcmwf.nBlockAlign = 4;
+ }
+
+ pcmwf.nSamplesPerSec = 44100;
+ pcmwf.nAvgBytesPerSec = pcmwf.nSamplesPerSec * pcmwf.nBlockAlign;
+ pcmwf.wBitsPerSample = 16;
+
+ // create file
+ hWaveFile=mmioOpen(szFileName,NULL,MMIO_CREATE|MMIO_WRITE|MMIO_EXCLUSIVE | MMIO_ALLOCBUF);
+ if(!hWaveFile) return;
+
+ // setup WAVE, fmt and data chunks
+ memset(&mmckMain,0,sizeof(MMCKINFO));
+ mmckMain.fccType = mmioFOURCC('W','A','V','E');
+
+ mmioCreateChunk(hWaveFile,&mmckMain,MMIO_CREATERIFF);
+
+ memset(&mmckData,0,sizeof(MMCKINFO));
+ mmckData.ckid = mmioFOURCC('f','m','t',' ');
+ mmckData.cksize = sizeof(WAVEFORMATEX);
+
+ mmioCreateChunk(hWaveFile,&mmckData,0);
+ mmioWrite(hWaveFile,(char*)&pcmwf,sizeof(WAVEFORMATEX));
+ mmioAscend(hWaveFile,&mmckData,0);
+
+ mmckData.ckid = mmioFOURCC('d','a','t','a');
+ mmioCreateChunk(hWaveFile,&mmckData,0);
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void RecordStop()
+{
+ // first some check, if recording is running
+ iDoRecord=0;
+ if(!hWaveFile) return;
+
+ // now finish writing & close the wave file
+ mmioAscend(hWaveFile,&mmckData,0);
+ mmioAscend(hWaveFile,&mmckMain,0);
+ mmioClose(hWaveFile,0);
+
+ // init var
+ hWaveFile=NULL;
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void RecordBuffer(unsigned char* pSound,long lBytes)
+{
+ // write the samples
+ if(hWaveFile) mmioWrite(hWaveFile,pSound,lBytes);
+}
+
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+
+BOOL CALLBACK RecordDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch(uMsg)
+ {
+ //--------------------------------------------------// init
+ case WM_INITDIALOG:
+ {
+ SetDlgItemText(hW,IDC_WAVFILE,"C:\\PEOPS.WAV"); // init filename edit
+ ShowCursor(TRUE); // mmm... who is hiding it? main emu? tsts
+ return TRUE;
+ }
+ //--------------------------------------------------// destroy
+ case WM_DESTROY:
+ {
+ RecordStop();
+ }break;
+ //--------------------------------------------------// command
+ case WM_COMMAND:
+ {
+ if(wParam==IDCANCEL) iRecordMode=2; // cancel? raise flag for destroying the dialog
+
+ if(wParam==IDC_RECORD) // record start/stop?
+ {
+ if(IsWindowEnabled(GetDlgItem(hW,IDC_WAVFILE))) // not started yet (edit is not disabled):
+ {
+ GetDlgItemText(hW,IDC_WAVFILE,szFileName,255);// get filename
+
+ RecordStart(); // start recording
+
+ if(hWaveFile) // start was ok?
+ { // -> disable filename edit, change text, raise flag
+ EnableWindow(GetDlgItem(hW,IDC_WAVFILE),FALSE);
+ SetDlgItemText(hW,IDC_RECORD,"Stop recording");
+ iDoRecord=1;
+ }
+ else MessageBeep(0xFFFFFFFF); // error starting recording? BEEP
+ }
+ else // stop recording?
+ {
+ RecordStop(); // -> just do it
+ EnableWindow(GetDlgItem(hW,IDC_WAVFILE),TRUE);// -> enable filename edit again
+ SetDlgItemText(hW,IDC_RECORD,"Start recording");
+ }
+ SetFocus(hWMain);
+ }
+ }break;
+ //--------------------------------------------------// size
+ case WM_SIZE:
+ if(wParam==SIZE_MINIMIZED) SetFocus(hWMain); // if we get minimized, set the foxus to the main window
+ break;
+ //--------------------------------------------------// setcursor
+ case WM_SETCURSOR:
+ {
+ SetCursor(LoadCursor(NULL,IDC_ARROW)); // force the arrow
+ return TRUE;
+ }
+ //--------------------------------------------------//
+ }
+ return FALSE;
+}
+
+////////////////////////////////////////////////////////////////////////
+#endif
diff --git a/win32/plugins/dfsound/winsrc/record.h b/win32/plugins/dfsound/winsrc/record.h
index 7614e327..a264850e 100644..100755
--- a/win32/plugins/dfsound/winsrc/record.h
+++ b/win32/plugins/dfsound/winsrc/record.h
@@ -1,11 +1,11 @@
-#ifndef _RECORD_H_
-#define _RECORD_H_
-
-#ifdef _WINDOWS
-void RecordStart();
-void RecordBuffer(unsigned char* pSound,long lBytes);
-void RecordStop();
-BOOL CALLBACK RecordDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
-#endif
-
+#ifndef _RECORD_H_
+#define _RECORD_H_
+
+#ifdef _WINDOWS
+void RecordStart();
+void RecordBuffer(unsigned char* pSound,long lBytes);
+void RecordStop();
+BOOL CALLBACK RecordDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
+#endif
+
#endif \ No newline at end of file
diff --git a/win32/plugins/dfsound/winsrc/winmain.c b/win32/plugins/dfsound/winsrc/winmain.c
index fb57bf6e..e050bc38 100644..100755
--- a/win32/plugins/dfsound/winsrc/winmain.c
+++ b/win32/plugins/dfsound/winsrc/winmain.c
@@ -1,34 +1,34 @@
-/***************************************************************************
- spuPeopsSound.c - description
- -------------------
- begin : Wed May 15 2002
- copyright : (C) 2002 by Pete Bernert
- email : BlackDove@addcom.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. See also the license.txt file for *
- * additional informations. *
- * *
- ***************************************************************************/
-
-// winmain.c : Defines the entry point for the DLL application.
-//
-
-#include "stdafx.h"
-
-HINSTANCE hInst = NULL;
-
-BOOL APIENTRY DllMain( HANDLE hModule,
- DWORD ul_reason_for_call,
- LPVOID lpReserved
- )
-{
- hInst=(HINSTANCE)hModule;
- return TRUE;
-}
-
+/***************************************************************************
+ spuPeopsSound.c - description
+ -------------------
+ begin : Wed May 15 2002
+ copyright : (C) 2002 by Pete Bernert
+ email : BlackDove@addcom.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. See also the license.txt file for *
+ * additional informations. *
+ * *
+ ***************************************************************************/
+
+// winmain.c : Defines the entry point for the DLL application.
+//
+
+#include "stdafx.h"
+
+HINSTANCE hInst = NULL;
+
+BOOL APIENTRY DllMain( HANDLE hModule,
+ DWORD ul_reason_for_call,
+ LPVOID lpReserved
+ )
+{
+ hInst=(HINSTANCE)hModule;
+ return TRUE;
+}
+
diff --git a/win32/plugins/dfxvideo/DFXVideo.def b/win32/plugins/dfxvideo/DFXVideo.def
index e97e195f..3087b1bf 100644..100755
--- a/win32/plugins/dfxvideo/DFXVideo.def
+++ b/win32/plugins/dfxvideo/DFXVideo.def
@@ -31,28 +31,28 @@ EXPORTS
GPUshowScreenPic @26
GPUgetScreenPic @27
- GPUcursor @28
- GPUsetfix @29
-
- ZN_GPUdisplayFlags @30
- ZN_GPUmakeSnapshot @31
- ZN_GPUinit @32
- ZN_GPUopen @33
- ZN_GPUclose @34
- ZN_GPUshutdown @35
- ZN_GPUupdateLace @36
- ZN_GPUreadStatus @37
- ZN_GPUwriteStatus @38
- ZN_GPUdmaSliceOut @39
- ZN_GPUreadData @40
- ZN_GPUsetMode @41
- ZN_GPUgetMode @42
- ZN_GPUdmaSliceIn @43
- ZN_GPUwriteData @44
- ZN_GPUdmaChain @45
- ZN_GPUtest @46
- ZN_GPUfreeze @47
- ZN_GPUgetScreenPic @48
- ZN_GPUshowScreenPic @49
-
+ GPUcursor @28
+ GPUsetfix @29
+
+ ZN_GPUdisplayFlags @30
+ ZN_GPUmakeSnapshot @31
+ ZN_GPUinit @32
+ ZN_GPUopen @33
+ ZN_GPUclose @34
+ ZN_GPUshutdown @35
+ ZN_GPUupdateLace @36
+ ZN_GPUreadStatus @37
+ ZN_GPUwriteStatus @38
+ ZN_GPUdmaSliceOut @39
+ ZN_GPUreadData @40
+ ZN_GPUsetMode @41
+ ZN_GPUgetMode @42
+ ZN_GPUdmaSliceIn @43
+ ZN_GPUwriteData @44
+ ZN_GPUdmaChain @45
+ ZN_GPUtest @46
+ ZN_GPUfreeze @47
+ ZN_GPUgetScreenPic @48
+ ZN_GPUshowScreenPic @49
+
GPUvisualVibration @50
diff --git a/win32/plugins/dfxvideo/DFXVideo.dev b/win32/plugins/dfxvideo/DFXVideo.dev
index 0da41d81..e3262c43 100644..100755
--- a/win32/plugins/dfxvideo/DFXVideo.dev
+++ b/win32/plugins/dfxvideo/DFXVideo.dev
@@ -1,379 +1,379 @@
-[Project]
-FileName=DFXVideo.dev
-Name=DFXVideo
-Ver=1
-IsCpp=1
-Type=3
-Compiler=-W -DWIN32 -DNDEBUG -D_WINDOWS -D__i386___@@_
-CppCompiler=-W -DWIN32 -DNDEBUG -D_WINDOWS -D__i386___@@_
-Includes=.\\;.\winsrc;..\..;..\..\glue;..\..\..\plugins\dfxvideo;..\..\..\libpcsxcore
-Linker=-luser32 -lgdi32 -lwinmm -ladvapi32 -lvfw32 -def DFXVideo.def --enable-stdcall-fixup_@@_
-Libs=
-UnitCount=33
-Folders=dfxvideo,winsrc,winsrc/directx
-ObjFiles=
-PrivateResource=DFXVideo_private.rc
-ResourceIncludes=
-MakeIncludes=
-Icon=
-ExeOutput=
-ObjectOutput=
-OverrideOutput=0
-OverrideOutputName=DFXVideo.exe
-HostApplication=
-CommandLine=
-UseCustomMakefile=0
-CustomMakefile=
-IncludeVersionInfo=0
-SupportXPThemes=0
-CompilerSet=0
-CompilerSettings=0010000001001000000100
-
-[Unit1]
-FileName=winsrc\d3d.h
-Folder=winsrc/directx
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit2]
-FileName=winsrc\d3dcaps.h
-Folder=winsrc/directx
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit3]
-FileName=winsrc\d3dtypes.h
-Folder=winsrc/directx
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit4]
-FileName=winsrc\ddraw.h
-Folder=winsrc/directx
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit5]
-FileName=winsrc\dxguid.c
-Folder=winsrc/directx
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit6]
-FileName=winsrc\cfg.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit7]
-FileName=winsrc\draw.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit8]
-FileName=winsrc\fps.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit9]
-FileName=winsrc\key.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit10]
-FileName=winsrc\record.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit11]
-FileName=winsrc\record.h
-Folder=winsrc
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit12]
-FileName=winsrc\winmain.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit13]
-FileName=..\..\..\plugins\dfxvideo\cfg.h
-Folder=dfxvideo
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit14]
-FileName=..\..\..\plugins\dfxvideo\draw.h
-Folder=dfxvideo
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit15]
-FileName=..\..\..\plugins\dfxvideo\externals.h
-Folder=dfxvideo
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit16]
-FileName=..\..\..\plugins\dfxvideo\fps.h
-Folder=dfxvideo
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit17]
-FileName=..\..\..\plugins\dfxvideo\gpu.c
-Folder=dfxvideo
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit18]
-FileName=..\..\..\plugins\dfxvideo\gpu.h
-Folder=dfxvideo
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit19]
-FileName=..\..\..\plugins\dfxvideo\hq2x.h
-Folder=dfxvideo
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit20]
-FileName=..\..\..\plugins\dfxvideo\hq3x.h
-Folder=dfxvideo
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit21]
-FileName=..\..\..\plugins\dfxvideo\interp.h
-Folder=dfxvideo
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit22]
-FileName=..\..\..\plugins\dfxvideo\key.h
-Folder=dfxvideo
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit23]
-FileName=..\..\..\plugins\dfxvideo\menu.c
-Folder=dfxvideo
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit24]
-FileName=..\..\..\plugins\dfxvideo\menu.h
-Folder=dfxvideo
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit25]
-FileName=..\..\..\plugins\dfxvideo\prim.c
-Folder=dfxvideo
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit26]
-FileName=..\..\..\plugins\dfxvideo\prim.h
-Folder=dfxvideo
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit27]
-FileName=..\..\..\plugins\dfxvideo\soft.c
-Folder=dfxvideo
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit28]
-FileName=..\..\..\plugins\dfxvideo\soft.h
-Folder=dfxvideo
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit29]
-FileName=..\..\..\plugins\dfxvideo\swap.h
-Folder=dfxvideo
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit30]
-FileName=..\..\..\plugins\dfxvideo\zn.c
-Folder=dfxvideo
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit31]
-FileName=DFXVideo.def
-Folder=
-Compile=0
-CompileCpp=0
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit32]
-FileName=DFXVideo.rc
-Folder=Resources
-Compile=1
-CompileCpp=1
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit33]
-FileName=resource.h
-Folder=
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[VersionInfo]
-Major=0
-Minor=1
-Release=1
-Build=1
-LanguageID=1033
-CharsetID=1252
-CompanyName=
-FileVersion=0.1
-FileDescription=Developed using the Dev-C++ IDE
-InternalName=
-LegalCopyright=
-LegalTrademarks=
-OriginalFilename=DFXVideo.exe
-ProductName=DFXVideo
-ProductVersion=0.1
-AutoIncBuildNr=0
-
+[Project]
+FileName=DFXVideo.dev
+Name=DFXVideo
+Ver=1
+IsCpp=1
+Type=3
+Compiler=-W -DWIN32 -DNDEBUG -D_WINDOWS -D__i386___@@_
+CppCompiler=-W -DWIN32 -DNDEBUG -D_WINDOWS -D__i386___@@_
+Includes=.\\;.\winsrc;..\..;..\..\glue;..\..\..\plugins\dfxvideo;..\..\..\libpcsxcore
+Linker=-luser32 -lgdi32 -lwinmm -ladvapi32 -lvfw32 -def DFXVideo.def --enable-stdcall-fixup_@@_
+Libs=
+UnitCount=33
+Folders=dfxvideo,winsrc,winsrc/directx
+ObjFiles=
+PrivateResource=DFXVideo_private.rc
+ResourceIncludes=
+MakeIncludes=
+Icon=
+ExeOutput=
+ObjectOutput=
+OverrideOutput=0
+OverrideOutputName=DFXVideo.exe
+HostApplication=
+CommandLine=
+UseCustomMakefile=0
+CustomMakefile=
+IncludeVersionInfo=0
+SupportXPThemes=0
+CompilerSet=0
+CompilerSettings=0010000001001000000100
+
+[Unit1]
+FileName=winsrc\d3d.h
+Folder=winsrc/directx
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit2]
+FileName=winsrc\d3dcaps.h
+Folder=winsrc/directx
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit3]
+FileName=winsrc\d3dtypes.h
+Folder=winsrc/directx
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit4]
+FileName=winsrc\ddraw.h
+Folder=winsrc/directx
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit5]
+FileName=winsrc\dxguid.c
+Folder=winsrc/directx
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit6]
+FileName=winsrc\cfg.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit7]
+FileName=winsrc\draw.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit8]
+FileName=winsrc\fps.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit9]
+FileName=winsrc\key.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit10]
+FileName=winsrc\record.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit11]
+FileName=winsrc\record.h
+Folder=winsrc
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit12]
+FileName=winsrc\winmain.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit13]
+FileName=..\..\..\plugins\dfxvideo\cfg.h
+Folder=dfxvideo
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit14]
+FileName=..\..\..\plugins\dfxvideo\draw.h
+Folder=dfxvideo
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit15]
+FileName=..\..\..\plugins\dfxvideo\externals.h
+Folder=dfxvideo
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit16]
+FileName=..\..\..\plugins\dfxvideo\fps.h
+Folder=dfxvideo
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit17]
+FileName=..\..\..\plugins\dfxvideo\gpu.c
+Folder=dfxvideo
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit18]
+FileName=..\..\..\plugins\dfxvideo\gpu.h
+Folder=dfxvideo
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit19]
+FileName=..\..\..\plugins\dfxvideo\hq2x.h
+Folder=dfxvideo
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit20]
+FileName=..\..\..\plugins\dfxvideo\hq3x.h
+Folder=dfxvideo
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit21]
+FileName=..\..\..\plugins\dfxvideo\interp.h
+Folder=dfxvideo
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit22]
+FileName=..\..\..\plugins\dfxvideo\key.h
+Folder=dfxvideo
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit23]
+FileName=..\..\..\plugins\dfxvideo\menu.c
+Folder=dfxvideo
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit24]
+FileName=..\..\..\plugins\dfxvideo\menu.h
+Folder=dfxvideo
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit25]
+FileName=..\..\..\plugins\dfxvideo\prim.c
+Folder=dfxvideo
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit26]
+FileName=..\..\..\plugins\dfxvideo\prim.h
+Folder=dfxvideo
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit27]
+FileName=..\..\..\plugins\dfxvideo\soft.c
+Folder=dfxvideo
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit28]
+FileName=..\..\..\plugins\dfxvideo\soft.h
+Folder=dfxvideo
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit29]
+FileName=..\..\..\plugins\dfxvideo\swap.h
+Folder=dfxvideo
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit30]
+FileName=..\..\..\plugins\dfxvideo\zn.c
+Folder=dfxvideo
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit31]
+FileName=DFXVideo.def
+Folder=
+Compile=0
+CompileCpp=0
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit32]
+FileName=DFXVideo.rc
+Folder=Resources
+Compile=1
+CompileCpp=1
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit33]
+FileName=resource.h
+Folder=
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[VersionInfo]
+Major=0
+Minor=1
+Release=1
+Build=1
+LanguageID=1033
+CharsetID=1252
+CompanyName=
+FileVersion=0.1
+FileDescription=Developed using the Dev-C++ IDE
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=DFXVideo.exe
+ProductName=DFXVideo
+ProductVersion=0.1
+AutoIncBuildNr=0
+
diff --git a/win32/plugins/dfxvideo/DFXVideo.dsp b/win32/plugins/dfxvideo/DFXVideo.dsp
index 717f8d1a..9e32cbb8 100644..100755
--- a/win32/plugins/dfxvideo/DFXVideo.dsp
+++ b/win32/plugins/dfxvideo/DFXVideo.dsp
@@ -1,239 +1,239 @@
-# Microsoft Developer Studio Project File - Name="DFXVideo" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=DFXVideo - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "DFXVideo.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "DFXVideo.mak" CFG="DFXVideo - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "DFXVideo - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "DFXVideo - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "DFXVideo - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /G5 /MD /W3 /GX /O2 /I ".\\" /I ".\winsrc" /I "..\.." /I "..\..\glue" /I "..\..\..\plugins\dfxvideo" /I "..\..\..\libpcsxcore" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "__i386__" /FR /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x407 /d "NDEBUG"
-# ADD RSC /l 0x407 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 user32.lib gdi32.lib winmm.lib advapi32.lib vfw32.lib /nologo /subsystem:windows /dll /machine:I386
-# Begin Special Build Tool
-SOURCE="$(InputPath)"
-PostBuild_Cmds=rem copy release\DFXVideo.dll d:\emus\epsxe\plugins rem copy release\DFXVideo.dll d:\emus\zinc\renderer.znc
-# End Special Build Tool
-
-!ELSEIF "$(CFG)" == "DFXVideo - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".\\" /I ".\winsrc" /I "..\..\glue" /I "..\..\..\plugins\dfxvideo" /I "..\..\..\libpcsxcore" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x407 /d "_DEBUG"
-# ADD RSC /l 0x407 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 user32.lib gdi32.lib winmm.lib advapi32.lib vfw32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /pdbtype:sept
-
-!ENDIF
-
-# Begin Target
-
-# Name "DFXVideo - Win32 Release"
-# Name "DFXVideo - Win32 Debug"
-# Begin Group "winsrc"
-
-# PROP Default_Filter ""
-# Begin Group "directx"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\winsrc\d3d.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\d3dcaps.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\d3dtypes.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\ddraw.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\dxguid.c
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=.\winsrc\cfg.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\draw.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\fps.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\key.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\record.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\record.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\winmain.c
-# End Source File
-# End Group
-# Begin Group "dfxvideo"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\cfg.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\draw.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\externals.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\fps.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\gpu.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\gpu.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\hq2x.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\hq3x.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\interp.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\key.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\menu.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\menu.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\prim.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\prim.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\soft.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\soft.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\swap.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\dfxvideo\zn.c
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=.\DFXVideo.def
-# End Source File
-# Begin Source File
-
-SOURCE=.\DFXVideo.rc
-# End Source File
-# Begin Source File
-
-SOURCE=.\resource.h
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="DFXVideo" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=DFXVideo - Win32 Release
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "DFXVideo.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "DFXVideo.mak" CFG="DFXVideo - Win32 Release"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "DFXVideo - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "DFXVideo - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "DFXVideo - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /G5 /MD /W3 /GX /O2 /I ".\\" /I ".\winsrc" /I "..\.." /I "..\..\glue" /I "..\..\..\plugins\dfxvideo" /I "..\..\..\libpcsxcore" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "__i386__" /FR /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
+# ADD LINK32 user32.lib gdi32.lib winmm.lib advapi32.lib vfw32.lib /nologo /subsystem:windows /dll /machine:I386
+# Begin Special Build Tool
+SOURCE="$(InputPath)"
+PostBuild_Cmds=rem copy release\DFXVideo.dll d:\emus\epsxe\plugins rem copy release\DFXVideo.dll d:\emus\zinc\renderer.znc
+# End Special Build Tool
+
+!ELSEIF "$(CFG)" == "DFXVideo - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".\\" /I ".\winsrc" /I "..\..\glue" /I "..\..\..\plugins\dfxvideo" /I "..\..\..\libpcsxcore" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 user32.lib gdi32.lib winmm.lib advapi32.lib vfw32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "DFXVideo - Win32 Release"
+# Name "DFXVideo - Win32 Debug"
+# Begin Group "winsrc"
+
+# PROP Default_Filter ""
+# Begin Group "directx"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\winsrc\d3d.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\d3dcaps.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\d3dtypes.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\ddraw.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\dxguid.c
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\winsrc\cfg.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\draw.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\fps.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\record.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\record.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\winmain.c
+# End Source File
+# End Group
+# Begin Group "dfxvideo"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\cfg.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\draw.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\externals.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\fps.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\gpu.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\gpu.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\hq2x.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\hq3x.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\interp.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\key.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\menu.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\menu.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\prim.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\prim.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\soft.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\soft.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\swap.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\dfxvideo\zn.c
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\DFXVideo.def
+# End Source File
+# Begin Source File
+
+SOURCE=.\DFXVideo.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\resource.h
+# End Source File
+# End Target
+# End Project
diff --git a/win32/plugins/dfxvideo/DFXVideo.rc b/win32/plugins/dfxvideo/DFXVideo.rc
index 946dc14b..0664d3cd 100644..100755
--- a/win32/plugins/dfxvideo/DFXVideo.rc
+++ b/win32/plugins/dfxvideo/DFXVideo.rc
@@ -1,563 +1,563 @@
-//Microsoft Developer Studio generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// Neutral resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
-#ifdef _WIN32
-LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-#pragma code_page(936)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_GPU BITMAP DISCARDABLE "res\\gpu.bmp"
-#endif // Neutral resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE DISCARDABLE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE DISCARDABLE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE DISCARDABLE
-BEGIN
- "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
- "#define _AFX_NO_OLE_RESOURCES\r\n"
- "#define _AFX_NO_TRACKER_RESOURCES\r\n"
- "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
- "\r\n"
- "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
- "#ifdef _WIN32\r\n"
- "LANGUAGE 9, 1\r\n"
- "#pragma code_page(1252)\r\n"
- "#endif\r\n"
- "#endif\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-#ifndef _MAC
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,17,0,0
- PRODUCTVERSION 1,17,0,0
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x2L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "Comments", "\0"
- VALUE "CompanyName", "\0"
- VALUE "FileDescription", "Based on P.E.Op.S. gpu soft plugin\0"
- VALUE "FileVersion", "1, 17, 0, 0\0"
- VALUE "InternalName", "DFXVideo\0"
- VALUE "LegalCopyright", "GPL\0"
- VALUE "LegalTrademarks", "\0"
- VALUE "OriginalFilename", "DFXVideo.DLL\0"
- VALUE "PrivateBuild", "\0"
- VALUE "ProductName", "DFXVideo\0"
- VALUE "ProductVersion", "1, 17, 0, 0\0"
- VALUE "SpecialBuild", "\0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
-#endif // !_MAC
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_CFGSOFT DIALOGEX 0, 0, 291, 292
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Configure the DirectDraw Renderer..."
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- PUSHBUTTON "Select device...",IDC_SELDEV,7,3,60,12
- CONTROL "Fullscreen mode",IDC_DISPMODE1,"Button",
- BS_AUTORADIOBUTTON,10,28,67,10
- CONTROL "Window mode",IDC_DISPMODE2,"Button",BS_AUTORADIOBUTTON,
- 10,43,63,10
- COMBOBOX IDC_RESOLUTION,78,27,102,64,CBS_DROPDOWNLIST | CBS_SORT |
- WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_COLDEPTH,225,27,52,64,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- EDITTEXT IDC_WINX,103,43,36,12,ES_AUTOHSCROLL
- EDITTEXT IDC_WINY,151,43,36,12,ES_AUTOHSCROLL
- COMBOBOX IDC_NOSTRETCH,78,61,199,100,CBS_DROPDOWNLIST |
- WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_DITHER,78,77,199,100,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- CONTROL "Transparent FPS display",IDC_TRANSPARENT,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,13,107,93,10
- CONTROL "Show FPS display on startup",IDC_SHOWFPS,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,13,118,104,10
- PUSHBUTTON "...",IDC_KEYCONFIG,216,111,11,10,0,WS_EX_STATICEDGE
- CONTROL "Use FPS limit",IDC_USELIMIT,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,24,130,61,10
- CONTROL "Use Frame skipping",IDC_USESKIPPING,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,24,141,81,10
- CONTROL "Auto-detect FPS/Frame skipping limit",IDC_FRAMEAUTO,
- "Button",BS_AUTORADIOBUTTON | WS_GROUP,143,129,135,11
- CONTROL "FPS limit (10-200) :",IDC_FRAMEMANUELL,"Button",
- BS_AUTORADIOBUTTON,143,140,72,11
- EDITTEXT IDC_FRAMELIM,218,140,28,12,ES_AUTOHSCROLL
- COMBOBOX IDC_SCANLINES,78,167,199,64,CBS_DROPDOWNLIST |
- WS_VSCROLL | WS_TABSTOP
- CONTROL "Use system memory - slower with most cards, disables auto-screen-filtering",
- IDC_SYSMEMORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,
- 184,260,10
- CONTROL "Wait for VSYNC - synchronize screen update with monitor refresh rate",
- IDC_VSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,195,
- 256,10
- CONTROL "Stop screen saver - disables screen savers/power-saving (n.a. in W95/NT4!)",
- IDC_STOPSAVER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,
- 206,263,10
- CONTROL "Debug mode - enables some debugging features (n.a. with all cards)",
- IDC_DEBUGMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,
- 217,263,10
- CONTROL "Activate special game fixes",IDC_GAMEFIX,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,13,228,101,10
- PUSHBUTTON "...",IDC_SELFIX,121,228,11,10,0,WS_EX_STATICEDGE
- PUSHBUTTON "...",IDC_RECORDING,121,241,11,10,0,WS_EX_STATICEDGE
- PUSHBUTTON "Fast",IDC_DEF1,10,267,35,14
- PUSHBUTTON "Nice",IDC_DEF2,49,267,35,14
- DEFPUSHBUTTON "OK",IDOK,97,267,50,14
- PUSHBUTTON "Cancel",IDCANCEL,153,267,50,14
- PUSHBUTTON "Copy settings\n to clipboard",IDC_CLIPBOARD,210,261,77,
- 26,BS_MULTILINE,WS_EX_STATICEDGE
- LTEXT "Primary",IDC_DEVICETXT,72,5,211,10
- GROUPBOX "Resolution && Colors",IDC_STATIC,4,17,283,78
- RTEXT "Color depth:",IDC_STATIC,182,28,39,10,SS_CENTERIMAGE
- RTEXT "Size:",IDC_STATIC,74,44,26,9
- RTEXT "Stretching:",IDC_STATIC,26,63,48,9
- RTEXT "Scanline mode:",IDC_STATIC,9,169,61,8
- RTEXT "Recording options:",IDC_STATIC,55,241,61,10,
- SS_CENTERIMAGE
- CTEXT "x",IDC_STATIC,141,44,8,9
- GROUPBOX "Framerate",IDC_STATIC,4,96,283,60
- LTEXT "FPS",IDC_STATIC,250,142,20,9
- GROUPBOX "Options",IDC_STATIC,4,157,283,99
- GROUPBOX "Default settings",IDC_STATIC,4,257,87,30
- RTEXT "Key configuration:",IDC_STATIC,152,111,59,10,
- SS_CENTERIMAGE
- EDITTEXT IDC_CLPEDIT,204,278,6,8,ES_MULTILINE | ES_AUTOVSCROLL |
- ES_AUTOHSCROLL | NOT WS_VISIBLE
- RTEXT "Dithering:",IDC_STATIC,26,79,48,9
-END
-
-IDD_DEVICE DIALOG DISCARDABLE 0, 0, 186, 82
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
-CAPTION "Select device..."
-FONT 8, "MS Sans Serif"
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,24,63,50,14
- PUSHBUTTON "Cancel",IDCANCEL,112,63,50,14
- COMBOBOX IDC_DEVICE,7,7,167,64,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- CONTROL "Adjust gamma (fullscreen modes only)",IDC_USEGAMMA,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,28,156,9
- SCROLLBAR IDC_GAMMA,55,42,68,10
- RTEXT "Dark",IDC_STATIC,30,43,21,8
- LTEXT "Bright",IDC_STATIC,127,43,28,8
-END
-
-IDD_ABOUT DIALOG DISCARDABLE 0, 0, 258, 194
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
-CAPTION "About the P.E.Op.S. PSX DirectDraw Soft Renderer..."
-FONT 8, "MS Sans Serif"
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,103,176,50,14
- RTEXT "Version:",IDC_STATIC,17,6,49,10
- RTEXT "Coded by:",IDC_STATIC,17,29,49,10
- RTEXT "Pete's EMail:",IDC_STATIC,17,41,49,10
- LTEXT "1.17",IDC_STATIC,69,6,159,10
- LTEXT "Pete Bernert and the P.E.Op.S. team",IDC_STATIC,69,29,
- 159,10
- LTEXT "BlackDove@addcom.de",IDC_STATIC,69,41,159,10
- LTEXT "http://www.pbernert.com",IDC_STATIC,82,95,142,10
- RTEXT "Release date:",IDC_STATIC,17,17,49,10
- LTEXT "12.06.2005",IDC_STATIC,69,17,159,10
- LTEXT "The P.E.Op.S. SoftGPU team:",IDC_STATIC,9,82,103,10
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME | SS_SUNKEN,4,76,
- 249,94
- RTEXT "P.E.Op.S. page:",IDC_STATIC,9,56,57,10
- LTEXT "https://sourceforge.net/projects/peops",IDC_STATIC,69,
- 56,159,10
- LTEXT "- Pete Bernert",IDC_STATIC,13,95,69,10
- LTEXT "- Lewpy",IDC_STATIC,13,106,69,10
- LTEXT "- lu_zero",IDC_STATIC,13,117,69,10
- LTEXT "- linuzappz",IDC_STATIC,13,128,69,10
- LTEXT "- Darko Matesic",IDC_STATIC,13,139,69,10
- LTEXT "http://mrdario.tripod.com",IDC_STATIC,82,139,142,10
- LTEXT "http://www.pcsx.net",IDC_STATIC,82,128,142,10
- LTEXT "http://lewpy.psxemu.com/",IDC_STATIC,82,106,142,10
- LTEXT "http://brsk.virtualave.net/lu_zero/",IDC_STATIC,82,117,
- 142,10
- LTEXT "- syo",IDC_STATIC,13,150,69,10
- LTEXT "http://www.geocities.co.jp/SiliconValley-Bay/2072/",
- IDC_STATIC,82,150,167,10
-END
-
-IDD_FIXES DIALOG DISCARDABLE 0, 0, 285, 218
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
-CAPTION "Special game fixes..."
-FONT 8, "MS Sans Serif"
-BEGIN
- CONTROL "Odd/even bit hack",IDC_FIX1,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,34,30,100,10
- CONTROL "Expand screen width",IDC_FIX2,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,34,45,91,10
- CONTROL "Ignore black brightness color",IDC_FIX3,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,34,60,106,10
- CONTROL "Disable coord check",IDC_FIX4,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,34,75,85,10
- CONTROL "Use low-res fps timer",IDC_FIX5,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,34,90,101,10
- CONTROL "Use PC fps calculation",IDC_FIX6,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,34,105,91,10
- CONTROL "Lazy screen updates",IDC_FIX7,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,34,120,91,10
- CONTROL "Use old frame skipping",IDC_FIX8,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,34,135,91,10
- CONTROL "Repeated flat tex triangles",IDC_FIX9,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,34,150,97,10
- CONTROL "Draw tex-quads as triangles",IDC_FIX10,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,34,165,100,10
- DEFPUSHBUTTON "OK",IDOK,66,199,50,14
- PUSHBUTTON "Cancel",IDCANCEL,169,199,50,14
- LTEXT "Activate the following options only if you want to play one of the listed games (or if your game is showing similar glitches)!",
- IDC_STATIC,8,4,245,22
- LTEXT "Needed with epsxe 1.5.2 and older",IDC_STATIC,145,30,
- 135,9,SS_CENTERIMAGE
- LTEXT "Shows the full area in Capcom 2D fighters",IDC_STATIC,
- 145,45,136,9,SS_CENTERIMAGE
- LTEXT "Fixes black screens in Lunar",IDC_STATIC,145,60,134,9,
- SS_CENTERIMAGE
- LTEXT "Old compatibility mode",IDC_STATIC,145,75,135,9,
- SS_CENTERIMAGE
- LTEXT "For buggy motherboard chipsets",IDC_STATIC,145,90,133,9,
- SS_CENTERIMAGE
- LTEXT "Better fps limitation with some games",IDC_STATIC,145,
- 105,129,9,SS_CENTERIMAGE
- LTEXT "Maybe faster, needed for Pandemonium2",IDC_STATIC,145,
- 120,139,9,SS_CENTERIMAGE
- RTEXT "0x0001:",IDC_STATIC,1,30,28,9,SS_CENTERIMAGE
- RTEXT "0x0002:",IDC_STATIC,1,45,28,9,SS_CENTERIMAGE
- RTEXT "0x0004:",IDC_STATIC,1,60,28,9,SS_CENTERIMAGE
- RTEXT "0x0008:",IDC_STATIC,1,75,28,9,SS_CENTERIMAGE
- RTEXT "0x0010:",IDC_STATIC,1,90,28,9,SS_CENTERIMAGE
- RTEXT "0x0020:",IDC_STATIC,1,105,28,9,SS_CENTERIMAGE
- RTEXT "0x0040:",IDC_STATIC,1,120,28,9,SS_CENTERIMAGE
- LTEXT "Skips only every second frame",IDC_STATIC,145,135,139,9,
- SS_CENTERIMAGE
- RTEXT "0x0080:",IDC_STATIC,1,135,28,9,SS_CENTERIMAGE
- LTEXT "Needed by Dark Forces",IDC_STATIC,145,150,139,9,
- SS_CENTERIMAGE
- RTEXT "0x0100:",IDC_STATIC,1,150,28,9,SS_CENTERIMAGE
- LTEXT "Slightly distorted textures can happen",IDC_STATIC,145,
- 165,139,9,SS_CENTERIMAGE
- RTEXT "0x0200:",IDC_STATIC,1,165,28,9,SS_CENTERIMAGE
- CONTROL "Fake 'gpu busy' states",IDC_FIX11,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,34,180,100,10
- LTEXT "Toggles busy flags after drawing",IDC_STATIC,145,180,
- 139,9,SS_CENTERIMAGE
- RTEXT "0x0400:",IDC_STATIC,1,180,28,9,SS_CENTERIMAGE
-END
-
-IDD_KEYS DIALOG DISCARDABLE 0, 0, 186, 220
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
-CAPTION "GPU key configuration"
-FONT 8, "MS Sans Serif"
-BEGIN
- PUSHBUTTON "Default keys",IDC_DEFAULT,107,6,61,13
- COMBOBOX IDC_KEY1,108,25,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY2,108,41,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY3,108,57,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY4,108,73,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY5,108,89,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY6,108,105,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY7,108,121,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY8,108,137,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY9,108,153,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY10,108,169,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- DEFPUSHBUTTON "OK",IDOK,20,197,50,14
- PUSHBUTTON "Cancel",IDCANCEL,115,197,50,14
- RTEXT "Show/hide gpu menu:",IDC_STATIC,4,26,100,9,
- SS_CENTERIMAGE
- RTEXT "Show/hide gpu infos:",IDC_STATIC,4,42,100,9,
- SS_CENTERIMAGE
- RTEXT "Toggle selected option up:",IDC_STATIC,4,58,100,9,
- SS_CENTERIMAGE
- RTEXT "Toggle selected option down:",IDC_STATIC,4,74,100,9,
- SS_CENTERIMAGE
- RTEXT "Select previous option:",IDC_STATIC,4,90,100,9,
- SS_CENTERIMAGE
- RTEXT "Select next option:",IDC_STATIC,4,106,100,9,
- SS_CENTERIMAGE
- RTEXT "Start/stop recording:",IDC_STATIC,4,122,100,9,
- SS_CENTERIMAGE
- RTEXT "Toggle wait VSYNC:",IDC_STATIC,4,138,100,9,
- SS_CENTERIMAGE
- RTEXT "Fast forward frame skipping:",IDC_STATIC,4,154,100,9,
- SS_CENTERIMAGE
- RTEXT "Debug mode: toggle vram view:",IDC_STATIC,4,170,100,9,
- SS_CENTERIMAGE
-END
-
-IDD_RECORDING DIALOG DISCARDABLE 0, 0, 215, 158
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Recording Options"
-FONT 8, "MS Sans Serif"
-BEGIN
- CONTROL "Standard Video Size",IDC_REC_MODE1,"Button",
- BS_AUTORADIOBUTTON | WS_GROUP,25,36,80,12
- COMBOBOX IDC_VIDEO_SIZE,115,37,65,60,CBS_DROPDOWNLIST |
- WS_VSCROLL | WS_TABSTOP
- CONTROL "Custom Video Size",IDC_REC_MODE2,"Button",
- BS_AUTORADIOBUTTON,25,51,80,12
- EDITTEXT IDC_REC_WIDTH,115,51,25,12,ES_AUTOHSCROLL
- CTEXT "x",IDC_STATIC,141,51,12,12,SS_CENTERIMAGE
- EDITTEXT IDC_REC_HEIGHT,155,51,25,12,ES_AUTOHSCROLL
- RTEXT "Frame Rate Scale:",IDC_STATIC,45,69,60,12,
- SS_CENTERIMAGE | NOT WS_GROUP
- COMBOBOX IDC_FRAME_RATE,115,69,30,60,CBS_DROPDOWNLIST |
- WS_VSCROLL | WS_TABSTOP
- CONTROL "16 bit Compression:",IDC_COMPRESSION1,"Button",
- BS_AUTORADIOBUTTON | WS_GROUP,21,86,165,12
- CONTROL "24 bit Compression:",IDC_COMPRESSION2,"Button",
- BS_AUTORADIOBUTTON,21,101,165,12
- PUSHBUTTON "Configure",IDC_RECCFG,77,116,50,12
- DEFPUSHBUTTON "OK",IDOK,24,137,50,14
- PUSHBUTTON "Cancel",IDCANCEL,133,137,50,14
- LTEXT "You can start/stop the video recording using the 'recording' key (see key configuration)!\nThe video will be stored in the 'Demo' sub-directory.",
- IDC_STATIC,5,3,203,27
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO DISCARDABLE
-BEGIN
- IDD_CFGSOFT, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 284
- TOPMARGIN, 7
- BOTTOMMARGIN, 280
- END
-
- IDD_DEVICE, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 179
- TOPMARGIN, 7
- BOTTOMMARGIN, 75
- END
-
- IDD_ABOUT, DIALOG
- BEGIN
- LEFTMARGIN, 7
- TOPMARGIN, 7
- BOTTOMMARGIN, 189
- END
-
- IDD_FIXES, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 278
- TOPMARGIN, 7
- BOTTOMMARGIN, 200
- END
-
- IDD_KEYS, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 179
- TOPMARGIN, 7
- BOTTOMMARGIN, 190
- END
-
- IDD_RECORDING, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 208
- TOPMARGIN, 7
- BOTTOMMARGIN, 151
- END
-END
-#endif // APSTUDIO_INVOKED
-
-#ifdef _MSC_VER
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog Info
-//
-
-IDD_CFGSOFT DLGINIT
-BEGIN
- IDC_RESOLUTION, 0x403, 1, 0
-"\000"
- IDC_NOSTRETCH, 0x403, 10, 0
-0x3436, 0x2030, 0x2078, 0x3834, 0x0030,
- IDC_NOSTRETCH, 0x403, 10, 0
-0x3038, 0x2030, 0x2078, 0x3036, 0x0030,
- IDC_NOSTRETCH, 0x403, 11, 0
-0x3031, 0x3432, 0x7820, 0x3720, 0x3836, "\000"
- IDC_NOSTRETCH, 0x403, 11, 0
-0x3131, 0x3235, 0x7820, 0x3820, 0x3436, "\000"
- IDC_NOSTRETCH, 0x403, 12, 0
-0x3231, 0x3038, 0x7820, 0x3120, 0x3230, 0x0034,
- IDC_NOSTRETCH, 0x403, 12, 0
-0x3631, 0x3030, 0x7820, 0x3120, 0x3032, 0x0030,
- IDC_DITHER, 0x403, 10, 0
-0x3436, 0x2030, 0x2078, 0x3834, 0x0030,
- IDC_DITHER, 0x403, 10, 0
-0x3038, 0x2030, 0x2078, 0x3036, 0x0030,
- IDC_DITHER, 0x403, 11, 0
-0x3031, 0x3432, 0x7820, 0x3720, 0x3836, "\000"
- IDC_DITHER, 0x403, 11, 0
-0x3131, 0x3235, 0x7820, 0x3820, 0x3436, "\000"
- IDC_DITHER, 0x403, 12, 0
-0x3231, 0x3038, 0x7820, 0x3120, 0x3230, 0x0034,
- IDC_DITHER, 0x403, 12, 0
-0x3631, 0x3030, 0x7820, 0x3120, 0x3032, 0x0030,
- IDC_SCANLINES, 0x403, 10, 0
-0x3436, 0x2030, 0x2078, 0x3834, 0x0030,
- IDC_SCANLINES, 0x403, 10, 0
-0x3038, 0x2030, 0x2078, 0x3036, 0x0030,
- IDC_SCANLINES, 0x403, 11, 0
-0x3031, 0x3432, 0x7820, 0x3720, 0x3836, "\000"
- IDC_SCANLINES, 0x403, 11, 0
-0x3131, 0x3235, 0x7820, 0x3820, 0x3436, "\000"
- IDC_SCANLINES, 0x403, 12, 0
-0x3231, 0x3038, 0x7820, 0x3120, 0x3230, 0x0034,
- IDC_SCANLINES, 0x403, 12, 0
-0x3631, 0x3030, 0x7820, 0x3120, 0x3032, 0x0030,
- 0
-END
-
-IDD_DEVICE DLGINIT
-BEGIN
- IDC_DEVICE, 0x403, 11, 0
-0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
- IDC_DEVICE, 0x403, 12, 0
-0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
- IDC_DEVICE, 0x403, 12, 0
-0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
- IDC_DEVICE, 0x403, 12, 0
-0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
- 0
-END
-
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDS_INFO0 "FL - Frame limitation:\n[Off] - Speed as fast as possible\n[On-1] - Limits speed to manual value\n[On-2] - Limits speed to auto-detected value."
- IDS_INFO1 "FS - Frame skipping:\n[Off] - No frames get skipped\n[On] - Tries to speed up the game by skipping frames. Can cause glitches!"
- IDS_INFO2 "GF - Special game fixes:\n[Off] - Turn off all fixes\n[On] - Turn on all activated fixes. You have to select the fixes you want to use in the gpu config."
-END
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-#define _AFX_NO_SPLITTER_RESOURCES
-#define _AFX_NO_OLE_RESOURCES
-#define _AFX_NO_TRACKER_RESOURCES
-#define _AFX_NO_PROPERTY_RESOURCES
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE 9, 1
-#pragma code_page(1252)
-#endif
-#endif
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Neutral resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
+#ifdef _WIN32
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+#pragma code_page(936)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDB_GPU BITMAP DISCARDABLE "res\\gpu.bmp"
+#endif // Neutral resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
+ "#define _AFX_NO_OLE_RESOURCES\r\n"
+ "#define _AFX_NO_TRACKER_RESOURCES\r\n"
+ "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
+ "\r\n"
+ "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
+ "#ifdef _WIN32\r\n"
+ "LANGUAGE 9, 1\r\n"
+ "#pragma code_page(1252)\r\n"
+ "#endif\r\n"
+ "#endif\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,17,0,0
+ PRODUCTVERSION 1,17,0,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "Comments", "\0"
+ VALUE "CompanyName", "\0"
+ VALUE "FileDescription", "Based on P.E.Op.S. gpu soft plugin\0"
+ VALUE "FileVersion", "1, 17, 0, 0\0"
+ VALUE "InternalName", "DFXVideo\0"
+ VALUE "LegalCopyright", "GPL\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "DFXVideo.DLL\0"
+ VALUE "PrivateBuild", "\0"
+ VALUE "ProductName", "DFXVideo\0"
+ VALUE "ProductVersion", "1, 17, 0, 0\0"
+ VALUE "SpecialBuild", "\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif // !_MAC
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_CFGSOFT DIALOGEX 0, 0, 291, 292
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Configure the DirectDraw Renderer..."
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+ PUSHBUTTON "Select device...",IDC_SELDEV,7,3,60,12
+ CONTROL "Fullscreen mode",IDC_DISPMODE1,"Button",
+ BS_AUTORADIOBUTTON,10,28,67,10
+ CONTROL "Window mode",IDC_DISPMODE2,"Button",BS_AUTORADIOBUTTON,
+ 10,43,63,10
+ COMBOBOX IDC_RESOLUTION,78,27,102,64,CBS_DROPDOWNLIST | CBS_SORT |
+ WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_COLDEPTH,225,27,52,64,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ EDITTEXT IDC_WINX,103,43,36,12,ES_AUTOHSCROLL
+ EDITTEXT IDC_WINY,151,43,36,12,ES_AUTOHSCROLL
+ COMBOBOX IDC_NOSTRETCH,78,61,199,100,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_DITHER,78,77,199,100,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ CONTROL "Transparent FPS display",IDC_TRANSPARENT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,13,107,93,10
+ CONTROL "Show FPS display on startup",IDC_SHOWFPS,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,13,118,104,10
+ PUSHBUTTON "...",IDC_KEYCONFIG,216,111,11,10,0,WS_EX_STATICEDGE
+ CONTROL "Use FPS limit",IDC_USELIMIT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,24,130,61,10
+ CONTROL "Use Frame skipping",IDC_USESKIPPING,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,24,141,81,10
+ CONTROL "Auto-detect FPS/Frame skipping limit",IDC_FRAMEAUTO,
+ "Button",BS_AUTORADIOBUTTON | WS_GROUP,143,129,135,11
+ CONTROL "FPS limit (10-200) :",IDC_FRAMEMANUELL,"Button",
+ BS_AUTORADIOBUTTON,143,140,72,11
+ EDITTEXT IDC_FRAMELIM,218,140,28,12,ES_AUTOHSCROLL
+ COMBOBOX IDC_SCANLINES,78,167,199,64,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ CONTROL "Use system memory - slower with most cards, disables auto-screen-filtering",
+ IDC_SYSMEMORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,
+ 184,260,10
+ CONTROL "Wait for VSYNC - synchronize screen update with monitor refresh rate",
+ IDC_VSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,195,
+ 256,10
+ CONTROL "Stop screen saver - disables screen savers/power-saving (n.a. in W95/NT4!)",
+ IDC_STOPSAVER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,
+ 206,263,10
+ CONTROL "Debug mode - enables some debugging features (n.a. with all cards)",
+ IDC_DEBUGMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,
+ 217,263,10
+ CONTROL "Activate special game fixes",IDC_GAMEFIX,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,13,228,101,10
+ PUSHBUTTON "...",IDC_SELFIX,121,228,11,10,0,WS_EX_STATICEDGE
+ PUSHBUTTON "...",IDC_RECORDING,121,241,11,10,0,WS_EX_STATICEDGE
+ PUSHBUTTON "Fast",IDC_DEF1,10,267,35,14
+ PUSHBUTTON "Nice",IDC_DEF2,49,267,35,14
+ DEFPUSHBUTTON "OK",IDOK,97,267,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,153,267,50,14
+ PUSHBUTTON "Copy settings\n to clipboard",IDC_CLIPBOARD,210,261,77,
+ 26,BS_MULTILINE,WS_EX_STATICEDGE
+ LTEXT "Primary",IDC_DEVICETXT,72,5,211,10
+ GROUPBOX "Resolution && Colors",IDC_STATIC,4,17,283,78
+ RTEXT "Color depth:",IDC_STATIC,182,28,39,10,SS_CENTERIMAGE
+ RTEXT "Size:",IDC_STATIC,74,44,26,9
+ RTEXT "Stretching:",IDC_STATIC,26,63,48,9
+ RTEXT "Scanline mode:",IDC_STATIC,9,169,61,8
+ RTEXT "Recording options:",IDC_STATIC,55,241,61,10,
+ SS_CENTERIMAGE
+ CTEXT "x",IDC_STATIC,141,44,8,9
+ GROUPBOX "Framerate",IDC_STATIC,4,96,283,60
+ LTEXT "FPS",IDC_STATIC,250,142,20,9
+ GROUPBOX "Options",IDC_STATIC,4,157,283,99
+ GROUPBOX "Default settings",IDC_STATIC,4,257,87,30
+ RTEXT "Key configuration:",IDC_STATIC,152,111,59,10,
+ SS_CENTERIMAGE
+ EDITTEXT IDC_CLPEDIT,204,278,6,8,ES_MULTILINE | ES_AUTOVSCROLL |
+ ES_AUTOHSCROLL | NOT WS_VISIBLE
+ RTEXT "Dithering:",IDC_STATIC,26,79,48,9
+END
+
+IDD_DEVICE DIALOG DISCARDABLE 0, 0, 186, 82
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
+CAPTION "Select device..."
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,24,63,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,112,63,50,14
+ COMBOBOX IDC_DEVICE,7,7,167,64,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ CONTROL "Adjust gamma (fullscreen modes only)",IDC_USEGAMMA,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,28,156,9
+ SCROLLBAR IDC_GAMMA,55,42,68,10
+ RTEXT "Dark",IDC_STATIC,30,43,21,8
+ LTEXT "Bright",IDC_STATIC,127,43,28,8
+END
+
+IDD_ABOUT DIALOG DISCARDABLE 0, 0, 258, 194
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
+CAPTION "About the P.E.Op.S. PSX DirectDraw Soft Renderer..."
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,103,176,50,14
+ RTEXT "Version:",IDC_STATIC,17,6,49,10
+ RTEXT "Coded by:",IDC_STATIC,17,29,49,10
+ RTEXT "Pete's EMail:",IDC_STATIC,17,41,49,10
+ LTEXT "1.17",IDC_STATIC,69,6,159,10
+ LTEXT "Pete Bernert and the P.E.Op.S. team",IDC_STATIC,69,29,
+ 159,10
+ LTEXT "BlackDove@addcom.de",IDC_STATIC,69,41,159,10
+ LTEXT "http://www.pbernert.com",IDC_STATIC,82,95,142,10
+ RTEXT "Release date:",IDC_STATIC,17,17,49,10
+ LTEXT "12.06.2005",IDC_STATIC,69,17,159,10
+ LTEXT "The P.E.Op.S. SoftGPU team:",IDC_STATIC,9,82,103,10
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME | SS_SUNKEN,4,76,
+ 249,94
+ RTEXT "P.E.Op.S. page:",IDC_STATIC,9,56,57,10
+ LTEXT "https://sourceforge.net/projects/peops",IDC_STATIC,69,
+ 56,159,10
+ LTEXT "- Pete Bernert",IDC_STATIC,13,95,69,10
+ LTEXT "- Lewpy",IDC_STATIC,13,106,69,10
+ LTEXT "- lu_zero",IDC_STATIC,13,117,69,10
+ LTEXT "- linuzappz",IDC_STATIC,13,128,69,10
+ LTEXT "- Darko Matesic",IDC_STATIC,13,139,69,10
+ LTEXT "http://mrdario.tripod.com",IDC_STATIC,82,139,142,10
+ LTEXT "http://www.pcsx.net",IDC_STATIC,82,128,142,10
+ LTEXT "http://lewpy.psxemu.com/",IDC_STATIC,82,106,142,10
+ LTEXT "http://brsk.virtualave.net/lu_zero/",IDC_STATIC,82,117,
+ 142,10
+ LTEXT "- syo",IDC_STATIC,13,150,69,10
+ LTEXT "http://www.geocities.co.jp/SiliconValley-Bay/2072/",
+ IDC_STATIC,82,150,167,10
+END
+
+IDD_FIXES DIALOG DISCARDABLE 0, 0, 285, 218
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
+CAPTION "Special game fixes..."
+FONT 8, "MS Sans Serif"
+BEGIN
+ CONTROL "Odd/even bit hack",IDC_FIX1,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,34,30,100,10
+ CONTROL "Expand screen width",IDC_FIX2,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,34,45,91,10
+ CONTROL "Ignore black brightness color",IDC_FIX3,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,34,60,106,10
+ CONTROL "Disable coord check",IDC_FIX4,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,34,75,85,10
+ CONTROL "Use low-res fps timer",IDC_FIX5,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,34,90,101,10
+ CONTROL "Use PC fps calculation",IDC_FIX6,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,34,105,91,10
+ CONTROL "Lazy screen updates",IDC_FIX7,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,34,120,91,10
+ CONTROL "Use old frame skipping",IDC_FIX8,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,34,135,91,10
+ CONTROL "Repeated flat tex triangles",IDC_FIX9,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,34,150,97,10
+ CONTROL "Draw tex-quads as triangles",IDC_FIX10,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,34,165,100,10
+ DEFPUSHBUTTON "OK",IDOK,66,199,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,169,199,50,14
+ LTEXT "Activate the following options only if you want to play one of the listed games (or if your game is showing similar glitches)!",
+ IDC_STATIC,8,4,245,22
+ LTEXT "Needed with epsxe 1.5.2 and older",IDC_STATIC,145,30,
+ 135,9,SS_CENTERIMAGE
+ LTEXT "Shows the full area in Capcom 2D fighters",IDC_STATIC,
+ 145,45,136,9,SS_CENTERIMAGE
+ LTEXT "Fixes black screens in Lunar",IDC_STATIC,145,60,134,9,
+ SS_CENTERIMAGE
+ LTEXT "Old compatibility mode",IDC_STATIC,145,75,135,9,
+ SS_CENTERIMAGE
+ LTEXT "For buggy motherboard chipsets",IDC_STATIC,145,90,133,9,
+ SS_CENTERIMAGE
+ LTEXT "Better fps limitation with some games",IDC_STATIC,145,
+ 105,129,9,SS_CENTERIMAGE
+ LTEXT "Maybe faster, needed for Pandemonium2",IDC_STATIC,145,
+ 120,139,9,SS_CENTERIMAGE
+ RTEXT "0x0001:",IDC_STATIC,1,30,28,9,SS_CENTERIMAGE
+ RTEXT "0x0002:",IDC_STATIC,1,45,28,9,SS_CENTERIMAGE
+ RTEXT "0x0004:",IDC_STATIC,1,60,28,9,SS_CENTERIMAGE
+ RTEXT "0x0008:",IDC_STATIC,1,75,28,9,SS_CENTERIMAGE
+ RTEXT "0x0010:",IDC_STATIC,1,90,28,9,SS_CENTERIMAGE
+ RTEXT "0x0020:",IDC_STATIC,1,105,28,9,SS_CENTERIMAGE
+ RTEXT "0x0040:",IDC_STATIC,1,120,28,9,SS_CENTERIMAGE
+ LTEXT "Skips only every second frame",IDC_STATIC,145,135,139,9,
+ SS_CENTERIMAGE
+ RTEXT "0x0080:",IDC_STATIC,1,135,28,9,SS_CENTERIMAGE
+ LTEXT "Needed by Dark Forces",IDC_STATIC,145,150,139,9,
+ SS_CENTERIMAGE
+ RTEXT "0x0100:",IDC_STATIC,1,150,28,9,SS_CENTERIMAGE
+ LTEXT "Slightly distorted textures can happen",IDC_STATIC,145,
+ 165,139,9,SS_CENTERIMAGE
+ RTEXT "0x0200:",IDC_STATIC,1,165,28,9,SS_CENTERIMAGE
+ CONTROL "Fake 'gpu busy' states",IDC_FIX11,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,34,180,100,10
+ LTEXT "Toggles busy flags after drawing",IDC_STATIC,145,180,
+ 139,9,SS_CENTERIMAGE
+ RTEXT "0x0400:",IDC_STATIC,1,180,28,9,SS_CENTERIMAGE
+END
+
+IDD_KEYS DIALOG DISCARDABLE 0, 0, 186, 220
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
+CAPTION "GPU key configuration"
+FONT 8, "MS Sans Serif"
+BEGIN
+ PUSHBUTTON "Default keys",IDC_DEFAULT,107,6,61,13
+ COMBOBOX IDC_KEY1,108,25,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY2,108,41,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY3,108,57,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY4,108,73,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY5,108,89,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY6,108,105,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY7,108,121,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY8,108,137,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY9,108,153,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY10,108,169,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ DEFPUSHBUTTON "OK",IDOK,20,197,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,115,197,50,14
+ RTEXT "Show/hide gpu menu:",IDC_STATIC,4,26,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Show/hide gpu infos:",IDC_STATIC,4,42,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Toggle selected option up:",IDC_STATIC,4,58,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Toggle selected option down:",IDC_STATIC,4,74,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Select previous option:",IDC_STATIC,4,90,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Select next option:",IDC_STATIC,4,106,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Start/stop recording:",IDC_STATIC,4,122,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Toggle wait VSYNC:",IDC_STATIC,4,138,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Fast forward frame skipping:",IDC_STATIC,4,154,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Debug mode: toggle vram view:",IDC_STATIC,4,170,100,9,
+ SS_CENTERIMAGE
+END
+
+IDD_RECORDING DIALOG DISCARDABLE 0, 0, 215, 158
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Recording Options"
+FONT 8, "MS Sans Serif"
+BEGIN
+ CONTROL "Standard Video Size",IDC_REC_MODE1,"Button",
+ BS_AUTORADIOBUTTON | WS_GROUP,25,36,80,12
+ COMBOBOX IDC_VIDEO_SIZE,115,37,65,60,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ CONTROL "Custom Video Size",IDC_REC_MODE2,"Button",
+ BS_AUTORADIOBUTTON,25,51,80,12
+ EDITTEXT IDC_REC_WIDTH,115,51,25,12,ES_AUTOHSCROLL
+ CTEXT "x",IDC_STATIC,141,51,12,12,SS_CENTERIMAGE
+ EDITTEXT IDC_REC_HEIGHT,155,51,25,12,ES_AUTOHSCROLL
+ RTEXT "Frame Rate Scale:",IDC_STATIC,45,69,60,12,
+ SS_CENTERIMAGE | NOT WS_GROUP
+ COMBOBOX IDC_FRAME_RATE,115,69,30,60,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ CONTROL "16 bit Compression:",IDC_COMPRESSION1,"Button",
+ BS_AUTORADIOBUTTON | WS_GROUP,21,86,165,12
+ CONTROL "24 bit Compression:",IDC_COMPRESSION2,"Button",
+ BS_AUTORADIOBUTTON,21,101,165,12
+ PUSHBUTTON "Configure",IDC_RECCFG,77,116,50,12
+ DEFPUSHBUTTON "OK",IDOK,24,137,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,133,137,50,14
+ LTEXT "You can start/stop the video recording using the 'recording' key (see key configuration)!\nThe video will be stored in the 'Demo' sub-directory.",
+ IDC_STATIC,5,3,203,27
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO DISCARDABLE
+BEGIN
+ IDD_CFGSOFT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 284
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 280
+ END
+
+ IDD_DEVICE, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 179
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 75
+ END
+
+ IDD_ABOUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 189
+ END
+
+ IDD_FIXES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 278
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 200
+ END
+
+ IDD_KEYS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 179
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 190
+ END
+
+ IDD_RECORDING, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 208
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 151
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+#ifdef _MSC_VER
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog Info
+//
+
+IDD_CFGSOFT DLGINIT
+BEGIN
+ IDC_RESOLUTION, 0x403, 1, 0
+"\000"
+ IDC_NOSTRETCH, 0x403, 10, 0
+0x3436, 0x2030, 0x2078, 0x3834, 0x0030,
+ IDC_NOSTRETCH, 0x403, 10, 0
+0x3038, 0x2030, 0x2078, 0x3036, 0x0030,
+ IDC_NOSTRETCH, 0x403, 11, 0
+0x3031, 0x3432, 0x7820, 0x3720, 0x3836, "\000"
+ IDC_NOSTRETCH, 0x403, 11, 0
+0x3131, 0x3235, 0x7820, 0x3820, 0x3436, "\000"
+ IDC_NOSTRETCH, 0x403, 12, 0
+0x3231, 0x3038, 0x7820, 0x3120, 0x3230, 0x0034,
+ IDC_NOSTRETCH, 0x403, 12, 0
+0x3631, 0x3030, 0x7820, 0x3120, 0x3032, 0x0030,
+ IDC_DITHER, 0x403, 10, 0
+0x3436, 0x2030, 0x2078, 0x3834, 0x0030,
+ IDC_DITHER, 0x403, 10, 0
+0x3038, 0x2030, 0x2078, 0x3036, 0x0030,
+ IDC_DITHER, 0x403, 11, 0
+0x3031, 0x3432, 0x7820, 0x3720, 0x3836, "\000"
+ IDC_DITHER, 0x403, 11, 0
+0x3131, 0x3235, 0x7820, 0x3820, 0x3436, "\000"
+ IDC_DITHER, 0x403, 12, 0
+0x3231, 0x3038, 0x7820, 0x3120, 0x3230, 0x0034,
+ IDC_DITHER, 0x403, 12, 0
+0x3631, 0x3030, 0x7820, 0x3120, 0x3032, 0x0030,
+ IDC_SCANLINES, 0x403, 10, 0
+0x3436, 0x2030, 0x2078, 0x3834, 0x0030,
+ IDC_SCANLINES, 0x403, 10, 0
+0x3038, 0x2030, 0x2078, 0x3036, 0x0030,
+ IDC_SCANLINES, 0x403, 11, 0
+0x3031, 0x3432, 0x7820, 0x3720, 0x3836, "\000"
+ IDC_SCANLINES, 0x403, 11, 0
+0x3131, 0x3235, 0x7820, 0x3820, 0x3436, "\000"
+ IDC_SCANLINES, 0x403, 12, 0
+0x3231, 0x3038, 0x7820, 0x3120, 0x3230, 0x0034,
+ IDC_SCANLINES, 0x403, 12, 0
+0x3631, 0x3030, 0x7820, 0x3120, 0x3032, 0x0030,
+ 0
+END
+
+IDD_DEVICE DLGINIT
+BEGIN
+ IDC_DEVICE, 0x403, 11, 0
+0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
+ IDC_DEVICE, 0x403, 12, 0
+0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
+ IDC_DEVICE, 0x403, 12, 0
+0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
+ IDC_DEVICE, 0x403, 12, 0
+0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
+ 0
+END
+
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_INFO0 "FL - Frame limitation:\n[Off] - Speed as fast as possible\n[On-1] - Limits speed to manual value\n[On-2] - Limits speed to auto-detected value."
+ IDS_INFO1 "FS - Frame skipping:\n[Off] - No frames get skipped\n[On] - Tries to speed up the game by skipping frames. Can cause glitches!"
+ IDS_INFO2 "GF - Special game fixes:\n[Off] - Turn off all fixes\n[On] - Turn on all activated fixes. You have to select the fixes you want to use in the gpu config."
+END
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#define _AFX_NO_SPLITTER_RESOURCES
+#define _AFX_NO_OLE_RESOURCES
+#define _AFX_NO_TRACKER_RESOURCES
+#define _AFX_NO_PROPERTY_RESOURCES
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE 9, 1
+#pragma code_page(1252)
+#endif
+#endif
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/win32/plugins/dfxvideo/DFXVideo.vcproj b/win32/plugins/dfxvideo/DFXVideo.vcproj
index 1f9182ab..d0c56eab 100644..100755
--- a/win32/plugins/dfxvideo/DFXVideo.vcproj
+++ b/win32/plugins/dfxvideo/DFXVideo.vcproj
@@ -1,594 +1,594 @@
-<?xml version="1.0" encoding="gb2312"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="DFXVideo"
- ProjectGUID="{30F06328-DD64-4030-AF7A-19FBC74CF298}"
- RootNamespace="DFXVideo"
- TargetFrameworkVersion="0"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Release|Win32"
- OutputDirectory=".\Release"
- IntermediateDirectory=".\Release"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Release/DFXVideo.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="1"
- AdditionalIncludeDirectories=".\,.\winsrc,..\..,..\..\glue,..\..\..\plugins\dfxvideo,..\..\..\libpcsxcore"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;__i386__"
- StringPooling="true"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- PrecompiledHeaderFile=".\Release/DFXVideo.pch"
- AssemblerListingLocation=".\Release/"
- ObjectFile=".\Release/"
- ProgramDataBaseFileName=".\Release/"
- BrowseInformation="1"
- WarningLevel="3"
- SuppressStartupBanner="true"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1031"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="winmm.lib vfw32.lib"
- OutputFile=".\Release/DFXVideo.dll"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- ModuleDefinitionFile=".\DFXVideo.def"
- ProgramDatabaseFile=".\Release/DFXVideo.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary=".\Release/DFXVideo.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- SuppressStartupBanner="true"
- OutputFile=".\Release/DFXVideo.bsc"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="rem copy release\DFXVideo.dll d:\emus\epsxe\plugins&#x0D;&#x0A;rem copy release\DFXVideo.dll d:\emus\zinc\renderer.znc&#x0D;&#x0A;"
- />
- </Configuration>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory=".\Debug"
- IntermediateDirectory=".\Debug"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Debug/DFXVideo.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=".\,.\winsrc,..\..\glue,..\..\..\plugins\dfxvideo,..\..\..\libpcsxcore"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- PrecompiledHeaderFile=".\Debug/DFXVideo.pch"
- AssemblerListingLocation=".\Debug/"
- ObjectFile=".\Debug/"
- ProgramDataBaseFileName=".\Debug/"
- WarningLevel="3"
- SuppressStartupBanner="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1031"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="winmm.lib vfw32.lib"
- OutputFile=".\Debug/DFXVideo.dll"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- ModuleDefinitionFile=".\DFXVideo.def"
- GenerateDebugInformation="true"
- ProgramDatabaseFile=".\Debug/DFXVideo.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary=".\Debug/DFXVideo.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- SuppressStartupBanner="true"
- OutputFile=".\Debug/DFXVideo.bsc"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="winsrc"
- >
- <File
- RelativePath="winsrc\cfg.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\draw.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\fps.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\key.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\record.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\record.h"
- >
- </File>
- <File
- RelativePath="winsrc\winmain.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <Filter
- Name="directx"
- >
- <File
- RelativePath="winsrc\d3d.h"
- >
- </File>
- <File
- RelativePath="winsrc\d3dcaps.h"
- >
- </File>
- <File
- RelativePath="winsrc\d3dtypes.h"
- >
- </File>
- <File
- RelativePath="winsrc\ddraw.h"
- >
- </File>
- <File
- RelativePath="winsrc\dxguid.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="dfxvideo"
- >
- <File
- RelativePath="..\..\..\plugins\dfxvideo\cfg.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\draw.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\externals.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\fps.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\gpu.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\gpu.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\hq2x.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\hq3x.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\interp.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\key.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\menu.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\menu.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\prim.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\prim.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\soft.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\soft.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\swap.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\dfxvideo\zn.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- </Filter>
- <File
- RelativePath="DFXVideo.def"
- >
- </File>
- <File
- RelativePath="DFXVideo.rc"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="resource.h"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="gb2312"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="DFXVideo"
+ ProjectGUID="{30F06328-DD64-4030-AF7A-19FBC74CF298}"
+ RootNamespace="DFXVideo"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/DFXVideo.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories=".\,.\winsrc,..\..,..\..\glue,..\..\..\plugins\dfxvideo,..\..\..\libpcsxcore"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;__i386__"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\Release/DFXVideo.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1031"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="winmm.lib vfw32.lib"
+ OutputFile=".\Release/DFXVideo.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ModuleDefinitionFile=".\DFXVideo.def"
+ ProgramDatabaseFile=".\Release/DFXVideo.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary=".\Release/DFXVideo.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Release/DFXVideo.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="rem copy release\DFXVideo.dll d:\emus\epsxe\plugins&#x0D;&#x0A;rem copy release\DFXVideo.dll d:\emus\zinc\renderer.znc&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/DFXVideo.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=".\,.\winsrc,..\..\glue,..\..\..\plugins\dfxvideo,..\..\..\libpcsxcore"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile=".\Debug/DFXVideo.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1031"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="winmm.lib vfw32.lib"
+ OutputFile=".\Debug/DFXVideo.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ModuleDefinitionFile=".\DFXVideo.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\Debug/DFXVideo.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary=".\Debug/DFXVideo.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Debug/DFXVideo.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="winsrc"
+ >
+ <File
+ RelativePath="winsrc\cfg.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\draw.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\fps.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\key.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\record.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\record.h"
+ >
+ </File>
+ <File
+ RelativePath="winsrc\winmain.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <Filter
+ Name="directx"
+ >
+ <File
+ RelativePath="winsrc\d3d.h"
+ >
+ </File>
+ <File
+ RelativePath="winsrc\d3dcaps.h"
+ >
+ </File>
+ <File
+ RelativePath="winsrc\d3dtypes.h"
+ >
+ </File>
+ <File
+ RelativePath="winsrc\ddraw.h"
+ >
+ </File>
+ <File
+ RelativePath="winsrc\dxguid.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="dfxvideo"
+ >
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\cfg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\draw.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\externals.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\fps.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\gpu.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\gpu.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\hq2x.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\hq3x.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\interp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\key.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\menu.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\menu.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\prim.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\prim.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\soft.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\soft.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\swap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\dfxvideo\zn.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <File
+ RelativePath="DFXVideo.def"
+ >
+ </File>
+ <File
+ RelativePath="DFXVideo.rc"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="resource.h"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/win32/plugins/dfxvideo/resource.h b/win32/plugins/dfxvideo/resource.h
index aa7462c2..25dc0280 100644..100755
--- a/win32/plugins/dfxvideo/resource.h
+++ b/win32/plugins/dfxvideo/resource.h
@@ -1,143 +1,143 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Developer Studio generated include file.
-// Used by DFXVideo.rc
-//
-#define IDS_INFO0 1
-#define IDS_INFO1 2
-#define IDS_INFO2 3
-#define IDC_DEFAULT 3
-#define IDC_DEF1 127
-#define IDC_DEF2 128
-#define IDD_DEVICE 133
-#define IDD_ABOUT 135
-#define IDD_FIXES 136
-#define IDB_GPU 137
-#define IDD_KEYS 138
-#define IDD_RECORDING 139
-#define IDC_CURSOR1 142
-#define IDD_CFGDLG 500
-#define IDD_CFGSOFT 501
-#define IDC_KEY1 1030
-#define IDC_KEY2 1031
-#define IDC_KEY3 1032
-#define IDC_KEY4 1033
-#define IDC_KEY5 1034
-#define IDC_KEY6 1035
-#define IDC_KEY7 1036
-#define IDC_KEY8 1037
-#define IDC_KEY9 1038
-#define IDC_KEY10 1039
-#define IDC_CLIPBOARD 1040
-#define IDC_CLPEDIT 1041
-#define IDC_TEXWINDOWS 2001
-#define IDC_TEXFIX 2002
-#define IDC_TEXLINEAR 2003
-#define IDC_RESOLUTION 2004
-#define IDC_DRAWDITHER 2005
-#define IDC_SCANLINES 2005
-#define IDC_CACHESIZE 2006
-#define IDC_COLDEPTH 2006
-#define IDC_CACHETXT 2007
-#define IDC_NOSTRETCH 2007
-#define IDC_USELINES 2008
-#define IDC_USEMASK 2008
-#define IDC_DITHER 2008
-#define IDC_COLORDEPTH 2009
-#define IDC_CHANGEDESK 2010
-#define IDC_GAMEFIX 2010
-#define IDC_USELIMIT 2011
-#define IDC_FRAMELIMIT 2012
-#define IDC_USESKIPPING 2012
-#define IDC_FRAMEAUTO 2013
-#define IDC_FRAMEMANUELL 2014
-#define IDC_ADVBLEND 2015
-#define IDC_DELAYEDFB 2015
-#define IDC_SHOWFPS 2015
-#define IDC_OFFSCREEN 2016
-#define IDC_SYSMEMORY 2016
-#define IDC_OPAQUE 2017
-#define IDC_STOPSAVER 2017
-#define IDC_TEXQUALITY 2018
-#define IDC_QUALTXT 2019
-#define IDC_USESKIP 2020
-#define IDC_QUALTXT2 2020
-#define IDC_DEVICE 2020
-#define IDC_DISPMODE1 2021
-#define IDC_DISPMODE2 2022
-#define IDC_SUBCACHE 2023
-#define IDC_WINDOWFREE 2024
-#define IDC_EXTCOLCHECK 2024
-#define IDC_TEXUSE 2024
-#define IDC_WINDOWAUTO 2025
-#define IDC_USETEXPRIO 2025
-#define IDC_WINX 2026
-#define IDC_WINY 2027
-#define IDC_SELDEV 2028
-#define IDC_DEVICETXT 2029
-#define IDC_DB1 2030
-#define IDC_FILTERTYPE 2030
-#define IDC_DB2 2031
-#define IDC_QUALTXT3 2031
-#define IDC_DB3 2032
-#define IDC_EXTCOL 2033
-#define IDC_FRAMELIM 2034
-#define IDC_SELFIX 2037
-#define IDC_USEGAMMA 2037
-#define IDC_FIX1 2038
-#define IDC_KEYCONFIG 2038
-#define IDC_FIX2 2039
-#define IDC_RECORDING 2039
-#define IDC_FIX3 2040
-#define IDC_FIX4 2041
-#define IDC_FIX5 2042
-#define IDC_FIX6 2043
-#define IDC_FIX7 2044
-#define IDC_FIX8 2045
-#define IDC_FIX9 2046
-#define IDC_FIX10 2047
-#define IDC_FIX11 2048
-#define IDC_FIX12 2049
-#define IDC_FIX13 2050
-#define IDC_FIX14 2051
-#define IDC_FIX15 2052
-#define IDC_FIX16 2053
-#define IDC_FIX17 2054
-#define IDC_FIX18 2055
-#define IDC_FIX19 2056
-#define IDC_FIX20 2057
-#define IDC_FIX21 2058
-#define IDC_FIX22 2059
-#define IDC_FIX23 2060
-#define IDC_FIX24 2061
-#define IDC_FIX25 2062
-#define IDC_FIX26 2063
-#define IDC_FIX27 2064
-#define IDC_FIX28 2065
-#define IDC_FIX29 2066
-#define IDC_FIX30 2067
-#define IDC_FIX31 2068
-#define IDC_FIX32 2069
-#define IDC_GAMMA 2070
-#define IDC_REC_MODE1 2071
-#define IDC_REC_MODE2 2072
-#define IDC_VIDEO_SIZE 2073
-#define IDC_REC_WIDTH 2074
-#define IDC_REC_HEIGHT 2075
-#define IDC_FRAME_RATE 2076
-#define IDC_COMPRESSION1 2077
-#define IDC_COMPRESSION2 2078
-#define IDC_RECCFG 2079
-#define IDC_VSYNC 2080
-#define IDC_TRANSPARENT 2081
-#define IDC_DEBUGMODE 2082
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 143
-#define _APS_NEXT_COMMAND_VALUE 32771
-#define _APS_NEXT_CONTROL_VALUE 2083
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by DFXVideo.rc
+//
+#define IDS_INFO0 1
+#define IDS_INFO1 2
+#define IDS_INFO2 3
+#define IDC_DEFAULT 3
+#define IDC_DEF1 127
+#define IDC_DEF2 128
+#define IDD_DEVICE 133
+#define IDD_ABOUT 135
+#define IDD_FIXES 136
+#define IDB_GPU 137
+#define IDD_KEYS 138
+#define IDD_RECORDING 139
+#define IDC_CURSOR1 142
+#define IDD_CFGDLG 500
+#define IDD_CFGSOFT 501
+#define IDC_KEY1 1030
+#define IDC_KEY2 1031
+#define IDC_KEY3 1032
+#define IDC_KEY4 1033
+#define IDC_KEY5 1034
+#define IDC_KEY6 1035
+#define IDC_KEY7 1036
+#define IDC_KEY8 1037
+#define IDC_KEY9 1038
+#define IDC_KEY10 1039
+#define IDC_CLIPBOARD 1040
+#define IDC_CLPEDIT 1041
+#define IDC_TEXWINDOWS 2001
+#define IDC_TEXFIX 2002
+#define IDC_TEXLINEAR 2003
+#define IDC_RESOLUTION 2004
+#define IDC_DRAWDITHER 2005
+#define IDC_SCANLINES 2005
+#define IDC_CACHESIZE 2006
+#define IDC_COLDEPTH 2006
+#define IDC_CACHETXT 2007
+#define IDC_NOSTRETCH 2007
+#define IDC_USELINES 2008
+#define IDC_USEMASK 2008
+#define IDC_DITHER 2008
+#define IDC_COLORDEPTH 2009
+#define IDC_CHANGEDESK 2010
+#define IDC_GAMEFIX 2010
+#define IDC_USELIMIT 2011
+#define IDC_FRAMELIMIT 2012
+#define IDC_USESKIPPING 2012
+#define IDC_FRAMEAUTO 2013
+#define IDC_FRAMEMANUELL 2014
+#define IDC_ADVBLEND 2015
+#define IDC_DELAYEDFB 2015
+#define IDC_SHOWFPS 2015
+#define IDC_OFFSCREEN 2016
+#define IDC_SYSMEMORY 2016
+#define IDC_OPAQUE 2017
+#define IDC_STOPSAVER 2017
+#define IDC_TEXQUALITY 2018
+#define IDC_QUALTXT 2019
+#define IDC_USESKIP 2020
+#define IDC_QUALTXT2 2020
+#define IDC_DEVICE 2020
+#define IDC_DISPMODE1 2021
+#define IDC_DISPMODE2 2022
+#define IDC_SUBCACHE 2023
+#define IDC_WINDOWFREE 2024
+#define IDC_EXTCOLCHECK 2024
+#define IDC_TEXUSE 2024
+#define IDC_WINDOWAUTO 2025
+#define IDC_USETEXPRIO 2025
+#define IDC_WINX 2026
+#define IDC_WINY 2027
+#define IDC_SELDEV 2028
+#define IDC_DEVICETXT 2029
+#define IDC_DB1 2030
+#define IDC_FILTERTYPE 2030
+#define IDC_DB2 2031
+#define IDC_QUALTXT3 2031
+#define IDC_DB3 2032
+#define IDC_EXTCOL 2033
+#define IDC_FRAMELIM 2034
+#define IDC_SELFIX 2037
+#define IDC_USEGAMMA 2037
+#define IDC_FIX1 2038
+#define IDC_KEYCONFIG 2038
+#define IDC_FIX2 2039
+#define IDC_RECORDING 2039
+#define IDC_FIX3 2040
+#define IDC_FIX4 2041
+#define IDC_FIX5 2042
+#define IDC_FIX6 2043
+#define IDC_FIX7 2044
+#define IDC_FIX8 2045
+#define IDC_FIX9 2046
+#define IDC_FIX10 2047
+#define IDC_FIX11 2048
+#define IDC_FIX12 2049
+#define IDC_FIX13 2050
+#define IDC_FIX14 2051
+#define IDC_FIX15 2052
+#define IDC_FIX16 2053
+#define IDC_FIX17 2054
+#define IDC_FIX18 2055
+#define IDC_FIX19 2056
+#define IDC_FIX20 2057
+#define IDC_FIX21 2058
+#define IDC_FIX22 2059
+#define IDC_FIX23 2060
+#define IDC_FIX24 2061
+#define IDC_FIX25 2062
+#define IDC_FIX26 2063
+#define IDC_FIX27 2064
+#define IDC_FIX28 2065
+#define IDC_FIX29 2066
+#define IDC_FIX30 2067
+#define IDC_FIX31 2068
+#define IDC_FIX32 2069
+#define IDC_GAMMA 2070
+#define IDC_REC_MODE1 2071
+#define IDC_REC_MODE2 2072
+#define IDC_VIDEO_SIZE 2073
+#define IDC_REC_WIDTH 2074
+#define IDC_REC_HEIGHT 2075
+#define IDC_FRAME_RATE 2076
+#define IDC_COMPRESSION1 2077
+#define IDC_COMPRESSION2 2078
+#define IDC_RECCFG 2079
+#define IDC_VSYNC 2080
+#define IDC_TRANSPARENT 2081
+#define IDC_DEBUGMODE 2082
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 143
+#define _APS_NEXT_COMMAND_VALUE 32771
+#define _APS_NEXT_CONTROL_VALUE 2083
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/win32/plugins/dfxvideo/winsrc/cfg.c b/win32/plugins/dfxvideo/winsrc/cfg.c
index e2b14a01..e1e4e142 100644..100755
--- a/win32/plugins/dfxvideo/winsrc/cfg.c
+++ b/win32/plugins/dfxvideo/winsrc/cfg.c
@@ -21,8 +21,8 @@
#include "externals.h"
#include "cfg.h"
#include "gpu.h"
-#include "record.h"
-
+#include "record.h"
+
/////////////////////////////////////////////////////////////////////////////
// globals
@@ -936,9 +936,9 @@ static BOOL WINAPI DirectDrawEnumCallbackEx( GUID FAR* pGUID, LPSTR strDesc,
LPDIRECTDRAW pDD;
LPDIRECTDRAW4 g_pDD;
LPDIRECT3D3 pD3D;
- HRESULT (WINAPI *pDDrawCreateFn)(GUID *,LPDIRECTDRAW *,IUnknown *);
-
- pDDrawCreateFn = (LPVOID)GetProcAddress( hDDrawDLL, "DirectDrawCreate" );
+ HRESULT (WINAPI *pDDrawCreateFn)(GUID *,LPDIRECTDRAW *,IUnknown *);
+
+ pDDrawCreateFn = (LPVOID)GetProcAddress( hDDrawDLL, "DirectDrawCreate" );
if( pDDrawCreateFn == NULL || FAILED( pDDrawCreateFn( pGUID, &pDD, 0L ) ) )
{
@@ -1134,16 +1134,16 @@ BOOL bTestModes(void)
{
LPDIRECTDRAW pDD;
LPDIRECTDRAW4 g_pDD;
- HRESULT (WINAPI *pDDrawCreateFn)(GUID *,LPDIRECTDRAW *,IUnknown *);
-
+ HRESULT (WINAPI *pDDrawCreateFn)(GUID *,LPDIRECTDRAW *,IUnknown *);
+
GUID FAR * guid=0;
int i;unsigned char * c=(unsigned char *)&guiDev;
for(i=0;i<sizeof(GUID);i++,c++)
{if(*c) {guid=&guiDev;break;}}
bDeviceOK=FALSE;
-
- pDDrawCreateFn = (LPVOID)GetProcAddress(hDDrawDLL, "DirectDrawCreate");
+
+ pDDrawCreateFn = (LPVOID)GetProcAddress(hDDrawDLL, "DirectDrawCreate");
if( pDDrawCreateFn == NULL || FAILED( pDDrawCreateFn(guid, &pDD, 0L ) ) )
{
diff --git a/win32/plugins/dfxvideo/winsrc/d3d.h b/win32/plugins/dfxvideo/winsrc/d3d.h
index 31d61cbb..31d61cbb 100644..100755
--- a/win32/plugins/dfxvideo/winsrc/d3d.h
+++ b/win32/plugins/dfxvideo/winsrc/d3d.h
diff --git a/win32/plugins/dfxvideo/winsrc/d3dcaps.h b/win32/plugins/dfxvideo/winsrc/d3dcaps.h
index d631a675..d631a675 100644..100755
--- a/win32/plugins/dfxvideo/winsrc/d3dcaps.h
+++ b/win32/plugins/dfxvideo/winsrc/d3dcaps.h
diff --git a/win32/plugins/dfxvideo/winsrc/d3dtypes.h b/win32/plugins/dfxvideo/winsrc/d3dtypes.h
index 223a0755..223a0755 100644..100755
--- a/win32/plugins/dfxvideo/winsrc/d3dtypes.h
+++ b/win32/plugins/dfxvideo/winsrc/d3dtypes.h
diff --git a/win32/plugins/dfxvideo/winsrc/ddraw.h b/win32/plugins/dfxvideo/winsrc/ddraw.h
index 1288e8bd..1288e8bd 100644..100755
--- a/win32/plugins/dfxvideo/winsrc/ddraw.h
+++ b/win32/plugins/dfxvideo/winsrc/ddraw.h
diff --git a/win32/plugins/dfxvideo/winsrc/draw.c b/win32/plugins/dfxvideo/winsrc/draw.c
index 94095d38..1e82fba8 100644..100755
--- a/win32/plugins/dfxvideo/winsrc/draw.c
+++ b/win32/plugins/dfxvideo/winsrc/draw.c
@@ -3489,13 +3489,13 @@ void DoBufferSwap(void) // SWAP BUFFERS
ViewportRect.right = PreviousPSXDisplay.DisplayMode.x;
ViewportRect.bottom = PreviousPSXDisplay.DisplayMode.y;
- if(iRumbleTime)
- {
- ScreenRect.left+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
- ScreenRect.right+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
- ScreenRect.top+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
- ScreenRect.bottom+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
- iRumbleTime--;
+ if(iRumbleTime)
+ {
+ ScreenRect.left+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
+ ScreenRect.right+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
+ ScreenRect.top+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
+ ScreenRect.bottom+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
+ iRumbleTime--;
}
}
@@ -3528,16 +3528,16 @@ void DoBufferSwap(void) // SWAP BUFFERS
ViewportRect.right=1024;
ViewportRect.bottom=iGPUHeight;
}
- else
- {
- if(iRumbleTime)
- {
- ScreenRect.left+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
- ScreenRect.right+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
- ScreenRect.top+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
- ScreenRect.bottom+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
- iRumbleTime--;
- }
+ else
+ {
+ if(iRumbleTime)
+ {
+ ScreenRect.left+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
+ ScreenRect.right+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
+ ScreenRect.top+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
+ ScreenRect.bottom+=((rand()*iRumbleVal)/RAND_MAX)-(iRumbleVal/2);
+ iRumbleTime--;
+ }
}
if(iUseScanLines==2) // stupid nvidia scanline mode
@@ -3676,7 +3676,7 @@ int DXinitialize()
DDSCAPS ddscaps;
DDBLTFX ddbltfx;
DDPIXELFORMAT dd;
- HRESULT (WINAPI *pDDrawCreateFn)(GUID *,LPDIRECTDRAW *,IUnknown *);
+ HRESULT (WINAPI *pDDrawCreateFn)(GUID *,LPDIRECTDRAW *,IUnknown *);
// init some DX vars
DX.hWnd = (HWND)hWGPU;
@@ -3686,9 +3686,9 @@ int DXinitialize()
// make guid !
c=(unsigned char *)&guiDev;
for(i=0;i<sizeof(GUID);i++,c++)
- {if(*c) {guid=&guiDev;break;}}
+ {if(*c) {guid=&guiDev;break;}}
- pDDrawCreateFn = (LPVOID)GetProcAddress( hDDrawDLL, "DirectDrawCreate" );
+ pDDrawCreateFn = (LPVOID)GetProcAddress( hDDrawDLL, "DirectDrawCreate" );
// create dd
if(pDDrawCreateFn == NULL || pDDrawCreateFn(guid,&DD,0))
@@ -4377,54 +4377,54 @@ static void hq2x_16_def(unsigned short* dst0, unsigned short* dst1, const unsign
if (interp_16_diff(c[8], c[4]))
mask |= 1 << 7;
-#define P0 dst0[0]
-#define P1 dst0[1]
-#define P2 dst1[0]
-#define P3 dst1[1]
-#define MUR interp_16_diff(c[1], c[5])
-#define MDR interp_16_diff(c[5], c[7])
-#define MDL interp_16_diff(c[7], c[3])
-#define MUL interp_16_diff(c[3], c[1])
-#define IC(p0) c[p0]
-#define I11(p0,p1) interp_16_11(c[p0], c[p1])
-#define I211(p0,p1,p2) interp_16_211(c[p0], c[p1], c[p2])
-#define I31(p0,p1) interp_16_31(c[p0], c[p1])
-#define I332(p0,p1,p2) interp_16_332(c[p0], c[p1], c[p2])
-#define I431(p0,p1,p2) interp_16_431(c[p0], c[p1], c[p2])
-#define I521(p0,p1,p2) interp_16_521(c[p0], c[p1], c[p2])
-#define I53(p0,p1) interp_16_53(c[p0], c[p1])
-#define I611(p0,p1,p2) interp_16_611(c[p0], c[p1], c[p2])
-#define I71(p0,p1) interp_16_71(c[p0], c[p1])
-#define I772(p0,p1,p2) interp_16_772(c[p0], c[p1], c[p2])
-#define I97(p0,p1) interp_16_97(c[p0], c[p1])
-#define I1411(p0,p1,p2) interp_16_1411(c[p0], c[p1], c[p2])
-#define I151(p0,p1) interp_16_151(c[p0], c[p1])
-
- switch (mask) {
-#include "hq2x.h"
- }
-
-#undef P0
-#undef P1
-#undef P2
-#undef P3
-#undef MUR
-#undef MDR
-#undef MDL
-#undef MUL
-#undef IC
-#undef I11
-#undef I211
-#undef I31
-#undef I332
-#undef I431
-#undef I521
-#undef I53
-#undef I611
-#undef I71
-#undef I772
-#undef I97
-#undef I1411
+#define P0 dst0[0]
+#define P1 dst0[1]
+#define P2 dst1[0]
+#define P3 dst1[1]
+#define MUR interp_16_diff(c[1], c[5])
+#define MDR interp_16_diff(c[5], c[7])
+#define MDL interp_16_diff(c[7], c[3])
+#define MUL interp_16_diff(c[3], c[1])
+#define IC(p0) c[p0]
+#define I11(p0,p1) interp_16_11(c[p0], c[p1])
+#define I211(p0,p1,p2) interp_16_211(c[p0], c[p1], c[p2])
+#define I31(p0,p1) interp_16_31(c[p0], c[p1])
+#define I332(p0,p1,p2) interp_16_332(c[p0], c[p1], c[p2])
+#define I431(p0,p1,p2) interp_16_431(c[p0], c[p1], c[p2])
+#define I521(p0,p1,p2) interp_16_521(c[p0], c[p1], c[p2])
+#define I53(p0,p1) interp_16_53(c[p0], c[p1])
+#define I611(p0,p1,p2) interp_16_611(c[p0], c[p1], c[p2])
+#define I71(p0,p1) interp_16_71(c[p0], c[p1])
+#define I772(p0,p1,p2) interp_16_772(c[p0], c[p1], c[p2])
+#define I97(p0,p1) interp_16_97(c[p0], c[p1])
+#define I1411(p0,p1,p2) interp_16_1411(c[p0], c[p1], c[p2])
+#define I151(p0,p1) interp_16_151(c[p0], c[p1])
+
+ switch (mask) {
+#include "hq2x.h"
+ }
+
+#undef P0
+#undef P1
+#undef P2
+#undef P3
+#undef MUR
+#undef MDR
+#undef MDL
+#undef MUL
+#undef IC
+#undef I11
+#undef I211
+#undef I31
+#undef I332
+#undef I431
+#undef I521
+#undef I53
+#undef I611
+#undef I71
+#undef I772
+#undef I97
+#undef I1411
#undef I151
src0 += 1;
@@ -4519,55 +4519,55 @@ static void hq2x_32_def(unsigned long * dst0, unsigned long * dst1, const unsign
if (interp_32_diff(c[8], c[4]))
mask |= 1 << 7;
-#define P0 dst0[0]
-#define P1 dst0[1]
-#define P2 dst1[0]
-#define P3 dst1[1]
-#define MUR interp_32_diff(c[1], c[5])
-#define MDR interp_32_diff(c[5], c[7])
-#define MDL interp_32_diff(c[7], c[3])
-#define MUL interp_32_diff(c[3], c[1])
-#define IC(p0) c[p0]
-#define I11(p0,p1) interp_32_11(c[p0], c[p1])
-#define I211(p0,p1,p2) interp_32_211(c[p0], c[p1], c[p2])
-#define I31(p0,p1) interp_32_31(c[p0], c[p1])
-#define I332(p0,p1,p2) interp_32_332(c[p0], c[p1], c[p2])
-#define I431(p0,p1,p2) interp_32_431(c[p0], c[p1], c[p2])
-#define I521(p0,p1,p2) interp_32_521(c[p0], c[p1], c[p2])
-#define I53(p0,p1) interp_32_53(c[p0], c[p1])
-#define I611(p0,p1,p2) interp_32_611(c[p0], c[p1], c[p2])
-#define I71(p0,p1) interp_32_71(c[p0], c[p1])
-#define I772(p0,p1,p2) interp_32_772(c[p0], c[p1], c[p2])
-#define I97(p0,p1) interp_32_97(c[p0], c[p1])
-#define I1411(p0,p1,p2) interp_32_1411(c[p0], c[p1], c[p2])
-#define I151(p0,p1) interp_32_151(c[p0], c[p1])
-
- switch (mask) {
-#include "hq2x.h"
- }
-
-#undef P0
-#undef P1
-#undef P2
-#undef P3
-#undef MUR
-#undef MDR
-#undef MDL
-#undef MUL
-#undef IC
-#undef I11
-#undef I211
-#undef I31
-#undef I332
-#undef I431
-#undef I521
-#undef I53
-#undef I611
-#undef I71
-#undef I772
-#undef I97
-#undef I1411
-#undef I151
+#define P0 dst0[0]
+#define P1 dst0[1]
+#define P2 dst1[0]
+#define P3 dst1[1]
+#define MUR interp_32_diff(c[1], c[5])
+#define MDR interp_32_diff(c[5], c[7])
+#define MDL interp_32_diff(c[7], c[3])
+#define MUL interp_32_diff(c[3], c[1])
+#define IC(p0) c[p0]
+#define I11(p0,p1) interp_32_11(c[p0], c[p1])
+#define I211(p0,p1,p2) interp_32_211(c[p0], c[p1], c[p2])
+#define I31(p0,p1) interp_32_31(c[p0], c[p1])
+#define I332(p0,p1,p2) interp_32_332(c[p0], c[p1], c[p2])
+#define I431(p0,p1,p2) interp_32_431(c[p0], c[p1], c[p2])
+#define I521(p0,p1,p2) interp_32_521(c[p0], c[p1], c[p2])
+#define I53(p0,p1) interp_32_53(c[p0], c[p1])
+#define I611(p0,p1,p2) interp_32_611(c[p0], c[p1], c[p2])
+#define I71(p0,p1) interp_32_71(c[p0], c[p1])
+#define I772(p0,p1,p2) interp_32_772(c[p0], c[p1], c[p2])
+#define I97(p0,p1) interp_32_97(c[p0], c[p1])
+#define I1411(p0,p1,p2) interp_32_1411(c[p0], c[p1], c[p2])
+#define I151(p0,p1) interp_32_151(c[p0], c[p1])
+
+ switch (mask) {
+#include "hq2x.h"
+ }
+
+#undef P0
+#undef P1
+#undef P2
+#undef P3
+#undef MUR
+#undef MDR
+#undef MDL
+#undef MUL
+#undef IC
+#undef I11
+#undef I211
+#undef I31
+#undef I332
+#undef I431
+#undef I521
+#undef I53
+#undef I611
+#undef I71
+#undef I772
+#undef I97
+#undef I1411
+#undef I151
src0 += 1;
src1 += 1;
@@ -4823,65 +4823,65 @@ static void hq3x_16_def(unsigned short* dst0, unsigned short* dst1, unsigned sho
if (interp_16_diff(c[8], c[4]))
mask |= 1 << 7;
-#define P0 dst0[0]
-#define P1 dst0[1]
-#define P2 dst0[2]
-#define P3 dst1[0]
-#define P4 dst1[1]
-#define P5 dst1[2]
-#define P6 dst2[0]
-#define P7 dst2[1]
-#define P8 dst2[2]
-#define MUR interp_16_diff(c[1], c[5])
-#define MDR interp_16_diff(c[5], c[7])
-#define MDL interp_16_diff(c[7], c[3])
-#define MUL interp_16_diff(c[3], c[1])
-#define IC(p0) c[p0]
-#define I11(p0,p1) interp_16_11(c[p0], c[p1])
-#define I211(p0,p1,p2) interp_16_211(c[p0], c[p1], c[p2])
-#define I31(p0,p1) interp_16_31(c[p0], c[p1])
-#define I332(p0,p1,p2) interp_16_332(c[p0], c[p1], c[p2])
-#define I431(p0,p1,p2) interp_16_431(c[p0], c[p1], c[p2])
-#define I521(p0,p1,p2) interp_16_521(c[p0], c[p1], c[p2])
-#define I53(p0,p1) interp_16_53(c[p0], c[p1])
-#define I611(p0,p1,p2) interp_16_611(c[p0], c[p1], c[p2])
-#define I71(p0,p1) interp_16_71(c[p0], c[p1])
-#define I772(p0,p1,p2) interp_16_772(c[p0], c[p1], c[p2])
-#define I97(p0,p1) interp_16_97(c[p0], c[p1])
-#define I1411(p0,p1,p2) interp_16_1411(c[p0], c[p1], c[p2])
-#define I151(p0,p1) interp_16_151(c[p0], c[p1])
-
- switch (mask) {
-#include "hq3x.h"
- }
-
-#undef P0
-#undef P1
-#undef P2
-#undef P3
-#undef P4
-#undef P5
-#undef P6
-#undef P7
-#undef P8
-#undef MUR
-#undef MDR
-#undef MDL
-#undef MUL
-#undef IC
-#undef I11
-#undef I211
-#undef I31
-#undef I332
-#undef I431
-#undef I521
-#undef I53
-#undef I611
-#undef I71
-#undef I772
-#undef I97
-#undef I1411
-#undef I151
+#define P0 dst0[0]
+#define P1 dst0[1]
+#define P2 dst0[2]
+#define P3 dst1[0]
+#define P4 dst1[1]
+#define P5 dst1[2]
+#define P6 dst2[0]
+#define P7 dst2[1]
+#define P8 dst2[2]
+#define MUR interp_16_diff(c[1], c[5])
+#define MDR interp_16_diff(c[5], c[7])
+#define MDL interp_16_diff(c[7], c[3])
+#define MUL interp_16_diff(c[3], c[1])
+#define IC(p0) c[p0]
+#define I11(p0,p1) interp_16_11(c[p0], c[p1])
+#define I211(p0,p1,p2) interp_16_211(c[p0], c[p1], c[p2])
+#define I31(p0,p1) interp_16_31(c[p0], c[p1])
+#define I332(p0,p1,p2) interp_16_332(c[p0], c[p1], c[p2])
+#define I431(p0,p1,p2) interp_16_431(c[p0], c[p1], c[p2])
+#define I521(p0,p1,p2) interp_16_521(c[p0], c[p1], c[p2])
+#define I53(p0,p1) interp_16_53(c[p0], c[p1])
+#define I611(p0,p1,p2) interp_16_611(c[p0], c[p1], c[p2])
+#define I71(p0,p1) interp_16_71(c[p0], c[p1])
+#define I772(p0,p1,p2) interp_16_772(c[p0], c[p1], c[p2])
+#define I97(p0,p1) interp_16_97(c[p0], c[p1])
+#define I1411(p0,p1,p2) interp_16_1411(c[p0], c[p1], c[p2])
+#define I151(p0,p1) interp_16_151(c[p0], c[p1])
+
+ switch (mask) {
+#include "hq3x.h"
+ }
+
+#undef P0
+#undef P1
+#undef P2
+#undef P3
+#undef P4
+#undef P5
+#undef P6
+#undef P7
+#undef P8
+#undef MUR
+#undef MDR
+#undef MDL
+#undef MUL
+#undef IC
+#undef I11
+#undef I211
+#undef I31
+#undef I332
+#undef I431
+#undef I521
+#undef I53
+#undef I611
+#undef I71
+#undef I772
+#undef I97
+#undef I1411
+#undef I151
src0 += 1;
src1 += 1;
diff --git a/win32/plugins/dfxvideo/winsrc/dxguid.c b/win32/plugins/dfxvideo/winsrc/dxguid.c
index 837f275e..c61fcad4 100644..100755
--- a/win32/plugins/dfxvideo/winsrc/dxguid.c
+++ b/win32/plugins/dfxvideo/winsrc/dxguid.c
@@ -22,7 +22,7 @@
Nothing.
*/
-#define INITGUID 1
+#define INITGUID 1
#include <basetyps.h>
/////////////////////////////////////////////////////////////////////
diff --git a/win32/plugins/dfxvideo/winsrc/fps.c b/win32/plugins/dfxvideo/winsrc/fps.c
index 728a8dd0..432880be 100644..100755
--- a/win32/plugins/dfxvideo/winsrc/fps.c
+++ b/win32/plugins/dfxvideo/winsrc/fps.c
@@ -15,11 +15,11 @@
* additional informations. *
* *
***************************************************************************/
-
+
#define _IN_FPS
#include "externals.h"
-#include "fps.h"
+#include "fps.h"
#include "gpu.h"
////////////////////////////////////////////////////////////////////////
@@ -42,33 +42,33 @@ int UseFrameSkip=0;
BOOL bInitCap = TRUE;
float fps_skip = 0;
float fps_cur = 0;
-
-////////////////////////////////////////////////////////////////////////
-
-#define MAXLACE 16
-
-void CheckFrameRate(void)
-{
- if(UseFrameSkip) // skipping mode?
- {
- if(!(dwActFixes&0x80)) // not old skipping mode?
- {
- dwLaceCnt++; // -> store cnt of vsync between frames
- if(dwLaceCnt>=MAXLACE && UseFrameLimit) // -> if there are many laces without screen toggling,
- { // do std frame limitation
- if(dwLaceCnt==MAXLACE) bInitCap=TRUE;
- FrameCap();
- }
- }
- else if(UseFrameLimit) FrameCap();
- calcfps(); // -> calc fps display in skipping mode
- }
- else // non-skipping mode:
- {
- if(UseFrameLimit) FrameCap(); // -> do it
- if(ulKeybits&KEY_SHOWFPS) calcfps(); // -> and calc fps display
- }
-}
+
+////////////////////////////////////////////////////////////////////////
+
+#define MAXLACE 16
+
+void CheckFrameRate(void)
+{
+ if(UseFrameSkip) // skipping mode?
+ {
+ if(!(dwActFixes&0x80)) // not old skipping mode?
+ {
+ dwLaceCnt++; // -> store cnt of vsync between frames
+ if(dwLaceCnt>=MAXLACE && UseFrameLimit) // -> if there are many laces without screen toggling,
+ { // do std frame limitation
+ if(dwLaceCnt==MAXLACE) bInitCap=TRUE;
+ FrameCap();
+ }
+ }
+ else if(UseFrameLimit) FrameCap();
+ calcfps(); // -> calc fps display in skipping mode
+ }
+ else // non-skipping mode:
+ {
+ if(UseFrameLimit) FrameCap(); // -> do it
+ if(ulKeybits&KEY_SHOWFPS) calcfps(); // -> and calc fps display
+ }
+}
////////////////////////////////////////////////////////////////////////
// WIN VERSION
@@ -232,10 +232,10 @@ void FrameSkip(void)
dwWaitTime=dwLastLace*dwFrameRateTicks; // -> and now we calc the time the real psx would have needed
if(_ticks_since_last_update<dwWaitTime) // -> we were too fast?
- {
- if((dwWaitTime-_ticks_since_last_update)> // -> some more security, to prevent
- (60*dwFrameRateTicks)) // wrong waiting times
- _ticks_since_last_update=dwWaitTime;
+ {
+ if((dwWaitTime-_ticks_since_last_update)> // -> some more security, to prevent
+ (60*dwFrameRateTicks)) // wrong waiting times
+ _ticks_since_last_update=dwWaitTime;
while(_ticks_since_last_update<dwWaitTime) // -> loop until we have reached the real psx time
{ // (that's the additional limitation, yup)
@@ -294,24 +294,24 @@ void FrameSkip(void)
dwWaitTime=dwLaceCnt*dwFrameRateTicks; // calc the 'real psx lace time'
if(_ticks_since_last_update>dwWaitTime) // hey, we needed way too long for that frame...
- {
- if(UseFrameLimit) // if limitation, we skip just next frame,
- { // and decide after, if we need to do more
- iNumSkips=0;
- }
- else
+ {
+ if(UseFrameLimit) // if limitation, we skip just next frame,
+ { // and decide after, if we need to do more
+ iNumSkips=0;
+ }
+ else
{
- iNumSkips=_ticks_since_last_update/dwWaitTime; // -> calc number of frames to skip to catch up
- iNumSkips--; // -> since we already skip next frame, one down
- if(iNumSkips>MAXSKIP) iNumSkips=MAXSKIP; // -> well, somewhere we have to draw a line
+ iNumSkips=_ticks_since_last_update/dwWaitTime; // -> calc number of frames to skip to catch up
+ iNumSkips--; // -> since we already skip next frame, one down
+ if(iNumSkips>MAXSKIP) iNumSkips=MAXSKIP; // -> well, somewhere we have to draw a line
}
bSkipNextFrame = TRUE; // -> signal for skipping the next frame
}
else // we were faster than real psx? fine :)
if(UseFrameLimit) // frame limit used? so we wait til the 'real psx time' has been reached
- {
- if(dwLaceCnt>MAXLACE) // -> security check
- _ticks_since_last_update=dwWaitTime;
+ {
+ if(dwLaceCnt>MAXLACE) // -> security check
+ _ticks_since_last_update=dwWaitTime;
while(_ticks_since_last_update<dwWaitTime) // just do a waiting loop...
{
@@ -561,7 +561,7 @@ void InitFPS(void)
{
bInitCap = TRUE;
- if(fFrameRateHz==0) fFrameRateHz=fFrameRate; // set user framerate
+ if(fFrameRateHz==0) fFrameRateHz=fFrameRate; // set user framerate
if(IsPerformanceCounter)
dwFrameRateTicks=(DWORD)(CPUFrequency.LowPart / fFrameRateHz);
diff --git a/win32/plugins/dfxvideo/winsrc/key.c b/win32/plugins/dfxvideo/winsrc/key.c
index ad624243..db834e8c 100644..100755
--- a/win32/plugins/dfxvideo/winsrc/key.c
+++ b/win32/plugins/dfxvideo/winsrc/key.c
@@ -33,7 +33,7 @@
WNDPROC wpOrgWndProc=0;
unsigned long ulKeybits=0;
char szGPUKeys[11];
-
+
////////////////////////////////////////////////////////////////////////
// keyboard handler
////////////////////////////////////////////////////////////////////////
@@ -63,10 +63,10 @@ LRESULT CALLBACK KeyWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
if(wParam==VK_RETURN) bChangeWinMode=TRUE;
break;
//--------------------------------------------------//
- case WM_KEYUP: // key up
-
- if(iDebugMode && wParam==(WPARAM)szGPUKeys[9])
- iFVDisplay=!iFVDisplay;
+ case WM_KEYUP: // key up
+
+ if(iDebugMode && wParam==(WPARAM)szGPUKeys[9])
+ iFVDisplay=!iFVDisplay;
if(wParam==(WPARAM)szGPUKeys[0])
{
@@ -101,14 +101,14 @@ LRESULT CALLBACK KeyWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
if(wParam==(WPARAM)szGPUKeys[4]) {BuildDispMenu(-1); break;}
if(wParam==(WPARAM)szGPUKeys[5]) {BuildDispMenu( 1); break;}
if(wParam==(WPARAM)szGPUKeys[7]) {bVsync_Key = bVsync_Key==TRUE ? FALSE : TRUE; BuildDispMenu(0);break;}
- if(wParam==(WPARAM)szGPUKeys[8])
- {
- iFastFwd = 1 - iFastFwd;
- bSkipNextFrame = FALSE;
- UseFrameSkip=iFastFwd;
- BuildDispMenu(0);
- break;
- }
+ if(wParam==(WPARAM)szGPUKeys[8])
+ {
+ iFastFwd = 1 - iFastFwd;
+ bSkipNextFrame = FALSE;
+ UseFrameSkip=iFastFwd;
+ BuildDispMenu(0);
+ break;
+ }
break;
//--------------------------------------------------//
}
diff --git a/win32/plugins/dfxvideo/winsrc/record.c b/win32/plugins/dfxvideo/winsrc/record.c
index c6d3b86e..52184e18 100644..100755
--- a/win32/plugins/dfxvideo/winsrc/record.c
+++ b/win32/plugins/dfxvideo/winsrc/record.c
@@ -16,9 +16,9 @@
* *
***************************************************************************/
-#include "externals.h"
-#include "record.h"
-#include "gpu.h"
+#include "externals.h"
+#include "record.h"
+#include "gpu.h"
#include <direct.h>
extern BOOL RECORD_RECORDING = FALSE;
@@ -123,11 +123,11 @@ opts.cbParms = pCompression->cbState;
opts.dwInterleaveEvery = 0;
if(AVIMakeCompressedStream(&psCompressed,ps,&opts,NULL)!=AVIERR_OK) goto error;
-
-//if(AVIStreamSetFormat(psCompressed,0,&RECORD_BI,RECORD_BI.biSizeImage)!=AVIERR_OK) goto error;
-// fixed:
-if(AVIStreamSetFormat(psCompressed,0,&RECORD_BI,sizeof(RECORD_BI))!=AVIERR_OK) goto error;
-
+
+//if(AVIStreamSetFormat(psCompressed,0,&RECORD_BI,RECORD_BI.biSizeImage)!=AVIERR_OK) goto error;
+// fixed:
+if(AVIStreamSetFormat(psCompressed,0,&RECORD_BI,sizeof(RECORD_BI))!=AVIERR_OK) goto error;
+
frame = 0;
skip = RECORD_FRAME_RATE_SCALE;
return TRUE;
diff --git a/win32/plugins/dfxvideo/winsrc/record.h b/win32/plugins/dfxvideo/winsrc/record.h
index 498354f3..498354f3 100644..100755
--- a/win32/plugins/dfxvideo/winsrc/record.h
+++ b/win32/plugins/dfxvideo/winsrc/record.h
diff --git a/win32/plugins/dfxvideo/winsrc/winmain.c b/win32/plugins/dfxvideo/winsrc/winmain.c
index baf19648..88a387ef 100644..100755
--- a/win32/plugins/dfxvideo/winsrc/winmain.c
+++ b/win32/plugins/dfxvideo/winsrc/winmain.c
@@ -18,24 +18,24 @@
#include "externals.h"
-HINSTANCE hInst = NULL;
+HINSTANCE hInst = NULL;
HMODULE hDDrawDLL = NULL;
BOOL APIENTRY DllMain(HANDLE hModule, // DLL INIT
DWORD dwReason,
LPVOID lpReserved)
-{
- switch (dwReason) {
+{
+ switch (dwReason) {
case DLL_PROCESS_ATTACH:
- hInst = (HINSTANCE)hModule;
- hDDrawDLL = LoadLibrary(TEXT("DDRAW.DLL"));
- break;
-
- case DLL_PROCESS_DETACH:
- if (hDDrawDLL) FreeLibrary(hDDrawDLL);
- break;
- }
-
+ hInst = (HINSTANCE)hModule;
+ hDDrawDLL = LoadLibrary(TEXT("DDRAW.DLL"));
+ break;
+
+ case DLL_PROCESS_DETACH:
+ if (hDDrawDLL) FreeLibrary(hDDrawDLL);
+ break;
+ }
+
return TRUE; // very quick :)
}
diff --git a/win32/plugins/peopsxgl/gpuPeopsOpenGL.def b/win32/plugins/peopsxgl/gpuPeopsOpenGL.def
index ef8cc98d..17d2e66c 100644..100755
--- a/win32/plugins/peopsxgl/gpuPeopsOpenGL.def
+++ b/win32/plugins/peopsxgl/gpuPeopsOpenGL.def
@@ -1,36 +1,36 @@
-; gpuPeopsOpenGL.def : Declares the module parameters for the DLL.
-
-LIBRARY "gpuPeopsOpenGL"
-DESCRIPTION 'gpuPeopsOpenGL OpenGL Windows Dynamic Link Library'
-EXPORTS
- ; Explicit exports can go here
- PSEgetLibType @2
- PSEgetLibName @3
- PSEgetLibVersion @4
- GPUinit @5
- GPUshutdown @6
- GPUopen @7
- GPUclose @8
- GPUconfigure @9
- GPUabout @10
- GPUtest @11
- GPUwriteData @12
- GPUwriteStatus @13
- GPUreadData @14
- GPUreadStatus @15
- GPUdmaChain @16
- GPUupdateLace @17
- GPUmakeSnapshot @18
- GPUwriteDataMem @19
- GPUreadDataMem @20
- GPUdisplayFlags @21
- GPUfreeze @22
- GPUgetScreenPic @23
- GPUshowScreenPic @24
-
- GPUcursor @25
-
- GPUsetfix @26
- GPUsetframelimit @27
- GPUvisualVibration @28
- GPUaddVertex @29
+; gpuPeopsOpenGL.def : Declares the module parameters for the DLL.
+
+LIBRARY "gpuPeopsOpenGL"
+DESCRIPTION 'gpuPeopsOpenGL OpenGL Windows Dynamic Link Library'
+EXPORTS
+ ; Explicit exports can go here
+ PSEgetLibType @2
+ PSEgetLibName @3
+ PSEgetLibVersion @4
+ GPUinit @5
+ GPUshutdown @6
+ GPUopen @7
+ GPUclose @8
+ GPUconfigure @9
+ GPUabout @10
+ GPUtest @11
+ GPUwriteData @12
+ GPUwriteStatus @13
+ GPUreadData @14
+ GPUreadStatus @15
+ GPUdmaChain @16
+ GPUupdateLace @17
+ GPUmakeSnapshot @18
+ GPUwriteDataMem @19
+ GPUreadDataMem @20
+ GPUdisplayFlags @21
+ GPUfreeze @22
+ GPUgetScreenPic @23
+ GPUshowScreenPic @24
+
+ GPUcursor @25
+
+ GPUsetfix @26
+ GPUsetframelimit @27
+ GPUvisualVibration @28
+ GPUaddVertex @29
diff --git a/win32/plugins/peopsxgl/gpuPeopsOpenGL.dev b/win32/plugins/peopsxgl/gpuPeopsOpenGL.dev
index 364e1ef8..7a54f74f 100644..100755
--- a/win32/plugins/peopsxgl/gpuPeopsOpenGL.dev
+++ b/win32/plugins/peopsxgl/gpuPeopsOpenGL.dev
@@ -1,319 +1,319 @@
-[Project]
-FileName=gpuPeopsOpenGL.dev
-Name=gpuPeopsOpenGL
-Ver=1
-IsCpp=1
-Type=3
-Compiler=-W -DWIN32 -DNDEBUG -D_WINDOWS_@@_
-CppCompiler=-W -DWIN32 -DNDEBUG -D_WINDOWS_@@_
-Includes=.\\;.\winsrc;..\..\glue;..\..\..\plugins\peopsxgl;..\..\..\libpcsxcore
-Linker=-luser32 -lgdi32 -lopengl32 -lwinmm -ladvapi32 -def gpuPeopsOpenGL.def --enable-stdcall-fixup_@@_
-Libs=
-UnitCount=27
-Folders=peopsxgl,winsrc
-ObjFiles=
-PrivateResource=gpuPeopsOpenGL_private.rc
-ResourceIncludes=
-MakeIncludes=
-Icon=
-ExeOutput=
-ObjectOutput=
-OverrideOutput=0
-OverrideOutputName=gpuPeopsOpenGL.exe
-HostApplication=
-CommandLine=
-UseCustomMakefile=0
-CustomMakefile=
-IncludeVersionInfo=0
-SupportXPThemes=0
-CompilerSet=0
-CompilerSettings=0010000001001000000000
-
-[Unit1]
-FileName=winsrc\cfg.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit2]
-FileName=winsrc\fps.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit3]
-FileName=winsrc\key.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit4]
-FileName=winsrc\ssave.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit5]
-FileName=winsrc\ssave.h
-Folder=winsrc
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit6]
-FileName=winsrc\winmain.c
-Folder=winsrc
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit7]
-FileName=..\..\..\plugins\peopsxgl\cfg.h
-Folder=peopsxgl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit8]
-FileName=..\..\..\plugins\peopsxgl\draw.c
-Folder=peopsxgl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit9]
-FileName=..\..\..\plugins\peopsxgl\draw.h
-Folder=peopsxgl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit10]
-FileName=..\..\..\plugins\peopsxgl\externals.h
-Folder=peopsxgl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit11]
-FileName=..\..\..\plugins\peopsxgl\fps.h
-Folder=peopsxgl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit12]
-FileName=..\..\..\plugins\peopsxgl\gl_ext.h
-Folder=peopsxgl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit13]
-FileName=..\..\..\plugins\peopsxgl\gpu.c
-Folder=peopsxgl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit14]
-FileName=..\..\..\plugins\peopsxgl\gpu.h
-Folder=peopsxgl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit15]
-FileName=..\..\..\plugins\peopsxgl\key.h
-Folder=peopsxgl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit16]
-FileName=..\..\..\plugins\peopsxgl\menu.c
-Folder=peopsxgl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit17]
-FileName=..\..\..\plugins\peopsxgl\menu.h
-Folder=peopsxgl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit18]
-FileName=..\..\..\plugins\peopsxgl\prim.c
-Folder=peopsxgl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit19]
-FileName=..\..\..\plugins\peopsxgl\prim.h
-Folder=peopsxgl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit20]
-FileName=..\..\..\plugins\peopsxgl\soft.c
-Folder=peopsxgl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit21]
-FileName=..\..\..\plugins\peopsxgl\soft.h
-Folder=peopsxgl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit22]
-FileName=..\..\..\plugins\peopsxgl\stdafx.h
-Folder=peopsxgl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit23]
-FileName=..\..\..\plugins\peopsxgl\texture.c
-Folder=peopsxgl
-Compile=1
-CompileCpp=0
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit24]
-FileName=..\..\..\plugins\peopsxgl\texture.h
-Folder=peopsxgl
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit25]
-FileName=gpuPeopsOpenGL.def
-Folder=
-Compile=0
-CompileCpp=0
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit26]
-FileName=gpuPeopsOpenGL.rc
-Folder=Resources
-Compile=1
-CompileCpp=1
-Link=0
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit27]
-FileName=resource.h
-Folder=
-Compile=1
-CompileCpp=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[VersionInfo]
-Major=0
-Minor=1
-Release=1
-Build=1
-LanguageID=1033
-CharsetID=1252
-CompanyName=
-FileVersion=0.1
-FileDescription=Developed using the Dev-C++ IDE
-InternalName=
-LegalCopyright=
-LegalTrademarks=
-OriginalFilename=gpuPeopsOpenGL.exe
-ProductName=gpuPeopsOpenGL
-ProductVersion=0.1
-AutoIncBuildNr=0
-
+[Project]
+FileName=gpuPeopsOpenGL.dev
+Name=gpuPeopsOpenGL
+Ver=1
+IsCpp=1
+Type=3
+Compiler=-W -DWIN32 -DNDEBUG -D_WINDOWS_@@_
+CppCompiler=-W -DWIN32 -DNDEBUG -D_WINDOWS_@@_
+Includes=.\\;.\winsrc;..\..\glue;..\..\..\plugins\peopsxgl;..\..\..\libpcsxcore
+Linker=-luser32 -lgdi32 -lopengl32 -lwinmm -ladvapi32 -def gpuPeopsOpenGL.def --enable-stdcall-fixup_@@_
+Libs=
+UnitCount=27
+Folders=peopsxgl,winsrc
+ObjFiles=
+PrivateResource=gpuPeopsOpenGL_private.rc
+ResourceIncludes=
+MakeIncludes=
+Icon=
+ExeOutput=
+ObjectOutput=
+OverrideOutput=0
+OverrideOutputName=gpuPeopsOpenGL.exe
+HostApplication=
+CommandLine=
+UseCustomMakefile=0
+CustomMakefile=
+IncludeVersionInfo=0
+SupportXPThemes=0
+CompilerSet=0
+CompilerSettings=0010000001001000000000
+
+[Unit1]
+FileName=winsrc\cfg.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit2]
+FileName=winsrc\fps.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit3]
+FileName=winsrc\key.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit4]
+FileName=winsrc\ssave.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit5]
+FileName=winsrc\ssave.h
+Folder=winsrc
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit6]
+FileName=winsrc\winmain.c
+Folder=winsrc
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit7]
+FileName=..\..\..\plugins\peopsxgl\cfg.h
+Folder=peopsxgl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit8]
+FileName=..\..\..\plugins\peopsxgl\draw.c
+Folder=peopsxgl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit9]
+FileName=..\..\..\plugins\peopsxgl\draw.h
+Folder=peopsxgl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit10]
+FileName=..\..\..\plugins\peopsxgl\externals.h
+Folder=peopsxgl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit11]
+FileName=..\..\..\plugins\peopsxgl\fps.h
+Folder=peopsxgl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit12]
+FileName=..\..\..\plugins\peopsxgl\gl_ext.h
+Folder=peopsxgl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit13]
+FileName=..\..\..\plugins\peopsxgl\gpu.c
+Folder=peopsxgl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit14]
+FileName=..\..\..\plugins\peopsxgl\gpu.h
+Folder=peopsxgl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit15]
+FileName=..\..\..\plugins\peopsxgl\key.h
+Folder=peopsxgl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit16]
+FileName=..\..\..\plugins\peopsxgl\menu.c
+Folder=peopsxgl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit17]
+FileName=..\..\..\plugins\peopsxgl\menu.h
+Folder=peopsxgl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit18]
+FileName=..\..\..\plugins\peopsxgl\prim.c
+Folder=peopsxgl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit19]
+FileName=..\..\..\plugins\peopsxgl\prim.h
+Folder=peopsxgl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit20]
+FileName=..\..\..\plugins\peopsxgl\soft.c
+Folder=peopsxgl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit21]
+FileName=..\..\..\plugins\peopsxgl\soft.h
+Folder=peopsxgl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit22]
+FileName=..\..\..\plugins\peopsxgl\stdafx.h
+Folder=peopsxgl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit23]
+FileName=..\..\..\plugins\peopsxgl\texture.c
+Folder=peopsxgl
+Compile=1
+CompileCpp=0
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit24]
+FileName=..\..\..\plugins\peopsxgl\texture.h
+Folder=peopsxgl
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit25]
+FileName=gpuPeopsOpenGL.def
+Folder=
+Compile=0
+CompileCpp=0
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit26]
+FileName=gpuPeopsOpenGL.rc
+Folder=Resources
+Compile=1
+CompileCpp=1
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit27]
+FileName=resource.h
+Folder=
+Compile=1
+CompileCpp=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[VersionInfo]
+Major=0
+Minor=1
+Release=1
+Build=1
+LanguageID=1033
+CharsetID=1252
+CompanyName=
+FileVersion=0.1
+FileDescription=Developed using the Dev-C++ IDE
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=gpuPeopsOpenGL.exe
+ProductName=gpuPeopsOpenGL
+ProductVersion=0.1
+AutoIncBuildNr=0
+
diff --git a/win32/plugins/peopsxgl/gpuPeopsOpenGL.dsp b/win32/plugins/peopsxgl/gpuPeopsOpenGL.dsp
index 4862dad7..728b3b77 100644..100755
--- a/win32/plugins/peopsxgl/gpuPeopsOpenGL.dsp
+++ b/win32/plugins/peopsxgl/gpuPeopsOpenGL.dsp
@@ -1,211 +1,211 @@
-# Microsoft Developer Studio Project File - Name="gpuPeopsOpenGL" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=gpuPeopsOpenGL - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "gpuPeopsOpenGL.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "gpuPeopsOpenGL.mak" CFG="gpuPeopsOpenGL - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "gpuPeopsOpenGL - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "gpuPeopsOpenGL - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "gpuPeopsOpenGL - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /G5 /MD /W3 /GX /O2 /I ".\\" /I ".\winsrc" /I "..\..\glue" /I "..\..\..\plugins\peopsxgl" /I "..\..\..\libpcsxcore" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x407 /d "NDEBUG"
-# ADD RSC /l 0x407 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 user32.lib gdi32.lib opengl32.lib winmm.lib advapi32.lib /nologo /subsystem:windows /dll /machine:I386
-# Begin Special Build Tool
-SOURCE="$(InputPath)"
-PostBuild_Cmds=rem copy release\*.dll d:\emus\epsxe\plugins
-# End Special Build Tool
-
-!ELSEIF "$(CFG)" == "gpuPeopsOpenGL - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".\\" /I ".\winsrc" /I "..\..\glue" /I "..\..\..\plugins\peopsxgl" /I "..\..\..\libpcsxcore" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x407 /d "_DEBUG"
-# ADD RSC /l 0x407 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib winmm.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /pdbtype:sept
-
-!ENDIF
-
-# Begin Target
-
-# Name "gpuPeopsOpenGL - Win32 Release"
-# Name "gpuPeopsOpenGL - Win32 Debug"
-# Begin Group "winsrc"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\winsrc\cfg.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\fps.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\key.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\ssave.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\ssave.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\winsrc\winmain.c
-# End Source File
-# End Group
-# Begin Group "peopsxgl"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\cfg.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\draw.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\draw.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\externals.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\fps.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\gl_ext.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\gpu.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\gpu.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\key.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\menu.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\menu.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\prim.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\prim.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\soft.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\soft.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\stdafx.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\texture.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\plugins\peopsxgl\texture.h
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=.\gpuPeopsOpenGL.def
-# End Source File
-# Begin Source File
-
-SOURCE=.\gpuPeopsOpenGL.rc
-# End Source File
-# Begin Source File
-
-SOURCE=.\resource.h
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="gpuPeopsOpenGL" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=gpuPeopsOpenGL - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "gpuPeopsOpenGL.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "gpuPeopsOpenGL.mak" CFG="gpuPeopsOpenGL - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "gpuPeopsOpenGL - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "gpuPeopsOpenGL - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "gpuPeopsOpenGL - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /G5 /MD /W3 /GX /O2 /I ".\\" /I ".\winsrc" /I "..\..\glue" /I "..\..\..\plugins\peopsxgl" /I "..\..\..\libpcsxcore" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
+# ADD LINK32 user32.lib gdi32.lib opengl32.lib winmm.lib advapi32.lib /nologo /subsystem:windows /dll /machine:I386
+# Begin Special Build Tool
+SOURCE="$(InputPath)"
+PostBuild_Cmds=rem copy release\*.dll d:\emus\epsxe\plugins
+# End Special Build Tool
+
+!ELSEIF "$(CFG)" == "gpuPeopsOpenGL - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".\\" /I ".\winsrc" /I "..\..\glue" /I "..\..\..\plugins\peopsxgl" /I "..\..\..\libpcsxcore" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib winmm.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "gpuPeopsOpenGL - Win32 Release"
+# Name "gpuPeopsOpenGL - Win32 Debug"
+# Begin Group "winsrc"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\winsrc\cfg.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\fps.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\ssave.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\ssave.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\winsrc\winmain.c
+# End Source File
+# End Group
+# Begin Group "peopsxgl"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\cfg.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\draw.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\draw.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\externals.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\fps.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\gl_ext.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\gpu.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\gpu.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\key.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\menu.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\menu.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\prim.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\prim.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\soft.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\soft.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\stdafx.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\texture.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\plugins\peopsxgl\texture.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\gpuPeopsOpenGL.def
+# End Source File
+# Begin Source File
+
+SOURCE=.\gpuPeopsOpenGL.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\resource.h
+# End Source File
+# End Target
+# End Project
diff --git a/win32/plugins/peopsxgl/gpuPeopsOpenGL.rc b/win32/plugins/peopsxgl/gpuPeopsOpenGL.rc
index cd659600..1f6d8b59 100644..100755
--- a/win32/plugins/peopsxgl/gpuPeopsOpenGL.rc
+++ b/win32/plugins/peopsxgl/gpuPeopsOpenGL.rc
@@ -1,511 +1,511 @@
-//Microsoft Developer Studio generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// Neutral resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
-#ifdef _WIN32
-LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_GPU BITMAP DISCARDABLE "res\\gpu.bmp"
-#endif // Neutral resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE DISCARDABLE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE DISCARDABLE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE DISCARDABLE
-BEGIN
- "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
- "#define _AFX_NO_OLE_RESOURCES\r\n"
- "#define _AFX_NO_TRACKER_RESOURCES\r\n"
- "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
- "\r\n"
- "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
- "#ifdef _WIN32\r\n"
- "LANGUAGE 9, 1\r\n"
- "#pragma code_page(1252)\r\n"
- "#endif\r\n"
- "#endif\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-#ifndef _MAC
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,78,0,0
- PRODUCTVERSION 1,78,0,0
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x2L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "Comments", "\0"
- VALUE "CompanyName", "\0"
- VALUE "FileDescription", "gpuPeopsOpenGL. DLL\0"
- VALUE "FileVersion", "1, 78, 0, 0\0"
- VALUE "InternalName", "P.E.Op.S. PSX OpenGL GPU (mod)\0"
- VALUE "LegalCopyright", "Copyright (C) 1999-2009\0"
- VALUE "LegalTrademarks", "\0"
- VALUE "OriginalFilename", "gpuPeopsOpenGL.DLL\0"
- VALUE "PrivateBuild", "\0"
- VALUE "ProductName", "gpuPeopsOpenGL Dynamic Link Library\0"
- VALUE "ProductVersion", "1, 78, 0, 0\0"
- VALUE "SpecialBuild", "\0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
-#endif // !_MAC
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_DIALOG_ABOUT DIALOG DISCARDABLE 0, 0, 258, 165
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "About P.E.Op.S. PSX OpenGL Renderer ..."
-FONT 8, "MS Sans Serif"
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,98,145,50,14
- RTEXT "Version:",IDC_STATIC,8,6,49,10
- RTEXT "Coded by:",IDC_STATIC,8,35,49,10
- RTEXT "Homepage:",IDC_STATIC,8,53,49,10
- LTEXT "1.78",IDC_STATIC,60,6,159,9
- LTEXT "Pete Bernert",IDC_STATIC,60,35,159,10
- LTEXT "www.pbernert.com",IDC_STATIC,60,53,159,10
- RTEXT "Release date:",IDC_STATIC,8,17,49,10
- LTEXT "04/2009",IDC_STATIC,60,17,159,10
- RTEXT "Thanks to:",IDC_STATIC,8,74,49,10
- LTEXT "Lewpy - without his infos this driver wouldn't exist",
- IDC_STATIC,60,74,159,10
- LTEXT "Duddie && FoxPro - for their public sources",IDC_STATIC,
- 60,86,159,10
- LTEXT "My girlfriend Heike - 'Hey, that cloud still looks funny, ",
- IDC_STATIC,60,112,170,10
- LTEXT "go on and change it...'",IDC_STATIC,125,121,117,10
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME | SS_SUNKEN,4,68,
- 249,70
- LTEXT "Gamma - thanks for your OpenGL book",IDC_STATIC,60,99,
- 159,10
-END
-
-IDD_CFGDLG DIALOGEX 0, 0, 413, 306
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Configure P.E.Op.S. PSX OpenGL Renderer ..."
-FONT 8, "MS Sans Serif"
-BEGIN
- CONTROL "Fullscreen mode",IDC_DISPMODE1,"Button",BS_AUTORADIOBUTTON,11,11,73,10
- CONTROL "Window mode",IDC_DISPMODE2,"Button",BS_AUTORADIOBUTTON,11,25,63,10
- COMBOBOX IDC_RESOLUTION,150,10,63,64,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_COLORDEPTH,261,10,36,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- EDITTEXT IDC_WINX,150,24,26,12,ES_AUTOHSCROLL
- EDITTEXT IDC_WINY,187,24,26,12,ES_AUTOHSCROLL
- CONTROL "Keep psx aspect ratio",IDC_ARATIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,306,17,95,12
- COMBOBOX IDC_TEXQUALITY,61,50,159,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_FILTERTYPE,61,63,159,83,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_HIRESTEX,275,50,129,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_VRAMSIZE,275,63,62,88,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
- CONTROL "Show FPS display on startup",IDC_SHOWFPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,94,107,10
- PUSHBUTTON "...",IDC_KEYCONFIG,119,94,11,10,0,WS_EX_STATICEDGE
- CONTROL "Use FPS limit",IDC_USELIMIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,149,89,73,10
- CONTROL "Use Frame skipping",IDC_USESKIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,149,101,78,10
- CONTROL "Auto-detect FPS/Frame skipping limit",IDC_FRAMEAUTO,
- "Button",BS_AUTORADIOBUTTON | WS_GROUP,258,89,131,9
- CONTROL "FPS limit (10-200) :",IDC_FRAMEMANUELL,"Button",BS_AUTORADIOBUTTON,258,100,72,10
- EDITTEXT IDC_FRAMELIMIT,334,99,29,12,ES_AUTOHSCROLL
- COMBOBOX IDC_OFFSCREEN,78,123,130,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_FRAMETEX,78,136,130,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_FRAMEREAD,78,149,130,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- CONTROL "Alpha MultiPass",IDC_OPAQUE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,219,127,66,10
- CONTROL "Mask bit",IDC_USEMASK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,219,138,47,10
- CONTROL "Advanced blending",IDC_ADVBLEND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,219,149,76,10
- CONTROL "Scanlines",IDC_USESCANLINES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,176,46,10
- EDITTEXT IDC_SCANBLEND,375,175,29,12,ES_AUTOHSCROLL
- CONTROL "Line mode",IDC_USELINES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,186,48,10
- CONTROL "Unfiltered framebuffer updates",IDC_FASTMDEC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,196,113,10
- CONTROL "Force 15 bit framebuffer updates",IDC_FASTMDEC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,206,121,10
- CONTROL "Color dithering",IDC_DRAWDITHER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,216,81,10
- CONTROL "Screen smoothing",IDC_BLUR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,226,81,10
- CONTROL "Disable screensaver",IDC_SSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,236,81,10
- CONTROL "Special game fixes",IDC_GAMEFIX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,246,75,10
- PUSHBUTTON "...",IDC_SELFIX,89,246,11,10,0,WS_EX_STATICEDGE
- PUSHBUTTON "Fast",IDC_DEF1,10,282,34,14
- PUSHBUTTON "Nice",IDC_DEF2,49,282,34,14
- DEFPUSHBUTTON "OK",IDOK,113,282,84,14
- PUSHBUTTON "Cancel",IDCANCEL,215,282,84,14
- PUSHBUTTON "Copy settings\n to clipboard",IDC_CLIPBOARD,322,276,87,25,BS_MULTILINE,WS_EX_STATICEDGE
- GROUPBOX "Misc",IDC_STATIC,3,166,406,104
- GROUPBOX "Default settings",IDC_STATIC,3,272,88,30
- GROUPBOX "Textures",IDC_STATIC,3,41,406,40
- RTEXT "Desktop resolution:",IDC_STATIC,81,12,65,9
- GROUPBOX "Resolution && Colors",IDC_STATIC,3,1,406,40
- RTEXT "Color depth:",IDC_STATIC,219,12,39,9
- GROUPBOX "Framerate",IDC_STATIC,3,81,406,33
- LTEXT "FPS",IDC_STATIC,367,100,17,9,SS_CENTERIMAGE
- GROUPBOX "Compatibility",IDC_STATIC,3,115,406,51
- RTEXT "Texture quality:",IDC_QUALTXT,6,52,51,9
- RTEXT "Window size:",IDC_STATIC,85,26,61,9
- CTEXT "x",IDC_STATIC,177,26,8,9
- RTEXT "Gfx card vram:",IDC_QUALTXT2,225,65,48,9
- RTEXT "Off-Screen drawing:",IDC_STATIC,11,124,64,10,SS_CENTERIMAGE
- RTEXT "Texture filtering:",IDC_STATIC,6,65,52,10
- RTEXT "Framebuffer textures:",IDC_STATIC,7,137,68,10,SS_CENTERIMAGE
- LTEXT "Some games will need certain special options to work without glitches",IDC_STATIC,135,246,242,9,SS_CENTERIMAGE
- LTEXT "Smoother shading in 16 bit color depth",IDC_STATIC,135,216,242,9,SS_CENTERIMAGE
- LTEXT "Small speed up with mdecs",IDC_STATIC,135,196,242,9,SS_CENTERIMAGE
- LTEXT "Polygons will not get filled",IDC_STATIC,135,186,89,9,SS_CENTERIMAGE
- LTEXT "TV screen alike lines",IDC_STATIC,135,176,69,9,SS_CENTERIMAGE
- LTEXT "Accurate psx color emulation",IDC_STATIC,303,149,97,9,SS_CENTERIMAGE
- LTEXT "Correct opaque texture areas",IDC_STATIC,302,127,97,9,SS_CENTERIMAGE
- LTEXT "Needed by a few games",IDC_STATIC,302,138,97,9,SS_CENTERIMAGE
- RTEXT "Scanline brightness (0...255, -1=Monitor dot matrix):",IDC_STATIC,210,176,162,9,SS_CENTERIMAGE
- EDITTEXT IDC_CLPEDIT,314,293,6,12,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | NOT WS_VISIBLE
- LTEXT "MBytes",IDC_QUALTXT3,340,65,27,9
- LTEXT "The complete screen will get smoothed. Very slow on some cards, lotta vram needed",IDC_STATIC,135,226,269,9,SS_CENTERIMAGE
- RTEXT "Framebuffer access:",IDC_STATIC,7,150,68,10,SS_CENTERIMAGE
- LTEXT "Disable screensavers and power saving modes. Not available in Win95/WinNT",IDC_STATIC,135,236,269,9,SS_CENTERIMAGE
- LTEXT "Speed up with mdecs in 32 bit color depth, but less colorful",IDC_T14_STATIC2,135,206,268,9,SS_CENTERIMAGE
- RTEXT "Hi-Res textures:",IDC_QUALTXT4,223,52,50,9
- COMBOBOX IDC_VSYNC,261,24,36,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- RTEXT "V-Sync:",IDC_STATIC,219,26,39,9,SS_CENTERIMAGE
- CONTROL "Gte accuracy",IDC_GTEACCURACY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,256,59,10
-END
-
-IDD_FIXES DIALOG DISCARDABLE 0, 0, 316, 322
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Special game fixes..."
-FONT 8, "MS Sans Serif"
-BEGIN
- CONTROL "0x00001: Adjust framebuffer access",IDC_FIX1,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,30,133,10
- CONTROL "0x00004: Ignore black brightness",IDC_FIX3,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,60,140,10
- CONTROL "0x00008: Swap front/back detection",IDC_FIX4,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,75,144,10
- CONTROL "0x00010: Disable coord check",IDC_FIX5,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,90,139,10
- CONTROL "0x00020: Remove blue glitches",IDC_FIX6,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,105,139,10
- CONTROL "0x00040: Mixed software FB access",IDC_FIX7,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,120,143,10
- CONTROL "0x00080: Use PC fps calculation",IDC_FIX8,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,135,142,10
- CONTROL "0x00100: Use old frame skipping",IDC_FIX9,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,150,139,10
- CONTROL "0x00002: Direct framebuffer updates",IDC_FIX2,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,45,137,10
- CONTROL "0x00200: G4 polygon cache",IDC_FIX10,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,165,141,10
- CONTROL "0x00400: Fake subtractive blending",IDC_FIX11,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,180,143,10
- CONTROL "0x00800: Lazy upload detection",IDC_FIX12,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,195,144,10
- CONTROL "0x01000: Odd/even bit hack",IDC_FIX13,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,210,143,10
- CONTROL "0x02000: Expand screen width",IDC_FIX14,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,225,144,10
- DEFPUSHBUTTON "OK",IDOK,83,302,50,14
- PUSHBUTTON "Cancel",IDCANCEL,182,302,50,14
- LTEXT "Activate the following options only if you want to play one of the listed games (or if your game is showing similar glitches)!",
- IDC_STATIC,7,4,246,22
- LTEXT "ONLY for FF7 battle cursor/battle swirl",IDC_STATIC,163,
- 30,137,9,SS_CENTERIMAGE
- LTEXT "Speed up in nasty frame upload situations",IDC_STATIC,
- 163,45,137,9,SS_CENTERIMAGE
- LTEXT "Fixes black screens in Lunar",IDC_STATIC,162,60,123,9,
- SS_CENTERIMAGE
- LTEXT "Speed freaks, Killer Loop",IDC_STATIC,162,75,90,9,
- SS_CENTERIMAGE
- LTEXT "Old coord compatibility mode",IDC_STATIC,162,89,99,9,
- SS_CENTERIMAGE
- LTEXT "Leg. o. Dragoon, Alpha Multipass needed",IDC_STATIC,162,
- 105,136,9,SS_CENTERIMAGE
- LTEXT "Faster FB access on some systems/ATI",IDC_STATIC,162,
- 120,125,9,SS_CENTERIMAGE
- LTEXT "Better fps limitation with some games",IDC_STATIC,162,
- 135,117,9,SS_CENTERIMAGE
- LTEXT "Skips only every second frame",IDC_STATIC,162,150,130,9,
- SS_CENTERIMAGE
- LTEXT "ONLY for FF9 battle mode... yellow rect",IDC_STATIC,162,
- 165,132,9,SS_CENTERIMAGE
- LTEXT "Needed by some (buggy) OpenGL ICDs",IDC_STATIC,162,180,
- 132,9,SS_CENTERIMAGE
- LTEXT "DW7 fix (not 100% perfect...)",IDC_STATIC,162,195,132,9,
- SS_CENTERIMAGE
- LTEXT "Needed with epsxe 1.5.2 and older",IDC_STATIC,162,210,
- 138,9,SS_CENTERIMAGE
- LTEXT "Shows the full area in Capcom 2D fighters",IDC_STATIC,
- 162,225,138,9,SS_CENTERIMAGE
- CONTROL "0x04000: Use old texture filtering",IDC_FIX15,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,240,141,10
- LTEXT "Fixes black areas with some cards",IDC_STATIC,162,240,
- 138,9,SS_CENTERIMAGE
- CONTROL "0x08000: Special upload detection",IDC_FIX16,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,255,146,10
- LTEXT "May show some additional splash screens",
- IDC_F14_STATIC3,163,255,137,9,SS_CENTERIMAGE
- CONTROL "0x10000: Use low-res fps timer",IDC_FIX17,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,270,147,10
- LTEXT "For buggy motherboard chipsets",IDC_F14_STATIC4,163,270,
- 137,9,SS_CENTERIMAGE
- CONTROL "0x20000: Fake 'gpu busy' states",IDC_FIX18,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,11,285,147,10
- LTEXT "Toggles busy flags after drawing",IDC_F14_STATIC5,163,
- 285,137,9,SS_CENTERIMAGE
-END
-
-IDD_KEYS DIALOG DISCARDABLE 0, 0, 186, 162
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
-CAPTION "GPU key configuration"
-FONT 8, "MS Sans Serif"
-BEGIN
- PUSHBUTTON "Default keys",IDC_DEFAULT,107,6,61,13
- COMBOBOX IDC_KEY1,108,25,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY2,108,41,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY3,108,57,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY4,108,73,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY5,108,89,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_KEY6,108,105,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- DEFPUSHBUTTON "OK",IDOK,19,142,50,14
- PUSHBUTTON "Cancel",IDCANCEL,115,142,50,14
- RTEXT "Show/hide gpu menu:",IDC_STATIC,4,26,100,9,
- SS_CENTERIMAGE
- RTEXT "Show/hide gpu infos:",IDC_STATIC,4,42,100,9,
- SS_CENTERIMAGE
- RTEXT "Toggle selected option up:",IDC_STATIC,4,58,100,9,
- SS_CENTERIMAGE
- RTEXT "Toggle selected option down:",IDC_STATIC,4,74,100,9,
- SS_CENTERIMAGE
- RTEXT "Select previous option:",IDC_STATIC,4,90,100,9,
- SS_CENTERIMAGE
- RTEXT "Select next option:",IDC_STATIC,4,106,100,9,
- SS_CENTERIMAGE
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO DISCARDABLE
-BEGIN
- IDD_DIALOG_ABOUT, DIALOG
- BEGIN
- LEFTMARGIN, 2
- RIGHTMARGIN, 253
- TOPMARGIN, 3
- BOTTOMMARGIN, 159
- END
-
- IDD_CFGDLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 406
- TOPMARGIN, 7
- BOTTOMMARGIN, 288
- END
-
- IDD_FIXES, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 309
- TOPMARGIN, 7
- BOTTOMMARGIN, 315
- END
-
- IDD_KEYS, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 179
- TOPMARGIN, 7
- BOTTOMMARGIN, 155
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog Info
-//
-#ifdef _MSC_VER
-
-IDD_CFGDLG DLGINIT
-BEGIN
- IDC_RESOLUTION, 0x403, 1, 0
-"\000"
- IDC_COLORDEPTH, 0x403, 7, 0
-0x3631, 0x4220, 0x7469, "\000"
- IDC_COLORDEPTH, 0x403, 7, 0
-0x3233, 0x4220, 0x7469, "\000"
- IDC_TEXQUALITY, 0x403, 11, 0
-0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
- IDC_TEXQUALITY, 0x403, 12, 0
-0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
- IDC_TEXQUALITY, 0x403, 12, 0
-0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
- IDC_TEXQUALITY, 0x403, 12, 0
-0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
- IDC_FILTERTYPE, 0x403, 9, 0
-0x7453, 0x6e61, 0x6164, 0x6472, "\000"
- IDC_FILTERTYPE, 0x403, 9, 0
-0x7845, 0x6574, 0x646e, 0x6465, "\000"
- IDC_FILTERTYPE, 0x403, 22, 0
-0x7453, 0x6e61, 0x6164, 0x6472, 0x2820, 0x6f6e, 0x5320, 0x7270, 0x7469,
-0x7365, 0x0029,
- IDC_FILTERTYPE, 0x403, 22, 0
-0x7845, 0x6574, 0x646e, 0x6465, 0x2820, 0x6f6e, 0x5320, 0x7270, 0x7469,
-0x7365, 0x0029,
- IDC_HIRESTEX, 0x403, 11, 0
-0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
- IDC_HIRESTEX, 0x403, 12, 0
-0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
- IDC_HIRESTEX, 0x403, 12, 0
-0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
- IDC_HIRESTEX, 0x403, 12, 0
-0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
- IDC_OFFSCREEN, 0x403, 11, 0
-0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
- IDC_OFFSCREEN, 0x403, 12, 0
-0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
- IDC_OFFSCREEN, 0x403, 12, 0
-0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
- IDC_OFFSCREEN, 0x403, 12, 0
-0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
- IDC_FRAMETEX, 0x403, 11, 0
-0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
- IDC_FRAMETEX, 0x403, 12, 0
-0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
- IDC_FRAMETEX, 0x403, 12, 0
-0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
- IDC_FRAMETEX, 0x403, 12, 0
-0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
- IDC_FRAMEREAD, 0x403, 11, 0
-0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
- IDC_FRAMEREAD, 0x403, 12, 0
-0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
- IDC_FRAMEREAD, 0x403, 12, 0
-0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
- IDC_FRAMEREAD, 0x403, 12, 0
-0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
- 0
-END
-
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDS_INFO0 "FL - Frame limitation:\n[Off] - Speed as fast as possible\n[On-1] - Limits speed to manual value\n[On-2] - Limits speed to auto-detected value."
- IDS_INFO1 "FS - Frame skipping:\n[Off] - No frames get skipped\n[On] - Tries to speed up the game by skipping frames. Can cause glitches!"
- IDS_INFO2 "OD - Offscreen drawing:\n[0-4] - The higher the mode, the more checks for uploading screen data/software drawing will be done. Setting depends on the game."
- IDS_INFO3 "FI - Texture filtering:\n[0-6] - Filtering will cause glitches! Mode 2/4/6: black borders vanish. Mode 3/4 will not filter sprites. Mode 5/6 will smooth sprites."
- IDS_INFO4 "DI - Dithering:\n[Off] - No dithering\n[On] - Smoother shading in 16 bit modes."
- IDS_INFO5 "AM - Alpha multipass:\n[Off] - Faster with some games, but opaque texture areas can get transparent.\n[On] - Accurate psx emulation."
- IDS_INFO6 "AB - Advanced blending:\n[0-1] - For accurate psx coloring use mode 1. If your gfx card can't do it in hardware, a software mode will be done automatically (slower)."
- IDS_INFO7 "FA - Framebuffer access:\n[0-4] - Some games read back the framebuffer to create special effects. This can be very slow! In mode 4 everything is done in software."
- IDS_INFO8 "FT - Frame buffer texture:\n[0-3] - Mode 2 is trying to do some effects (whirls, motion blur) in hardware (can be slow). Mode 1 is turning the effects off (fastest emulation)."
- IDS_INFO9 "GF - Special game fixes:\n[Off] - Turn off all fixes\n[On] - Turn on all activated fixes. You have to select the fixes you want to use in the gpu config."
-END
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-#define _AFX_NO_SPLITTER_RESOURCES
-#define _AFX_NO_OLE_RESOURCES
-#define _AFX_NO_TRACKER_RESOURCES
-#define _AFX_NO_PROPERTY_RESOURCES
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE 9, 1
-#pragma code_page(1252)
-#endif
-#endif
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Neutral resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
+#ifdef _WIN32
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDB_GPU BITMAP DISCARDABLE "res\\gpu.bmp"
+#endif // Neutral resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
+ "#define _AFX_NO_OLE_RESOURCES\r\n"
+ "#define _AFX_NO_TRACKER_RESOURCES\r\n"
+ "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
+ "\r\n"
+ "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
+ "#ifdef _WIN32\r\n"
+ "LANGUAGE 9, 1\r\n"
+ "#pragma code_page(1252)\r\n"
+ "#endif\r\n"
+ "#endif\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,78,0,0
+ PRODUCTVERSION 1,78,0,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "Comments", "\0"
+ VALUE "CompanyName", "\0"
+ VALUE "FileDescription", "gpuPeopsOpenGL. DLL\0"
+ VALUE "FileVersion", "1, 78, 0, 0\0"
+ VALUE "InternalName", "P.E.Op.S. PSX OpenGL GPU (mod)\0"
+ VALUE "LegalCopyright", "Copyright (C) 1999-2009\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "gpuPeopsOpenGL.DLL\0"
+ VALUE "PrivateBuild", "\0"
+ VALUE "ProductName", "gpuPeopsOpenGL Dynamic Link Library\0"
+ VALUE "ProductVersion", "1, 78, 0, 0\0"
+ VALUE "SpecialBuild", "\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif // !_MAC
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_DIALOG_ABOUT DIALOG DISCARDABLE 0, 0, 258, 165
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "About P.E.Op.S. PSX OpenGL Renderer ..."
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,98,145,50,14
+ RTEXT "Version:",IDC_STATIC,8,6,49,10
+ RTEXT "Coded by:",IDC_STATIC,8,35,49,10
+ RTEXT "Homepage:",IDC_STATIC,8,53,49,10
+ LTEXT "1.78",IDC_STATIC,60,6,159,9
+ LTEXT "Pete Bernert",IDC_STATIC,60,35,159,10
+ LTEXT "www.pbernert.com",IDC_STATIC,60,53,159,10
+ RTEXT "Release date:",IDC_STATIC,8,17,49,10
+ LTEXT "04/2009",IDC_STATIC,60,17,159,10
+ RTEXT "Thanks to:",IDC_STATIC,8,74,49,10
+ LTEXT "Lewpy - without his infos this driver wouldn't exist",
+ IDC_STATIC,60,74,159,10
+ LTEXT "Duddie && FoxPro - for their public sources",IDC_STATIC,
+ 60,86,159,10
+ LTEXT "My girlfriend Heike - 'Hey, that cloud still looks funny, ",
+ IDC_STATIC,60,112,170,10
+ LTEXT "go on and change it...'",IDC_STATIC,125,121,117,10
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME | SS_SUNKEN,4,68,
+ 249,70
+ LTEXT "Gamma - thanks for your OpenGL book",IDC_STATIC,60,99,
+ 159,10
+END
+
+IDD_CFGDLG DIALOGEX 0, 0, 413, 306
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Configure P.E.Op.S. PSX OpenGL Renderer ..."
+FONT 8, "MS Sans Serif"
+BEGIN
+ CONTROL "Fullscreen mode",IDC_DISPMODE1,"Button",BS_AUTORADIOBUTTON,11,11,73,10
+ CONTROL "Window mode",IDC_DISPMODE2,"Button",BS_AUTORADIOBUTTON,11,25,63,10
+ COMBOBOX IDC_RESOLUTION,150,10,63,64,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_COLORDEPTH,261,10,36,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ EDITTEXT IDC_WINX,150,24,26,12,ES_AUTOHSCROLL
+ EDITTEXT IDC_WINY,187,24,26,12,ES_AUTOHSCROLL
+ CONTROL "Keep psx aspect ratio",IDC_ARATIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,306,17,95,12
+ COMBOBOX IDC_TEXQUALITY,61,50,159,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_FILTERTYPE,61,63,159,83,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_HIRESTEX,275,50,129,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_VRAMSIZE,275,63,62,88,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
+ CONTROL "Show FPS display on startup",IDC_SHOWFPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,94,107,10
+ PUSHBUTTON "...",IDC_KEYCONFIG,119,94,11,10,0,WS_EX_STATICEDGE
+ CONTROL "Use FPS limit",IDC_USELIMIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,149,89,73,10
+ CONTROL "Use Frame skipping",IDC_USESKIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,149,101,78,10
+ CONTROL "Auto-detect FPS/Frame skipping limit",IDC_FRAMEAUTO,
+ "Button",BS_AUTORADIOBUTTON | WS_GROUP,258,89,131,9
+ CONTROL "FPS limit (10-200) :",IDC_FRAMEMANUELL,"Button",BS_AUTORADIOBUTTON,258,100,72,10
+ EDITTEXT IDC_FRAMELIMIT,334,99,29,12,ES_AUTOHSCROLL
+ COMBOBOX IDC_OFFSCREEN,78,123,130,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_FRAMETEX,78,136,130,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_FRAMEREAD,78,149,130,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ CONTROL "Alpha MultiPass",IDC_OPAQUE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,219,127,66,10
+ CONTROL "Mask bit",IDC_USEMASK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,219,138,47,10
+ CONTROL "Advanced blending",IDC_ADVBLEND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,219,149,76,10
+ CONTROL "Scanlines",IDC_USESCANLINES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,176,46,10
+ EDITTEXT IDC_SCANBLEND,375,175,29,12,ES_AUTOHSCROLL
+ CONTROL "Line mode",IDC_USELINES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,186,48,10
+ CONTROL "Unfiltered framebuffer updates",IDC_FASTMDEC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,196,113,10
+ CONTROL "Force 15 bit framebuffer updates",IDC_FASTMDEC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,206,121,10
+ CONTROL "Color dithering",IDC_DRAWDITHER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,216,81,10
+ CONTROL "Screen smoothing",IDC_BLUR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,226,81,10
+ CONTROL "Disable screensaver",IDC_SSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,236,81,10
+ CONTROL "Special game fixes",IDC_GAMEFIX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,246,75,10
+ PUSHBUTTON "...",IDC_SELFIX,89,246,11,10,0,WS_EX_STATICEDGE
+ PUSHBUTTON "Fast",IDC_DEF1,10,282,34,14
+ PUSHBUTTON "Nice",IDC_DEF2,49,282,34,14
+ DEFPUSHBUTTON "OK",IDOK,113,282,84,14
+ PUSHBUTTON "Cancel",IDCANCEL,215,282,84,14
+ PUSHBUTTON "Copy settings\n to clipboard",IDC_CLIPBOARD,322,276,87,25,BS_MULTILINE,WS_EX_STATICEDGE
+ GROUPBOX "Misc",IDC_STATIC,3,166,406,104
+ GROUPBOX "Default settings",IDC_STATIC,3,272,88,30
+ GROUPBOX "Textures",IDC_STATIC,3,41,406,40
+ RTEXT "Desktop resolution:",IDC_STATIC,81,12,65,9
+ GROUPBOX "Resolution && Colors",IDC_STATIC,3,1,406,40
+ RTEXT "Color depth:",IDC_STATIC,219,12,39,9
+ GROUPBOX "Framerate",IDC_STATIC,3,81,406,33
+ LTEXT "FPS",IDC_STATIC,367,100,17,9,SS_CENTERIMAGE
+ GROUPBOX "Compatibility",IDC_STATIC,3,115,406,51
+ RTEXT "Texture quality:",IDC_QUALTXT,6,52,51,9
+ RTEXT "Window size:",IDC_STATIC,85,26,61,9
+ CTEXT "x",IDC_STATIC,177,26,8,9
+ RTEXT "Gfx card vram:",IDC_QUALTXT2,225,65,48,9
+ RTEXT "Off-Screen drawing:",IDC_STATIC,11,124,64,10,SS_CENTERIMAGE
+ RTEXT "Texture filtering:",IDC_STATIC,6,65,52,10
+ RTEXT "Framebuffer textures:",IDC_STATIC,7,137,68,10,SS_CENTERIMAGE
+ LTEXT "Some games will need certain special options to work without glitches",IDC_STATIC,135,246,242,9,SS_CENTERIMAGE
+ LTEXT "Smoother shading in 16 bit color depth",IDC_STATIC,135,216,242,9,SS_CENTERIMAGE
+ LTEXT "Small speed up with mdecs",IDC_STATIC,135,196,242,9,SS_CENTERIMAGE
+ LTEXT "Polygons will not get filled",IDC_STATIC,135,186,89,9,SS_CENTERIMAGE
+ LTEXT "TV screen alike lines",IDC_STATIC,135,176,69,9,SS_CENTERIMAGE
+ LTEXT "Accurate psx color emulation",IDC_STATIC,303,149,97,9,SS_CENTERIMAGE
+ LTEXT "Correct opaque texture areas",IDC_STATIC,302,127,97,9,SS_CENTERIMAGE
+ LTEXT "Needed by a few games",IDC_STATIC,302,138,97,9,SS_CENTERIMAGE
+ RTEXT "Scanline brightness (0...255, -1=Monitor dot matrix):",IDC_STATIC,210,176,162,9,SS_CENTERIMAGE
+ EDITTEXT IDC_CLPEDIT,314,293,6,12,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | NOT WS_VISIBLE
+ LTEXT "MBytes",IDC_QUALTXT3,340,65,27,9
+ LTEXT "The complete screen will get smoothed. Very slow on some cards, lotta vram needed",IDC_STATIC,135,226,269,9,SS_CENTERIMAGE
+ RTEXT "Framebuffer access:",IDC_STATIC,7,150,68,10,SS_CENTERIMAGE
+ LTEXT "Disable screensavers and power saving modes. Not available in Win95/WinNT",IDC_STATIC,135,236,269,9,SS_CENTERIMAGE
+ LTEXT "Speed up with mdecs in 32 bit color depth, but less colorful",IDC_T14_STATIC2,135,206,268,9,SS_CENTERIMAGE
+ RTEXT "Hi-Res textures:",IDC_QUALTXT4,223,52,50,9
+ COMBOBOX IDC_VSYNC,261,24,36,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ RTEXT "V-Sync:",IDC_STATIC,219,26,39,9,SS_CENTERIMAGE
+ CONTROL "Gte accuracy",IDC_GTEACCURACY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,256,59,10
+END
+
+IDD_FIXES DIALOG DISCARDABLE 0, 0, 316, 322
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Special game fixes..."
+FONT 8, "MS Sans Serif"
+BEGIN
+ CONTROL "0x00001: Adjust framebuffer access",IDC_FIX1,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,30,133,10
+ CONTROL "0x00004: Ignore black brightness",IDC_FIX3,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,60,140,10
+ CONTROL "0x00008: Swap front/back detection",IDC_FIX4,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,75,144,10
+ CONTROL "0x00010: Disable coord check",IDC_FIX5,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,90,139,10
+ CONTROL "0x00020: Remove blue glitches",IDC_FIX6,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,105,139,10
+ CONTROL "0x00040: Mixed software FB access",IDC_FIX7,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,120,143,10
+ CONTROL "0x00080: Use PC fps calculation",IDC_FIX8,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,135,142,10
+ CONTROL "0x00100: Use old frame skipping",IDC_FIX9,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,150,139,10
+ CONTROL "0x00002: Direct framebuffer updates",IDC_FIX2,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,45,137,10
+ CONTROL "0x00200: G4 polygon cache",IDC_FIX10,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,165,141,10
+ CONTROL "0x00400: Fake subtractive blending",IDC_FIX11,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,180,143,10
+ CONTROL "0x00800: Lazy upload detection",IDC_FIX12,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,195,144,10
+ CONTROL "0x01000: Odd/even bit hack",IDC_FIX13,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,210,143,10
+ CONTROL "0x02000: Expand screen width",IDC_FIX14,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,225,144,10
+ DEFPUSHBUTTON "OK",IDOK,83,302,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,182,302,50,14
+ LTEXT "Activate the following options only if you want to play one of the listed games (or if your game is showing similar glitches)!",
+ IDC_STATIC,7,4,246,22
+ LTEXT "ONLY for FF7 battle cursor/battle swirl",IDC_STATIC,163,
+ 30,137,9,SS_CENTERIMAGE
+ LTEXT "Speed up in nasty frame upload situations",IDC_STATIC,
+ 163,45,137,9,SS_CENTERIMAGE
+ LTEXT "Fixes black screens in Lunar",IDC_STATIC,162,60,123,9,
+ SS_CENTERIMAGE
+ LTEXT "Speed freaks, Killer Loop",IDC_STATIC,162,75,90,9,
+ SS_CENTERIMAGE
+ LTEXT "Old coord compatibility mode",IDC_STATIC,162,89,99,9,
+ SS_CENTERIMAGE
+ LTEXT "Leg. o. Dragoon, Alpha Multipass needed",IDC_STATIC,162,
+ 105,136,9,SS_CENTERIMAGE
+ LTEXT "Faster FB access on some systems/ATI",IDC_STATIC,162,
+ 120,125,9,SS_CENTERIMAGE
+ LTEXT "Better fps limitation with some games",IDC_STATIC,162,
+ 135,117,9,SS_CENTERIMAGE
+ LTEXT "Skips only every second frame",IDC_STATIC,162,150,130,9,
+ SS_CENTERIMAGE
+ LTEXT "ONLY for FF9 battle mode... yellow rect",IDC_STATIC,162,
+ 165,132,9,SS_CENTERIMAGE
+ LTEXT "Needed by some (buggy) OpenGL ICDs",IDC_STATIC,162,180,
+ 132,9,SS_CENTERIMAGE
+ LTEXT "DW7 fix (not 100% perfect...)",IDC_STATIC,162,195,132,9,
+ SS_CENTERIMAGE
+ LTEXT "Needed with epsxe 1.5.2 and older",IDC_STATIC,162,210,
+ 138,9,SS_CENTERIMAGE
+ LTEXT "Shows the full area in Capcom 2D fighters",IDC_STATIC,
+ 162,225,138,9,SS_CENTERIMAGE
+ CONTROL "0x04000: Use old texture filtering",IDC_FIX15,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,240,141,10
+ LTEXT "Fixes black areas with some cards",IDC_STATIC,162,240,
+ 138,9,SS_CENTERIMAGE
+ CONTROL "0x08000: Special upload detection",IDC_FIX16,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,255,146,10
+ LTEXT "May show some additional splash screens",
+ IDC_F14_STATIC3,163,255,137,9,SS_CENTERIMAGE
+ CONTROL "0x10000: Use low-res fps timer",IDC_FIX17,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,270,147,10
+ LTEXT "For buggy motherboard chipsets",IDC_F14_STATIC4,163,270,
+ 137,9,SS_CENTERIMAGE
+ CONTROL "0x20000: Fake 'gpu busy' states",IDC_FIX18,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,11,285,147,10
+ LTEXT "Toggles busy flags after drawing",IDC_F14_STATIC5,163,
+ 285,137,9,SS_CENTERIMAGE
+END
+
+IDD_KEYS DIALOG DISCARDABLE 0, 0, 186, 162
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
+CAPTION "GPU key configuration"
+FONT 8, "MS Sans Serif"
+BEGIN
+ PUSHBUTTON "Default keys",IDC_DEFAULT,107,6,61,13
+ COMBOBOX IDC_KEY1,108,25,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY2,108,41,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY3,108,57,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY4,108,73,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY5,108,89,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ COMBOBOX IDC_KEY6,108,105,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ DEFPUSHBUTTON "OK",IDOK,19,142,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,115,142,50,14
+ RTEXT "Show/hide gpu menu:",IDC_STATIC,4,26,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Show/hide gpu infos:",IDC_STATIC,4,42,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Toggle selected option up:",IDC_STATIC,4,58,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Toggle selected option down:",IDC_STATIC,4,74,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Select previous option:",IDC_STATIC,4,90,100,9,
+ SS_CENTERIMAGE
+ RTEXT "Select next option:",IDC_STATIC,4,106,100,9,
+ SS_CENTERIMAGE
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO DISCARDABLE
+BEGIN
+ IDD_DIALOG_ABOUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 2
+ RIGHTMARGIN, 253
+ TOPMARGIN, 3
+ BOTTOMMARGIN, 159
+ END
+
+ IDD_CFGDLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 406
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 288
+ END
+
+ IDD_FIXES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 309
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 315
+ END
+
+ IDD_KEYS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 179
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 155
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog Info
+//
+#ifdef _MSC_VER
+
+IDD_CFGDLG DLGINIT
+BEGIN
+ IDC_RESOLUTION, 0x403, 1, 0
+"\000"
+ IDC_COLORDEPTH, 0x403, 7, 0
+0x3631, 0x4220, 0x7469, "\000"
+ IDC_COLORDEPTH, 0x403, 7, 0
+0x3233, 0x4220, 0x7469, "\000"
+ IDC_TEXQUALITY, 0x403, 11, 0
+0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
+ IDC_TEXQUALITY, 0x403, 12, 0
+0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
+ IDC_TEXQUALITY, 0x403, 12, 0
+0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
+ IDC_TEXQUALITY, 0x403, 12, 0
+0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
+ IDC_FILTERTYPE, 0x403, 9, 0
+0x7453, 0x6e61, 0x6164, 0x6472, "\000"
+ IDC_FILTERTYPE, 0x403, 9, 0
+0x7845, 0x6574, 0x646e, 0x6465, "\000"
+ IDC_FILTERTYPE, 0x403, 22, 0
+0x7453, 0x6e61, 0x6164, 0x6472, 0x2820, 0x6f6e, 0x5320, 0x7270, 0x7469,
+0x7365, 0x0029,
+ IDC_FILTERTYPE, 0x403, 22, 0
+0x7845, 0x6574, 0x646e, 0x6465, 0x2820, 0x6f6e, 0x5320, 0x7270, 0x7469,
+0x7365, 0x0029,
+ IDC_HIRESTEX, 0x403, 11, 0
+0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
+ IDC_HIRESTEX, 0x403, 12, 0
+0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
+ IDC_HIRESTEX, 0x403, 12, 0
+0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
+ IDC_HIRESTEX, 0x403, 12, 0
+0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
+ IDC_OFFSCREEN, 0x403, 11, 0
+0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
+ IDC_OFFSCREEN, 0x403, 12, 0
+0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
+ IDC_OFFSCREEN, 0x403, 12, 0
+0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
+ IDC_OFFSCREEN, 0x403, 12, 0
+0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
+ IDC_FRAMETEX, 0x403, 11, 0
+0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
+ IDC_FRAMETEX, 0x403, 12, 0
+0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
+ IDC_FRAMETEX, 0x403, 12, 0
+0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
+ IDC_FRAMETEX, 0x403, 12, 0
+0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
+ IDC_FRAMEREAD, 0x403, 11, 0
+0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
+ IDC_FRAMEREAD, 0x403, 12, 0
+0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
+ IDC_FRAMEREAD, 0x403, 12, 0
+0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
+ IDC_FRAMEREAD, 0x403, 12, 0
+0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
+ 0
+END
+
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_INFO0 "FL - Frame limitation:\n[Off] - Speed as fast as possible\n[On-1] - Limits speed to manual value\n[On-2] - Limits speed to auto-detected value."
+ IDS_INFO1 "FS - Frame skipping:\n[Off] - No frames get skipped\n[On] - Tries to speed up the game by skipping frames. Can cause glitches!"
+ IDS_INFO2 "OD - Offscreen drawing:\n[0-4] - The higher the mode, the more checks for uploading screen data/software drawing will be done. Setting depends on the game."
+ IDS_INFO3 "FI - Texture filtering:\n[0-6] - Filtering will cause glitches! Mode 2/4/6: black borders vanish. Mode 3/4 will not filter sprites. Mode 5/6 will smooth sprites."
+ IDS_INFO4 "DI - Dithering:\n[Off] - No dithering\n[On] - Smoother shading in 16 bit modes."
+ IDS_INFO5 "AM - Alpha multipass:\n[Off] - Faster with some games, but opaque texture areas can get transparent.\n[On] - Accurate psx emulation."
+ IDS_INFO6 "AB - Advanced blending:\n[0-1] - For accurate psx coloring use mode 1. If your gfx card can't do it in hardware, a software mode will be done automatically (slower)."
+ IDS_INFO7 "FA - Framebuffer access:\n[0-4] - Some games read back the framebuffer to create special effects. This can be very slow! In mode 4 everything is done in software."
+ IDS_INFO8 "FT - Frame buffer texture:\n[0-3] - Mode 2 is trying to do some effects (whirls, motion blur) in hardware (can be slow). Mode 1 is turning the effects off (fastest emulation)."
+ IDS_INFO9 "GF - Special game fixes:\n[Off] - Turn off all fixes\n[On] - Turn on all activated fixes. You have to select the fixes you want to use in the gpu config."
+END
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#define _AFX_NO_SPLITTER_RESOURCES
+#define _AFX_NO_OLE_RESOURCES
+#define _AFX_NO_TRACKER_RESOURCES
+#define _AFX_NO_PROPERTY_RESOURCES
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE 9, 1
+#pragma code_page(1252)
+#endif
+#endif
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcproj b/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcproj
index de479eb9..cfa3ea52 100644..100755
--- a/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcproj
+++ b/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcproj
@@ -1,560 +1,560 @@
-<?xml version="1.0" encoding="gb2312"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9,00"
- Name="gpuPeopsOpenGL"
- ProjectGUID="{726BDE88-F2AD-4666-A4BC-5858F973976E}"
- RootNamespace="gpuPeopsOpenGL"
- TargetFrameworkVersion="0"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory=".\Debug"
- IntermediateDirectory=".\Debug"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Debug/gpuPeopsOpenGL.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=".\,.\winsrc,..\..\glue,..\..\..\plugins\peopsxgl,..\..\..\libpcsxcore"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- PrecompiledHeaderFile=".\Debug/gpuPeopsOpenGL.pch"
- AssemblerListingLocation=".\Debug/"
- ObjectFile=".\Debug/"
- ProgramDataBaseFileName=".\Debug/"
- WarningLevel="3"
- SuppressStartupBanner="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1031"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="opengl32.lib winmm.lib"
- OutputFile=".\Debug/gpuPeopsOpenGL.dll"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- ModuleDefinitionFile=".\gpuPeopsOpenGL.def"
- GenerateDebugInformation="true"
- ProgramDatabaseFile=".\Debug/gpuPeopsOpenGL.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary=".\Debug/gpuPeopsOpenGL.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- SuppressStartupBanner="true"
- OutputFile=".\Debug/gpuPeopsOpenGL.bsc"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory=".\Release"
- IntermediateDirectory=".\Release"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Release/gpuPeopsOpenGL.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="1"
- AdditionalIncludeDirectories=".\,.\winsrc,..\..\glue,..\..\..\plugins\peopsxgl,..\..\..\libpcsxcore"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
- StringPooling="true"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- PrecompiledHeaderFile=".\Release/gpuPeopsOpenGL.pch"
- AssemblerListingLocation=".\Release/"
- ObjectFile=".\Release/"
- ProgramDataBaseFileName=".\Release/"
- BrowseInformation="1"
- WarningLevel="3"
- SuppressStartupBanner="true"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1031"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="opengl32.lib winmm.lib"
- OutputFile=".\Release/gpuPeopsOpenGL.dll"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- ModuleDefinitionFile=".\gpuPeopsOpenGL.def"
- ProgramDatabaseFile=".\Release/gpuPeopsOpenGL.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary=".\Release/gpuPeopsOpenGL.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- SuppressStartupBanner="true"
- OutputFile=".\Release/gpuPeopsOpenGL.bsc"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="rem copy release\*.dll d:\emus\epsxe\plugins"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="winsrc"
- >
- <File
- RelativePath="winsrc\cfg.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\fps.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\key.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\ssave.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="winsrc\ssave.h"
- >
- </File>
- <File
- RelativePath="winsrc\winmain.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="peopsxgl"
- >
- <File
- RelativePath="..\..\..\plugins\peopsxgl\cfg.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\draw.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\draw.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\externals.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\fps.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\gl_ext.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\gpu.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\gpu.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\gte_accuracy.c"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\gte_accuracy.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\key.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\menu.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\menu.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\prim.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\prim.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\soft.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\soft.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\stdafx.h"
- >
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\texture.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\plugins\peopsxgl\texture.h"
- >
- </File>
- </Filter>
- <File
- RelativePath=".\res\gpu.bmp"
- >
- </File>
- <File
- RelativePath="gpuPeopsOpenGL.def"
- >
- </File>
- <File
- RelativePath="gpuPeopsOpenGL.rc"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="resource.h"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="gb2312"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="gpuPeopsOpenGL"
+ ProjectGUID="{726BDE88-F2AD-4666-A4BC-5858F973976E}"
+ RootNamespace="gpuPeopsOpenGL"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/gpuPeopsOpenGL.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=".\,.\winsrc,..\..\glue,..\..\..\plugins\peopsxgl,..\..\..\libpcsxcore"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile=".\Debug/gpuPeopsOpenGL.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1031"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="opengl32.lib winmm.lib"
+ OutputFile=".\Debug/gpuPeopsOpenGL.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ModuleDefinitionFile=".\gpuPeopsOpenGL.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\Debug/gpuPeopsOpenGL.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary=".\Debug/gpuPeopsOpenGL.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Debug/gpuPeopsOpenGL.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/gpuPeopsOpenGL.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories=".\,.\winsrc,..\..\glue,..\..\..\plugins\peopsxgl,..\..\..\libpcsxcore"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\Release/gpuPeopsOpenGL.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1031"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="opengl32.lib winmm.lib"
+ OutputFile=".\Release/gpuPeopsOpenGL.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ModuleDefinitionFile=".\gpuPeopsOpenGL.def"
+ ProgramDatabaseFile=".\Release/gpuPeopsOpenGL.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary=".\Release/gpuPeopsOpenGL.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Release/gpuPeopsOpenGL.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="rem copy release\*.dll d:\emus\epsxe\plugins"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="winsrc"
+ >
+ <File
+ RelativePath="winsrc\cfg.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\fps.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\key.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\ssave.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="winsrc\ssave.h"
+ >
+ </File>
+ <File
+ RelativePath="winsrc\winmain.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="peopsxgl"
+ >
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\cfg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\draw.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\draw.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\externals.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\fps.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\gl_ext.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\gpu.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\gpu.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\gte_accuracy.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\gte_accuracy.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\key.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\menu.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\menu.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\prim.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\prim.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\soft.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\soft.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\stdafx.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\texture.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\plugins\peopsxgl\texture.h"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath=".\res\gpu.bmp"
+ >
+ </File>
+ <File
+ RelativePath="gpuPeopsOpenGL.def"
+ >
+ </File>
+ <File
+ RelativePath="gpuPeopsOpenGL.rc"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="resource.h"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/win32/plugins/peopsxgl/resource.h b/win32/plugins/peopsxgl/resource.h
index 8d59b103..c30e0fb4 100644..100755
--- a/win32/plugins/peopsxgl/resource.h
+++ b/win32/plugins/peopsxgl/resource.h
@@ -1,134 +1,134 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by gpuPeopsOpenGL.rc
-//
-#define IDS_INFO0 1
-#define IDS_INFO1 2
-#define IDS_INFO2 3
-#define IDC_DEFAULT 3
-#define IDS_INFO3 4
-#define IDS_INFO4 5
-#define IDS_INFO5 6
-#define IDS_INFO6 7
-#define IDS_INFO7 8
-#define IDS_INFO8 9
-#define IDS_INFO9 10
-#define IDC_DEF1 127
-#define IDC_DEF2 128
-#define IDD_DIALOG_ABOUT 129
-#define IDD_CFGDLG 130
-#define IDD_FIXES 134
-#define IDB_GPU 135
-#define IDD_KEYS 138
-#define IDC_TEXWINDOWS 1001
-#define IDC_TEXFIX 1002
-#define IDC_TEXLINEAR 1003
-#define IDC_RESOLUTION 1004
-#define IDC_DRAWDITHER 1005
-#define IDC_CACHESIZE 1006
-#define IDC_BLUR 1007
-#define IDC_CACHETXT 1008
-#define IDC_SSAVE 1009
-#define IDC_USELINES 1010
-#define IDC_COLORDEPTH 1011
-#define IDC_CHANGEDESK 1012
-#define IDC_VSYNC 1012
-#define IDC_USELIMIT 1013
-#define IDC_FRAMELIMIT 1014
-#define IDC_FRAMEAUTO 1015
-#define IDC_FRAMEMANUELL 1016
-#define IDC_ADVBLEND 1017
-#define IDC_OFFSCREEN 1018
-#define IDC_OPAQUE 1019
-#define IDC_TEXQUALITY 1020
-#define IDC_USESKIP 1021
-#define IDC_DISPMODE1 1022
-#define IDC_DISPMODE2 1023
-#define IDC_SUBCACHE 1024
-#define IDC_VRAMSIZE 1025
-#define IDC_WINDOWFREE 1026
-#define IDC_EXTCOLCHECK 1027
-#define IDC_FRAMETEX 1028
-#define IDC_WINDOWAUTO 1029
-#define IDC_USETEXPRIO 1030
-#define IDC_SHOWFPS 1031
-#define IDC_WINX 1032
-#define IDC_WINY 1033
-#define IDC_FILTERTYPE 1034
-#define IDC_USEANTIALIAS 1035
-#define IDC_SCANBLEND 1036
-#define IDC_3DGLASSES 1037
-#define IDC_USESCANLINES 1038
-#define IDC_KEY1 1039
-#define IDC_KEY2 1040
-#define IDC_KEY3 1041
-#define IDC_KEY4 1042
-#define IDC_KEY5 1043
-#define IDC_KEY6 1044
-#define IDC_USEMASK 1045
-#define IDC_FASTMDEC 1046
-#define IDC_FULLVRAM 1047
-#define IDC_FRAMEREAD 1048
-#define IDC_ARATIO 1049
-#define IDC_CLIPBOARD 1050
-#define IDC_CLPEDIT 1051
-#define IDC_QUALTXT 1052
-#define IDC_QUALTXT2 1053
-#define IDC_QUALTXT3 1054
-#define IDC_GARBAGE 1055
-#define IDC_PALTEXWND 1056
-#define IDC_HIRESTEX 1057
-#define IDC_GAMEFIX 1058
-#define IDC_SELFIX 1059
-#define IDC_KEYCONFIG 1060
-#define IDC_T14_STATIC2 1061
-#define IDC_FASTMDEC2 1062
-#define IDC_QUALTXT4 1063
-#define IDC_GAMEFIX2 1064
-#define IDC_GTEACCURACY 1065
-#define IDC_F14_STATIC3 1083
-#define IDC_F14_STATIC4 1084
-#define IDC_F14_STATIC5 1085
-#define IDC_FIX1 2038
-#define IDC_FIX2 2039
-#define IDC_FIX3 2040
-#define IDC_FIX4 2041
-#define IDC_FIX5 2042
-#define IDC_FIX6 2043
-#define IDC_FIX7 2044
-#define IDC_FIX8 2045
-#define IDC_FIX9 2046
-#define IDC_FIX10 2047
-#define IDC_FIX11 2048
-#define IDC_FIX12 2049
-#define IDC_FIX13 2050
-#define IDC_FIX14 2051
-#define IDC_FIX15 2052
-#define IDC_FIX16 2053
-#define IDC_FIX17 2054
-#define IDC_FIX18 2055
-#define IDC_FIX19 2056
-#define IDC_FIX20 2057
-#define IDC_FIX21 2058
-#define IDC_FIX22 2059
-#define IDC_FIX23 2060
-#define IDC_FIX24 2061
-#define IDC_FIX25 2062
-#define IDC_FIX26 2063
-#define IDC_FIX27 2064
-#define IDC_FIX28 2065
-#define IDC_FIX29 2066
-#define IDC_FIX30 2067
-#define IDC_FIX31 2068
-#define IDC_FIX32 2069
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 140
-#define _APS_NEXT_COMMAND_VALUE 32771
-#define _APS_NEXT_CONTROL_VALUE 2070
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by gpuPeopsOpenGL.rc
+//
+#define IDS_INFO0 1
+#define IDS_INFO1 2
+#define IDS_INFO2 3
+#define IDC_DEFAULT 3
+#define IDS_INFO3 4
+#define IDS_INFO4 5
+#define IDS_INFO5 6
+#define IDS_INFO6 7
+#define IDS_INFO7 8
+#define IDS_INFO8 9
+#define IDS_INFO9 10
+#define IDC_DEF1 127
+#define IDC_DEF2 128
+#define IDD_DIALOG_ABOUT 129
+#define IDD_CFGDLG 130
+#define IDD_FIXES 134
+#define IDB_GPU 135
+#define IDD_KEYS 138
+#define IDC_TEXWINDOWS 1001
+#define IDC_TEXFIX 1002
+#define IDC_TEXLINEAR 1003
+#define IDC_RESOLUTION 1004
+#define IDC_DRAWDITHER 1005
+#define IDC_CACHESIZE 1006
+#define IDC_BLUR 1007
+#define IDC_CACHETXT 1008
+#define IDC_SSAVE 1009
+#define IDC_USELINES 1010
+#define IDC_COLORDEPTH 1011
+#define IDC_CHANGEDESK 1012
+#define IDC_VSYNC 1012
+#define IDC_USELIMIT 1013
+#define IDC_FRAMELIMIT 1014
+#define IDC_FRAMEAUTO 1015
+#define IDC_FRAMEMANUELL 1016
+#define IDC_ADVBLEND 1017
+#define IDC_OFFSCREEN 1018
+#define IDC_OPAQUE 1019
+#define IDC_TEXQUALITY 1020
+#define IDC_USESKIP 1021
+#define IDC_DISPMODE1 1022
+#define IDC_DISPMODE2 1023
+#define IDC_SUBCACHE 1024
+#define IDC_VRAMSIZE 1025
+#define IDC_WINDOWFREE 1026
+#define IDC_EXTCOLCHECK 1027
+#define IDC_FRAMETEX 1028
+#define IDC_WINDOWAUTO 1029
+#define IDC_USETEXPRIO 1030
+#define IDC_SHOWFPS 1031
+#define IDC_WINX 1032
+#define IDC_WINY 1033
+#define IDC_FILTERTYPE 1034
+#define IDC_USEANTIALIAS 1035
+#define IDC_SCANBLEND 1036
+#define IDC_3DGLASSES 1037
+#define IDC_USESCANLINES 1038
+#define IDC_KEY1 1039
+#define IDC_KEY2 1040
+#define IDC_KEY3 1041
+#define IDC_KEY4 1042
+#define IDC_KEY5 1043
+#define IDC_KEY6 1044
+#define IDC_USEMASK 1045
+#define IDC_FASTMDEC 1046
+#define IDC_FULLVRAM 1047
+#define IDC_FRAMEREAD 1048
+#define IDC_ARATIO 1049
+#define IDC_CLIPBOARD 1050
+#define IDC_CLPEDIT 1051
+#define IDC_QUALTXT 1052
+#define IDC_QUALTXT2 1053
+#define IDC_QUALTXT3 1054
+#define IDC_GARBAGE 1055
+#define IDC_PALTEXWND 1056
+#define IDC_HIRESTEX 1057
+#define IDC_GAMEFIX 1058
+#define IDC_SELFIX 1059
+#define IDC_KEYCONFIG 1060
+#define IDC_T14_STATIC2 1061
+#define IDC_FASTMDEC2 1062
+#define IDC_QUALTXT4 1063
+#define IDC_GAMEFIX2 1064
+#define IDC_GTEACCURACY 1065
+#define IDC_F14_STATIC3 1083
+#define IDC_F14_STATIC4 1084
+#define IDC_F14_STATIC5 1085
+#define IDC_FIX1 2038
+#define IDC_FIX2 2039
+#define IDC_FIX3 2040
+#define IDC_FIX4 2041
+#define IDC_FIX5 2042
+#define IDC_FIX6 2043
+#define IDC_FIX7 2044
+#define IDC_FIX8 2045
+#define IDC_FIX9 2046
+#define IDC_FIX10 2047
+#define IDC_FIX11 2048
+#define IDC_FIX12 2049
+#define IDC_FIX13 2050
+#define IDC_FIX14 2051
+#define IDC_FIX15 2052
+#define IDC_FIX16 2053
+#define IDC_FIX17 2054
+#define IDC_FIX18 2055
+#define IDC_FIX19 2056
+#define IDC_FIX20 2057
+#define IDC_FIX21 2058
+#define IDC_FIX22 2059
+#define IDC_FIX23 2060
+#define IDC_FIX24 2061
+#define IDC_FIX25 2062
+#define IDC_FIX26 2063
+#define IDC_FIX27 2064
+#define IDC_FIX28 2065
+#define IDC_FIX29 2066
+#define IDC_FIX30 2067
+#define IDC_FIX31 2068
+#define IDC_FIX32 2069
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 140
+#define _APS_NEXT_COMMAND_VALUE 32771
+#define _APS_NEXT_CONTROL_VALUE 2070
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/win32/plugins/peopsxgl/winsrc/cfg.c b/win32/plugins/peopsxgl/winsrc/cfg.c
index 99c29b27..eef8f650 100644..100755
--- a/win32/plugins/peopsxgl/winsrc/cfg.c
+++ b/win32/plugins/peopsxgl/winsrc/cfg.c
@@ -1,1041 +1,1041 @@
-/***************************************************************************
- cfg.c - description
- -------------------
- begin : Sun Mar 08 2009
- copyright : (C) 1999-2009 by Pete Bernert
- web : www.pbernert.com
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. See also the license.txt file for *
- * additional informations. *
- * *
- ***************************************************************************/
-
-#define _IN_CFG
-
-/////////////////////////////////////////////////////////////////////////////
-// Windows config handling
-
-#include "stdafx.h"
-#include "resource.h"
-#include "externals.h"
-#include "cfg.h"
-#include <stdio.h>
-
-char szKeyDefaults[7]={VK_DELETE,VK_INSERT,VK_HOME,VK_END,VK_PRIOR,VK_NEXT,0x00};
-
-/////////////////////////////////////////////////////////////////////////////
-// CCfgDlg dialog
-
-BOOL OnInitCfgDialog(HWND hW);
-void OnCfgOK(HWND hW);
-void OnCfgCancel(HWND hW);
-void OnCfgDef1(HWND hW);
-void OnCfgDef2(HWND hW);
-void OnBugFixes(HWND hW);
-void OnKeyConfig(HWND hW);
-void GetSettings(HWND hW);
-void OnClipboard(HWND hW);
-char * GetConfigInfos(HWND hWE);
-
-BOOL CALLBACK CfgDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
- switch(uMsg)
- {
- case WM_INITDIALOG:
- return OnInitCfgDialog(hW);
-
- case WM_COMMAND:
- {
- switch(LOWORD(wParam))
- {
- case IDC_DEF1: OnCfgDef1(hW); return TRUE;
- case IDC_DEF2: OnCfgDef2(hW); return TRUE;
- case IDC_SELFIX: OnBugFixes(hW); return TRUE;
- case IDC_KEYCONFIG: OnKeyConfig(hW); return TRUE;
- case IDCANCEL: OnCfgCancel(hW); return TRUE;
- case IDOK: OnCfgOK(hW); return TRUE;
- case IDC_CLIPBOARD: OnClipboard(hW); return TRUE;
- }
- }
- }
- return FALSE;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// CCfgDlg message handlers
-
-////////////////////////////////////////////////////////////////////////
-// init dlg
-////////////////////////////////////////////////////////////////////////
-
-void ComboBoxAddRes(HWND hWC,char * cs) // ADD COMBOBOX RESOURCES
-{
- int i=ComboBox_FindString(hWC,-1,cs);
- if(i!=CB_ERR) return;
- ComboBox_AddString(hWC,cs);
-}
-
-
-BOOL OnInitCfgDialog(HWND hW) // INIT CONFIG DIALOG
-{
- HWND hWC;char cs[256];int i;DEVMODE dv;
-
- ReadConfig(); // read registry stuff
-
- //----------------------------------------------------// fill combo with available resolutions
-
- hWC=GetDlgItem(hW,IDC_RESOLUTION);
-
- memset(&dv,0,sizeof(DEVMODE));
- dv.dmSize=sizeof(DEVMODE);
- i=0;
-
- while(EnumDisplaySettings(NULL,i,&dv)) // add all resolutions from the driver
- {
- wsprintf(cs,"%4d x %4d",dv.dmPelsWidth,dv.dmPelsHeight);
- ComboBoxAddRes(hWC,cs);
- i++;
- }
-
- ComboBoxAddRes(hWC," 640 x 480"); // and also add some common ones
- ComboBoxAddRes(hWC," 800 x 600");
- ComboBoxAddRes(hWC,"1024 x 768");
- ComboBoxAddRes(hWC,"1152 x 864");
- ComboBoxAddRes(hWC,"1280 x 1024");
- ComboBoxAddRes(hWC,"1600 x 1200");
-
- wsprintf(cs,"%4d x %4d",iResX,iResY); // search curr resolution in combo
- i=ComboBox_FindString(hWC,-1,cs);
- if(i==CB_ERR) i=0;
- ComboBox_SetCurSel(hWC,i); // and select this one
-
- //----------------------------------------------------// window size
-
- SetDlgItemInt(hW,IDC_WINX,LOWORD(iWinSize),FALSE);
- SetDlgItemInt(hW,IDC_WINY,HIWORD(iWinSize),FALSE);
-
- //----------------------------------------------------// color depth
-
- hWC=GetDlgItem(hW,IDC_COLORDEPTH);
- ComboBox_AddString(hWC,"16 Bit");
- ComboBox_AddString(hWC,"32 Bit");
- wsprintf(cs,"%d Bit",iColDepth);
- i=ComboBox_FindString(hWC,-1,cs);
- if(i==CB_ERR) i=0;
- ComboBox_SetCurSel(hWC,i);
-
- //----------------------------------------------------// vsync
-
- hWC=GetDlgItem(hW,IDC_VSYNC);
- ComboBox_AddString(hWC,"Driver");
- ComboBox_AddString(hWC,"Off");
- ComboBox_AddString(hWC,"On");
- ComboBox_SetCurSel(hWC,iForceVSync+1);
-
- //----------------------------------------------------// vram size
-
- hWC=GetDlgItem(hW,IDC_VRAMSIZE);
- ComboBox_AddString(hWC,"0 (Autodetect)");
- ComboBox_AddString(hWC,"2");
- ComboBox_AddString(hWC,"4");
- ComboBox_AddString(hWC,"8");
- ComboBox_AddString(hWC,"16");
- ComboBox_AddString(hWC,"32");
- ComboBox_AddString(hWC,"64");
- ComboBox_AddString(hWC,"128 (or more)");
-
- if(!iVRamSize) ComboBox_SetCurSel(hWC,0);
- else {wsprintf(cs,"%d",iVRamSize);ComboBox_SetText(hWC,cs);}
-
- //----------------------------------------------------// texture quality
-
- hWC=GetDlgItem(hW,IDC_TEXQUALITY);
- ComboBox_AddString(hWC,"don't care - Use driver's default textures");
- ComboBox_AddString(hWC,"R4 G4 B4 A4 - Fast, but less colorful");
- ComboBox_AddString(hWC,"R5 G5 B5 A1 - Nice colors, bad transparency");
- ComboBox_AddString(hWC,"R8 G8 B8 A8 - Best colors, more ram needed");
- ComboBox_AddString(hWC,"B8 G8 R8 A8 - Slightly faster with some cards");
- ComboBox_SetCurSel(hWC,iTexQuality);
-
- //----------------------------------------------------// all kind of on/off options
-
- if(bDrawDither) CheckDlgButton(hW,IDC_DRAWDITHER,TRUE);
- if(bUseLines) CheckDlgButton(hW,IDC_USELINES,TRUE);
- if(bUseFrameLimit) CheckDlgButton(hW,IDC_USELIMIT,TRUE);
- if(bUseFrameSkip) CheckDlgButton(hW,IDC_USESKIP,TRUE);
- if(bAdvancedBlend) CheckDlgButton(hW,IDC_ADVBLEND,TRUE);
- if(bOpaquePass) CheckDlgButton(hW,IDC_OPAQUE,TRUE);
-// if(bUseAntiAlias) CheckDlgButton(hW,IDC_USEANTIALIAS,TRUE);
- if(bWindowMode) CheckDlgButton(hW,IDC_DISPMODE2,TRUE);
- else CheckDlgButton(hW,IDC_DISPMODE1,TRUE);
- if(iUseMask) CheckDlgButton(hW,IDC_USEMASK,TRUE);
- if(bUseFastMdec) CheckDlgButton(hW,IDC_FASTMDEC,TRUE);
- if(bUse15bitMdec) CheckDlgButton(hW,IDC_FASTMDEC2,TRUE);
- if(bUseFixes) CheckDlgButton(hW,IDC_GAMEFIX,TRUE);
- if(bGteAccuracy) CheckDlgButton(hW,IDC_GTEACCURACY,TRUE);
- if(iUseScanLines) CheckDlgButton(hW,IDC_USESCANLINES,TRUE);
- if(iShowFPS) CheckDlgButton(hW,IDC_SHOWFPS,TRUE);
- if(bKeepRatio) CheckDlgButton(hW,IDC_ARATIO,TRUE);
- if(iBlurBuffer) CheckDlgButton(hW,IDC_BLUR,TRUE);
- if(iNoScreenSaver) CheckDlgButton(hW,IDC_SSAVE,TRUE);
-
- //----------------------------------------------------// texture filter
-
- hWC=GetDlgItem(hW,IDC_FILTERTYPE);
- ComboBox_AddString(hWC,"0: None");
- ComboBox_AddString(hWC,"1: Standard - Glitches will happen");
- ComboBox_AddString(hWC,"2: Extended - Removes black borders");
- ComboBox_AddString(hWC,"3: Standard w/o Sprites - unfiltered 2D");
- ComboBox_AddString(hWC,"4: Extended w/o Sprites - unfiltered 2D");
- ComboBox_AddString(hWC,"5: Standard + smoothed Sprites");
- ComboBox_AddString(hWC,"6: Extended + smoothed Sprites");
- ComboBox_SetCurSel(hWC,iFilterType);
-
- //----------------------------------------------------// hires texture mode
-
- hWC=GetDlgItem(hW,IDC_HIRESTEX);
- ComboBox_AddString(hWC,"0: None (standard)");
- ComboBox_AddString(hWC,"1: 2xSaI (much vram needed)");
- ComboBox_AddString(hWC,"2: Stretched (filtering needed)");
- ComboBox_SetCurSel(hWC,iHiResTextures);
-
- //----------------------------------------------------// offscreen drawing
-
- hWC=GetDlgItem(hW,IDC_OFFSCREEN);
- ComboBox_AddString(hWC,"0: None - Fastest, most glitches");
- ComboBox_AddString(hWC,"1: Minimum - Missing screens");
- ComboBox_AddString(hWC,"2: Standard - OK for most games");
- ComboBox_AddString(hWC,"3: Enhanced - Shows more stuff");
- ComboBox_AddString(hWC,"4: Extended - Can cause garbage");
- ComboBox_SetCurSel(hWC,iOffscreenDrawing);
-
- //----------------------------------------------------// texture quality
-
- hWC=GetDlgItem(hW,IDC_FRAMETEX);
- ComboBox_AddString(hWC,"0: Emulated vram - effects need FVP");
- ComboBox_AddString(hWC,"1: Black - Fast but no special effects");
- ComboBox_AddString(hWC,"2: Gfx card buffer - Can be slow");
- ComboBox_AddString(hWC,"3: Gfx card buffer & software - slow");
- ComboBox_SetCurSel(hWC,iFrameTexType);
-
- //----------------------------------------------------// framebuffer read mode
-
- hWC=GetDlgItem(hW,IDC_FRAMEREAD);
- ComboBox_AddString(hWC,"0: Emulated vram - OK for most games");
- ComboBox_AddString(hWC,"1: Gfx card buffer reads");
- ComboBox_AddString(hWC,"2: Gfx card buffer moves");
- ComboBox_AddString(hWC,"3: Gfx card buffer reads & moves");
- ComboBox_AddString(hWC,"4: Full software drawing (FVP)");
- ComboBox_SetCurSel(hWC,iFrameReadType);
-
- //----------------------------------------------------// framerate stuff
-
- if(iFrameLimit==2)
- CheckDlgButton(hW,IDC_FRAMEAUTO,TRUE);
- else CheckDlgButton(hW,IDC_FRAMEMANUELL,TRUE);
-
- sprintf(cs,"%.2f",fFrameRate);
- SetDlgItemText(hW,IDC_FRAMELIMIT,cs);
- SetDlgItemInt(hW,IDC_SCANBLEND,iScanBlend,TRUE);
-
- return TRUE;
-}
-
-////////////////////////////////////////////////////////////////////////
-// on ok: take vals
-////////////////////////////////////////////////////////////////////////
-
-void GetSettings(HWND hW)
-{
- HWND hWC;char cs[256];int i,j;char * p;
-
- hWC=GetDlgItem(hW,IDC_VRAMSIZE); // get vram size
- ComboBox_GetText(hWC,cs,255);
- iVRamSize=atoi(cs);
- if(iVRamSize<0) iVRamSize=0;
- if(iVRamSize>1024) iVRamSize=1024;
-
- hWC=GetDlgItem(hW,IDC_RESOLUTION); // get resolution
- i=ComboBox_GetCurSel(hWC);
- ComboBox_GetLBText(hWC,i,cs);
- iResX=atol(cs);
- p=strchr(cs,'x');
- if(p) iResY=atol(p+1);
- else iResY=480;
-
- hWC=GetDlgItem(hW,IDC_COLORDEPTH); // get color depth
- i=ComboBox_GetCurSel(hWC);
- ComboBox_GetLBText(hWC,i,cs);
- iColDepth=atol(cs);
-
- hWC=GetDlgItem(hW,IDC_VSYNC); // get vsync
- iForceVSync=ComboBox_GetCurSel(hWC)-1;
-
- i=GetDlgItemInt(hW,IDC_WINX,NULL,FALSE); // get win size
- if(i<100) i=100; if(i>16384) i=16384;
- j=GetDlgItemInt(hW,IDC_WINY,NULL,FALSE);
- if(j<100) j=100; if(j>16384) j=16384;
- iWinSize=MAKELONG(i,j);
-
- hWC=GetDlgItem(hW,IDC_TEXQUALITY); // texture quality
- iTexQuality=ComboBox_GetCurSel(hWC);
-
- hWC=GetDlgItem(hW,IDC_FILTERTYPE); // all kind of options
- iFilterType=ComboBox_GetCurSel(hWC);
-
- if(IsDlgButtonChecked(hW,IDC_DRAWDITHER))
- bDrawDither=TRUE; else bDrawDither=FALSE;
-
- if(IsDlgButtonChecked(hW,IDC_USELINES))
- bUseLines=TRUE; else bUseLines=FALSE;
-
- if(IsDlgButtonChecked(hW,IDC_DISPMODE2))
- bWindowMode=TRUE; else bWindowMode=FALSE;
-
- if(IsDlgButtonChecked(hW,IDC_ADVBLEND))
- bAdvancedBlend=TRUE; else bAdvancedBlend=FALSE;
-
- iOffscreenDrawing=ComboBox_GetCurSel(GetDlgItem(hW,IDC_OFFSCREEN));
-
- iFrameTexType=ComboBox_GetCurSel(GetDlgItem(hW,IDC_FRAMETEX));
- iFrameReadType=ComboBox_GetCurSel(GetDlgItem(hW,IDC_FRAMEREAD));
-
- if(IsDlgButtonChecked(hW,IDC_USELIMIT))
- bUseFrameLimit=TRUE; else bUseFrameLimit=FALSE;
-
- if(IsDlgButtonChecked(hW,IDC_USESKIP))
- bUseFrameSkip=TRUE; else bUseFrameSkip=FALSE;
-
- if(IsDlgButtonChecked(hW,IDC_OPAQUE))
- bOpaquePass=TRUE; else bOpaquePass=FALSE;
-
-// if(IsDlgButtonChecked(hW,IDC_USEANTIALIAS))
-// bUseAntiAlias=TRUE; else bUseAntiAlias=FALSE;
-
- if(IsDlgButtonChecked(hW,IDC_FASTMDEC))
- bUseFastMdec=TRUE; else bUseFastMdec=FALSE;
-
- if(IsDlgButtonChecked(hW,IDC_FASTMDEC2))
- bUse15bitMdec=TRUE; else bUse15bitMdec=FALSE;
-
- if(IsDlgButtonChecked(hW,IDC_GAMEFIX))
- bUseFixes=TRUE; else bUseFixes=FALSE;
-
- if(IsDlgButtonChecked(hW,IDC_GTEACCURACY))
- bGteAccuracy=TRUE; else bGteAccuracy=FALSE;
-
- if(IsDlgButtonChecked(hW,IDC_USESCANLINES))
- iUseScanLines=1; else iUseScanLines=0;
-
- if(IsDlgButtonChecked(hW,IDC_SHOWFPS))
- iShowFPS=1; else iShowFPS=0;
-
- if(IsDlgButtonChecked(hW,IDC_ARATIO))
- bKeepRatio=TRUE; else bKeepRatio=FALSE;
-
- if(IsDlgButtonChecked(hW,IDC_BLUR))
- iBlurBuffer=1; else iBlurBuffer=0;
-
- if(IsDlgButtonChecked(hW,IDC_SSAVE))
- iNoScreenSaver=1; else iNoScreenSaver=0;
-
- hWC=GetDlgItem(hW,IDC_HIRESTEX);
- iHiResTextures=ComboBox_GetCurSel(hWC);
-
- if(IsDlgButtonChecked(hW,IDC_USEMASK))
- {iUseMask=1;iZBufferDepth=16;}
- else {iUseMask=0;iZBufferDepth=0; }
-
- iScanBlend=GetDlgItemInt(hW,IDC_SCANBLEND,NULL,TRUE);
- if(iScanBlend>255) iScanBlend=0;
- if(iScanBlend<-1) iScanBlend=-1;
-
- if(IsDlgButtonChecked(hW,IDC_FRAMEAUTO)) // frame rate settings
- iFrameLimit=2;
- else iFrameLimit=1;
-
- GetDlgItemText(hW,IDC_FRAMELIMIT,cs,255);
- fFrameRate=(float)atof(cs);
- if(fFrameRate<10.0f) fFrameRate=10.0f;
- if(fFrameRate>1000.0f) fFrameRate=1000.0f;
-}
-
-////////////////////////////////////////////////////////////////////////
-// OK button
-////////////////////////////////////////////////////////////////////////
-
-void OnCfgOK(HWND hW)
-{
- GetSettings(hW); // get dialog settings
-
- WriteConfig(); // write registry
-
- EndDialog(hW,TRUE); // close dialog
-}
-
-////////////////////////////////////////////////////////////////////////
-// Clipboard button
-////////////////////////////////////////////////////////////////////////
-
-void OnClipboard(HWND hW)
-{
- HWND hWE=GetDlgItem(hW,IDC_CLPEDIT);
- char * pB;
-
- GetSettings(hW); // get dialog setings
- pB=GetConfigInfos(hWE); // get text infos
-
- if(pB) // some text got?
- {
- SetDlgItemText(hW,IDC_CLPEDIT,pB); // -> set text in invisible edit
- SendMessage(hWE,EM_SETSEL,0,-1); // -> sel all in edit
- SendMessage(hWE,WM_COPY,0,0); // -> copy sel to clipboard
- free(pB); // -> free helper text buffer
-
- MessageBox(hW,"Configuration info successfully copied to the clipboard\nJust use the PASTE function in another program to retrieve the data!","Copy Info",MB_ICONINFORMATION|MB_OK);
- }
-}
-
-////////////////////////////////////////////////////////////////////////
-// Cancel button (just closes window)
-////////////////////////////////////////////////////////////////////////
-
-void OnCfgCancel(HWND hW)
-{
- EndDialog(hW,FALSE);
-}
-
-////////////////////////////////////////////////////////////////////////
-// Bug fixes
-////////////////////////////////////////////////////////////////////////
-
-BOOL CALLBACK BugFixesDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
- switch(uMsg)
- {
- case WM_INITDIALOG: // init dialog:
- {
- int i;
-
- for(i=0;i<32;i++) // -> loop all 32 checkboxes
- {
- if(dwCfgFixes&(1<<i)) // --> if fix is active: check box
- CheckDlgButton(hW,IDC_FIX1+i,TRUE);
- }
- }
-
- case WM_COMMAND:
- {
- switch(LOWORD(wParam))
- {
- case IDCANCEL: EndDialog(hW,FALSE);return TRUE; // cancel: close window
-
- case IDOK: // ok: take settings and close
- {
- int i;
- dwCfgFixes=0;
- for(i=0;i<32;i++)
- {
- if(IsDlgButtonChecked(hW,IDC_FIX1+i))
- dwCfgFixes|=(1<<i);
- }
- EndDialog(hW,TRUE);
- return TRUE;
- }
- }
- }
- }
- return FALSE;
-}
-
-void OnBugFixes(HWND hW) // bug fix button:
-{
- DialogBox(hInst,MAKEINTRESOURCE(IDD_FIXES), // show fix window
- hW,(DLGPROC)BugFixesDlgProc);
-}
-
-////////////////////////////////////////////////////////////////////////
-// default 1: fast
-////////////////////////////////////////////////////////////////////////
-
-void OnCfgDef1(HWND hW)
-{
- HWND hWC;
-
- hWC=GetDlgItem(hW,IDC_RESOLUTION);
- ComboBox_SetCurSel(hWC,0);
- hWC=GetDlgItem(hW,IDC_COLORDEPTH);
- ComboBox_SetCurSel(hWC,0);
- hWC=GetDlgItem(hW,IDC_VSYNC);
- ComboBox_SetCurSel(hWC,1);
- hWC=GetDlgItem(hW,IDC_TEXQUALITY);
- ComboBox_SetCurSel(hWC,0);
- hWC=GetDlgItem(hW,IDC_FILTERTYPE);
- ComboBox_SetCurSel(hWC,0);
- hWC=GetDlgItem(hW,IDC_OFFSCREEN);
- ComboBox_SetCurSel(hWC,1);
- hWC=GetDlgItem(hW,IDC_VRAMSIZE);
- ComboBox_SetCurSel(hWC,0);
-
- CheckDlgButton(hW,IDC_TEXLINEAR,FALSE);
- CheckDlgButton(hW,IDC_DRAWDITHER,FALSE);
- CheckDlgButton(hW,IDC_USELINES,FALSE);
- CheckDlgButton(hW,IDC_USELIMIT,FALSE);
- CheckDlgButton(hW,IDC_USESKIP,FALSE);
- CheckDlgButton(hW,IDC_ADVBLEND,FALSE);
- CheckDlgButton(hW,IDC_OPAQUE,TRUE);
-// CheckDlgButton(hW,IDC_USEANTIALIAS,FALSE);
- CheckDlgButton(hW,IDC_DISPMODE2,FALSE);
- CheckDlgButton(hW,IDC_DISPMODE1,TRUE);
- CheckDlgButton(hW,IDC_FRAMEAUTO,TRUE);
- CheckDlgButton(hW,IDC_FRAMEMANUELL,FALSE);
- CheckDlgButton(hW,IDC_SHOWFPS,FALSE);
-
- ComboBox_SetCurSel(GetDlgItem(hW,IDC_SUBCACHE),2);
- ComboBox_SetCurSel(GetDlgItem(hW,IDC_FRAMETEX),1);
- ComboBox_SetCurSel(GetDlgItem(hW,IDC_FRAMEREAD),0);
-
- CheckDlgButton(hW,IDC_USEMASK,FALSE);
- CheckDlgButton(hW,IDC_FASTMDEC,TRUE);
- CheckDlgButton(hW,IDC_FASTMDEC2,TRUE);
- CheckDlgButton(hW,IDC_USESCANLINES,FALSE);
-
- SetDlgItemInt(hW,IDC_FRAMELIMIT,200,FALSE);
- SetDlgItemInt(hW,IDC_WINX,640,FALSE);
- SetDlgItemInt(hW,IDC_WINY,480,FALSE);
-
- CheckDlgButton(hW,IDC_ARATIO,FALSE);
- CheckDlgButton(hW,IDC_BLUR,FALSE);
-
- SetDlgItemInt(hW,IDC_SCANBLEND,0,TRUE);
- ComboBox_SetCurSel(GetDlgItem(hW,IDC_HIRESTEX),0);
- CheckDlgButton(hW,IDC_SSAVE,FALSE);
-}
-
-////////////////////////////////////////////////////////////////////////
-// default 2: nice
-////////////////////////////////////////////////////////////////////////
-
-void OnCfgDef2(HWND hW)
-{
- HWND hWC;
-
- hWC=GetDlgItem(hW,IDC_RESOLUTION);
- ComboBox_SetCurSel(hWC,1);
- hWC=GetDlgItem(hW,IDC_COLORDEPTH);
- ComboBox_SetCurSel(hWC,1);
- hWC=GetDlgItem(hW,IDC_VSYNC);
- ComboBox_SetCurSel(hWC,2);
- hWC=GetDlgItem(hW,IDC_TEXQUALITY);
- ComboBox_SetCurSel(hWC,3);
- hWC=GetDlgItem(hW,IDC_FILTERTYPE);
- ComboBox_SetCurSel(hWC,0);
- hWC=GetDlgItem(hW,IDC_OFFSCREEN);
- ComboBox_SetCurSel(hWC,3);
- hWC=GetDlgItem(hW,IDC_VRAMSIZE);
- ComboBox_SetCurSel(hWC,0);
-
- CheckDlgButton(hW,IDC_TEXLINEAR,FALSE);
- CheckDlgButton(hW,IDC_DRAWDITHER,FALSE);
- CheckDlgButton(hW,IDC_USELINES,FALSE);
- CheckDlgButton(hW,IDC_USELIMIT,TRUE);
- CheckDlgButton(hW,IDC_USESKIP,FALSE);
- CheckDlgButton(hW,IDC_ADVBLEND,TRUE);
- CheckDlgButton(hW,IDC_OPAQUE,TRUE);
-// CheckDlgButton(hW,IDC_USEANTIALIAS,FALSE);
- CheckDlgButton(hW,IDC_DISPMODE2,FALSE);
- CheckDlgButton(hW,IDC_DISPMODE1,TRUE);
- CheckDlgButton(hW,IDC_FRAMEAUTO,TRUE);
- CheckDlgButton(hW,IDC_FRAMEMANUELL,FALSE);
- CheckDlgButton(hW,IDC_SHOWFPS,FALSE);
-
- ComboBox_SetCurSel(GetDlgItem(hW,IDC_SUBCACHE),2);
- ComboBox_SetCurSel(GetDlgItem(hW,IDC_FRAMETEX),2);
- ComboBox_SetCurSel(GetDlgItem(hW,IDC_FRAMEREAD),0);
-
- CheckDlgButton(hW,IDC_USEMASK,TRUE);
- CheckDlgButton(hW,IDC_FASTMDEC,FALSE);
- CheckDlgButton(hW,IDC_FASTMDEC2,FALSE);
- CheckDlgButton(hW,IDC_USESCANLINES,FALSE);
-
- SetDlgItemInt(hW,IDC_FRAMELIMIT,200,FALSE);
- SetDlgItemInt(hW,IDC_WINX,640,FALSE);
- SetDlgItemInt(hW,IDC_WINY,480,FALSE);
- CheckDlgButton(hW,IDC_ARATIO,FALSE);
- CheckDlgButton(hW,IDC_BLUR,FALSE);
- SetDlgItemInt(hW,IDC_SCANBLEND,0,TRUE);
- ComboBox_SetCurSel(GetDlgItem(hW,IDC_HIRESTEX),0);
- CheckDlgButton(hW,IDC_SSAVE,FALSE);
-}
-
-////////////////////////////////////////////////////////////////////////
-// read registry
-////////////////////////////////////////////////////////////////////////
-
-void ReadConfig(void) // read all config vals
-{
- HKEY myKey;
- DWORD temp;
- DWORD type;
- DWORD size;
-
- // pre-init all relevant globals
-
- iResX=800;iResY=600;
- iColDepth=32;
- bChangeRes=FALSE;
- bWindowMode=FALSE;
- bFullVRam=FALSE;
- iFilterType=0;
- bAdvancedBlend=FALSE;
- bDrawDither=FALSE;
- bUseLines=FALSE;
- bUseFrameLimit=TRUE;
- bUseFrameSkip=FALSE;
- iFrameLimit=2;
- fFrameRate=200.0f;
- iOffscreenDrawing=1;
- bOpaquePass=TRUE;
- bUseAntiAlias=FALSE;
- iTexQuality=0;
- iWinSize=MAKELONG(400,300);
- iUseMask=0;
- iZBufferDepth=0;
- bUseFastMdec=FALSE;
- bUse15bitMdec=FALSE;
- dwCfgFixes=0;
- bUseFixes=FALSE;
- bGteAccuracy=FALSE;
- iUseScanLines=0;
- iFrameTexType=0;
- iFrameReadType=0;
- iShowFPS=0;
- bKeepRatio=FALSE;
- iScanBlend=0;
- iVRamSize=0;
- iTexGarbageCollection=1;
- iBlurBuffer=0;
- iHiResTextures=0;
- iNoScreenSaver=1;
- iForceVSync=-1;
-
- lstrcpy(szGPUKeys,szKeyDefaults);
-
- // registry key: still "psemu pro/pete tnt" for compatibility reasons
-
- if (RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Vision Thing\\PSEmu Pro\\GPU\\PeteTNT",0,KEY_ALL_ACCESS,&myKey)==ERROR_SUCCESS)
- {
- size = 4;
- if(RegQueryValueEx(myKey,"ResX",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iResX=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"ResY",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iResY=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"WinSize",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iWinSize=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"FilterType",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iFilterType=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"DrawDither",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- bDrawDither=(BOOL)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"UseLines",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- bUseLines=(BOOL)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"WindowMode",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- bWindowMode=(BOOL)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"ColDepth",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iColDepth=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"ForceVSync",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iForceVSync=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"UseFrameLimit",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- bUseFrameLimit=(BOOL)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"UseFrameSkip",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- bUseFrameSkip=(BOOL)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"FrameLimit",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iFrameLimit=(int)temp;
- if(!iFrameLimit) {bUseFrameLimit=TRUE;bUseFrameSkip=FALSE;iFrameLimit=2;}
-
- // try to get the float framerate... if none: take int framerate
- fFrameRate=0.0f;
- size = 4;
- if(RegQueryValueEx(myKey,"FrameRateFloat",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- fFrameRate=*((float *)(&temp));
- if(fFrameRate==0.0f)
- {
- fFrameRate=200.0f;
- size = 4;
- if(RegQueryValueEx(myKey,"FrameRate",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- fFrameRate=(float)temp;
- }
-
- size = 4;
- if(RegQueryValueEx(myKey,"UseMultiPass",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- bAdvancedBlend=(int)temp;
- size = 4;
- iOffscreenDrawing=-1;
- if(RegQueryValueEx(myKey,"OffscreenDrawingEx",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iOffscreenDrawing=temp;
- if(iOffscreenDrawing==-1 &&
- RegQueryValueEx(myKey,"OffscreenDrawing",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iOffscreenDrawing=temp*2;
- size = 4;
- if(RegQueryValueEx(myKey,"OpaquePass",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- bOpaquePass=(BOOL)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"VRamSize",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iVRamSize=(int)temp;
-// size = 4;
-// if(RegQueryValueEx(myKey,"UseAntiAlias",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
-// bUseAntiAlias=(BOOL)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"TexQuality",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iTexQuality=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"CfgFixes",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- dwCfgFixes=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"UseFixes",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- bUseFixes=(BOOL)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"GteAccuracy",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- bGteAccuracy=(BOOL)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"UseMask",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iUseMask=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"FastMdec",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- bUseFastMdec=(BOOL)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"15BitMdec",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- bUse15bitMdec=(BOOL)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"UseScanLines",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iUseScanLines=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"ShowFPS",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iShowFPS=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"KeepRatio",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- bKeepRatio=(BOOL)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"ScanBlend",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iScanBlend=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"FrameTexType",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iFrameTexType=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"FrameReadType",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iFrameReadType=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"FullscreenBlur",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iBlurBuffer=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"HiResTextures",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iHiResTextures=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"NoScreenSaver",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iNoScreenSaver=(int)temp;
-
- size=7;
- RegQueryValueEx(myKey,"GPUKeys",0,&type,(LPBYTE)&szGPUKeys,&size);
-
- RegCloseKey(myKey);
- }
- if(!iColDepth) iColDepth=32; // adjust color info
- if(iUseMask) iZBufferDepth=16; // set zbuffer depth
- else iZBufferDepth=0;
- if(bUseFixes) dwActFixes=dwCfgFixes; // init game fix global
- if(iFrameReadType==4) bFullVRam=TRUE; // set fullvram render flag (soft gpu)
-}
-
-////////////////////////////////////////////////////////////////////////
-// read registry: window size (called on fullscreen/window resize)
-////////////////////////////////////////////////////////////////////////
-
-void ReadWinSizeConfig(void)
-{
- HKEY myKey;
- DWORD temp;
- DWORD type;
- DWORD size;
-
- iResX=800;iResY=600;
- iWinSize=MAKELONG(400,300);
- iBlurBuffer=0;
-
- // registry key: still "psemu pro/pete tnt" for compatibility reasons
-
- if (RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Vision Thing\\PSEmu Pro\\GPU\\PeteTNT",0,KEY_ALL_ACCESS,&myKey)==ERROR_SUCCESS)
- {
- size = 4;
- if(RegQueryValueEx(myKey,"ResX",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iResX=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"ResY",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iResY=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"WinSize",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iWinSize=(int)temp;
- size = 4;
- if(RegQueryValueEx(myKey,"FullscreenBlur",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
- iBlurBuffer=(int)temp;
- RegCloseKey(myKey);
- }
-}
-
-////////////////////////////////////////////////////////////////////////
-// write registry
-////////////////////////////////////////////////////////////////////////
-
-void WriteConfig(void)
-{
- HKEY myKey;
- DWORD myDisp;
- DWORD temp;
-
- // registry key: still "psemu pro/pete tnt" for compatibility reasons
-
- RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Vision Thing\\PSEmu Pro\\GPU\\PeteTNT",0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&myKey,&myDisp);
- temp=iResX;
- RegSetValueEx(myKey,"ResX",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iResY;
- RegSetValueEx(myKey,"ResY",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iWinSize;
- RegSetValueEx(myKey,"WinSize",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iFilterType;
- RegSetValueEx(myKey,"FilterType",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=bDrawDither;
- RegSetValueEx(myKey,"DrawDither",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=bUseLines;
- RegSetValueEx(myKey,"UseLines",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=bWindowMode;
- RegSetValueEx(myKey,"WindowMode",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iColDepth;
- RegSetValueEx(myKey,"ColDepth",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iForceVSync;
- RegSetValueEx(myKey,"ForceVSync",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=bUseFrameLimit;
- RegSetValueEx(myKey,"UseFrameLimit",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=bUseFrameSkip;
- RegSetValueEx(myKey,"UseFrameSkip",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iFrameLimit;
- RegSetValueEx(myKey,"FrameLimit",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=(DWORD)fFrameRate;
- RegSetValueEx(myKey,"FrameRate",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=*((DWORD *)&fFrameRate);
- RegSetValueEx(myKey,"FrameRateFloat",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=bAdvancedBlend;
- RegSetValueEx(myKey,"UseMultiPass",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iOffscreenDrawing/2;
- RegSetValueEx(myKey,"OffscreenDrawing",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iOffscreenDrawing;
- RegSetValueEx(myKey,"OffscreenDrawingEx",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=bOpaquePass;
- RegSetValueEx(myKey,"OpaquePass",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iVRamSize;
- RegSetValueEx(myKey,"VRamSize",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
-// temp=bUseAntiAlias;
-// RegSetValueEx(myKey,"UseAntiAlias",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iTexQuality;
- RegSetValueEx(myKey,"TexQuality",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=dwCfgFixes;
- RegSetValueEx(myKey,"CfgFixes",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=bUseFixes;
- RegSetValueEx(myKey,"UseFixes",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=bGteAccuracy;
- RegSetValueEx(myKey,"GteAccuracy",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iUseMask;
- RegSetValueEx(myKey,"UseMask",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=bUseFastMdec;
- RegSetValueEx(myKey,"FastMdec",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=bUse15bitMdec;
- RegSetValueEx(myKey,"15BitMdec",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iUseScanLines;
- RegSetValueEx(myKey,"UseScanLines",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iShowFPS;
- RegSetValueEx(myKey,"ShowFPS",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iFrameTexType;
- RegSetValueEx(myKey,"FrameTexType",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iFrameReadType;
- RegSetValueEx(myKey,"FrameReadType",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=bKeepRatio;
- RegSetValueEx(myKey,"KeepRatio",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iBlurBuffer;
- RegSetValueEx(myKey,"FullscreenBlur",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iHiResTextures;
- RegSetValueEx(myKey,"HiResTextures",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iNoScreenSaver;
- RegSetValueEx(myKey,"NoScreenSaver",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- temp=iScanBlend;
- RegSetValueEx(myKey,"ScanBlend",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
- RegSetValueEx(myKey,"GPUKeys",0,REG_BINARY,(LPBYTE)szGPUKeys,7);
-
- RegCloseKey(myKey);
-}
-
-////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////
-// Key definition window
-
-typedef struct
-{
- char szName[10];
- char cCode;
-}
-KEYSETS;
-
-// sepcial keys:
-
-KEYSETS tMKeys[]=
-{
- {"SPACE", 0x20},
- {"PRIOR", 0x21},
- {"NEXT", 0x22},
- {"END", 0x23},
- {"HOME", 0x24},
- {"LEFT", 0x25},
- {"UP", 0x26},
- {"RIGHT", 0x27},
- {"DOWN", 0x28},
- {"SELECT", 0x29},
- {"PRINT", 0x2A},
- {"EXECUTE", 0x2B},
- {"SNAPSHOT", 0x2C},
- {"INSERT", 0x2D},
- {"DELETE", 0x2E},
- {"HELP", 0x2F},
- {"NUMPAD0", 0x60},
- {"NUMPAD1", 0x61},
- {"NUMPAD2", 0x62},
- {"NUMPAD3", 0x63},
- {"NUMPAD4", 0x64},
- {"NUMPAD5", 0x65},
- {"NUMPAD6", 0x66},
- {"NUMPAD7", 0x67},
- {"NUMPAD8", 0x68},
- {"NUMPAD9", 0x69},
- {"MULTIPLY", 0x6A},
- {"ADD", 0x6B},
- {"SEPARATOR", 0x6C},
- {"SUBTRACT", 0x6D},
- {"DECIMAL", 0x6E},
- {"DIVIDE", 0x6F},
- {"", 0x00}
-};
-
-// select key entry in combo box
-
-void SetGPUKey(HWND hWC,char szKey)
-{
- int i,iCnt=ComboBox_GetCount(hWC);
- for(i=0;i<iCnt;i++)
- {
- if(ComboBox_GetItemData(hWC,i)==szKey) break;
- }
- if(i!=iCnt) ComboBox_SetCurSel(hWC,i);
-}
-
-// key window proc
-
-BOOL CALLBACK KeyDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
- switch(uMsg)
- {
- case WM_INITDIALOG: // init dialog
- {
- int i,j,k;char szB[2];HWND hWC;
- for(i=IDC_KEY1;i<=IDC_KEY6;i++)
- {
- hWC=GetDlgItem(hW,i);
-
- for(j=0;tMKeys[j].cCode!=0;j++) // fill special keys in combo
- {
- k=ComboBox_AddString(hWC,tMKeys[j].szName);
- ComboBox_SetItemData(hWC,k,tMKeys[j].cCode);
- }
- for(j=0x30;j<=0x39;j++) // fill numbers in combo
- {
- wsprintf(szB,"%c",j);
- k=ComboBox_AddString(hWC,szB);
- ComboBox_SetItemData(hWC,k,j);
- }
- for(j=0x41;j<=0x5a;j++) // fill alphas in combo
- {
- wsprintf(szB,"%c",j);
- k=ComboBox_AddString(hWC,szB);
- ComboBox_SetItemData(hWC,k,j);
- }
- SetGPUKey(GetDlgItem(hW,i),szGPUKeys[i-IDC_KEY1]);
- }
- }return TRUE;
-
- case WM_COMMAND:
- {
- switch(LOWORD(wParam))
- {
- case IDC_DEFAULT: // default button:
- {
- int i; // -> set defaults
- for(i=IDC_KEY1;i<=IDC_KEY6;i++)
- SetGPUKey(GetDlgItem(hW,i),szKeyDefaults[i-IDC_KEY1]);
- }break;
-
- case IDCANCEL: // cancel: just close window
- EndDialog(hW,FALSE); return TRUE;
-
- case IDOK: // ok: take key bindings
- {
- HWND hWC;int i;
- for(i=IDC_KEY1;i<=IDC_KEY6;i++)
- {
- hWC=GetDlgItem(hW,i);
- szGPUKeys[i-IDC_KEY1]=ComboBox_GetItemData(hWC,ComboBox_GetCurSel(hWC));
- if(szGPUKeys[i-IDC_KEY1]<0x20) szGPUKeys[i-IDC_KEY1]=0x20;
- }
- EndDialog(hW,TRUE);
- return TRUE;
- }
- }
- }
- }
- return FALSE;
-}
-
-void OnKeyConfig(HWND hW) // call key dialog
-{
- DialogBox(hInst,MAKEINTRESOURCE(IDD_KEYS),
- hW,(DLGPROC)KeyDlgProc);
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// AboutDlg dialog (Windows)
-
-BOOL CALLBACK AboutDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
- switch(uMsg)
- {
- case WM_COMMAND:
- {
- switch(LOWORD(wParam))
- {
- case IDOK: EndDialog(hW,TRUE);return TRUE;
- }
- }
- }
- return FALSE;
-}
+/***************************************************************************
+ cfg.c - description
+ -------------------
+ begin : Sun Mar 08 2009
+ copyright : (C) 1999-2009 by Pete Bernert
+ web : www.pbernert.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. See also the license.txt file for *
+ * additional informations. *
+ * *
+ ***************************************************************************/
+
+#define _IN_CFG
+
+/////////////////////////////////////////////////////////////////////////////
+// Windows config handling
+
+#include "stdafx.h"
+#include "resource.h"
+#include "externals.h"
+#include "cfg.h"
+#include <stdio.h>
+
+char szKeyDefaults[7]={VK_DELETE,VK_INSERT,VK_HOME,VK_END,VK_PRIOR,VK_NEXT,0x00};
+
+/////////////////////////////////////////////////////////////////////////////
+// CCfgDlg dialog
+
+BOOL OnInitCfgDialog(HWND hW);
+void OnCfgOK(HWND hW);
+void OnCfgCancel(HWND hW);
+void OnCfgDef1(HWND hW);
+void OnCfgDef2(HWND hW);
+void OnBugFixes(HWND hW);
+void OnKeyConfig(HWND hW);
+void GetSettings(HWND hW);
+void OnClipboard(HWND hW);
+char * GetConfigInfos(HWND hWE);
+
+BOOL CALLBACK CfgDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ return OnInitCfgDialog(hW);
+
+ case WM_COMMAND:
+ {
+ switch(LOWORD(wParam))
+ {
+ case IDC_DEF1: OnCfgDef1(hW); return TRUE;
+ case IDC_DEF2: OnCfgDef2(hW); return TRUE;
+ case IDC_SELFIX: OnBugFixes(hW); return TRUE;
+ case IDC_KEYCONFIG: OnKeyConfig(hW); return TRUE;
+ case IDCANCEL: OnCfgCancel(hW); return TRUE;
+ case IDOK: OnCfgOK(hW); return TRUE;
+ case IDC_CLIPBOARD: OnClipboard(hW); return TRUE;
+ }
+ }
+ }
+ return FALSE;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// CCfgDlg message handlers
+
+////////////////////////////////////////////////////////////////////////
+// init dlg
+////////////////////////////////////////////////////////////////////////
+
+void ComboBoxAddRes(HWND hWC,char * cs) // ADD COMBOBOX RESOURCES
+{
+ int i=ComboBox_FindString(hWC,-1,cs);
+ if(i!=CB_ERR) return;
+ ComboBox_AddString(hWC,cs);
+}
+
+
+BOOL OnInitCfgDialog(HWND hW) // INIT CONFIG DIALOG
+{
+ HWND hWC;char cs[256];int i;DEVMODE dv;
+
+ ReadConfig(); // read registry stuff
+
+ //----------------------------------------------------// fill combo with available resolutions
+
+ hWC=GetDlgItem(hW,IDC_RESOLUTION);
+
+ memset(&dv,0,sizeof(DEVMODE));
+ dv.dmSize=sizeof(DEVMODE);
+ i=0;
+
+ while(EnumDisplaySettings(NULL,i,&dv)) // add all resolutions from the driver
+ {
+ wsprintf(cs,"%4d x %4d",dv.dmPelsWidth,dv.dmPelsHeight);
+ ComboBoxAddRes(hWC,cs);
+ i++;
+ }
+
+ ComboBoxAddRes(hWC," 640 x 480"); // and also add some common ones
+ ComboBoxAddRes(hWC," 800 x 600");
+ ComboBoxAddRes(hWC,"1024 x 768");
+ ComboBoxAddRes(hWC,"1152 x 864");
+ ComboBoxAddRes(hWC,"1280 x 1024");
+ ComboBoxAddRes(hWC,"1600 x 1200");
+
+ wsprintf(cs,"%4d x %4d",iResX,iResY); // search curr resolution in combo
+ i=ComboBox_FindString(hWC,-1,cs);
+ if(i==CB_ERR) i=0;
+ ComboBox_SetCurSel(hWC,i); // and select this one
+
+ //----------------------------------------------------// window size
+
+ SetDlgItemInt(hW,IDC_WINX,LOWORD(iWinSize),FALSE);
+ SetDlgItemInt(hW,IDC_WINY,HIWORD(iWinSize),FALSE);
+
+ //----------------------------------------------------// color depth
+
+ hWC=GetDlgItem(hW,IDC_COLORDEPTH);
+ ComboBox_AddString(hWC,"16 Bit");
+ ComboBox_AddString(hWC,"32 Bit");
+ wsprintf(cs,"%d Bit",iColDepth);
+ i=ComboBox_FindString(hWC,-1,cs);
+ if(i==CB_ERR) i=0;
+ ComboBox_SetCurSel(hWC,i);
+
+ //----------------------------------------------------// vsync
+
+ hWC=GetDlgItem(hW,IDC_VSYNC);
+ ComboBox_AddString(hWC,"Driver");
+ ComboBox_AddString(hWC,"Off");
+ ComboBox_AddString(hWC,"On");
+ ComboBox_SetCurSel(hWC,iForceVSync+1);
+
+ //----------------------------------------------------// vram size
+
+ hWC=GetDlgItem(hW,IDC_VRAMSIZE);
+ ComboBox_AddString(hWC,"0 (Autodetect)");
+ ComboBox_AddString(hWC,"2");
+ ComboBox_AddString(hWC,"4");
+ ComboBox_AddString(hWC,"8");
+ ComboBox_AddString(hWC,"16");
+ ComboBox_AddString(hWC,"32");
+ ComboBox_AddString(hWC,"64");
+ ComboBox_AddString(hWC,"128 (or more)");
+
+ if(!iVRamSize) ComboBox_SetCurSel(hWC,0);
+ else {wsprintf(cs,"%d",iVRamSize);ComboBox_SetText(hWC,cs);}
+
+ //----------------------------------------------------// texture quality
+
+ hWC=GetDlgItem(hW,IDC_TEXQUALITY);
+ ComboBox_AddString(hWC,"don't care - Use driver's default textures");
+ ComboBox_AddString(hWC,"R4 G4 B4 A4 - Fast, but less colorful");
+ ComboBox_AddString(hWC,"R5 G5 B5 A1 - Nice colors, bad transparency");
+ ComboBox_AddString(hWC,"R8 G8 B8 A8 - Best colors, more ram needed");
+ ComboBox_AddString(hWC,"B8 G8 R8 A8 - Slightly faster with some cards");
+ ComboBox_SetCurSel(hWC,iTexQuality);
+
+ //----------------------------------------------------// all kind of on/off options
+
+ if(bDrawDither) CheckDlgButton(hW,IDC_DRAWDITHER,TRUE);
+ if(bUseLines) CheckDlgButton(hW,IDC_USELINES,TRUE);
+ if(bUseFrameLimit) CheckDlgButton(hW,IDC_USELIMIT,TRUE);
+ if(bUseFrameSkip) CheckDlgButton(hW,IDC_USESKIP,TRUE);
+ if(bAdvancedBlend) CheckDlgButton(hW,IDC_ADVBLEND,TRUE);
+ if(bOpaquePass) CheckDlgButton(hW,IDC_OPAQUE,TRUE);
+// if(bUseAntiAlias) CheckDlgButton(hW,IDC_USEANTIALIAS,TRUE);
+ if(bWindowMode) CheckDlgButton(hW,IDC_DISPMODE2,TRUE);
+ else CheckDlgButton(hW,IDC_DISPMODE1,TRUE);
+ if(iUseMask) CheckDlgButton(hW,IDC_USEMASK,TRUE);
+ if(bUseFastMdec) CheckDlgButton(hW,IDC_FASTMDEC,TRUE);
+ if(bUse15bitMdec) CheckDlgButton(hW,IDC_FASTMDEC2,TRUE);
+ if(bUseFixes) CheckDlgButton(hW,IDC_GAMEFIX,TRUE);
+ if(bGteAccuracy) CheckDlgButton(hW,IDC_GTEACCURACY,TRUE);
+ if(iUseScanLines) CheckDlgButton(hW,IDC_USESCANLINES,TRUE);
+ if(iShowFPS) CheckDlgButton(hW,IDC_SHOWFPS,TRUE);
+ if(bKeepRatio) CheckDlgButton(hW,IDC_ARATIO,TRUE);
+ if(iBlurBuffer) CheckDlgButton(hW,IDC_BLUR,TRUE);
+ if(iNoScreenSaver) CheckDlgButton(hW,IDC_SSAVE,TRUE);
+
+ //----------------------------------------------------// texture filter
+
+ hWC=GetDlgItem(hW,IDC_FILTERTYPE);
+ ComboBox_AddString(hWC,"0: None");
+ ComboBox_AddString(hWC,"1: Standard - Glitches will happen");
+ ComboBox_AddString(hWC,"2: Extended - Removes black borders");
+ ComboBox_AddString(hWC,"3: Standard w/o Sprites - unfiltered 2D");
+ ComboBox_AddString(hWC,"4: Extended w/o Sprites - unfiltered 2D");
+ ComboBox_AddString(hWC,"5: Standard + smoothed Sprites");
+ ComboBox_AddString(hWC,"6: Extended + smoothed Sprites");
+ ComboBox_SetCurSel(hWC,iFilterType);
+
+ //----------------------------------------------------// hires texture mode
+
+ hWC=GetDlgItem(hW,IDC_HIRESTEX);
+ ComboBox_AddString(hWC,"0: None (standard)");
+ ComboBox_AddString(hWC,"1: 2xSaI (much vram needed)");
+ ComboBox_AddString(hWC,"2: Stretched (filtering needed)");
+ ComboBox_SetCurSel(hWC,iHiResTextures);
+
+ //----------------------------------------------------// offscreen drawing
+
+ hWC=GetDlgItem(hW,IDC_OFFSCREEN);
+ ComboBox_AddString(hWC,"0: None - Fastest, most glitches");
+ ComboBox_AddString(hWC,"1: Minimum - Missing screens");
+ ComboBox_AddString(hWC,"2: Standard - OK for most games");
+ ComboBox_AddString(hWC,"3: Enhanced - Shows more stuff");
+ ComboBox_AddString(hWC,"4: Extended - Can cause garbage");
+ ComboBox_SetCurSel(hWC,iOffscreenDrawing);
+
+ //----------------------------------------------------// texture quality
+
+ hWC=GetDlgItem(hW,IDC_FRAMETEX);
+ ComboBox_AddString(hWC,"0: Emulated vram - effects need FVP");
+ ComboBox_AddString(hWC,"1: Black - Fast but no special effects");
+ ComboBox_AddString(hWC,"2: Gfx card buffer - Can be slow");
+ ComboBox_AddString(hWC,"3: Gfx card buffer & software - slow");
+ ComboBox_SetCurSel(hWC,iFrameTexType);
+
+ //----------------------------------------------------// framebuffer read mode
+
+ hWC=GetDlgItem(hW,IDC_FRAMEREAD);
+ ComboBox_AddString(hWC,"0: Emulated vram - OK for most games");
+ ComboBox_AddString(hWC,"1: Gfx card buffer reads");
+ ComboBox_AddString(hWC,"2: Gfx card buffer moves");
+ ComboBox_AddString(hWC,"3: Gfx card buffer reads & moves");
+ ComboBox_AddString(hWC,"4: Full software drawing (FVP)");
+ ComboBox_SetCurSel(hWC,iFrameReadType);
+
+ //----------------------------------------------------// framerate stuff
+
+ if(iFrameLimit==2)
+ CheckDlgButton(hW,IDC_FRAMEAUTO,TRUE);
+ else CheckDlgButton(hW,IDC_FRAMEMANUELL,TRUE);
+
+ sprintf(cs,"%.2f",fFrameRate);
+ SetDlgItemText(hW,IDC_FRAMELIMIT,cs);
+ SetDlgItemInt(hW,IDC_SCANBLEND,iScanBlend,TRUE);
+
+ return TRUE;
+}
+
+////////////////////////////////////////////////////////////////////////
+// on ok: take vals
+////////////////////////////////////////////////////////////////////////
+
+void GetSettings(HWND hW)
+{
+ HWND hWC;char cs[256];int i,j;char * p;
+
+ hWC=GetDlgItem(hW,IDC_VRAMSIZE); // get vram size
+ ComboBox_GetText(hWC,cs,255);
+ iVRamSize=atoi(cs);
+ if(iVRamSize<0) iVRamSize=0;
+ if(iVRamSize>1024) iVRamSize=1024;
+
+ hWC=GetDlgItem(hW,IDC_RESOLUTION); // get resolution
+ i=ComboBox_GetCurSel(hWC);
+ ComboBox_GetLBText(hWC,i,cs);
+ iResX=atol(cs);
+ p=strchr(cs,'x');
+ if(p) iResY=atol(p+1);
+ else iResY=480;
+
+ hWC=GetDlgItem(hW,IDC_COLORDEPTH); // get color depth
+ i=ComboBox_GetCurSel(hWC);
+ ComboBox_GetLBText(hWC,i,cs);
+ iColDepth=atol(cs);
+
+ hWC=GetDlgItem(hW,IDC_VSYNC); // get vsync
+ iForceVSync=ComboBox_GetCurSel(hWC)-1;
+
+ i=GetDlgItemInt(hW,IDC_WINX,NULL,FALSE); // get win size
+ if(i<100) i=100; if(i>16384) i=16384;
+ j=GetDlgItemInt(hW,IDC_WINY,NULL,FALSE);
+ if(j<100) j=100; if(j>16384) j=16384;
+ iWinSize=MAKELONG(i,j);
+
+ hWC=GetDlgItem(hW,IDC_TEXQUALITY); // texture quality
+ iTexQuality=ComboBox_GetCurSel(hWC);
+
+ hWC=GetDlgItem(hW,IDC_FILTERTYPE); // all kind of options
+ iFilterType=ComboBox_GetCurSel(hWC);
+
+ if(IsDlgButtonChecked(hW,IDC_DRAWDITHER))
+ bDrawDither=TRUE; else bDrawDither=FALSE;
+
+ if(IsDlgButtonChecked(hW,IDC_USELINES))
+ bUseLines=TRUE; else bUseLines=FALSE;
+
+ if(IsDlgButtonChecked(hW,IDC_DISPMODE2))
+ bWindowMode=TRUE; else bWindowMode=FALSE;
+
+ if(IsDlgButtonChecked(hW,IDC_ADVBLEND))
+ bAdvancedBlend=TRUE; else bAdvancedBlend=FALSE;
+
+ iOffscreenDrawing=ComboBox_GetCurSel(GetDlgItem(hW,IDC_OFFSCREEN));
+
+ iFrameTexType=ComboBox_GetCurSel(GetDlgItem(hW,IDC_FRAMETEX));
+ iFrameReadType=ComboBox_GetCurSel(GetDlgItem(hW,IDC_FRAMEREAD));
+
+ if(IsDlgButtonChecked(hW,IDC_USELIMIT))
+ bUseFrameLimit=TRUE; else bUseFrameLimit=FALSE;
+
+ if(IsDlgButtonChecked(hW,IDC_USESKIP))
+ bUseFrameSkip=TRUE; else bUseFrameSkip=FALSE;
+
+ if(IsDlgButtonChecked(hW,IDC_OPAQUE))
+ bOpaquePass=TRUE; else bOpaquePass=FALSE;
+
+// if(IsDlgButtonChecked(hW,IDC_USEANTIALIAS))
+// bUseAntiAlias=TRUE; else bUseAntiAlias=FALSE;
+
+ if(IsDlgButtonChecked(hW,IDC_FASTMDEC))
+ bUseFastMdec=TRUE; else bUseFastMdec=FALSE;
+
+ if(IsDlgButtonChecked(hW,IDC_FASTMDEC2))
+ bUse15bitMdec=TRUE; else bUse15bitMdec=FALSE;
+
+ if(IsDlgButtonChecked(hW,IDC_GAMEFIX))
+ bUseFixes=TRUE; else bUseFixes=FALSE;
+
+ if(IsDlgButtonChecked(hW,IDC_GTEACCURACY))
+ bGteAccuracy=TRUE; else bGteAccuracy=FALSE;
+
+ if(IsDlgButtonChecked(hW,IDC_USESCANLINES))
+ iUseScanLines=1; else iUseScanLines=0;
+
+ if(IsDlgButtonChecked(hW,IDC_SHOWFPS))
+ iShowFPS=1; else iShowFPS=0;
+
+ if(IsDlgButtonChecked(hW,IDC_ARATIO))
+ bKeepRatio=TRUE; else bKeepRatio=FALSE;
+
+ if(IsDlgButtonChecked(hW,IDC_BLUR))
+ iBlurBuffer=1; else iBlurBuffer=0;
+
+ if(IsDlgButtonChecked(hW,IDC_SSAVE))
+ iNoScreenSaver=1; else iNoScreenSaver=0;
+
+ hWC=GetDlgItem(hW,IDC_HIRESTEX);
+ iHiResTextures=ComboBox_GetCurSel(hWC);
+
+ if(IsDlgButtonChecked(hW,IDC_USEMASK))
+ {iUseMask=1;iZBufferDepth=16;}
+ else {iUseMask=0;iZBufferDepth=0; }
+
+ iScanBlend=GetDlgItemInt(hW,IDC_SCANBLEND,NULL,TRUE);
+ if(iScanBlend>255) iScanBlend=0;
+ if(iScanBlend<-1) iScanBlend=-1;
+
+ if(IsDlgButtonChecked(hW,IDC_FRAMEAUTO)) // frame rate settings
+ iFrameLimit=2;
+ else iFrameLimit=1;
+
+ GetDlgItemText(hW,IDC_FRAMELIMIT,cs,255);
+ fFrameRate=(float)atof(cs);
+ if(fFrameRate<10.0f) fFrameRate=10.0f;
+ if(fFrameRate>1000.0f) fFrameRate=1000.0f;
+}
+
+////////////////////////////////////////////////////////////////////////
+// OK button
+////////////////////////////////////////////////////////////////////////
+
+void OnCfgOK(HWND hW)
+{
+ GetSettings(hW); // get dialog settings
+
+ WriteConfig(); // write registry
+
+ EndDialog(hW,TRUE); // close dialog
+}
+
+////////////////////////////////////////////////////////////////////////
+// Clipboard button
+////////////////////////////////////////////////////////////////////////
+
+void OnClipboard(HWND hW)
+{
+ HWND hWE=GetDlgItem(hW,IDC_CLPEDIT);
+ char * pB;
+
+ GetSettings(hW); // get dialog setings
+ pB=GetConfigInfos(hWE); // get text infos
+
+ if(pB) // some text got?
+ {
+ SetDlgItemText(hW,IDC_CLPEDIT,pB); // -> set text in invisible edit
+ SendMessage(hWE,EM_SETSEL,0,-1); // -> sel all in edit
+ SendMessage(hWE,WM_COPY,0,0); // -> copy sel to clipboard
+ free(pB); // -> free helper text buffer
+
+ MessageBox(hW,"Configuration info successfully copied to the clipboard\nJust use the PASTE function in another program to retrieve the data!","Copy Info",MB_ICONINFORMATION|MB_OK);
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
+// Cancel button (just closes window)
+////////////////////////////////////////////////////////////////////////
+
+void OnCfgCancel(HWND hW)
+{
+ EndDialog(hW,FALSE);
+}
+
+////////////////////////////////////////////////////////////////////////
+// Bug fixes
+////////////////////////////////////////////////////////////////////////
+
+BOOL CALLBACK BugFixesDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG: // init dialog:
+ {
+ int i;
+
+ for(i=0;i<32;i++) // -> loop all 32 checkboxes
+ {
+ if(dwCfgFixes&(1<<i)) // --> if fix is active: check box
+ CheckDlgButton(hW,IDC_FIX1+i,TRUE);
+ }
+ }
+
+ case WM_COMMAND:
+ {
+ switch(LOWORD(wParam))
+ {
+ case IDCANCEL: EndDialog(hW,FALSE);return TRUE; // cancel: close window
+
+ case IDOK: // ok: take settings and close
+ {
+ int i;
+ dwCfgFixes=0;
+ for(i=0;i<32;i++)
+ {
+ if(IsDlgButtonChecked(hW,IDC_FIX1+i))
+ dwCfgFixes|=(1<<i);
+ }
+ EndDialog(hW,TRUE);
+ return TRUE;
+ }
+ }
+ }
+ }
+ return FALSE;
+}
+
+void OnBugFixes(HWND hW) // bug fix button:
+{
+ DialogBox(hInst,MAKEINTRESOURCE(IDD_FIXES), // show fix window
+ hW,(DLGPROC)BugFixesDlgProc);
+}
+
+////////////////////////////////////////////////////////////////////////
+// default 1: fast
+////////////////////////////////////////////////////////////////////////
+
+void OnCfgDef1(HWND hW)
+{
+ HWND hWC;
+
+ hWC=GetDlgItem(hW,IDC_RESOLUTION);
+ ComboBox_SetCurSel(hWC,0);
+ hWC=GetDlgItem(hW,IDC_COLORDEPTH);
+ ComboBox_SetCurSel(hWC,0);
+ hWC=GetDlgItem(hW,IDC_VSYNC);
+ ComboBox_SetCurSel(hWC,1);
+ hWC=GetDlgItem(hW,IDC_TEXQUALITY);
+ ComboBox_SetCurSel(hWC,0);
+ hWC=GetDlgItem(hW,IDC_FILTERTYPE);
+ ComboBox_SetCurSel(hWC,0);
+ hWC=GetDlgItem(hW,IDC_OFFSCREEN);
+ ComboBox_SetCurSel(hWC,1);
+ hWC=GetDlgItem(hW,IDC_VRAMSIZE);
+ ComboBox_SetCurSel(hWC,0);
+
+ CheckDlgButton(hW,IDC_TEXLINEAR,FALSE);
+ CheckDlgButton(hW,IDC_DRAWDITHER,FALSE);
+ CheckDlgButton(hW,IDC_USELINES,FALSE);
+ CheckDlgButton(hW,IDC_USELIMIT,FALSE);
+ CheckDlgButton(hW,IDC_USESKIP,FALSE);
+ CheckDlgButton(hW,IDC_ADVBLEND,FALSE);
+ CheckDlgButton(hW,IDC_OPAQUE,TRUE);
+// CheckDlgButton(hW,IDC_USEANTIALIAS,FALSE);
+ CheckDlgButton(hW,IDC_DISPMODE2,FALSE);
+ CheckDlgButton(hW,IDC_DISPMODE1,TRUE);
+ CheckDlgButton(hW,IDC_FRAMEAUTO,TRUE);
+ CheckDlgButton(hW,IDC_FRAMEMANUELL,FALSE);
+ CheckDlgButton(hW,IDC_SHOWFPS,FALSE);
+
+ ComboBox_SetCurSel(GetDlgItem(hW,IDC_SUBCACHE),2);
+ ComboBox_SetCurSel(GetDlgItem(hW,IDC_FRAMETEX),1);
+ ComboBox_SetCurSel(GetDlgItem(hW,IDC_FRAMEREAD),0);
+
+ CheckDlgButton(hW,IDC_USEMASK,FALSE);
+ CheckDlgButton(hW,IDC_FASTMDEC,TRUE);
+ CheckDlgButton(hW,IDC_FASTMDEC2,TRUE);
+ CheckDlgButton(hW,IDC_USESCANLINES,FALSE);
+
+ SetDlgItemInt(hW,IDC_FRAMELIMIT,200,FALSE);
+ SetDlgItemInt(hW,IDC_WINX,640,FALSE);
+ SetDlgItemInt(hW,IDC_WINY,480,FALSE);
+
+ CheckDlgButton(hW,IDC_ARATIO,FALSE);
+ CheckDlgButton(hW,IDC_BLUR,FALSE);
+
+ SetDlgItemInt(hW,IDC_SCANBLEND,0,TRUE);
+ ComboBox_SetCurSel(GetDlgItem(hW,IDC_HIRESTEX),0);
+ CheckDlgButton(hW,IDC_SSAVE,FALSE);
+}
+
+////////////////////////////////////////////////////////////////////////
+// default 2: nice
+////////////////////////////////////////////////////////////////////////
+
+void OnCfgDef2(HWND hW)
+{
+ HWND hWC;
+
+ hWC=GetDlgItem(hW,IDC_RESOLUTION);
+ ComboBox_SetCurSel(hWC,1);
+ hWC=GetDlgItem(hW,IDC_COLORDEPTH);
+ ComboBox_SetCurSel(hWC,1);
+ hWC=GetDlgItem(hW,IDC_VSYNC);
+ ComboBox_SetCurSel(hWC,2);
+ hWC=GetDlgItem(hW,IDC_TEXQUALITY);
+ ComboBox_SetCurSel(hWC,3);
+ hWC=GetDlgItem(hW,IDC_FILTERTYPE);
+ ComboBox_SetCurSel(hWC,0);
+ hWC=GetDlgItem(hW,IDC_OFFSCREEN);
+ ComboBox_SetCurSel(hWC,3);
+ hWC=GetDlgItem(hW,IDC_VRAMSIZE);
+ ComboBox_SetCurSel(hWC,0);
+
+ CheckDlgButton(hW,IDC_TEXLINEAR,FALSE);
+ CheckDlgButton(hW,IDC_DRAWDITHER,FALSE);
+ CheckDlgButton(hW,IDC_USELINES,FALSE);
+ CheckDlgButton(hW,IDC_USELIMIT,TRUE);
+ CheckDlgButton(hW,IDC_USESKIP,FALSE);
+ CheckDlgButton(hW,IDC_ADVBLEND,TRUE);
+ CheckDlgButton(hW,IDC_OPAQUE,TRUE);
+// CheckDlgButton(hW,IDC_USEANTIALIAS,FALSE);
+ CheckDlgButton(hW,IDC_DISPMODE2,FALSE);
+ CheckDlgButton(hW,IDC_DISPMODE1,TRUE);
+ CheckDlgButton(hW,IDC_FRAMEAUTO,TRUE);
+ CheckDlgButton(hW,IDC_FRAMEMANUELL,FALSE);
+ CheckDlgButton(hW,IDC_SHOWFPS,FALSE);
+
+ ComboBox_SetCurSel(GetDlgItem(hW,IDC_SUBCACHE),2);
+ ComboBox_SetCurSel(GetDlgItem(hW,IDC_FRAMETEX),2);
+ ComboBox_SetCurSel(GetDlgItem(hW,IDC_FRAMEREAD),0);
+
+ CheckDlgButton(hW,IDC_USEMASK,TRUE);
+ CheckDlgButton(hW,IDC_FASTMDEC,FALSE);
+ CheckDlgButton(hW,IDC_FASTMDEC2,FALSE);
+ CheckDlgButton(hW,IDC_USESCANLINES,FALSE);
+
+ SetDlgItemInt(hW,IDC_FRAMELIMIT,200,FALSE);
+ SetDlgItemInt(hW,IDC_WINX,640,FALSE);
+ SetDlgItemInt(hW,IDC_WINY,480,FALSE);
+ CheckDlgButton(hW,IDC_ARATIO,FALSE);
+ CheckDlgButton(hW,IDC_BLUR,FALSE);
+ SetDlgItemInt(hW,IDC_SCANBLEND,0,TRUE);
+ ComboBox_SetCurSel(GetDlgItem(hW,IDC_HIRESTEX),0);
+ CheckDlgButton(hW,IDC_SSAVE,FALSE);
+}
+
+////////////////////////////////////////////////////////////////////////
+// read registry
+////////////////////////////////////////////////////////////////////////
+
+void ReadConfig(void) // read all config vals
+{
+ HKEY myKey;
+ DWORD temp;
+ DWORD type;
+ DWORD size;
+
+ // pre-init all relevant globals
+
+ iResX=800;iResY=600;
+ iColDepth=32;
+ bChangeRes=FALSE;
+ bWindowMode=FALSE;
+ bFullVRam=FALSE;
+ iFilterType=0;
+ bAdvancedBlend=FALSE;
+ bDrawDither=FALSE;
+ bUseLines=FALSE;
+ bUseFrameLimit=TRUE;
+ bUseFrameSkip=FALSE;
+ iFrameLimit=2;
+ fFrameRate=200.0f;
+ iOffscreenDrawing=1;
+ bOpaquePass=TRUE;
+ bUseAntiAlias=FALSE;
+ iTexQuality=0;
+ iWinSize=MAKELONG(400,300);
+ iUseMask=0;
+ iZBufferDepth=0;
+ bUseFastMdec=FALSE;
+ bUse15bitMdec=FALSE;
+ dwCfgFixes=0;
+ bUseFixes=FALSE;
+ bGteAccuracy=FALSE;
+ iUseScanLines=0;
+ iFrameTexType=0;
+ iFrameReadType=0;
+ iShowFPS=0;
+ bKeepRatio=FALSE;
+ iScanBlend=0;
+ iVRamSize=0;
+ iTexGarbageCollection=1;
+ iBlurBuffer=0;
+ iHiResTextures=0;
+ iNoScreenSaver=1;
+ iForceVSync=-1;
+
+ lstrcpy(szGPUKeys,szKeyDefaults);
+
+ // registry key: still "psemu pro/pete tnt" for compatibility reasons
+
+ if (RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Vision Thing\\PSEmu Pro\\GPU\\PeteTNT",0,KEY_ALL_ACCESS,&myKey)==ERROR_SUCCESS)
+ {
+ size = 4;
+ if(RegQueryValueEx(myKey,"ResX",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iResX=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"ResY",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iResY=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"WinSize",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iWinSize=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"FilterType",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iFilterType=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"DrawDither",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ bDrawDither=(BOOL)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"UseLines",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ bUseLines=(BOOL)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"WindowMode",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ bWindowMode=(BOOL)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"ColDepth",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iColDepth=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"ForceVSync",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iForceVSync=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"UseFrameLimit",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ bUseFrameLimit=(BOOL)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"UseFrameSkip",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ bUseFrameSkip=(BOOL)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"FrameLimit",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iFrameLimit=(int)temp;
+ if(!iFrameLimit) {bUseFrameLimit=TRUE;bUseFrameSkip=FALSE;iFrameLimit=2;}
+
+ // try to get the float framerate... if none: take int framerate
+ fFrameRate=0.0f;
+ size = 4;
+ if(RegQueryValueEx(myKey,"FrameRateFloat",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ fFrameRate=*((float *)(&temp));
+ if(fFrameRate==0.0f)
+ {
+ fFrameRate=200.0f;
+ size = 4;
+ if(RegQueryValueEx(myKey,"FrameRate",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ fFrameRate=(float)temp;
+ }
+
+ size = 4;
+ if(RegQueryValueEx(myKey,"UseMultiPass",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ bAdvancedBlend=(int)temp;
+ size = 4;
+ iOffscreenDrawing=-1;
+ if(RegQueryValueEx(myKey,"OffscreenDrawingEx",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iOffscreenDrawing=temp;
+ if(iOffscreenDrawing==-1 &&
+ RegQueryValueEx(myKey,"OffscreenDrawing",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iOffscreenDrawing=temp*2;
+ size = 4;
+ if(RegQueryValueEx(myKey,"OpaquePass",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ bOpaquePass=(BOOL)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"VRamSize",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iVRamSize=(int)temp;
+// size = 4;
+// if(RegQueryValueEx(myKey,"UseAntiAlias",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+// bUseAntiAlias=(BOOL)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"TexQuality",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iTexQuality=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"CfgFixes",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ dwCfgFixes=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"UseFixes",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ bUseFixes=(BOOL)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"GteAccuracy",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ bGteAccuracy=(BOOL)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"UseMask",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iUseMask=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"FastMdec",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ bUseFastMdec=(BOOL)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"15BitMdec",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ bUse15bitMdec=(BOOL)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"UseScanLines",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iUseScanLines=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"ShowFPS",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iShowFPS=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"KeepRatio",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ bKeepRatio=(BOOL)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"ScanBlend",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iScanBlend=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"FrameTexType",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iFrameTexType=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"FrameReadType",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iFrameReadType=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"FullscreenBlur",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iBlurBuffer=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"HiResTextures",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iHiResTextures=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"NoScreenSaver",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iNoScreenSaver=(int)temp;
+
+ size=7;
+ RegQueryValueEx(myKey,"GPUKeys",0,&type,(LPBYTE)&szGPUKeys,&size);
+
+ RegCloseKey(myKey);
+ }
+ if(!iColDepth) iColDepth=32; // adjust color info
+ if(iUseMask) iZBufferDepth=16; // set zbuffer depth
+ else iZBufferDepth=0;
+ if(bUseFixes) dwActFixes=dwCfgFixes; // init game fix global
+ if(iFrameReadType==4) bFullVRam=TRUE; // set fullvram render flag (soft gpu)
+}
+
+////////////////////////////////////////////////////////////////////////
+// read registry: window size (called on fullscreen/window resize)
+////////////////////////////////////////////////////////////////////////
+
+void ReadWinSizeConfig(void)
+{
+ HKEY myKey;
+ DWORD temp;
+ DWORD type;
+ DWORD size;
+
+ iResX=800;iResY=600;
+ iWinSize=MAKELONG(400,300);
+ iBlurBuffer=0;
+
+ // registry key: still "psemu pro/pete tnt" for compatibility reasons
+
+ if (RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Vision Thing\\PSEmu Pro\\GPU\\PeteTNT",0,KEY_ALL_ACCESS,&myKey)==ERROR_SUCCESS)
+ {
+ size = 4;
+ if(RegQueryValueEx(myKey,"ResX",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iResX=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"ResY",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iResY=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"WinSize",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iWinSize=(int)temp;
+ size = 4;
+ if(RegQueryValueEx(myKey,"FullscreenBlur",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
+ iBlurBuffer=(int)temp;
+ RegCloseKey(myKey);
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
+// write registry
+////////////////////////////////////////////////////////////////////////
+
+void WriteConfig(void)
+{
+ HKEY myKey;
+ DWORD myDisp;
+ DWORD temp;
+
+ // registry key: still "psemu pro/pete tnt" for compatibility reasons
+
+ RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Vision Thing\\PSEmu Pro\\GPU\\PeteTNT",0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&myKey,&myDisp);
+ temp=iResX;
+ RegSetValueEx(myKey,"ResX",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iResY;
+ RegSetValueEx(myKey,"ResY",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iWinSize;
+ RegSetValueEx(myKey,"WinSize",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iFilterType;
+ RegSetValueEx(myKey,"FilterType",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=bDrawDither;
+ RegSetValueEx(myKey,"DrawDither",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=bUseLines;
+ RegSetValueEx(myKey,"UseLines",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=bWindowMode;
+ RegSetValueEx(myKey,"WindowMode",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iColDepth;
+ RegSetValueEx(myKey,"ColDepth",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iForceVSync;
+ RegSetValueEx(myKey,"ForceVSync",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=bUseFrameLimit;
+ RegSetValueEx(myKey,"UseFrameLimit",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=bUseFrameSkip;
+ RegSetValueEx(myKey,"UseFrameSkip",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iFrameLimit;
+ RegSetValueEx(myKey,"FrameLimit",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=(DWORD)fFrameRate;
+ RegSetValueEx(myKey,"FrameRate",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=*((DWORD *)&fFrameRate);
+ RegSetValueEx(myKey,"FrameRateFloat",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=bAdvancedBlend;
+ RegSetValueEx(myKey,"UseMultiPass",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iOffscreenDrawing/2;
+ RegSetValueEx(myKey,"OffscreenDrawing",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iOffscreenDrawing;
+ RegSetValueEx(myKey,"OffscreenDrawingEx",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=bOpaquePass;
+ RegSetValueEx(myKey,"OpaquePass",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iVRamSize;
+ RegSetValueEx(myKey,"VRamSize",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+// temp=bUseAntiAlias;
+// RegSetValueEx(myKey,"UseAntiAlias",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iTexQuality;
+ RegSetValueEx(myKey,"TexQuality",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=dwCfgFixes;
+ RegSetValueEx(myKey,"CfgFixes",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=bUseFixes;
+ RegSetValueEx(myKey,"UseFixes",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=bGteAccuracy;
+ RegSetValueEx(myKey,"GteAccuracy",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iUseMask;
+ RegSetValueEx(myKey,"UseMask",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=bUseFastMdec;
+ RegSetValueEx(myKey,"FastMdec",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=bUse15bitMdec;
+ RegSetValueEx(myKey,"15BitMdec",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iUseScanLines;
+ RegSetValueEx(myKey,"UseScanLines",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iShowFPS;
+ RegSetValueEx(myKey,"ShowFPS",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iFrameTexType;
+ RegSetValueEx(myKey,"FrameTexType",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iFrameReadType;
+ RegSetValueEx(myKey,"FrameReadType",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=bKeepRatio;
+ RegSetValueEx(myKey,"KeepRatio",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iBlurBuffer;
+ RegSetValueEx(myKey,"FullscreenBlur",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iHiResTextures;
+ RegSetValueEx(myKey,"HiResTextures",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iNoScreenSaver;
+ RegSetValueEx(myKey,"NoScreenSaver",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ temp=iScanBlend;
+ RegSetValueEx(myKey,"ScanBlend",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
+ RegSetValueEx(myKey,"GPUKeys",0,REG_BINARY,(LPBYTE)szGPUKeys,7);
+
+ RegCloseKey(myKey);
+}
+
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+// Key definition window
+
+typedef struct
+{
+ char szName[10];
+ char cCode;
+}
+KEYSETS;
+
+// sepcial keys:
+
+KEYSETS tMKeys[]=
+{
+ {"SPACE", 0x20},
+ {"PRIOR", 0x21},
+ {"NEXT", 0x22},
+ {"END", 0x23},
+ {"HOME", 0x24},
+ {"LEFT", 0x25},
+ {"UP", 0x26},
+ {"RIGHT", 0x27},
+ {"DOWN", 0x28},
+ {"SELECT", 0x29},
+ {"PRINT", 0x2A},
+ {"EXECUTE", 0x2B},
+ {"SNAPSHOT", 0x2C},
+ {"INSERT", 0x2D},
+ {"DELETE", 0x2E},
+ {"HELP", 0x2F},
+ {"NUMPAD0", 0x60},
+ {"NUMPAD1", 0x61},
+ {"NUMPAD2", 0x62},
+ {"NUMPAD3", 0x63},
+ {"NUMPAD4", 0x64},
+ {"NUMPAD5", 0x65},
+ {"NUMPAD6", 0x66},
+ {"NUMPAD7", 0x67},
+ {"NUMPAD8", 0x68},
+ {"NUMPAD9", 0x69},
+ {"MULTIPLY", 0x6A},
+ {"ADD", 0x6B},
+ {"SEPARATOR", 0x6C},
+ {"SUBTRACT", 0x6D},
+ {"DECIMAL", 0x6E},
+ {"DIVIDE", 0x6F},
+ {"", 0x00}
+};
+
+// select key entry in combo box
+
+void SetGPUKey(HWND hWC,char szKey)
+{
+ int i,iCnt=ComboBox_GetCount(hWC);
+ for(i=0;i<iCnt;i++)
+ {
+ if(ComboBox_GetItemData(hWC,i)==szKey) break;
+ }
+ if(i!=iCnt) ComboBox_SetCurSel(hWC,i);
+}
+
+// key window proc
+
+BOOL CALLBACK KeyDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG: // init dialog
+ {
+ int i,j,k;char szB[2];HWND hWC;
+ for(i=IDC_KEY1;i<=IDC_KEY6;i++)
+ {
+ hWC=GetDlgItem(hW,i);
+
+ for(j=0;tMKeys[j].cCode!=0;j++) // fill special keys in combo
+ {
+ k=ComboBox_AddString(hWC,tMKeys[j].szName);
+ ComboBox_SetItemData(hWC,k,tMKeys[j].cCode);
+ }
+ for(j=0x30;j<=0x39;j++) // fill numbers in combo
+ {
+ wsprintf(szB,"%c",j);
+ k=ComboBox_AddString(hWC,szB);
+ ComboBox_SetItemData(hWC,k,j);
+ }
+ for(j=0x41;j<=0x5a;j++) // fill alphas in combo
+ {
+ wsprintf(szB,"%c",j);
+ k=ComboBox_AddString(hWC,szB);
+ ComboBox_SetItemData(hWC,k,j);
+ }
+ SetGPUKey(GetDlgItem(hW,i),szGPUKeys[i-IDC_KEY1]);
+ }
+ }return TRUE;
+
+ case WM_COMMAND:
+ {
+ switch(LOWORD(wParam))
+ {
+ case IDC_DEFAULT: // default button:
+ {
+ int i; // -> set defaults
+ for(i=IDC_KEY1;i<=IDC_KEY6;i++)
+ SetGPUKey(GetDlgItem(hW,i),szKeyDefaults[i-IDC_KEY1]);
+ }break;
+
+ case IDCANCEL: // cancel: just close window
+ EndDialog(hW,FALSE); return TRUE;
+
+ case IDOK: // ok: take key bindings
+ {
+ HWND hWC;int i;
+ for(i=IDC_KEY1;i<=IDC_KEY6;i++)
+ {
+ hWC=GetDlgItem(hW,i);
+ szGPUKeys[i-IDC_KEY1]=ComboBox_GetItemData(hWC,ComboBox_GetCurSel(hWC));
+ if(szGPUKeys[i-IDC_KEY1]<0x20) szGPUKeys[i-IDC_KEY1]=0x20;
+ }
+ EndDialog(hW,TRUE);
+ return TRUE;
+ }
+ }
+ }
+ }
+ return FALSE;
+}
+
+void OnKeyConfig(HWND hW) // call key dialog
+{
+ DialogBox(hInst,MAKEINTRESOURCE(IDD_KEYS),
+ hW,(DLGPROC)KeyDlgProc);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// AboutDlg dialog (Windows)
+
+BOOL CALLBACK AboutDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch(uMsg)
+ {
+ case WM_COMMAND:
+ {
+ switch(LOWORD(wParam))
+ {
+ case IDOK: EndDialog(hW,TRUE);return TRUE;
+ }
+ }
+ }
+ return FALSE;
+}
diff --git a/win32/plugins/peopsxgl/winsrc/fps.c b/win32/plugins/peopsxgl/winsrc/fps.c
index 6faf82c6..2e751107 100644..100755
--- a/win32/plugins/peopsxgl/winsrc/fps.c
+++ b/win32/plugins/peopsxgl/winsrc/fps.c
@@ -1,641 +1,641 @@
-/***************************************************************************
- fps.c - description
- -------------------
- begin : Sun Mar 08 2009
- copyright : (C) 1999-2009 by Pete Bernert
- web : www.pbernert.com
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. See also the license.txt file for *
- * additional informations. *
- * *
- ***************************************************************************/
-
-//*************************************************************************//
-// History of changes:
-//
-// 2009/03/08 - Pete
-// - generic cleanup for the Peops release
-//
-//*************************************************************************//
-
-#include "stdafx.h"
-
-#define _IN_FPS
-
-#include "externals.h"
-
-////////////////////////////////////////////////////////////////////////
-// FPS stuff
-////////////////////////////////////////////////////////////////////////
-
-BOOL bIsPerformanceCounter=FALSE;
-float fFrameRateHz=0;
-DWORD dwFrameRateTicks=16;
-float fFrameRate;
-int iFrameLimit;
-BOOL bUseFrameLimit=FALSE;
-BOOL bUseFrameSkip=0;
-DWORD dwLaceCnt=0;
-
-LARGE_INTEGER liCPUFrequency;
-
-////////////////////////////////////////////////////////////////////////
-// FPS skipping / limit
-////////////////////////////////////////////////////////////////////////
-
-BOOL bInitCap = TRUE;
-float fps_skip = 0;
-float fps_cur = 0;
-
-void FrameCap (void)
-{
- static DWORD curticks, lastticks, _ticks_since_last_update;
- static DWORD TicksToWait = 0;
- static LARGE_INTEGER CurrentTime;
- static LARGE_INTEGER LastTime;
- static BOOL SkipNextWait = FALSE;
- BOOL Waiting = TRUE;
-
- //---------------------------------------------------------
- // init some static vars...
- // bInitCap is TRUE on startup and everytime the user
- // is toggling the frame limit
- //---------------------------------------------------------
-
- if(bInitCap)
- {
- bInitCap=FALSE;
- if (bIsPerformanceCounter)
- QueryPerformanceCounter(&LastTime);
- lastticks = timeGetTime();
- TicksToWait=0;
- return;
- }
-
- //---------------------------------------------------------
-
- if(bIsPerformanceCounter)
- {
- QueryPerformanceCounter(&CurrentTime);
- _ticks_since_last_update = CurrentTime.LowPart - LastTime.LowPart;
-
- //---------------------------------------------------------
- // check if diff > 1/2 sec, if yes: take mm timer value
- //---------------------------------------------------------
-
- curticks = timeGetTime();
- if(_ticks_since_last_update>(liCPUFrequency.LowPart>>1))
- {
- if(curticks < lastticks)
- _ticks_since_last_update = dwFrameRateTicks+TicksToWait+1;
- else _ticks_since_last_update = (liCPUFrequency.LowPart * (curticks - lastticks))/1000;
- }
-
- //---------------------------------------------------------
-
- if ((_ticks_since_last_update > TicksToWait) ||
- (CurrentTime.LowPart < LastTime.LowPart))
- {
- LastTime.HighPart = CurrentTime.HighPart;
- LastTime.LowPart = CurrentTime.LowPart;
-
- lastticks=curticks;
-
- if((_ticks_since_last_update-TicksToWait) > dwFrameRateTicks)
- TicksToWait=0;
- else TicksToWait=dwFrameRateTicks-(_ticks_since_last_update-TicksToWait);
- }
- else
- {
- while (Waiting)
- {
- QueryPerformanceCounter(&CurrentTime);
- _ticks_since_last_update = CurrentTime.LowPart - LastTime.LowPart;
-
- //---------------------------------------------------------
- // check if diff > 1/2 sec, if yes: take mm timer value
- //---------------------------------------------------------
- curticks = timeGetTime();
- if(_ticks_since_last_update>(liCPUFrequency.LowPart>>1))
- {
- if(curticks < lastticks)
- _ticks_since_last_update = TicksToWait+1;
- else _ticks_since_last_update = (liCPUFrequency.LowPart * (curticks - lastticks))/1000;
- }
- //---------------------------------------------------------
-
- if ((_ticks_since_last_update > TicksToWait) ||
- (CurrentTime.LowPart < LastTime.LowPart))
- {
- Waiting = FALSE;
-
- lastticks=curticks;
-
- LastTime.HighPart = CurrentTime.HighPart;
- LastTime.LowPart = CurrentTime.LowPart;
- TicksToWait = dwFrameRateTicks;
- }
- }
- }
- }
- else
- {
- curticks = timeGetTime();
- _ticks_since_last_update = curticks - lastticks;
-
- if ((_ticks_since_last_update > TicksToWait) ||
- (curticks < lastticks))
- {
- lastticks = curticks;
-
- if((_ticks_since_last_update-TicksToWait) > dwFrameRateTicks)
- TicksToWait=0;
- else TicksToWait=dwFrameRateTicks-(_ticks_since_last_update-TicksToWait);
- }
- else
- {
- while (Waiting)
- {
- curticks = timeGetTime();
- _ticks_since_last_update = curticks - lastticks;
- if ((_ticks_since_last_update > TicksToWait) ||
- (curticks < lastticks))
- {
- Waiting = FALSE;
- lastticks = curticks;
- TicksToWait = dwFrameRateTicks;
- }
- }
- }
- }
-}
-
-////////////////////////////////////////////////////////////////////////
-
-#define MAXSKIP 120
-#define MAXLACE 16
-
-void FrameSkip(void)
-{
- static int iNumSkips=0,iAdditionalSkip=0; // number of additional frames to skip
- static DWORD dwLastLace=0; // helper var for frame limitation
- static DWORD curticks, lastticks, _ticks_since_last_update;
- static LARGE_INTEGER CurrentTime;
- static LARGE_INTEGER LastTime;
-
- if(!dwLaceCnt) return; // important: if no updatelace happened, we ignore it completely
-
- if(iNumSkips) // we are in skipping mode?
- {
- dwLastLace+=dwLaceCnt; // -> calc frame limit helper (number of laces)
- bSkipNextFrame = TRUE; // -> we skip next frame
- iNumSkips--; // -> ok, one done
- }
- else // ok, no additional skipping has to be done...
- { // we check now, if some limitation is needed, or a new skipping has to get started
- DWORD dwWaitTime;
-
- if(bInitCap || bSkipNextFrame) // first time or we skipped before?
- {
- if(bUseFrameLimit && !bInitCap) // frame limit wanted and not first time called?
- {
- DWORD dwT=_ticks_since_last_update; // -> that's the time of the last drawn frame
- dwLastLace+=dwLaceCnt; // -> and that's the number of updatelace since the start of the last drawn frame
-
- if(bIsPerformanceCounter) // -> now we calc the time of the last drawn frame + the time we spent skipping
- {
- QueryPerformanceCounter(&CurrentTime);
- _ticks_since_last_update= dwT+CurrentTime.LowPart - LastTime.LowPart;
- }
- else
- {
- curticks = timeGetTime();
- _ticks_since_last_update= dwT+curticks - lastticks;
- }
-
- dwWaitTime=dwLastLace*dwFrameRateTicks; // -> and now we calc the time the real psx would have needed
-
- if(_ticks_since_last_update<dwWaitTime) // -> we were too fast?
- {
- if((dwWaitTime-_ticks_since_last_update)> // -> some more security, to prevent
- (60*dwFrameRateTicks)) // wrong waiting times
- _ticks_since_last_update=dwWaitTime;
-
- while(_ticks_since_last_update<dwWaitTime) // -> loop until we have reached the real psx time
- { // (that's the additional limitation, yup)
- if(bIsPerformanceCounter)
- {
- QueryPerformanceCounter(&CurrentTime);
- _ticks_since_last_update = dwT+CurrentTime.LowPart - LastTime.LowPart;
- }
- else
- {
- curticks = timeGetTime();
- _ticks_since_last_update = dwT+curticks - lastticks;
- }
- }
- }
- else // we were still too slow ?!!?
- {
- if(iAdditionalSkip<MAXSKIP) // -> well, somewhen we really have to stop skipping on very slow systems
- {
- iAdditionalSkip++; // -> inc our watchdog var
- dwLaceCnt=0; // -> reset lace count
- if(bIsPerformanceCounter) // -> ok, start time of the next frame
- QueryPerformanceCounter(&LastTime);
- lastticks = timeGetTime();
- return; // -> done, we will skip next frame to get more speed
- }
- }
- }
-
- bInitCap=FALSE; // -> ok, we have inited the frameskip func
- iAdditionalSkip=0; // -> init additional skip
- bSkipNextFrame=FALSE; // -> we don't skip the next frame
- if(bIsPerformanceCounter) // -> we store the start time of the next frame
- QueryPerformanceCounter(&LastTime);
- lastticks = timeGetTime();
- dwLaceCnt=0; // -> and we start to count the laces
- dwLastLace=0;
- _ticks_since_last_update=0;
- return; // -> done, the next frame will get drawn
- }
-
- bSkipNextFrame=FALSE; // init the frame skip signal to 'no skipping' first
-
- if(bIsPerformanceCounter) // get the current time (we are now at the end of one drawn frame)
- {
- QueryPerformanceCounter(&CurrentTime);
- _ticks_since_last_update = CurrentTime.LowPart - LastTime.LowPart;
- }
- else
- {
- curticks = timeGetTime();
- _ticks_since_last_update = curticks - lastticks;
- }
-
- dwLastLace=dwLaceCnt; // store curr count (frame limitation helper)
- dwWaitTime=dwLaceCnt*dwFrameRateTicks; // calc the 'real psx lace time'
-
- if(_ticks_since_last_update>dwWaitTime) // hey, we needed way too long for that frame...
- {
- if(bUseFrameLimit) // if limitation, we skip just next frame,
- { // and decide after, if we need to do more
- iNumSkips=0;
- }
- else
- {
- iNumSkips=_ticks_since_last_update/dwWaitTime; // -> calc number of frames to skip to catch up
- iNumSkips--; // -> since we already skip next frame, one down
- if(iNumSkips>MAXSKIP) iNumSkips=MAXSKIP; // -> well, somewhere we have to draw a line
- }
- bSkipNextFrame = TRUE; // -> signal for skipping the next frame
- }
- else // we were faster than real psx? fine :)
- if(bUseFrameLimit) // frame limit used? so we wait til the 'real psx time' has been reached
- {
- if(dwLaceCnt>MAXLACE) // -> security check
- _ticks_since_last_update=dwWaitTime;
-
- while(_ticks_since_last_update<dwWaitTime) // just do a waiting loop...
- {
- if(bIsPerformanceCounter)
- {
- QueryPerformanceCounter(&CurrentTime);
- _ticks_since_last_update = CurrentTime.LowPart - LastTime.LowPart;
- }
- else
- {
- curticks = timeGetTime();
- _ticks_since_last_update = curticks - lastticks;
- }
- }
- }
-
- if(bIsPerformanceCounter) // ok, start time of the next frame
- QueryPerformanceCounter(&LastTime);
- lastticks = timeGetTime();
- }
-
- dwLaceCnt=0; // init lace counter
-}
-
-////////////////////////////////////////////////////////////////////////
-
-void calcfps(void)
-{
- static DWORD curticks,_ticks_since_last_update,lastticks;
- static long fps_cnt = 0;
- static DWORD fps_tck = 1;
- static LARGE_INTEGER CurrentTime;
- static LARGE_INTEGER LastTime;
- static long fpsskip_cnt = 0;
- static DWORD fpsskip_tck = 1;
-
- if(bIsPerformanceCounter)
- {
- QueryPerformanceCounter(&CurrentTime);
- _ticks_since_last_update=CurrentTime.LowPart-LastTime.LowPart;
-
- //--------------------------------------------------//
- curticks = timeGetTime();
- if(_ticks_since_last_update>(liCPUFrequency.LowPart>>1))
- _ticks_since_last_update = (liCPUFrequency.LowPart * (curticks - lastticks))/1000;
- lastticks=curticks;
- //--------------------------------------------------//
-
- if(bUseFrameSkip && !bUseFrameLimit && _ticks_since_last_update)
- fps_skip=min(fps_skip,(((float)liCPUFrequency.LowPart) / ((float)_ticks_since_last_update) +1.0f));
-
- LastTime.HighPart = CurrentTime.HighPart;
- LastTime.LowPart = CurrentTime.LowPart;
- }
- else
- {
- curticks = timeGetTime();
- _ticks_since_last_update=curticks-lastticks;
-
- if(bUseFrameSkip && !bUseFrameLimit && _ticks_since_last_update)
- fps_skip=min(fps_skip,((float)1000/(float)_ticks_since_last_update+1.0f));
-
- lastticks = curticks;
- }
-
- if(bUseFrameSkip && bUseFrameLimit)
- {
- fpsskip_tck += _ticks_since_last_update;
-
- if(++fpsskip_cnt==2)
- {
- if(bIsPerformanceCounter)
- fps_skip = ((float)liCPUFrequency.LowPart) / ((float)fpsskip_tck) *2.0f;
- else
- fps_skip = (float)2000/(float)fpsskip_tck;
-
- fps_skip +=6.0f;
-
- fpsskip_cnt = 0;
- fpsskip_tck = 1;
- }
- }
-
- fps_tck += _ticks_since_last_update;
-
- if(++fps_cnt==10)
- {
- if(bIsPerformanceCounter)
- fps_cur = ((float)liCPUFrequency.LowPart) / ((float)fps_tck) *10.0f;
- else
- fps_cur = (float)10000/(float)fps_tck;
-
- fps_cnt = 0;
- fps_tck = 1;
-
- if(bUseFrameLimit && fps_cur>fFrameRateHz) // optical adjust ;) avoids flickering fps display
- fps_cur=fFrameRateHz;
- }
-}
-
-////////////////////////////////////////////////////////////////////////
-// PC FPS skipping / limit
-////////////////////////////////////////////////////////////////////////
-
-void PCFrameCap(void)
-{
- static DWORD curticks, lastticks, _ticks_since_last_update;
- static DWORD TicksToWait = 0;
- static LARGE_INTEGER CurrentTime;
- static LARGE_INTEGER LastTime;
- BOOL Waiting = TRUE;
-
- while (Waiting)
- {
- if(bIsPerformanceCounter)
- {
- QueryPerformanceCounter(&CurrentTime);
- _ticks_since_last_update = CurrentTime.LowPart - LastTime.LowPart;
-
- //------------------------------------------------//
- curticks = timeGetTime();
- if(_ticks_since_last_update>(liCPUFrequency.LowPart>>1))
- {
- if(curticks < lastticks)
- _ticks_since_last_update = TicksToWait+1;
- else _ticks_since_last_update = (liCPUFrequency.LowPart * (curticks - lastticks))/1000;
- }
- //------------------------------------------------//
-
- if ((_ticks_since_last_update > TicksToWait) ||
- (CurrentTime.LowPart < LastTime.LowPart))
- {
- Waiting = FALSE;
-
- lastticks=curticks;
-
- LastTime.HighPart = CurrentTime.HighPart;
- LastTime.LowPart = CurrentTime.LowPart;
- TicksToWait = (liCPUFrequency.LowPart / fFrameRateHz);
- }
- }
- else
- {
- curticks = timeGetTime();
- _ticks_since_last_update = curticks - lastticks;
- if ((_ticks_since_last_update > TicksToWait) ||
- (curticks < lastticks))
- {
- Waiting = FALSE;
- lastticks = curticks;
- TicksToWait = (1000 / (DWORD)fFrameRateHz);
- }
- }
- }
-}
-
-////////////////////////////////////////////////////////////////////////
-
-void PCcalcfps(void)
-{
- static DWORD curticks,_ticks_since_last_update,lastticks;
- static long fps_cnt = 0;
- static float fps_acc = 0;
- static LARGE_INTEGER CurrentTime;
- static LARGE_INTEGER LastTime;
- float CurrentFPS=0;
-
- if(bIsPerformanceCounter)
- {
- QueryPerformanceCounter(&CurrentTime);
- _ticks_since_last_update=CurrentTime.LowPart-LastTime.LowPart;
-
- //--------------------------------------------------//
- curticks = timeGetTime();
- if(_ticks_since_last_update>(liCPUFrequency.LowPart>>1))
- _ticks_since_last_update = (liCPUFrequency.LowPart * (curticks - lastticks))/1000;
- lastticks=curticks;
- //--------------------------------------------------//
-
- if(_ticks_since_last_update)
- {
- CurrentFPS = ((float)liCPUFrequency.LowPart) / ((float)_ticks_since_last_update);
- }
- else CurrentFPS = 0;
- LastTime.HighPart = CurrentTime.HighPart;
- LastTime.LowPart = CurrentTime.LowPart;
- }
- else
- {
- curticks = timeGetTime();
- if(_ticks_since_last_update=curticks-lastticks)
- CurrentFPS=(float)1000/(float)_ticks_since_last_update;
- else CurrentFPS = 0;
- lastticks = curticks;
- }
-
- fps_acc += CurrentFPS;
-
- if(++fps_cnt==10)
- {
- fps_cur = fps_acc / 10;
- fps_acc = 0;
- fps_cnt = 0;
- }
-
- fps_skip=CurrentFPS+1.0f;
-}
-
-////////////////////////////////////////////////////////////////////////
-
-void SetAutoFrameCap(void)
-{
- if(iFrameLimit==1)
- {
- fFrameRateHz = fFrameRate;
- if(bIsPerformanceCounter)
- dwFrameRateTicks=(liCPUFrequency.LowPart / fFrameRateHz);
- else dwFrameRateTicks=(1000 / (DWORD)fFrameRateHz);
- return;
- }
-
- if(dwActFixes&128)
- {
- if (PSXDisplay.Interlaced)
- fFrameRateHz = PSXDisplay.PAL?50.0f:60.0f;
- else fFrameRateHz = PSXDisplay.PAL?25.0f:30.0f;
- }
- else
- {
- //fFrameRateHz = PSXDisplay.PAL?50.0f:59.94f;
-
- if(PSXDisplay.PAL)
- {
- if (STATUSREG&GPUSTATUS_INTERLACED)
- fFrameRateHz=33868800.0f/677343.75f; // 50.00238
- else fFrameRateHz=33868800.0f/680595.00f; // 49.76351
- }
- else
- {
- if (STATUSREG&GPUSTATUS_INTERLACED)
- fFrameRateHz=33868800.0f/565031.25f; // 59.94146
- else fFrameRateHz=33868800.0f/566107.50f; // 59.82750
- }
-
- if(bIsPerformanceCounter)
- dwFrameRateTicks=(liCPUFrequency.LowPart / fFrameRateHz);
- else dwFrameRateTicks=(1000 / (DWORD)fFrameRateHz);
- }
-}
-
-////////////////////////////////////////////////////////////////////////
-
-void InitFrameCap(void) // inits cpu frequency info (on gpu startup)
-{
- if (QueryPerformanceFrequency (&liCPUFrequency))
- bIsPerformanceCounter = TRUE;
- else bIsPerformanceCounter = FALSE;
-}
-
-////////////////////////////////////////////////////////////////////////
-
-void ReInitFrameCap(void)
-{
- BOOL bOldPerformanceCounter=bIsPerformanceCounter; // store curr timer mode
-
- if(dwActFixes&0x10000) // check game fix... high performance counters are bad on some mb chipsets
- bIsPerformanceCounter=FALSE;
- else
- {
- if (QueryPerformanceFrequency (&liCPUFrequency))
- bIsPerformanceCounter = TRUE;
- else bIsPerformanceCounter = FALSE;
- }
-
- if(bOldPerformanceCounter!=bIsPerformanceCounter) // changed?
- {
- bInitCap = TRUE;
- SetAutoFrameCap();
- }
-}
-
-////////////////////////////////////////////////////////////////////////
-
-void SetFrameRateConfig(void)
-{
- if(fFrameRateHz==0)
- {
- if(iFrameLimit==2) fFrameRateHz=59.94f; // auto framerate? set some init val (no pal/ntsc known yet)
- else fFrameRateHz=fFrameRate; // else set user framerate
- }
-
- if(bIsPerformanceCounter)
- dwFrameRateTicks=(liCPUFrequency.LowPart / fFrameRateHz);
- else dwFrameRateTicks=(1000 / (DWORD)fFrameRateHz);
-}
-
-void CheckFrameRate(void) // called in updatelace (on every emulated psx vsync)
-{
- if(bUseFrameSkip)
- {
- if(!(dwActFixes&0x100))
- {
- dwLaceCnt++; // -> and store cnt of vsync between frames
- if(dwLaceCnt>=MAXLACE && bUseFrameLimit)
- {
- if(dwLaceCnt==MAXLACE) bInitCap=TRUE;
- FrameCap();
- }
- }
- else if(bUseFrameLimit) FrameCap();
- calcfps(); // -> calc fps display in skipping mode
- }
- else // -> non-skipping mode:
- {
- if(bUseFrameLimit) FrameCap();
- if(ulKeybits&KEY_SHOWFPS) calcfps();
- }
-}
-
-////////////////////////////////////////////////////////////////////////
-
-void CALLBACK GPUsetframelimit(unsigned long option) // new EPSXE interface func: main emu can enable/disable fps limitation this way
-{
- bInitCap = TRUE;
-
- if(option==1) // emu says: limit
- {
- bUseFrameLimit=TRUE;bUseFrameSkip=FALSE;iFrameLimit=2;
- SetAutoFrameCap();
- }
- else // emu says: no limit
- {
- bUseFrameLimit=FALSE;
- }
-}
-
-////////////////////////////////////////////////////////////////////////
+/***************************************************************************
+ fps.c - description
+ -------------------
+ begin : Sun Mar 08 2009
+ copyright : (C) 1999-2009 by Pete Bernert
+ web : www.pbernert.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. See also the license.txt file for *
+ * additional informations. *
+ * *
+ ***************************************************************************/
+
+//*************************************************************************//
+// History of changes:
+//
+// 2009/03/08 - Pete
+// - generic cleanup for the Peops release
+//
+//*************************************************************************//
+
+#include "stdafx.h"
+
+#define _IN_FPS
+
+#include "externals.h"
+
+////////////////////////////////////////////////////////////////////////
+// FPS stuff
+////////////////////////////////////////////////////////////////////////
+
+BOOL bIsPerformanceCounter=FALSE;
+float fFrameRateHz=0;
+DWORD dwFrameRateTicks=16;
+float fFrameRate;
+int iFrameLimit;
+BOOL bUseFrameLimit=FALSE;
+BOOL bUseFrameSkip=0;
+DWORD dwLaceCnt=0;
+
+LARGE_INTEGER liCPUFrequency;
+
+////////////////////////////////////////////////////////////////////////
+// FPS skipping / limit
+////////////////////////////////////////////////////////////////////////
+
+BOOL bInitCap = TRUE;
+float fps_skip = 0;
+float fps_cur = 0;
+
+void FrameCap (void)
+{
+ static DWORD curticks, lastticks, _ticks_since_last_update;
+ static DWORD TicksToWait = 0;
+ static LARGE_INTEGER CurrentTime;
+ static LARGE_INTEGER LastTime;
+ static BOOL SkipNextWait = FALSE;
+ BOOL Waiting = TRUE;
+
+ //---------------------------------------------------------
+ // init some static vars...
+ // bInitCap is TRUE on startup and everytime the user
+ // is toggling the frame limit
+ //---------------------------------------------------------
+
+ if(bInitCap)
+ {
+ bInitCap=FALSE;
+ if (bIsPerformanceCounter)
+ QueryPerformanceCounter(&LastTime);
+ lastticks = timeGetTime();
+ TicksToWait=0;
+ return;
+ }
+
+ //---------------------------------------------------------
+
+ if(bIsPerformanceCounter)
+ {
+ QueryPerformanceCounter(&CurrentTime);
+ _ticks_since_last_update = CurrentTime.LowPart - LastTime.LowPart;
+
+ //---------------------------------------------------------
+ // check if diff > 1/2 sec, if yes: take mm timer value
+ //---------------------------------------------------------
+
+ curticks = timeGetTime();
+ if(_ticks_since_last_update>(liCPUFrequency.LowPart>>1))
+ {
+ if(curticks < lastticks)
+ _ticks_since_last_update = dwFrameRateTicks+TicksToWait+1;
+ else _ticks_since_last_update = (liCPUFrequency.LowPart * (curticks - lastticks))/1000;
+ }
+
+ //---------------------------------------------------------
+
+ if ((_ticks_since_last_update > TicksToWait) ||
+ (CurrentTime.LowPart < LastTime.LowPart))
+ {
+ LastTime.HighPart = CurrentTime.HighPart;
+ LastTime.LowPart = CurrentTime.LowPart;
+
+ lastticks=curticks;
+
+ if((_ticks_since_last_update-TicksToWait) > dwFrameRateTicks)
+ TicksToWait=0;
+ else TicksToWait=dwFrameRateTicks-(_ticks_since_last_update-TicksToWait);
+ }
+ else
+ {
+ while (Waiting)
+ {
+ QueryPerformanceCounter(&CurrentTime);
+ _ticks_since_last_update = CurrentTime.LowPart - LastTime.LowPart;
+
+ //---------------------------------------------------------
+ // check if diff > 1/2 sec, if yes: take mm timer value
+ //---------------------------------------------------------
+ curticks = timeGetTime();
+ if(_ticks_since_last_update>(liCPUFrequency.LowPart>>1))
+ {
+ if(curticks < lastticks)
+ _ticks_since_last_update = TicksToWait+1;
+ else _ticks_since_last_update = (liCPUFrequency.LowPart * (curticks - lastticks))/1000;
+ }
+ //---------------------------------------------------------
+
+ if ((_ticks_since_last_update > TicksToWait) ||
+ (CurrentTime.LowPart < LastTime.LowPart))
+ {
+ Waiting = FALSE;
+
+ lastticks=curticks;
+
+ LastTime.HighPart = CurrentTime.HighPart;
+ LastTime.LowPart = CurrentTime.LowPart;
+ TicksToWait = dwFrameRateTicks;
+ }
+ }
+ }
+ }
+ else
+ {
+ curticks = timeGetTime();
+ _ticks_since_last_update = curticks - lastticks;
+
+ if ((_ticks_since_last_update > TicksToWait) ||
+ (curticks < lastticks))
+ {
+ lastticks = curticks;
+
+ if((_ticks_since_last_update-TicksToWait) > dwFrameRateTicks)
+ TicksToWait=0;
+ else TicksToWait=dwFrameRateTicks-(_ticks_since_last_update-TicksToWait);
+ }
+ else
+ {
+ while (Waiting)
+ {
+ curticks = timeGetTime();
+ _ticks_since_last_update = curticks - lastticks;
+ if ((_ticks_since_last_update > TicksToWait) ||
+ (curticks < lastticks))
+ {
+ Waiting = FALSE;
+ lastticks = curticks;
+ TicksToWait = dwFrameRateTicks;
+ }
+ }
+ }
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
+
+#define MAXSKIP 120
+#define MAXLACE 16
+
+void FrameSkip(void)
+{
+ static int iNumSkips=0,iAdditionalSkip=0; // number of additional frames to skip
+ static DWORD dwLastLace=0; // helper var for frame limitation
+ static DWORD curticks, lastticks, _ticks_since_last_update;
+ static LARGE_INTEGER CurrentTime;
+ static LARGE_INTEGER LastTime;
+
+ if(!dwLaceCnt) return; // important: if no updatelace happened, we ignore it completely
+
+ if(iNumSkips) // we are in skipping mode?
+ {
+ dwLastLace+=dwLaceCnt; // -> calc frame limit helper (number of laces)
+ bSkipNextFrame = TRUE; // -> we skip next frame
+ iNumSkips--; // -> ok, one done
+ }
+ else // ok, no additional skipping has to be done...
+ { // we check now, if some limitation is needed, or a new skipping has to get started
+ DWORD dwWaitTime;
+
+ if(bInitCap || bSkipNextFrame) // first time or we skipped before?
+ {
+ if(bUseFrameLimit && !bInitCap) // frame limit wanted and not first time called?
+ {
+ DWORD dwT=_ticks_since_last_update; // -> that's the time of the last drawn frame
+ dwLastLace+=dwLaceCnt; // -> and that's the number of updatelace since the start of the last drawn frame
+
+ if(bIsPerformanceCounter) // -> now we calc the time of the last drawn frame + the time we spent skipping
+ {
+ QueryPerformanceCounter(&CurrentTime);
+ _ticks_since_last_update= dwT+CurrentTime.LowPart - LastTime.LowPart;
+ }
+ else
+ {
+ curticks = timeGetTime();
+ _ticks_since_last_update= dwT+curticks - lastticks;
+ }
+
+ dwWaitTime=dwLastLace*dwFrameRateTicks; // -> and now we calc the time the real psx would have needed
+
+ if(_ticks_since_last_update<dwWaitTime) // -> we were too fast?
+ {
+ if((dwWaitTime-_ticks_since_last_update)> // -> some more security, to prevent
+ (60*dwFrameRateTicks)) // wrong waiting times
+ _ticks_since_last_update=dwWaitTime;
+
+ while(_ticks_since_last_update<dwWaitTime) // -> loop until we have reached the real psx time
+ { // (that's the additional limitation, yup)
+ if(bIsPerformanceCounter)
+ {
+ QueryPerformanceCounter(&CurrentTime);
+ _ticks_since_last_update = dwT+CurrentTime.LowPart - LastTime.LowPart;
+ }
+ else
+ {
+ curticks = timeGetTime();
+ _ticks_since_last_update = dwT+curticks - lastticks;
+ }
+ }
+ }
+ else // we were still too slow ?!!?
+ {
+ if(iAdditionalSkip<MAXSKIP) // -> well, somewhen we really have to stop skipping on very slow systems
+ {
+ iAdditionalSkip++; // -> inc our watchdog var
+ dwLaceCnt=0; // -> reset lace count
+ if(bIsPerformanceCounter) // -> ok, start time of the next frame
+ QueryPerformanceCounter(&LastTime);
+ lastticks = timeGetTime();
+ return; // -> done, we will skip next frame to get more speed
+ }
+ }
+ }
+
+ bInitCap=FALSE; // -> ok, we have inited the frameskip func
+ iAdditionalSkip=0; // -> init additional skip
+ bSkipNextFrame=FALSE; // -> we don't skip the next frame
+ if(bIsPerformanceCounter) // -> we store the start time of the next frame
+ QueryPerformanceCounter(&LastTime);
+ lastticks = timeGetTime();
+ dwLaceCnt=0; // -> and we start to count the laces
+ dwLastLace=0;
+ _ticks_since_last_update=0;
+ return; // -> done, the next frame will get drawn
+ }
+
+ bSkipNextFrame=FALSE; // init the frame skip signal to 'no skipping' first
+
+ if(bIsPerformanceCounter) // get the current time (we are now at the end of one drawn frame)
+ {
+ QueryPerformanceCounter(&CurrentTime);
+ _ticks_since_last_update = CurrentTime.LowPart - LastTime.LowPart;
+ }
+ else
+ {
+ curticks = timeGetTime();
+ _ticks_since_last_update = curticks - lastticks;
+ }
+
+ dwLastLace=dwLaceCnt; // store curr count (frame limitation helper)
+ dwWaitTime=dwLaceCnt*dwFrameRateTicks; // calc the 'real psx lace time'
+
+ if(_ticks_since_last_update>dwWaitTime) // hey, we needed way too long for that frame...
+ {
+ if(bUseFrameLimit) // if limitation, we skip just next frame,
+ { // and decide after, if we need to do more
+ iNumSkips=0;
+ }
+ else
+ {
+ iNumSkips=_ticks_since_last_update/dwWaitTime; // -> calc number of frames to skip to catch up
+ iNumSkips--; // -> since we already skip next frame, one down
+ if(iNumSkips>MAXSKIP) iNumSkips=MAXSKIP; // -> well, somewhere we have to draw a line
+ }
+ bSkipNextFrame = TRUE; // -> signal for skipping the next frame
+ }
+ else // we were faster than real psx? fine :)
+ if(bUseFrameLimit) // frame limit used? so we wait til the 'real psx time' has been reached
+ {
+ if(dwLaceCnt>MAXLACE) // -> security check
+ _ticks_since_last_update=dwWaitTime;
+
+ while(_ticks_since_last_update<dwWaitTime) // just do a waiting loop...
+ {
+ if(bIsPerformanceCounter)
+ {
+ QueryPerformanceCounter(&CurrentTime);
+ _ticks_since_last_update = CurrentTime.LowPart - LastTime.LowPart;
+ }
+ else
+ {
+ curticks = timeGetTime();
+ _ticks_since_last_update = curticks - lastticks;
+ }
+ }
+ }
+
+ if(bIsPerformanceCounter) // ok, start time of the next frame
+ QueryPerformanceCounter(&LastTime);
+ lastticks = timeGetTime();
+ }
+
+ dwLaceCnt=0; // init lace counter
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void calcfps(void)
+{
+ static DWORD curticks,_ticks_since_last_update,lastticks;
+ static long fps_cnt = 0;
+ static DWORD fps_tck = 1;
+ static LARGE_INTEGER CurrentTime;
+ static LARGE_INTEGER LastTime;
+ static long fpsskip_cnt = 0;
+ static DWORD fpsskip_tck = 1;
+
+ if(bIsPerformanceCounter)
+ {
+ QueryPerformanceCounter(&CurrentTime);
+ _ticks_since_last_update=CurrentTime.LowPart-LastTime.LowPart;
+
+ //--------------------------------------------------//
+ curticks = timeGetTime();
+ if(_ticks_since_last_update>(liCPUFrequency.LowPart>>1))
+ _ticks_since_last_update = (liCPUFrequency.LowPart * (curticks - lastticks))/1000;
+ lastticks=curticks;
+ //--------------------------------------------------//
+
+ if(bUseFrameSkip && !bUseFrameLimit && _ticks_since_last_update)
+ fps_skip=min(fps_skip,(((float)liCPUFrequency.LowPart) / ((float)_ticks_since_last_update) +1.0f));
+
+ LastTime.HighPart = CurrentTime.HighPart;
+ LastTime.LowPart = CurrentTime.LowPart;
+ }
+ else
+ {
+ curticks = timeGetTime();
+ _ticks_since_last_update=curticks-lastticks;
+
+ if(bUseFrameSkip && !bUseFrameLimit && _ticks_since_last_update)
+ fps_skip=min(fps_skip,((float)1000/(float)_ticks_since_last_update+1.0f));
+
+ lastticks = curticks;
+ }
+
+ if(bUseFrameSkip && bUseFrameLimit)
+ {
+ fpsskip_tck += _ticks_since_last_update;
+
+ if(++fpsskip_cnt==2)
+ {
+ if(bIsPerformanceCounter)
+ fps_skip = ((float)liCPUFrequency.LowPart) / ((float)fpsskip_tck) *2.0f;
+ else
+ fps_skip = (float)2000/(float)fpsskip_tck;
+
+ fps_skip +=6.0f;
+
+ fpsskip_cnt = 0;
+ fpsskip_tck = 1;
+ }
+ }
+
+ fps_tck += _ticks_since_last_update;
+
+ if(++fps_cnt==10)
+ {
+ if(bIsPerformanceCounter)
+ fps_cur = ((float)liCPUFrequency.LowPart) / ((float)fps_tck) *10.0f;
+ else
+ fps_cur = (float)10000/(float)fps_tck;
+
+ fps_cnt = 0;
+ fps_tck = 1;
+
+ if(bUseFrameLimit && fps_cur>fFrameRateHz) // optical adjust ;) avoids flickering fps display
+ fps_cur=fFrameRateHz;
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
+// PC FPS skipping / limit
+////////////////////////////////////////////////////////////////////////
+
+void PCFrameCap(void)
+{
+ static DWORD curticks, lastticks, _ticks_since_last_update;
+ static DWORD TicksToWait = 0;
+ static LARGE_INTEGER CurrentTime;
+ static LARGE_INTEGER LastTime;
+ BOOL Waiting = TRUE;
+
+ while (Waiting)
+ {
+ if(bIsPerformanceCounter)
+ {
+ QueryPerformanceCounter(&CurrentTime);
+ _ticks_since_last_update = CurrentTime.LowPart - LastTime.LowPart;
+
+ //------------------------------------------------//
+ curticks = timeGetTime();
+ if(_ticks_since_last_update>(liCPUFrequency.LowPart>>1))
+ {
+ if(curticks < lastticks)
+ _ticks_since_last_update = TicksToWait+1;
+ else _ticks_since_last_update = (liCPUFrequency.LowPart * (curticks - lastticks))/1000;
+ }
+ //------------------------------------------------//
+
+ if ((_ticks_since_last_update > TicksToWait) ||
+ (CurrentTime.LowPart < LastTime.LowPart))
+ {
+ Waiting = FALSE;
+
+ lastticks=curticks;
+
+ LastTime.HighPart = CurrentTime.HighPart;
+ LastTime.LowPart = CurrentTime.LowPart;
+ TicksToWait = (liCPUFrequency.LowPart / fFrameRateHz);
+ }
+ }
+ else
+ {
+ curticks = timeGetTime();
+ _ticks_since_last_update = curticks - lastticks;
+ if ((_ticks_since_last_update > TicksToWait) ||
+ (curticks < lastticks))
+ {
+ Waiting = FALSE;
+ lastticks = curticks;
+ TicksToWait = (1000 / (DWORD)fFrameRateHz);
+ }
+ }
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void PCcalcfps(void)
+{
+ static DWORD curticks,_ticks_since_last_update,lastticks;
+ static long fps_cnt = 0;
+ static float fps_acc = 0;
+ static LARGE_INTEGER CurrentTime;
+ static LARGE_INTEGER LastTime;
+ float CurrentFPS=0;
+
+ if(bIsPerformanceCounter)
+ {
+ QueryPerformanceCounter(&CurrentTime);
+ _ticks_since_last_update=CurrentTime.LowPart-LastTime.LowPart;
+
+ //--------------------------------------------------//
+ curticks = timeGetTime();
+ if(_ticks_since_last_update>(liCPUFrequency.LowPart>>1))
+ _ticks_since_last_update = (liCPUFrequency.LowPart * (curticks - lastticks))/1000;
+ lastticks=curticks;
+ //--------------------------------------------------//
+
+ if(_ticks_since_last_update)
+ {
+ CurrentFPS = ((float)liCPUFrequency.LowPart) / ((float)_ticks_since_last_update);
+ }
+ else CurrentFPS = 0;
+ LastTime.HighPart = CurrentTime.HighPart;
+ LastTime.LowPart = CurrentTime.LowPart;
+ }
+ else
+ {
+ curticks = timeGetTime();
+ if(_ticks_since_last_update=curticks-lastticks)
+ CurrentFPS=(float)1000/(float)_ticks_since_last_update;
+ else CurrentFPS = 0;
+ lastticks = curticks;
+ }
+
+ fps_acc += CurrentFPS;
+
+ if(++fps_cnt==10)
+ {
+ fps_cur = fps_acc / 10;
+ fps_acc = 0;
+ fps_cnt = 0;
+ }
+
+ fps_skip=CurrentFPS+1.0f;
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void SetAutoFrameCap(void)
+{
+ if(iFrameLimit==1)
+ {
+ fFrameRateHz = fFrameRate;
+ if(bIsPerformanceCounter)
+ dwFrameRateTicks=(liCPUFrequency.LowPart / fFrameRateHz);
+ else dwFrameRateTicks=(1000 / (DWORD)fFrameRateHz);
+ return;
+ }
+
+ if(dwActFixes&128)
+ {
+ if (PSXDisplay.Interlaced)
+ fFrameRateHz = PSXDisplay.PAL?50.0f:60.0f;
+ else fFrameRateHz = PSXDisplay.PAL?25.0f:30.0f;
+ }
+ else
+ {
+ //fFrameRateHz = PSXDisplay.PAL?50.0f:59.94f;
+
+ if(PSXDisplay.PAL)
+ {
+ if (STATUSREG&GPUSTATUS_INTERLACED)
+ fFrameRateHz=33868800.0f/677343.75f; // 50.00238
+ else fFrameRateHz=33868800.0f/680595.00f; // 49.76351
+ }
+ else
+ {
+ if (STATUSREG&GPUSTATUS_INTERLACED)
+ fFrameRateHz=33868800.0f/565031.25f; // 59.94146
+ else fFrameRateHz=33868800.0f/566107.50f; // 59.82750
+ }
+
+ if(bIsPerformanceCounter)
+ dwFrameRateTicks=(liCPUFrequency.LowPart / fFrameRateHz);
+ else dwFrameRateTicks=(1000 / (DWORD)fFrameRateHz);
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void InitFrameCap(void) // inits cpu frequency info (on gpu startup)
+{
+ if (QueryPerformanceFrequency (&liCPUFrequency))
+ bIsPerformanceCounter = TRUE;
+ else bIsPerformanceCounter = FALSE;
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void ReInitFrameCap(void)
+{
+ BOOL bOldPerformanceCounter=bIsPerformanceCounter; // store curr timer mode
+
+ if(dwActFixes&0x10000) // check game fix... high performance counters are bad on some mb chipsets
+ bIsPerformanceCounter=FALSE;
+ else
+ {
+ if (QueryPerformanceFrequency (&liCPUFrequency))
+ bIsPerformanceCounter = TRUE;
+ else bIsPerformanceCounter = FALSE;
+ }
+
+ if(bOldPerformanceCounter!=bIsPerformanceCounter) // changed?
+ {
+ bInitCap = TRUE;
+ SetAutoFrameCap();
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void SetFrameRateConfig(void)
+{
+ if(fFrameRateHz==0)
+ {
+ if(iFrameLimit==2) fFrameRateHz=59.94f; // auto framerate? set some init val (no pal/ntsc known yet)
+ else fFrameRateHz=fFrameRate; // else set user framerate
+ }
+
+ if(bIsPerformanceCounter)
+ dwFrameRateTicks=(liCPUFrequency.LowPart / fFrameRateHz);
+ else dwFrameRateTicks=(1000 / (DWORD)fFrameRateHz);
+}
+
+void CheckFrameRate(void) // called in updatelace (on every emulated psx vsync)
+{
+ if(bUseFrameSkip)
+ {
+ if(!(dwActFixes&0x100))
+ {
+ dwLaceCnt++; // -> and store cnt of vsync between frames
+ if(dwLaceCnt>=MAXLACE && bUseFrameLimit)
+ {
+ if(dwLaceCnt==MAXLACE) bInitCap=TRUE;
+ FrameCap();
+ }
+ }
+ else if(bUseFrameLimit) FrameCap();
+ calcfps(); // -> calc fps display in skipping mode
+ }
+ else // -> non-skipping mode:
+ {
+ if(bUseFrameLimit) FrameCap();
+ if(ulKeybits&KEY_SHOWFPS) calcfps();
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void CALLBACK GPUsetframelimit(unsigned long option) // new EPSXE interface func: main emu can enable/disable fps limitation this way
+{
+ bInitCap = TRUE;
+
+ if(option==1) // emu says: limit
+ {
+ bUseFrameLimit=TRUE;bUseFrameSkip=FALSE;iFrameLimit=2;
+ SetAutoFrameCap();
+ }
+ else // emu says: no limit
+ {
+ bUseFrameLimit=FALSE;
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
diff --git a/win32/plugins/peopsxgl/winsrc/key.c b/win32/plugins/peopsxgl/winsrc/key.c
index f1ad8ca3..5884b040 100644..100755
--- a/win32/plugins/peopsxgl/winsrc/key.c
+++ b/win32/plugins/peopsxgl/winsrc/key.c
@@ -1,203 +1,203 @@
-/***************************************************************************
- key.c - description
- -------------------
- begin : Sun Mar 08 2009
- copyright : (C) 1999-2009 by Pete Bernert
- web : www.pbernert.com
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. See also the license.txt file for *
- * additional informations. *
- * *
- ***************************************************************************/
-
-//*************************************************************************//
-// History of changes:
-//
-// 2009/03/08 - Pete
-// - generic cleanup for the Peops release
-//
-//*************************************************************************//
-
-#include "stdafx.h"
-
-#define _IN_KEY
-
-#include "externals.h"
-#include "menu.h"
-#include "texture.h"
-#include "draw.h"
-#include "fps.h"
-
-////////////////////////////////////////////////////////////////////////
-// KeyBoard handler stuff
-////////////////////////////////////////////////////////////////////////
-
-uint32_t ulKeybits;
-
-static WNDPROC pOldWinProc=0;
-char szGPUKeys[7];
-
-////////////////////////////////////////////////////////////////////////
-// keyboard handler (WINDOWS)
-////////////////////////////////////////////////////////////////////////
-
-LRESULT CALLBACK key_winproc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
-{
- switch(message)
- {
- case WM_SYSCOMMAND:
- if(iNoScreenSaver && wParam==SC_SCREENSAVE) return 0L;
- break;
-
- case WM_KEYDOWN:
- if(wParam==(WPARAM)szGPUKeys[1]) {ulKeybits|=KEY_RESETTEXSTORE;break;}
- break;
-
- case WM_SYSKEYUP:
- if(wParam==VK_RETURN) bChangeWinMode=TRUE;
- break;
-
- case WM_KEYUP:
- if(wParam==(WPARAM)szGPUKeys[0])
- {
- if(ulKeybits&KEY_SHOWFPS)
- {
- ulKeybits&=~KEY_SHOWFPS;
- HideText();
- DestroyPic();
- }
- else
- {
- ulKeybits|=KEY_SHOWFPS;
- szDispBuf[0]=0;
- BuildDispMenu(0);
- }
- break;
- }
- if(wParam==(WPARAM)szGPUKeys[1]) {ShowGpuPic();break;}
- if(wParam==(WPARAM)szGPUKeys[2]) {SwitchDispMenu(-1); break;}
- if(wParam==(WPARAM)szGPUKeys[3]) {SwitchDispMenu( 1); break;}
- if(wParam==(WPARAM)szGPUKeys[4])
- {
- if(GetAsyncKeyState(VK_SHIFT)&32768)
- {
- if(iBlurBuffer) iBlurBuffer=0;
- else iBlurBuffer=1;
- }
- BuildDispMenu(-1);
- break;
- }
- if(wParam==(WPARAM)szGPUKeys[5]) {BuildDispMenu( 1); break;}
-
- }
- return pOldWinProc( hwnd, message, wParam, lParam );
-}
-
-////////////////////////////////////////////////////////////////////////
-
-void InitKeyHandler(void)
-{
- if(!pOldWinProc)
- {
- pOldWinProc = (WNDPROC)GetWindowLong(hWWindow, GWL_WNDPROC );
- SetWindowLong(hWWindow, GWL_WNDPROC, (long)key_winproc);
- }
-}
-
-////////////////////////////////////////////////////////////////////////
-
-void ExitKeyHandler(void)
-{
- if(pOldWinProc)
- SetWindowLong(hWWindow,GWL_WNDPROC, // set old proc
- (long)pOldWinProc);
- pOldWinProc = 0;
-}
-
-////////////////////////////////////////////////////////////////////////
-// reset stuff on special keyboard commands
-////////////////////////////////////////////////////////////////////////
-
-void ResetStuff(void)
-{
- ResetTextureArea(TRUE);
- ulKeybits&=~KEY_RESETTEXSTORE;
-
- if(ulKeybits&KEY_BLACKWHITE)
- {
- if(bUseFixes) {bUseFixes=FALSE;dwActFixes=0;}
- else {bUseFixes=TRUE; dwActFixes=dwCfgFixes;}
- SetExtGLFuncs();
- if(iFrameLimit==2) SetAutoFrameCap();
- ulKeybits&=~KEY_BLACKWHITE;
- }
-
- if(ulKeybits&KEY_RESETFILTER)
- {
- if(ulKeybits&KEY_STEPDOWN)
- iFilterType--;
- else iFilterType++;
- if(iFilterType>6) iFilterType=0;
- if(iFilterType<0) iFilterType=6;
- SetExtGLFuncs();
- ulKeybits&=~(KEY_RESETFILTER|KEY_STEPDOWN);
- BuildDispMenu(0);
- }
-
- if(ulKeybits&KEY_RESETOPAQUE)
- {
- bOpaquePass=!bOpaquePass;
- SetExtGLFuncs();
- ulKeybits&=~KEY_RESETOPAQUE;
- BuildDispMenu(0);
- }
-
- if(ulKeybits&KEY_RESETADVBLEND)
- {
- bAdvancedBlend=!bAdvancedBlend;
- SetExtGLFuncs();
- ulKeybits&=~KEY_RESETADVBLEND;
- BuildDispMenu(0);
- }
-
- if(ulKeybits&KEY_RESETDITHER)
- {
- bDrawDither=!bDrawDither;
- if(bDrawDither) glEnable(GL_DITHER);
- else glDisable(GL_DITHER);
- ulKeybits&=~KEY_RESETDITHER;
- BuildDispMenu(0);
- }
-
- if(ulKeybits & KEY_TOGGLEFBTEXTURE)
- {
- if(ulKeybits&KEY_STEPDOWN)
- iFrameTexType--;
- else iFrameTexType++;
- if(iFrameTexType>3) iFrameTexType=0;
- if(iFrameTexType<0) iFrameTexType=3;
- if(gTexFrameName!=0)
- glDeleteTextures(1, &gTexFrameName);
- gTexFrameName=0;
- ulKeybits&=~(KEY_TOGGLEFBTEXTURE|KEY_STEPDOWN);
- }
-
- if(ulKeybits & KEY_TOGGLEFBREAD)
- {
- if(ulKeybits&KEY_STEPDOWN)
- iFrameReadType--;
- else iFrameReadType++;
- if(iFrameReadType>4) iFrameReadType=0;
- if(iFrameReadType<0) iFrameReadType=4;
- if(iFrameReadType==4) bFullVRam=TRUE;
- else bFullVRam=FALSE;
- iRenderFVR=0;
- ulKeybits&=~(KEY_TOGGLEFBREAD|KEY_STEPDOWN);
- }
-}
+/***************************************************************************
+ key.c - description
+ -------------------
+ begin : Sun Mar 08 2009
+ copyright : (C) 1999-2009 by Pete Bernert
+ web : www.pbernert.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. See also the license.txt file for *
+ * additional informations. *
+ * *
+ ***************************************************************************/
+
+//*************************************************************************//
+// History of changes:
+//
+// 2009/03/08 - Pete
+// - generic cleanup for the Peops release
+//
+//*************************************************************************//
+
+#include "stdafx.h"
+
+#define _IN_KEY
+
+#include "externals.h"
+#include "menu.h"
+#include "texture.h"
+#include "draw.h"
+#include "fps.h"
+
+////////////////////////////////////////////////////////////////////////
+// KeyBoard handler stuff
+////////////////////////////////////////////////////////////////////////
+
+uint32_t ulKeybits;
+
+static WNDPROC pOldWinProc=0;
+char szGPUKeys[7];
+
+////////////////////////////////////////////////////////////////////////
+// keyboard handler (WINDOWS)
+////////////////////////////////////////////////////////////////////////
+
+LRESULT CALLBACK key_winproc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
+{
+ switch(message)
+ {
+ case WM_SYSCOMMAND:
+ if(iNoScreenSaver && wParam==SC_SCREENSAVE) return 0L;
+ break;
+
+ case WM_KEYDOWN:
+ if(wParam==(WPARAM)szGPUKeys[1]) {ulKeybits|=KEY_RESETTEXSTORE;break;}
+ break;
+
+ case WM_SYSKEYUP:
+ if(wParam==VK_RETURN) bChangeWinMode=TRUE;
+ break;
+
+ case WM_KEYUP:
+ if(wParam==(WPARAM)szGPUKeys[0])
+ {
+ if(ulKeybits&KEY_SHOWFPS)
+ {
+ ulKeybits&=~KEY_SHOWFPS;
+ HideText();
+ DestroyPic();
+ }
+ else
+ {
+ ulKeybits|=KEY_SHOWFPS;
+ szDispBuf[0]=0;
+ BuildDispMenu(0);
+ }
+ break;
+ }
+ if(wParam==(WPARAM)szGPUKeys[1]) {ShowGpuPic();break;}
+ if(wParam==(WPARAM)szGPUKeys[2]) {SwitchDispMenu(-1); break;}
+ if(wParam==(WPARAM)szGPUKeys[3]) {SwitchDispMenu( 1); break;}
+ if(wParam==(WPARAM)szGPUKeys[4])
+ {
+ if(GetAsyncKeyState(VK_SHIFT)&32768)
+ {
+ if(iBlurBuffer) iBlurBuffer=0;
+ else iBlurBuffer=1;
+ }
+ BuildDispMenu(-1);
+ break;
+ }
+ if(wParam==(WPARAM)szGPUKeys[5]) {BuildDispMenu( 1); break;}
+
+ }
+ return pOldWinProc( hwnd, message, wParam, lParam );
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void InitKeyHandler(void)
+{
+ if(!pOldWinProc)
+ {
+ pOldWinProc = (WNDPROC)GetWindowLong(hWWindow, GWL_WNDPROC );
+ SetWindowLong(hWWindow, GWL_WNDPROC, (long)key_winproc);
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void ExitKeyHandler(void)
+{
+ if(pOldWinProc)
+ SetWindowLong(hWWindow,GWL_WNDPROC, // set old proc
+ (long)pOldWinProc);
+ pOldWinProc = 0;
+}
+
+////////////////////////////////////////////////////////////////////////
+// reset stuff on special keyboard commands
+////////////////////////////////////////////////////////////////////////
+
+void ResetStuff(void)
+{
+ ResetTextureArea(TRUE);
+ ulKeybits&=~KEY_RESETTEXSTORE;
+
+ if(ulKeybits&KEY_BLACKWHITE)
+ {
+ if(bUseFixes) {bUseFixes=FALSE;dwActFixes=0;}
+ else {bUseFixes=TRUE; dwActFixes=dwCfgFixes;}
+ SetExtGLFuncs();
+ if(iFrameLimit==2) SetAutoFrameCap();
+ ulKeybits&=~KEY_BLACKWHITE;
+ }
+
+ if(ulKeybits&KEY_RESETFILTER)
+ {
+ if(ulKeybits&KEY_STEPDOWN)
+ iFilterType--;
+ else iFilterType++;
+ if(iFilterType>6) iFilterType=0;
+ if(iFilterType<0) iFilterType=6;
+ SetExtGLFuncs();
+ ulKeybits&=~(KEY_RESETFILTER|KEY_STEPDOWN);
+ BuildDispMenu(0);
+ }
+
+ if(ulKeybits&KEY_RESETOPAQUE)
+ {
+ bOpaquePass=!bOpaquePass;
+ SetExtGLFuncs();
+ ulKeybits&=~KEY_RESETOPAQUE;
+ BuildDispMenu(0);
+ }
+
+ if(ulKeybits&KEY_RESETADVBLEND)
+ {
+ bAdvancedBlend=!bAdvancedBlend;
+ SetExtGLFuncs();
+ ulKeybits&=~KEY_RESETADVBLEND;
+ BuildDispMenu(0);
+ }
+
+ if(ulKeybits&KEY_RESETDITHER)
+ {
+ bDrawDither=!bDrawDither;
+ if(bDrawDither) glEnable(GL_DITHER);
+ else glDisable(GL_DITHER);
+ ulKeybits&=~KEY_RESETDITHER;
+ BuildDispMenu(0);
+ }
+
+ if(ulKeybits & KEY_TOGGLEFBTEXTURE)
+ {
+ if(ulKeybits&KEY_STEPDOWN)
+ iFrameTexType--;
+ else iFrameTexType++;
+ if(iFrameTexType>3) iFrameTexType=0;
+ if(iFrameTexType<0) iFrameTexType=3;
+ if(gTexFrameName!=0)
+ glDeleteTextures(1, &gTexFrameName);
+ gTexFrameName=0;
+ ulKeybits&=~(KEY_TOGGLEFBTEXTURE|KEY_STEPDOWN);
+ }
+
+ if(ulKeybits & KEY_TOGGLEFBREAD)
+ {
+ if(ulKeybits&KEY_STEPDOWN)
+ iFrameReadType--;
+ else iFrameReadType++;
+ if(iFrameReadType>4) iFrameReadType=0;
+ if(iFrameReadType<0) iFrameReadType=4;
+ if(iFrameReadType==4) bFullVRam=TRUE;
+ else bFullVRam=FALSE;
+ iRenderFVR=0;
+ ulKeybits&=~(KEY_TOGGLEFBREAD|KEY_STEPDOWN);
+ }
+}
diff --git a/win32/plugins/peopsxgl/winsrc/ssave.c b/win32/plugins/peopsxgl/winsrc/ssave.c
index 40a75956..8665a5b3 100644..100755
--- a/win32/plugins/peopsxgl/winsrc/ssave.c
+++ b/win32/plugins/peopsxgl/winsrc/ssave.c
@@ -1,65 +1,65 @@
-/***************************************************************************
- ssave.c - description
- -------------------
- begin : Sun Mar 08 2009
- copyright : (C) 1999-2009 by Pete Bernert
- web : www.pbernert.com
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. See also the license.txt file for *
- * additional informations. *
- * *
- ***************************************************************************/
-
-//*************************************************************************//
-// History of changes:
-//
-// 2009/03/08 - Pete
-// - generic cleanup for the Peops release
-//
-//*************************************************************************//
-
-#include "stdafx.h"
-
-#include "externals.h"
-
-////////////////////////////////////////////////////////////////////////
-// screensaver stuff: dynamically load kernel32.dll to avoid export dependeny
-////////////////////////////////////////////////////////////////////////
-
-#ifdef __MINGW32__
-#define EXECUTION_STATE DWORD
-#endif
-
-void EnableScreenSaver(BOOL bEnab)
-{
- HINSTANCE hKernel32 = NULL;
- EXECUTION_STATE (WINAPI *D_SetThreadExecutionState)(EXECUTION_STATE esFlags);
-
- if(bEnab)
- {
- hKernel32 = LoadLibrary("kernel32.dll");
- if(hKernel32 != NULL)
- {
- if((D_SetThreadExecutionState=(EXECUTION_STATE (WINAPI *)(EXECUTION_STATE))GetProcAddress(hKernel32,"SetThreadExecutionState"))!=NULL)
- D_SetThreadExecutionState(ES_SYSTEM_REQUIRED|ES_DISPLAY_REQUIRED);
- FreeLibrary(hKernel32);
- }
- }
- else
- {
- hKernel32 = LoadLibrary("kernel32.dll");
- if(hKernel32 != NULL)
- {
- if((D_SetThreadExecutionState=(EXECUTION_STATE (WINAPI *)(EXECUTION_STATE))GetProcAddress(hKernel32,"SetThreadExecutionState"))!=NULL)
- D_SetThreadExecutionState(ES_SYSTEM_REQUIRED|ES_DISPLAY_REQUIRED|ES_CONTINUOUS);
- FreeLibrary(hKernel32);
- }
- }
-}
-
+/***************************************************************************
+ ssave.c - description
+ -------------------
+ begin : Sun Mar 08 2009
+ copyright : (C) 1999-2009 by Pete Bernert
+ web : www.pbernert.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. See also the license.txt file for *
+ * additional informations. *
+ * *
+ ***************************************************************************/
+
+//*************************************************************************//
+// History of changes:
+//
+// 2009/03/08 - Pete
+// - generic cleanup for the Peops release
+//
+//*************************************************************************//
+
+#include "stdafx.h"
+
+#include "externals.h"
+
+////////////////////////////////////////////////////////////////////////
+// screensaver stuff: dynamically load kernel32.dll to avoid export dependeny
+////////////////////////////////////////////////////////////////////////
+
+#ifdef __MINGW32__
+#define EXECUTION_STATE DWORD
+#endif
+
+void EnableScreenSaver(BOOL bEnab)
+{
+ HINSTANCE hKernel32 = NULL;
+ EXECUTION_STATE (WINAPI *D_SetThreadExecutionState)(EXECUTION_STATE esFlags);
+
+ if(bEnab)
+ {
+ hKernel32 = LoadLibrary("kernel32.dll");
+ if(hKernel32 != NULL)
+ {
+ if((D_SetThreadExecutionState=(EXECUTION_STATE (WINAPI *)(EXECUTION_STATE))GetProcAddress(hKernel32,"SetThreadExecutionState"))!=NULL)
+ D_SetThreadExecutionState(ES_SYSTEM_REQUIRED|ES_DISPLAY_REQUIRED);
+ FreeLibrary(hKernel32);
+ }
+ }
+ else
+ {
+ hKernel32 = LoadLibrary("kernel32.dll");
+ if(hKernel32 != NULL)
+ {
+ if((D_SetThreadExecutionState=(EXECUTION_STATE (WINAPI *)(EXECUTION_STATE))GetProcAddress(hKernel32,"SetThreadExecutionState"))!=NULL)
+ D_SetThreadExecutionState(ES_SYSTEM_REQUIRED|ES_DISPLAY_REQUIRED|ES_CONTINUOUS);
+ FreeLibrary(hKernel32);
+ }
+ }
+}
+
diff --git a/win32/plugins/peopsxgl/winsrc/ssave.h b/win32/plugins/peopsxgl/winsrc/ssave.h
index 66ac0854..e498c960 100644..100755
--- a/win32/plugins/peopsxgl/winsrc/ssave.h
+++ b/win32/plugins/peopsxgl/winsrc/ssave.h
@@ -1,29 +1,29 @@
-/***************************************************************************
- ssave.h - description
- -------------------
- begin : Sun Mar 08 2009
- copyright : (C) 1999-2009 by Pete Bernert
- web : www.pbernert.com
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. See also the license.txt file for *
- * additional informations. *
- * *
- ***************************************************************************/
-
-//*************************************************************************//
-// History of changes:
-//
-// 2009/03/08 - Pete
-// - generic cleanup for the Peops release
-//
-//*************************************************************************//
-
-// prototype
-
+/***************************************************************************
+ ssave.h - description
+ -------------------
+ begin : Sun Mar 08 2009
+ copyright : (C) 1999-2009 by Pete Bernert
+ web : www.pbernert.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. See also the license.txt file for *
+ * additional informations. *
+ * *
+ ***************************************************************************/
+
+//*************************************************************************//
+// History of changes:
+//
+// 2009/03/08 - Pete
+// - generic cleanup for the Peops release
+//
+//*************************************************************************//
+
+// prototype
+
void EnableScreenSaver(BOOL bEnab); \ No newline at end of file
diff --git a/win32/plugins/peopsxgl/winsrc/winmain.c b/win32/plugins/peopsxgl/winsrc/winmain.c
index e69fe6e3..6b860505 100644..100755
--- a/win32/plugins/peopsxgl/winsrc/winmain.c
+++ b/win32/plugins/peopsxgl/winsrc/winmain.c
@@ -1,42 +1,42 @@
-/***************************************************************************
- gpuPeopsOpenGL.c - description
- -------------------
- begin : Sun Mar 08 2009
- copyright : (C) 1999-2009 by Pete Bernert
- web : www.pbernert.com
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. See also the license.txt file for *
- * additional informations. *
- * *
- ***************************************************************************/
-
-//*************************************************************************//
-// History of changes:
-//
-// 2009/03/08 - Pete
-// - generic cleanup for the Peops release
-//
-//*************************************************************************//
-
-#include "stdafx.h"
-
-///////////////////////////////////////////////////////////////////////////
-// GENERIC FUNCS //////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////
-
-HINSTANCE hInst=NULL;
-
-BOOL APIENTRY DllMain(HANDLE hModule, // DLL INIT
- DWORD dwReason,
- LPVOID lpReserved)
-{
- hInst=(HINSTANCE)hModule;
- return TRUE; // very quick :)
-}
-
+/***************************************************************************
+ gpuPeopsOpenGL.c - description
+ -------------------
+ begin : Sun Mar 08 2009
+ copyright : (C) 1999-2009 by Pete Bernert
+ web : www.pbernert.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. See also the license.txt file for *
+ * additional informations. *
+ * *
+ ***************************************************************************/
+
+//*************************************************************************//
+// History of changes:
+//
+// 2009/03/08 - Pete
+// - generic cleanup for the Peops release
+//
+//*************************************************************************//
+
+#include "stdafx.h"
+
+///////////////////////////////////////////////////////////////////////////
+// GENERIC FUNCS //////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////
+
+HINSTANCE hInst=NULL;
+
+BOOL APIENTRY DllMain(HANDLE hModule, // DLL INIT
+ DWORD dwReason,
+ LPVOID lpReserved)
+{
+ hInst=(HINSTANCE)hModule;
+ return TRUE; // very quick :)
+}
+
diff --git a/win32/resource.h b/win32/resource.h
index 36550dc3..cbf1ecb0 100644..100755
--- a/win32/resource.h
+++ b/win32/resource.h
@@ -1,356 +1,356 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by pcsxr.rc
-//
-#define IDS_TITLE 1
-#define IDC_SEARCHFOR 100
-#define IDR_MENU1 101
-#define IDI_APP_ICON 102
-#define IDD_MCDCONF 102
-#define DEBUG_DIALOG 103
-#define IDC_VALUEFROM 103
-#define ABOUT_DIALOG 104
-#define IDC_LABEL_TO 104
-#define IDD_CPUCONF 105
-#define IDC_VALUETO 105
-#define IDC_DATATYPE 106
-#define IDC_DATABASE 107
-#define IDD_NETPLAY 108
-#define IDC_LABEL_RESULTSFOUND 108
-#define IDD_CONNECT 109
-#define IDC_RESLIST 109
-#define IDD_CHEATLIST 110
-#define IDC_SEARCH 110
-#define IDC_NEWSEARCH 111
-#define IDD_CHEATSEARCH 112
-#define SPLASH_LOGO 113
-#define IDC_MODIFY 113
-#define IDD_GPREGS 114
-#define IDC_FREEZE 114
-#define IDD_CHEATEDIT 114
-#define IDD_CP0REGS 115
-#define IDC_COPY 115
-#define IDD_CHEATVALEDIT 115
-#define IDD_COP2D 116
-#define IDD_COP2C 117
-#define MAIN_LOGO 118
-#define IDD_CONFIG 120
-#define IDD_MEMVIEW 136
-#define IDC_EDIT2 1001
-#define IDC_CODE 1001
-#define IDC_VALUE 1001
-#define IDC_MCD2 1004
-#define IDC_ASMCHECK1 1005
-#define IDC_MCD1 1005
-#define IDC_MCDSEL1 1006
-#define IDC_STEP 1007
-#define IDC_MCDSEL2 1007
-#define IDC_XA 1007
-#define IDC_SIO 1008
-#define IDC_SKIP 1009
-#define IDC_MDEC 1009
-#define IDC_RESET 1010
-#define IDC_PSXAUTO 1010
-#define IDC_GO 1011
-#define IDC_PSXTYPES 1011
-#define IDC_BREAK 1012
-#define IDC_DISCPUQKEYS 1012
-#define IDC_QKEYS 1012
-#define IDC_EDIT1 1013
-#define IDC_CDDA 1013
-#define IDC_DESCR 1013
-#define IDC_ADDRESS 1013
-#define IDC_CLOSE 1014
-#define IDC_PCSXR_ABOUT_TEXT 1014
-#define IDC_PSXOUT 1014
-#define IDC_ASM_SCROLL 1015
-#define IDC_CPU 1015
-#define IDC_ASMCHECK2 1016
-#define IDC_SPUIRQ 1016
-#define IDC_ASMCHECK3 1017
-#define IDC_MDEC2 1017
-#define IDC_CDTIMING 1017
-#define IDC_SLOWBOOT 1017
-#define IDC_ASMCHECK4 1018
-#define IDC_ASMCHECK5 1019
-#define IDC_RELOAD1 1019
-#define IDC_CP07 1020
-#define IDC_ASMCHECK6 1020
-#define IDC_RELOAD2 1020
-#define IDC_ASMCHECK7 1021
-#define IDC_COPYTO2 1021
-#define IDC_ASMCHECK8 1022
-#define IDC_COPYTO1 1022
-#define IDC_RCNTFIX 1022
-#define IDC_ASMCHECK9 1023
-#define IDC_PASTE 1023
-#define IDC_CONFIGNET 1023
-#define IDC_VSYNCWA 1023
-#define IDC_ASMCHECK10 1024
-#define IDC_DELETE1 1024
-#define IDC_TESTNET 1024
-#define IDC_ASMCHECK11 1025
-#define IDC_DELETE2 1025
-#define IDC_ABOUTNET 1025
-#define IDC_ASMCHECK12 1026
-#define IDC_LISTNET 1026
-#define IDC_LIST1 1027
-#define IDC_ASMCHECK13 1027
-#define IDC_SYSCMCDS 1027
-#define IDC_ASMCHECK14 1028
-#define IDC_LIST2 1028
-#define IDC_CONNECTSTR 1028
-#define IDC_ASMCHECK15 1029
-#define IDC_PCSXR_ABOUT_AUTHORS 1029
-#define IDC_ASMCHECK16 1030
-#define IDC_PCSXR_ABOUT_GREETS 1030
-#define IDC_ASMCHECK17 1031
-#define IDC_SELPSX 1031
-#define IDC_ASMCHECK18 1032
-#define IDC_MISCOPT 1032
-#define IDC_ASMCHECK19 1033
-#define IDC_GRAPHICS 1033
-#define IDC_CP021 1034
-#define IDC_ASMCHECK20 1034
-#define IDC_FIRSTCONTROLLER 1034
-#define IDC_CP022 1035
-#define IDC_ASMCHECK21 1035
-#define IDC_SECONDCONTROLLER 1035
-#define IDC_CP023 1036
-#define IDC_ASMCHECK22 1036
-#define IDC_SOUND 1036
-#define IDC_CP024 1037
-#define IDC_ASMCHECK23 1037
-#define IDC_CDROM 1037
-#define IDC_CP025 1038
-#define IDC_ASMCHECK24 1038
-#define IDC_BIOS 1038
-#define IDC_NETPLAY 1039
-#define IDC_NETPLAYNOTE 1040
-#define IDC_FRAMEMCD1 1041
-#define IDC_FRAMEMCD2 1042
-#define IDC_CP031 1044
-#define IDC_CODELIST 1044
-#define IDC_REMOVECODE 1045
-#define IDC_EDITCODE 1046
-#define IDC_GPR0 1047
-#define IDC_TOGGLECODE 1047
-#define IDC_GPR1 1048
-#define IDC_SAVECODE 1048
-#define IDC_GPR2 1049
-#define IDC_LOADCODE 1049
-#define IDC_GPR3 1050
-#define IDC_LABEL_DESCR 1050
-#define IDC_GPR4 1051
-#define IDC_LABEL_CODE 1051
-#define IDC_GPR5 1052
-#define IDC_LISTGPU 1052
-#define IDC_LABEL_ADDRESS 1052
-#define IDC_GPR6 1053
-#define IDC_LISTSPU 1053
-#define IDC_DEBUG 1053
-#define IDC_GPR7 1054
-#define IDC_LISTCDR 1054
-#define IDC_GPR8 1055
-#define IDC_LISTBIOS 1055
-#define IDC_GPR9 1056
-#define IDC_CONFIGGPU 1056
-#define IDC_GPR10 1057
-#define IDC_TESTGPU 1057
-#define IDC_ABOUTGPU 1058
-#define IDC_CONFIGSPU 1059
-#define IDC_TESTSPU 1060
-#define IDC_ABOUTSPU 1061
-#define IDC_CONFIGCDR 1062
-#define IDC_GPR11 1063
-#define IDC_TESTCDR 1063
-#define IDC_ABOUTCDR 1064
-#define IDC_COMBODRIVE 1065
-#define IDC_LISTPAD1 1066
-#define IDC_CONFIGPAD1 1067
-#define IDC_GPR12 1068
-#define IDC_TESTPAD1 1068
-#define IDC_GPR13 1069
-#define IDC_ABOUTPAD1 1069
-#define IDC_GPR14 1070
-#define IDC_LISTPAD2 1070
-#define IDC_GPR15 1071
-#define IDC_CONFIGPAD2 1071
-#define IDC_GPR16 1072
-#define IDC_TESTPAD2 1072
-#define IDC_GPR17 1073
-#define IDC_ABOUTPAD2 1073
-#define IDC_GPR18 1074
-#define IDC_GPR19 1075
-#define IDC_GPR20 1076
-#define IDC_GPR21 1077
-#define IDC_GPR22 1078
-#define IDC_GPR23 1079
-#define IDC_GPR24 1080
-#define IDC_GPR25 1081
-#define IDC_GPR26 1082
-#define IDC_GPR27 1083
-#define IDC_GPR28 1084
-#define IDC_GPR29 1085
-#define IDC_GPR30 1086
-#define IDC_GPR31 1087
-#define IDC_GPR_PC 1089
-#define IDC_GPR_HI 1091
-#define IDC_GPR_LO 1092
-#define IDC_CP00 1093
-#define IDC_CP01 1094
-#define IDC_CP02 1095
-#define IDC_CP03 1096
-#define IDC_CP04 1097
-#define IDC_CP05 1098
-#define IDC_CP06 1099
-#define IDC_CP08 1100
-#define IDC_CP09 1101
-#define IDC_CP010 1102
-#define IDC_CP011 1103
-#define IDC_CP012 1104
-#define IDC_CP013 1105
-#define IDC_CP014 1106
-#define IDC_CP015 1107
-#define IDC_CP016 1108
-#define IDC_CP017 1109
-#define IDC_CP018 1110
-#define IDC_CP019 1111
-#define IDC_CP020 1112
-#define IDC_CP026 1113
-#define IDC_CP027 1114
-#define IDC_CP028 1115
-#define IDC_CP029 1116
-#define IDC_CP030 1117
-#define IDC_COP2D0 1118
-#define IDC_COP2D1 1119
-#define IDC_COP2D2 1120
-#define IDC_COP2D3 1121
-#define IDC_COP2D4 1122
-#define IDC_COP2D5 1123
-#define IDC_COP2D6 1124
-#define IDC_COP2D7 1125
-#define IDC_COP2D8 1126
-#define IDC_COP2D9 1127
-#define IDC_COP2D10 1128
-#define IDC_COP2D11 1129
-#define IDC_COP2D12 1130
-#define IDC_COP2D13 1131
-#define IDC_COP2D14 1132
-#define IDC_COP2D15 1133
-#define IDC_COP2D16 1134
-#define IDC_COP2D17 1135
-#define IDC_COP2D18 1136
-#define IDC_COP2D19 1137
-#define IDC_COP2D20 1138
-#define IDC_COP2D21 1139
-#define IDC_COP2D22 1140
-#define IDC_COP2D23 1141
-#define IDC_COP2D24 1142
-#define IDC_COP2D25 1143
-#define IDC_COP2D26 1144
-#define IDC_COP2D27 1145
-#define IDC_COP2D28 1146
-#define IDC_COP2D29 1147
-#define IDC_COP2D30 1148
-#define IDC_COP2D31 1149
-#define IDC_COP2C0 1152
-#define IDC_COP2C1 1153
-#define IDC_COP2C2 1154
-#define IDC_COP2C3 1155
-#define IDC_COP2C4 1156
-#define IDC_COP2C5 1157
-#define IDC_COP2C6 1158
-#define IDC_COP2C7 1159
-#define IDC_COP2C8 1160
-#define IDC_COP2C9 1161
-#define IDC_COP2C10 1162
-#define IDC_COP2C11 1163
-#define IDC_COP2C12 1164
-#define IDC_COP2C13 1165
-#define IDC_COP2C14 1166
-#define IDC_COP2C15 1167
-#define IDC_COP2C16 1168
-#define IDC_COP2C17 1169
-#define IDC_COP2C18 1170
-#define IDC_COP2C19 1171
-#define IDC_COP2C20 1172
-#define IDC_COP2C21 1173
-#define IDC_COP2C22 1174
-#define IDC_COP2C23 1175
-#define IDC_COP2C24 1176
-#define IDC_COP2C25 1177
-#define IDC_COP2C26 1178
-#define IDC_COP2C27 1179
-#define IDC_COP2C28 1180
-#define IDC_COP2C29 1181
-#define IDC_COP2C30 1182
-#define IDC_COP2C31 1183
-#define IDC_BUTTON1 1254
-#define IDC_BIOSDIR 1254
-#define IDC_FORMAT1 1254
-#define IDC_ADDCODE 1254
-#define IDC_PLUGINSDIR 1255
-#define IDC_FORMAT2 1255
-#define IDC_LABEL_DATATYPE 1260
-#define IDC_LABEL_SEARCHFOR 1261
-#define IDC_LABEL_VALUE 1262
-#define IDC_LABEL_DATABASE 1263
-#define IDC_WIDESCREEN 1264
-#define ID_FILE_EXIT 40001
-#define ID_HELP_ABOUT 40002
-#define ID_FILE_RUN_CD 40003
-#define ID_FILE_RUN_EXE 40004
-#define ID_EMULATOR_PAUSE 40005
-#define ID_EMULATOR_RESET 40006
-#define ID_FILE_RUN_ISO 40007
-#define ID_DEBUG_ENABLE_DEBUGGER 40008
-#define ID_CONFIGURATION_GRAPHICS 40009
-#define ID_CONFIGURATION_SOUND 40010
-#define ID_CONFIGURATION_CDROM 40011
-#define ID_CONFIGURATION_MEMORYCARDMANAGER 40012
-#define ID_CONFIGURATION_CPU 40013
-#define ID_EMULATOR_RUN 40014
-#define ID_DEBUGREG 40015
-#define ID_DEBUG_MESSAGES 40015
-#define ID_EMULATOR_SHUTDOWN 40015
-#define ID_FILE_RUN_NOGUI 40016
-#define ID_CONFIGURATION_CONTROLLERS 40017
-#define ID_CONFIGURATION 40018
-#define ID_FILE_RUNBIOS 40026
-#define ID_CONFIGURATION_NETPLAY 40043
-#define ID_EMULATOR_SWITCH_ISO 40044
-#define ID_CONFIGURATION_CHEATLIST 40045
-#define ID_CONFIGURATION_CHEATSEARCH 40046
-#define ID_FILE_STATES_LOAD_SLOT1 40048
-#define ID_FILE_STATES_LOAD_SLOT2 40049
-#define ID_FILE_STATES_LOAD_SLOT3 40050
-#define ID_FILE_STATES_LOAD_SLOT4 40051
-#define ID_FILE_STATES_LOAD_SLOT5 40052
-#define ID_FILE_STATES_LOAD_SLOT6 40053
-#define ID_FILE_STATES_LOAD_SLOT7 40054
-#define ID_FILE_STATES_LOAD_SLOT8 40055
-#define ID_FILE_STATES_LOAD_SLOT9 40056
-#define ID_FILE_STATES_LOAD_OTHER 40057
-#define ID_FILE_STATES_SAVE_SLOT1 40058
-#define ID_FILE_STATES_SAVE_SLOT2 40059
-#define ID_FILE_STATES_SAVE_SLOT3 40060
-#define ID_FILE_STATES_SAVE_SLOT4 40061
-#define ID_FILE_STATES_SAVE_SLOT5 40062
-#define ID_FILE_STATES_SAVE_SLOT6 40063
-#define ID_FILE_STATES_SAVE_SLOT7 40064
-#define ID_FILE_STATES_SAVE_SLOT8 40065
-#define ID_FILE_STATES_SAVE_SLOT9 40066
-#define ID_FILE_STATES_SAVE_OTHER 40067
-#define ID_LANGS 50000
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 116
-#define _APS_NEXT_COMMAND_VALUE 40047
-#define _APS_NEXT_CONTROL_VALUE 1054
-#define _APS_NEXT_SYMED_VALUE 102
-#endif
-#endif
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by pcsxr.rc
+//
+#define IDS_TITLE 1
+#define IDC_SEARCHFOR 100
+#define IDR_MENU1 101
+#define IDI_APP_ICON 102
+#define IDD_MCDCONF 102
+#define DEBUG_DIALOG 103
+#define IDC_VALUEFROM 103
+#define ABOUT_DIALOG 104
+#define IDC_LABEL_TO 104
+#define IDD_CPUCONF 105
+#define IDC_VALUETO 105
+#define IDC_DATATYPE 106
+#define IDC_DATABASE 107
+#define IDD_NETPLAY 108
+#define IDC_LABEL_RESULTSFOUND 108
+#define IDD_CONNECT 109
+#define IDC_RESLIST 109
+#define IDD_CHEATLIST 110
+#define IDC_SEARCH 110
+#define IDC_NEWSEARCH 111
+#define IDD_CHEATSEARCH 112
+#define SPLASH_LOGO 113
+#define IDC_MODIFY 113
+#define IDD_GPREGS 114
+#define IDC_FREEZE 114
+#define IDD_CHEATEDIT 114
+#define IDD_CP0REGS 115
+#define IDC_COPY 115
+#define IDD_CHEATVALEDIT 115
+#define IDD_COP2D 116
+#define IDD_COP2C 117
+#define MAIN_LOGO 118
+#define IDD_CONFIG 120
+#define IDD_MEMVIEW 136
+#define IDC_EDIT2 1001
+#define IDC_CODE 1001
+#define IDC_VALUE 1001
+#define IDC_MCD2 1004
+#define IDC_ASMCHECK1 1005
+#define IDC_MCD1 1005
+#define IDC_MCDSEL1 1006
+#define IDC_STEP 1007
+#define IDC_MCDSEL2 1007
+#define IDC_XA 1007
+#define IDC_SIO 1008
+#define IDC_SKIP 1009
+#define IDC_MDEC 1009
+#define IDC_RESET 1010
+#define IDC_PSXAUTO 1010
+#define IDC_GO 1011
+#define IDC_PSXTYPES 1011
+#define IDC_BREAK 1012
+#define IDC_DISCPUQKEYS 1012
+#define IDC_QKEYS 1012
+#define IDC_EDIT1 1013
+#define IDC_CDDA 1013
+#define IDC_DESCR 1013
+#define IDC_ADDRESS 1013
+#define IDC_CLOSE 1014
+#define IDC_PCSXR_ABOUT_TEXT 1014
+#define IDC_PSXOUT 1014
+#define IDC_ASM_SCROLL 1015
+#define IDC_CPU 1015
+#define IDC_ASMCHECK2 1016
+#define IDC_SPUIRQ 1016
+#define IDC_ASMCHECK3 1017
+#define IDC_MDEC2 1017
+#define IDC_CDTIMING 1017
+#define IDC_SLOWBOOT 1017
+#define IDC_ASMCHECK4 1018
+#define IDC_ASMCHECK5 1019
+#define IDC_RELOAD1 1019
+#define IDC_CP07 1020
+#define IDC_ASMCHECK6 1020
+#define IDC_RELOAD2 1020
+#define IDC_ASMCHECK7 1021
+#define IDC_COPYTO2 1021
+#define IDC_ASMCHECK8 1022
+#define IDC_COPYTO1 1022
+#define IDC_RCNTFIX 1022
+#define IDC_ASMCHECK9 1023
+#define IDC_PASTE 1023
+#define IDC_CONFIGNET 1023
+#define IDC_VSYNCWA 1023
+#define IDC_ASMCHECK10 1024
+#define IDC_DELETE1 1024
+#define IDC_TESTNET 1024
+#define IDC_ASMCHECK11 1025
+#define IDC_DELETE2 1025
+#define IDC_ABOUTNET 1025
+#define IDC_ASMCHECK12 1026
+#define IDC_LISTNET 1026
+#define IDC_LIST1 1027
+#define IDC_ASMCHECK13 1027
+#define IDC_SYSCMCDS 1027
+#define IDC_ASMCHECK14 1028
+#define IDC_LIST2 1028
+#define IDC_CONNECTSTR 1028
+#define IDC_ASMCHECK15 1029
+#define IDC_PCSXR_ABOUT_AUTHORS 1029
+#define IDC_ASMCHECK16 1030
+#define IDC_PCSXR_ABOUT_GREETS 1030
+#define IDC_ASMCHECK17 1031
+#define IDC_SELPSX 1031
+#define IDC_ASMCHECK18 1032
+#define IDC_MISCOPT 1032
+#define IDC_ASMCHECK19 1033
+#define IDC_GRAPHICS 1033
+#define IDC_CP021 1034
+#define IDC_ASMCHECK20 1034
+#define IDC_FIRSTCONTROLLER 1034
+#define IDC_CP022 1035
+#define IDC_ASMCHECK21 1035
+#define IDC_SECONDCONTROLLER 1035
+#define IDC_CP023 1036
+#define IDC_ASMCHECK22 1036
+#define IDC_SOUND 1036
+#define IDC_CP024 1037
+#define IDC_ASMCHECK23 1037
+#define IDC_CDROM 1037
+#define IDC_CP025 1038
+#define IDC_ASMCHECK24 1038
+#define IDC_BIOS 1038
+#define IDC_NETPLAY 1039
+#define IDC_NETPLAYNOTE 1040
+#define IDC_FRAMEMCD1 1041
+#define IDC_FRAMEMCD2 1042
+#define IDC_CP031 1044
+#define IDC_CODELIST 1044
+#define IDC_REMOVECODE 1045
+#define IDC_EDITCODE 1046
+#define IDC_GPR0 1047
+#define IDC_TOGGLECODE 1047
+#define IDC_GPR1 1048
+#define IDC_SAVECODE 1048
+#define IDC_GPR2 1049
+#define IDC_LOADCODE 1049
+#define IDC_GPR3 1050
+#define IDC_LABEL_DESCR 1050
+#define IDC_GPR4 1051
+#define IDC_LABEL_CODE 1051
+#define IDC_GPR5 1052
+#define IDC_LISTGPU 1052
+#define IDC_LABEL_ADDRESS 1052
+#define IDC_GPR6 1053
+#define IDC_LISTSPU 1053
+#define IDC_DEBUG 1053
+#define IDC_GPR7 1054
+#define IDC_LISTCDR 1054
+#define IDC_GPR8 1055
+#define IDC_LISTBIOS 1055
+#define IDC_GPR9 1056
+#define IDC_CONFIGGPU 1056
+#define IDC_GPR10 1057
+#define IDC_TESTGPU 1057
+#define IDC_ABOUTGPU 1058
+#define IDC_CONFIGSPU 1059
+#define IDC_TESTSPU 1060
+#define IDC_ABOUTSPU 1061
+#define IDC_CONFIGCDR 1062
+#define IDC_GPR11 1063
+#define IDC_TESTCDR 1063
+#define IDC_ABOUTCDR 1064
+#define IDC_COMBODRIVE 1065
+#define IDC_LISTPAD1 1066
+#define IDC_CONFIGPAD1 1067
+#define IDC_GPR12 1068
+#define IDC_TESTPAD1 1068
+#define IDC_GPR13 1069
+#define IDC_ABOUTPAD1 1069
+#define IDC_GPR14 1070
+#define IDC_LISTPAD2 1070
+#define IDC_GPR15 1071
+#define IDC_CONFIGPAD2 1071
+#define IDC_GPR16 1072
+#define IDC_TESTPAD2 1072
+#define IDC_GPR17 1073
+#define IDC_ABOUTPAD2 1073
+#define IDC_GPR18 1074
+#define IDC_GPR19 1075
+#define IDC_GPR20 1076
+#define IDC_GPR21 1077
+#define IDC_GPR22 1078
+#define IDC_GPR23 1079
+#define IDC_GPR24 1080
+#define IDC_GPR25 1081
+#define IDC_GPR26 1082
+#define IDC_GPR27 1083
+#define IDC_GPR28 1084
+#define IDC_GPR29 1085
+#define IDC_GPR30 1086
+#define IDC_GPR31 1087
+#define IDC_GPR_PC 1089
+#define IDC_GPR_HI 1091
+#define IDC_GPR_LO 1092
+#define IDC_CP00 1093
+#define IDC_CP01 1094
+#define IDC_CP02 1095
+#define IDC_CP03 1096
+#define IDC_CP04 1097
+#define IDC_CP05 1098
+#define IDC_CP06 1099
+#define IDC_CP08 1100
+#define IDC_CP09 1101
+#define IDC_CP010 1102
+#define IDC_CP011 1103
+#define IDC_CP012 1104
+#define IDC_CP013 1105
+#define IDC_CP014 1106
+#define IDC_CP015 1107
+#define IDC_CP016 1108
+#define IDC_CP017 1109
+#define IDC_CP018 1110
+#define IDC_CP019 1111
+#define IDC_CP020 1112
+#define IDC_CP026 1113
+#define IDC_CP027 1114
+#define IDC_CP028 1115
+#define IDC_CP029 1116
+#define IDC_CP030 1117
+#define IDC_COP2D0 1118
+#define IDC_COP2D1 1119
+#define IDC_COP2D2 1120
+#define IDC_COP2D3 1121
+#define IDC_COP2D4 1122
+#define IDC_COP2D5 1123
+#define IDC_COP2D6 1124
+#define IDC_COP2D7 1125
+#define IDC_COP2D8 1126
+#define IDC_COP2D9 1127
+#define IDC_COP2D10 1128
+#define IDC_COP2D11 1129
+#define IDC_COP2D12 1130
+#define IDC_COP2D13 1131
+#define IDC_COP2D14 1132
+#define IDC_COP2D15 1133
+#define IDC_COP2D16 1134
+#define IDC_COP2D17 1135
+#define IDC_COP2D18 1136
+#define IDC_COP2D19 1137
+#define IDC_COP2D20 1138
+#define IDC_COP2D21 1139
+#define IDC_COP2D22 1140
+#define IDC_COP2D23 1141
+#define IDC_COP2D24 1142
+#define IDC_COP2D25 1143
+#define IDC_COP2D26 1144
+#define IDC_COP2D27 1145
+#define IDC_COP2D28 1146
+#define IDC_COP2D29 1147
+#define IDC_COP2D30 1148
+#define IDC_COP2D31 1149
+#define IDC_COP2C0 1152
+#define IDC_COP2C1 1153
+#define IDC_COP2C2 1154
+#define IDC_COP2C3 1155
+#define IDC_COP2C4 1156
+#define IDC_COP2C5 1157
+#define IDC_COP2C6 1158
+#define IDC_COP2C7 1159
+#define IDC_COP2C8 1160
+#define IDC_COP2C9 1161
+#define IDC_COP2C10 1162
+#define IDC_COP2C11 1163
+#define IDC_COP2C12 1164
+#define IDC_COP2C13 1165
+#define IDC_COP2C14 1166
+#define IDC_COP2C15 1167
+#define IDC_COP2C16 1168
+#define IDC_COP2C17 1169
+#define IDC_COP2C18 1170
+#define IDC_COP2C19 1171
+#define IDC_COP2C20 1172
+#define IDC_COP2C21 1173
+#define IDC_COP2C22 1174
+#define IDC_COP2C23 1175
+#define IDC_COP2C24 1176
+#define IDC_COP2C25 1177
+#define IDC_COP2C26 1178
+#define IDC_COP2C27 1179
+#define IDC_COP2C28 1180
+#define IDC_COP2C29 1181
+#define IDC_COP2C30 1182
+#define IDC_COP2C31 1183
+#define IDC_BUTTON1 1254
+#define IDC_BIOSDIR 1254
+#define IDC_FORMAT1 1254
+#define IDC_ADDCODE 1254
+#define IDC_PLUGINSDIR 1255
+#define IDC_FORMAT2 1255
+#define IDC_LABEL_DATATYPE 1260
+#define IDC_LABEL_SEARCHFOR 1261
+#define IDC_LABEL_VALUE 1262
+#define IDC_LABEL_DATABASE 1263
+#define IDC_WIDESCREEN 1264
+#define ID_FILE_EXIT 40001
+#define ID_HELP_ABOUT 40002
+#define ID_FILE_RUN_CD 40003
+#define ID_FILE_RUN_EXE 40004
+#define ID_EMULATOR_PAUSE 40005
+#define ID_EMULATOR_RESET 40006
+#define ID_FILE_RUN_ISO 40007
+#define ID_DEBUG_ENABLE_DEBUGGER 40008
+#define ID_CONFIGURATION_GRAPHICS 40009
+#define ID_CONFIGURATION_SOUND 40010
+#define ID_CONFIGURATION_CDROM 40011
+#define ID_CONFIGURATION_MEMORYCARDMANAGER 40012
+#define ID_CONFIGURATION_CPU 40013
+#define ID_EMULATOR_RUN 40014
+#define ID_DEBUGREG 40015
+#define ID_DEBUG_MESSAGES 40015
+#define ID_EMULATOR_SHUTDOWN 40015
+#define ID_FILE_RUN_NOGUI 40016
+#define ID_CONFIGURATION_CONTROLLERS 40017
+#define ID_CONFIGURATION 40018
+#define ID_FILE_RUNBIOS 40026
+#define ID_CONFIGURATION_NETPLAY 40043
+#define ID_EMULATOR_SWITCH_ISO 40044
+#define ID_CONFIGURATION_CHEATLIST 40045
+#define ID_CONFIGURATION_CHEATSEARCH 40046
+#define ID_FILE_STATES_LOAD_SLOT1 40048
+#define ID_FILE_STATES_LOAD_SLOT2 40049
+#define ID_FILE_STATES_LOAD_SLOT3 40050
+#define ID_FILE_STATES_LOAD_SLOT4 40051
+#define ID_FILE_STATES_LOAD_SLOT5 40052
+#define ID_FILE_STATES_LOAD_SLOT6 40053
+#define ID_FILE_STATES_LOAD_SLOT7 40054
+#define ID_FILE_STATES_LOAD_SLOT8 40055
+#define ID_FILE_STATES_LOAD_SLOT9 40056
+#define ID_FILE_STATES_LOAD_OTHER 40057
+#define ID_FILE_STATES_SAVE_SLOT1 40058
+#define ID_FILE_STATES_SAVE_SLOT2 40059
+#define ID_FILE_STATES_SAVE_SLOT3 40060
+#define ID_FILE_STATES_SAVE_SLOT4 40061
+#define ID_FILE_STATES_SAVE_SLOT5 40062
+#define ID_FILE_STATES_SAVE_SLOT6 40063
+#define ID_FILE_STATES_SAVE_SLOT7 40064
+#define ID_FILE_STATES_SAVE_SLOT8 40065
+#define ID_FILE_STATES_SAVE_SLOT9 40066
+#define ID_FILE_STATES_SAVE_OTHER 40067
+#define ID_LANGS 50000
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 116
+#define _APS_NEXT_COMMAND_VALUE 40047
+#define _APS_NEXT_CONTROL_VALUE 1054
+#define _APS_NEXT_SYMED_VALUE 102
+#endif
+#endif
diff --git a/win32/zlib/adler32.c b/win32/zlib/adler32.c
index fae88b65..fae88b65 100644..100755
--- a/win32/zlib/adler32.c
+++ b/win32/zlib/adler32.c
diff --git a/win32/zlib/compress.c b/win32/zlib/compress.c
index 814bd9d6..814bd9d6 100644..100755
--- a/win32/zlib/compress.c
+++ b/win32/zlib/compress.c
diff --git a/win32/zlib/crc32.c b/win32/zlib/crc32.c
index 60deca2d..60deca2d 100644..100755
--- a/win32/zlib/crc32.c
+++ b/win32/zlib/crc32.c
diff --git a/win32/zlib/deflate.c b/win32/zlib/deflate.c
index 16ebdade..16ebdade 100644..100755
--- a/win32/zlib/deflate.c
+++ b/win32/zlib/deflate.c
diff --git a/win32/zlib/deflate.h b/win32/zlib/deflate.h
index b99a48a5..b99a48a5 100644..100755
--- a/win32/zlib/deflate.h
+++ b/win32/zlib/deflate.h
diff --git a/win32/zlib/gzio.c b/win32/zlib/gzio.c
index 7909f659..7909f659 100644..100755
--- a/win32/zlib/gzio.c
+++ b/win32/zlib/gzio.c
diff --git a/win32/zlib/infblock.c b/win32/zlib/infblock.c
index dd7a6d40..dd7a6d40 100644..100755
--- a/win32/zlib/infblock.c
+++ b/win32/zlib/infblock.c
diff --git a/win32/zlib/infblock.h b/win32/zlib/infblock.h
index 173b2267..173b2267 100644..100755
--- a/win32/zlib/infblock.h
+++ b/win32/zlib/infblock.h
diff --git a/win32/zlib/infcodes.c b/win32/zlib/infcodes.c
index 9abe5412..9abe5412 100644..100755
--- a/win32/zlib/infcodes.c
+++ b/win32/zlib/infcodes.c
diff --git a/win32/zlib/infcodes.h b/win32/zlib/infcodes.h
index 46821a02..46821a02 100644..100755
--- a/win32/zlib/infcodes.h
+++ b/win32/zlib/infcodes.h
diff --git a/win32/zlib/inffast.c b/win32/zlib/inffast.c
index aa7f1d4d..aa7f1d4d 100644..100755
--- a/win32/zlib/inffast.c
+++ b/win32/zlib/inffast.c
diff --git a/win32/zlib/inffast.h b/win32/zlib/inffast.h
index a31a4bbb..a31a4bbb 100644..100755
--- a/win32/zlib/inffast.h
+++ b/win32/zlib/inffast.h
diff --git a/win32/zlib/inffixed.h b/win32/zlib/inffixed.h
index 77f7e763..77f7e763 100644..100755
--- a/win32/zlib/inffixed.h
+++ b/win32/zlib/inffixed.h
diff --git a/win32/zlib/inflate.c b/win32/zlib/inflate.c
index dfb2e867..dfb2e867 100644..100755
--- a/win32/zlib/inflate.c
+++ b/win32/zlib/inflate.c
diff --git a/win32/zlib/inftrees.c b/win32/zlib/inftrees.c
index 4c32ca30..4c32ca30 100644..100755
--- a/win32/zlib/inftrees.c
+++ b/win32/zlib/inftrees.c
diff --git a/win32/zlib/inftrees.h b/win32/zlib/inftrees.h
index 04b73b72..04b73b72 100644..100755
--- a/win32/zlib/inftrees.h
+++ b/win32/zlib/inftrees.h
diff --git a/win32/zlib/infutil.c b/win32/zlib/infutil.c
index 9a076221..9a076221 100644..100755
--- a/win32/zlib/infutil.c
+++ b/win32/zlib/infutil.c
diff --git a/win32/zlib/infutil.h b/win32/zlib/infutil.h
index 4401df82..4401df82 100644..100755
--- a/win32/zlib/infutil.h
+++ b/win32/zlib/infutil.h
diff --git a/win32/zlib/trees.c b/win32/zlib/trees.c
index 0a984056..0a984056 100644..100755
--- a/win32/zlib/trees.c
+++ b/win32/zlib/trees.c
diff --git a/win32/zlib/trees.h b/win32/zlib/trees.h
index 72facf90..72facf90 100644..100755
--- a/win32/zlib/trees.h
+++ b/win32/zlib/trees.h
diff --git a/win32/zlib/uncompr.c b/win32/zlib/uncompr.c
index a287714f..a287714f 100644..100755
--- a/win32/zlib/uncompr.c
+++ b/win32/zlib/uncompr.c
diff --git a/win32/zlib/zconf.h b/win32/zlib/zconf.h
index eb0ae2e1..eb0ae2e1 100644..100755
--- a/win32/zlib/zconf.h
+++ b/win32/zlib/zconf.h
diff --git a/win32/zlib/zlib.h b/win32/zlib/zlib.h
index 52cb529f..52cb529f 100644..100755
--- a/win32/zlib/zlib.h
+++ b/win32/zlib/zlib.h
diff --git a/win32/zlib/zutil.c b/win32/zlib/zutil.c
index dfc38ec1..dfc38ec1 100644..100755
--- a/win32/zlib/zutil.c
+++ b/win32/zlib/zutil.c
diff --git a/win32/zlib/zutil.h b/win32/zlib/zutil.h
index 718ebc15..718ebc15 100644..100755
--- a/win32/zlib/zutil.h
+++ b/win32/zlib/zutil.h