From 8 to 16 bits

2009-10-30 at 15:56 | Posted in Computer path | Leave a comment
Tags: , , , , ,

It was really like a giant leap for me when I finally manage to save enough money to buy my fist PC, a 286 with 287 at 16 MHz, 1024 Kb of RAM and 40 Megabytes HD. Of course the more immediate thing I noticed was the MHz jump, everything going so ‘fast’. But there was much more to it, for example I was amazed that I could operate with 16 bit integers natively, and with very little overhead even 32 bit integers!, for sure I would never ever going to need more than that, I thought. In spite of all that, there was something even more sweet for me: now I had machine code instructions for multiplication and … even division!, what an incredible thing. It was then that after some more Basic and Assembler I went right to Pascal and some time later to C. Once I learn enough C I never looked back and began developing some games, some IA programs (automatic maze construction, ecosystems on regular square grids of plant-eating worms, 3D puzzle solvers, chess horse problem…), my first 3D engine (it drew only lines, but they were… very straight and… beautiful), some Mandelbrot and Julia set generators, an emergent based electronic circuit simulator… . Then I started to recognize the value of polygons and made my first opaque polygon engine and used it to procedurally generate landscapes very similar to the excellent 8 bit game ‘The Sentinel’. This engine used integer fixed point arithmetic for all 3D operations. A tweaked 320x240x256 mode was used so it looked nice, for those days. And… of course I spent a good amount of time playing games like Scorched Earth, Starcon, Gengis Khan & Bandit Kings of Ancient China, Iron Man, Monkey Island, Loom and many more.

The digital beginning

2009-10-25 at 19:58 | Posted in Computer path | Leave a comment
Tags: , , , , ,

When I was 6 or 7 years old something happened that changed my life forever. I was alone at the lunch room of my house watching TV and a brief documentary about computers was broadcasted. It explained how binary numbers worked and barely anything more, but I knew instantly that was something I wanted to know better. I took notes on a small notebook and for days I fantasized about what a computer could do and how in the world could be programmed. I didn’t know then but eventually I’ll be able to have my own computer!. Fast forward a couple of years and technology was already giving me the opportunity to realize my dream. The campaign for ‘Buy a computer for the family’ began and approximately 1 year later I got an Amstrad CPC 464 with a Z80 at 4Mhz and 64 Kbytes of memory, it used regular music tapes as data storage and came with a fairly good handful of games. It also had a very safe green monitor. This computer is still working perfectly and from time to time I take it out and play some old games loaded from music tapes with my wife María. My first program wrote my name indefinitely on the screen. With no training available I began teaching myself reading books and it was very hard. With time the ways of the bits became, little by little, unfolded before my eyes and I knew it was a life long attraction. In  those good old times loading a game was a game in itself, it could last about 10 minutes and at any moment a read error could arise forcing you to readjust the header height and restart from the very beginning the game loading. At first I programmed in Basic then I learnt Z80 Assembler with a very good book from Rodnay Zacks. I lacked an assembler so I programmed directly in hexadecimal machine code, of course I was very relieved when an assembler finally turn my way. As time passed I began to have more fun cracking the games than playing them, some of the protections where impressive and smart, one on them lasted until the very end but got finally broken. Simplifying it was a piece of code that started with a loop that unencrypted all the rest of the code (that was apparently garbage until that moment). That action made appear a new loop just consecutive to the first and when execution got there, a new loop was reveled. Each loop was different, all the loops used the R register that changed value upon instruction execution, so you couldn’t just trace over the loops because the execution of the tracer instructions changed R value and corrupted everything. It did some more dirty tricks, a really beautiful protection. Some of my favourite games where Elite, Manic Miner, Nebulus and Ghost & Goblins. I had much fun coding a 3D editor, some games, 3D fractal generators, 2D sprite editors, some artificial intelligence routines, the classic Game of Life, a Basic totally translated to Spanish and many more things.

This was an eye opener for me, I learnt what a height field was, and using the second swapping RAM bank this real-time movie was possible on my old 8 bit computer:

Having more fun with the ‘big’ second bank of memory of 64 K bytes:

The Amstrad CPC had a video chip that could be persuaded to do a kind of thing similar to scroll, the good thing is that it was an instant operation. In this program that feature is used in combination with very simple trigonometry to animate a kind of spiralling cross:


My father took me to a science museum and I liked a pair of rounded square gears so spent some time deducing the right proportions between radius, sides and separation and then tested it on the 8 bit computer:

The beginning

2009-10-25 at 11:54 | Posted in Computer path | Leave a comment
Tags: , , , , ,

I have felt attraction for technical fields since I was a child. Around 8 years old I used to design and build robots that could be transformed through a series of sliding and hinging parts into another things, of course they where following the Transformers trend and they where just unanimated dolls made of Tente the cheaper brother of Lego. I also liked very much constructing relatively large buildings full of secret rooms, mortal traps and treasures to be found by conveniently small action figures. In a year or so I started increasing complexity and ended up with various types of shooting machines, it was really fun to build and destroy entire scenarios using those machines. Some of them reached about 4 meters with their ‘powerfull shoots’ and they were completely developed with Tente, no external gadgets. Then I started noticing much more possibilities could be harnessed though combination of electric motors with Tente, this was a nice epoch full of propeller machines and cable controled cars (they could be driven with care on flat surfaces, and sometimes they lasted several minutes without breaking). A nice Tente idea was the introduction of vibrating engines coupled with little tiny skewed brushes that magically allowed for things to move, I even built a skating rink where the vibrating motor was located at the rink instead of in the skating figures. It should be obvious that I didn’t have access to any computer at this time, or I would have been totally absorbed by digital activities. Here are some naive niceties from those days:

First contact

2009-10-22 at 17:49 | Posted in Computer path | Leave a comment
Tags: , , , , ,

Here it is, at last I’ve taken some time away from my Raydiant engine developing process to create a place to expose it. In the next week I expect to upload some synthetic images from this and other projects. To serve as a kind of spoiler here is an image from my Raydiosity engine (immediately previous to the Raydiant engine).

Blog at WordPress.com.
Entries and comments feeds.