./emulators/libspectrum, ZX Spectrum emulator file format library

[ Image CVSweb ] [ Image Homepage ] [ Image RSS ] [ Image Required by ]


Branch: CURRENT, Version: 1.6.1, Package name: libspectrum-1.6.1, Maintainer: adam

libspectrum is a library designed to make the input and output of some
ZX Spectrum emulator files slightly easier. It is intended to be usable
on Unix variants, Win32 and MacOSX.


Required to run:
[audio/libaudiofile] [security/libgcrypt] [devel/glib2]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 626.52 KB

Version history: (Expand)


CVS history: (Expand)


   2026-05-19 14:56:44 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
libspectrum: updated to 1.6.1

1.6.1

* Fix PZX string reading to advance past the null terminator, so that
  archive info tag-value pairs after the title in a PZX PZXT block are
  no longer silently ignored (Fredrick Meunier).

* Reduce initial buffer allocation from 65536 to 1024 bytes, cutting
  peak heap usage during SZX snapshot writes from ~640 KB to ~10 KB
  before payload data is written (Fredrick Meunier).

* Optimise reallocate_to_new_size() to compute the final target size
  first and call realloc exactly once, instead of once per doubling
  step (Fredrick Meunier).

* Zero-initialise struct fields in alloc functions by switching from
  libspectrum_new to libspectrum_new0 in tape_block, dck_block,
  buffer, rzx, ide, microdrive, and creator alloc functions,
  preventing reads of uninitialised memory (Fredrick Meunier).

* Add const to libspectrum_creator getter function parameters, making
  them callable with const pointers without a cast (Fredrick Meunier).

* Various minor bug fixes/improvements:
  * Add extensive unit tests for snap accessor functions covering Plus
    D, DivIDE, DivMMC, AY registers, beta disk, ZXATASP, SpecDrum,
    Fuller Box, Multiface, custom ROM, RAM pages, interface1, Z80
    registers, and creator API (tests 85-116) (Fredrick Meunier).
  * Add unit tests for buffer write functions, buffer_set, and
    buffer_append (tests 77-84) (Fredrick Meunier).
  * Add microdrive API and serialisation round-trip tests (tests
    91-93) (Fredrick Meunier).
  * Use byte arrays in libspectrum_buffer_write_word and
    libspectrum_buffer_write_dword to avoid type-punning casts
    (Fredrick Meunier).
  * Make stdatomic usage C23-compatible (Fredrick Meunier).
  * Update bundled pkg.m4 from serial 1 (pkg-config 0.24) to serial 12
    (pkg-config 0.29.2) (Fredrick Meunier).
  * Remove obsolete AC_C_CONST macro from configure.ac (Fredrick
    Meunier).
  * Upgrade SourceForge URLs from http:// to https:// (Fredrick
    Meunier).
  * Document need to run ldconfig on some Linux installs
  * Add missing and update stale exported function documentation
    (Fredrick Meunier).
  * Fix typo and remove redundant autoreconf in macOS GitHub Actions
    workflow (Fredrick Meunier).
  * Remove unused libxml2 dependency from Linux and macOS GitHub
    workflows (Fredrick Meunier).
  * Use macOS 26 runners for GitHub macOS actions (Fredrick Meunier).
   2026-03-26 14:33:48 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
libspectrum: updated to 1.6.0

1.6.0

* Add loading and saving of .S snapshot files as extracted from D40/D80
  floppy images (Miroslav Ďurčík, Sergio Baldoví).

* Enable SZX support for Currah uSpeech (Vic Chwe).

* Add GitHub Actions CI workflows for Linux, Windows, Wii and macOS
  builds (Miroslav Ďurčík).

* Various minor bug fixes/improvements:
  * Fix PZX handling on big endian systems (Alberto Garcia).
  * Hide all symbols except the ones in the public API (Alberto
    Garcia).
  * Run tests on 'make check' invocation (Alberto Garcia).
  * Don't generate an edge for the STOP48 TZX block (Fredrick Meunier).
  * Use local include directives for config.h and libspectrum.h
    (Fredrick Meunier).
  * Tests use libspectrum_snap_write() from public API (Sergio
    Baldoví).
  * Fix a compilation warning in test 72 (Fredrick Meunier).
  * Fix function prototypes due to enum/integer mismatch (Sergio
    Baldoví).
  * Fix running unit tests when gzip is unavailable (Miroslav Ďurčík).
  * Use libspectrum's memory management instead of strdup (Sergio
    Baldoví).
  * Remove unused variable in szx.c (Sergio Baldoví).
  * Include strings.h for strcasecmp() in zip.c (Sergio Baldoví).
  * Include <string.h> for strlen and memcpy in utilities.c (Fredrick
    Meunier).
  * Remove obsolete AC_HEADER_STDC macro; update audiofile.m4 (Sergio
    Baldoví).
  * Note info loss of uSpeech when writing dsnap, sna or z80 snapshots
    (Sergio Baldoví).
  * Fix RZX recording in competition mode (fixes bug 485) (Sergio
    Baldoví, thanks crem).
  * Fix core dump when writing SZX snapshots with more than 64 ZXCF
    pages (Miroslav Ďurčík).
  * Add LIBSPECTRUM_ERROR_MISSING_ZLIB to public error enum (Miroslav
    Ďurčík).
  * Add native macOS WAV support and LIBSPECTRUM_SUPPORTS_WAV,
    replacing the deprecated LIBSPECTRUM_SUPPORTS_AUDIOFILE macro
    (Fredrick Meunier).
  * Fixes for GitHub Actions CI workflows (Fredrick Meunier).
   2025-11-17 12:01:43 by Thomas Klausner | Files touched by this commit (709)
Log message:
*: switch all sourceforge HOMEPAGEs to https
   2025-10-23 22:40:24 by Thomas Klausner | Files touched by this commit (2999)
Log message:
*: recursive bump for pcre2

Running an old binary against the new pcre doesn't work:
/usr/pkg/lib/libpcre2-8.so.0: version PCRE2_10.47 required by \ 
/usr/pkg/lib/libglib-2.0.so.0 not defined
   2022-06-28 13:38:00 by Thomas Klausner | Files touched by this commit (3952)
Log message:
*: recursive bump for perl 5.36
   2021-12-08 17:07:18 by Adam Ciarcinski | Files touched by this commit (3062)
Log message:
revbump for icu and libffi
   2021-10-26 12:24:17 by Nia Alarie | Files touched by this commit (266)
Log message:
emulators: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

The following distfiles could not be fetched (mostly distfiles fetched
conditionally...):

./emulators/compat30/distinfo compat30-alpha-3.1.tar.bz2
./emulators/compat30/distinfo compat30-arm-3.1.tar.bz2
./emulators/compat30/distinfo compat30-m68k-3.1.tar.bz2
./emulators/compat30/distinfo compat30-mipseb-3.1.tar.bz2
./emulators/compat30/distinfo compat30-mipsel-3.1.tar.bz2
./emulators/compat30/distinfo compat30-powerpc-3.1.tar.bz2
./emulators/compat30/distinfo compat30-sh3eb-3.1.tar.bz2
./emulators/compat30/distinfo compat30-sh3el-3.1.tar.bz2
./emulators/compat30/distinfo compat30-sparc-3.1.tar.bz2
./emulators/compat30/distinfo compat30-sparc64-3.1.tar.bz2
./emulators/compat30/distinfo compat30-vax-3.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-alpha-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-arm-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-m68k-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-mipseb-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-mipsel-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-powerpc-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-sparc-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-sparc64-5.1.tar.bz2
./emulators/xbeeb/distinfo BASIC2.rom
./emulators/xbeeb/distinfo OS-1.2.rom
./emulators/compat61/distinfo 20150430/compat61-alpha-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-arm-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-m68k-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-mips64eb-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-mips64el-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-mipseb-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-mipsel-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-powerpc-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-sparc-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-sparc64-6.1.tar.bz2
./emulators/compat16/distinfo compat16-alpha-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-arm-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-m68k-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-mipseb-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-mipsel-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-powerpc-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-sparc-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-sparc64-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-vax-1.6.2.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-alpha-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-arm-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-m68k-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-mipseb-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-mipsel-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-powerpc-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-sh3eb-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-sh3el-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-sparc-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-sparc64-4.0.tar.bz2
./emulators/compat20/distinfo compat20-alpha-2.1.tar.bz2
./emulators/compat20/distinfo compat20-arm-2.1.tar.bz2
./emulators/compat20/distinfo compat20-m68k-2.1.tar.bz2
./emulators/compat20/distinfo compat20-mipseb-2.1.tar.bz2
./emulators/compat20/distinfo compat20-mipsel-2.1.tar.bz2
./emulators/compat20/distinfo compat20-powerpc-2.1.tar.bz2
./emulators/compat20/distinfo compat20-sh3eb-2.1.tar.bz2
./emulators/compat20/distinfo compat20-sh3el-2.1.tar.bz2
./emulators/compat20/distinfo compat20-sparc-2.1.tar.bz2
./emulators/compat20/distinfo compat20-sparc64-2.1.tar.bz2
./emulators/compat20/distinfo compat20-vax-2.1.tar.bz2
./emulators/compat50-x11/distinfo compat50-x11-sparc64-5.0.tar.bz2
./emulators/compat12/distinfo compat12-m68k-1.2.1.tar.bz2
./emulators/compat12/distinfo compat12-ns32k-1.2.tar.bz2
./emulators/compat12/distinfo compat12-sparc-1.2.1.tar.bz2
./emulators/compat15/distinfo compat15-alpha-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-arm-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-m68k-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-mipsel-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-ns32k-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-powerpc-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-sparc-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-sparc64-1.5.2.tar.bz2
./emulators/compat15/distinfo compat15-vax-1.5.3.tar.bz2
./emulators/compat50/distinfo compat50-alpha-5.0.tar.bz2
./emulators/compat50/distinfo compat50-arm-5.0.tar.bz2
./emulators/compat50/distinfo compat50-m68k-5.0.tar.bz2
./emulators/compat50/distinfo compat50-mipseb-5.0.tar.bz2
./emulators/compat50/distinfo compat50-mipsel-5.0.tar.bz2
./emulators/compat50/distinfo compat50-powerpc-5.0.tar.bz2
./emulators/compat50/distinfo compat50-sparc-5.0.tar.bz2
./emulators/compat50/distinfo compat50-sparc64-5.0.tar.bz2
./emulators/compat16-extras/distinfo compat16-extras-sparc-1.6.2.tar.bz2
./emulators/compat40-extras/distinfo 20071230/compat40-extras-sparc-4.0.tar.bz2
./emulators/compat15-extras/distinfo compat15-extras-sparc-1.5.3.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-alpha-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-arm-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-m68k-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-mipseb-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-mipsel-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-powerpc-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-sparc-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-sparc64-6.0.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-alpha-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-arm-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-m68k-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-mips64eb-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-mips64el-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-mipseb-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-mipsel-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-powerpc-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-sparc-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-sparc64-6.1.tar.bz2
./emulators/osf1_lib/distinfo netscape-4.7-3.alpha.rpm
./emulators/compat20-extras/distinfo compat20-extras-sparc-2.1.tar.bz2
./emulators/compat30-extras/distinfo compat30-extras-sparc-3.1.tar.bz2
./emulators/compat30-extras/distinfo compat30-extras-vax-3.1.tar.bz2
./emulators/compat14/distinfo compat14-alpha-1.4.3.tar.bz2
./emulators/compat14/distinfo compat14-arm-1.4.3.tar.bz2
./emulators/compat14/distinfo compat14-m68k-1.4.3.tar.bz2
./emulators/compat14/distinfo compat14-mipsel-1.4.3.tar.bz2
./emulators/compat14/distinfo compat14-ns32k-1.4.2.tar.bz2
./emulators/compat14/distinfo compat14-powerpc-1.4.3.tar.bz2
./emulators/compat14/distinfo compat14-sparc-1.4.3.1.tar.bz2
./emulators/compat14/distinfo compat14-vax-1.4.3.tar.bz2
./emulators/compat51/distinfo compat51-alpha-5.1.tar.bz2
./emulators/compat51/distinfo compat51-arm-5.1.tar.bz2
./emulators/compat51/distinfo compat51-m68k-5.1.tar.bz2
./emulators/compat51/distinfo compat51-mipseb-5.1.tar.bz2
./emulators/compat51/distinfo compat51-mipsel-5.1.tar.bz2
./emulators/compat51/distinfo compat51-powerpc-5.1.tar.bz2
./emulators/compat51/distinfo compat51-sparc-5.1.tar.bz2
./emulators/compat51/distinfo compat51-sparc64-5.1.tar.bz2
./emulators/compat13/distinfo compat13-alpha-1.3.3.tar.bz2
./emulators/compat13/distinfo compat13-arm-1.3.2.tar.bz2
./emulators/compat13/distinfo compat13-m68k-1.3.3.tar.bz2
./emulators/compat13/distinfo compat13-mipsel-1.3.3.tar.bz2
./emulators/compat13/distinfo compat13-ns32k-1.3.3.tar.bz2
./emulators/compat13/distinfo compat13-sparc-1.3.3.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-alpha-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-arm-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-armeb-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-armv6hf-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-armv7hf-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-earm-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-earmv7hfeb-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-m68k-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-mips64eb-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-mips64el-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-mipseb-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-mipsel-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-powerpc-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-sh3eb-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-sh3el-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-sparc-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-sparc64-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-vax-8.0.tar.bz2
   2021-10-07 15:49:53 by Nia Alarie | Files touched by this commit (289)
Log message:
emulators: Remove SHA1 hashes for distfiles