Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ft2-clone for openSUSE:Factory checked in at 2026-09-21 12:24:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ft2-clone (Old) and /work/SRC/openSUSE:Factory/.ft2-clone.new.383539 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ft2-clone" Mon Sep 21 12:24:29 2026 rev:47 rq:1378831 version:2.24 Changes: -------- --- /work/SRC/openSUSE:Factory/ft2-clone/ft2-clone.changes 2026-09-04 12:39:03.620740099 +0200 +++ /work/SRC/openSUSE:Factory/.ft2-clone.new.383539/ft2-clone.changes 2026-09-21 12:24:32.978627782 +0200 @@ -1,0 +2,13 @@ +Fri Sep 18 06:07:09 UTC 2026 - Martin Hauke <[email protected]> + +- Update to version 2.24 + * Some raw samples would be misdetected as an SNES BRR sample on + load. Also reduced the chance of raw samples being misdetected + as MP3/OGG/FLAC, although this was extremely unlikely to begin + with. + * Smp.Ed.: The filter preview didn't work as expected on looping + waveforms. + * Smp.Ed.: The filter preview duration has been lowered to 1 + second. + +------------------------------------------------------------------- Old: ---- ft2-clone-2.23.tar.gz New: ---- ft2-clone-2.24.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ft2-clone.spec ++++++ --- /var/tmp/diff_new_pack.Zae5mS/_old 2026-09-21 12:24:34.343684834 +0200 +++ /var/tmp/diff_new_pack.Zae5mS/_new 2026-09-21 12:24:34.345684917 +0200 @@ -17,7 +17,7 @@ Name: ft2-clone -Version: 2.23 +Version: 2.24 Release: 0 Summary: Fasttracker II clone License: BSD-3-Clause AND CC-BY-NC-SA-4.0 ++++++ ft2-clone-2.23.tar.gz -> ft2-clone-2.24.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2-clone-2.23/.gitignore new/ft2-clone-2.24/.gitignore --- old/ft2-clone-2.23/.gitignore 2026-08-23 12:26:06.000000000 +0200 +++ new/ft2-clone-2.24/.gitignore 2026-09-17 17:22:53.000000000 +0200 @@ -1,10 +1,10 @@ - +.DS_Store +release/macos/ft2-clone-macos.app/Contents/MacOS/ft2-clone-macos vs2026_project/.vs/* vs2026_project/enc_temp_folder/* vs2026_project/ft2-clone/Release/* -vs2026_project/ft2-clone/x64/Debug/ft2-clone.vcxproj.FileListAbsolute.txt vs2026_project/ft2-clone/Debug/* -.DS_Store +vs2026_project/ft2-clone/x64/* *.exe *.db *.ilk @@ -23,4 +23,3 @@ *.recipe *.iobj *.enc -release/macos/ft2-clone-macos.app/Contents/MacOS/ft2-clone-macos diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2-clone-2.23/src/ft2_header.h new/ft2-clone-2.24/src/ft2_header.h --- old/ft2-clone-2.23/src/ft2_header.h 2026-08-23 12:26:06.000000000 +0200 +++ new/ft2-clone-2.24/src/ft2_header.h 2026-09-17 17:22:53.000000000 +0200 @@ -14,7 +14,7 @@ #endif #include "ft2_replayer.h" -#define PROG_VER_STR "2.23" +#define PROG_VER_STR "2.24" // do NOT change these! It will only mess things up... diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2-clone-2.23/src/ft2_sample_loader.c new/ft2-clone-2.24/src/ft2_sample_loader.c --- old/ft2-clone-2.23/src/ft2_sample_loader.c 2026-08-23 12:26:06.000000000 +0200 +++ new/ft2-clone-2.24/src/ft2_sample_loader.c 2026-09-17 17:22:53.000000000 +0200 @@ -16,16 +16,16 @@ #include "ft2_diskop.h" #include "ft2_structs.h" -bool detectFLAC(FILE *f); +bool detectFLAC(FILE *f, UNICHAR *filenameU, uint32_t filenameLen); bool loadFLAC(FILE *f, uint32_t filesize); -bool detectOGG(FILE *f); +bool detectOGG(FILE *f, UNICHAR *filenameU, uint32_t filenameLen); bool loadOGG(FILE *f, uint32_t filesize); -bool detectMP3(FILE *f); +bool detectMP3(FILE *f, UNICHAR *filenameU, uint32_t filenameLen); bool loadMP3(FILE *f, uint32_t filesize); -bool detectBRR(FILE *f); +bool detectBRR(FILE *f, UNICHAR *filenameU, uint32_t filenameLen); bool loadBRR(FILE *f, uint32_t filesize); bool loadAIFF(FILE *f, uint32_t filesize); @@ -67,7 +67,7 @@ static void freeTmpSample(sample_t *s); // Crude sample detection routine. These aren't always accurate detections! -static int8_t detectSample(FILE *f) +static int8_t detectSample(FILE *f, UNICHAR *filenameU, uint32_t filenameLen) { uint8_t D[512]; @@ -77,13 +77,13 @@ fread(D, 1, sizeof (D), f); fseek(f, oldPos, SEEK_SET); - if (detectFLAC(f)) + if (detectFLAC(f, filenameU, filenameLen)) return FORMAT_FLAC; - if (detectOGG(f)) + if (detectOGG(f, filenameU, filenameLen)) return FORMAT_OGG; - if (detectMP3(f)) + if (detectMP3(f, filenameU, filenameLen)) return FORMAT_MP3; if (!memcmp("FORM", &D[0], 4) && (!memcmp("8SVX", &D[8], 4) || !memcmp("16SV", &D[8], 4))) @@ -95,7 +95,7 @@ if (!memcmp("FORM", &D[0], 4) && (!memcmp("AIFF", &D[8], 4) || !memcmp("AIFC", &D[8], 4))) return FORMAT_AIFF; - if (detectBRR(f)) + if (detectBRR(f, filenameU, filenameLen)) return FORMAT_BRR; return FORMAT_UNKNOWN; @@ -116,7 +116,7 @@ goto loadError; } - int8_t format = detectSample(f); + int8_t format = detectSample(f, editor.tmpFilenameU, UNICHAR_STRLEN(editor.tmpFilenameU)); fseek(f, 0, SEEK_END); uint32_t filesize = ftell(f); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2-clone-2.23/src/ft2_smpfx.c new/ft2-clone-2.24/src/ft2_smpfx.c --- old/ft2-clone-2.23/src/ft2_smpfx.c 2026-08-23 12:26:06.000000000 +0200 +++ new/ft2-clone-2.24/src/ft2_smpfx.c 2026-09-17 17:22:53.000000000 +0200 @@ -758,7 +758,11 @@ s->origDataPtr = sampleData; s->length = len; s->dataPtr = s->origDataPtr + SMP_DAT_OFFSET; - s->loopStart = s->loopLength = 0; + if (smpEd_Rx1 < smpEd_Rx2) // disable loop if previewing marked section + { + s->loopStart = 0; + s->loopLength = 0; + } fixSample(s); const int32_t oldX1 = smpEd_Rx1; @@ -784,7 +788,7 @@ updateVolPanAutoVib(ch); while (ch->status & CS_TRIGGER_VOICE); // wait for voice to trigger in mixer - SDL_Delay(1500); // wait 1.5 seconds + SDL_Delay(1000); // wait 1 second // we're done, stop voice and free temporary data pauseAudio(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2-clone-2.23/src/ft2_unicode.h new/ft2-clone-2.24/src/ft2_unicode.h --- old/ft2-clone-2.23/src/ft2_unicode.h 2026-08-23 12:26:06.000000000 +0200 +++ new/ft2-clone-2.24/src/ft2_unicode.h 2026-09-17 17:22:53.000000000 +0200 @@ -15,6 +15,7 @@ #define UNICHAR_STRCPY(a, b) wcscpy(a, b) #define UNICHAR_STRNCPY(a, b, c) wcsncpy(a, b, c) #define UNICHAR_STRCMP(a, b) wcscmp(a, b) +#define UNICHAR_STRICMP(a, b) _wcsicmp(a, b) #define UNICHAR_STRNCMP(a, b, c) wcsncmp(a, b, c) #define UNICHAR_STRCAT(a, b) wcscat(a, b) #define UNICHAR_STRDUP(a) _wcsdup(a) @@ -31,6 +32,7 @@ #define UNICHAR_STRCPY(a, b) strcpy(a, b) #define UNICHAR_STRNCPY(a, b, c) strncpy(a, b, c) #define UNICHAR_STRCMP(a, b) strcmp(a, b) +#define UNICHAR_STRICMP(a, b) strcasecmp(a, b) #define UNICHAR_STRNCMP(a, b, c) strncmp(a, b, c) #define UNICHAR_STRCAT(a, b) strcat(a, b) #define UNICHAR_STRDUP(a) strdup(a) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2-clone-2.23/src/smploaders/ft2_load_brr.c new/ft2-clone-2.24/src/smploaders/ft2_load_brr.c --- old/ft2-clone-2.23/src/smploaders/ft2_load_brr.c 2026-08-23 12:26:06.000000000 +0200 +++ new/ft2-clone-2.24/src/smploaders/ft2_load_brr.c 2026-09-17 17:22:53.000000000 +0200 @@ -17,11 +17,21 @@ static int16_t s1, s2; -bool detectBRR(FILE *f) +bool detectBRR(FILE *f, UNICHAR *filenameU, uint32_t filenameLen) { if (f == NULL) return false; + // test for .brr file extension (format detection is otherwise quite poor) + UNICHAR *testExt; +#ifdef _WIN32 + testExt = L".brr"; +#else + testExt = ".brr"; +#endif + if (filenameLen <= 4 || UNICHAR_STRICMP(&filenameU[filenameLen-4], testExt) != 0) + return false; + uint32_t oldPos = (uint32_t)ftell(f); fseek(f, 0, SEEK_END); uint32_t filesize = (uint32_t)ftell(f); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2-clone-2.23/src/smploaders/ft2_load_flac.c new/ft2-clone-2.24/src/smploaders/ft2_load_flac.c --- old/ft2-clone-2.23/src/smploaders/ft2_load_flac.c 2026-08-23 12:26:06.000000000 +0200 +++ new/ft2-clone-2.24/src/smploaders/ft2_load_flac.c 2026-09-17 17:22:53.000000000 +0200 @@ -49,8 +49,18 @@ static bool writeSamples(int64_t sampleIndex, int32_t **samples, int32_t numSamples); -bool detectFLAC(FILE *f) +bool detectFLAC(FILE *f, UNICHAR *filenameU, uint32_t filenameLen) { + // test for .flac file extension (format detection is otherwise quite poor) + UNICHAR *testExt; +#ifdef _WIN32 + testExt = L".flac"; +#else + testExt = ".flac"; +#endif + if (filenameLen <= 5 || UNICHAR_STRICMP(&filenameU[filenameLen-5], testExt) != 0) + return false; + uint8_t h[4]; memset(h, 0, sizeof (h)); fread(h, 1, 4, f); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2-clone-2.23/src/smploaders/ft2_load_mp3.c new/ft2-clone-2.24/src/smploaders/ft2_load_mp3.c --- old/ft2-clone-2.23/src/smploaders/ft2_load_mp3.c 2026-08-23 12:26:06.000000000 +0200 +++ new/ft2-clone-2.24/src/smploaders/ft2_load_mp3.c 2026-09-17 17:22:53.000000000 +0200 @@ -40,10 +40,19 @@ static bool mp3IsStereo = true; -bool detectMP3(FILE *f) +bool detectMP3(FILE *f, UNICHAR *filenameU, uint32_t filenameLen) { - uint8_t h[10]; + // test for .mp3 file extension (format detection is otherwise slightly poor) + UNICHAR *testExt; +#ifdef _WIN32 + testExt = L".mp3"; +#else + testExt = ".mp3"; +#endif + if (filenameLen <= 4 || UNICHAR_STRICMP(&filenameU[filenameLen-4], testExt) != 0) + return false; + uint8_t h[10]; memset(h, 0, sizeof (h)); fread(h, 1, 10, f); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2-clone-2.23/src/smploaders/ft2_load_ogg.c new/ft2-clone-2.24/src/smploaders/ft2_load_ogg.c --- old/ft2-clone-2.23/src/smploaders/ft2_load_ogg.c 2026-08-23 12:26:06.000000000 +0200 +++ new/ft2-clone-2.24/src/smploaders/ft2_load_ogg.c 2026-09-17 17:22:53.000000000 +0200 @@ -47,8 +47,18 @@ #define SAMPLE_BUFFER_SIZE 524208 -bool detectOGG(FILE *f) +bool detectOGG(FILE *f, UNICHAR *filenameU, uint32_t filenameLen) { + // test for .ogg file extension (format detection is otherwise quite poor) + UNICHAR *testExt; +#ifdef _WIN32 + testExt = L".ogg"; +#else + testExt = ".ogg"; +#endif + if (filenameLen <= 4 || UNICHAR_STRICMP(&filenameU[filenameLen-4], testExt) != 0) + return false; + uint8_t h[4]; memset(h, 0, sizeof (h)); fread(h, 1, 4, f);
