Browse Source

Move most platform-specific code into separate files.

LouYihua 7 years ago
parent
commit
a9871d8d68

+ 1 - 1
3ds/Makefile

@@ -48,7 +48,7 @@ CFLAGS	:=	-g -Wall -O2 -mword-relocations \
 			-fomit-frame-pointer -ffunction-sections \
 			$(ARCH)
 
-CFLAGS	+=	$(INCLUDE) -DARM11 -D_3DS -D__3DS__ -D__N3DS__
+CFLAGS	+=	$(INCLUDE) -DARM11 -D_3DS -D__3DS__ -D__N3DS__ -I.
 
 CXXFLAGS	:= $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++14
 

+ 35 - 0
3ds/pal_config.h

@@ -0,0 +1,35 @@
+#ifndef PAL_CONFIG_H
+# define PAL_CONFIG_H
+
+# define PAL_PREFIX            "sdmc:/3ds/sdlpal/"
+# define PAL_SAVE_PREFIX       "sdmc:/3ds/sdlpal/"
+# define PAL_CONFIG_PREFIX     "sdmc:/3ds/sdlpal/"
+# define PAL_SCREENSHOT_PREFIX "sdmc:/3ds/sdlpal/"
+
+# define PAL_AUDIO_DEFAULT_BUFFER_SIZE   2048
+
+# define PAL_HAS_JOYSTICKS     0
+# define PAL_HAS_MP3           0
+# define PAL_HAS_OGG           0
+# define PAL_HAS_TOUCH         0
+
+# define PAL_DEFAULT_WINDOW_WIDTH   320
+# define PAL_DEFAULT_WINDOW_HEIGHT  240
+
+# define PAL_VIDEO_INIT_FLAGS  (SDL_SWSURFACE | SDL_TOPSCR | SDL_CONSOLEBOTTOM | SDL_FULLSCREEN)
+
+# define PAL_SDL_INIT_FLAGS	   (SDL_INIT_VIDEO | SDL_INIT_AUDIO)
+
+# define PAL_PLATFORM         "Nintendo 3DS"
+# define PAL_CREDIT           "ZephRay"
+# define PAL_PORTYEAR         "2017"
+
+# define PAL_LARGE           static
+
+# define PAL_FILESYSTEM_IGNORE_CASE 1
+
+# define PAL_SCALE_SCREEN   FALSE
+
+# include <3ds.h>
+
+#endif

+ 1 - 1
android/jni/src/Android.mk

@@ -9,7 +9,7 @@ LOCAL_MODULE := main
 
 OGG_PATH := ../../../liboggvorbis
 
-LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include $(LOCAL_PATH)/$(OGG_PATH)/include $(LOCAL_PATH)/$(OGG_PATH)/src
+LOCAL_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/$(SDL_PATH)/include $(LOCAL_PATH)/$(OGG_PATH)/include $(LOCAL_PATH)/$(OGG_PATH)/src
 
 LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.c \
     $(wildcard $(LOCAL_PATH)/../../../*.cpp) $(wildcard $(LOCAL_PATH)/../../../*.c) \

+ 22 - 0
android/jni/src/pal_config.h

@@ -0,0 +1,22 @@
+#ifndef PAL_CONFIG_H
+# define PAL_CONFIG_H
+
+# define PAL_PREFIX            "/mnt/sdcard/sdlpal/"
+# define PAL_SAVE_PREFIX       "/mnt/sdcard/sdlpal/"
+# define PAL_HAS_TOUCH         1
+# define PAL_DEFAULT_WINDOW_WIDTH   320
+# define PAL_DEFAULT_WINDOW_HEIGHT  200
+
+# if SDL_VERSION_ATLEAST(2,0,0)
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
+# else
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_HWSURFACE | SDL_FULLSCREEN)
+# endif
+
+#define PAL_SDL_INIT_FLAGS	(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_CDROM | SDL_INIT_NOPARACHUTE | SDL_INIT_JOYSTICK)
+
+# define PAL_PLATFORM         "Android"
+# define PAL_CREDIT           "Rikku2000"
+# define PAL_PORTYEAR         "2013"
+
+#endif

+ 0 - 7
audio.h

@@ -91,13 +91,6 @@ AUDIO_SoundEnabled(
    VOID
 );
 
-#ifdef PSP
-VOID
-SOUND_Reload(
-	VOID
-);
-#endif
-
 #define AUDIO_IsIntegerConversion(a) (((a) % gConfig.iSampleRate) == 0 || (gConfig.iSampleRate % (a)) == 0)
 
 #ifdef __cplusplus

+ 12 - 239
common.h

@@ -89,240 +89,11 @@ extern "C"
 #define PAL_FORCE_INLINE SDL_FORCE_INLINE
 #endif
 
-#if defined (__SYMBIAN32__)
-
-#undef  _WIN32
-#undef  SDL_INIT_JOYSTICK
-#define SDL_INIT_JOYSTICK     0
-#define PAL_HAS_MOUSE         1
-#define PAL_PREFIX            "e:/data/pal/"
-#define PAL_SAVE_PREFIX       "e:/data/pal/"
-# ifdef __S60_5X__
-#  define PAL_DEFAULT_WINDOW_WIDTH   640
-#  define PAL_DEFAULT_WINDOW_HEIGHT  360
-# else
-#  define PAL_DEFAULT_WINDOW_WIDTH   320
-#  define PAL_DEFAULT_WINDOW_HEIGHT  240
-# endif
-# if SDL_VERSION_ATLEAST(2,0,0)
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE)
-# else
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_SWSURFACE | (gConfig.fFullScreen ? SDL_FULLSCREEN : 0))
-# endif
-
-# define PAL_PLATFORM         "  Symbian S60 \x79FB\x690D (c) 2009, netwan."
-# define PAL_CREDIT           "netwan"
-# define PAL_PORTYEAR         "2009"
-
-#elif defined (GEKKO)
-
-#define PAL_HAS_JOYSTICKS     1
-#define PAL_HAS_MOUSE         0
-#define PAL_PREFIX            "SD:/apps/sdlpal/"
-#define PAL_SAVE_PREFIX       "SD:/apps/sdlpal/"
-
-#define PAL_DEFAULT_WINDOW_WIDTH   640
-#define PAL_DEFAULT_WINDOW_HEIGHT  480
-
-# if SDL_VERSION_ATLEAST(2,0,0)
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE)
-# else
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_SWSURFACE | (gConfig.fFullScreen ? SDL_FULLSCREEN : 0))
-# endif
-
-# define PAL_PLATFORM         "Nintendo WII"
-# define PAL_CREDIT           "Rikku2000"
-# define PAL_PORTYEAR         "2012"
-
-#elif defined (PSP)
-
-#define PAL_HAS_JOYSTICKS     0
-#define PAL_PREFIX            "ms0:/"
-#define PAL_SAVE_PREFIX       "ms0:/PSP/SAVEDATA/SDLPAL/"
-
-#define PAL_DEFAULT_WINDOW_WIDTH   320
-#define PAL_DEFAULT_WINDOW_HEIGHT  240
-
-# if SDL_VERSION_ATLEAST(2,0,0)
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
-# else
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_SWSURFACE | SDL_FULLSCREEN)
-# endif
-
-# define PAL_PLATFORM         "Sony PSP"
-# define PAL_CREDIT           "(Unknown)"
-# define PAL_PORTYEAR         "2011"
-
-#elif defined(GPH) || defined(DINGOO)
-
-#define PAL_PREFIX            "./"
-#define PAL_SAVE_PREFIX       "./"
-
-#  define PAL_DEFAULT_WINDOW_WIDTH   320
-#  define PAL_DEFAULT_WINDOW_HEIGHT  240
-
-# if SDL_VERSION_ATLEAST(2,0,0)
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
-# else
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_SWSURFACE | SDL_FULLSCREEN)
-# endif
-
-# if defined(GPH)
-#  define PAL_PLATFORM         "GPH Caanoo & Wiz"
-# else
-#  define PAL_PLATFORM         "DINGOO & Dingux"
-# endif
-# define PAL_CREDIT           "Rikku2000"
-# define PAL_PORTYEAR         "2011"
-
-#elif defined(NDS)
-
-#define PAL_PREFIX            "./"
-#define PAL_SAVE_PREFIX       "./"
-
-#  define PAL_DEFAULT_WINDOW_WIDTH   293
-#  define PAL_DEFAULT_WINDOW_HEIGHT  196
-
-# if SDL_VERSION_ATLEAST(2,0,0)
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
-# else
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_SWSURFACE | SDL_FULLSCREEN)
-# endif
-
-# define PAL_PLATFORM         "Nintendo DS"
-# define PAL_CREDIT           "(Unknown)"
-# define PAL_PORTYEAR         "2012"
-
-#elif defined (__N3DS__)
-
-#define PAL_PREFIX            "sdmc:/3ds/sdlpal/"
-#define PAL_SAVE_PREFIX       "sdmc:/3ds/sdlpal/"
-#define PAL_CONFIG_PREFIX     "sdmc:/3ds/sdlpal/"
-#define PAL_SCREENSHOT_PREFIX "sdmc:/3ds/sdlpal/"
-
-#define PAL_AUDIO_DEFAULT_BUFFER_SIZE   2048
-
-#define PAL_HAS_JOYSTICKS     0
-#define PAL_HAS_MP3           0
-#define PAL_HAS_OGG           0
-#define PAL_HAS_TOUCH         0
-
-#define PAL_DEFAULT_WINDOW_WIDTH   320
-#define PAL_DEFAULT_WINDOW_HEIGHT  240
-
-#define PAL_VIDEO_INIT_FLAGS  (SDL_SWSURFACE | SDL_TOPSCR | SDL_CONSOLEBOTTOM | SDL_FULLSCREEN)
-
-# define PAL_PLATFORM         "Nintendo 3DS"
-# define PAL_CREDIT           "ZephRay"
-# define PAL_PORTYEAR         "2017"
-
-#elif defined (__IOS__)
-
-#define PAL_PREFIX            UTIL_BasePath()
-#define PAL_SAVE_PREFIX       UTIL_SavePath()
-#define PAL_HAS_TOUCH         1
-#define PAL_DEFAULT_WINDOW_WIDTH   320
-#define PAL_DEFAULT_WINDOW_HEIGHT  200
-
-# if SDL_VERSION_ATLEAST(2,0,0)
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
-# else
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_HWSURFACE | SDL_FULLSCREEN)
-# endif
-
-# define PAL_PLATFORM         "Apple iOS"
-# define PAL_CREDIT           "(Unknown)"
-# define PAL_PORTYEAR         "2015"
-
-#elif defined (__ANDROID__)
-
-#define PAL_PREFIX            "/mnt/sdcard/sdlpal/"
-#define PAL_SAVE_PREFIX       "/mnt/sdcard/sdlpal/"
-#define PAL_HAS_TOUCH         1
-#define PAL_DEFAULT_WINDOW_WIDTH   320
-#define PAL_DEFAULT_WINDOW_HEIGHT  200
-
-# if SDL_VERSION_ATLEAST(2,0,0)
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
-# else
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_HWSURFACE | SDL_FULLSCREEN)
-# endif
-
-# define PAL_PLATFORM         "Android"
-# define PAL_CREDIT           "Rikku2000"
-# define PAL_PORTYEAR         "2013"
-
-#elif defined(__WINRT__)
-
-#define PAL_PREFIX            UTIL_BasePath()
-#define PAL_SAVE_PREFIX       UTIL_SavePath()
-#define PAL_CONFIG_PREFIX     UTIL_ConfigPath()
-#define PAL_SCREENSHOT_PREFIX UTIL_ScreenShotPath()
-#define PAL_HAS_TOUCH         1
-#define PAL_AUDIO_DEFAULT_BUFFER_SIZE   4096
-#define PAL_DEFAULT_WINDOW_WIDTH   320
-#define PAL_DEFAULT_WINDOW_HEIGHT  200
-
-# if SDL_VERSION_ATLEAST(2,0,0)
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
-# else
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_HWSURFACE | SDL_RESIZABLE | (gConfig.fFullScreen ? SDL_FULLSCREEN : 0))
-# endif
-
-# define PAL_PLATFORM         "Windows Runtime"
-# define PAL_CREDIT           "(Unknown)"
-# define PAL_PORTYEAR         "2015"
-
-#elif defined (__EMSCRIPTEN__)
-
-#include <emscripten.h>
-#define SDL_Delay emscripten_sleep
-
-#define PAL_PREFIX            "data/"
-#define PAL_SAVE_PREFIX       "data/"
-#define PAL_HAS_TOUCH         0
-#define PAL_DEFAULT_WINDOW_WIDTH   320
-#define PAL_DEFAULT_WINDOW_HEIGHT  200
-
-# if SDL_VERSION_ATLEAST(2,0,0)
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
-# else
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_HWSURFACE | SDL_FULLSCREEN)
-# endif
-
-# define PAL_PLATFORM         "Emscripten"
-# define PAL_CREDIT           "palxex"
-# define PAL_PORTYEAR         "2016"
-
-#else
-
-# ifndef PAL_HAS_JOYSTICKS
-#  define PAL_HAS_JOYSTICKS    1
-# endif
-
-#if SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION <= 2
-# define PAL_ALLOW_KEYREPEAT   1
-# define PAL_HAS_SDLCD         1
-#endif
-
-# define PAL_PREFIX            "./"
-# define PAL_SAVE_PREFIX       "./"
-
-# define PAL_DEFAULT_WINDOW_WIDTH   640
-# define PAL_DEFAULT_WINDOW_HEIGHT  400
-# define PAL_DEFAULT_FULLSCREEN_HEIGHT 480
-
-# if SDL_VERSION_ATLEAST(2,0,0)
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE | (gConfig.fFullScreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0))
-# else
-#  define PAL_VIDEO_INIT_FLAGS  (SDL_HWSURFACE | SDL_RESIZABLE | (gConfig.fFullScreen ? SDL_FULLSCREEN : 0))
-# endif
-
-# define PAL_PLATFORM         NULL
-# define PAL_CREDIT           NULL
-# define PAL_PORTYEAR         NULL
-
-#endif
+/* When porting SDLPAL to a new platform, please make a separate directory and put a file 
+   named 'pal_config.h' that contains marco definitions & header includes into the directory.
+   The example of this file can be found in directories of existing portings.
+ */
+#include "pal_config.h"
 
 #ifndef PAL_DEFAULT_FULLSCREEN_HEIGHT
 # define PAL_DEFAULT_FULLSCREEN_HEIGHT PAL_DEFAULT_WINDOW_HEIGHT
@@ -424,13 +195,15 @@ typedef const WCHAR        *LPCWSTR;
 #endif
 
 #ifndef PAL_HAS_NATIVEMIDI
-#define PAL_HAS_NATIVEMIDI  0
+# define PAL_HAS_NATIVEMIDI  0
 #endif
 
-#if defined (__SYMBIAN32__) || defined (__N3DS__)
-#define PAL_LARGE           static
-#else
-#define PAL_LARGE           /* */
+#ifndef PAL_LARGE
+# define PAL_LARGE
+#endif
+
+#ifndef PAL_SCALE_SCREEN
+# define PAL_SCALE_SCREEN   TRUE
 #endif
 
 #define __WIDETEXT(quote) L##quote

+ 1 - 1
dingux/Makefile.dingux

@@ -7,7 +7,7 @@ CFILES = $(foreach dir, $(SOURCES), $(wildcard $(dir)/*.c))
 CPPFILES = $(foreach dir, $(SOURCES), $(wildcard $(dir)/*.cpp))
 OFILES = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o)
 
-CFLAGS = -g -Wall -O2 `sdl-config --cflags` -DDINGOO -DPAL_CLASSIC
+CFLAGS = -g -Wall -O2 `sdl-config --cflags` -DDINGOO -DPAL_CLASSIC -I.
 CXXFLAGS = $(CFLAGS)
 LDFLAGS = `sdl-config --libs`
 

+ 22 - 0
dingux/pal_config.h

@@ -0,0 +1,22 @@
+#ifndef PAL_CONFIG_H
+# define PAL_CONFIG_H
+
+#define PAL_PREFIX            "./"
+#define PAL_SAVE_PREFIX       "./"
+
+#  define PAL_DEFAULT_WINDOW_WIDTH   320
+#  define PAL_DEFAULT_WINDOW_HEIGHT  240
+
+# if SDL_VERSION_ATLEAST(2,0,0)
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
+# else
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_SWSURFACE | SDL_FULLSCREEN)
+# endif
+
+#define PAL_SDL_INIT_FLAGS	(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK)
+
+# define PAL_PLATFORM         "DINGOO & Dingux"
+# define PAL_CREDIT           "Rikku2000"
+# define PAL_PORTYEAR         "2011"
+
+#endif

+ 1 - 1
emscripten/Makefile

@@ -9,7 +9,7 @@ CFILES = $(wildcard ../adplug/*.c) $(wildcard ../libmad/*.c) $(wildcard ../libog
 CPPFILES = $(wildcard ../adplug/*.cpp) $(wildcard ../*.cpp) $(wildcard ./*.cpp)
 OBJFILES = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o)
 
-CFLAGS = -I${EMSCRIPTEN_TOOLCHAIN}/include/SDL2 -g -Wall -O2 -fno-strict-aliasing -I../ -I../liboggvorbis/include -I../liboggvorbis/src -DPAL_HAS_PLATFORM_SPECIFIC_UTILS
+CFLAGS = -I${EMSCRIPTEN_TOOLCHAIN}/include/SDL2 -g -Wall -O2 -fno-strict-aliasing -I. -I../ -I../liboggvorbis/include -I../liboggvorbis/src -DPAL_HAS_PLATFORM_SPECIFIC_UTILS
 LDFLAGS = -L${EMSCRIPTEN_TOOLCHAIN}/lib -lSDL2 -lm -lstdc++ --preload-file data -s TOTAL_MEMORY=134217728 -s TOTAL_STACK=5242880 --emrun -s DEMANGLE_SUPPORT=1 -s EMTERPRETIFY=1 -s EMTERPRETIFY_ASYNC=1 -s 'EMTERPRETIFY_FILE="sdlpal.bc"'
 
 .c.o:

+ 1 - 1
emscripten/Makefile.wasm

@@ -9,7 +9,7 @@ CFILES = $(wildcard ../adplug/*.c) $(wildcard ../libmad/*.c) $(wildcard ../libog
 CPPFILES = $(wildcard ../adplug/*.cpp) $(wildcard ../*.cpp) $(wildcard ./*.cpp)
 OBJFILES = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o)
 
-CFLAGS = -I${EMSCRIPTEN_TOOLCHAIN}/include/SDL2 -g -Wall -O2 -fno-strict-aliasing -I../ -I../liboggvorbis/include -I../liboggvorbis/src -DPAL_HAS_PLATFORM_SPECIFIC_UTILS
+CFLAGS = -I${EMSCRIPTEN_TOOLCHAIN}/include/SDL2 -g -Wall -O2 -fno-strict-aliasing -I. -I../ -I../liboggvorbis/include -I../liboggvorbis/src -DPAL_HAS_PLATFORM_SPECIFIC_UTILS
 LDFLAGS = -L${EMSCRIPTEN_TOOLCHAIN}/lib -lSDL2 -lm -lstdc++ --preload-file data -s TOTAL_MEMORY=134217728 -s TOTAL_STACK=5242880 --emrun -s DEMANGLE_SUPPORT=1 -s WASM=1 -s ASYNCIFY=1
 
 .c.o:

+ 28 - 0
emscripten/pal_config.h

@@ -0,0 +1,28 @@
+#ifndef PAL_CONFIG_H
+# define PAL_CONFIG_H
+
+# include <emscripten.h>
+# define SDL_Delay emscripten_sleep
+
+# define PAL_PREFIX            "data/"
+# define PAL_SAVE_PREFIX       "data/"
+# define PAL_HAS_TOUCH         0
+# define PAL_DEFAULT_WINDOW_WIDTH   320
+# define PAL_DEFAULT_WINDOW_HEIGHT  200
+
+# if SDL_VERSION_ATLEAST(2,0,0)
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
+# else
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_HWSURFACE | SDL_FULLSCREEN)
+# endif
+
+#define PAL_SDL_INIT_FLAGS	(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_CDROM | SDL_INIT_NOPARACHUTE | SDL_INIT_JOYSTICK)
+
+# define PAL_PLATFORM         "Emscripten"
+# define PAL_CREDIT           "palxex"
+# define PAL_PORTYEAR         "2016"
+
+# include <ctype.h>
+# include <sys/time.h>
+
+#endif

+ 2 - 2
gph/Makefile.gph

@@ -13,12 +13,12 @@ DEVICE = -DCAANOO
 endif
 endif
 
-SOURCES = . ./adplug
+SOURCES = . .. ../adplug
 CFILES = $(foreach dir, $(SOURCES), $(wildcard $(dir)/*.c))
 CPPFILES = $(foreach dir, $(SOURCES), $(wildcard $(dir)/*.cpp))
 OFILES = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o)
 
-CFLAGS = -g -Wall -O2 `sdl-config --cflags` -DGPH $(DEVICE) -DPAL_CLASSIC
+CFLAGS = -g -Wall -O2 `sdl-config --cflags` -DGPH $(DEVICE) -DPAL_HAS_PLATFORM_SPECIFIC_UTILS -I.
 CXXFLAGS = $(CFLAGS)
 LDFLAGS = `sdl-config --libs`
 

+ 25 - 0
gph/pal_config.h

@@ -0,0 +1,25 @@
+#ifndef PAL_CONFIG_H
+# define PAL_CONFIG_H
+
+#define PAL_PREFIX            "./"
+#define PAL_SAVE_PREFIX       "./"
+
+#  define PAL_DEFAULT_WINDOW_WIDTH   320
+#  define PAL_DEFAULT_WINDOW_HEIGHT  240
+
+# if SDL_VERSION_ATLEAST(2,0,0)
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
+# else
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_SWSURFACE | SDL_FULLSCREEN)
+# endif
+
+#define PAL_SDL_INIT_FLAGS	(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_CDROM | SDL_INIT_NOPARACHUTE | SDL_INIT_JOYSTICK)
+
+# define PAL_PLATFORM         "GPH Caanoo & Wiz"
+# define PAL_CREDIT           "Rikku2000"
+# define PAL_PORTYEAR         "2011"
+
+# define MIN_DEADZONE -16384
+# define MAX_DEADZONE 16384
+
+#endif

+ 38 - 0
gph/pal_utils.c

@@ -0,0 +1,38 @@
+
+#include "common.h"
+
+BOOL
+UTIL_GetScreenSize(
+	DWORD *pdwScreenWidth,
+	DWORD *pdwScreenHeight
+)
+{
+	return FALSE;
+}
+
+BOOL
+UTIL_IsAbsolutePath(
+	LPCSTR  lpszFileName
+)
+{
+	return FALSE;
+}
+
+INT
+UTIL_Platform_Init(
+	int argc,
+	char* argv[]
+)
+{
+	gConfig.fLaunchSetting = FALSE;
+	return 0;
+}
+
+VOID
+UTIL_Platform_Quit(
+	VOID
+)
+{
+	chdir("/usr/gp2x");
+	execl("./gp2xmenu", "./gp2xmenu", NULL);
+}

+ 1 - 0
incomplete_ports/README.txt

@@ -0,0 +1 @@
+This directory contains ports that are incomplete.

+ 59 - 0
incomplete_ports/pal_config.h

@@ -0,0 +1,59 @@
+#ifndef PAL_CONFIG_H
+# define PAL_CONFIG_H
+
+#if defined (__SYMBIAN32__)
+
+#undef  _WIN32
+#undef  SDL_INIT_JOYSTICK
+#define SDL_INIT_JOYSTICK     0
+#define PAL_HAS_MOUSE         1
+#define PAL_PREFIX            "e:/data/pal/"
+#define PAL_SAVE_PREFIX       "e:/data/pal/"
+# ifdef __S60_5X__
+#  define PAL_DEFAULT_WINDOW_WIDTH   640
+#  define PAL_DEFAULT_WINDOW_HEIGHT  360
+# else
+#  define PAL_DEFAULT_WINDOW_WIDTH   320
+#  define PAL_DEFAULT_WINDOW_HEIGHT  240
+# endif
+# if SDL_VERSION_ATLEAST(2,0,0)
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE)
+# else
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_SWSURFACE | (gConfig.fFullScreen ? SDL_FULLSCREEN : 0))
+# endif
+
+# define PAL_SDL_INIT_FLAGS	(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_CDROM | SDL_INIT_NOPARACHUTE | SDL_INIT_JOYSTICK)
+
+# define PAL_PLATFORM         "  Symbian S60 \x79FB\x690D (c) 2009, netwan."
+# define PAL_CREDIT           "netwan"
+# define PAL_PORTYEAR         "2009"
+
+# define PAL_LARGE           static
+
+# if !defined (__S60_5X__)
+#  define PAL_SCALE_SCREEN   FALSE
+# endif
+
+#elif defined(NDS)
+
+#define PAL_PREFIX            "./"
+#define PAL_SAVE_PREFIX       "./"
+
+#  define PAL_DEFAULT_WINDOW_WIDTH   293
+#  define PAL_DEFAULT_WINDOW_HEIGHT  196
+
+# if SDL_VERSION_ATLEAST(2,0,0)
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
+# else
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_SWSURFACE | SDL_FULLSCREEN)
+# endif
+
+# define PAL_SDL_INIT_FLAGS	(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_CDROM | SDL_INIT_NOPARACHUTE | SDL_INIT_JOYSTICK)
+
+# define PAL_PLATFORM         "Nintendo DS"
+# define PAL_CREDIT           "(Unknown)"
+# define PAL_PORTYEAR         "2012"
+
+#endif
+
+#endif

+ 40 - 0
incomplete_ports/pal_utils.c

@@ -0,0 +1,40 @@
+
+#if if defined(NDS)
+#include "common.h"
+#include <fat.h>
+
+BOOL
+UTIL_GetScreenSize(
+	DWORD *pdwScreenWidth,
+	DWORD *pdwScreenHeight
+)
+{
+	return FALSE;
+}
+
+BOOL
+UTIL_IsAbsolutePath(
+	LPCSTR  lpszFileName
+)
+{
+	return FALSE;
+}
+
+INT
+UTIL_Platform_Init(
+	int argc,
+	char* argv[]
+)
+{
+	fatInitDefault();
+	gConfig.fLaunchSetting = FALSE;
+	return 0;
+}
+
+VOID
+UTIL_Platform_Quit(
+	VOID
+)
+{
+}
+#endif

+ 0 - 9
input.c

@@ -24,10 +24,6 @@
 #include "main.h"
 #include <math.h>
 
-#ifdef __N3DS__
-#include <3ds.h>
-#endif
-
 volatile PALINPUTSTATE   g_InputState;
 #if PAL_HAS_JOYSTICKS
 static SDL_Joystick     *g_pJoy = NULL;
@@ -37,11 +33,6 @@ static SDL_Joystick     *g_pJoy = NULL;
 #endif
 BOOL                     g_fUseJoystick = TRUE;
 
-#if defined(GPH)
-#define MIN_DEADZONE -16384
-#define MAX_DEADZONE 16384
-#endif
-
 static VOID
 PAL_KeyboardEventFilter(
    const SDL_Event       *lpEvent

+ 32 - 0
ios/pal_config.h

@@ -0,0 +1,32 @@
+#ifndef PAL_CONFIG_H
+# define PAL_CONFIG_H
+
+# define PAL_PREFIX            UTIL_BasePath()
+# define PAL_SAVE_PREFIX       UTIL_SavePath()
+# define PAL_HAS_TOUCH         1
+# define PAL_DEFAULT_WINDOW_WIDTH   320
+# define PAL_DEFAULT_WINDOW_HEIGHT  200
+
+# if SDL_VERSION_ATLEAST(2,0,0)
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
+# else
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_HWSURFACE | SDL_FULLSCREEN)
+# endif
+
+#define PAL_SDL_INIT_FLAGS	(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_CDROM | SDL_INIT_NOPARACHUTE | SDL_INIT_JOYSTICK)
+
+# define PAL_PLATFORM         "Apple iOS"
+# define PAL_CREDIT           "(Unknown)"
+# define PAL_PORTYEAR         "2015"
+
+LPCSTR
+UTIL_BasePath(
+   VOID
+);
+
+LPCSTR
+UTIL_SavePath(
+   VOID
+);
+
+#endif

+ 6 - 32
main.c

@@ -23,12 +23,6 @@
 
 #include "main.h"
 
-#if defined (NDS) && defined (GEKKO)
-
-# include <fat.h>
-
-#endif
-
 #if defined(LONGJMP_EXIT)
 #include <setjmp.h>
 
@@ -64,20 +58,10 @@ PAL_Init(
 {
    int           e;
 
-#if defined (NDS) && defined (GEKKO)
-   fatInitDefault();
-#endif
-
    //
    // Initialize defaults, video and audio
    //
-#if defined(DINGOO)
-   if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK) == -1)
-#elif defined (__WINRT__) || defined (__N3DS__)
-   if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) == -1)
-#else
-   if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_CDROM | SDL_INIT_NOPARACHUTE | SDL_INIT_JOYSTICK) == -1)
-#endif
+   if (SDL_Init(PAL_SDL_INIT_FLAGS) == -1)
    {
 #if defined (_WIN32) && SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION <= 2
       //
@@ -193,19 +177,13 @@ PAL_Shutdown(
    UTIL_CloseLog();
 
    SDL_Quit();
-#if defined(GPH)
-	chdir("/usr/gp2x");
-	execl("./gp2xmenu", "./gp2xmenu", NULL);
-#endif
-	UTIL_Platform_Quit();
+   UTIL_Platform_Quit();
 #if defined(LONGJMP_EXIT)
-	longjmp(g_exit_jmp_buf, exit_code);
+   longjmp(g_exit_jmp_buf, exit_code);
+#elif defined (NDS)
+   while (1);
 #else
-# if defined (NDS)
-	while (1);
-# else
-	exit(exit_code);
-# endif
+   exit(exit_code);
 #endif
 }
 
@@ -547,10 +525,6 @@ main(
 
    UTIL_OpenLog();
 
-#if defined(_WIN32) && SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION <= 2
-   putenv("SDL_VIDEODRIVER=directx");
-#endif
-
    PAL_LoadConfig(TRUE);
 
    //

+ 0 - 3
palcfg.h

@@ -28,9 +28,6 @@ extern "C"
 # endif
 
 #include "palcommon.h"
-#ifdef __EMSCRIPTEN__
-#include <ctype.h>
-#endif
 
 #define     PAL_MAX_SAMPLERATE           48000
 #define     PAL_MAX_VOLUME               100

+ 1 - 1
psp/Makefile.psp

@@ -14,7 +14,7 @@ OBJS = adplug/binfile.o adplug/emuopl.o adplug/fprovide.o adplug/rix.o \
 PSPSDK = $(shell psp-config --pspsdk-path)
 
 INCDIR = 
-CFLAGS = -O3 -G0 -Wall -g `$(PSPSDK)/../bin/sdl-config --cflags` -DPSP=1
+CFLAGS = -O3 -G0 -Wall -g `$(PSPSDK)/../bin/sdl-config --cflags` -DPSP=1 -I.
 CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti `$(PSPSDK)/../bin/sdl-config --cflags`
 ASFLAGS = $(CFLAGS)
 

+ 9 - 0
psp/main_PSP.c

@@ -34,6 +34,15 @@ PSP_MODULE_INFO("SDLPAL", 0, 1, 1);
 PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);
 PSP_HEAP_SIZE_KB(PSP_HEAP_MEMSIZE);
 
+void
+SOUND_Reload(
+	void
+)
+{
+	fclose(gSndPlayer.mkf);
+	SOUND_LoadMKF();
+}
+
 //
 //Exit callback
 //

+ 24 - 0
psp/pal_config.h

@@ -0,0 +1,24 @@
+#ifndef PAL_CONFIG_H
+# define PAL_CONFIG_H
+
+# define PAL_HAS_JOYSTICKS     0
+# define PAL_PREFIX            "ms0:/"
+# define PAL_SAVE_PREFIX       "ms0:/PSP/SAVEDATA/SDLPAL/"
+
+# define PAL_DEFAULT_WINDOW_WIDTH   320
+# define PAL_DEFAULT_WINDOW_HEIGHT  240
+
+# if SDL_VERSION_ATLEAST(2,0,0)
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
+# else
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_SWSURFACE | SDL_FULLSCREEN)
+# endif
+
+# define PAL_SDL_INIT_FLAGS	(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_CDROM | SDL_INIT_NOPARACHUTE | SDL_INIT_JOYSTICK)
+# define PAL_SCALE_SCREEN   FALSE
+
+# define PAL_PLATFORM         "Sony PSP"
+# define PAL_CREDIT           "(Unknown)"
+# define PAL_PORTYEAR         "2011"
+
+#endif

+ 4 - 4
resampler.c

@@ -3,10 +3,10 @@
 #define _USE_MATH_DEFINES
 #include <math.h>
 #if !defined(__MINGW32__) && !defined(__EMSCRIPTEN__)
-#if (defined(_M_IX86) || defined(__i386__) || defined(_M_X64) || defined(__amd64__))
-#include <xmmintrin.h>
-#define RESAMPLER_SSE
-#endif
+# if (defined(_M_IX86) || defined(__i386__) || defined(_M_X64) || defined(__amd64__))
+#  include <xmmintrin.h>
+#  define RESAMPLER_SSE
+# endif
 #endif
 
 #ifdef _MSC_VER

+ 0 - 11
sound.c

@@ -1031,14 +1031,3 @@ SOUND_Init(
 
 	return NULL;
 }
-
-#ifdef PSP
-void
-SOUND_Reload(
-	void
-	)
-{
-	fclose(gSndPlayer.mkf);
-	SOUND_LoadMKF();
-}
-#endif

+ 1 - 1
uigame.c

@@ -2011,7 +2011,7 @@ PAL_QuitGame(
    VOID
 )
 {
-#ifndef __N3DS__
+#if PAL_HAS_CONFIG_PAGE
 	WORD wReturnValue = PAL_TripleMenu(SYSMENU_LABEL_LAUNCHSETTING);
 #else
 	WORD wReturnValue = PAL_ConfirmMenu(); // No config menu available

+ 1 - 1
unix/Makefile

@@ -8,7 +8,7 @@ CFILES = $(wildcard ../adplug/*.c) $(wildcard ../libmad/*.c) $(wildcard ../libog
 CPPFILES = $(wildcard ../adplug/*.cpp) $(wildcard ../*.cpp) $(wildcard ./*.cpp)
 OBJFILES = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o)
 
-CCFLAGS = `sdl2-config --cflags` -g -Wall -O2 -fno-strict-aliasing -I../ -I../liboggvorbis/include -I../liboggvorbis/src -DPAL_HAS_PLATFORM_SPECIFIC_UTILS
+CCFLAGS = `sdl2-config --cflags` -g -Wall -O2 -fno-strict-aliasing -I. -I../ -I../liboggvorbis/include -I../liboggvorbis/src -DPAL_HAS_PLATFORM_SPECIFIC_UTILS
 CXXFLAGS = $(CCFLAGS) -std=c++11 `fltk-config --cxxflags`
 CFLAGS = $(CCFLAGS) -std=gnu99 `fltk-config --cflags`
 LDFLAGS = `sdl2-config --libs` `fltk-config --ldflags` -lstdc++ -lm

+ 34 - 0
unix/pal_config.h

@@ -0,0 +1,34 @@
+#ifndef PAL_CONFIG_H
+# define PAL_CONFIG_H
+
+# ifndef PAL_HAS_JOYSTICKS
+#  define PAL_HAS_JOYSTICKS    1
+# endif
+
+# if SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION <= 2
+#  define PAL_ALLOW_KEYREPEAT   1
+#  define PAL_HAS_SDLCD         1
+# endif
+
+# define PAL_PREFIX            "./"
+# define PAL_SAVE_PREFIX       "./"
+
+# define PAL_DEFAULT_WINDOW_WIDTH   640
+# define PAL_DEFAULT_WINDOW_HEIGHT  400
+# define PAL_DEFAULT_FULLSCREEN_HEIGHT 480
+
+# if SDL_VERSION_ATLEAST(2,0,0)
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE | (gConfig.fFullScreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0))
+# else
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_HWSURFACE | SDL_RESIZABLE | (gConfig.fFullScreen ? SDL_FULLSCREEN : 0))
+# endif
+
+# define PAL_SDL_INIT_FLAGS	(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_CDROM | SDL_INIT_NOPARACHUTE | SDL_INIT_JOYSTICK)
+
+# define PAL_PLATFORM         NULL
+# define PAL_CREDIT           NULL
+# define PAL_PORTYEAR         NULL
+
+# define PAL_HAS_CONFIG_PAGE  1
+
+#endif

+ 1 - 1
util.c

@@ -497,7 +497,7 @@ UTIL_OpenFileForMode(
 	else
 		fp = fopen(va("%s%s", gConfig.pszGamePath, lpszFileName), szMode);
 
-#if !(defined(_WIN32) || defined(__N3DS__))
+#if !defined(PAL_FILESYSTEM_IGNORE_CASE)
 	if (fp == NULL)
 	{
 		//

+ 0 - 10
util.h

@@ -108,16 +108,6 @@ UTIL_CloseFile(
    FILE                *fp
 );
 
-LPCSTR
-UTIL_BasePath(
-   VOID
-);
-
-LPCSTR
-UTIL_SavePath(
-   VOID
-);
-
 LPCSTR
 UTIL_ConfigPath(
    VOID

+ 1 - 8
video.c

@@ -20,9 +20,6 @@
 //
 
 #include "main.h"
-#ifndef __WIN32__
-#include <sys/time.h>
-#endif
 
 // Screen buffer
 SDL_Surface              *gpScreen           = NULL;
@@ -44,11 +41,7 @@ static SDL_Surface       *gpScreenReal       = NULL;
 
 volatile BOOL g_bRenderPaused = FALSE;
 
-#if (defined (__SYMBIAN32__) && !defined (__S60_5X__)) || defined (PSP) || defined (GEKKO) || defined(__N3DS__)
-   static BOOL bScaleScreen = FALSE;
-#else
-   static BOOL bScaleScreen = TRUE;
-#endif
+static BOOL bScaleScreen = PAL_SCALE_SCREEN;
 
 // Shake times and level
 static WORD               g_wShakeTime       = 0;

+ 3 - 3
wii/Makefile.wii

@@ -2,12 +2,12 @@ TARGET = boot
 
 HOST = powerpc-eabi-
 
-SOURCES = . ./adplug
-CFILES = $(foreach dir, $(SOURCES), $(wildcard $(dir)/*.c))
+SOURCES = . .. ../adplug
+CFILES = $(foreach dir, $(SOURCES), $(wildcard $(dir)/*.c)) 
 CPPFILES = $(foreach dir, $(SOURCES), $(wildcard $(dir)/*.cpp))
 OFILES = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o)
 
-CFLAGS = -g -Wall -O2 `sdl-config --cflags` -DGEKKO -DPAL_CLASSIC
+CFLAGS = -g -Wall -O2 `sdl-config --cflags` -DGEKKO -DPAL_HAS_PLATFORM_SPECIFIC_UTILS -I.
 CXXFLAGS = $(CFLAGS)
 LDFLAGS = `sdl-config --libs` -DGEKKO -mrvl
 

+ 25 - 0
wii/pal_config.h

@@ -0,0 +1,25 @@
+#ifndef PAL_CONFIG_H
+# define PAL_CONFIG_H
+
+# define PAL_HAS_JOYSTICKS     1
+# define PAL_HAS_MOUSE         0
+# define PAL_PREFIX            "SD:/apps/sdlpal/"
+# define PAL_SAVE_PREFIX       "SD:/apps/sdlpal/"
+
+# define PAL_DEFAULT_WINDOW_WIDTH   640
+# define PAL_DEFAULT_WINDOW_HEIGHT  480
+
+# if SDL_VERSION_ATLEAST(2,0,0)
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE)
+# else
+#  define PAL_VIDEO_INIT_FLAGS  (SDL_SWSURFACE | (gConfig.fFullScreen ? SDL_FULLSCREEN : 0))
+# endif
+
+# define PAL_SDL_INIT_FLAGS	(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_CDROM | SDL_INIT_NOPARACHUTE | SDL_INIT_JOYSTICK)
+# define PAL_SCALE_SCREEN   FALSE
+
+# define PAL_PLATFORM         "Nintendo WII"
+# define PAL_CREDIT           "Rikku2000"
+# define PAL_PORTYEAR         "2012"
+
+#endif

+ 38 - 0
wii/pal_utils.c

@@ -0,0 +1,38 @@
+
+#include "common.h"
+#include <fat.h>
+
+BOOL
+UTIL_GetScreenSize(
+	DWORD *pdwScreenWidth,
+	DWORD *pdwScreenHeight
+)
+{
+	return FALSE;
+}
+
+BOOL
+UTIL_IsAbsolutePath(
+	LPCSTR  lpszFileName
+)
+{
+	return FALSE;
+}
+
+INT
+UTIL_Platform_Init(
+	int argc,
+	char* argv[]
+)
+{
+	fatInitDefault();
+	gConfig.fLaunchSetting = FALSE;
+	return 0;
+}
+
+VOID
+UTIL_Platform_Quit(
+	VOID
+)
+{
+}

+ 35 - 0
win32/pal_config.h

@@ -0,0 +1,35 @@
+#pragma once
+
+#ifndef PAL_HAS_JOYSTICKS
+# define PAL_HAS_JOYSTICKS    1
+#endif
+
+#if SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION <= 2
+# define PAL_ALLOW_KEYREPEAT   1
+# define PAL_HAS_SDLCD         1
+#endif
+
+#define PAL_PREFIX            "./"
+#define PAL_SAVE_PREFIX       "./"
+
+#define PAL_DEFAULT_WINDOW_WIDTH   640
+#define PAL_DEFAULT_WINDOW_HEIGHT  400
+#define PAL_DEFAULT_FULLSCREEN_HEIGHT 480
+
+#if SDL_VERSION_ATLEAST(2,0,0)
+# define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE | (gConfig.fFullScreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0))
+#else
+# define PAL_VIDEO_INIT_FLAGS  (SDL_HWSURFACE | SDL_RESIZABLE | (gConfig.fFullScreen ? SDL_FULLSCREEN : 0))
+#endif
+
+#define PAL_SDL_INIT_FLAGS	(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_CDROM | SDL_INIT_NOPARACHUTE | SDL_INIT_JOYSTICK)
+
+#define PAL_PLATFORM         NULL
+#define PAL_CREDIT           NULL
+#define PAL_PORTYEAR         NULL
+
+#define PAL_HAS_NATIVEMIDI  1
+
+#define PAL_HAS_CONFIG_PAGE 1
+
+#define PAL_FILESYSTEM_IGNORE_CASE 1

+ 5 - 4
win32/sdlpal.vcxproj

@@ -97,7 +97,7 @@
       </HeaderFileName>
     </Midl>
     <ClCompile>
-      <AdditionalIncludeDirectories>..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\;..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>PAL_HAS_PLATFORM_SPECIFIC_UTILS;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <FunctionLevelLinking>true</FunctionLevelLinking>
@@ -126,7 +126,7 @@
       </HeaderFileName>
     </Midl>
     <ClCompile>
-      <AdditionalIncludeDirectories>..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\;..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>PAL_HAS_PLATFORM_SPECIFIC_UTILS;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <FunctionLevelLinking>true</FunctionLevelLinking>
@@ -155,7 +155,7 @@
       </HeaderFileName>
     </Midl>
     <ClCompile>
-      <AdditionalIncludeDirectories>..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\;..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>PAL_HAS_PLATFORM_SPECIFIC_UTILS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -186,7 +186,7 @@
       </HeaderFileName>
     </Midl>
     <ClCompile>
-      <AdditionalIncludeDirectories>..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\;..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>PAL_HAS_PLATFORM_SPECIFIC_UTILS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -414,6 +414,7 @@
     <ClInclude Include="..\libmad\stream.h" />
     <ClInclude Include="..\libmad\synth.h" />
     <ClInclude Include="..\libmad\timer.h" />
+    <ClInclude Include="pal_config.h" />
     <ClInclude Include="resource.h" />
   </ItemGroup>
   <ItemGroup>

+ 3 - 0
win32/sdlpal.vcxproj.filters

@@ -652,6 +652,9 @@
     <ClInclude Include="..\audio.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="pal_config.h">
+      <Filter>platform</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\sdlpal.ico">

+ 4 - 0
win32/win32.cpp

@@ -265,6 +265,10 @@ INT_PTR CALLBACK LauncherDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPAR
 
 extern "C" int UTIL_Platform_Init(int argc, char* argv[])
 {
+#if SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION <= 2
+	putenv("SDL_VIDEODRIVER=directx");
+#endif
+
 	g_hInstance = GetModuleHandle(nullptr);
 #ifndef __MINGW32__ // mingw's windows sdk dont support GetThreadUILanguage, since it's a vista+ API
 	g_wLanguage = GetThreadUILanguage();

+ 7 - 6
winrt/SDLPal.UWP/SDLPal.Core.vcxproj

@@ -132,7 +132,7 @@
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
       <CompileAsWinRT>false</CompileAsWinRT>
       <SDLCheck>true</SDLCheck>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>LONGJMP_EXIT;PAL_HAS_PLATFORM_SPECIFIC_UTILS;_CRT_SECURE_NO_WARNINGS;__WINRT__=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     <Link>
@@ -146,7 +146,7 @@
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
       <CompileAsWinRT>false</CompileAsWinRT>
       <SDLCheck>true</SDLCheck>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>LONGJMP_EXIT;PAL_HAS_PLATFORM_SPECIFIC_UTILS;_CRT_SECURE_NO_WARNINGS;__WINRT__=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     <Link>
@@ -160,7 +160,7 @@
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
       <CompileAsWinRT>false</CompileAsWinRT>
       <SDLCheck>true</SDLCheck>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>LONGJMP_EXIT;PAL_HAS_PLATFORM_SPECIFIC_UTILS;_CRT_SECURE_NO_WARNINGS;__WINRT__=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     <Link>
@@ -174,7 +174,7 @@
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
       <CompileAsWinRT>false</CompileAsWinRT>
       <SDLCheck>true</SDLCheck>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>LONGJMP_EXIT;PAL_HAS_PLATFORM_SPECIFIC_UTILS;_CRT_SECURE_NO_WARNINGS;__WINRT__=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     <Link>
@@ -188,7 +188,7 @@
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
       <CompileAsWinRT>false</CompileAsWinRT>
       <SDLCheck>true</SDLCheck>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>LONGJMP_EXIT;PAL_HAS_PLATFORM_SPECIFIC_UTILS;_CRT_SECURE_NO_WARNINGS;__WINRT__=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     <Link>
@@ -202,7 +202,7 @@
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
       <CompileAsWinRT>false</CompileAsWinRT>
       <SDLCheck>true</SDLCheck>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>LONGJMP_EXIT;PAL_HAS_PLATFORM_SPECIFIC_UTILS;_CRT_SECURE_NO_WARNINGS;__WINRT__=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     <Link>
@@ -324,6 +324,7 @@
     <ClInclude Include="..\..\uigame.h" />
     <ClInclude Include="..\..\util.h" />
     <ClInclude Include="..\..\video.h" />
+    <ClInclude Include="..\pal_config.h" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\adplug\adlibemu.c" />

+ 3 - 0
winrt/SDLPal.UWP/SDLPal.Core.vcxproj.filters

@@ -374,6 +374,9 @@
     <ClInclude Include="..\..\palcfg.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\pal_config.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\adplug\binfile.cpp">

+ 7 - 6
winrt/SDLPal.Windows/SDLPal.Core.vcxproj

@@ -133,7 +133,7 @@
       <DisableSpecificWarnings>
       </DisableSpecificWarnings>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <CompileAsWinRT>false</CompileAsWinRT>
       <PreprocessorDefinitions>LONGJMP_EXIT;PAL_HAS_PLATFORM_SPECIFIC_UTILS;_CRT_SECURE_NO_WARNINGS;__WINRT__=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
@@ -144,7 +144,7 @@
       <DisableSpecificWarnings>
       </DisableSpecificWarnings>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <CompileAsWinRT>false</CompileAsWinRT>
       <PreprocessorDefinitions>LONGJMP_EXIT;PAL_HAS_PLATFORM_SPECIFIC_UTILS;_CRT_SECURE_NO_WARNINGS;__WINRT__=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
@@ -155,7 +155,7 @@
       <DisableSpecificWarnings>
       </DisableSpecificWarnings>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <CompileAsWinRT>false</CompileAsWinRT>
       <PreprocessorDefinitions>LONGJMP_EXIT;PAL_HAS_PLATFORM_SPECIFIC_UTILS;_CRT_SECURE_NO_WARNINGS;__WINRT__=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
@@ -166,7 +166,7 @@
       <DisableSpecificWarnings>
       </DisableSpecificWarnings>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <CompileAsWinRT>false</CompileAsWinRT>
       <PreprocessorDefinitions>LONGJMP_EXIT;PAL_HAS_PLATFORM_SPECIFIC_UTILS;_CRT_SECURE_NO_WARNINGS;__WINRT__=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
@@ -177,7 +177,7 @@
       <DisableSpecificWarnings>
       </DisableSpecificWarnings>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <CompileAsWinRT>false</CompileAsWinRT>
       <PreprocessorDefinitions>LONGJMP_EXIT;PAL_HAS_PLATFORM_SPECIFIC_UTILS;_CRT_SECURE_NO_WARNINGS;__WINRT__=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
@@ -188,7 +188,7 @@
       <DisableSpecificWarnings>
       </DisableSpecificWarnings>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <CompileAsWinRT>false</CompileAsWinRT>
       <PreprocessorDefinitions>LONGJMP_EXIT;PAL_HAS_PLATFORM_SPECIFIC_UTILS;_CRT_SECURE_NO_WARNINGS;__WINRT__=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
@@ -306,6 +306,7 @@
     <ClInclude Include="..\..\uigame.h" />
     <ClInclude Include="..\..\util.h" />
     <ClInclude Include="..\..\video.h" />
+    <ClInclude Include="..\pal_config.h" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\adplug\adlibemu.c" />

+ 3 - 0
winrt/SDLPal.Windows/SDLPal.Core.vcxproj.filters

@@ -374,6 +374,9 @@
     <ClInclude Include="..\..\palcfg.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\pal_config.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\adplug\binfile.cpp">

+ 5 - 4
winrt/SDLPal.WindowsPhone/SDLPal.Core.vcxproj

@@ -85,7 +85,7 @@
     <ClCompile>
       <PreprocessorDefinitions>LONGJMP_EXIT;_CRT_SECURE_NO_WARNINGS;PAL_HAS_PLATFORM_SPECIFIC_UTILS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <CompileAsWinRT>false</CompileAsWinRT>
       <DisableSpecificWarnings>
       </DisableSpecificWarnings>
@@ -100,7 +100,7 @@
     <ClCompile>
       <PreprocessorDefinitions>LONGJMP_EXIT;_CRT_SECURE_NO_WARNINGS;PAL_HAS_PLATFORM_SPECIFIC_UTILS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <CompileAsWinRT>false</CompileAsWinRT>
       <DisableSpecificWarnings>
       </DisableSpecificWarnings>
@@ -115,7 +115,7 @@
     <ClCompile>
       <PreprocessorDefinitions>LONGJMP_EXIT;_CRT_SECURE_NO_WARNINGS;PAL_HAS_PLATFORM_SPECIFIC_UTILS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <CompileAsWinRT>false</CompileAsWinRT>
       <DisableSpecificWarnings>
       </DisableSpecificWarnings>
@@ -130,7 +130,7 @@
     <ClCompile>
       <PreprocessorDefinitions>LONGJMP_EXIT;_CRT_SECURE_NO_WARNINGS;PAL_HAS_PLATFORM_SPECIFIC_UTILS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>..\..\liboggvorbis\include;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\;..\..\liboggvorbis\include;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <CompileAsWinRT>false</CompileAsWinRT>
       <DisableSpecificWarnings>
       </DisableSpecificWarnings>
@@ -251,6 +251,7 @@
     <ClInclude Include="..\..\uigame.h" />
     <ClInclude Include="..\..\util.h" />
     <ClInclude Include="..\..\video.h" />
+    <ClInclude Include="..\pal_config.h" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\adplug\adlibemu.c" />

+ 3 - 0
winrt/SDLPal.WindowsPhone/SDLPal.Core.vcxproj.filters

@@ -374,6 +374,9 @@
     <ClInclude Include="..\..\palcfg.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\pal_config.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\adplug\binfile.cpp">

+ 26 - 0
winrt/pal_config.h

@@ -0,0 +1,26 @@
+#pragma once
+
+#define PAL_PREFIX            UTIL_BasePath()
+#define PAL_SAVE_PREFIX       UTIL_SavePath()
+#define PAL_CONFIG_PREFIX     UTIL_ConfigPath()
+#define PAL_SCREENSHOT_PREFIX UTIL_ScreenShotPath()
+#define PAL_HAS_TOUCH         1
+#define PAL_AUDIO_DEFAULT_BUFFER_SIZE   4096
+#define PAL_DEFAULT_WINDOW_WIDTH   320
+#define PAL_DEFAULT_WINDOW_HEIGHT  200
+
+#if SDL_VERSION_ATLEAST(2,0,0)
+# define PAL_VIDEO_INIT_FLAGS  (SDL_WINDOW_SHOWN)
+#else
+# define PAL_VIDEO_INIT_FLAGS  (SDL_HWSURFACE | SDL_RESIZABLE | (gConfig.fFullScreen ? SDL_FULLSCREEN : 0))
+#endif
+
+#define PAL_SDL_INIT_FLAGS	(SDL_INIT_VIDEO | SDL_INIT_AUDIO)
+
+#define PAL_PLATFORM         "Windows Runtime"
+#define PAL_CREDIT           "(Unknown)"
+#define PAL_PORTYEAR         "2015"
+
+#define PAL_HAS_CONFIG_PAGE  1
+
+#define PAL_FILESYSTEM_IGNORE_CASE 1