#z80 #demo #dsk #file-format #amstrad #sna

nightly cpclib

Set of tools and libraries to ease demomaking on the Amstrad CPC platform. WIP

26 unstable releases (8 breaking)

0.10.0 Nov 17, 2024
0.8.0 Jul 11, 2024
0.7.0 Aug 15, 2023
0.6.0 Apr 24, 2022
0.2.8-beta Dec 28, 2018

#34 in Emulators

Download history 8/week @ 2024-08-26 16/week @ 2024-09-23 2/week @ 2024-09-30 1/week @ 2024-10-07 8/week @ 2024-10-14 18/week @ 2024-11-04 50/week @ 2024-11-11 84/week @ 2024-11-18 56/week @ 2024-12-02 674/week @ 2024-12-09

864 downloads per month
Used in 3 crates (via cpclib-imgconverter)

MIT and AGPL-3.0-only

3.5MB
51K SLoC

Rust 41K SLoC // 0.0% comments C 10K SLoC // 0.2% comments C++ 402 SLoC // 0.0% comments Python 88 SLoC Shell 1 SLoC

cpclib

cpclib is a library that aims at helping to develop Amstrad CPC demos. Maybe it could be usefull for other z80 platform or even games. None of the functionalities are 100% functional. I have only implemented the subset I need for my current Amstrad CPC demo project. Several tools are provided in addition to library.

There are more are less able to do:

  • assemble z80 source code.
    • Mainly interesting for auto-generated code, not for handcrafted one.
    • Not all opcodes are managed.
    • Functionalities not available in other assemblers:
      • Injection of basic source code (WIP)
      • Function able to provided the opcode value of an instruction or its standard duration
  • manipulate .sna files
    • Minimal support of chunks at the moment
  • convert images to CPC format. Usable for standard resolutions/modes
  • manipulate DSK (trying to mimick iDSK or dskmanager). Able to format and add files
  • communicate with cpcwifi board
    • Replication of xfer utility.
    • Only reset and run file have been coded at the moment
    • In opposite to the original xfer tool, cpclib one is able to start snapshots V3 (there are simply converted as snapshot v2 on the fly)
  • create basic tokens from basic source (WIP)

Dependencies

~24–38MB
~526K SLoC