Releases: mywave82/opencubicplayer
Releases · mywave82/opencubicplayer
v3.2.0
Bugfixes, add SDL3 support, custom file extensions for music files and major speeds-ups for directories, ZIP and TAR files with many files.
- [SDL] Add support for SDL3 (>= 3.2.0).
- [mingw] Update libpng to latest version (1.6.55), and SDL from 2.x.x to to latest version (3.4.2).
- Update libsidplayfp to latest version, includes a faster integer SID emulator crSID.
- [CDA]
- On Linux CDROM driver - silence two valgrind warnings (non-initialized fields in IOCTL, but they are output only fields)
- Do not assert (and exit program) if attempting to play a DATA-only CD.
- [ocp.ini]
- Add support for extra file extensions the file-browser accepts in addition to those provided by the plugins. This can be edited from ALT-C dialog, option E.
- Increase the line-buffer from 1024 bytes to 65536, and also allow for up to 64K bytes of string data.
- [M15,M31] adjust detection to not rely on filenames ending with .MOD, inspect instrument volumes and orderlength.
- [NCurses] Default to the cursor being hidden.
- Use strverscmp when sorting files in the file-browser
- [SDL2/SDL3 video] If 320x200 is streetched to 640x200, request 640x400 instead so we keep the original ratio.
- [wurfel animation and background pictures]
- Search in ZIP files
- Allow animations to end with .ANI
- File discovery message needs to use fwprintf() on Windows
- Filenames with extensions longer or fewer than 3 characters were blindly accepted instead of rejected as background picture
- .spec file now sources the historically files from https mirror instead ftp
- Include the historically files in the windows build.
- [ADPLUG, SID, YM, QOA, WAV, FLAC] Master balance was inverted
- [XM] Improve the loader when the files have incorrect instrument sizes / samples truncated.
- [IT]
- Allow to load files with does does not contain all the sample data.
- Remake tracker detection for the file comment in the file-browser - based on Schism tracker source code.
- [dirdb] Use sorted lists and binary search instead of single-linked lists; Speeds up operations on the tree a lot.
- [ZIP,TAR] Directory list is now stored in a sorted list instead of linked list - and searches are now performed with binary search.
- [SID, Windows]
- If browsing ROM files outside %APPDATA%OpenCubicPlayer/Data, the resulting path did not contain a drive and had slashes in the wrong direction.
- If ROM filepath contained any non-ASCII characters, they would fail to open for usage in playback.
- [CDFS] Protect against recursive directories and high directory depths.
- [Archive Cache Database] BinarySearch was done 32bit instead of 64bit, causing assertion on large files.
v3.1.3
Bugfix release, and speed-up reading directories with many files
- [Windows] Update build dependencies to latest available releases
- utf8_casefold()
- Table for single- to single-point lookup is now done with a binarysearch, increasing the speed a lot when there are many files to add in the filebrowser view.
- Update tables to Unicode 17
- [X11,SDL,SDL2,curses]
- Unify the minimum text resolution to 80x20 (some had 80x25)
- Gracefully ignore the physical size can know achieve the text resolution, and use virtual resolution of 80x20
- Some few dialogs required 80x25, add scrolling
- [Textlayout] Do not lock-up if window grows to smaller size than supported (easily happens when running in ncurses)
- [DMF]
- Support sample-header for both file-version <8 and >=8
- Use correct buffer-size for input data if decompressing sample-data.
- Reject patterns with more than 512 rows (not valid in the real editor)
- When resizing order-list (splitting patterns with more than 256 rows into 2), malloc() a buffer that is larger. (Old code performed buffer overflow)
- Protect against buffer over/underflow when building the initial pattern-list
- [HVL] Muting single channels, while displaying channel information caused crash
- [669] Sample-looping did not work. Minor copy-paste error when the code was made endian-neutral.
v3.1.2
Bugfix release
- [QOA] Failed to compile on some systems.
- [SID] Remove debug messages sent to the console
- [FontSize control logic]
- Was not consistent between SDL and X11 driver.
- Was not possible to change away from 8x16 if window could not grow and fit 16x32.
- Help screen would reset font-size on X11. Now help screen follow to global selected font size instead.
- [Windows]
- OCP.INI update Messages: Do not use escape codes, use correct wide-char path and refer to
delinstead ofrm. - Debug messages with paths for HomePath etc, now use wide-char paths.
- Use wide-char version of fopen() when opening OCP.INI (support international user-names)
- OCP.INI update Messages: Do not use escape codes, use correct wide-char path and refer to
- [MIDI]
- Font-browser dialog had minor hickup in scrolling, and incorrect highlight for "No soundfont found".
- When file wraps, do no free data and reload the file - reuse the already loaded data.
- Remove double free() when attempting to load an invalid MIDI fil
- [CURL]
- Mention CURL in README.md and ocp.spec
- Improve errors-messages if unable to launch the helper program
v3.1.1
v3.1.0
Highlighs are support for QOA files, a larger font and UTF-16 support in the Windows builds.
- Add 16x32 font, which is nice for high DPI screens. Access the setting via ALT-C.
- [QOA] Add support for "Quite OK Audio" files
- [IT]
- Files created with other trackers than Impulse Tracker, was not marked correctly by file-detection.
- Loading *.IT files with stereo samples caused random noise due to only reading one channel of the stereo sample causing multiple problems.
- [devw]
- Add support for playback of stereo-samples (instead of down-converting to mono)
- If same sample could both be looped, and unlooped; minor curruption of data just after the loop-end could occure under special occations.
- [S3M] commit 5732560 made stereo-commands pan aggressivly away from center (absolute + repeat relative) and "randomly" enable stereo if value was 1.
- [XM] Make it possible to load songs that are partially truncated, missing some of the sample-data.
- [modland.com] setup dialog:
- select mirror: the custom editfield did not 100% match position when entering edit-mode.
- cachedir: Add missing $ in the UI
- Multiple updates regarding graphical modes:
- Remove leftovers of "gdb-helpers"
- Attemping to enable graphic mode needs to be able to gracefully fail, even when announced present (and revert back to text)
- Changing fontsize, while graphical mode was enable did not have an impact on the textmodes.
- Saving
fontsizefrom ALT+C dialog did not work as expected, due toscreentypelikely being another value than 8 in ocp.ini. Updatescreentypevalue too when in this dialog to the relevant value. - SDL 1.x, enabling graphical mode two times in a row (and window size did not match from textmode), would cause the window to not resize correctly.
- Remove a possible occation of strcpy where dst == src, which causes undefined behaviour.
- [Windows]
- Use WideChar / UTF-16 interface version of Windows filesystem API calls. This should make it possible to view file names that are using non-ASCII characters.
- Make driver letters capital and sort them infront of the other protocols in the file browser.
- [Timidity] Setup dialog for soundfonts:
- When selecting soundfont / configfile, give hints in the bottom of the dialog about locations searched.
- On Windows, add "*" to the end of the path when performing directory listings, to be compliant with the windows APIs.
- On Windows, search $OCP\data for sf2 files.
- On Windows, timidityplay.c didn't follow the TiMidity windows search logic.
- If user-override only if found for timidity.cfg, relay this in the config dialog.
- Add file-browser in the config-dialog. Making it possible to select SF2 file outside the default search-scopes.
- [adplug] Update to current master
- [libsidplayfp] Update to current master
- [MOD] MOD (Amiga ProTracker 1.1b), MODd (Dual Module Player) and MODt (old Amiga ProTracker) now use 8287Hz as the base-freqeuncy for samples matching Amiga PAL machines, while MODf (Fast Tracker II) still use 8363Hz. If a song now plays the samples slightly too fast, they should be marked with MODf (press + in the filebrowser, move the cursor over to "type:" and press )
v3.0.1
Bugfix release, with the exception of adplug adding support for "Palladix" files.
- Not all systems provide memrchr, example are some MacOS/OSX variants.
- [adplug] Update to latest master
- This adds support for "Palladix" files.
- HERAD files were not working as expected.
- [sidplay] Update libsidplayfp to latest git version.
- [modland.com] If waitpid() returns a fatal error, give up waiting.
- [HVL] multiple updates:
- files with size below 4096 were not able to be detected on modland.com virtual drive.
- instrument-viewer must fetch the instruments from index 1, not 0.
- track-viewer must fetch global commands from the actual number of channels in use.
- reset the channel-information-cache on file-load, else we might try to dereference pointers from the previous song played.
- [MDL] In loader, the calculation of two buffer-sizes were missing parentheses, causing incorrect calculation.
On Windows, Microsoft Visual C++ Redistributable must be installed in order to run Open Cubic Player. Direct links to Microsoft download servers:
x86 32-bit
x64 64-bit
v3.0.0
First major release. We skip version series 1.x.y and 2.x.y to avoid reusing version numbers from the original DOS version.
- Update external libraries for mingw build to latest versions.
- Add more magic numbers for up and comming version of ancient (decompression library for solid files).
- SetMode() did not have paremeters defined in the prototype, not all users had parameters defined. Caused crashes one some combination of mode changes.
- Update to latest version of libsidplayfp
- Update to latest version of adplug
- Add modland.com support directly from the file browser using a local copy of the file-list provided by modland.com.
- Speed up filebrowser if an earlier scanned .tar.gz now has unscanned modules. The archive is not persistent open due to caching.
- XM files would smash the stack on big-endian due to to loops had counter-limits in reverse order in endian-reversal code.
- MacOS/CoreAudio: Add missing mutex locking in two API functions.
- SDL/SDL2 audio: Add missing mutex locking in two API functions.
- SDL2 audio: Use SDL_LockAudioDevice, SDL_UnlockAudioDevice and SDL_CloseAudioDevice SDL 2.x functions instead of legacy 1.x functions.
- Do not attempt to divide by zero, if a song is reported as zero long.
- Logic for buffersize in playtimidity (MIDI files) was not working as expected, especially on Windows.
- If a file was unable to be accessed, pressing ENTER on it would cause a NULL-pointer dereference (Problem introduced in v0.2.102, adding support for ancient)
- Attempting to load a defective S3M file could trigger two different issues. Do not cal mcpSet(), since we have not initialized the mcp device yet, and the que variable was no reset on to NULL after free causing a double free in this special use case.
- When adding a directory-tree to the playlist, group the files by their owning directory, and sort each group of files alphabetically (strcasecmp).
- Detect Sidplayer files as playable.
- modland.com stores "Atari Digi-Mix" as *.mix instead of *.ym, so add that file-extension.
- Add FEST as a valid 4-channel signature
- Add "Atari STe/Falcon, Octalyser" CD61 and CD81 signatures
- Add "M&K!" as a valid MOD signature. These files are likely "His Master's Noise"
- Add support for Atari Falcon, Digital Tracker (MOD) files.
- Avoid double free(), could occure if trying to load an invalid MOD file
- Adjust MIME database, multiple of the magic searches were too aggressive.
- detecting .BAM files with .[0-9][0-9][0-9] filenames
- Remove adplugdb->wipe() call, it is not for freeing memory
v0.2.109
This is a bugfix release
- Remove a gcc warning when compiling boot/psetting.c
- validate_xdg_dir_absolute() allocates a byte short when building the string buffer in one of the code-paths.
- mingw builds expects adplugdb to be located within OCP data directory, not in the same directory as OCP.EXE (initial mingw builds did not have a data directory)
v0.2.108
This is a bugfix release
- When detecting C++ version, ] and ) was out of order in configure.ac. This only became problematic in autoconf 2.72.
- Playback via Game-Music-Emulator, the global loop module setting was not honored.
- Mono FLAC files would crash, buffer retrieval expected (atleast) two channels to be present.
- EOF detection got false positives in file-cache, FLAC files could fail to play
- Labels should not appear in front of variables, clang can be strict on this.
v0.2.107
- libsidplayfp:
- Make it possible to tune parameters in real-time.
- Update libsidplayfp to the latest master.
- Plugin had an extra dirdbUnref() that should not be there.
- adplug:
- Update adplug to latest master.
- Scrolling the channel viewer could crash the player due to read of out-of-bound memory.
- The wrapper OPL class OCP uses had some minor problems:
- In OPL3 mode, if a channel was in 4-OP mode, the second half would always muted.
- In OPL3 mode, if a channel was in 4-OP mode, you could mute the second half of the channel (in addition to the problem mentioned above).
- When a channel is going in/out of 4-OP mode, mute was not consistent.
- Refactor and use file-caching.
- Add compression hint to the fie API, solid files should be scanned directly.
- Differentiate unread (files not scanned) and files were the file content turned out to be unknown. Speeds up the file browser, especially if there are archives present.
- mingw:
- Latest version of packages OCP depends on.
- Enable optimization (needed for static inline functions to work as expected).
- Location of ocp.ini did not match the actual install.
- ISO/TOC - Audio CDs could be unable to play after being looked up in the online discid-database.
- Update libancient filter to match upto libancient master (needs matching support from host operating system for them to work).
- Add support for *.RPG archive file from "Official Hamster Republic Role Playing Game Construction Engine", and *.BAM that in game data files as stored as *.1 *.2 *.3 etc.
- Potential hang-bug in UDF (CDROM DVD image files) parser.