YaGol4CPCCoding Sources

Cliquez sur l'image pour l'agrandir

This is the first version that includes the basic functionality and interactivity every Game of Life should have. There is still a lot of room for improvement, it is not intended to be a final release, but I can't assure whether I will continue working on it or not.


This version only works in CPC6128 (sorry), as it makes use of extended memory banks. The core algorithm can run in just 64KB's, but I wanted to show an information panel while the evolution was running, and for that I needed at least another bank for the panel video memory. A stripped down version without the panel could be adapted to the 464 and 664, but this is not in my priority list right now.

This information panel lies in a different RAM bank than the Game area thanks to the vertical rupture technique. When the panel is being shown, it overlaps with the Game area hiding 2 chars. But thanks to the vertical rupture technique you can scroll line by line (pixel perfect) the game area. Also at any moment, you can hide the information panel (deactivating the rupture), and see the whole Game area, it is also possible to scroll the Game area in this case (it uses a toroidal topology so the top and bottom borders are "connected"), but only 8 lines at a time.

There is another particularity in the video system of this program, it reduces the frame size vertically one scanline (from 312 to 311), thereby incrementing the framerate (from about 50.08Hz to about 50.20Hz). If you have your CPC connected to a monitor or a television it might not accept this slightly increased frecuency. If it's your case I would like to know here. This frequency change is intentional because it simplifies the rupture, but it could be avoided.


When the program starts it asks for a file to load that should contain the initial pattern. There are a few in the disk (files with .PAT extension), but in case you want to create your own, these are just CPC screens with the following "specs":

  • Mode 0
  • Linear layout
  • 128 x 256 pixels (the grid size the program supports)
  • Dead cells should have ink 0 and live cells ink 10 (decimal).
This format is far from optimal and not definitive, each pattern takes 17KB's regardless of its actual size. But there is enough room in a disk for some of them.
Once the pattern is loaded the program starts showing it, from this moment on the following controls are available:
  • SPACE - Start/Pause evolution
  • F - Show/Hide information panel
  • C - Toggle colour mode (from 4 possible combinations)
  • D - Enable double buffered mode, this mode also forces monochrome colour mode, this is an algorithm limitation.
  • VERTICAL ARROWS - Scroll the game area
  • 1-9 - Advance N generations and pause
  • RIGHT ARROW - Keep advancing generations (at a limited display rate) while pressed


★ ANNÉE: 2014


Game (NON Commercial/Freeware/Shareware):
» Yagol4CPC    (Include  Sources)    ENGLISHDATE: 2014-11-09
DL: 63 fois
SIZE: 53Ko

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

» Coding Src's » CPC Als Telefonwaehler (CPC Amstrad International)
» Coding Src's » Delcode Key (CPC Amstrad International)
» Coding Src's » Récupérer une musique dans un jeu CPC (Tom et Jerry GPA 1993,2001)
» Coding Src's » Music Galore
» Coding Src's » Equalisers horizontal et vertical
» Coding Src's » Phoenix Part

CPCrulez[Content Management System] v8.75-desktop/c
Page créée en 082 millisecondes et consultée 734 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.