Sometimes on IRC1
you find people you've not met in many, many years.
Inevitably at some point the discussion have to go round what you've been doing all these years, if you are still a programmer, where you are working, etc.. etc... and then of course younger participants start asking questions about our older stuff, probably because they are not used to interact with dinosaurs who actually programmed in COBOL, used black and white terminals, and even touched punch cards.
So, for the sake of my own declining memory I decided to do a walk in memory lane and write down an exhaustive (or at least as exhaustive as I can remember) list of the programs I wrote or participated in a way or another.
While I was writing this I quickly realized it would be a very long list, so to make it more edible I have split it in three parts which roughly correspond to three phases of my life:
- This part covers what I did before I started programming for a living, so roughly from 1981 to 1995
- The second part will cover the period of time from 1995 (when I started at Adeline Software) to 2005 (when I left France and move to Norway)
- The third part obviously will cover what I did since 2005
I unfortunately lost most of the early works.
Back in the days me and my family were ruthlessly fighting over the audio-tapes: They wanted to record recipes or concerts broadcast on the radio while I needed them for saving my programs. Add to the mix the awesome reliability of magnetic medias
over long period of time... the end result is that most of my stuff is lost. All I have are printed out screenshots and listings, notebooks with scriblings and my memory.
On the Atari
the situation is much better because I knew quite a lot of people and most of what I did was released around, so many people happened to have copies of my programs and then ended-up on Pouet.net or other computer software archives. Source code wise I believe I still have about half of what I did.
University projects, I have all of it. BTS projects on the other hand I don't have anything remaining, which honestly tells more about my interest about what I did there than in my ability to keep backups!
Time to start, I hope I have put enough screenshots to make the thing not too boring!
The Genesis: 1981-1983
In the early years I did not have my own computer so I had to go to the local microcomputer club and did learn BASIC on a ZX80 and then later on had access to slightly more advanced machines such as Louis XIV2
As far as programming goes it was variants of Hello World
, What's your name
, Guess the number
and then later things like Snake
or Scroll Racer
In the mean time I was dreaming while reading the end pages of La Redoute
and Les 3 Suisses3
, where an endless list of micro-computers was displayed...
The Oric period: 1983-1987
I spent a good part of the summer of 1983
working in the fields in a farm helping in the corn fields, which allowed me to buy my first computer: A brand new Oric Atmos.4
Me and my Oric
I would keep this machine for almost 4 years, and in the process wrote quite many programs, first in BASIC and then in 6502 assembler5
... mostly because I did not have much money to spend on software so it was easier to write my own.
My first programs were mostly typed from magazines such as Hebdogiciel and Theoric, but eventually I wrote my own, such as Oric Paint
(inspired by MacPaint, 100% BASIC), Panic Miner Maze
(an arcade game with about 30 hand made levels, highscores, scrolling text, 90% BASIC and 10% ASM) and Xanthenos
(a role playing game, never finished it because it was too large, took too long to load from tape and ultimately got corrupted).
There was also a gazillion of small utilities (character set editor
, sound designer, attempts at compressing data, disassembler, ...) which I used for my other projects, and also many pages of sprites, animations, background graphics and pictures I did for a number of game projects which ultimately got nowhere.
I wish I had photos of my first public attempt at playing music on the Oric. It was pretty bad but also pretty cool in some awkward way: Me and a friend came on stage each with an acoustic guitar on which an Oric was fitted just under the strings. Each of the Oric was powered by a big pack of batteries stored inside the guitar frame, and preloaded with a simple Synthesizer
program that played notes when pressing the keys.
I bought an Oric MCP40 graphic printer and plotter and wrote my own hard-copy program
able to print out color pictures much faster than what was otherwise available. I also used the printer to write a small newsletter for a high-school assignment and later used my Oric to resolve my maths questions and print out curves on the printer6
The Chevrolier News
Around this time I had a friend who had an Atari 800XL and we started to work on our own role playing game (inspired from our Stormbringer sessions), sharing the source code, until I realized why his code ran like crap on my machine while mine ran perfectly on his: The Atari had a 2mhz processor while the Oric was only 1mhz.
That was basically the end of the project, but TTZP Inc
was born and at least one Cracktro
would be released in the wild bearing this signature along with the Dbug II
The TTZP Inc logo
The Atari ST period: 1987-1993
I unfortunately had to sell my Oric Atmos so I could buy an Atari ST7
I started slowly with the ST Basic
provided with the machine, but then quickly got access to the GFA Basic8
. I'm not quite sure how many things I wrote in GFA, but basically during all the time I used Atari ST machines I used GFA to build tools (editors, colors and gradient generators, text converters, data packers and encoders, ...) it was really the equivalent of what people would use Python
Interestingly enough, TTZP Inc
survived the passage to the 16bit generation, and since my Atari XL friend (Dr Click
) also moved to the Atari ST, we resumed the development of our role playing game.
Ultimately the game will never be released but would end up as being the basis for one of the Phaleon Demo menus.
I guess my first released GFA programs were a cracktro called Sea of Suns
, I've lost the code but I was able to find the main picture (which honestly is the best part).
Sea of Sun
I was not particularly satisfied with the existing painting programs at the time, so I wrote my own, called Aquarel
which had as an objective to be a kind of replacement simulating traditional tools and materials9
View of the beach.
, a big year for me because I got my Baccalauréat G2
(Accounting, with computer programming option) and proceeded to the university... to prepare a DEUG de droit
(degree in law) a the local university.
Let's just say that these three years could have been put in the 'better forgotten' category, but at least this helped dissipate the idea that the concepts of law, justice, morality and rightness were related. They are not.
Mission Elevator graphics
That year I released the Mission Elevator
cracktro (still written in GFA Basic) and my my first real 100% assembler code, the Double Scroller
intro using an ugly font and a ripped music. The switch came thanks to K-Seka
. I had earlier attempts at 68000 assembler using Profimat ST
, which unfortunately was not able to survive things like resolution changes or playing with interrupts without dying horribly so should just be forgotten!
Then later I wrote the Dragon Slayer
intro, still using K-Seka
, inspired by some screenshots of an Amiga Game which was never released (as far as I know). That was my first intro involving very big sprites and sampled sound. It will end up as a cracktro for the game Lin Wu's Challenge
By the time 1989
came, Dr Click
had already dropped out of sight.
He was also at the university and decided that his studies were more important than programming games and demos. At this point I continued alone on the game project and started to work on my own version of Dungeon Master
. The first version was in GFA Basic but would later be converted to 68000 assembler.
I also decided to give a shot at 3D graphics and played with Vector Balls
and Line Routines
Dbug Vector Balls
The first wireframe attempt was using the Line A, but I quickly realized that writing my own routines was the way to go. In short this means that I participated to the early contests of 'who can draw the largest number of diagonal lines in a single frame'
. I participated until it became obvious that the contest at changed to 'who can waste the largest amount of memory to beat a stupid challenge'
TTZP 3D logo
At the same time I was working on my Big Scroll
, a mammoth scrolling demo using 160x200 letters10
The code was not particularly efficient but it was how Mit
became involved in the demo scene: He somewhat got hand of my scroller from his local disk swapper, realized I was living in the same city and contacted me.
I basically taught him all I knew about 68000 programming, he printed out the source code and asked me questions on the phone about what this or that was doing.
The High Scroll
It happens that this was a good investment in my own time because soon after that the student was teaching the master: While I was busy wasting my time at university Mit
was skipping school to learn assembler instead.
After a short while he was better than me and then returned the courtesy by pointing out where my code could be improved.
I have to admit that my ego took a hit, but on the long run it taught me a valuable lesson about keeping an open mind and accepting that sometimes other people know better and are worth listening to.
This was the beginning of a cooperation who would endure until 1998
, both in the demo and work environments.
By the time 1990
came we had started to work on our own overscan routines and released our first set of demo screens under the TTZP Inc
We got then contacted by Stan Mecury
and St Wars
, both groups wishing us to join them. We ended up joining NeXT
and almost immediately started to work on The Charts
The Charts 2
Since 3D seemed interesting but got kind of difficult to work with using only assembler statements I started to write my own 3D Editor
- of course in GFA Basic
GFA 3D Editor
Still in the tools department, I had to fix some productivity issues caused by not having a hard drive: Loading everything from disk was slow, very slow, and after a crash and a reboot it would have to reload it all again, which when programming in assembler is a frequent occurrence.
I solved the problem thanks to RamBoot
, a Frankenstein tool built from existing software (a reset resistant ram disk and a dead key handler) to which I added some boot sector checking and file copying code.
The end result was fabulous: My Atari ST had 2.5 megabytes of memory, and when switched on it would start the program which would then test if it was already running. If not running it would create a ram disk and then copy files from the floppy disk to the ram disk (from a user edited list). If it was already running it would just compute a checksum to verify that the ram disk content was not corrupted, and would then proceed to auto boot from the ram disk, loading the assembler, debugger, source code and assets, ... all from the ramdisk.
As a result I was able to work much faster than if I ever had a real hard drive.
Additionally the tool had some fancy shortcuts to fix screen distortion and color palette, reset the YM sound, and was able to check that no virus was present on floppies while not annoying us with my own bootable floppies thanks to a white list I maintained of our own boot sector checksums.
On the side I started working on a vertical scrolling Shoot-Em Up
using hardscroll and top+bottom border technics. The code was able to auto-detect the tolerances of the machine by trying to start the border triggering at various positions and detect if an IRQ managed to start up at some normally non visible scanline on screen.
Shoot em up
Then came 1991
and a major shift in my life: I miserably failed at the university and decided to re-orient myself toward computing, so I moved to Laval and started a "BTS Informatique de Gestion"
(Diploma in Computer Science applied to accounting) at the Douanier Rousseau
is probably one of the most boring places on earth (hint: A Mc Donald restaurant closed because it was not making enough money).
On the plus side I had interesting discussion with the boss of Parx Software
and I met two brothers who would later give us screens for the Phaleon Demo
under the group name The Nerve Center
Expose Software Logo
and I started to work on Euphoria
, a relatively advanced arcade game for Expose Software
was coding the main game while I was doing the intro, menus and bonus levels.
The intro sequence had some a nice module and highcolor pictures and fonts made by Chromix, and both the main menu and high-score screens were rendered in full overscan with a digi-drum music playing the background.
The high-score also used hard-scrolling techniques and full palette changes each line, just because we could.
We learned some precious nuggets of wisdom in the process as well, such as these:
- A crappy game that get released is better than a perfect one that never get finished
- It's more important to focus on the core of the game than on the fluff around
One has to learn the hard way sometimes...
Technically there was at least one actually working part of the game, the Fulltron
, which as the name suggest is a Fullscreen version of the game of Tron. Calling the game difficult
would be an understatement, but at least it was fully playable.
During the rest of the year 1991
we released a number of Charts, but I only participated as a graphic artist (I did the user interface element and animations in the Charts 5
The 5th Charts
I later participated to the end of year Official Charts Compilation
we did, by writing the the minimalistic loading screen
(it had to fit in memory on a half meg machine while other intro were running).
Charts Compilation Loader
The second contribution to the compilation was the intro screen, featuring a large picture by Bruno Bellamy
with an overlaid vertical hardscroll.
Charts Compilation Intro
The Charts adventure finished with the 6th Charts
, my first ST/STe compatible intro (with additional digisounds on STe) featuring a game of Tic Tac Toe, font zoomer, and almost complete fullscreen rendering with a lot of scrollers moving all over the place.
The 6th Charts
I would close the page for 1991
with screenshots for what I did at school, but I doubt that the text mode based automated ticket delivery machine
written in Turbo Pascal
would look impressive. On the other hand I did that at home on my Atari ST using PC Ditto
... yeah... the pain...
Of course, to create all these demos and games we also had to create tools, such as the Ultimate Gradient Maker
Ultimate Gradient Maker
was our big year, after finally almost two years of hardwork we released the Phaleon Gigademo
was a team effort, first started by The Replicants
, it was finally NeXT
who finished it, and I have to non-modestly say that it's mostly the Angers Team who did it. Here is the list of my own personal contribution to the project.
I wrote the mini boot-intros
present on three other disks, that tells you to insert the first disk, as well as all the graphics for the NeXT Step
environment, and NeXT
Phaleon: Insert Disk
Phaleon: Loading and Depacking
Even if it does not look like it, this NeXT Step
simulation code was quite difficult to write.
Since all the display was busy trying to display the overscan, it made it quite difficult to do things as simple as showing the opening of a new window or the launch of an application. In the end I had to interlace some rectangle blit-copy calls in each scanline to achieve a decent display performance.
I also wrote the Fullball
screen, which as the name hints involves vectorballs in fullscreen.
The only part I did not do was the music, all the rest (including the eyes opening animation) were done by me. The picture was kind of difficult to do because at the time there was no software able to handle overscan formats, meaning that a lot of stitching and gluing had to be done.
In the end I used a combo of my own program (Rembrandt 2
) and Degas Elite to get the final result.
I wrote in one afternoon a very lame ShadeBobs
hidden screen (you need to press reset somewhat after the main intro)
The Phaleon Dungeon menu
of course was there, finally released after many years in the work!
Despite not being a complete game, the Dungeon Menu
features a number of gameplay elements suchs as an auto-filling of the map based on your movement, both invisible and fake walls, a roaming monster that teleports you back to the center area if it finds you.
If the player got lost, all he had was to press the HELP
key to access the built-in help, and the texts were available in four languages and could be changed at any time using the /afunction keys.
Considering the art, there was a nice selection of high resolution graphic assets, and a nice and relaxing soundchip music to accompany.
Since this Dungeon menu started as a game engine, I had a complete Dungeon Map Editor
for it, featuring multiple-level loading and saving, label/text editor, minimap display and even a printer-out mode.
Dungeon Map Editor
Now of course, both the Shadow of the beast
menus were a bit slow to use if you wanted to go directly to a particular screen, so ultimately we added a Fast Menu
with a simple list of entries to select.
The Lamer Test
was written by Mit, but it used localized data generated by a tool I wrote.
And of course there was also the Illusion
This screen almost did not make it, some people said it was pointless to do STe specific code, that there was not enough STe machines on the market and that it would take some disk space that could better be used by other demo screens we had left over.
In the end I got it in by negotiating: If I could make it run on a normal 520 STe it would be ok, if it required a 1040 STe then it would be ditched. It took some time and effort, but in the end I managed to get it to fit in half a meg while keeping most of the features.
The distorted picture from Killer D
The Flexi Scroll
, of course inspired from Unlimited Matrix
And the famous rotating rasters, copied from an Amiga
demo who claimed that an Atari could not do that
Illusion Rotating Rasters
I did not code anything in the BudNext
Screen, but I've drawn some of the graphics.
We also participated to Zuul
's NTM Mega Demo
with a guest screen coded by Mit
, all I did was writing scroll texts, design some of the vector shape and draw the logo.
NTM Guest Screen
My last Atari production of 1992
was an intro for the Caledonia PDL
What makes that one interesting is that it had to run on ST, STe, in color and in monochrom as well. That made for some interesting coding indeed.
Caledonia in Monochrom
Caledonia in Color
On the serious front, I installed on the school computers some root level software written in QuickBasic
to hide all my editors and tools so I did not have to use the horrendous IBM RS6000
text editor when writing C, COBOL or SQL Queries.
I never got caught, and even found out that the IBM
team upgrading machines spent more than half of their time looking on machines for pirated/non licensed software, which kind of annoyed the lead teacher.
The Falcon period: 1993-1995
I got myself an Atari Falcon 03011
, and started programming on it my BTS end of year project: WIND-BUL
Wind-Bul was supposed to be an advanced version of the Ambulance software used by my father. He had just bought a Falcon as well, and wanted to port his customer database and accounting software from his MS-DOS PC to something moder with icons and windows.
I did not manage to finish the project to a usable state but I got a prototype able to read all the data of his old software and display it on the Atari.
WindBul Customer Search
After the summer break I was on my way to Besancon to prepare a Licence Informatique
(Bachelor Degree in Computer Science) at the UFR Sciences et techniques
A combination of new technology, new place, lot of work at university... associated to many social events, parties and drinking, resulted in me not being as productive as I was before.
Nevertheless I still managed to release multiple beta versions of Rembrandt 3
, while working remotely with Mit on a Falcon 030 demo which unfortunately did not go very far (The project was way too ambitious, and we spent a lot of time fighting with documentation, TOS and DMA bugs, learning the DSP, writing tools, ... so basically all that remains is few true color pictures of the intro sequence)
Falcon Demo Alien Base
Falcon Demo Animation
Besancon University: 1993-1994
At the end of the first university year (that would be the first half of 1994
) we had to release our team projects.
Technically I will call them 'my projects' because realistically I was the only one in the team working on them thanks to an arrangement: They would do all the projects involving pure mathematics and abstract stuff, while on my hand I would do all the projects involving graphical
stuff or low level
I guess that was against the spirit of the rules, but the end result is that I got very good grades for things I sucked at, while they got even better grades for things they had zero interest in: I call that a win-win situation!
The first project was for the Computer Graphics course assignment, and since I already had done on the Atari ST all the things we were supposed to learn (Bresenham, bitmap-ed graphics, sprites, ...) I decided to up the ante
and write a complete 3D renderer with basic shading, textures and gouraud interpolation and Z-Buffering.
Thus the name of the executable: ZBUFFER.EXE
The entire code was written in Borland C++, and had to use 'far pointers'
because of the size of my buffers it would not fit in conventional segments. The end result is that it runs like crap because of horribly convoluted pointer generated code.
All the textures were drawn on the Atari
, and the model and data were exported from a GFA
The second project, called Solar System
was written for the Projet d'Architecture des Systèmes Informatiques
(Hardware/Assembler course basically) where we had to write something in 8086 assembler.
Coming from years practicing 680x0
, asking me to write 8086
assembler was like asking me to hit my fingers with a hammer while screaming I LOVE IT!
It was not going to happen. On the other hand I did not want to get a null grade for this assignment.
After much reflexion I came to the conclusion that I would accept to write 80386
code, that would provide me with enough registers and advanced instructions to save my sanity.
I had to argue with the teacher, but in the end he got convinced that having 32 bit registers would indeed allow me to do high precisions computations for the trajectories of planets, and that doing that in 8086
would be much more painful.
So I got away with doing 80386 code while everybody else in the group had to do 8086
So in the end I got quite a lot of fun doing the project and learned a lot of things about the PC.
Technically this was more a demoscene
production than a university thing:
- The intro sequence shows each of the six symbols of the university (Recherche, Formation, Application, Sciences de la vie, Sciences de l'homme, Sciences et techniques) converted on the Atari to vector format and then displayed with faded-in gradient colors.
- Then a 256 colors picture showing planets, stored in RLE format
- The main part is using the 640x200 X-Graphics mode and exploits the screen split line feature to display a scrolling line at the bottom
- When selecting one of the planets an information page appears, smooth scrolling from the bottom of the screen
Almost all the data was generated on the Falcon (Big Endian) and decoded on the PC (Little Endian), that generated some interesting results...
The About Page
The Main Part
And that's about it for this first decade.
In the second half of 1994
I started working on my Master Degree, but then I got a job offer from Adeline Software
I tried to find a solution where I could try to finish my studies while working, but in the end it proved to be unpractical and I dropped the studies.
What happened from 1995
will be the content of the second part
, and as usual feedback is welcome.
1. Internet Relay Chat, what people used before Facebook bought WhatsApp↩
2. A beefed up ZX 81 in a plywood box, complete with 16k memory expansion, sound generator expansion, hires graphics expansion, ... all tightly screwed to the box so it would not get disconnected and freeze when typing on the additional mechanical keyboard↩
3. Mail order companies, yesterday's equivalent of Amazon.↩
4. Since I was a bit short on cash my grand father paid for a tape recorder and the IJK Software Chess game.↩
5. Thanks to my uncle for offering me a 6502 programming book for my birthday.↩
6. Until the math teacher picked on me and decided to send me to the blackboard because I was supposedly cheating
7. At this time I sold the Atmos with a printer, graphic tablet, joystick and interface, speech synthesizer, many books and magazines and quite many original games and utilities, all that for less than what the half meg, single sided drive Atari ST cost↩
8. Which in my book is still one of the best languages I ever used↩
9. That was before I heard of ZZ-Rush or Degas Elite↩
10. This code was then repackaged years later in what would be the What's That Screen?
, our contribution to the Bird Mad Girl Show
demo by The Fraggles
11. This whole event would require an article by itself, but I would find difficult to not have to slander some of the Atari people community at the time.↩