On Sunday 21 January 2001 22:19, you wrote:
> I downloaded the file using Netscape Navigator 4.73
> and Internet Explorer 5.00, in the Windows 95 environment.
> Netscape tried to open the file as an ASCII text, and Explorer
> recognized an unknown extension and asked me if I wanted to
> save it to file (cripes, at least once Explorer made the service
> better than Netscape). It seems we will need Maarten suggestion
> about using .msx.zip extensions.
Actually I now think that a single extension is better. An emulator can
register the .msx extension, so that file managers like Explorer and
Konqueror will know what to do when you open a .msx file. With for example
.msx.zip, the program registered for ZIP will open the file instead.
A question to Sean:
The file to specify a mimetype for an extension on Apache, can that file be
created by any user or is it system wide? If the latter is true, people will
have to ask system administration to make the changes and they may be
reluctant to do so.
> -- start of msxgame.ini
We could use ";" for comments instead, I think that's more of a standard.
It's also a bit easier to parse (some people will want to write their own
parser, instead of using lex & yacc). Unix formats often use "#", but that's
not familiar to DOS/Windows and MSX users.
> -- Games are numbered in order of submission
> -- to the mantainer of .msx database
> -- so "1" means Penguin Adventure and "0" means original media
>
> GameID=1.0
Why not use strings instead? Penguin Adventure could be "penadv".
We need a way to know which save game files belong to which game. Using the
game ID is a good way to implement that. And if we do that, "penadv.sav" is
more readable than "1.sav". By limiting the game ID to 6 characters, up to
100 save games can be stored per game in a 8.3 filesystem ("pendav00.sav",
"penadv01.sav" etc).
It is a good idea to have a major ID and a minor ID. Most uses of the game ID
do not depend on the minor ID. For example, save games for the Japanese and
English Solid Snake are exchangable. Walkthroughs are as well, although
walkthroughs for the Japanese version incorrectly state that Snake is smoking
before using the hang glider to calm his nerves, while he is actually
checking the wind direction (or is he? ;).
> -- name is following Maarten syntax
> -- japanese name uses Shift-JIS
>
> Name[us]="Penguin Adventure"
> Name[jp]="²å¤Ahx`["
>
> Manufacturer[us]="Konami"
> Manufacturer[jp]="Ri~"
I proposed to use this syntax for the MSX game info files, but it's not my
standard. As I wrote, I got the idea from the KDE/GNOME .desktop file
standard.
By the way, I think "us" is not a valid language code. It's probably "en_US"
or something like that. After all, the language is still English (although
some UK people will deny this ;), US specifies the "dialect" (it's not really
a dialect, but I don't know the proper word).
> -- this next field could use a string also,
> -- for instance we could adopt
> -- Gametype="Cartridge"
>
> Gametype=0
I propose to use strings wherever possible. No matter what we choose, we'll
always need documentation containing a list of possible values. But strings
are more readable and easier to remember.
> -- This is the generic mapper algorithm
> -- this code snippet would be available in
> -- the .msx file format home page
> -- .msx authors would just copy+paste this code
> -- inside theirs msxgame.ini
One thing that isn't documented yet, is how to handle memory that is not
controlled by the mapper. We could say it is filled with #FF (the data bus
pulled up), but I'm not sure if that's correct for all MegaROMs.
Another thing is how to specify that a cartridge ignores slot select (like
Super Lode Runner does). This is bad design from the cartridge manufacturer,
but it has happened so now we have to deal with it.
Is it useful to allow I/O ports for writing to mapper registers?
Is there any game that reads the mapper registers, or is it always write-only?
> -- select a banksize with 8kb
> Banksize=8
Is any bank size allowed, or just 8kB and 16kB? By the way, make sure you
write the "B" as a capital, otherwise people may misunderstand it to mean
"bits". Remember that "mega" in MegaROM refers to "megabit".
> -- this means we have the following banks
> -- 0 = 0000-1FFF
> -- 1 = 2000-3FFF
> -- 2 = 4000-5FFF
> -- 3 = 6000-7FFF
> -- 4 = 8000-9FFF
> -- 5 = A000-BFFF
> -- 6 = C000-DFFF
> -- 7 = E000-FFFF
We could also specify banks by using the address the bank starts at. So
instead of "3", we would write "6000".
> -- if we wanted to define multiple registers,
> -- like in fmsx mapper 3 (konami with scc)
> -- we could make Register[5000-57FF]=2
I think that's just a hack to allow more than one actual mapper to be
emulated using a single fMSX MegaROM type. AFAIK, there is no game that
writes to more than one address to switch. If that's true, there is no longer
a need for this feature now that we can specify the exact mapper for each
game.
Bye,
Maarten
--
For info, see http://www.stack.nl/~wynke/MSX/listinfo.html