Resource centre for ZX Spectrum games
using Manic Miner and Jet Set Willy game engines
Archive of the
Manic Miner & Jet Set Willy Yahoo! Group
messages
|
|
||
|
|
Message: 5095
Author: john_elliott_uk
Date: 19/11/2005
Subject: The future of JSWED (and other matters)
--- In manicminerandjetsetwilly@yahoogroups.com, "Igor Makovsky"
>
If you're pushed for space you could put it in the first few bytes
> It takes a whole memory page! =) There are not enough memory for all
> the resources of UMM =) Really. =))
of a sprite page (you'd lose the first frame, but the other 7 would
still be OK) or even replace some of the characters in the font.
Adding patches of this sort, which can be relocated anywhere in
memory, is something JSWED can't really do:
* Firstly, the memory map in JSW128/JSW64 only works in pages. That's
fine when allocating big objects like a sprite page or a guardian
table, but a patch is much smaller. Even the teleport overlay could
benefit from a more flexible allocation system.
* Secondly, the memory map only allocates a single byte to say what's
in each page. With a reusable patch, you would want more details, such
as the entry points it supports, and how it should be invoked.
So, how can matters be improved?
The conclusion I arrive at is that we need to store more metadata,
and we need somewhere to put it (?them?). For TAP and +3DOS, this is
easy; just stick another file on the emulated tape/disc, which the
game loader ignores. For SNA and Z80, it's more of a poser, since
these formats aren't extensible. I can think of a number of ideas,
none of which is very pleasant (JSWED writes a ZIP file containing the
snapshot and the metadata; JSWED writes the metadata separately; JSWED
puts the metadata inside the snapshot in video RAM).
This would make the position of the game designer more privileged
relative to the position of the game player. The designer, before
releasing a game, could strip out all the metadata; a player who
imported the result into JSWED would have to reconstruct the metadata
by hand.
A little further in that direction and we end up with JSWED behaving
as an IDE rather than an editor. Instead of acting directly upon
Spectrum memory, it would edit source files containing only data, and
would have a separate 'compile' option to generate a gamefile. But
that would require a monster rewrite of JSWED, probably from scratch.
Ho hum. I seem to have turned a molehill into a mountain again. So
I'll close on a simpler question. If I increased the JSWED window to
800x600 from 640x480, would that cause anyone problems?
