Date : Sun, 03 Sep 2000 09:35:41 +0200
From : "Mark de Weger" <mark.deweger@...>
Subject: Re: Standard file format for BBC games?
Hi Kris,
I think there's a number of good ideas in here, though I'd implement them
somewhat differently.
First of all, I think it's very useful to have all info like instructions,
pictures, etc. for a game in one place.
There's two things I don't get from your mail.
- Why add info on how to start a game? As Angus wrote, all of this can be
dealt with by adding an !BOOT file. (I recently cleaned up my collection of
Beeb games and succesfully added !BOOT files to all of my about 200 games.)
As you wrote yourself, we don't need another "standard" if it can be
accomplished using existing "standards".
- What's the buzz about joystick remapping? I use BeebEm, which allows me to
use a PC joystick as a substitute for a Beeb joystick. In addition, it
allows you to use a mouse as a substitute for a Beeb joystick.
Then about your ideas.
- I basically agree with Mark, who wrote that it might be more useful to
store all of this information in a central database; not one that is
distributed over many zip files (or many UEF files, as in the case for the
Electrem emulator). A central DB has a number of advantages:
* It can be used also for existing emulators like BeebEm and PCBBC (by
means of a frontend).
* It allows the same info for a game to be coupled to each of the many
copies of the game floating around on the net. (At least, if you exclude
boot information.)
Maybe it won't come as a surprise that these ideas have already been
implemented: in my own Beeb emulator frontend BeebEF. This is not about
plugging my own software, but it would be a pity if many ppl would do about
the same. The main advantage of BeebEF is that it works with every emulator.
Currently, BeebEF is not connected to the net. I agree with Mark that the
best solution would be a central database on the net from which you can
download (or simply use) the info you require. Anyone wants to have a go?
Success,
Mark.
-----Original Message-----
From: owner-bbc-micro@...
[mailto:owner-bbc-micro@...]On Behalf Of Kris Adcock
Sent: zaterdag 2 september 2000 2:30
To: bbc-micro@...
Subject: [BBC-Micro] Standard file format for BBC games?
Evening all!
Would you mind if I used you all as a sounding board? :) I apologise in
advance if this is one of those postings which comes up every six
months, with a kind of "Why has no-one thought of this yet?" subject.
Myself and a colleague at work are developing a Beeb emulator, mostly
out of nostalgia. He (Paul Bates, the author of an ST emulator called
"winSTon", if you know it) is doing all the hard stuff, and I'm doing
the BeOS port and contributing one or two annoying ideas. Anyway ...
One of the first things that's gone in has been the use of Joysticks -
the button presses of the joypad remap to BBC-keyboard presses, and it
works really well! For example : "Thrust", which is a bit impossible to
play on a PC keyboard (because of key arrangements) becomes great fun to
play on joystick!
So this gets us thinking - we could do with keeping some sort of
database for known games, giving the info of how to remap Joystick
input. Hmmm.
Later on, we suddenly remember (memories begin flooding back - oh wasted
childhood) that not all games boot in the same manner (not all
SHIFT+BREAK). On some of them, you have to enter things like PAGE=&....,
*EXEC, *RUN, CH."FLOAD", etc ... So this database could also do with
supplying booting information, so that users could basically double-
click a diskimage file, and have that game boot-up and setup joystick
straight away. Hmmm.
So we start to toy with the idea of a maintainable database file, to be
supplied with the emulator, which contains all this (and more)
information. But how to link the data with an SSD? We thought of
checksums, but this won't work if the SSDs contents can change (saved
games, high-score tables, etc). Disc-name of SSD isn't nearly unique
enough.
Now, we're considering the idea of packaging all this extra info along
with the game itself, which is really where we'd like your feedback.
We would like to propose some sort of standard for BBC games (and extra
information) to be packaged in, for the use with Beeb emulators. We feel
that this would really benefit the Beeb-emulation community. However,
there's no point implementing it if no-one else likes the idea. Thats
why we would like everyone's input on it now - we'd really like this
idea to take-off, even if our own emulator is not successful.
Overview
This standard needs to provide a way of storing extra information with a
game, which an emulator may use (or ignore). This information could be :
- joystick remapping (as mentioned above)
- boot information (as mentioned above)
- brief instructions on how to play
(the kind of thing written in the inlay cover of the original game)
- brief info on author, publisher, etc
- a link to a website with extra information
(screenshots, ads, cover art, walkthroughs, links to 'fan'
websites, etc)
- anything else someone will think of later
Now, one thing that the Beeb-emu scene DOES NOT need is another
filetype. This would entail more CLI-based utils to convert to/from this
format, and just get things more confused. What we propose, is that this
extra information be stored in the zip file along with the game files.
After all, most games downloaded from the 'net come in zipfile format,
don't they? Currently, you have to extract the files, run BBCIM over
them to make the SSD, and then load that into your emulator.
But what if your favourite emulator (whichever that may be) had the
ability to read the zip file directly, setup joystick remapping, boot
the game, bring up a window of info telling you how to play the game,
and bring up a webpage from the Internet giving you a scan of the
original box art, an MP3 of the signature tune, and a hints guide?
We do not envision this extra information increasing the size of the
zipfile too much - the zips are tiny as it is, and the extra information
would only be a small textfile or two on top of that.
We've got lots of ideas regarding the actual format and implementation
of all this, but we'll leave describing it all to another time (just
want to see what people's initial reactions are first).
If people like this idea, I'm offering to write the code to do most of
the above (I'm 'borrowing' Pauls zip-reading code from WinSTon), with
the intention that people could slot it in the loading-code of their own
emulator, and so add the functionality with the minimum of fuss.
Obviously, I'd write it all so that you can still load SSDs in too (so
that everyone's existing data still works). This would be open-source
code that anyone could contribute to, so that everyone could benefit
from a collective coding effort.
Right, thats (more than) enough for now. I'm getting back to installing
my Beeb motherboard into a bright-yellow Pheobe case ...
Hope I've not bored you all, hope I'm coherent, and hope you take it all
as intended!
Cheers,
--
/------------------------www.adcock.demon.co.uk-----------------------\
| Kristoffer Adcock, Normanton, Derby, UK, Planet Earth |
| "Fighting the ceaseless battle against literacy and good taste" |
| with RISCOS, BeOS, Linux, PalmOS and (sadly) Windows |
\---------------------------------------------------------------------/