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 🙂
[…] pixel precise scrolling. You have to pilot your ship through nine levels. The game was written with CPCtelera, SDCC and […]
[…] 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 […]
[…] new version of CPCtelera, the Amstrad CPC game framework for C developers, was just released in version 1.4.2. CPCtelera […]