jetsetdanny Posted January 4, 2023 Report Share Posted January 4, 2023 On 12/26/2022 at 4:04 AM, Jet Set Willie said: Could you please tell me some examples what kinds of "technical novelties" could be introduced using JSWED´s Hex editor? The easiest way for me to answer it is the following: Please download the ZIP package of the Special Edition of "Willy's New Mansion", open the "Willy's New Mansion - Special Edition" text file and have a look at Section IX. "Technical notes". Things which are described there were pretty much all done using JSWED's Hex editor. Similarly, you can download the ZIP package of the 48K Edition of "Madam Blavskja's Carnival Macabre" and have a look at the "Madam Blavskja's Carnival Macabre 48K Edition - Readme" text file, Section X. "Technical notes". Again, this was all done using by modifying the code by using JSWED's Hex editor. Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted January 4, 2023 Report Share Posted January 4, 2023 On 12/26/2022 at 4:19 AM, Jet Set Willie said: That´s interesting to hear. Is Jet Set Willy 64 a stand-alone editor or is it implemented in JSWED2? JSW64 is a 'family' of 128K game engines developed by John Elliott. I call it 'a family', because there are six variants: V, W, X, Y, Z and [, which differ in the maximum number of rooms, number of guardians per room, number of cell classes per room and whether the cell type of each cell class is set globally or on a room-by-room basis, as shown in the table below: Variant Rooms Guardians per room Cell classes per room Free space per room JSW64 V 128 13 8 64 bytes JSW64 W 128 8 13* 0 bytes JSW64 X 64 13** 8 576 bytes JSW64 Y 64 8** 13* 512 bytes JSW64 Z 64 8** 13*** 256 bytes JSW64 [ 64 4** 16 512 bytes The JSW64 game engine was created by John Elliott as a development of the JSW 128 idea, using the extra memory of the 128K Spectrums in a different way. Whereas JSW128 can have up to 256 simple rooms, JSW64 can have up to 64 or 128 more sophisticated rooms. So JSW64 is not an editor, it's a game engine (with six variants). Games using any of the variants of the JSW64 game engine can be created using JSWED 2.3.7. Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted January 4, 2023 Report Share Posted January 4, 2023 Regarding JSWED crashing/other problems described: This is something I can't really help with, because I haven't experienced the same problems, so I can't say what causes them or how they can be avoided. In recent years (say, the last six or seven years, since I've worked on "Willy's New Mansion" SE and other projects), I don't recall JSWED ever crashing on me, or having any other kind of problematic behaviour. The only problem I do keep encountering - and it's irritating, because it consumes time (I have to restart the editor and reload the game file), but it's not critical (I am able to save the game before closing the editor) occurs when I work in the Hex editor (it stops accepting input from the keyboard; you can still save the game using the mouse), so it's not one of the problems you've encountered. I have a *vague* memory of JSWED crashing when editing guardians (after choosing guardian sprites, I think it was), but it happened many years ago, and I haven't experienced such problem in recent years. I believe I had the habit of saving the game *before* editing a guardian, just to be on the safe side, not to lose progress if the game crashes. Again, it hasn't happened in my recent memory. I've always worked on Windows (currently on Windows 10). What operating system are you using? Spider 1 Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted January 4, 2023 Report Share Posted January 4, 2023 The problem that people who start to work with JSWED experience most often is with what's come to be known in the trade as guardian classes versus guardian instances. Guardian classes define most of the properties of a guardian. They are visible as hex numbers in JSWED. When you do "Guardians" - "Add" - "Choose a new guardian", you have to select it (in the JSW48 game engine, i.e. the unmodified engine from the original JSW) from 127 guardian classes. The first is called 00 [None in the original JSW], the second 01 [Rope in the original JSW], 02 [Vertical in the original JSW] and so forth, until guardian class 7e (for technical reasons JSWED does not allow the designer to use guardian class 7f, which would be the last one otherwise). You have to select a guardian class and then either use it as is, or redefine this guardian class (in any way you want; if it's currently a vertical one, you can change it to a horizontal one, or a rope, or an arrow). The guardian class defines the type of guardian and most of its parameters (depending on the type) such as the sprite, colour, bounds of movement, animation, etc. A guardian instance is a guardian class used in a particular room, so the thing that we would commonly called "a guardian" in the room. There are some things that are defined in the guardian instance parameters, such as the horizontal position of a vertical guardian, the starting point of a horizontal guardian, the horizontal position of a rope in the room or the height at which an arrow flies. These properties are defined in a guardian instance and are individual for this particular instance, but most of the elements of each guardian's behaviour are defined in its guardian class and are the same for all of the guardian instances of this class. When the author modifies any of the existing guardian classes, if there are any guardian instances using this particular guardian class in other rooms, they will be modified accordingly. This is the problem I mentioned: people would add eg. guardian instances using class 01 in rooms 01, 02 and 03. Then they would modify this guardian class 01 in room 01 (in a way that fits the design of this particular room), and then they would be surprised that "the guardians" (i.e. guardian instances) also got modified in rooms 02 and 03 (in a way not fitting the design of either room). Of course they got modified, because the guardian class got modified, so all guardian instances using this particular guardian class have been modified. If you want to have different guardians in rooms 02 and 03, you will need to use different guardian classes for them. It is good practice IMO to have a table for each JSW game you create where you make a note which guardian classes are used in which room, eg. Room 00 - guardian classes 01 and 1b, Room 01 - guardian classes 12, 3f, 4b and 52 and so on. I always do it in a simple table in MS Word (just an example to say that *even* MS Word is good enough for this). In this way, you always know which guardian class you can modify without affecting other rooms, or see if a change in one room will be acceptable for the guardian instance(s) of the same guardian class used in another room/other rooms. It's probably not the problem you've encountered and sorry if it's very basic, but I know people have had problems with this before, so I thought I'd better mention it 🙂 . Spider 1 Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted January 4, 2023 Report Share Posted January 4, 2023 Regarding "Safe restart places": I've never used it. I've tried just now and indeed JSWED does not seem to allow this option to be applied in a regular JSW game, even though in the manual it says, "Note that if you turn this effect on, on a game which previously didn’t have it, it is essential to set up a valid restart position in every room, and to set the initial room again. Otherwise the game will crash on startup or when Willy loses a life." The words "if you turn this effect on, on a game which previously didn’t have it" imply that you CAN do such a thing; however, from a cursory glance, it doesn't seem possible. If you want to see how this feature works, you will need to use Ian Collier's version of JSW then. I've attached it to this message. I've checked and indeed, it works in JSWED, in that you can choose the "Safe restart places" option and then you can set the position for Willy to respawn after death in every room. JETSETHK.z80 Spider 1 Quote Link to comment Share on other sites More sharing options...
Spider Posted January 4, 2023 Report Share Posted January 4, 2023 8 hours ago, jetsetdanny said: When the author modifies any of the existing guardian classes, if there are any guardian instances using this particular guardian class in other rooms, they will be modified accordingly. This is the problem I mentioned: people would add eg. guardian instances using class 01 in rooms 01, 02 and 03. Then they would modify this guardian class 01 in room 01 (in a way that fits the design of this particular room), and then they would be surprised that "the guardians" (i.e. guardian instances) also got modified in rooms 02 and 03 (in a way not fitting the design of either room). Of course they got modified, because the guardian class got modified, so all guardian instances using this particular guardian class have been modified. If you want to have different guardians in rooms 02 and 03, you will need to use different guardian classes for them. This I find is what can catch 'new to editing' people out. Unlike MM where it does not really effect it given the limitations on what is in each cavern in that game. Agree on a list of what/where, that is what I tend to do because otherwise it can get messy. jetsetdanny 1 Quote Link to comment Share on other sites More sharing options...
Jet Set Willie Posted January 4, 2023 Author Report Share Posted January 4, 2023 15 hours ago, Spider said: Yes you figured it out, you can see this ramp/conveyor effect in "The Chapel" , its the only ramp in the game that has that effect. If you set fire to be the same as earth or air you'll kill Willy upon entry. Setting other cells the same such as ramp and earth will have odd effects, which could be an advantage in some specially designed rooms. 🙂 I'm not sure on the crash, I rarely use arrows. You do need (I think, I stand to be corrected here) if you add any guardians after the arrow, you must remove the arrow and re-add it, it needs to be the last in the list, that being nothing else after it. Yes, I can think some things available due this odd effect. 🙂About arrow crashes, I tried to add an arrow to a room without any guardians. JetSetDanny, just a short reply now, I will answer better later, huge thanks to you! 🙂Thank you for really good descriptions about guardian classes and instances! This sounds like the reason to my problems described above. I will try it when I have some time to concentrate on guardians. I have few playable rooms mostly in nearly finished state (tiles/platforms, no guardians yet), this is many times more what I was wishing for! 🙂 Spider and jetsetdanny 2 Quote Link to comment Share on other sites More sharing options...
Jet Set Willie Posted January 4, 2023 Author Report Share Posted January 4, 2023 (edited) I thought to start with arrows. But how can I edit arrow´s Y-coordinate? In arrow editing I can see just "TYPE", a white rectangle showing arrow flying path, "horizontal ON/OFF squares" to define arrow´s shape, "!" for Hex, "Start pos." with numbers 0-255 to edit arrow´s starting position, "OK" and "Cancel". Once a number "60" appeared below "Start pos.", but I couldn´t change it. I can´t grab and move arrow´s flying path rectangle. The rectangle is always at top of the editing screen. Probably "!" Hex editing is the only answer? Now arrow editing crashed JSWED just few times, perhaps it started to crash just about when I was quitting my arrow editing tests. Edited January 4, 2023 by Jet Set Willie Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted January 4, 2023 Report Share Posted January 4, 2023 > But how can I edit arrow´s Y-coordinate? You highlight the arrow guardian in the "Guards" list in the room. Then in the part of the screen which shows the room you have two narrow rectangles (to describe it somehow): one is yellow and unmoving, the other one is flashing (between white and blue, I think) and can be moved up and down with your mouse. The unmoving yellow one is the current position (=height) to which the arrow is set. The movable flashing one is the position (=height) you are setting it to right now. After you've moved it to the desired position (=height), you left-click the mouse and the yellow rectangle is moved to the new position (and stays there). The two pictures below illustrate this: A video would be better, but this should do. In the first two pictures, the flashing rectangle is shown as white (as I guess it happened to be white when I took either screenshot). As you can see, in the second picture the white rectangle is lower than in the first picture - that's because I moved it with my mouse. Now the third picture: This time the yellow rectangle is lower than before - because I left-clicked my mouse when the flashing rectangle was at that height, and that moved the yellow rectangle there, i.e. defined a new height for the arrow. The flashing rectangle is still there (this time it happens to be blue), as the arrow's height can be edited again, and it happens to be higher up, because I moved it with my mouse before taking the screenshot. I hope this helps 🙂 . Spider 1 Quote Link to comment Share on other sites More sharing options...
Jet Set Willie Posted January 5, 2023 Author Report Share Posted January 5, 2023 Thank you, JetSetDanny, for so detailed help! 🙂 Unfortunately there aren´t two rectangles, just one, the upper one in your screenshots, and I can´t grab it. I tried to edit the arrow few times and I think I did everything correctly. That´s the problem. I will have to try this later by loading original Jet Set Willy, ie unmodified game or try this in unmodified room of my saved JSW game. Perhaps my modified rooms (without any guardians, though) will cause problems somehow? jetsetdanny 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.