-
Posts
5,112 -
Joined
-
Last visited
Everything posted by IRF
-
P.S. I subsequently edited my post last night because I thought that I might have identified a typo? I couldn't see how a conveyor direction byte value of db %01111110 could create a right conveyor? The lowest two bits of a right conveyor are usually 01 (so that after subtracting 3, you get 10 in the lowest two bits - Bit 1 set, Bit 0 reset). A conveyor with lowest two bits of 10 is usually an Off Conveyor (because the routine subtracts 3 leaving 11 in the lowest two bits, and no reset bits = no movement)? However, I've just tried POKEing your file in the way that I suggested last night, and it didn't work in the way that I thought it would, so I bow to your knowledge of the way that your code operates. 🙂 P.P.S. I probably came across as pedantic when I suggested certain changes for "neatness and consistency", but that was more about me trying to get my head fully around the subject matter. The point I was trying to make was that the status of bits 2-5 is less critical. EDIT: I was wrong on that point - see my subsequent post.
-
Norman, I didn't mean to 'troll' or exasperate you. My intention in posting that "I've just noticed that Norman added a code listing to his last post here" was to draw the attention of others to the fact that you had latterly edited your earlier post to add some detail of your conveyor code. If a member goes back and edit an earlier post then there is no notification on this forum that they have done so. Indeed, it was only several days after you had edited the post that I noticed you had done so - I thought it might have escaped the notice of other members as well, so I tried to flag it up. The code you provided in that post (which you have now apparently deleted) was very useful and informative, and I hope that you reinstate it. 🙂
-
Danny, I seem to recall that you did donate a couple of patches (implemented via the patch vector system) for Jet Set Mini. And if memory serves correctly, you were duly credited in the readme file. 😊
-
There is one more conveyor logic permutation I can think of. (ie. Two more conveyor types, one L and one R.) Namely fast sliders but for which it IS possible to lock Willy in a stationary position (after falling vertically down onto it with the 'upstream movement' key depressed, or by walking upstream & releasing the 'upstream' key for a single time frame before pressing it again). I think this additional conveyor type could be facilitated (though I haven't tried this yet) by replacing the first RET NZ in Norman's code with a JR NZ that just skips forward past the SET 1, (HL) command. And then the conveyor direction bytes to implement that type of conveyor would be: db %11000000 ;L SLIDE CONVEYOR - LOCKOUT ON FALLING Subtract 3 and you get 10111101 (bit 1 reset so it's a left conveyor; bit 6 reset causes fast sliding; bit 7 set means horizontal movement isn't automatically switched on if he falls onto it vertically) db %11000001 ;R SLIDE CONVEYOR - LOCKOUT ON FALLING Subtract 3 and you get 10111110 (bit 0 reset so it's a right conveyor; bit 6 reset causes fast sliding; bit 7 set means horizontal movement isn't automatically switched on if he falls onto it vertically)
-
I've just noticed that Norman added a code listing to his last post here. Conveyor types are differentiated by testing various bits of the conveyor direction byte. FURTHER EDIT: Everything below this point was incorrect, based on a fundamental misunderstanding on my part. Apologies to Norman for doubting him! Edit: Although I believe there may be an error in this entry: db %01111110 ;R STANDARD CONVEYOR - BUT NO LOCKOUT ON FALLING To make a right moving conveyor, that should read(?): db %01111101 ;R STANDARD CONVEYOR - BUT NO LOCKOUT ON FALLING Also, I suppose that for neatness and consistency between L and R conveyors of the same category, these ones: db %00111000 ;L SLIDE CONVEYOR db %01111000 ;L STANDARD CONVEYOR - BUT NO LOCKOUT ON FALLING Would be better as: db %00111100 ;L SLIDE CONVEYOR db %01111100 ;L STANDARD CONVEYOR - BUT NO LOCKOUT ON FALLING (Though those changes wouldn't make any difference in practice.)
-
That's a good idea Danny! I would make it my first priority (time permitting) to provide an explanation of how I managed to create the trampoline in Jet Set Mini (and not just any old trampoline - one which allows you to fall from a ridiculous height and land on it safely!)
-
You obviously haven't explored the full mansion of Jet Set Mini yet... 😉😎
-
Now I'm really confused! East Wall is the 'classic' name for it, and I renamed it the West Wall here! The bird flying along at the bottom of the Priest's Hole (top room of the West Wal) slightly 'wraps around' beyond the bottom of the room. This causes it to imprint a few of its pixels permanently (well, until the room is refreshed when Willy dies or re-enters) onto one of the screen buffers - they appear along the very top of the room as the bird tracks along, but they are dark blue INK against the black PAPER background, so they're not easy to spot. When the bird returns back to the same place after one complete traverse of its horizontal range, it collides with that 'shadow' of itself, which has the effect of killing Willy. That effectively imposes a limit on how much time you can spend in that room in one go. In order to safely navigate the room, you have to leave and re-enter a few times (which resets the bird to its starting position and clears the buffer of those errant pixels). That's why I created that exit to the Emergency Generator halfway up so you can pop out and back in again (otherwise the game would be impossible to complete!)
-
Since Sendy is relatively new here, I thought I should point out something that sometimes happens on this forum: last night I posted twice in succession in this thread, both in response to Sendy, but the two posts ended up on different pages. You may (based on your likes) have only seen the most recent one and missed the post at the bottom of page 2 of the thread? (Not that I said anything particularly crucial in that post; I just thought I'd point out this potential pitfall of posting here. 😊)
-
I also credited Geoff for some of his patches in the readme for Jet Set Mini (and for coming up with Patch Vector system, along with John Elliott who expanded the concept by creating different categories: Room Setup PV, Main Loop PV and (in Manic Miner games) Portal Patch Vectors).
-
Ah, I think you're talking about the floor conveyor in the Dr Jones ('elephant') room when you talk about Willy changing direction on a conveyor. That's not a sticky conveyor, just a standard one but the direction is toggled on a timer. The ice platform is in the Cold Store, between the Kitchen and the Back Stairway.
-
Cold Store conveyor isn't the floor but the platform just below the bottom of the rope. At one point in Danny's walk through he catches the end of the rope and immediately drops off again, which interrupts his sideways motion - is that what you mean? Camel room = Elephant room?? East Wall is now the West Wall in this laterally-inverted game. 😉 I don't think that's why you're dying at the top of the West Wall - there is a time limit imposed though, via a quirky feature of the game engine. So you have to pop in and out to reset the room in order to progress up to the top exit.
-
A 'medium friction' platform as you describe would indeed be a novelty (well, it's kind of like the JSW: Perpetual Motion mod, but only applied to a specific type of platform not the whole game). However, that isn't how that ice platform in Jet Set Mini behaves! It is essentially a non-sticky Sticky Conveyor, as discussed earlier. I think you might have mistaken all the platforms in that room for conveyors, whereas in fact there is only one in the room (the long one across the centre). (If so, it highlights the perils of trying to figure out what is going on by watching a pre-recorded run-through, rather than playing the game yourself!)
-
Geoff's recent(ish) game Willy does the Great Pyramid has an interesting (and apt) logic for connecting rooms vertically.
-
If you like that, then you'll probably like the Room Setup Patch I implemented in the Swimming Pool in Jet Set Mini (where that room is known as 'Pool Party'). Upon Willy's entry to the room, his x-coordinate is inspected, and the initial swing direction of the rope is set accordingly. This means that if he falls down from The Orangery into the left half of the Swimming Pool, the rope starts off swinging leftwards; if he falls down from the right half of The Orangery then the rope starts swinging rightwards. Either way it catches Willy, and there is no Infinite Death Scenario (such as occurs if you drop down on the wrong side of the rope in original JSW). In fact, in an attempt to showcase this neat little fix, I designed the layout in such as way that you have to drop down on both sides of the rope in order to be able to collect all the Orangery items safely. 😉
-
There could be a way round* those design considerations - by using the WRITETYPER keys to teleport into the room at a position that is a (safe) drop above one of the conveyors, Willy might end up stuck on one of them even it isn't possible to manoeuvre into such a situation within the room. (*Done at the player's own risk - and of course they could always teleport back out again!)
-
Hello Sendy, sorry for not welcoming you here sooner - before doing so I wanted to dig out, by way of a welcome, the following quote from the readme file for a game called 'Jet Set Mini' that Andy (Spider the site moderator) and I created a few years back. In amongst the credits for the game, it says this: "- Alex Cornhill ('Sendy'), for unwittingly inspiring ideas for new block types, in messages posted on the Manic Miner & Jet Set Willy Yahoo! Group more than a decade ago!" Due to the passage of time (and the unavailability of the Yahoo! Group, other than as a compressed backup file that I don't have to hand right now), I can't remember the full details of what I was referring to there. However, the 'Kitchen's Cold Store' room has - appropriately enough - an ice platform similar to the one that you initiated a discussion on elsewhere in this forum recently. (Albeit executed differently - a Main Loop Patch, implemented via the Patch Vector system, constantly updates the Conveyor Direction Byte in that room so that the conveyor flow direction always matches Willy's current facing direction. This means that he never gets stuck on the spot, as he's always facing either left or right.) And there's also a crumbly ramp somewhere in the game. Those might be two of the examples of "new block types" that you might have "unwittingly inspired" me to create for 'Jet Set Mini'. (That game is also packed with lots of other special effects thanks to the Patch Vector system, so I humbly suggest you check it out - it's available to download from the 'jswmm releases' section of the Downloads tab at the top of this forum. 😀 ) **** By the way, I was a member of the Yahoo! club towards the end of its existence (about 90% of the last hundred or so messages on there were from me), but that was probably after you had (temporarily) diverted your interests elsewhere. (But you might have noticed auto-generated emails from me appearing in your email inbox as a result of those posts!)
-
Here are my observations after investigating Norman's 'Conveyor logic' test file: Firstly, I agree that the escalator in First Landing is cool! The Bathroom (aka 'Plumbing Mess'): It is possible to complete the room with all conveyor types. With Type 3, it can ONLY be completed (without losing a life) by exiting the room via the top-left exit. Analysis of conveyor types (based on the number that appears in blue INK at the bottom-right of the status bar): Type 0 - I can't see any difference between this and Type 2 (see below), they appear to have identical behaviour. Type 1 - Willy is conveyed forwards (i.e. in the same direction as he was facing beforehand), slowly (i.e. at the regular walking speed), it is not possible to 'drop and stop' (i.e. drop vertically down onto the conveyor from above and then arrest forward motion by pressing the opposite sideways key to the way he is facing). This is a two-way conveyor with Norman's original patch to eliminate the 'sticky' behaviour. Type 2 - Willy is conveyed forwards, at a fast pace (using only two of the four available frames of animation), no drop & stop. This one uses Norman's Ice Patch, eliminating 'sticky' behaviour with fast motion (and no apparent motion by Willy because the two frames of Willy used are identical apart from their horizontal positioning). (Presumably Types 1 and 2 are differentiated via a CP command to check the Conveyor direction byte?) Type 3 - Willy is conveyed forwards, slowly, if he jumps (or walks) sideways onto the conveyor, but gets stuck if he drops or jumps vertically onto it. This is therefore the same as what has commonly been used/known as a 'sticky conveyor'. Type 4 - Willy is conveyed rightwards, quickly (using two animation frames), unless he is facing leftwards with the left movement key pressed when he lands on the conveyor. It is not possible to drop & stop (i.e. drop vertically down on to the conveyor whilst facing 'upstream' - in this case leftwards - with the Left key pressed), or to turn & stop (i.e. walk 'upstream' - in this case leftwards - then stop pressing the Left key for a single time-frame and then resume pressing Left), in order to remain at a fixed position on the conveyor. Type 5 - Willy is conveyed rightwards, slowly (standard speed), unless the left key is pressed and he has leftwards momentum when he lands on the conveyor. The 'drop & stop' / 'turn & stop' manoeuvres are possible on this one. I think this is basically a standard Right Conveyor as per original JSW (Conveyor direction byte = 01). Type 6 - Same as Type 4 but with slow movement (using all four animation frames). The change between Type 4 and Type 6 is analogous to (and presumably done in a similar manner to) the change between Type 1 and Type 2 (i.e. to toggle the slow/fast conveyor action). Both Type 4 and Type 6 are variations on Right conveyors - has some other patch been applied to the Move Willy code to implement these? (Perhaps another CP command in the called subroutine, to check for another fixed value for the conveyor direction byte?) Type 7 - An Off Conveyor, with no conveyor qualities at all (except perhaps animation of the first and third pixel-rows, if that were possible to see, which it isn't in this room). Conveyor direction byte is set to 02 (so that after subtracting 3, both bits 0 and 1 are set - one of those bits being reset is what drives Willy's sideways movement).
-
I guess the 'mission' in each Bathroom variant of Norman's test file is to collect the tap and then exit top-left without dying? (Might not be possible for every conveyor type?)
-
I'm now convinced that it (the Ice Patch) will do what I suggested in my third guess (although I still haven't tried it out yet). Kind of like the toilet run, but it will work in both directions (going left or right) on a conveyor that has the appropriate setting. Incidentally, I'm convinced that Matthew made a boo-boo in implementing the toilet run. I think he intended to use the 'legs together' and 'legs fully apart' frames of animation during that sequence*, so that it really does look like he's running for the toilet to throw up (the hangover having fully kicked in at that point!) Rather than using the two intermediate 'legs slightly' apart animation frames, which makes it look like he isn't moving his legs at all but is somehow being pulled by an invisible force towards the bog... (*I once figured out a way to change the code so that this happens instead, and it really does look like he's sprinting.)
-
No, that's not it. Hopefully third time lucky - does it cause the conveyor to pull Willy along without him having to move his legs? (Which is a more logical way that the conveyors should work!) If I'm right, it would also mean that his skids across the ice at twice his normal walking speed.
-
On second thoughts, does it set the jump flag (turning the conveyor into a trampoline)?
-
The above (note the RESET in capitals, replacing Norman's SET command) would turn the conveyor into a proper 'flypaper' platform, stopping Willy's horizontal motion even if he is moving sideways when he steps (or jumps sideways) onto the conveyor. EDIT: Although for the full flypaper effect, it should also turn off the functionality of the jump keys!
-
I wonder if you use a value of 03 for the conveyor definition byte, will it achieve the same thing as 255 (since only bits 0-1 are inspected by the conveyor routine), but then you can replace your CP -4 command with an OR A (which does the same thing as CP 0 but only requires one byte instead of two)? You could then use a value of 131 instead of 127 in your more advanced code to switch the stickiness back on again. EDIT: Actually you could use any value that is [a non-zero multiple of 4 plus 3] to create a sticky conveyor. (I once experimented with different conveyor values beyond 0-3, and found that they had different properties during the toilet run, in terms of the ability of the P key to stop Willy in his tracks.) **** Norman, in respect of your more advanced code, having studied it but not tried it out yet, my guess is that it has the effect that whenever Willy jumps or falls vertically onto such a conveyor, it turns him round and then conveys him in the opposite direction to the way he was facing before he landed on the conveyor. Am I right?
-
Also, whoever is taking Willy's hard-earned cash off him is a rip-off merchant! 😜 If he loses a life when he has, say, £99000 in the bank, then he gets all the money taken off him but is then told "Sorry, that's not enough cash to pay for a regeneration, but I'm keeping it anyway!" 😂
- 33 replies
-
- norman sword
- 48k
-
(and 3 more)
Tagged with: