@lronaldo lronaldo released this Jul 16, 2017 · 12 commits to master since this release

Assets 2

This is an important update release for CPCtelera, more than one year after the latest release. The main purpose of this release is to update the SDCC compiler from version 3.5.5 to present 3.6.8 and advance some important features of 1.5, such as automatic music conversion. Also, some compilation and Mac OSX compatibility problems have been solved, which will simplify things for many users. We sincerely hope you enjoy this release much while we continue preparing 1.5.

Features included in this release:

  • Updated SDCC compiler from version 3.5.5 to newest version 3.6.8 (revision 9946). New version is much more efficient, generates better code and solves some bugs from previous one.
  • Added automatic Arkos Traker 1 AKS music conversion. It is done through the makefile macro AKS2C, which is easily added in config file cfg/music_conversion.mk
  • Added project support for Visual Studio Code IDE. All CPCtelera projects can now be opened and compiled in VS Code. Moreover, intellisense and keyboard shortcuts for automaticly running games are easily added.
  • Documented VS Code integration, with plenty of information for users on how to set up projects.
  • Documented Automatic Conversion Tools for Music, Graphics and Tilemaps. This will greatly help users on fastly and comfortably integrating asset production in their projects without having to bother to convert them when they change.
  • Added support for drawing tiles using gray code order and making use of the stack. Really fast method for advanced users.
  • Added troubleshooting section to the documentation in order to help users with common issues.
  • Fixed issue in iDSK: it was overwritting files with same name but different extension.
  • Added Support for Paged Memory and use of memory beyond 64K.
  • Added z88dk speculative optimization peepholes for advanced users wanting to experiment with advanced optimization.
  • Added new asm examples with animations, music and data structures: greetcardmusic/ and structs/.
  • Updated RGAS to latest 1.2.2 version.
  • Added bitarray support for tiled Tilemap TMX-CSV conversion to C.
  • Fixed getRandom to output predictable random sequences.

One more time, big thanks to all users and collaborators. We have received much support, many feature requests and even many code contributions. Most of them will have to wait to be included until next release. We are extremelly honored to receive so much collaboration and very happy for the improvements that this will represent for all programmers willing to create new games and applications for Amstrad CPC.

Enjoy this intermediate release while we prepare all new features for the next big release. For all big fans and members of Amstrad CPC community, Cheers! 😄

@lronaldo lronaldo released this Apr 20, 2016 · 119 commits to master since this release

Assets 2

After a great amount of long days and nights developing, a big new release of CPCtelera has been born. This new release comes with many new features and enhancements and even a license change (from GPL to LGPL), to greatly empower Amstrad CPC developers. We expect your games to reach next level and continue growing.

Here is a sum-up of new features included in this release:
  • 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 :)

And again, really big thanks to all of you who are contributing to CPCtelera. All of this is thanks to all of you, and to the great Amstrad CPC community. Without your work, enthusiasm, help and encouraging messages nothing of this would have been possible. And even more: all of you are the reason for continuing and making this project grow to help you create better software and games.

Please, enjoy this release and continue being the great community you are! Long live to the Amstrad CPC! :)

Mar 6, 2016
Intermediate stable release v1.3.2.

@lronaldo lronaldo released this Oct 17, 2015 · 421 commits to master since this release

Assets 2

This new release of CPCtelera comes with lots of new features and improvements that we expect to empower your game creation as much as possible.

Here is a sum-up of new features included in this release:
  • API change on cpct_getXBits functions. Changed order of parameters to further optimize operations.
  • Optimized functions: bitarray functions, cpct_count2VSYNC, cpct_px2byteM0, cpct_enable/disablefirmware, cpct_getHWColour, cpct_setPalette, cpct_fw2hw
  • Added example on getting hardware values with cpct_getHWColour
  • Automatic inclusion of binary files in DSK: Users can now specify a path for the makefile to retrieve binary files and insert them on the DSK on compilation.
  • iDSK: Fixed historic data corruption problem on adding new files.
  • Added cpct_winape script that automatically downloads, installs and lauches winape from command line to speed up development process. It works multiplatform, transparently using wine where required.
  • Added cpct_setInterruptHandler and cpct_removeInterruptHandler functions to let the user easily hook any function to system interrupts.
  • Added example on hooking a function to system interrupts.
  • Added cpct_img2tileset support for generating sprites with interlaced masks.
  • Added new script cpct_tmx2csv to convert tmx files from tiled into CSVs ready for inclusion in user code.
  • Added Augusto Ruiz's dskgen tool for generating and managing DSKs low level.
  • Updated SDCC with latest patches and bugfixes.
  • Modified SDCC building: SDCC now builds with maximum optimizations activated and all unnecessary parts are removed from compilation (it compiles faster)
  • Improved Makefile functions for CDT Creation.
  • Added examples about automatic assets inclusion/conversion and CDT generation with multiple files.
  • Improved compatibility and functionality of Augusto Ruiz's img2cpc
  • Improved examples and explanations
  • Added GCC/CLang version checking on installation (checks required C++11 features are present)
  • Added splitted C/ASM bindings for most of CPCtelera's functions, along with __z88dk_callee and __z88dk_fastcall calling convention use.

Thank you very much to all of you who are collaborating with CPCtelera. This is getting better and better thanks to all of you. Special mention in this release goes to donnors: Arnaud Bouche, Roald Strauss, Ervin Pajor, Tim Riemann and Lachlan Keown. I also want to specially mention Augusto Ruiz for his incredible support and direct collaboration with the project as developer.

Hope you enjoy this release and create new and better games and software for Amstrad CPC! :)

@lronaldo lronaldo released this Aug 14, 2015 · 537 commits to master since this release

Assets 2

The main purpose of this release is to fix a bug found in SDCC 3.5.0. Some other minor functionalities are added, but the bug fixed is critical and update is encouraged to everyone. These are complete details of this release:

  • Fixed a critical SDCC compilation bug on tail jumping: __z88dk_callee functions with odd number of bytes in parameters and called at the end of another function made program crash due to a bad optimization.
  • Some additions to img2cpc's output format, required for direct compilation of output files.
  • Changed Joy1 button definitions on constants for assembly programs.
  • Added functions cpct_isAnyKeyPressed and cpct_isAnyKeyPressed_f
  • Moved cpct_isKeyPressed function to _z88dk_fastcall convention with performance improvement

@lronaldo lronaldo released this Aug 9, 2015 · 550 commits to master since this release

Assets 2

This is a small release but with a significant change. Thanks to Augusto Ruiz, CPCtelera now integrates a new version of img2cpc completele made in C++ and running native code on every platform. Moreover, now img2cpc has direct suport for C programming. This makes this tool extremelly fast and useful.

  • New version of img2cpc, completely made in C++ and running native code on every platform (working over libfreeimage)
  • MaskSpritesAligned example optimized and moved to advanced/ folder

Really big thanks to Augusto Ruiz for its great help and support :)

@lronaldo lronaldo released this Aug 6, 2015 · 576 commits to master since this release

Assets 2

This is a minimal bugfix release over release v1.2, mainly due to a bug in setup.sh under OSX. This release includes:

  • 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)

Thank you very much for people testing and reporting bugs, in particular Toni Ramírez and @ronsonmaria for spotting the bugs fixed in this release.

@lronaldo lronaldo released this Aug 5, 2015 · 586 commits to master since this release

Assets 2

This new release of CPCtelera comes with lots of new features and improvements that will make game creation a better and faster task.

Here is a sum-up of new features included in this release:
  • 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 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 is installed). They now use an environment variable for linking with framework.
And this is a 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

Big thanks to all people supporting this project and contributing to it. Special thanks to people who directly contributed to this 1.2 release:

  • Alcoholics Anonimous / CPCWiki
  • Augusto Ruiz
  • Ervin Pajor
  • Lachlan Keown
  • Tim Riemann (Octoate)
  • Roald Strauss

Hope you enjoy this release and create new and better games and software for Amstrad CPC! :)

@lronaldo lronaldo released this Jun 21, 2015 · 744 commits to master since this release

Assets 2

This release fixes some small bugs related to the setup script and the install process:

  • Fixed: Unrecoverable error happening only on first run of setup.sh
  • Fixed: Problem with paths having spaces in the middle
  • Fixed: Detecting spaces in the install path of cpctelera (Not allowed!)

Big thanks to Ervin / CPCWiki for testing and reporting these problems.

Assets 2

New features included in this release:

  • Added 2 new fast tile drawing functions for small tiles: cpct_drawTileAligned2x4_f, cpct_drawTileAligned4x4_f
  • Added complete game example Platform Climber