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: 5692

Author: andrewbroad

Date: 08/03/2006

Subject: JSWED 2.3.1: Andrew's comments (Chapter 6)

 

This follows on from Message 5685.

This message revisits Chapter 6 for JSWED v2.3.1 (but using a
printout of the jswed.pdf from v2.3.0), and all the things related
to this chapter that I've been storing up to say since November
2005. It does not repeat the suggestions I already made in Messages
4969 and 4974.

I had already done up to the end of Section 6.5 with JSWED v2.3.0,
so only Section 6.6 onwards is based on v2.3.1.


########################################
Part I: Jet Set Willy (JSW48 and JSW128)
########################################
6 Editing games
===============

JSWED should add proper support for Erix1-mode - and for Geoff-mode
(wraparound guardians are displayed as though they were diagonal
guardians).

--------
6.1 Game
--------

Without repeating my ideas for data-driven patches from Message
4969, I would merely suggest adding a checkbox for the room-number
patch.


6.1.1 Upgrading to 128k / Converting to JSW64
---------------------------------------------

When converting a JSW128 game to JSW64, it should offer the user a
choice of which rooms to convert (at least a consecutive range;
preferably arbitrary pick-and-choose; and all room-exits, teleporter-
destinations and items will need to have their room-numbers fixed).

JSWED 2.3.0 doesn't even warn the user that rooms are being lost
when converting from JSW128 to JSW64!

The one-line reports generated by the conversion-algorithm contain
some bad terminology - notably the term "object" instead of "item".


The non-use of my term /cell-class/ is genuinely confusing in this
section of jswed.pdf - and throughout the document. To quote from
the Glossary I'm in the middle of writing (not yet in a state fit to
upload):

/cell/ A particular 8x8 pixel square within a room's cell-grid,
identified by its coordinates (cell-row, cell-column), and being of
a particular cell-class which determines its appearance and
behaviour. (NB. MM and JSW64 Variant Z can have Custom-cells which
belong to no cell-classes.)

/cell-class/ A class of cells which each room defines to have a
certain colour-attribute, pixel-pattern and cell-type. In MM, JSW48
and JSW128 each cell-class has a fixed cell-type; in JSW64 the cell-
type of each cell-class can be set by the author (globally in
Variants W,Y,Z and [; by room in Variants V and X).

/cell-type/ The behaviour associated with each cell-class, i.e.
whether it's Air, Water, Earth, Fire, Crumbly, Ramp, Conveyor,
Trampoline or Trap.

jswed.pdf uses "cell" to mean /cell/ but sometimes /cell-class/, and
uses "cell type" to mean sometimes /cell-class/ and sometimes /cell-
type/.

The term "global cell type" is particularly confusing: I had to look
in Appendix A to learn that this means a /global cell-class/ whose
cell-type, colour-attribute and pixel-pattern are defined globally
(excuse me if this is explained in a chapter I haven't read yet).


6.1.6 Monochrome
----------------

This patch is usually called "Mono", so perhaps it should be called
that here too.


6.1.7 Jet Set Wibble
--------------------

Why not call this "Upside-down" so that everyone will know what it
means without prior knowledge or having to read the manual?


6.1.10 Fix bug in 'fast JSW'
----------------------------

You might want to change "8300h" to "#8300", &c., seeing as most of
the manual now uses the # prefix for hex-literals :-)

After applying this patch, JSWED still allows the user to edit the
sprite-page at #9F00 without any kind of warning!

-----------
6.2 Message
-----------

I object to the term "Objects Collected message" ;-)

Should be "Items Collected message", because everything is an
object - not just items!

-------------------
6.5 The Room Editor
-------------------
6.5.4 Import and Export
-----------------------

Fantastic! Marvellous! A data-model to represent MM/JSW games of any
format is just what we needed for conversion-purposes, and XML is a
particularly excellent choice because an XML file is a text-file
which can be understood by humans, unlike a binary file! :-)))

One bug, though: JSWED says it's going to save it in C:\Program
Files\JSWED2\, but actually saves it in C:\Documents and
Settings\Broad\. Fortunately I was already alert to bugs of this
kind in JSWED.

Looks like we'll no longer have to worry about selecting the wrong
variant of JSW64 when we create a new game! :-)

I could write another PhD thesis on some of the decisions JSWED
makes when converting between heterogeneous formats (e.g. Fire-2
cells map to Water-cells when converting MM to JSW48), but the
MM/JSW scene has far more urgent needs right now.

A reference to Appendix B from this section would be nice.

I'm so excited by this new development of v2.3.0 :-)))


6.5.5 Room options
------------------
General
-------

It's nice to see the border-colour in the editor now, but it would
be nice to be able to change it with a single keypress rather than
five mouse-clicks, given the importance of cycling through the
border-colours until you find the right one to set off the room.


Cells ("Cell-graphics + Item pixel-pattern" would be better)
-----

I'm very pleased to see that pixel-patterns and colour-attributes
can now be edited together in JSW48/128 games, but JSWED should not
allow the user to edit Item's colour-attribute except in MM (do the
JSW64 formats store colour-attributes for items?).


6.5.6 Guardians
---------------

It really would make more sense for right-clicking in the Guards
panel to bring up the Guardian context-menu rather than the Options
context-menu.


6.5.9 Cell editors
------------------

I've already said that JSWED should allow ramps and conveyors to
wrap around the sides of the screen. It should also allow conveyors
to extend beyond the bottom-right to create ghost-conveyors.

The manual needs to mention that you can place multiple items at the
same coordinates by holding Shift.


{JSWED v2.3.1 installed}

-------------------------
6.7 Start position editor
-------------------------

If you put Maria in the upper half of the playing-area, her lower
cell-row does not appear in the game (it does appear in JSWED).

It would also be nice to be able to have a patch to allow Maria and
the bed to be in separate rooms.

The safe-restart sprite does not {appear in/disappear from}
the "Special Characters" panel immediately after enabling/disabling
the "No infinite death" patch (not that it works, as I said in
Message 4974). You have to close and reopen JSWED first.

"Hello, this is the IT department; have you tried switching it off
and on again?"

---------------
6.8 Font editor
---------------

Clipboard-operations (e.g. Invert) don't immediately update the
character in the list-view - again, I had to close and reopen JSWED
to see the changes.

-----------------
6.9 Screen editor
-----------------
6.9.6 Undo
----------

It would be nice if Ctrl+L worked here.

----------------------------
6.10 The Title Screen Editor
----------------------------

The manual needs to say that this is present only for JSW48 games.

The explanations for "Colours for \ sloping cells" and "Substitute
colour" lack clarity - I don't understand precisely what is meant by
the sentences:
* The four colours which will force a triangle to be drawn which
slopes in the opposite direction.
* The first "sloping cell" colour is replaced with this colour.

And they were as clear as mud until I read...
* All colours not shown here (except black on black) are drawn
as "/" slopes.
...which should therefore be moved to before "Colours for blank
cells" and reworded to accommodate this move.

The term "'slope' graphics" should be replaced with "'slope' pixel-
patterns" (in your terminology "'slope' bitmaps"), as "graphics" to
me implies colour-attributes as well as pixel-patterns.

An on-screen hint that the context-menu exists would be nice.

---------------------
6.11 The Music editor
---------------------

Export saves to C:\Documents and Settings\Broad\ instead of to the
advertised folder.

I tried exporting the cheat-mode tune, and importing it as the in-
game tune (it played the usual in-game tune) and as the title-screen
tune (it played random clicks and beeps). Is JSWED adjusting the
addresses correctly?

JSWED once went into "(Not Responding)" mode when I clicked Test
(without opening RealSpectrum).


6.11.1 The Assembly file format
-------------------------------

This section is too technical for a user-guide; I submit that it
belongs in an appendix (with a reference in Section 6.11 to that
appendix).

-------------------
6.12 The Hex editor
-------------------

> Values that can't be edited (such as bytes which would not be
> saved in snapshots) are shown in blue.

Such as? What other bytes can't be edited? Only those below #4000
AFAIK (and without a Spectrum ROM loaded, why show them at all?
Perhaps JSWED could load a Spectrum ROM at the option of the user,
who would then have to Browse for it, or specify it in the Configure
section of the main menu).


> Page Up / Page Down: Move up/down a page (27 lines) at a time.

It's 34 lines now :-)

And the term "page" should be avoided, because technically a page is
a block of 256 bytes whose start-address is divisible by 256 (i.e.
32 lines in the hex-editor).


> Shift+Home / Shift+End: Move to addresses 0 and 0FFFFh
> respectively.

Shift+Home should move to the first address that can be edited, i.e.
#4000, or for MM/JSW-editing purposes, #8000 (although Manic Miner 5
stores the pixel-patterns for accented letters below #8000; it may
also be desirable to use the hex-editor to inspect the buffers below
#8000 in a saved-position snapshot - not that I can think of a
practical use for this).

Also, you might want to replace the h suffix with the # prefix
throughout this section, and get rid of those nasty leading zeroes.


You can move into the ASCII column with cursor-right, but you cannot
click into it with the mouse.

You can't type spaces whilst holding Shift.

Find should be able to search for ASCII strings as well as hex-
sequences.

An interactive disassembler/assembler would be nice (in a separate
screen, as each line of bytes would vary in length according to the
lengths of the specific machine-code instructions, and with a
mnemonics column in place of the ASCII column).

--
Dr. Andrew Broad
http://www.geocities.com/andrewbroad/
http://www.geocities.com/andrewbroad/spectrum/
http://www.geocities.com/andrewbroad/spectrum/willy/

 

 

arrowleft
arrowright