VC6 buildfixes, add Makefile.griffin target for it

This commit is contained in:
Brad Parker 2017-09-07 11:50:10 -04:00
parent 8f1523f659
commit 07566c51a1
4 changed files with 91 additions and 36 deletions

View File

@ -294,6 +294,50 @@ else ifeq ($(platform), vita)
HAVE_THREADS := 1 HAVE_THREADS := 1
HAVE_LIBRETRODB := 1 HAVE_LIBRETRODB := 1
RARCH_CONSOLE = 1 RARCH_CONSOLE = 1
else ifeq ($(platform), windows_msvc6_x86)
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
HAVE_RTGA := 1
HAVE_ZLIB := 1
WANT_ZLIB := 1
HAVE_7ZIP := 1
HAVE_NETWORKING := 0
HAVE_NETWORK_CMD := 1
HAVE_OVERLAY := 1
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_STB_FONT := 1
HAVE_THREADS := 1
HAVE_LIBRETRODB := 1
HAVE_FBO := 1
HAVE_COMMAND := 1
HAVE_STDIN_CMD := 1
HAVE_CMD := 1
HAVE_DYLIB := 1
HAVE_DYNAMIC := 1
HAVE_GRIFFIN_CPP := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
CC = cl.exe
CXX = cl.exe
LD = link.exe
PLATCFLAGS += -D_WIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -D__STDC_CONSTANT_MACROS -D_MBCS
LDFLAGS += shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib
VCDIR := $(shell reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\DevStudio\6.0\Products\Microsoft Visual C++" -v "ProductDir" | grep -o '[A-Z]:\\.*')
PATH := $(shell IFS=$$'\n'; cygpath "$(VCDIR)/bin"):$(PATH)
PATH := $(PATH):$(shell IFS=$$'\n'; cygpath "$(VCDIR)/../Common/MSDev98/Bin")
INCLUDE := $(shell IFS=$$'\n'; cygpath "$(VCDIR)/Include")
LIB := $(shell IFS=$$'\n'; cygpath -w "$(VCDIR)/Lib")
WindowsSdkDir := $(INETSDK)
export INCLUDE := $(INCLUDE);$(INETSDK)/Include;libretro-common/include;libretro-common/include/compat/msvc
export LIB := $(LIB);$(WindowsSdkDir);$(INETSDK)/Lib
else ifeq ($(platform), windows_msvc2003_x86) else ifeq ($(platform), windows_msvc2003_x86)
HAVE_RPNG := 1 HAVE_RPNG := 1
HAVE_RJPEG := 1 HAVE_RJPEG := 1
@ -513,7 +557,11 @@ endif
ifeq ($(DEBUG), 1) ifeq ($(DEBUG), 1)
ifneq (,$(findstring msvc,$(platform))) ifneq (,$(findstring msvc,$(platform)))
CFLAGS += -Od -Zi -D_DEBUG -MTd -Wp64 -TP ifeq ($(platform), windows_msvc2003_x86)
CFLAGS += -Wp64
endif
CFLAGS += -Od -Zi -D_DEBUG -MTd -TP
else else
CFLAGS += -O0 -g -DDEBUG CFLAGS += -O0 -g -DDEBUG
endif endif
@ -522,7 +570,11 @@ else ifeq ($(platform), psp1)
else ifeq ($(platform), vita) else ifeq ($(platform), vita)
CFLAGS += -O3 CFLAGS += -O3
else ifneq (,$(findstring msvc,$(platform))) else ifneq (,$(findstring msvc,$(platform)))
CFLAGS += -O2 -DNDEBUG -MT -Wp64 -TP ifeq ($(platform), windows_msvc2003_x86)
CFLAGS += -Wp64
endif
CFLAGS += -O2 -DNDEBUG -MT -TP
else else
CFLAGS += -O3 CFLAGS += -O3
endif endif

View File

@ -79,7 +79,7 @@ ui_window_win32_t main_window;
/* Power Request APIs */ /* Power Request APIs */
#if !defined(_XBOX) && (_MSC_VER == 1310) #if !defined(_XBOX) && (_MSC_VER == 1310)
typedef struct _REASON_CONTEXT typedef struct _REASON_CONTEXT
{ {
ULONG Version; ULONG Version;
DWORD Flags; DWORD Flags;
@ -131,7 +131,7 @@ void unset_doubleclick_on_titlebar(void)
doubleclick_on_titlebar = false; doubleclick_on_titlebar = false;
} }
INT_PTR CALLBACK PickCoreProc(HWND hDlg, UINT message, BOOL CALLBACK PickCoreProc(HWND hDlg, UINT message,
WPARAM wParam, LPARAM lParam) WPARAM wParam, LPARAM lParam)
{ {
size_t list_size; size_t list_size;
@ -150,16 +150,16 @@ INT_PTR CALLBACK PickCoreProc(HWND hDlg, UINT message,
core_info_list_get_supported_cores(core_info_list, core_info_list_get_supported_cores(core_info_list,
path_get(RARCH_PATH_CONTENT), &core_info, &list_size); path_get(RARCH_PATH_CONTENT), &core_info, &list_size);
hwndList = GetDlgItem(hDlg, ID_CORELISTBOX); hwndList = GetDlgItem(hDlg, ID_CORELISTBOX);
for (i = 0; i < list_size; i++) for (i = 0; i < list_size; i++)
{ {
const core_info_t *info = (const core_info_t*)&core_info[i]; const core_info_t *info = (const core_info_t*)&core_info[i];
SendMessage(hwndList, LB_ADDSTRING, 0, SendMessage(hwndList, LB_ADDSTRING, 0,
(LPARAM)info->display_name); (LPARAM)info->display_name);
} }
SetFocus(hwndList); SetFocus(hwndList);
return TRUE; return TRUE;
} }
case WM_COMMAND: case WM_COMMAND:
@ -170,22 +170,22 @@ INT_PTR CALLBACK PickCoreProc(HWND hDlg, UINT message,
EndDialog(hDlg, LOWORD(wParam)); EndDialog(hDlg, LOWORD(wParam));
break; break;
case ID_CORELISTBOX: case ID_CORELISTBOX:
switch (HIWORD(wParam)) switch (HIWORD(wParam))
{ {
case LBN_SELCHANGE: case LBN_SELCHANGE:
{ {
const core_info_t *info = NULL; const core_info_t *info = NULL;
HWND hwndList = GetDlgItem( HWND hwndList = GetDlgItem(
hDlg, ID_CORELISTBOX); hDlg, ID_CORELISTBOX);
int lbItem = (int) int lbItem = (int)
SendMessage(hwndList, LB_GETCURSEL, 0, 0); SendMessage(hwndList, LB_GETCURSEL, 0, 0);
core_info_get_list(&core_info_list); core_info_get_list(&core_info_list);
core_info_list_get_supported_cores(core_info_list, core_info_list_get_supported_cores(core_info_list,
path_get(RARCH_PATH_CONTENT), &core_info, &list_size); path_get(RARCH_PATH_CONTENT), &core_info, &list_size);
info = (const core_info_t*)&core_info[lbItem]; info = (const core_info_t*)&core_info[lbItem];
rarch_ctl(RARCH_CTL_SET_LIBRETRO_PATH,info->path); rarch_ctl(RARCH_CTL_SET_LIBRETRO_PATH,info->path);
} }
break; break;
} }
return TRUE; return TRUE;
@ -208,7 +208,7 @@ void win32_monitor_from_window(void)
#ifndef _XBOX #ifndef _XBOX
ui_window_t *window = NULL; ui_window_t *window = NULL;
win32_monitor_last = win32_monitor_last =
MonitorFromWindow(main_window.hwnd, MONITOR_DEFAULTTONEAREST); MonitorFromWindow(main_window.hwnd, MONITOR_DEFAULTTONEAREST);
window = (ui_window_t*)ui_companion_driver_get_window_ptr(); window = (ui_window_t*)ui_companion_driver_get_window_ptr();
@ -347,7 +347,7 @@ static int win32_drag_query_file(HWND hwnd, WPARAM wparam)
{ {
/* Pick one core that could be compatible, ew */ /* Pick one core that could be compatible, ew */
if(DialogBoxParam(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_PICKCORE), if(DialogBoxParam(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_PICKCORE),
hwnd,PickCoreProc,(LPARAM)NULL)==IDOK) hwnd,PickCoreProc,(LPARAM)NULL)==IDOK)
{ {
task_push_load_content_with_current_core_from_companion_ui( task_push_load_content_with_current_core_from_companion_ui(
NULL, NULL,
@ -384,7 +384,7 @@ static LRESULT win32_handle_keyboard_event(HWND hwnd, UINT message,
switch (message) switch (message)
{ {
/* Seems to be hard to synchronize /* Seems to be hard to synchronize
* WM_CHAR and WM_KEYDOWN properly. * WM_CHAR and WM_KEYDOWN properly.
*/ */
case WM_CHAR: case WM_CHAR:
@ -539,7 +539,7 @@ LRESULT CALLBACK WndProcD3D(HWND hwnd, UINT message,
LPCREATESTRUCT p_cs = (LPCREATESTRUCT)lparam; LPCREATESTRUCT p_cs = (LPCREATESTRUCT)lparam;
curD3D = p_cs->lpCreateParams; curD3D = p_cs->lpCreateParams;
g_inited = true; g_inited = true;
win32_window.hwnd = hwnd; win32_window.hwnd = hwnd;
win32_set_droppable(&win32_window, true); win32_set_droppable(&win32_window, true);
@ -778,7 +778,7 @@ static bool win32_monitor_set_fullscreen(
devmode.dmPelsWidth = width; devmode.dmPelsWidth = width;
devmode.dmPelsHeight = height; devmode.dmPelsHeight = height;
devmode.dmDisplayFrequency = refresh; devmode.dmDisplayFrequency = refresh;
devmode.dmFields = DM_PELSWIDTH devmode.dmFields = DM_PELSWIDTH
| DM_PELSHEIGHT | DM_DISPLAYFREQUENCY; | DM_PELSHEIGHT | DM_DISPLAYFREQUENCY;
RARCH_LOG("Setting fullscreen to %ux%u @ %uHz on device %s.\n", RARCH_LOG("Setting fullscreen to %ux%u @ %uHz on device %s.\n",
@ -809,7 +809,7 @@ void win32_check_window(bool *quit, bool *resize,
unsigned *width, unsigned *height) unsigned *width, unsigned *height)
{ {
#ifndef _XBOX #ifndef _XBOX
const ui_application_t *application = const ui_application_t *application =
ui_companion_driver_get_application_ptr(); ui_companion_driver_get_application_ptr();
if (application) if (application)
application->process_events(); application->process_events();
@ -896,12 +896,12 @@ void win32_set_style(MONITORINFOEX *current_mon, HMONITOR *hm_to_use,
#ifndef _XBOX #ifndef _XBOX
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
/* Windows only reports the refresh rates for modelines as /* Windows only reports the refresh rates for modelines as
* an integer, so video_refresh_rate needs to be rounded. Also, account * an integer, so video_refresh_rate needs to be rounded. Also, account
* for black frame insertion using video_refresh_rate set to half * for black frame insertion using video_refresh_rate set to half
* of the display refresh rate, as well as higher vsync swap intervals. */ * of the display refresh rate, as well as higher vsync swap intervals. */
float refresh_mod = settings->bools.video_black_frame_insertion ? 2.0f : 1.0f; float refresh_mod = settings->bools.video_black_frame_insertion ? 2.0f : 1.0f;
unsigned refresh = roundf(settings->floats.video_refresh_rate unsigned refresh = roundf(settings->floats.video_refresh_rate
* refresh_mod * settings->uints.video_swap_interval); * refresh_mod * settings->uints.video_swap_interval);
if (fullscreen) if (fullscreen)
@ -1010,13 +1010,13 @@ bool win32_set_video_mode(void *data,
if (!win32_window_create(data, style, if (!win32_window_create(data, style,
&mon_rect, width, height, fullscreen)) &mon_rect, width, height, fullscreen))
return false; return false;
win32_set_window(&width, &height, win32_set_window(&width, &height,
fullscreen, windowed_full, &rect); fullscreen, windowed_full, &rect);
/* Wait until context is created (or failed to do so ...). /* Wait until context is created (or failed to do so ...).
* Please don't remove the (res = ) as GetMessage can return -1. */ * Please don't remove the (res = ) as GetMessage can return -1. */
while (!g_inited && !g_quit while (!g_inited && !g_quit
&& (res = GetMessage(&msg, main_window.hwnd, 0, 0)) != 0) && (res = GetMessage(&msg, main_window.hwnd, 0, 0)) != 0)
{ {
if (res == -1) if (res == -1)
@ -1063,7 +1063,7 @@ bool win32_has_focus(void)
if (GetForegroundWindow() == main_window.hwnd) if (GetForegroundWindow() == main_window.hwnd)
return true; return true;
#else #else
const ui_window_t *window = const ui_window_t *window =
ui_companion_driver_get_window_ptr(); ui_companion_driver_get_window_ptr();
if (window) if (window)
return window->focused(&main_window); return window->focused(&main_window);
@ -1109,14 +1109,14 @@ void win32_get_video_output_prev(
win32_get_video_output_size(&curr_width, &curr_height); win32_get_video_output_size(&curr_width, &curr_height);
for (iModeNum = 0; for (iModeNum = 0;
EnumDisplaySettings(NULL, iModeNum, &dm) != 0; EnumDisplaySettings(NULL, iModeNum, &dm) != 0;
iModeNum++) iModeNum++)
{ {
if ( dm.dmPelsWidth == curr_width if ( dm.dmPelsWidth == curr_width
&& dm.dmPelsHeight == curr_height) && dm.dmPelsHeight == curr_height)
{ {
if ( prev_width != curr_width if ( prev_width != curr_width
&& prev_height != curr_height) && prev_height != curr_height)
{ {
found = true; found = true;
@ -1130,8 +1130,8 @@ void win32_get_video_output_prev(
if (found) if (found)
{ {
*width = prev_width; *width = prev_width;
*height = prev_height; *height = prev_height;
} }
} }
@ -1149,8 +1149,8 @@ void win32_get_video_output_next(
win32_get_video_output_size(&curr_width, &curr_height); win32_get_video_output_size(&curr_width, &curr_height);
for (iModeNum = 0; for (iModeNum = 0;
EnumDisplaySettings(NULL, iModeNum, &dm) != 0; EnumDisplaySettings(NULL, iModeNum, &dm) != 0;
iModeNum++) iModeNum++)
{ {
if (found) if (found)
@ -1160,7 +1160,7 @@ void win32_get_video_output_next(
break; break;
} }
if ( dm.dmPelsWidth == curr_width if ( dm.dmPelsWidth == curr_width
&& dm.dmPelsHeight == curr_height) && dm.dmPelsHeight == curr_height)
found = true; found = true;
} }

View File

@ -51,6 +51,9 @@
#include <fcntl.h> #include <fcntl.h>
#include <direct.h> #include <direct.h>
#include <windows.h> #include <windows.h>
#if defined(_MSC_VER) && _MSC_VER <= 1200
#define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
#endif
#endif #endif
#elif defined(VITA) #elif defined(VITA)
#define SCE_ERROR_ERRNO_EEXIST 0x80010011 #define SCE_ERROR_ERRNO_EEXIST 0x80010011

View File

@ -933,7 +933,7 @@ static bool command_event_cmd_exec(const char *data,
content_info.environ_get = menu_content_environment_get; content_info.environ_get = menu_content_environment_get;
#endif #endif
if (path_get(RARCH_PATH_CONTENT) != (void*)data) if (path_get(RARCH_PATH_CONTENT) != data)
{ {
path_clear(RARCH_PATH_CONTENT); path_clear(RARCH_PATH_CONTENT);
if (!string_is_empty(data)) if (!string_is_empty(data))