Norman Sword Posted March 2, 2021 Report Share Posted March 2, 2021 (edited) 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 March 2, 2021 by Norman Sword One byte of data was missing Spider, JianYang, RuffledBricks and 1 other 3 1 Quote Link to comment Share on other sites More sharing options...
Spider Posted March 2, 2021 Report Share Posted March 2, 2021 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. 🙂 Quote Link to comment Share on other sites More sharing options...
Norman Sword Posted March 2, 2021 Report Share Posted March 2, 2021 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. Spider 1 Quote Link to comment Share on other sites More sharing options...
IRF Posted March 2, 2021 Report Share Posted March 2, 2021 I wonder if the problem (now fixed) arose because you numbered The Off Licence as Room 1 rather than Room 0? Quote Link to comment Share on other sites More sharing options...
Norman Sword Posted March 2, 2021 Report Share Posted March 2, 2021 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. IRF and Spider 1 1 Quote Link to comment Share on other sites More sharing options...
IRF Posted March 2, 2021 Report Share Posted March 2, 2021 DEC HL? Quote Link to comment Share on other sites More sharing options...
Norman Sword Posted March 2, 2021 Report Share Posted March 2, 2021 Multitude of ways. I only looked at the data. And whilst looking at the data I added an extra entry. A multitude of options to correct the CPIR step dec hl change the offset to only five instead of six or just add an extra byte to the data. In every case the file grows by one byte. IRF 1 Quote Link to comment Share on other sites More sharing options...
Norman Sword Posted March 2, 2021 Report Share Posted March 2, 2021 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. RuffledBricks, IRF and Spider 2 1 Quote Link to comment Share on other sites More sharing options...
IRF Posted March 3, 2021 Report Share Posted March 3, 2021 (edited) 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 March 3, 2021 by IRF Spider 1 Quote Link to comment Share on other sites More sharing options...
RuffledBricks Posted March 3, 2021 Author Report Share Posted March 3, 2021 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. Spider 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.