Skip to content

0.0.95

Compare
Choose a tag to compare
@mmitch mmitch released this 25 Jan 22:43
· 63 commits to master since this release
0.0.95

(entries marked with (*) are present in version 0.0.95 but were missing in the HISTORY file released with version 0.0.95)

Bugfixes:

  • gbsplay:

    • fix octaves in note display during playback
    • fix segfaults on status display for files other than .gbs
    • don't set up the terminal if stdout is redirected
    • fix duplicate handling of keystrokes
    • dsound plugout:
      • fix buffer handling (fixes choppy and too fast playback)
    • MIDI plugouts:
      • fix notes getting out of sync from accumulated rounding errors
      • fix 'sound off' (NR52) to affect all channels instead of channel 2 only
      • fix octaves of exported notes (not perfect since wave data on channel 3
        could contain repetitions resulting in higher octaves)
    • stdout plugout:
      • fix newline conversion of binary data on MINGW
  • gbs core:

    • fix envelope volume in channel retrigger
    • fix off-by-one error in gbhw_io_peek (fixes verbose WAVE display)
    • fix sign extension bug in byte swapping (fixes endian change via -E)
    • fix small memory leak from impulse buffer
    • fix missing sound with ROMs using ugetab's VBlank timing
    • fix hex dump endianess in debug output
    • fix possible duplicate free() on zlib compressed data
    • always use 64 bits for cycle counter (fixes overflow issues on MINGW32)
    • free ROM buffer on exit
  • libgbs:

    • install libgbs.h alongside the shared library to make it usable
  • build process:

    • don't run depend.sh before config.mk is included
    • only enable i18n if it really works
    • only build with -fstack-* protections if they really work
    • fix Windows builds on MSYS2, MINGW32 and MINGW64
    • fix library path detection on macOS
    • fix SDL2 detection
    • (*) fix dist target in Makefile
  • documentation:

    • fix typos in manpage

Removals:

  • gbsplay:

    • remove unmaintained splint annotations
    • remove regparm optimizations
    • remove usleep() usage, use nanosleep() instead (it's more POSIX)
  • gbsxmms:

    • finally remove XMMS plugin sourcecode that has been declared broken in 2008

Enhancements:

  • gbsplay:

    • add SDL2 plugout
    • remove unneeded dsound3d dependency from dsound plugin
    • add WAV writer plugout
    • add VGM writer plugout
    • support channel mute in MIDI output plugins
    • suppress unneeded endian changes between player routine and audio plugouts
    • allow repetition of single subsongs (gbsplay -L)
    • loop mode can be changed interactively (use the l key)
    • display pause status when playback is paused
    • display 99:99 as remaining time when no subsong timeout is set
    • enforce minimum subsong timeout when playing actual ROMS (otherwise gbsplay might quit before the bootrom beep is played)
    • (*) implement our own rand() function to keep shuffle tests stable on MSYS
  • gbs core:

    • transparent decompression of gzip-compressed files
    • basic VGM file playback support
    • implement DIV register emulation
    • add example ROM source using SDCC (see examples/sdcc)
    • increase impulse data resolution
    • support different cartridge types like MBC1 and MBC3 in ROM mapper
    • don't limit rombank range in the gbs mapper
    • remove home-grown extended header support for GBS files
    • add support for dumped ROMs (no controls, first song only)
  • libgbs:

    • clean up libgbs (still ongoing, so no 1.0.0 yet)
    • support reentrancy to render multiple files simultaneously (test cases to prove this is working are still missing)
    • generate pkg-config configuration
    • install API documentation (needs doxygen)
  • xgbsplay:

    • add simple X11 frontend (configure --with-xgbsplay)
    • and replace it by a better looking xcb/cairo frontend (dig through the sources before commit 840f894 to get the initial simple X11 frontend v1)
  • gbs2gb:

    • experimental tool to convert .gbs files to .gb ROMs
  • build process:

    • depend on bash 3.x for configure script
    • add automated build pipelines for Linux, macOS and Windows (MSYS2, MINGW32, MINGW64 and CygWin)
      • test for successful builds
      • test plugout configuration
      • test some configure options
      • test install and uninstall targets
      • calculate code coverage
    • use command -v instead of homegrown which replacement
    • add tests to catch regressions in file writer plugouts
    • add verbose build mode (configure --build-verbose)
  • documentation:

    • the mailing list is gone, please contact us on GitHub
    • update INSTALL.md instructions and information
    • convert README and INSTALL to Markdown format
    • add shiny build status badges to README.md