After two months of intense development a new version of CPCtelera, the Amstrad CPC game engine for C developers, was just released. 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. It is available for Windows, Linux and OS-X. You can get the latest version from GitHub and discuss it in the CPCWiki.
UPDATE: Version 1.2.1 was released some bugs including a OSX problem during installation. See below for more information.
New features included in v1.2:
- Added new modules: cpct_random & cpct_easytilemaps
- 3 new fast functions for very easy management of Tilemaps and Tilesets directly.
- New cpct_img2tileset utility for converting images containing complete tilesets or sprites groups into C data for including directly in projects code.
- 2 new fast functions for generating pseudo-random byte numbers uniformly distributed.
- 2 faster memset functions, up to 3 times faster than original cpct_memset (cpct_memset_f8, cpct_memset_f64)
- New function to set the location of the program stack at will (cpct_setStackLocation)
- New function for drawing Masked Aligned Sprites using Transparency Tables(cpct_drawSpritesMaskedAlignedTable)
- Added a transparency_tables header file for easing inclusion.
- Added a C-script for generating mask lookup tables.
- Added new examples: Text Software Scrolling, fastmemset, Easytilemaps demo, drawSpritesMaskedAligned demo, ProgramStack demo.
- Added Img2CPC image conversion tool by Augusto Ruiz.
- Added new version of RGAS: 1.0
- Updated SDCC to 3.5.0
- Movable project folders: they can be moved to different locations on a same hard-disk or even on a different machine without any change (provided CPCtelera 1.2 is installed). They now use an environment variable for linking with framework.
List of improvements and bug-fixes:
- Added a bug-fix for SDCC __z88dk_callee function binding on tail jumping optimizations.
- Improved performance for C calls to functions using __z88dk_callee and __z88dk_fastcall new calling conventions included with SDCC 3.5.0.
- Fixed mixed up definitions for Joy1_Fire1 and Joy1_Fire2
- Optimized several library functions.
- Documented functions that use self-modifying code (and will not work from ROM, logically)
- Split C and ASM bindings for most functions: calls from both languages include their own code without overheads
- Recalculated timings of most functions with respect to Amstrad’s microsecond-rounded scheme.
- cpct_mkproject checks for valid AMSDOS characters on project names.
- Fixed a subtle calculation bug in cpct_getScreenPtr
- Added library cleanup to setup.sh
- Improved OSX compatibility for the cpct_mkproject and setup.sh scripts
Changes in v1.2.1:
- Fixed setup.sh failing under OSX
- Fixed cpct_img2tileset not accepting full paths
- Better information display and progressbar for cpct_img2tileset
- Added offline documentation that was being ignored by git
- Added new advanced example: Smooth 1-pixel movement in mode 0 (advanced/move1pixel)