Vector Vaults

September 26, 2016 at 5:57 pm | Posted in Computer path | 5 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, 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 three ways of obtaining the full game:

  1. Free download of dsk file: Vector Vaults.
  2. Personalized digital edition (discontinued): the game will thank you in the credits section for your support. Orders should be directed at with subject ‘PERSONALIZED DIGITAL EDITION’ and clearly specifying the name to be used for personalization purposes. Costs 5€ and you will receive at your mail the personalized Vector Vaults dsk. Be sure to write from your PayPal mail as this is the payment method.
  3. Personalized limited physical edition (temporarily out of stock): 3 inch disc physical edition of Vector Vaults available for 18€ plus shipping costs. The game will thank you in the credits section for your support. Orders should be directed at with subject ‘PERSONALIZED LIMITED PHYSICAL EDITION’ and clearly specifying name, shipping address and selected shipping method (see below). Be sure to write from your PayPal mail as this is the payment method.

   Shipping methods:

· EU, ordinary mail: 7.5€

· EU, certified mail: 10€

· Rest of the world, ordinary mail: 11€

· Rest of the world, certified mail: 14€

   This is how the limited 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.

Realike: the bendy engine

December 31, 2012 at 11:13 am | Posted in Computer path | Leave a comment
Tags: , , , , , , , , , ,

Realike is a holistic simulation engine based upon the idea of atom that unifies what you see with what is detected (What You See Is What You Touch (WYSIWYT)) and let physic interactions emerge by themselves. It’s inspired by my previous work from 2004 Pentium IV 3000MHz II: fabric.

The nominal way of making 3D games was and is being explored thoroughly by most developers, that is: everything in the game is an empty triangle shell controllable through predefined animations. But (and this is a big but) the interactions are performed between invisible bounding volumes. Also if you want something to be breakable you must program it specifically. There’s nothing wrong with this traditional way, several of my all time favourite games fall under this category. But there are another possibilities.

Here is mine: every part of every interactive object in the game behaves as it should by itself. Just put out there your avatar or any interactive part of the scene and attach to it some forces applied to specific parts (= muscles) and you are ready to go. All collision detection will be performed over what you see on screen: What You See Is What You Touch (WYSIWYT). Fracture patterns will appear spontaneously whenever enough stress emerges on some part of the system.

One way to do this is just plagiarism of the way things are done in the real world: everything must be composed of (and exclusively of) atoms. Each atom could have position, size, mass, softness, interactions with other atoms, orientation…

Arising problem: the amount of atoms required to construct anything playable is going to be huge. Very careful design is going to be needed to reduce memory usage. And even more care should be put CPU wise. It could be challenging to animate at 60 fps many thousands of interacting dynamic atoms. Let’s also allow for static atoms used to create non changing parts of the game. Realike has been designed to address this issue. Some of its advantages are:

  • Varied material properties arise by themselves from internal specific atom structure (just as in chemical compounds), examples are:
    • rubbery materials
    • rigid materials
    • combination of rubbery and rigid along different axis
    • fragile (easily breakable)
    • unbreakable
    • fabric
    • malleable
    • fluid
  • No need for separate handling of bounding volumes for collision detection and visualization, this just happens by itself whenever something is constructed on the engine.
  • New exotic types of avatars are possible, for example real bipeds/quadrupeds. Watch the video for another example of a wrinkled thick-fabric like ball.
  • The difficult to rate advantage of an exciting new feeling. Hard to describe how enticing is to control an avatar inside an all atom world. You’ll have to trust me on this one until the game ‘Fathomed dodecahedron’ is released.
  • On the game editor front whole new approaches are possible all stemming from the fact you are now dealing with real filled objects with internal structure instead of empty shells.
  • Potentially everything can bend and/or break without any extra effort, it will just happen under the right stress.
  • If individual atom behaviour is well programmed then 2 natural physic traits will emerge by themselves without having expressly been coded: precession on rotating bodies and angular momentum.
  • There’s an oportunity here to innovate also at visual level. How are you going to represent the particles? realtime blobs? individual polygon spheres? using the atoms as the skeleton of an empty traditional triangle shell? are you going to raytrace them? billboarding perhaps? …

Here is gameplay capture of ‘Fathomed dodecahedron’, it runs at 150 fps on my PC:

'Fathomed dodecahedron'

‘Fathomed dodecahedron’

Steampunk landscape

October 21, 2012 at 7:27 pm | Posted in Computer path | Leave a comment
Tags: , , , , , , , , , , , , , , ,

The video below has been rendered with the Raydiant rendering engine, also all the geometry has been procedurally generated with Raydiant from a digital photo using As you will see there are several gear floors mounted in a clock like fashion. At the beginning of the video a close-up of an emerald bearing shows refraction and reflection. The surface of the uppermost plating is bumpmapped and modelled with triangles. Also cylinders, stretched  spheres and boxes are used as geometric primitives. The gears are procedurally bumpmapped on the edges. Everything has global illumination and several material kinds with unique light scattering/dispersing profiles are used. Can you see what is depicted by the whole gear maze? Pay attention to the inscriptions along the way and make sure you watch it on HD setting.

Playing across the domes

January 8, 2012 at 10:17 am | Posted in Computer path | Leave a comment
Tags: , , , , , , , , , , , , , , , , , , ,

The video below is composed of around 2000 renders done with Raydiant at around 1 and a half minute each one. A geometry operator that applies non homogeneous scaling and shear to any contained object is used to transform spheres into beads. Images are automatically postprocessed inside Raydiant to show lens glow on saturated spots. To that extent a subpixel accumulative scalar field parametrized by angle, distance, intensity and hue has been applied at every glowing texel. All the geometry has been procedurally generated inside Raydiant from a digital photo of an undisclosed location of the Persian Gulf (

Colorado: interactive raytraced unlimited geometry

September 8, 2011 at 1:21 pm | Posted in Computer path | 2 Comments
Tags: , , , , , , , , , , , , , , , , , , ,

Mathematical operation sequences had been described for a ray to be realtime checked against all sort of geometries, basic (spheres, polyhedron, cylinders, torus…) and complex (clouds, classical fractals, trees…). The use of procedurally generated recursively inscribed bounding volumes offers a great creative canvas to improve along this line. The following is a realtime raytraced demo of a mountain landscape composed of slightly more than 17 trillion truncated triangular prisms (specifically 17.592.186.044.416). Also, truncated irregular triangular prisms are used as bounding volumes. There’s currently no LOD mechanism in place, every geometry is considered each frame. The 3D procedural texture is combination of 2D and 1D fractal turbulence splines mapped to a suitable color palette and has no LOD control. The demo runs on Raydiant, a general purpose light tracer not particularly optimized for real time. The default Colorado demo quality is preview and you can take high quality radiosity snapshots at any time that, depending on resolution, can last anything from 5 minutes to several hours (so start trying it at low resolution). Camera is controlled with the keyboard. This binary executable is for Linux and uses a Qt 4.6.2 GUI. Because those 17 trillion prisms exist as a potentiality defined by an algorithm they use no RAM. That’s a good thing because to store all prisms around 1 petabyte of RAM would be required. Colorado runs entirely on CPU, so you are strongly advised to execute it on a powerful multicore processor with 4 or more kernels. Raydiant performance grows linearly with kernel count. The binary has been tested on Ubuntu 10.04. The GUI provides you with help about the camera movement and means to change resolution. As the GUI is still at alpha stage mess with it at your own risk. More info about Raydiant is available at previous posts at this blog and at ompf. To get personalized renders from the engine this online service is available. Note that Colorado is different from what Euclideon is doing. Colorado is a raytracer and could have used *any* combination of geometry types: spheres, cylinders, torus, triangles, polyhedrons, polygons, bit matrix, washers, quadrics, points…
I found it difficult to grasp the meaning of elevated quantities like 17 trillion, to help me see what it amounts to this zooming sequence with a factor of approximately x4 million has been developed:

This slideshow requires JavaScript.

Download Colorado here, execute and please mind this instructions. How to select the antialiassing level. How to make radiosity snapshots.

Should circumstances allow it (meaning time is available) I intend to release a very simple concept game taking place on a large scenario, may be with real time completely dynamic radiosity over unlimited light sources.

Golden slabs, glitter and silhouettes

August 18, 2011 at 7:41 pm | Posted in Computer path | Leave a comment
Tags: , , , , , , , , , , , , , , , , ,

These mosaics have been made using some filter trickery, isosurfaces, height fields, procedural 3D manipulation and lastly rendered with the Raydiant engine. Try it with your own photos at

Cute mosaic grows

April 20, 2011 at 5:01 pm | Posted in Computer path | Leave a comment
Tags: , , , , , , , , , , , , , , , , ,

Thank you all for the support. Cute mosaic is getting popular and it seems many people want to get creative making mosaics from their photos. We have several interesting suggestions to improve the web (like making mosaics out of buttons, integration with PayPal, more materials…) that are being implemented right now. In the mean time here are some articles about the web and 3D engine:

Make a 3D radiosity rendered mosaic and win an iPod

March 26, 2011 at 10:39 am | Posted in Computer path | Leave a comment
Tags: , , , , , , , , , , , , , , , , ,

At we have a brand new bunch of mosaic types, better and prettier than the previous ones. To celebrate we are making a contest. So if you are creative just go to, make a mosaic for free, upload it to facebook and wait for the people to vote. If you win an iPod will be yours!. Here are some of the new mosaics:

Mosaics mosaics mosaics

February 21, 2011 at 5:36 pm | Posted in Computer path | Leave a comment
Tags: , , , , , , , , , , , , , , , ,

After some fine tuning, the mosaics produced by the Raydiant engine at are now showing for what they are: full radiosity 3D renders. Try any of this images at full resolution and see for yourself. And remember to do it with your photos for free at Also there is a new improved web interface.

Cute mosaic for you

January 29, 2011 at 5:55 pm | Posted in Computer path | 1 Comment
Tags: , , , , , , , , , , , , , , , ,

After some time at last a public server is ready to attend petitions for personalized mosaics rendered with Raydiant engine. There are almost 300 different configurations to choose from. The resulting mosaic can have up to 24 megapixels. No need to register, just configure your mosaic (the finnish method ‘Realistic’ is a full-fledge-no-tricks radiosity render of the composed mosaic), upload your photo and specify the mail where you want to receive the finished mosaic. Your feedback is most welcome. The web in question is Let me know if you find it fun!

Next Page »

Blog at
Entries and comments feeds.