Nov. 26th, 2009

marnanel: (Default)
You know how sometimes people on your friendslist post about stuff going on in their life, and all of a sudden you think "Wait a minute? Since when were they working THERE? Since when were they dating HIM/HER? Since when???" And then you wonder how you could have missed all that seemingly pretty standard information, but somehow you feel too ashamed to ask for clarification because it seems like info you should already know? It happens to all of us sometimes.

Well, here is some completely irrelevant information about me. Copy it to your own journal if you like, delete my answers, and substitute your own.

1. What toys did you take to bed with you when you were a kid?

A teddy called David, a squirrel called Mrs Squirrel, and a cat called Joanna. I wish I knew where Mrs Squirrel is now. Here is a picture of me with David.



2. What is your favourite colour?

Orange, then black, then green.

3. What was your first experience of computers?

When I was about five, my parents took me along to a computer course they were attending at Hitchin Technical College, for which I will be forever grateful.  A short while later, my headmaster bought a BBC Micro for the entire school, and invited me up to his office.  "I've noticed", he said, "that your handwriting is the worst in the school.  This computer has a thing in it called a wordprocessor that might help you."

4. When you were a kid, who did you want to win the Boat Race?

Cambridge, honestly!  It was because they lost about a dozen times in a row and I always cheer for the underdog.

5. What was the title of your first book?

"The Squirrel Army".  I was about seven.  It was the first of a series of four.  I'm sure my mother still has them.

6. What was your favourite Christmas present ever?

This thing.  I spent hours solving all the levels.  You had to solve ten addition, subtraction, multiplication, or division problems in four different levels within a certain time limit.  I loved it.

7. What clubs did you join as a kid?

The Puffin Club; Mensa; the National Association of Gifted Children; the Vegetarian Society.

8. What was your favourite part of Christmas?

I was asked this by a teacher once, and after some thought I said it was Boxing Day, because you had plenty of time to look at all the things people had given you.  She stared at me and said "That's rather boring."
marnanel: (Default)


I am going to contact my parents tomorrow and ask for the source code of Avaricius and Avalot so that I can release them as free software. (It was written in Turbo Pascal.) This may mean finding a way to read 5½" floppies. I wonder if I can just buy a very cheap very old computer and hook it up with a serial cable.

Some of the nifty things about Avaricius and Avalot, just from memory:
  1. Compilation. One of the odd things about Avvy is that only the code was compiled, not the data. The data was a significant part of the whole, and these days I would have created it in some easy-to-edit format and compiled it. But in those days, with a few exceptions, I first designed the binary format in which it would ship, and then wrote an editor for it. So I think, in order to make it at all useful, one of the things I'm going to have to write is a decompiler for all the data formats, so you can read them as XML or something.
  2. How the images got included. This actually extended to having to write a general image editor "hiz" for Avaricius, because I didn't have any information on the save file format of any image editors I had access to. But for Avalot I wrote a screenshot program and my brother used Dr Genius to edit the images (he drew almost all the images in Avalot, which is good, because the images I drew in Avaricius rather sucked).
  3. Why EGA? The game required EGA (and used sixteen colours) because we didn't have VGA when coding started.  By release time we had VGA, but the only concession to it was to use its ability to redefine colours to make change "bright magenta" to be more Caucasian-flesh-coloured.
  4. Codename. Avalot was codenamed "Project Minstrel" during development.
  5. Dogfood. One of the jokes that was so laboured that I never explained it: the minstrel who plays games against you was briefly called "Winalot", because almost all the characters' names ended in -alot; "Winalot" is a brand of dogfood, so he was soon renamed "Dogfood".
  6. Cameos. Dogfood, Spludwick, and Baron du Lustie were cameo appearances by the development team.
  7. Beta testing. We had different beta testers complain that both the Dogfood and Jacques puzzles were both incredibly difficult and ridiculously easy.
  8. Scroll drivers. You could embed ASCII control codes in what was effectively standard output (the "scroll drivers"), which would otherwise have gone into dialogue boxes on the screen, and affect lots of things about the game. Much of the moment-to-moment control of the game happened in this way.
  9. Wordwrap. The scroll drivers in Avaricius didn't do wordwrap, so I had to do all the wordwrap by hand. Big mistake, rectified in Avalot.
  10. Bootloaders. "avalot.exe" was merely a bootloader that allocated a few kilobytes of empty memory and ran "avalot9.exe", which was the real program. It pointed one of the user interrupts to the empty memory, and by manipulating this memory the child processes could instruct the bootloader either to load a given other child process after they quit, or to quit itself. This meant that a lot of the cut scenes could be implemented in separate executables. There was also space in the empty memory to store the current game state, so that you could seamlessly return to the game. One of the possible subprocesses was command.com, so that you could shell out to DOS and not have Avvy resident in memory, so there was actually space enough to do something.
  11. Edna. The save-game format ("edna") had generalised header information which meant that if you attempted to load a file from any other Avvy game, the correct game could be loaded to handle it.
  12. Chunk. Each room had a set of associated sub-pictures in a format called "chunk" which could be set to display at set intervals, meaning that animations could be put together without changing the code.
  13. Also. There was a resources format called "also" which allowed you to define things about each room such as where the doors connected to the next room and what direction you'd be walking in when you got there, and it had a set of opcodes which could be made to run a given cut scene, put up a given piece of boilerplate text, etc, when you walked into a given area or touched a line between two given points. Strangely, I never unified these opcodes with the scroll driver control characters.
  14. Skellern. There was the usual routine which hooked the clock interrupt to slow the game down.  Around the time I was writing it I heard a song called Slow Down by Peter Skellern, and the whole subsystem is littered with references to that song.  In particular, the slowdown routine couldn't be enabled during debugging, and therefore was disabled during development in general, so there was a standalone terminate-stay-resident utility called "skellern" which stood in for the real thing.
  15. The onion puzzle.  This is the puzzle I'm most proud of.  People were still asking how to solve it almost a decade later on Usenet.
  16. Avalanche. The whole magic opcodes system was going to be generalised in the third game "Avaroid" into an architecture for a virtual machine called "avalanche". I had no idea about virtual machines; I pretty much made up the idea. But the third game never shipped because I went to university.
  17. Z-machine.  I've occasionally thought of doing a Z-machine port, as a plain-text adventure.  I've never actually started it, though.  I think it would be ineligible for the IFcomp.
I am wondering what else I'll discover when I finally find the source.

Update: I just phoned my parents:
  • My brother Andrew knows where the disks are and will find them when he comes home for Christmas vacation
  • My brother Mark is one of the copyright holders so we have to clear it with him as well, so there's no knowing what'll happen until he decides.
More news as we get it.

Profile

marnanel: (Default)
Monument

January 2022

S M T W T F S
      1
2345678
9101112131415
1617 1819202122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 10th, 2025 09:43 pm
Powered by Dreamwidth Studios