Maarten ter Huurne wrote:
> Packager ID: Server:
> [EMAIL PROTECTED] -
> msxpackbeta beta.msxpack.org
> msxpack msxpack.mirror.nl
> msxpack release.msxpack.org
> mr_x msx.whatever.com:8080
Just to improve the idea: .msx database servers doesn't
need to be unix daemons or windows tsr. They can be just plain
files in a web page.
The official msx server will be just a text file
in some server (let's say http://www.msxformat.org/server/index.txt)
index.txt will have a syntax much simpler than the .ini
files inside the .msx package, due to bandwidth problems:
; start of index.txt
2000-01-24
alest2
aleste
2000-01-23
antadv
goonie
2000-01-22
penadv
nemes3
kqbert
irtype
; end of index.txt
A database client (could be a package manager or an emulator),
would just download the index.txt and see if the packages stored
locally have lower dates than the ones in the server. If it is the
case, they can warn thw user of start the download. Users searching
for games can also use the client to check if the game he wants was
already packaged.
If a game is updated in the server, the later entry is deleted
and a new one is added:
; start of index.txt
2000-01-25
penadv
2000-01-24
alest2
aleste
2000-01-23
antadv
goonie
2000-01-22
nemes3
kqbert
irtype
; end of index.txt
This file can get quite big when the project packages
all the msx games. However, clients do not need to download the
entire index. Let's say the client downloaded the index
at 2000-01-23 and stored it locally. When he is getting the new
index, download can stop once he reach the line "2000-01-23".
So ok, the game has been found. Using the gameid in
the index.txt, he can connect to the web site again and download
the game.inf file in the same directory. Let's say he wants
to download "penadv", then he would need to download
the http://www.msxformat.org/server/penadv.inf . The contents
of this file should be standardized, for example:
; start of penadv.inf
Game=http://www.lsi.usp.br/~ricardo/penguin.msx
Game=http://www.msxnet.org/games/penguin_adventure.msx
Game=ftp://ftp.funet.fi/pub/msx/msxformat/penadv.msx
ManualScan=http://www.msxformat.org/manual.htm
Walkthrough=http://www.msxformat.org/walk.htm
BoxScan=http://www.msxformat.org/box.htm
CartridgeLabelScan=http://www.msxformat.org/label.htm
; end of penadv.inf
penadv.inf would only link to .msx files approved
by the Packaging Project (ie., files with Packager=msxpack),
and user can select whichever "Game" link we wants
(the software could automatically select the fastest mirror)
The files inside the server can be mirrored as well,
someone could copy index.txt and all the *.inf files
to his site and place his addr in a list of mirrors.
Users can discover if a mirror is updated by looking in
the data of last game added.
It's worth to note that this approach is independent
of the Unified MSX Format. All it needs is a Packager tag inside
the .ini, and we were going to add it anyway.
---
But now let's get back to SCC. In addition to
Required, Optional and Extra, there could be an Internal keyword.
This way Nemesis3 would have a tag:
Internal=SCC
Konami Mahjong could have...
Internal=DAC[5000/0FFF]
...and here we have the generic DAC !
I agree with Sean about the generic SRAM syntax.
If we allow exceptions, then we could just as well make
every mapper an exception and forget about the whole generic
thing. However, I am developing a new syntax which can cover
the PAC and Game Master 2. I'm just removing bugs from it,
later today I'll post it.
----------------------------------------------------------------
Ricardo Bittencourt http://www.lsi.usp.br/~ricardo
[EMAIL PROTECTED] "Ricardo is subtle, but malicious he is not"
------ Uniao contra o forward - crie suas proprias piadas ------
--
For info, see http://www.stack.nl/~wynke/MSX/listinfo.html