Jump to content
Jet Set Willy & Manic Miner Community

Jet Set Willy cycle randomiser - mod idea


RuffledBricks

Recommended Posts

 

21 hours ago, MtM said:

Norman, is that a crt that The Attic is displayed on? Lovely colours anyway, it looks superb.

The colours are from an lcd widescreen monitor. Nothing special.~

Provided here is the final version of the random patch. This is similar to the listing I provided, but is extended in scope.

Using an original JSW file - which I am not providing.

 

 

; Load JSW  - ORIGINAL  - RETURN TO BASIC
; load this file over JSW - a 238 byte file - code loads at 65400
; RANDOMIZE USR 65400  - TO INSTALL PATCH
; RANDOMIZE USR 33792  - TO PLAY

Not extensively tested - main purpose is to see what the game runs like when modified in such a way.

 

This file is one byte bigger. Which shifts the room data by one byte and corrects the problem (I hope)

 

 

 

rand_sp.tap

Edited by Norman Sword
One byte of data was missing
Link to comment
Share on other sites

Does make it quite interesting, I noted  you can't do the 'non stop walk left' through both Kitchen rooms as the sprite position changes, but that was expected.

There is guardian collision in Forgotten Abbey. I did not note from a (to be fair very quick cursory glance) any other rooms with the same immediate issue but I'll test it out properly later. 🙂

Link to comment
Share on other sites

A quick look at the code and  I have spotted the problem. One byte short in data - I will update the file above.

The code assumes that this is the original JSW and only stores the rooms that need the sprites adjusting (6 rooms). All the other rooms are assumed to be full adjustment.

The code steps through the room numbers and then steps into the data. However in the original file. The step onto the room data that specifies which sprites should be moved in those 6 special rooms was stepping one byte short. So it found the room was special, but did not match the special room with the correct data for that room.

 

Link to comment
Share on other sites

The problem arose for a far more mundane reason. CPIR. I set up a search for the room number then once it was found stepped over the room numbers into the room data. So searching six items and stepping  over six items to the corresponding room data. Simply forgot that the CPIR stepped past the data it matched.

I just added an extra byte of data to allow for the CPIR step after a match.

 

Link to comment
Share on other sites

The technical changes from the original file I listed.

It was noticed that out of all the playable rooms. Only 6 needed data to change how the routine modified the room. So this file stores only six room numbers and the data for those 6 rooms ( and an extra one for luck- CPIR)

The original query wanted a period of immunity after death. Whilst easy enough to do. It needs more code than I was prepared to write. The code is not the problem. The backward reference to the original is.

After playing the modified rooms I noticed I was occasionally killed as I entered a room. The random aspect meant that I would re-enter the room and again in most cases the sprite would have been moved by the routine, and would start in another place. So respawning back in the same place was not a fatal flaw.

After wandering around heaps of rooms, it became noticeable that this occasional problem was mainly the horizontal sprites. (it might happen with vertical sprites - but not on my wandering) So instead of addressing the immunity problem I instead addressed the problem of sprites being in the vicinity of room edges instead.

The added code that is not in the original listing, takes the trouble of moving any sprite that is left near a room edge. This added code will move sprites away from the immediate vicinity of the left and right edge. It only moves horizontal sprites.

From the wanderings I had, this small change allows in most cases the entry into a room without a problem.   

Link to comment
Share on other sites

Musing out loud: I wonder whether the random start position of ropes might mean that if Willy drops into a room from above (e.g. from the Orangery to the Swimming Pool), from what would 'traditionally' be a safe position, Willy might instead drop a fatal distance without being caught by the rope?  (But only perhaps once, as the random new position of the rope should mean that his next life gets safely caught.)

Edited by IRF
Link to comment
Share on other sites

22 hours ago, Norman Sword said:

 

The colours are from an lcd widescreen monitor. Nothing special.~

Provided here is the final version of the random patch. This is similar to the listing I provided, but is extended in scope.

Using an original JSW file - which I am not providing.

 

 

; Load JSW  - ORIGINAL  - RETURN TO BASIC
; load this file over JSW - a 238 byte file - code loads at 65400
; RANDOMIZE USR 65400  - TO INSTALL PATCH
; RANDOMIZE USR 33792  - TO PLAY

Not extensively tested - main purpose is to see what the game runs like when modified in such a way.

 

This file is one byte bigger. Which shifts the room data by one byte and corrects the problem (I hope)

 

 

 

rand_sp.tap 238 B · 7 downloads

Wonderful, thanks for doing this Norman. Will try it out on my Twitch stream later today.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.