Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package sdl12_compat for openSUSE:Factory 
checked in at 2023-09-29 21:13:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sdl12_compat (Old)
 and      /work/SRC/openSUSE:Factory/.sdl12_compat.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "sdl12_compat"

Fri Sep 29 21:13:07 2023 rev:6 rq:1113762 version:1.2.68

Changes:
--------
--- /work/SRC/openSUSE:Factory/sdl12_compat/sdl12_compat.changes        
2023-06-04 16:41:28.345726227 +0200
+++ /work/SRC/openSUSE:Factory/.sdl12_compat.new.28202/sdl12_compat.changes     
2023-09-29 21:13:54.582475707 +0200
@@ -1,0 +2,14 @@
+Tue Sep 26 19:02:23 UTC 2023 - Jan Engelhardt <jeng...@inai.de>
+
+- Update to release 1.2.68
+  * sync dr_mp3 with mainstream
+  * Add null check to SDL_LoadWAV_RW to avoid crashes
+  * Add quirk entry: deactivate GL scaling for Trine (2011 Humble
+    Bundle version) and Mark of the Ninja (HB)
+  * Add quirk entry: set Hyperspace Delivery Boy to run in 16bpp mode
+  * Add quirk handling: add ability to force XInitThreads before
+    main()
+  * Allocate the video surface object statically as a global
+  * Add a hint to clamp the reported screen bit depth
+
+-------------------------------------------------------------------

Old:
----
  release-1.2.64.tar.gz

New:
----
  release-1.2.68.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ sdl12_compat.spec ++++++
--- /var/tmp/diff_new_pack.WFp5aG/_old  2023-09-29 21:13:55.862521890 +0200
+++ /var/tmp/diff_new_pack.WFp5aG/_new  2023-09-29 21:13:55.862521890 +0200
@@ -19,7 +19,7 @@
 Name:           sdl12_compat
 %define lname libSDL-1_2-0
 %global _lto_cflags %_lto_cflags -ffat-lto-objects
-Version:        1.2.64
+Version:        1.2.68
 Release:        0
 Summary:        SDL-1.2 Compatibility Layer for Simple DirectMedia Layer 2.0
 License:        MIT

++++++ release-1.2.64.tar.gz -> release-1.2.68.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sdl12-compat-release-1.2.64/.github/workflows/main.yml 
new/sdl12-compat-release-1.2.68/.github/workflows/main.yml
--- old/sdl12-compat-release-1.2.64/.github/workflows/main.yml  2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/.github/workflows/main.yml  2023-09-26 
19:43:48.000000000 +0200
@@ -10,7 +10,7 @@
       matrix:
         platform:
         - { name: Windows, os: windows-latest }
-        - { name: Linux,   os: ubuntu-20.04, flags: -GNinja }
+        - { name: Linux,   os: ubuntu-latest, flags: -GNinja }
         - { name: MacOS,   os: macos-latest }
     steps:
     - name: Setup Linux dependencies
@@ -19,14 +19,15 @@
         sudo apt-get update
         sudo apt-get install cmake ninja-build libgl1-mesa-dev libglu1-mesa-dev
     - name: Get sdl12-compat sources
-      uses: actions/checkout@v2
+      uses: actions/checkout@v3
     - name: Get SDL2 headers
-      uses: actions/checkout@v2
+      uses: actions/checkout@v3
       with:
         repository: libsdl-org/SDL
-        ref: release-2.0.18
+        ref: SDL2
         path: SDL2
     - name: Configure CMake
       run: cmake -DSDL2_INCLUDE_DIR="${{ github.workspace }}/SDL2/include" -B 
build ${{ matrix.platform.flags }}
     - name: Build
       run: cmake --build build/
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sdl12-compat-release-1.2.64/.github/workflows/watcom.yml 
new/sdl12-compat-release-1.2.68/.github/workflows/watcom.yml
--- old/sdl12-compat-release-1.2.64/.github/workflows/watcom.yml        
2023-05-26 02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/.github/workflows/watcom.yml        
2023-09-26 19:43:48.000000000 +0200
@@ -21,7 +21,7 @@
         uses: actions/checkout@v2
         with:
           repository: libsdl-org/SDL
-          ref: release-2.24.0
+          ref: SDL2
           path: SDL2
       - name: Build sdl12-compat
         run: |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-release-1.2.64/CMakeLists.txt 
new/sdl12-compat-release-1.2.68/CMakeLists.txt
--- old/sdl12-compat-release-1.2.64/CMakeLists.txt      2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/CMakeLists.txt      2023-09-26 
19:43:48.000000000 +0200
@@ -2,9 +2,9 @@
 #        you can define SDL2_INCLUDE_DIR on the cmdline.  For example:
 #        cmake -DSDL2_INCLUDE_DIR=/opt/SDL2/include/SDL2 [other stuff]
 
-cmake_minimum_required(VERSION 3.0.0)
+cmake_minimum_required(VERSION 3.0.0...3.5)
 project(sdl12_compat
-        VERSION 1.2.64
+        VERSION 1.2.68
         LANGUAGES C)
 
 option(SDL12TESTS "Enable to build SDL-1.2 test programs" ON)
@@ -16,7 +16,7 @@
 endif()
 
 list(APPEND CMAKE_MODULE_PATH
-    "${CMAKE_CURRENT_LIST_DIR}/cmake/modules"
+  "${CMAKE_CURRENT_LIST_DIR}/cmake/modules"
 )
 
 include(CheckCSourceCompiles)
@@ -33,7 +33,7 @@
   # Xcode project file uses 1.0.0, but it's more compatible to use the
   # higher version.
   set(DYLIB_COMPAT_VERSION 12.0.0 CACHE STRING "library compatibility version")
-  set(DYLIB_CURRENT_VERSION 12.64.0 CACHE STRING "library current version")
+  set(DYLIB_CURRENT_VERSION 12.68.0 CACHE STRING "library current version")
   include_directories("/opt/X11/include")  # hack.
   if(CMAKE_VERSION VERSION_LESS 3.9)
   else()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-release-1.2.64/include/SDL/SDL_config.h 
new/sdl12-compat-release-1.2.68/include/SDL/SDL_config.h
--- old/sdl12-compat-release-1.2.64/include/SDL/SDL_config.h    2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/include/SDL/SDL_config.h    2023-09-26 
19:43:48.000000000 +0200
@@ -54,6 +54,8 @@
 #include <stdarg.h>
 #define HAVE_STDARG_H 1
 
+#define HAVE_STDDEF_H 1
+
 /* for now, let's try and say everything that we care about that isn't Windows
 has these C runtime functions available. We're trying to avoid a configure
 stage, though. Send patches if your platform lacks something. */
@@ -127,9 +129,13 @@
 #endif
 #endif
 
+#if defined(__GLIBC__)
+/* glibc certainly includes this, send patches if your OS does too */
+#define HAVE_MALLOC_H 1
+#endif
+
 /* things that aren't necessarily in Linux, some are MSVC C runtime, some are 
BSD. Send patches. */
 #if 0
-#define HAVE_MALLOC_H 1
 #define HAVE_BCOPY 1
 #define HAVE_ATOI 1
 #define HAVE_ATOF 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sdl12-compat-release-1.2.64/include/SDL/SDL_platform.h 
new/sdl12-compat-release-1.2.68/include/SDL/SDL_platform.h
--- old/sdl12-compat-release-1.2.64/include/SDL/SDL_platform.h  2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/include/SDL/SDL_platform.h  2023-09-26 
19:43:48.000000000 +0200
@@ -70,8 +70,29 @@
 
 #if defined(__APPLE__)
 /* lets us know what version of Mac OS X we're compiling on */
-#include "AvailabilityMacros.h"
-#include "TargetConditionals.h"
+#include <AvailabilityMacros.h>
+#include <TargetConditionals.h>
+
+/* Fix building with older SDKs that don't define these
+   See this for more information:
+   
https://stackoverflow.com/questions/12132933/preprocessor-macro-for-os-x-targets
+*/
+#ifndef TARGET_OS_MACCATALYST
+#define TARGET_OS_MACCATALYST 0
+#endif
+#ifndef TARGET_OS_IOS
+#define TARGET_OS_IOS 0
+#endif
+#ifndef TARGET_OS_IPHONE
+#define TARGET_OS_IPHONE 0
+#endif
+#ifndef TARGET_OS_TV
+#define TARGET_OS_TV 0
+#endif
+#ifndef TARGET_OS_SIMULATOR
+#define TARGET_OS_SIMULATOR 0
+#endif
+
 #if TARGET_OS_TV
 #undef __TVOS__
 #define __TVOS__ 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sdl12-compat-release-1.2.64/include/SDL/SDL_version.h 
new/sdl12-compat-release-1.2.68/include/SDL/SDL_version.h
--- old/sdl12-compat-release-1.2.64/include/SDL/SDL_version.h   2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/include/SDL/SDL_version.h   2023-09-26 
19:43:48.000000000 +0200
@@ -33,7 +33,7 @@
 /* We bumped the patchlevel to 50 for sdl12-compat */
 #define SDL_MAJOR_VERSION 1
 #define SDL_MINOR_VERSION 2
-#define SDL_PATCHLEVEL 64
+#define SDL_PATCHLEVEL 68
 
 typedef struct SDL_version
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-release-1.2.64/include/SDL/SDL_video.h 
new/sdl12-compat-release-1.2.68/include/SDL/SDL_video.h
--- old/sdl12-compat-release-1.2.64/include/SDL/SDL_video.h     2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/include/SDL/SDL_video.h     2023-09-26 
19:43:48.000000000 +0200
@@ -89,7 +89,7 @@
     Uint16 pitch;
     void *pixels;
     int offset;
-    void *hwdata;
+    struct private_hwdata *hwdata;
     SDL_Rect clip_rect;
     Uint32 unused1;
     Uint32 locked;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-release-1.2.64/src/Makefile.darwin 
new/sdl12-compat-release-1.2.68/src/Makefile.darwin
--- old/sdl12-compat-release-1.2.64/src/Makefile.darwin 2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/src/Makefile.darwin 2023-09-26 
19:43:48.000000000 +0200
@@ -18,7 +18,7 @@
 LDFLAGS = -mmacosx-version-min=10.6 -dynamiclib -Wl,-undefined,error 
-Wl,-single_module
 #LDFLAGS+= -Wl,-headerpad_max_install_names
 LDFLAGS+= -Wl,-install_name,"/usr/local/lib/$(DYLIB)"
-LDFLAGS+= -Wl,-compatibility_version,1.0 -Wl,-current_version,12.64
+LDFLAGS+= -Wl,-compatibility_version,1.0 -Wl,-current_version,12.68
 LDLIBS  = -Wl,-framework,AppKit
 # this is needed for x86_64 - cross-gcc might not add it.
 #LDLIBS += -Wl,-lbundle1.o
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-release-1.2.64/src/Makefile.linux 
new/sdl12-compat-release-1.2.68/src/Makefile.linux
--- old/sdl12-compat-release-1.2.64/src/Makefile.linux  2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/src/Makefile.linux  2023-09-26 
19:43:48.000000000 +0200
@@ -16,7 +16,7 @@
 LDFLAGS+= -Wl,--no-undefined
 LDLIBS  = -ldl
 
-SHLIB = libSDL-1.2.so.1.2.64
+SHLIB = libSDL-1.2.so.1.2.68
 
 OBJ = SDL12_compat.o
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-release-1.2.64/src/Makefile.os2 
new/sdl12-compat-release-1.2.68/src/Makefile.os2
--- old/sdl12-compat-release-1.2.64/src/Makefile.os2    2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/src/Makefile.os2    2023-09-26 
19:43:48.000000000 +0200
@@ -5,7 +5,7 @@
 !endif
 
 DLLNAME = SDL12
-VERSION = 1.2.64
+VERSION = 1.2.68
 
 # change SDL2INC to point to the SDL2 headers
 SDL2INC = include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-release-1.2.64/src/Makefile.w32 
new/sdl12-compat-release-1.2.68/src/Makefile.w32
--- old/sdl12-compat-release-1.2.64/src/Makefile.w32    2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/src/Makefile.w32    2023-09-26 
19:43:48.000000000 +0200
@@ -5,7 +5,7 @@
 !endif
 
 DLLNAME = SDL
-VERSION = 1.2.64
+VERSION = 1.2.68
 
 # change SDL2INC to point to the SDL2 headers
 SDL2INC = include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-release-1.2.64/src/SDL12_compat.c 
new/sdl12-compat-release-1.2.68/src/SDL12_compat.c
--- old/sdl12-compat-release-1.2.64/src/SDL12_compat.c  2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/src/SDL12_compat.c  2023-09-26 
19:43:48.000000000 +0200
@@ -28,7 +28,7 @@
  * should be way ahead of what SDL-1.2 Classic would report, so apps can
  * decide if they're running under the compat layer, if they really care.
  */
-#define SDL12_COMPAT_VERSION 64
+#define SDL12_COMPAT_VERSION 68
 
 #include <stdarg.h>
 #include <limits.h>
@@ -980,6 +980,7 @@
 static SDL_Renderer *VideoRenderer20 = NULL;
 static SDL_mutex *VideoRendererLock = NULL;
 static SDL_Texture *VideoTexture20 = NULL;
+static SDL12_Surface VideoSurface12Location;
 static SDL12_Surface *VideoSurface12 = NULL;
 static SDL_Palette *VideoPhysicalPalette20 = NULL;
 static Uint32 VideoSurfacePresentTicks = 0;
@@ -1273,6 +1274,14 @@
     {"fillets", "SDL12COMPAT_ALLOW_SYSWM", "0"},
     {"fillets", "SDL12COMPAT_COMPATIBILITY_AUDIOCVT", "1"},
 
+    /* Hyperspace Delivery Boy relies on the exact imprecision of the format 
conversion in some 
+       earlier versions of SDL 1.2. It also recommends 16-bit in the README, 
so force it. */
+    {"hdb", "SDL12COMPAT_MAX_BPP", "16"},
+
+    /* Mark of the Ninja doesn't work with OpenGL scaling */
+    {"ninja-bin32", "SDL12COMPAT_OPENGL_SCALING", "0"},
+    {"ninja-bin64", "SDL12COMPAT_OPENGL_SCALING", "0"},
+
     /* Misuses SDL_AudioCVT */
     {"pink-pony", "SDL12COMPAT_COMPATIBILITY_AUDIOCVT", "1"},
     {"pink-pony.bin", "SDL12COMPAT_COMPATIBILITY_AUDIOCVT", "1"},
@@ -1281,6 +1290,16 @@
     {"scorched3d", "SDL12COMPAT_OPENGL_SCALING", "0"},
     {"scorched3dc", "SDL12COMPAT_OPENGL_SCALING", "0"},
 
+    /* Trine (the old Humble Bundle version from 2011) doesn't render in-game 
with GL scaling enabled. */
+    {"trine-bin32", "SDL12COMPAT_OPENGL_SCALING", "0"},
+    {"trine-bin64", "SDL12COMPAT_OPENGL_SCALING", "0"},
+
+    /* Trine (the old Humble Bundle version from 2011)'s launcher needs X11, 
and needs XInitThreads _before_ GTK+ gets in there. */
+    {"trine-launcher32", "SDL_VIDEODRIVER", "x11"},
+    {"trine-launcher32", "SDL12COMPAT_FORCE_XINITTHREADS", "1"},
+    {"trine-launcher64", "SDL_VIDEODRIVER", "x11"},
+    {"trine-launcher64", "SDL12COMPAT_FORCE_XINITTHREADS", "1"},
+
     /* boswars has a bug where SDL_AudioCVT must not require extra buffer 
space. See Issue #232. */
     {"boswars", "SDL12COMPAT_COMPATIBILITY_AUDIOCVT", "1"},
 
@@ -1381,6 +1400,18 @@
     return (float) SDL20_atof(val);
 }
 
+static int
+SDL12Compat_GetHintInt(const char *name, int default_value)
+{
+    const char *val = SDL12Compat_GetHint(name);
+
+    if (!val) {
+        return default_value;
+    }
+
+    return SDL20_atoi(val);
+}
+
 static void
 SDL12Compat_ApplyQuirks(SDL_bool force_x11)
 {
@@ -1483,6 +1514,22 @@
                         #endif
                     }
                     SDL12Compat_ApplyQuirks(force_x11);  /* Apply and maybe 
print a list of any enabled quirks. */
+
+                    #ifdef __linux__
+                    {
+                        const char *viddrv = SDL20_getenv("SDL_VIDEODRIVER");
+                        if (viddrv && (SDL20_strcmp(viddrv, "x11") == 0) && 
SDL12Compat_GetHintBoolean("SDL12COMPAT_FORCE_XINITTHREADS", SDL_TRUE)) {
+                            void *lib = dlopen("libX11.so.6", 
RTLD_GLOBAL|RTLD_NOW);
+                            if (lib) {
+                                int (*pXInitThreads)(void) = (int(*)(void)) 
dlsym(lib, "XInitThreads");
+                                if (pXInitThreads) {
+                                    pXInitThreads();
+                                }
+                                /* leave the library open, so the XInitThreads 
sticks. */
+                            }
+                        }
+                    }
+                    #endif
                 }
             }
             if (!okay) {
@@ -1998,6 +2045,21 @@
     return SDL20_AtomicGet(&JoystickList[device_index].refcount) ? 1 : 0;
 }
 
+static SDL_PixelFormatEnum
+BPPToPixelFormat(unsigned bpp)
+{
+    #if !SDL_VERSION_ATLEAST(2,0,14)
+    #define SDL_PIXELFORMAT_XRGB8888 SDL_PIXELFORMAT_RGB888
+    #endif
+    switch (bpp) {
+        case  8: return SDL_PIXELFORMAT_INDEX8;
+        case 16: return SDL_PIXELFORMAT_RGB565;
+        case 24: return SDL_PIXELFORMAT_BGR24;
+        case 32: return SDL_PIXELFORMAT_XRGB8888;
+        default: SDL20_SetError("Unsupported bits-per-pixel"); return 
SDL_PIXELFORMAT_UNKNOWN;
+    }
+}
+
 static SDL_PixelFormat *
 PixelFormat12to20(SDL_PixelFormat *format20, SDL_Palette *palette20, const 
SDL12_PixelFormat *format12)
 {
@@ -2136,8 +2198,7 @@
     }
     vmode->modeslist12 = (SDL12_Rect *) ptr;
 
-    vmode->modeslist12[vmode->nummodes] = *mode;
-
+    SDL20_memcpy(&vmode->modeslist12[vmode->nummodes], mode, 
sizeof(vmode->modeslist12[vmode->nummodes]));
     vmode->nummodes++;
 
     return 0;
@@ -2183,6 +2244,7 @@
 {
     const int total = SDL20_GetNumDisplayModes(VideoDisplayIndex);
     const char *maxmodestr;
+    const unsigned max_bpp = SDL12Compat_GetHintInt("SDL12COMPAT_MAX_BPP", 32);
     VideoModeList *vmode = NULL;
     void *ptr = NULL;
     int i, j;
@@ -2235,6 +2297,11 @@
             continue;  /* can't fit to 16-bits for SDL12_Rect */
         }
 
+        if (SDL_BITSPERPIXEL(mode.format) > max_bpp) {
+            /* If we see any mode > max_bpp, reduce its bpp. */
+            mode.format = BPPToPixelFormat(max_bpp);
+        }
+
         if (!vmode || (mode.format != vmode->format)) {  /* 
SDL20_GetDisplayMode() sorts on bpp first. We know when to change arrays. */
             ptr = (VideoModeList *) SDL20_realloc(VideoModes, sizeof 
(VideoModeList) * (VideoModesCount+1));
             if (!ptr) {
@@ -2346,6 +2413,7 @@
 {
     const char *driver = SDL20_GetCurrentVideoDriver();
     const char *scale_method_env = 
SDL12Compat_GetHint("SDL12COMPAT_SCALE_METHOD");
+    const unsigned max_bpp = SDL12Compat_GetHintInt("SDL12COMPAT_MAX_BPP", 32);
     SDL_DisplayMode mode;
     int i;
 
@@ -2410,7 +2478,11 @@
     SDL20_StopTextInput();
 
     if (SDL20_GetDesktopDisplayMode(VideoDisplayIndex, &mode) == 0) {
-        VideoInfoVfmt20 = SDL20_AllocFormat(mode.format);
+        if (SDL_BITSPERPIXEL(mode.format) > max_bpp) {
+            VideoInfoVfmt20 = SDL20_AllocFormat(BPPToPixelFormat(max_bpp));
+        } else {
+            VideoInfoVfmt20 = SDL20_AllocFormat(mode.format);
+        }
         VideoInfo12.vfmt = PixelFormat20to12(&VideoInfoVfmt12, 
&VideoInfoPalette12, VideoInfoVfmt20);
         VideoInfo12.current_w = mode.w;
         VideoInfo12.current_h = mode.h;
@@ -2591,6 +2663,19 @@
     return InitFlags20to12(SDL20_WasInit(sdl20flags)) | extraflags;
 }
 
+static void
+FreeSurfaceContents(SDL12_Surface *surface12)
+{
+    if (surface12->surface20) {
+        SDL20_FreeSurface(surface12->surface20);
+        surface12->surface20 = NULL;
+    }
+    if (surface12->format) {
+        SDL20_free(surface12->format->palette);
+        SDL20_free(surface12->format);
+        surface12->format = NULL;
+    }
+}
 
 static SDL12_Surface *EndVidModeCreate(void);
 static void
@@ -4676,7 +4761,7 @@
         }
 
         case SDL_MOUSEMOTION:
-            if (!VideoSurface12) {
+            if (!VideoSurface12 || !VideoSurface12->surface20) {
                 return 1;  /* we don't have a screen surface yet? Don't send 
this on to the app. */
             }
 
@@ -4912,26 +4997,21 @@
     return rect20;
 }
 
-static SDL12_Surface *
-Surface20to12(SDL_Surface *surface20)
+static SDL_bool
+Surface20to12InPlace(SDL_Surface *surface20,
+                     SDL12_Surface *surface12)
 {
     SDL_BlendMode blendmode = SDL_BLENDMODE_NONE;
-    SDL12_Surface *surface12 = NULL;
     SDL12_Palette *palette12 = NULL;
     SDL12_PixelFormat *format12 = NULL;
     Uint32 flags = 0;
 
     if (!surface20) {
-        return NULL;
+        return SDL_FALSE;
     }
     if (surface20->pitch > 65535) {
         SDL20_SetError("Pitch is too large");  /* can't fit to 16-bits */
-        return NULL;
-    }
-
-    surface12 = (SDL12_Surface *) SDL20_malloc(sizeof (SDL12_Surface));
-    if (!surface12) {
-        goto failed;
+        return SDL_FALSE;
     }
 
     if (surface20->format->palette) {
@@ -5004,12 +5084,33 @@
     Rect20to12(&surface20->clip_rect, &surface12->clip_rect);
     surface12->refcount = surface20->refcount;
 
-    return surface12;
+    return SDL_TRUE;
 
 failed:
-    SDL20_free(surface12);
     SDL20_free(palette12);
     SDL20_free(format12);
+    return SDL_FALSE;
+}
+
+static SDL12_Surface *
+Surface20to12(SDL_Surface *surface20)
+{
+    SDL12_Surface *surface12 = NULL;
+
+    surface12 = (SDL12_Surface *) SDL20_malloc(sizeof (SDL12_Surface));
+    if (!surface12) {
+        goto failed;
+    }
+
+    SDL20_zerop(surface12);
+    if (!Surface20to12InPlace(surface20, surface12)) {
+        goto failed;
+    }
+
+    return surface12;
+
+failed:
+    SDL20_free(surface12);
     return NULL;
 }
 
@@ -5077,11 +5178,10 @@
     }
 }
 
-DECLSPEC12 SDL12_Surface * SDLCALL
-SDL_CreateRGBSurface(Uint32 flags12, int width, int height, int depth, Uint32 
Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)
+static SDL_Surface *
+CreateRGBSurface(Uint32 flags12, int width, int height, int depth, Uint32 
Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)
 {
     SDL_Surface *surface20;
-    SDL12_Surface *surface12;
 
     /* SDL 1.2 checks this. */
     if ((width >= 16384) || (height >= 65536)) {
@@ -5127,21 +5227,38 @@
         surface20 = SDL20_CreateRGBSurface(0, width, height, depth, Rmask, 
Gmask, Bmask, Amask);
     }
 
-    surface12 = Surface20to12(surface20);
-    if (!surface12) {
-        SDL20_FreeSurface(surface20);
-        return NULL;
-    }
-
-    SDL_assert((surface12->flags & ~(SDL12_SRCCOLORKEY|SDL12_SRCALPHA)) == 0); 
 /* shouldn't have prealloc, rleaccel, or dontfree. */
+    return surface20;
+}
 
+static void
+Surface12SetMasks(SDL12_Surface *surface12, Uint32 Rmask, Uint32 Gmask, Uint32 
Bmask, Uint32 Amask)
+{
     SetPalette12ForMasks(surface12, Rmask, Gmask, Bmask);
 
     if (Amask != 0) {
         surface12->flags |= SDL12_SRCALPHA;
-        SDL20_SetSurfaceBlendMode(surface20, SDL_BLENDMODE_BLEND);
+        SDL20_SetSurfaceBlendMode(surface12->surface20, SDL_BLENDMODE_BLEND);
+    }
+}
+
+DECLSPEC12 SDL12_Surface * SDLCALL
+SDL_CreateRGBSurface(Uint32 flags12, int width, int height, int depth, Uint32 
Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)
+{
+    SDL12_Surface *surface12;
+    SDL_Surface *surface20;
+
+    surface20 = CreateRGBSurface(flags12, width, height, depth, Rmask, Gmask, 
Bmask, Amask);
+    if (!surface20) {
+        return NULL;
+    }
+    surface12 = Surface20to12(surface20);
+    if (!surface12) {
+        SDL20_FreeSurface(surface20);
+        return NULL;
     }
 
+    SDL_assert((surface12->flags & ~(SDL12_SRCCOLORKEY|SDL12_SRCALPHA)) == 0); 
 /* shouldn't have prealloc, rleaccel, or dontfree. */
+    Surface12SetMasks(surface12, Rmask, Gmask, Bmask, Amask);
     return surface12;
 }
 
@@ -5170,6 +5287,8 @@
 
     SDL_assert((surface12->flags & ~(SDL12_SRCCOLORKEY|SDL12_SRCALPHA)) == 
SDL12_PREALLOC);  /* should _only_ have prealloc. */
 
+    /* TODO: Is it correct that this always ignored Amask, or should it be
+     * using Surface12SetMasks which takes Amask into account? */
     SetPalette12ForMasks(surface12, Rmask, Gmask, Bmask);
 
     return surface12;
@@ -5182,11 +5301,7 @@
         surface12->refcount--;
         if (surface12->refcount)
             return;
-        SDL20_FreeSurface(surface12->surface20);
-        if (surface12->format) {
-            SDL20_free(surface12->format->palette);
-            SDL20_free(surface12->format);
-        }
+        FreeSurfaceContents(surface12);
         SDL20_free(surface12);
     }
 }
@@ -5501,11 +5616,9 @@
         VideoPhysicalPalette20 = NULL;
     }
     if (VideoSurface12) {
-        SDL12_Surface *screen12 = VideoSurface12;
         SDL20_free(VideoSurface12->pixels);
         VideoSurface12->pixels = NULL;
-        VideoSurface12 = NULL;  /* SDL_FreeSurface will ignore the screen 
surface, so NULL the global variable out. */
-        SDL_FreeSurface(screen12);
+        FreeSurfaceContents(VideoSurface12);
     }
     if (VideoConvertSurface20) {
         SDL20_FreeSurface(VideoConvertSurface20);
@@ -5539,16 +5652,27 @@
     return NULL;
 }
 
-
-static SDL12_Surface *
-CreateSurface12WithFormat(const int w, const int h, const Uint32 fmt)
+/* Essentially the same as SDL_CreateRGBSurface, but in-place */
+static void
+CreateVideoSurface(const Uint32 fmt)
 {
     Uint32 rmask, gmask, bmask, amask;
     int bpp;
+    SDL_Surface *surface20;
+
     if (!SDL20_PixelFormatEnumToMasks(fmt, &bpp, &rmask, &gmask, &bmask, 
&amask)) {
-        return NULL;
+        return;
+    }
+
+    SDL20_zerop(VideoSurface12);
+    surface20 = CreateRGBSurface(0, 0, 0, bpp, rmask, gmask, bmask, amask);
+
+    if (!Surface20to12InPlace(surface20, VideoSurface12)) {
+        FreeSurfaceContents(VideoSurface12);
+        return;
     }
-    return SDL_CreateRGBSurface(0, w, h, bpp, rmask, gmask, bmask, amask);
+
+    Surface12SetMasks(VideoSurface12, rmask, gmask, bmask, amask);
 }
 
 static SDL_Surface *
@@ -5878,6 +6002,7 @@
     Uint32 appfmt;
     const char *vsync_env = SDL12Compat_GetHint("SDL12COMPAT_SYNC_TO_VBLANK");
     float window_size_scaling = 
SDL12Compat_GetHintFloat("SDL12COMPAT_WINDOW_SCALING", 1.0f);
+    int max_bpp = SDL12Compat_GetHintInt("SDL12COMPAT_MAX_BPP", 32);
     SDL_bool use_gl_scaling = SDL_FALSE;
     SDL_bool use_highdpi = SDL_TRUE;
     SDL_bool fix_bordless_fs_win = SDL_TRUE;
@@ -5885,6 +6010,8 @@
     int scaled_height = height;
     const char *fromwin_env = NULL;
 
+    VideoSurface12 = &VideoSurface12Location;
+
     if (flags12 & SDL12_OPENGL) {
         /* For now we default GL scaling to ENABLED. If an app breaks or is 
linked directly
            to glBindFramebuffer, they'll need to turn it off with this 
environment variable.
@@ -5951,34 +6078,25 @@
            formats, give them 16-bit and we'll convert later. Nothing in SDL 
1.2 will
            handle > 32 bits, so clamp there, too. AND ALSO, most apps will 
handle 32-bits
            but not 24, so force around that...so basically, you can have 16 or 
32 bit. */
-        bpp = (bpp <= 16) ? 16 : 32;
+        bpp = (bpp <= 16) ? 16 : max_bpp;
     }
 
     if ((bpp != 8) && (bpp != 16) && (bpp != 24) && (bpp != 32)) {
         if (flags12 & SDL12_ANYFORMAT) {
-            bpp = 32;
+            bpp = max_bpp;
         } else {
             SDL20_SetError("Unsupported bits-per-pixel");
             return NULL;
         }
     }
 
-    #if !SDL_VERSION_ATLEAST(2,0,14)
-    #define SDL_PIXELFORMAT_XRGB8888 SDL_PIXELFORMAT_RGB888
-    #endif
-    switch (bpp) {
-        case  8: appfmt = SDL_PIXELFORMAT_INDEX8; break;
-        case 16: appfmt = SDL_PIXELFORMAT_RGB565; break;
-        case 24: appfmt = SDL_PIXELFORMAT_BGR24; break;
-        case 32: appfmt = SDL_PIXELFORMAT_XRGB8888; break;
-        default: SDL20_SetError("Unsupported bits-per-pixel"); return NULL;
-    }
+    appfmt = BPPToPixelFormat(bpp);
 
-    SDL_assert((VideoSurface12 != NULL) == (VideoWindow20 != NULL));
+    SDL_assert((VideoSurface12->surface20 != NULL) == (VideoWindow20 != NULL));
 
-    if (VideoSurface12 && ((VideoSurface12->flags & SDL12_OPENGL) != (flags12 
& SDL12_OPENGL))) {
+    if (VideoSurface12->surface20 && ((VideoSurface12->flags & SDL12_OPENGL) 
!= (flags12 & SDL12_OPENGL))) {
         EndVidModeCreate();  /* rebuild the window if moving to/from a GL 
context */
-    } else if (VideoSurface12 && (VideoSurface12->surface20->format->format != 
appfmt)) {
+    } else if (VideoSurface12->surface20 && 
(VideoSurface12->surface20->format->format != appfmt)) {
         EndVidModeCreate();  /* rebuild the window if changing pixel format */
     } else if (VideoGLContext20) {
         /* SDL 1.2 (infuriatingly!) destroys the GL context on each resize in 
some cases, on various platforms. Try to match that. */
@@ -6120,11 +6238,11 @@
         SDL20_SetWindowResizable(VideoWindow20, (flags12 & SDL12_RESIZABLE) ? 
SDL_TRUE : SDL_FALSE);
     }
 
-    if (VideoSurface12) {
+    if (VideoSurface12->surface20) {
         SDL20_free(VideoSurface12->pixels);
     } else {
-        VideoSurface12 = CreateSurface12WithFormat(0, 0, appfmt);
-        if (!VideoSurface12) {
+        CreateVideoSurface(appfmt);
+        if (!VideoSurface12->surface20) {
             return EndVidModeCreate();
         }
     }
@@ -6640,7 +6758,7 @@
 SDL_DisplayFormat(SDL12_Surface *surface12)
 {
     const Uint32 flags = surface12->flags & 
(SDL12_SRCCOLORKEY|SDL12_SRCALPHA|SDL12_RLEACCELOK);
-    if (!VideoSurface12) {
+    if (!VideoSurface12 || !VideoSurface12->surface20) {
         SDL20_SetError("No video mode has been set");
         return NULL;
     }
@@ -6656,7 +6774,7 @@
     SDL_PixelFormat *fmt20 = NULL;
     SDL12_PixelFormat fmt12;
 
-    if (!VideoSurface12) {
+    if (!VideoSurface12 || !VideoSurface12->surface20) {
         SDL20_SetError("No video mode has been set");
         return NULL;
     }
@@ -7210,12 +7328,6 @@
         const SDL_bool enable = (VideoWindowGrabbed && VideoCursorHidden) ? 
SDL_TRUE : SDL_FALSE;
         if (MouseInputIsRelative != enable) {
             MouseInputIsRelative = enable;
-            if (MouseInputIsRelative) {
-                /* reset position, we'll have to track it ourselves in 
SDL_MOUSEMOTION events, since 1.2
-                 * would give you window coordinates, even in relative mode. */
-                SDL20_GetMouseState(&MousePosition.x, &MousePosition.y);
-                AdjustOpenGLLogicalScalingPoint(&MousePosition.x, 
&MousePosition.y);
-            }
             SDL20_SetRelativeMouseMode(MouseInputIsRelative);
         }
     }
@@ -7241,7 +7353,7 @@
 HandleInputGrab(SDL12_GrabMode mode)
 {
     /* SDL 1.2 always grabbed input if the video mode was fullscreen. */
-    const SDL_bool isfullscreen = (VideoSurface12 && (VideoSurface12->flags & 
SDL12_FULLSCREEN)) ? SDL_TRUE : SDL_FALSE;
+    const SDL_bool isfullscreen = (VideoSurface12 && VideoSurface12->surface20 
&& (VideoSurface12->flags & SDL12_FULLSCREEN)) ? SDL_TRUE : SDL_FALSE;
     const SDL_bool wantgrab = (isfullscreen || (mode == SDL12_GRAB_ON)) ? 
SDL_TRUE : SDL_FALSE;
     if (VideoWindowGrabbed != wantgrab) {
         if (VideoWindow20) {
@@ -7321,7 +7433,8 @@
     /* we need to force the "unused" field to 255, since it's "alpha" in SDL2. 
*/
     opaquecolors = (SDL_Color *) SDL20_malloc(sizeof (SDL_Color) * ncolors);
     if (!opaquecolors) {
-        return SDL20_OutOfMemory();
+        SDL20_OutOfMemory();
+        return 0;
     }
 
     /* don't SDL_memcpy in case the 'a' field is uninitialized and upsets
@@ -7333,17 +7446,17 @@
         opaquecolors[i].a = 255;
     }
 
-    retval = 0;
+    retval = 1;  /* "The return value is 1 if all colours could be set as 
requested, and 0 otherwise." */
 
     if (flags & SDL12_LOGPAL) {
         if (SDL20_SetPaletteColors(palette20, opaquecolors, firstcolor, 
ncolors) < 0) {
-            retval = -1;
+            retval = 0;
         }
     }
 
     if ((flags & SDL12_PHYSPAL) && (surface12 == VideoSurface12) && 
VideoPhysicalPalette20) {
         if (SDL20_SetPaletteColors(VideoPhysicalPalette20, opaquecolors, 
firstcolor, ncolors) < 0) {
-            retval = -1;
+            retval = 0;
         }
     }
 
@@ -8455,6 +8568,10 @@
 
     *buf = NULL;
 
+    if (!rwops20) {
+        return NULL;
+    }
+
     /* SDL2's LoadWAV requires a seekable stream, but SDL 1.2 didn't,
        so if the stream appears unseekable, try to load it into a
        memory rwops that we _can_ seek in */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sdl12-compat-release-1.2.64/src/SDL20_include_wrapper.h 
new/sdl12-compat-release-1.2.68/src/SDL20_include_wrapper.h
--- old/sdl12-compat-release-1.2.64/src/SDL20_include_wrapper.h 2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/src/SDL20_include_wrapper.h 2023-09-26 
19:43:48.000000000 +0200
@@ -895,10 +895,14 @@
 #define SDL_ResetHints IGNORE_THIS_VERSION_OF_SDL_ResetHints
 #define SDL_strcasestr IGNORE_THIS_VERSION_OF_SDL_strcasestr
 #define SDL_GDKSuspendComplete IGNORE_THIS_VERSION_OF_SDL_GDKSuspendComplete
+#define SDL_HasWindowSurface IGNORE_THIS_VERSION_OF_SDL_HasWindowSurface
+#define SDL_DestroyWindowSurface 
IGNORE_THIS_VERSION_OF_SDL_DestroyWindowSurface
+#define SDL_GDKGetDefaultUser IGNORE_THIS_VERSION_OF_SDL_GDKGetDefaultUser
 
+
+#if defined(_WIN32) || defined(__OS2__)
 /* *** HACK HACK HACK:
  * *** Avoid including SDL_thread.h: it defines SDL_CreateThread() as a macro 
*/
-#if defined(_WIN32) || defined(__OS2__)
 #define _SDL_thread_h
 #define SDL_thread_h_
 #define SDL_PASSED_BEGINTHREAD_ENDTHREAD
@@ -937,6 +941,7 @@
 #undef CreateMutex
 #endif /* _WIN32 */
 
+
 #ifdef SDL_BlitSurface
 #undef SDL_BlitSurface
 #endif
@@ -4417,6 +4422,18 @@
 #undef SDL_GDKSuspendComplete
 #endif
 
+#ifdef SDL_HasWindowSurface
+#undef SDL_HasWindowSurface
+#endif
+
+#ifdef SDL_DestroyWindowSurface
+#undef SDL_DestroyWindowSurface
+#endif
+
+#ifdef SDL_GDKGetDefaultUser
+#undef SDL_GDKGetDefaultUser
+#endif
+
 /* undefine these macros too: */
 /* redefine using SDL2_xxx, if needed. */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-release-1.2.64/src/dr_mp3.h 
new/sdl12-compat-release-1.2.68/src/dr_mp3.h
--- old/sdl12-compat-release-1.2.64/src/dr_mp3.h        2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/src/dr_mp3.h        2023-09-26 
19:43:48.000000000 +0200
@@ -1,6 +1,6 @@
 /*
 MP3 audio decoder. Choice of public domain or MIT-0. See license statements at 
the end of this file.
-dr_mp3 - v0.6.34 - 2022-09-17
+dr_mp3 - v0.6.36 - 2023-06-17
 
 David Reid - mack...@gmail.com
 
@@ -101,12 +101,12 @@
 
 #define DRMP3_VERSION_MAJOR     0
 #define DRMP3_VERSION_MINOR     6
-#define DRMP3_VERSION_REVISION  34
+#define DRMP3_VERSION_REVISION  36
 #define DRMP3_VERSION_STRING    DRMP3_XSTRINGIFY(DRMP3_VERSION_MAJOR) "." 
DRMP3_XSTRINGIFY(DRMP3_VERSION_MINOR) "." 
DRMP3_XSTRINGIFY(DRMP3_VERSION_REVISION)
 
 #include <stddef.h> /* For size_t. */
 
-/* Sized types. */
+/* Sized Types */
 typedef   signed char           drmp3_int8;
 typedef unsigned char           drmp3_uint8;
 typedef   signed short          drmp3_int16;
@@ -139,7 +139,9 @@
 typedef drmp3_uint32            drmp3_bool32;
 #define DRMP3_TRUE              1
 #define DRMP3_FALSE             0
+/* End Sized Types */
 
+/* Decorations */
 #if !defined(DRMP3_API)
     #if defined(DRMP3_DLL)
         #if defined(_WIN32)
@@ -169,7 +171,9 @@
         #define DRMP3_PRIVATE static
     #endif
 #endif
+/* End Decorations */
 
+/* Result Codes */
 typedef drmp3_int32 drmp3_result;
 #define DRMP3_SUCCESS                        0
 #define DRMP3_ERROR                         -1   /* A generic error. */
@@ -225,11 +229,12 @@
 #define DRMP3_CANCELLED                     -51
 #define DRMP3_MEMORY_ALREADY_MAPPED         -52
 #define DRMP3_AT_END                        -53
-
+/* End Result Codes */
 
 #define DRMP3_MAX_PCM_FRAMES_PER_MP3_FRAME  1152
 #define DRMP3_MAX_SAMPLES_PER_FRAME         
(DRMP3_MAX_PCM_FRAMES_PER_MP3_FRAME*2)
 
+/* Inline */
 #ifdef _MSC_VER
     #define DRMP3_INLINE __forceinline
 #elif defined(__GNUC__)
@@ -256,12 +261,24 @@
 #else
     #define DRMP3_INLINE
 #endif
+/* End Inline */
 
 
 DRMP3_API void drmp3_version(drmp3_uint32* pMajor, drmp3_uint32* pMinor, 
drmp3_uint32* pRevision);
 DRMP3_API const char* drmp3_version_string(void);
 
 
+/* Allocation Callbacks */
+typedef struct
+{
+    void* pUserData;
+    void* (* onMalloc)(size_t sz, void* pUserData);
+    void* (* onRealloc)(void* p, size_t sz, void* pUserData);
+    void  (* onFree)(void* p, void* pUserData);
+} drmp3_allocation_callbacks;
+/* End Allocation Callbacks */
+
+
 /*
 Low Level Push API
 ==================
@@ -338,14 +355,6 @@
 
 typedef struct
 {
-    void* pUserData;
-    void* (* onMalloc)(size_t sz, void* pUserData);
-    void* (* onRealloc)(void* p, size_t sz, void* pUserData);
-    void  (* onFree)(void* p, void* pUserData);
-} drmp3_allocation_callbacks;
-
-typedef struct
-{
     drmp3_uint32 channels;
     drmp3_uint32 sampleRate;
 } drmp3_config;
@@ -2433,6 +2442,7 @@
  Main Public API
 
  
************************************************************************************************************************************************************/
+/* SIZE_MAX */
 #if defined(SIZE_MAX)
     #define DRMP3_SIZE_MAX  SIZE_MAX
 #else
@@ -2442,6 +2452,7 @@
         #define DRMP3_SIZE_MAX  0xFFFFFFFF
     #endif
 #endif
+/* End SIZE_MAX */
 
 /* Options. */
 #ifndef DRMP3_SEEK_LEADING_MP3_FRAMES
@@ -2949,6 +2960,7 @@
 #include <stdio.h>
 #include <wchar.h>      /* For wcslen(), wcsrtombs() */
 
+/* Errno */
 /* drmp3_result_from_errno() is only used inside DR_MP3_NO_STDIO for now. Move 
this out if it's ever used elsewhere. */
 #include <errno.h>
 static drmp3_result drmp3_result_from_errno(int e)
@@ -3352,7 +3364,9 @@
         default: return DRMP3_ERROR;
     }
 }
+/* End Errno */
 
+/* fopen */
 static drmp3_result drmp3_fopen(FILE** ppFile, const char* pFilePath, const 
char* pOpenMode)
 {
 #if defined(_MSC_VER) && _MSC_VER >= 1400
@@ -3508,7 +3522,7 @@
 
     return DRMP3_SUCCESS;
 }
-
+/* End fopen */
 
 
 static size_t drmp3__on_read_stdio(void* pUserData, void* pBufferOut, size_t 
bytesToRead)
@@ -4503,6 +4517,12 @@
 /*
 REVISION HISTORY
 ================
+v0.6.36 - 2023-06-17
+  - Fix an incorrect date in revision history. No functional change.
+
+v0.6.35 - 2023-05-22
+  - Minor code restructure. No functional change.
+
 v0.6.34 - 2022-09-17
   - Fix compilation with DJGPP.
   - Fix compilation when compiling with x86 with no SSE2.
@@ -4804,7 +4824,7 @@
 ===============================================================================
 ALTERNATIVE 2 - MIT No Attribution
 ===============================================================================
-Copyright 2020 David Reid
+Copyright 2023 David Reid
 
 Permission is hereby granted, free of charge, to any person obtaining a copy of
 this software and associated documentation files (the "Software"), to deal in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-release-1.2.64/src/version.rc 
new/sdl12-compat-release-1.2.68/src/version.rc
--- old/sdl12-compat-release-1.2.64/src/version.rc      2023-05-26 
02:38:18.000000000 +0200
+++ new/sdl12-compat-release-1.2.68/src/version.rc      2023-09-26 
19:43:48.000000000 +0200
@@ -3,8 +3,8 @@
 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,2,64,0
- PRODUCTVERSION 1,2,64,0
+ FILEVERSION 1,2,68,0
+ PRODUCTVERSION 1,2,68,0
  FILEFLAGSMASK 0x3fL
  FILEFLAGS 0x0L
  FILEOS 0x40004L
@@ -17,12 +17,12 @@
         BEGIN
             VALUE "CompanyName", "\0"
             VALUE "FileDescription", "SDL\0"
-            VALUE "FileVersion", "1, 2, 64, 0\0"
+            VALUE "FileVersion", "1, 2, 68, 0\0"
             VALUE "InternalName", "SDL\0"
             VALUE "LegalCopyright", "Copyright (C) 2022 Sam Lantinga\0"
             VALUE "OriginalFilename", "SDL.dll\0"
             VALUE "ProductName", "Simple DirectMedia Layer 1.2 wrapper\0"
-            VALUE "ProductVersion", "1, 2, 64, 0\0"
+            VALUE "ProductVersion", "1, 2, 68, 0\0"
         END
     END
     BLOCK "VarFileInfo"

Reply via email to