MLP: Elite
Oct. 20th, 2003 11:04 amVia
hmw26's exceedingly funky blog, a discussion of extracts from a new book about Elite, published in the Gruaniad.
Having previously discovered that there are several people reading this who may be interested, I thought I'd pass this gem on.
To be honest, I think I'm not going to rush out and buy the book; I'd guess that anyone who's interested in this kind of thing is not going to find much novelty in the story of the making of Elite. What fascinates me about the article is the way it goes to such pains to explain that there was a world before the GUI.
Now, I was born a few days before 1979, and thus it occurs to me that I may actually be the youngest person in the world who remembers the 80s! It's a slightly scary concept that books are being marketed at an audience of people younger than me. Or perhaps it's simply that it's marketed at people my age who are *cough* somewhat less geeky than I am...
Having previously discovered that there are several people reading this who may be interested, I thought I'd pass this gem on.
To be honest, I think I'm not going to rush out and buy the book; I'd guess that anyone who's interested in this kind of thing is not going to find much novelty in the story of the making of Elite. What fascinates me about the article is the way it goes to such pains to explain that there was a world before the GUI.
Now, I was born a few days before 1979, and thus it occurs to me that I may actually be the youngest person in the world who remembers the 80s! It's a slightly scary concept that books are being marketed at an audience of people younger than me. Or perhaps it's simply that it's marketed at people my age who are *cough* somewhat less geeky than I am...
The BBC Micro lives!
Date: 2003-11-02 10:50 pm (UTC)As for knowing the inventor of BCPL, cool. When I was at Cambridge, a friend of mine smuggled me into a garden party in Corpus. Part-way through he said, "There's my computer teacher; I'll just go and say hello to him." It turned out to be Herman Hauser!
You were evidently much more knowledgeable about the BBC Micro than I if you were able to disassemble it and figure it out. I'm impressed; I could never understand anyone's reverse-compiled assembly, even my own. The closest I got to that sort of thing in general was ripping tunes out of games; and the closest I ever got to taking Elite apart was figuring out the format of the player status files, so I could write a utility to interrogate them without having to boot up the game.
Elite certainly did do its fair share of impossible things on that machine*. Lots of colours and high resolution on a single screen? No problems!
Re: The BBC Micro lives!
Date: 2003-11-02 11:29 pm (UTC)Indeed. I was at secondary school when the first shuttle flight happened. I would probably have not believed anyone if they told me it would still be flying into the next century, however!
Indeed. I was at secondary school when the first shuttle flight happened. I would probably have not believed anyone if they told me it would still be flying into the next century, however!
<i.When I was at Cambridge, a friend of mine smuggled me into a garden party in Corpus. Part-way through he said, "There's my computer teacher; I'll just go and say hello to him." It turned out to be Herman Hauser!</i>
It is surprising how many Acorn names seem to pop up in the lab, even now...
<i>I'm impressed; I could never understand anyone's reverse-compiled assembly, even my own. </i>
It is amazing what can be achieved with an absence of friends and the need for a displacement activity in avoiding Geography homework! :-)
<i>Elite certainly did do its fair share of impossible things on that machine*. Lots of colours and high resolution on a single screen? No problems!</i>
It used some very clever interrupt routines that started a timer on each frame blanking interval, then changed the screen mode on-the-fly as the CRT controller was outputting the relevant scan line. It worked really well -- I remember writing my own code that did the same thing, just to prove to myself how they had done it!
<i>And I never did figure out how Firetrack managed its ultra-smooth scrolling,</i>
The CRT controller had hardware scrolling -- the display surface was effectively a torus that could be shifted in any direction in multiples of 8 pixels. You had to write your own drawing code in assembler, but this could be made to work really well. We used the technique in the IVIS project a few times to help implement what would now be called 'wipes' between pages.
<i>nor how it got a tune to play and continue playing whilst the main game loaded off disk...</i>
Probably just an interrupt routine. The sound chip was capable of making sound on its own without too much processor intervention. Again, we did that kind of thing a lot in the IVIS project to reduce the perceived time it took to load pages of text and/or graphics.
Re: The BBC Micro lives!
Date: 2003-11-03 07:47 pm (UTC)<nods> This much any Tom, Dick or Harry could do, including myself. What Firetrack did was absolutely smooth scrolling, in a centre cut out of the screen. I suspect if you could see to the edges, you'd see them moving down, then leaping eight pixels up a couple of times every second.
Probably just an interrupt routine. The sound chip was capable of making sound on its own without too much processor intervention. Again, we did that kind of thing a lot in the IVIS project to reduce the perceived time it took to load pages of text and/or graphics.
The way most games generated sound, though, (including my own (http://www.michael-grant.me.uk/xlcr.html)) was to use events, and those relied on the processor, so stopped (once the sound buffer had emptied) when something was loading off disk.
I was highly reliant on events in my programming; I used the video sync event a lot, but never got as knowledgeable as trying to use the 1ms poll timer -- which is why, unlike you, I wasn't able to replicate Elite's split-mode screen. This is the sort of thing that separates the sheep from the goats amongst BBC Micro geeks. ;^)
What was the IVIS project?
Re: The BBC Micro lives!
Date: 2003-11-04 10:54 am (UTC)Ah, never saw that game. It sounds very much like they were doing some major CRT controller hacking to implement double buffering somehow. It's a *long* time since I did that, but I can vaguely see how they might have managed it. There is always the possibility that they simply split the screen in half vertically, using each of the stripes as separate buffers and swapping them into place with the CRTC's scrolling hardware. They could have stomped on the 'extra' image by using the timer to switch the palette part way down the screen, or maybe they could do that with the CRTC on its own, I don't remember! :-)
What was the IVIS project?
It was a less well known, possibly larger counterpart to Domesday that used similar hardware. 8 videodiscs with accompanying BBC-based software were created for use in UK schools. Each disc was created by a different academic team, using deliberately different approaches in each case. The idea was to find out whether interactive video was useful in a school context, which it was, and constituted one of the first ever large scale multimedia projects anywhere in the world. I ran the main software team -- we wrote a variety of generic tools that ran across all 8 projects, including something called Turpin that was in effect a hyperlinking system for video and accompanying text overlays, long before such ideas turned up in the mainstream. We also wrote specific software for each of 4 of the 8 projects, ranging from relatively simple text-driven interfaces with occasional video clips up to the ridiculously ambitious Life and Energy disc created with BBC Milton Keynes and an academic team based at Bulmershe College in Reading. It was quite a project -- I started it when I was about 17, which is pretty scary to think about now since I had anything up to 14 people working for me.
Re: The BBC Micro lives!
Date: 2003-11-04 11:19 pm (UTC)Demonstrations available on my Beeb. ;^)
It sounds very much like they were doing some major CRT controller hacking to implement double buffering somehow.
Well, I found on googling an annotated program (http://nelsonit.net/~jon/BBCMicro/2002/09/10/182018.html) that purports to replicate the effect. I can't follow at a brief glance exactly how it works; it writes bytes directly to SHEILA. I tried typing it in, but must have made a mistake, as I crashed my machine and had to hit CONTROL-BREAK, and don't have time to debug it tonight.