Deva Drifter

2020-07-07 at 10:07 | Posted in Computer path | 2 Comments
Tags: , , , , , , ,

Deva Drifter is a precise and satisfying top down arcade physics based driving game EXCLUSIVE for the Amstrad CPC with rigid body dynamics and SUB-pixel sprites providing smooth handling at 50 frames per second on overscan. It’s the third entry of the Hidden History Saga game series (after Light Lands) and may be the first CPC game with true rigid body dynamics and SUB-pixel sprite drawing (both in the rotation and displacement of the car). This is what Deva Drifter looks like:


Enki says to you: “Utnapishtim, to avoid Annu’s watery genocidal plans I command you to build a huge boat. Every blueprint piece for the emergency watership is hidden inside your extreme driving lessons trophies, because of reasons. Go get them all before the rain comes! Also be careful of big crashes as they will temporarily shutdown your car while its automatic repairing system takes care of the mess.”

How to get the game

  • Deva Drifter: available for free as a download link at the end of this post.
  • Deva Drifter deluxe: the DELUXE version of the game with lots of extra tracks, available as physical or digital edition:
    • Deva Drifter deluxe (Digital Edition): orders should be directed at with subject “Deva Drifter deluxe (Digital Edition)”. Be sure to write from your PayPal mail as this is the payment method. The cost is 3.9€.
    • Deva Drifter deluxe (Physical Edition): temporarily out of stock (on an original 3 inch Amstrad CPC disk. Orders should be directed at with subject “Deva Drifter deluxe (Physical Edition)” and clearly specifying name and shipping address. Be sure to write from your PayPal mail as this is the payment method. The total cost is 69€ with shipping costs included by registered mail).

System requirements

  • Gameplay is better on original hardware: Amstrad/Schneider CPC 464/464+/472/664/6128/6128+, but you may also play using a compatible emulator.
  • 128K of RAM.
  • 3 inch disc drive.

Inside Deva Drifter

Development of Deva Drifter has revolved around two main challenges:
1. Calculating the physics.
2. Providing adequate user feedback through the restricted graphic output.
As for the first challenge: each wheel has static and dynamic grip physics, also speed is independently calculated for each wheel. This may seem unnecessary but because total speed of one wheel is the sum of linear speed plus angular speed this implies each wheel may have a different speed. Car steering is indirectly derived from front wheels smooth analog turning friction with the ground. Every applied force generates torque and modifies the car lineal and angular momentums, as it should be when using rigid body dynamics. There are four different types of ground (tarmac, dirt, ice and quicksand) which modify how each independent wheel reacts and contributes to the movement of the car. And yes the engine handles well the case when each wheel is on a different ground at the same time.
Addressing the second challenge: what good is going to do calculating fun physics if it’s all lost on low resolution graphics output? this is frequently overlooked (as I did). When I first ported Deva Drifter prototype from Linux (high resolution and subpixel drawn) to Amstrad CPC (pixel precise sprites) the feeling of driving was gone. At first I thought there was a bug in the ported code that ruined it, but after much investigation the situation became clear: even though the physics simulation was working perfectly well the diminished graphic feedback to the user was not transmitting it effectively. So I added subpixel precalculated 2x SSAA drawing achieved with 7 possible colors in mode 1 using epileptic sprites (to enjoy the game to the fullest play it on a CRT monitor as usual on original hardware). Then I added overscan to increase sprite drawing resolution to 368*264 pixels (virtual 736*528 subpixels) and in turn increase realtime visual feed back. Internal car calculated location resolution was higher by a lot so that was not a problem. Also a total of 1024 virtual car sprites are used dynamically modifying 256 precalculated sprites on the fly with 16 separate car drawing routines. Everything at 50 frames per second. After all that, the car driving feeling was back on the Amstrad CPC.
That’s a significant amount of Amstrad CPC CPU power poured into so few pixels. I’ve been told about Deva Drifter: ‘it’s like trying to make a nuclear power plant out of card board’. I still don’t know if that is a good or a bad thing…

Deva Drifter is coded in C, assembler and machine code and has been possible thanks to:

  • GCC: as C++ compiler for several development tools.
  • Inkscape: well thought vector editor.
  • GIMP: allows accurate reproduction of CPC mode 0 for designing Amstrad CPC graphics.
  • Roland Perry: one of the lead designers of the original CPC.
  • Wolfgang Amadeus Mozart: something about music.
  • SDCC: awesome C compiler and assembler.
  • CPCMANIA: useful tech info.
  • WinAPE: CPC & CPC+ emulator.
  • CPCtelera: very comfy way to install and use SDCC and WinAPE. Vector Vaults doesn’t use them, but CPCtelera has nice libraries for the CPC for you to try.
  • Wine: runs WinAPE on Linux.
  • Arimo TTF by Steve Matteson.
  • Raydiant++: 2D renders.
  • ConvImgCpc: image conversion tool.
  • LMMS: music arrangements.
  • Linux: worst OS there is, except all the others.
  • iDSK: easy way of creating Amstrad CPC disk images.
  • KDevelop: as editor of source files and GCC frontend.
  • gedit: as generic text editor.


Try entering Light Lands winning code into Deva Drifter and see what happens…

Health warning

People sensible to unflashy menus are advised to play this game with caution.


This product is not affiliated, associated, authorized, endorsed by, or in any way officially connected with AMSTRAD, or any of its subsidiaries or its affiliates.


Vector Vaults

2016-09-26 at 17:57 | Posted in Computer path | 8 Comments
Tags: , , , , , ,

Vector Vaults is an original and addictive fast retro arcade bedroom coder game exclusive for the Amstrad CPC that will test your pilot skills. It’s the first game of the Hidden History Saga and upon completion will give you a secret code to use in Light Lands (the next entry in the series). Game play is based upon vector graphics (100% spriteless) with 25 frames per second, multi directional, analog variable speed, pixel precise scroll (may be the first game to do this four things at the same time on the CPC?). Physics on ship and camera are fine tunned to provide natural and smooth handling throughout the nine stages where gameplay is the main focus. If you want the smoother experience try it on original hardware. Vector Vaults pays homage to the Vectrex video game console and plays like this:


Game story

You are Samuel, an human abducted by some ‘dingir’ into Annu’s mother ship in orbit around earth. They make an offer: help us break into the onboard computer SOLOMON using virtual avatar Enoch. They can’t do it themselves as their neural profiles are well known to SOLOMON. Your reward: Galactic Imperium citizenship. Among many other advantages this will extend your lifespan indefinitely. You don’t know yet who’s Annu or why these ‘dingir’ want to break into SOLOMON, but unending life is enough motivation. Just before a dingir called  Samael switches you to virtual mode inside SOLOMON you state: ‘Let’s do this!’ in a loud confident voice.


You are in charge of a ship shaped virtual avatar called Enoch. Your job is to penetrate each of the security encryption layers of SOLOMON in order to finally crack the computer and defeat Annu, so Vector Vaults is kind of a digital lock. The ship energy level is located on the bottom left corner of the screen, keep picking up batteries to refill it. Joystick or keyboard (O, P, Q, A and SPACE) may be used to play. The fire button (or SPACE key) activates the turbo speed. A far lenient skill level called ‘child’ is available from the main menu so every one can enjoy the game. Also pressing ESC key at any moment exits current game.

System requirements

  • Amstrad/Schneider CPC 464/464+/472/664/6128/6128+ or compatible emulator (like WinAPE for example).
  • 128K of RAM.
  • 3 inch disc drive.


There are two ways of obtaining the full game:

  1. Free download of dsk file: Vector Vaults.
  2. Physical edition: temporarily out of stock (3 inch disc physical edition of Vector Vaults available for 69€ (shipping costs by registered mail included). Orders should be directed at with subject ‘Vector Vaults physical edition‘ and clearly specifying shipping address. Be sure to write from your PayPal associated mail as this is the payment method).

   This is how the physical edition looks like:

Vector Vaults technology

Vector Vaults draws inspiration from the excellent Amstrad CPC Scrambler clone ‘Killer Cobra’ (which uses hardware scroll). Vector Vaults does not use hardware scroll but a new graphic technique called ‘mode c’ (not mode 3) which I tough of around 29 years ago. This ‘mode c’ provides 3 colors and 160×200 pixel resolution (which is less than ideal) and it’s primary advantage is being able to clear the screen seven times faster (comes very handy for vector graphics). Internally mode ‘c’ is a double buffered mode 0 that works by manipulating the palette between frames cyclically, keeping always 14 of the 16 colors invisible (hence the three usable colors counting background). That way the task of erasing the whole screen may be divided into seven steps, each performed on a consecutive frame. This has to be done alternatively on each of the two video buffers. This technique is made possible thanks to how the Amstrad CPC handles the palette and, of course, may be used for any kind of scroll or other types of movement.

For those of you who are curious, during development I tested using mode c versus erasing only the lines and pixels that were drawn on screen (by redrawing them with background color). The result: mode c was faster, saved memory (less code and data structures) and simpler.


Vector Vaults is coded in C and assembler and has been possible thanks to:

  • Roland Perry: one of the lead designers of the original CPC.
  • CPCWiki: THE Amstrad CPC encyclopedia. Tons of useful examples and great place for the Amstrad CPC enthusiast.
  • Wolfgang Amadeus Mozart: for his underappreciated north Madagascar horned lark studies.
  • SDCC: awesome C compiler and assembler.
  • Grimware: highly useful technical CPC info.
  • CPCMANIA: good tech tips and tricks.
  • Johann Sebastian Bach: decisive neighbor’s mother smoking problem intervention.
  • WinAPE: best CPC and CPC+ emulator.
  • CPCtelera: very comfy way to install and use SDCC and WinAPE. Vector Vaults doesn’t use them, but CPCtelera has nice CPC libraries for you to try.
  • Shining: game box tip, Vector Vaults shares the same box as his excellent CPC game Defence.
  • Wine: runs WinAPE on Linux.
  • Raydiant++: 2D and 3D renders.
  • GIMP: allows accurate reproduction of CPC mode 0 for designing Amstrad graphics.
  • ConvImgCpc: image conversion tool.
  • LMMS: music arrangements.
  • Raywarping: back cover background procedural texture 2D render and avatar 3D render.
  • Wilhelm Richard Wagner: greatly contributed to inline ASM.
  • Linux: best OS there is.
  • GCC: as C++ compiler for several developed tools.
  • iDSK: easy way of creating Amstrad CPC disk images.
  • Antonio Lucio Vivaldi: dolphin saving antarctic mission sponsor acquaintance.
  • KDevelop: as editor of source files and GCC frontend.
  • gedit: as generic editor.
  • Xyphoe: good youtube channel to spread the word.

Side note

Just in case it’s useful to anyone, the formulas for calculating frequency and period of sound portrayed on the following official Amstrad CPC manuals should be corrected:

  • Amstrad CPC 464, 1984, Spanish version.
  • Amstrad CPC 472, 1984, Spanish version (incorrectly titled Amstrad CPC 464 on the cover).
  • Amstrad CPC 6128 Manual del Usuario, 1987, Spanish version.
  • Amstrad CPC 464+, 6128+, 1990, Spanish version.

The right formulas are:

  • frequency = 440*(2^(octave+(N-10)/12))
  • period = round(125000/frequency)


The dsk file: Vector Vaults.

Blog at
Entries and comments feeds.