Apr 202016
 

A new version of CPCtelera, the Amstrad CPC game engine for C developers, was just released in version 1.4. CPCtelera offers a huge C library for the SDCC C cross-compiler, which makes it easier to create games and applications for the Amstrad CPC. This version features a new license (LGPL), support for the CPCRSLib, a lot of new examples and a huge load of new methods and optimisations (see the changelist below). It is available for Windows, Linux and OS-X. You can get the latest version from GitHub and discuss it in the CPCWiki forums.

Changes in v1.4:

  • Low-level library, scripts, building system and examples moved to LGPL license to suit more developer needs.
  • Added CPCRSLib installer script (cpct_installrslib): automatically installs and configures CPCRSLib to be used along with CPCtelera.
  • Added -c modifier to cpct_mkproject to let the user create CPCRSLib enabled projects.
  • Improved cpct_drawSpriteMaskedAlignedTable to work with un-aligned sprites. Only 256-bytes transparency table shall be aligned now.
  • Added interrupt unsafe functions for keyboard scanning
  • Improved img2cpc sprite generation: explicit array width*height sizes and automatic size constants generation.
  • Added new high-quality random number generators: Marsaglia XORShift 8/16/32 bits and Marsaglia XORShitf+ 40 bits state.
  • Simplified use of random number generators with standard macros cpct_rand and cpct_srand, to work like C functions rand/srand.
  • Added simple user example for random number generation: easy/random.
  • Added macro IMG2SPRITES for automatically converting tilemap TMX files into C arrays on typing “make”.
  • Added macro TMX2C for automatically converting image files into sprites (C-arrays), tiles and tilesets on typing “make”.
  • Added configuration files image_conversion.mk and tilemap_conversion.mk to easily include TMX2C and IMG2SPRITES macros for all user assets in the project.
  • Added new conversion options to cpct_tmx2csv: generation of C/H files, different output folder, and custom c-identifier generation.
  • Added new macros cpctm_createTramsparentMaskTable and cpctm_declareMaskTable to easily define and create 256-bytes aligned transparency tables, greatly simplifying the process.
  • Added Horizontal Sprite flipping functions: for Modes 0, 1 & 2 and normal/masked sprites, working from RAM and ROM, to suit different user needs.
  • Added user examples for horizontal flipping functions. C-examples: flipAnimM2, flipSprites. ASM-examples: hflipSpriteM1, flipMaskSprite.
  • Added macro cpctm_screenPtr to do static calculation of screen memory pointers, saving CPU and binary space when calculating constant locations.
  • Updated old examples to use new macros, especially cpctm_screenPtr.
  • Improved cpct_img2tileset output messages and success status check. Also added an option to output harware converted palette values.
  • Added CPCT_VMEM_START macro defining video memory start: standarizes its uses.
  • Updated hello world template example to use new macros, simplifying its code.
  • Added assembly macros for undocumented Z80 opcodes: used to clarify code.
  • Added ultra-optimized assembly macros for bit and pixel reversing inside bytes: they can reverse pixels inside a byte for modes 0, 1 and 2.
  • Added macros CPCT_ABSOLUTE_LOCATION_AREA and CPCT_RELOCATABLE_AREA to absolutely locate code and data inside binary space and memory.
  • Added example advanced/relocateMemory to show how to use memory relocation macros.
  • Added CPCT_XBITARRAY and CPCT_ENCODEXBITS macros to easily define, declare and populate bitarrays.
  • Added new type of bitarrays: bitarrays of 6-bits per item.
  • Added new example medium/bitarrayMaps1 to clarify the use of bitarrays as tilemaps and other structures.
  • Added sprite blending functions: can blend sprites with background using different modes like XOR, OR, AND, ADD, ADC, SUB, SBC, LDI, NOP.
  • Added sprite blending example medium/blendedSprites.
  • Added colour enumerations to simplify palette definitions and palete colour changes (CPCT_FW_Colour and CPCT_HW_Colour)
  • Added support for cpct_winape script to automatically load debugging symbols on launching DSKs.
  • Updated cpct_winape to download Winape 2.0 beta 2.
  • Added another ASM example with some sprite/text drawing, automatic sprite conversions and animations.
  • Some performance improvements on previous functions.
  • Updated to SDCC 3.5.5. (and fixed libboost 1.6. compilation problem).
  • Fixed a problem with multithreaded compilation on ARM platforms using SD Cards as main storages (mainly Raspberry Pi)
  • Added OBJS2CLEAN variable to makefiles to let the user clean some custom generated objects.
  • Improved documentation
  • Fixed cpct_tmx2csv failing on cygwin
  • Added tilemap_hwscroll example to show hardware scrolling capabilities along with an expanded tilemap.
  • Added latest 1.1.1. version of Retro Game Asset Studio (RGAS)
  • Everything packed with love to give user the best possible set of tools 🙂

  3 Responses to “CPCtelera v1.4 – Amstrad CPC game engine for C developers”

  1. […] pixel precise scrolling. You have to pilot your ship through nine levels. The game was written with CPCtelera, SDCC and […]

  2. […] to the real machine. Both utilities are widely used for cross-platform development, e.g. with CPCtelera, to prepare your release. You can download CPCXfs and 2CDT from the CPCWiki forums or at the end of […]

  3. […] new version of CPCtelera, the Amstrad CPC game framework for C developers, was just released in version 1.4.2. CPCtelera […]

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)