A Result Of Circumstance...
On this EUG, you'll find a demo of my new Acorn Electron game, You're Alan Partridge, billed (by me) as "a modern game written on a retro machine". I thought I would write a completely self-indulgent article about how I had the idea for it, and some of the problems I encountered in creating it - and illustrate it lubrially throughout with appetising screenshots in case you wish to download it. Of course, I have to firstly thank comic genius Steve Coogan, without whom there would certainly have never been the idea.
On the other hand, the game itself came about through a fortuitious combination of circumstances. I visited the CGE UK show in Croydon and felt somewhat deflated that, apart from the Cronosoft stall, no new software for any of the retro formats was on show (This turned out to be a common sentiment - Ed). I also then acquired a Millsgrade Voxbox expansion for the Electron from eBay. Finally, I watched the DVD filled with extras on I'm Alan Partridge Series 2.
To my mind, one of the tragedies to befall the Acorn Electron, was the under-use of every expansion that was produced for it. For example, when Project Expansions created the four-channel Sound Expansion Cartridge, did they also provide a disc of spectacular music demos to show what it could do? When Slogger created the 64K MASTER RAM BOARD, did they also produce some 64K games to delight those who purchased it? And when Millsgrade made the Voxbox, did they provide anything more than a lame command driven utility and an instruction manual? The answer in all of these cases is no.
Now, I am not a great fan of developing projects that only work on an Acorn Electron attached to some rare peripheral. (I know a certain Mr Quazar has currently spent almost two years working on a Mode 2 version of Elite for the Electron with a JAFA RS423 CARTRIDGE attached. An interesting hobby maybe, but who has even heard of the Jafa RS423 Cartridge, let alone got one in their Elk collection? Certainly not me!) You only have to think for a moment about the two main disc interfaces for the Electron, the Plus 3 and the ADVANCED PLUS 4, to see just how poorly supported even these incredibly popular expansions were. Between the two, were there even fifty discs officially released for the Electron?
This being the case, I had always concentrated my efforts on creating new software that required only 'the bare minimum' to work on a real Electron - i.e. an Electron, disc interface and disc drive (See inset for some of Dave E's public domain demos and games - Ed). After all, there seems very little point spending a considerable amount of time developing a project that no-one else owns the hardware to enjoy!
Bring The People to The Project!
After visiting CGE UK 2005 however, I realised that there was an alternative. If one could not bring a project utilising a rare peripheral to the people, then one could pop the project on a stall at the next CGE and let the people bring themselves to it! About that time, the Voxbox arrived in the post and I toyed with the idea of creating a game which 'spoke' to the player. I remembered one of the example games for the Amiga 500 written using the Amos programming language. This was a variation of Number Jump on Database's Fun School 3 (6-8 Year Olds> in which you would manoueuvre a duck across pondweed by remembering your nine times table. Each correct step would result in the Amiga saying, rather mechanically, for example if you stepped onto number 18, "Two. Times. Nine. Is. Eighteen." I thought about recreating this on the Electron but a few seconds later I remembered just how much that particular 'feature' of the Amiga game used to annoy me. That was, as they say, the end of that.
The Best Of Dave E's Previous Projects Is SUNDAY, A Graphic Adventure |
Dave E's DANCING CARTMAN DEMO appeared in EUG #53 |
Other Very Simple Demos Included EXILE RUNES In EUG #55 |
A Rare Shot Of Colour In EUG #58's ARGUMENT SKETCH Game |
A few weeks later though, I was watching the "Anglian Lives" feature on the second DVD disc from I'M ALAN PARTRIDGE SERIES 2. In this feature, Alan Partridge, a man almost as bitter and twisted about his life as I am, is interviewed by a certain Ray Woollard and his assistant, Digital Dave, a laptop computer. The feature is quite ingenious in that the relationship between Alan and Ray feels so awkward that it becomes increasingly evident that "Anglian Lives" is probably a show which Alan has commissioned (and paid for) himself in a last-ditch effort to promote his dwindling career. Digital Dave is merely a pre-programmed computer which asks a question in the style of Metal Mickey whenever a key is pressed. It has no real use on set except to inject an element of 'uniqueness'. This succeeds, but for all the wrong reasons, as its inability to pronounce the w sound (co-incidentally identical to the Millsgrade Voxbox) results in questions like, "How long after your life left you, did it take for your divorce to come through?" which, frustratingly, takes Alan several seconds to work out.
An Interface Made For A Tape-Based System
Now to some limitations of Millsgrade's Voxbox. The big problem with this particular interface is that it connects to the rear of the Acorn Electron via the expansion port. Therefore, the Voxbox has to sit 'on the end' of the machine's expansions. Apart from the Electron itself, only Slogger's PLUS 2 interface and the original L-shaped Acorn Plus 3 have an edge connector that the Voxbox can be attached to. Slogger's PLUS 2 I have never liked - it is an uncased piece of kit which crashes if you shuffle in your chair. This left two possibilities - a tape only game incorporating the speech the Voxbox allows for, and was originally designed for. Or, alternatively, a disc-based game on ADFS 1D00, the disc system used by the Acorn Plus 3.
Unfortunately, the Voxbox was created before the Acorn Plus 3 and the code which powers the Voxbox sits at &E00 - &1500 in the memory map of the Electron. With the code for the Acorn Plus 3 resident between &E00 - &1D00, I had my doubts as to whether it would even be possible for the two interfaces to work together. Hooking them up for the first time seemed to confirm all of my worst fears when, on loading in the code, the screen went blank and the Voxbox spoke "Clash, clash, clash, clash..." until I turned the whole setup off.
The solution was, of course, to load the Voxbox code higher in memory (just below screen memory), re-enable the tape system, copy the code down to where it was supposed to reside and then use the Voxbox commands to make it speak. After a few failed attempts I managed to achieve this, and realised that it was possible to have the Voxbox working 'through' the Acorn Plus 3 interface. However, limited memory was left for any game proper using this method. Also, as moving the Voxbox code overwrote the Acorn Plus 3 code, no further files could be loaded in from disc.
By now I had a rough idea of how the format of the game proper should look, and this restriction was a serious issue. There were other restrictions too - namely that the game had to be in Modes 4, 5 or 6, otherwise whenever the Voxbox spoke, the screen filled with static. This was hardly likely to impress any on-lookers at the next CGE UK show. Mode 6 is a text only mode, and the project demanded good graphics. Mode 5 expands the text horizontally by a factor of 2, and the project demanded screens of text, which would look very cluttered. Therefore, Mode 4 was the only mode that would offer graphics and text suitably composed. However, the graphics screen would have to be *LOADed in (at &5800) before the 'program' ran.
With the disc system disabled, the project just would not get off the ground. Although I could happily load in a screen of Digital Dave posing a question and relocate the Voxbox code so that it audibly posed the question, the screen then needed to be 'wiped' to display the four possible answers. With the Voxbox code relocation wiping out any further access to discs, no further screens could be loaded in. I was, it seemed, restricted to one question and one answer only.
I took a look through my old Electron User magazines to see if anyone had had similar problems. On page 23 of Volume 5 Number 1, I thought I'd possibly found the answer, a utility called 'ADFS Restore' - but it proved completely impractical. Finally, in desperation I simply tried copying all the contents of &E00 to &1D00 upwards in memory to just below the "higher" bit of Voxbox code, letting the routine relocate the Voxbox code to where the ADFS code had been and then, finally, copying the ADFS code back to &E00 where it should have been. To my surprise, issuing ADFS commands then worked as normal!
The Rest Was Easy!
Once I had programmed a procedure that stepped through all this copying and relocating of code, creating You're Alan Partridge was in fact possible. How I used my Amiga 500 to grab video images from the show (and Deluxe Paint III on it to 'draw' these into realistic two-colour equivalents) I will leave for another time. Using PPM2BBC (described in EUG #65) I then transferred these images through a PC across to an Electron disc.
Finally, all that was left to do was write the core of the program to load in and display the questions and answers. Certainly I have learned a lot about structured programming over the past decade and this proved to be a simple matter. As ultimately You're Alan Partridge is a mere quiz, the initial algorithm is incredibly simple:
1 | load in a screen; | |
2 | if speech is needed, switch ADFS code for VOXBOX code; | |
3 | print the speech bubble in the right place; | |
4 | fade in; | |
5 | if speech is needed, speak else pause; | |
6 | fade out; | |
7 | if a question has been asked, display the selection screen; | |
7.1 | write question at top of screen; | |
7.2 | jumble up the possible answers; | |
7.3 | write answers in the right place; | |
7.4 | fade in; | |
7.5 | wait for answer key; | |
7.6 | if answer key corresponds to correct answer on screen, increase score; | |
7.7 | if answer key does not correspond, decrease score; | |
7.8 | fade out; | |
8 | relocate the ADFS code back to its proper place. |
Working on each of these components in turn, I came up with several different 'looks' and 'feels' to the game proper and so incorporated quite a large number of options. You can change whether you have slow fades (where the palette is cycled through red to yellow to white) so the screen gives the appearance of 'emerging' from darkness, or to dispense with this effect. You can play full screen if you wish, with no idea of your current score until the selection screen appears. You can cheat and make all levels available as a default, instead of having to progress from level one to level six. Most of these options were there for my own convenience when I started testing it - but I also made these available to everyone with an Options menu. This also allows you to view all the individual procedures in a 'Creation & Credits' demo, which I quite like.
But Just When It Was Finished...
Ultimately, just as I was finishing off the last touches of the game, there was the news that there would be no CGE 2006 which, unfortunately, meant most of my efforts would go unrewarded for the very reasons I have never before written hardware-specific software. There is an option to play the game without the speech from Digital Dave, but this gives the game far less ambiance.
On this EUG disc, you do not get the full version of the game, but it's only a short trek to PD World to download it. What you do get is the early demonstration interview which follows the algorithm illustrated above. The main game features progressively more difficult interviews, as well as the many graphics illustrating this article. I hope that someone out there will review it at some stage; feedback I have had from friends indicates that the main game becomes too repetitive after about ten minutes and that some sort of variable scoring system might help alleviate this...
As there is currently no emulated version of the Millsgrade Voxbox available, the You're Alan Partridge Demo included on EUG #66 is set by default not to 'speak'. If you load the file G.YAPLOAD however, you can alter line 60 to read V%=1 then RUN if you do have the appropriate interface to try it with!
An Extending Text Area Housing The Speech Within It |
Early Speech Bubbles Overwriting Those Beneath Them |
Automatic Clearing Of Area Beneath Speech Bubble |