From b8e3849ead315635a410d9808140ab8255779123 Mon Sep 17 00:00:00 2001 From: Patrick Kingston Date: Wed, 11 Mar 2026 16:18:30 +0100 Subject: [PATCH 1/4] Use fWHATEVER instead of fWHATEVER64 on macos Mac doesn't support fopen64, ftello64, or fseeko64, so use the supported version --- dependencies/minizip/ioapi.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dependencies/minizip/ioapi.c b/dependencies/minizip/ioapi.c index 49958f6..06d88c5 100644 --- a/dependencies/minizip/ioapi.c +++ b/dependencies/minizip/ioapi.c @@ -14,6 +14,12 @@ #define _CRT_SECURE_NO_WARNINGS #endif +#if defined(__APPLE__) +#define fopen64 fopen +#define ftello64 ftello +#define fseeko64 fseeko +#endif + #include "ioapi.h" voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode) From 73d2bebe02acc3a945856f730ccf63d928a131bc Mon Sep 17 00:00:00 2001 From: Patrick Kingston Date: Wed, 11 Mar 2026 16:18:30 +0100 Subject: [PATCH 2/4] Switch to rm -rf for portability --- platform/sdl2/makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/platform/sdl2/makefile b/platform/sdl2/makefile index ef262d2..d28e419 100644 --- a/platform/sdl2/makefile +++ b/platform/sdl2/makefile @@ -8,7 +8,7 @@ WINTARGET = PokeMini.exe WINRES_TRG = $(BUILD)/pokemini_rc.o WINRES_SRC = $(POKEROOT)resource/pokemini.rc -CFLAGS += -Wall `$(SDL_BASE)sdl2-config --cflags` $(INCLUDE) +CFLAGS += -Wall -g `$(SDL_BASE)sdl2-config --cflags` $(INCLUDE) SLFLAGS += `$(SDL_BASE)sdl2-config --libs` -lm -lz INCDIRS = source sourcex resource freebios dependencies/minizip @@ -120,5 +120,4 @@ win: make -f makefile.win clean: - -rm -f $(BUILDOBJS) $(TARGET) $(WINTARGET) $(WINRES_TRG) - -rmdir --ignore-fail-on-non-empty $(BUILD) + -rm -rf $(BUILDOBJS) $(TARGET) $(WINTARGET) $(WINRES_TRG) $(BUILD) From 7eb5dbc0061801c49863697278acc581e3d5c742 Mon Sep 17 00:00:00 2001 From: Patrick Kingston Date: Wed, 11 Mar 2026 17:09:55 +0100 Subject: [PATCH 3/4] Change strcpy usages to memmove for overlap safety --- source/PokeMini.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/PokeMini.c b/source/PokeMini.c index dade918..514f077 100644 --- a/source/PokeMini.c +++ b/source/PokeMini.c @@ -572,7 +572,7 @@ int PokeMini_CheckSSFile(const char *statefile, char *romfile) return 0; } PMiniStr[127] = 0; - if (romfile) strcpy(romfile, PMiniStr); + if (romfile) memmove(romfile, PMiniStr, strlen(PMiniStr) + 1); fclose(fi); return 1; @@ -722,7 +722,7 @@ int PokeMini_SaveSSFile(const char *statefile, const char *romfile) PMiniID = PokeMini_ID; fwrite(&PMiniID, 1, 4, fo); // Write State ID memset(PMiniStr, 0, 128); - strcpy(PMiniStr, romfile); + memmove(PMiniStr, romfile, strlen(romfile) + 1); fwrite(PMiniStr, 1, 128, fo); // Write ROM related to state StatTime = Endian32((uint32_t)time(NULL)); fwrite(&StatTime, 1, 4, fo); // Write Time @@ -912,7 +912,7 @@ static int PokeMini_iLoadROMZip(const char *zipfile, int *colorloaded) } } // Filename based of the zip - strcpy(filein, zipfile); + memmove(filein, zipfile, strlen(zipfile) + 1); RemoveExtension(filein); strcat(filein, ".minc"); if (FileExist(filein)) { @@ -946,21 +946,21 @@ int PokeMini_LoadROM(const char *filename) if (ExtensionCheck(filename, ".zip")) { // Load new MIN ROM and Color Information inside zip if (!PokeMini_iLoadROMZip(filename, &colorloaded)) return 0; - strcpy(CommandLine.min_file, filename); + memmove(CommandLine.min_file, filename, strlen(filename) + 1); } else #endif { // Setup LCD mode based of color support if (ExtensionCheck(filename, ".minc")) { // Remove c and load new MIN ROM - strcpy(tmp, filename); + memmove(tmp, filename, strlen(filename) + 1); tmp[strlen(filename)-1] = 0; if (!PokeMini_LoadMINFile(tmp)) return 0; - strcpy(CommandLine.min_file, tmp); + memmove(CommandLine.min_file, tmp, strlen(tmp) + 1); } else { // Load new MIN ROM if (!PokeMini_LoadMINFile(filename)) return 0; - strcpy(CommandLine.min_file, filename); + memmove(CommandLine.min_file, filename, strlen(filename) + 1); } // Load Color Information From 71cc0c0cafd7b7746d326f5b83706f18145d5bf9 Mon Sep 17 00:00:00 2001 From: Patrick Kingston Date: Wed, 11 Mar 2026 17:19:38 +0100 Subject: [PATCH 4/4] Remove accidental flag --- platform/sdl2/makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/sdl2/makefile b/platform/sdl2/makefile index d28e419..681b1fe 100644 --- a/platform/sdl2/makefile +++ b/platform/sdl2/makefile @@ -8,7 +8,7 @@ WINTARGET = PokeMini.exe WINRES_TRG = $(BUILD)/pokemini_rc.o WINRES_SRC = $(POKEROOT)resource/pokemini.rc -CFLAGS += -Wall -g `$(SDL_BASE)sdl2-config --cflags` $(INCLUDE) +CFLAGS += -Wall `$(SDL_BASE)sdl2-config --cflags` $(INCLUDE) SLFLAGS += `$(SDL_BASE)sdl2-config --libs` -lm -lz INCDIRS = source sourcex resource freebios dependencies/minizip