Learn to Write (Retro)Videogames! new sei italiano?
Learn to Write (Retro)Videogames! new sei italiano?
Embark on a journey into the (retro)programming of three simple video games, three "easy pieces", which will help you become familiar with some basic concepts, to apply them to computers with limited resources.

The purpose of this book, therefore, is not just to illustrate a source code: instead it offers ideas for actively developing the three easy pieces.

Programming while reading.
Learn to Write (Retro)Videogames! new sei italiano?
Embark on a journey into the (retro)programming of three simple video games, three "easy pieces", which will help you become familiar with some basic concepts, to apply them to computers with limited resources.

This log contains only updates since the last released version (1.18).


  • BETA UPDATE [rev. 20260108] BETA


    commit: 2b1aa08ce (on github)
    • Add support for CPUSPEED instruction
    • Enable support of "under ROM" memory under atarixl #947
    • CLS code space optimization on ef936x #1229
    • Add FAST (2Mhz) trick on multiplexer sprites under c64 mode of c128
    • Add support for FAST / SLOW instructions
    • Add support for fine horizontal scrollling #330


  • BETA UPDATE [rev. 20260104] BETA


    commit: 7c03f0879 (on github)
    • Add support for fine horizontal scrollling #330
    • Add support for DEFINE STACK SIZE and START pragmas
    • Optimized offset table generation on pc128op, mo5 and to8
    • Optimized peephole for 6309
    • Optimized peephole for 6809
    • Optimized CONSOLE module deploy
    • Optimized number of banks to be loaded under pc128op
    • Optimized zero PUT IMAGE flags under ef936x
    • Optimized CLS under SCREEN MODE UNIQUE for efx936x
    • Optimization of ef936x unused variables
    • Optimization of ef936x's vbl call
    • Optimized code output when no DATA is present


  • BETA UPDATE [rev. 20260101] BETA


    commit: 147b4f272 (on github)
    • Optimized banked access
    • Optimization of unread variables
    • Optimization of ef936x variables
    • Fixed console initialization if nothing is changed
    • Fixed console initialization on ef936x on startup
    • Optimized unused variables at each peephole round (6809/6309)
    • Add support for DEFINE STACK SIZE and START pragmas


  • BETA UPDATE [rev. 20251231] BETA


    commit: 8d572fc5d (on github)
    • Optimized ADD and negative constants
    • Optimized carry to accumulator conversion under 6309/6809
    • Fixed fill routines under 6309/6809
    • Optimized code generation for 6309/6809
    • Fixed DOUBLE BUFFER pragma under ef936x (pc128op)
    • Optimized code generation for z80 on direct assignment
    • Optimized code generation for 6309/6809 on direct assignment
    • Fixed inline variables on 6502 code generation
    • Fixed variable generation under 6502
    • Added preliminary support for locally unused variables optimization
    • Optimize direct assignment of array elements #1230


  • BETA UPDATE [rev. 20251226] BETA


    commit: be3d7948c (on github)
    • Postponed CLS routines on ef936x (mo5, pc128op, to8)
    • Optimized STRING function using dynamic string functions
    • Extended dynamic string library to support filling
    • Optimized array access on dynamic string type
    • Added ENCRYPT / DECRYPT instructions
    • Add support for DESERIALIZE instruction
    • Add support for SERIALIZE instruction
    • Add support for STRING on TYPEs
    • Refactorized HEX to encode memory areas (dynamic string size)
    • Optimization of string descriptors copy #1228


  • BETA UPDATE [rev. 20251220] BETA


    commit: 26ba7b691 (on github)
    • Add support for STRIG function #373
    • Fixed GR PRINT / GPRINT when embedded is used
    • Changed IMAGEREF data type to store frame size
    • Optimization of string descriptors copy #1228


  • BETA UPDATE [rev. 20251216] BETA


    commit: 88a36ceb9 (on github)
    • Add support for REU/GeoRAM for targets c128 and c128z #1224


  • BETA UPDATE [rev. 20251208] BETA


    commit: 02344efbd (on github)
    • Add support for GR PRINT / GPRINT #551
    • Added support for DEFINE GPRINT INLINE / EMBEDDED
    • Allow coexitence between double buffering and memory increase under pc128op
    • Increased bank availability under pc128op (up to 64 KB)
    • Refactorized PRINT RAW under ef936x
    • Refactorized PRINT under ef936x
    • Add support for STRIP with ID
    • Added preliminary support for STRIP on FLIP IMAGE (virtual SEQUENCE)
    • Added preliminary support for STRIP on LOAD ATLAS


Any problem?

If you have found a problem, if you think there is a bug or, more simply, you would like something to be improved, write a topic on the official forum, or open an issue on GitHub.
Thank you!