Releases: mywave82/opencubicplayer
Releases · mywave82/opencubicplayer
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.
v0.2.106
- [IT] Increase the number of max-samples to match openMPT (it can export files with more samples that original tracker and Schism supports)
- [devpdisk] Reported time during playback was random
- [adplug] Add support for SudoMakers RetroWave OPL3 Express, please configure it in setup:/adplugconfig.dev
- [adplug] Make channel tracker aware of AM/FM modes so it more correctly can display visualization
- [adplug] Left/Right OPL3 logic was incorrect in the register-tracker
- [mingw] Initial support (BETA) for mingw, enables Windows support
- [libancient] Add more fingerprints for compression formats that v2.1.0 can decompress
- [Linux CDROM] Fix deadlock
- [configure] cleanup --bindir --libdir and --datadir, and new syntax to override post ocp suffixes: ./configure LIBDIROCP=/usr/lib/ocp DATADIROCP=/usr/data/ocp
- [configure] removed --with-dir-suffix
- [CDROM *.CUE] REM didn't work as expected
- [CDROM *.CUE] files didn't work if containing INDEX 00 (pregap)
- [CDROM *.CUE] BINARY keyword should be little endian, but there are tools that produce big-endian files without marking them correctly. So we need to detect the endian used.
- [CDROM *.CUE] files didn't include pregaps in the track table
- [CDROM *.TOC] files didn't split the logic for pregap and offset into the raw file
- [musicbrainz] Increase the buffersize, some data retrivals failed
- [global MIME database] Add adplug fileformats
- [global MIME database] Add Game Music Emulator fileformats
- [SDL2] if entering fullscreen while in graphical effect mode, it could not be exited without visiting a textmode resolution.
- [SDL2] Use SDL_OpenAudioDevice(), else the expected audio format between SDL2 and OCP might not be what we expect causing random noise to be played.
- [X11] non-Shm usage could fail to successfully create butter on window resize
- [X11] If background picture is loaded in GUI modes, it was not repainted on window-resize
- [unifont] Allow for unifont ttf/otf files to be placed in the datadir by using ./configure --with-unifont-relative (you still need to copy the files in)
- [*.VGZ] Silently convert them to *.VGM
- [GME] Add support for Game Music Emulator library (libgme) for playback of various retro console systems