Releases: mmitch/gbsplay
Releases · mmitch/gbsplay
0.0.97
Bugfixes:
-
gbs core:
- fix noise channel LSFR for more faithful drumtracks in most ROMs
- fix generated MIDI files being ~1.5% too slow
- reset cartridge RAM on subsong change to prevent the state of a subsong from influencing later subsongs
-
gbsplay
- fix display of unknown version number (gbsplay -V)
Enhancements:
- build process
- display version number during configure
- automatically provide a .tar.gz on the GitHub release page that contains proper version information like the old manual releases
0.0.96
Bugfixes:
- build process:
- fix build errors of devdsp plugout on FreeBSD
Enhancements:
-
gbsplay:
- add PipeWire plugout
- add application and filename to audio stream metadata
(currently works with PipeWire, PulseAudio and with SDL2 depending
on the configured audio backend)
-
build process:
- add automated build pipeline for FreeBSD (arm64)
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
- install
-
build process:
- don't run
depend.sh
beforeconfig.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
- don't run
-
documentation:
- fix typos in manpage
Removals:
-
gbsplay:
- remove unmaintained splint annotations
- remove regparm optimizations
- remove
usleep()
usage, usenanosleep()
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)
- add simple X11 frontend (
-
gbs2gb:
- experimental tool to convert
.gbs
files to.gb
ROMs
- experimental tool to convert
-
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
anduninstall
targets - calculate code coverage
- use
command -v
instead of homegrownwhich
replacement - add tests to catch regressions in file writer plugouts
- add verbose build mode (
configure --build-verbose
)
- depend on bash 3.x for
-
documentation:
- the mailing list is gone, please contact us on GitHub
- update
INSTALL.md
instructions and information - convert
README
andINSTALL
to Markdown format - add shiny build status badges to
README.md
0.0.94
Bugfixes:
-
gbsplay:
- cpu emulation fixes:
- RLCA/RLA/RRCA/RRA did not set ZF
- fix botched SBC zero flag handling
- fix slight bug in ADC/SBC
- fix INC/DEC SP, CP A and half-carry flag in DEC
- fix PUSH/POP AF
- fix cycle timing for conditional branches
- fix cycle timing for LD HLSP/LD SPHL and 16bit ALU ops
- halt with global interrupt flag disabled can still be interrupted
- fix error on midi plugout where a write to the file could occur
before the file was opened - fix garbled screen on exit in verbose mode (gbsplay -v)
- fix status display: respect channel in left/right total volume
- fix impulse generator: generate a header file at compile-time
- restore mute settings after every apu_reset
- cpu emulation fixes:
-
build process:
- fix test target during parallel builds (make -j)
- support building with MSYS2
- fix ShellCheck warnings
Removals:
- ditz bug tracker issues removed, use the issue tracker on the github
project page instead: https://github.com/mmitch/gbsplay/issues
Enhancements:
-
gbsplay:
- more accurate sound and other HW emulation:
- calculate LFSR correctly
- play first nibble on DAC-channel from fresh buffer
- correct noise channel speed
- use more DMG-like DC-offsets
- more accurate cpu cycle accounting
- remove DC offset from DAC-channel
- more accurate channel gating
- support read-back of timer registers and NR52
- fix length counter and trigger logic
- improved sequencer correctness
- volume envelope is only clocked when channel is running
- support reading the scanline counter
- show text written to link port (only if text detected, for test roms)
- show register contents in verbose mode (gbsplay -v)
- add basic GBR file support
- basic support for plain GB roms
- support ugetab int vector extension (gbs spec 1.04u)
- add 'iodumper' plugout for testing
- add support for blargg-gb-tests debug output
- midi exporter:
- track DAC and running status for channel 1-3
- fix channel trigger handling
- call note_off/note_on when volume changes between zero/non-zero
- export portamenti as separate notes
- honor APU reset (stop all notes)
- end pending notes when closing track
- emit pan control messages
- new alternative midi exporter
- enable new gcc compiler warnings
- clarified GPL version as "GPL v1 or later"
- more accurate sound and other HW emulation:
-
build process:
- add V=1 make option for verbose compiling ("make V=1")
- add gbsplay mime entry to install step and run update-mime-database
- add gbsplay.desktop file in install step
Documentation:
- describe plugouts in manpage
- updated contact info
- adhere to the common manpage styleguide, see
- man-pages(7)
- https://liw.fi/manpages/
0.0.93
Bugfixes
- build process:
- configure now fails when a requested feature is not available
- run checksum test only on x86 architectures
Removals
- ditz bug tracker issues removed, use the issue tracker on the github
project page instead: https://github.com/mmitch/gbsplay/issues
Enhancements
0.0.92
Bugfixes
- fix player jump bug in Wizardry Gaiden
- fix switched byte order in plugout_midi (caused huge delays between notes)
- fix crash on files with too many subsongs
Enhancements
- gbsplay
- gbsinfo:
- also display default subsong
- contrib:
- better bash completion rules
- build process:
- fix build with GCC 5
- add cross-compiling support
- handle CFLAGS/LDFLAGS for autotools compatibility
- don't fail test target when a key is pressed
- simpler/better/more unit tests