Jump to content


Member Since 07 Mar 2015
Offline Last Active Jun 30 2020 09:39 PM

#5117 J. G. Harston's extension allowing more than 64 rooms in JSW48

Posted by jetsetdanny on 07 September 2016 - 11:49 AM

Thanks, guys.


My question really arose because I have the following sentence in "WNM SE" Readme:


The value of the address #8916 (corresponding to #8915 in the original "JSW") has been changed to #EE, which allowed the game engine to use 7-bit room numbers instead of 6-bit ones. 


and I'm not sure whether it should say "7-bit" or "8-bit" here - in this particular context. 


My feeling is that it should read "8-bit", but I'm not 100% sure.

  • IRF likes this

#5116 Inserting patch vectors in JSW48 games

Posted by jetsetdanny on 07 September 2016 - 11:46 AM

Thanks, Ian.



In contrast, I would wager that, in the rooms where you noticed the fatal collision happening, it occurred the first time that the flying block passed through the item in question, rather than in a subsequent 'game minute'?


Yes, the first time.

  • IRF likes this

#5112 Inserting patch vectors in JSW48 games

Posted by jetsetdanny on 07 September 2016 - 10:31 AM

Thanks, Ian. That's reassuring  :) .


I've checked the first two in-game minutes in "The Anteroom" and there is no collision.


I'll double  check "Jump'n'Jive" later on, but I'm pretty sure there is no collision there in the first minute either.

  • IRF likes this

#5108 J. G. Harston's extension allowing more than 64 rooms in JSW48

Posted by jetsetdanny on 07 September 2016 - 09:40 AM

On his website, Jonathan Graham Harston discusses his extension, which allows the JSW48 game engine to handle more than 64 rooms.


He says,



JSW48 uses 6-bit room numbers, giving rooms 0 to 63, with room 0 in memory at &C000. However, the only place where this is fixed is the code that fetches a room into the room buffer and the object location table. The current room variable and the room exits in the room data are all 8-bit values.

This patches the code to allow 7-bit room numbers to increase the number of rooms that can be used. Rooms.hex is an Intel Hex patchfile that can be applied to the original JSW48 game engine.
The room fetching code uses OR &C0 to map a room number from 0 to 63 to an address from &C0xx to &FFxx. This could be changed to ADD &C0 to use the whole 8-bit value, mapping rooms 192 to 255 to the spare memory within the code. I chose to change it to XOR &C0, as this maps the spare memory to rooms 64 to 127, running on from the existing 0 to 63. Also, a 7-bit room number is easier to fit into an extended object table.
Patching with POKE 35093,238 gives the following change:
Original code:                                              Changed to:
8912  3A 20 84    LD   A,(&8420)         8912  3A 20 84        LD   A,(&8420)
8915  F6 C0        OR   &C0                 8915  EE C0           XOR  &C0
This gives 8-bit room numbers, mapped to the following areas of memory:
Room numbers                 Memory
0 - 63                            &C000 - &FFFF
64 - 127                        &8000 - &BFFF
128 - 192                      &4000 - &7FFF
192 - 255                      &0000 - &3FFF
I have to admit this description is a little confusing to me and so my question is:
Does POKE 35093,238 make the game engine use 7-bit room numbers or 8-bit room numbers?
I need this clarification for the Readme file accompanying the Special Edition of "Willy's New Mansion" (to be released soon).
Jonathan's extension is used in this game, which features two rooms more than the Original Edition (66 in total). It has been used in the past in "Willy's Hoard" (75 rooms, an all-time high for a JSW48 game so far), the Final Edition of Steve Worek's "Jet Set Emily: Baby on the Go" (71 rooms) and "Jet Set Willy: The Nightmare Edition" (65 rooms).
Thanks for your invention, Jonathan!  :)

#5103 Language questions

Posted by jetsetdanny on 07 September 2016 - 07:28 AM

From "WNM SE" Readme file, a description of changes between the Original Edition and the Special Edition:
Possible IDSes when exiting down to "The Changing Room" have been eliminated thanks to the changes at the upper left of that room.
"at" the upper left or "on" the upper left? or either? or something else still?
EDIT: Similarly (concerning the room "Altar to a Well-Known God"):
Two Fire cells have been added following a suggestion by Ian Rushforth, who spotted the fact that Willy could get stuck on the lower right of the dollar sign.
"on" or "at" the lower right?

#5083 Free space and code optimisation in "JSW"

Posted by jetsetdanny on 29 August 2016 - 05:35 PM

Congratulations on bringing the loading time down to under one minute, Andy  :) . That's quite an achievement!

#5042 Post #4000

Posted by jetsetdanny on 19 August 2016 - 04:03 PM

I believe that this is post #5000 now  :) . Sorry about it, Ian; I'm feeling like like the American women's relay team at the Olympics, kind of...  :lol: .

  • IRF likes this

#5041 Fun with Arrows

Posted by jetsetdanny on 19 August 2016 - 04:01 PM

Unless the code was so tweaked that the warning sound would be when the arrow is e.g. 10 rows from Willy, or something like this...

  • IRF likes this

#5038 Fun with Arrows

Posted by jetsetdanny on 19 August 2016 - 08:45 AM

Ian, that's a fantastic invention, I really like it!  :D Congratulations!


So you have created a true "constant arrow" now. I once used that adjective to refer to what Andrew Broad described as "bouncing arrow" (because I couldn't remember which word he used - meaning an arrow which goes back and forth, really being eight arrows inserted at appropriate intervals). And now you've made my description a whole new reality :) .


For a possible future game design, it's better that the arrow doesn't become valid and invalid, IMO. If it did, it would mess up its possible applications.


Just one question now: the way you've implemented it, it would affect all arrows in the game, wouldn't it? It would be  nice to have such special arrows only in some selected rooms...

#5034 The Attic Bug Seen In Action

Posted by jetsetdanny on 18 August 2016 - 08:39 AM

I think its the way the entities in the URL are that's doing that. Might be browser specific too. UTF8 vs ISO etc


Or the Nightmare has cast a bit of its ugly shadow there...  :lol:

#5027 Useful Links

Posted by jetsetdanny on 17 August 2016 - 02:02 PM

Here are a couple more useful links:


J.G. Harston's page:



Geoff Eddy's Patch Vectors:



However, in the latter, I have noticed a couple of errors.


Firstly, the PVs that change Willy's colour in 'Willy Takes a Trip' (Rooms 69, 61 and 62) all contain (directly or indirectly) several Calls or Jumps to #9673.  However, the pertinent sub-routine in the Geoff Mode disassembly (link below) seems to start at #9679 (ending at #967F).


Secondly, the PVs in Rooms 10 and 53 of 'Willy Takes a Trip' both call up #97C8 to print a room element, but the 'Print the room' routine in the Geoff Mode disassembly is at #8D33-#8DB0.


Geoff Mode disassembly:




Ian, thanks for this info.


You are referring to Room 59 (not 69), besides 61 and 62.


I believe these are not errors. The thing is that the disassembly may not (actually I think: does not) reflect exactly the code in all of Geoff's games.


I suspect (without analysing it right now) that the disassembly may have been done on the basis of his first game, "J4 (The Fourth Remix)". In his later two games there must have been some slight changes, and in the fourth game there must be many changes (as it's the so-called Geoff Mode 2).


The PVs disassemblies have to be analysed by looking at the actual code of each game in question rather than by comparing them to the disassembly of Geoff Mode.


In case of "Willy Takes a Trip" the pertinent code which is called indeed starts at #9763.


Also, the printing routine (which I believe is something Geoff wrote, I don't believe it exists in the original "JSW") used by PVs in the rooms 10 and 53 of "Willy Takes a Trip" is where the PV disassembly indicates. I can testify to it, because I copied it into "WNM SE" and it works just fine  :) .

  • IRF likes this

#4960 Random thought on Rope/Crumbly interaction

Posted by jetsetdanny on 04 August 2016 - 07:54 PM

Indeed!  I take it they are restored each time you leave and then re-enter a room?


If so, the frustrating scenario I envisaged above would be repeated if the player had to pass through such a room more than once! :excl:  :lol:


Yes, they are restored, indeed.

  • IRF likes this

#4957 Random thought on Rope/Crumbly interaction

Posted by jetsetdanny on 04 August 2016 - 02:15 PM

(I wasn't sure whether to put this in the Manic Miner or the JSW thread!)


Theoretically, if Willy were to drop down onto a Crumbly cell whilst on a Rope, presumably the Crumbly wouldn't actually crumble?  (In the same way that Earth cells don't block Willy's progress, etc whilst he is swinging on a Rope.)


Because the Move Willy routine (from which the 'Animate a crumbling floor tile...' sub-routine is called) is bypassed when Willy is on a Rope (apart from the 'detect the movement keys being pressed' elements).


Of course, such a situation wouldn't normally arise in a Manic Miner game (as the MM game engine doesn't feature Ropes), or in a JSW48 game (because Crumbly cells aren't supported).


Not in a JSW48 game, but they are supoported in a JSW64 game.

#4867 Free space and code optimisation in "JSW"

Posted by jetsetdanny on 21 July 2016 - 05:21 PM

Personally, I don't ever use the number keys to control Willy's movement. So I wouldn't mind these keys being assigned a different function.

  • IRF likes this

#4834 Language questions

Posted by jetsetdanny on 15 July 2016 - 12:41 PM

I think it may be useful, especially to non-native English speakers, to have a thread in which some language questions may be asked and answered.


I am currently working on the Readme for the Special Edition of "Willy's New Mansion".


I have the following description there, in the section dealing with code changes:


8356 – 8373  Routine which makes the screen flash, unused in the original "JSW", where it resides at 8A0B - 8A25 (jump from
               8A0E; ends with a jump to 8A23).
Does the word "resides" sound good here? I have seen the word "lives" used various times in similar contexts and so I suspect this may be the word native speakers would actually use. So is "resides" OK? Is "lives" better? Or is something else better?