-
Posts
3,229 -
Joined
-
Last visited
Everything posted by jetsetdanny
-
On a one-way street cars are only allowed to go in one direction, and while it doesn't have much to do with the natural laws of physics (as doesn't Willy's movement, either), it is perfectly in line with man-imposed laws and regulations ;) .
-
Thanks! :)
-
There is no conveyor, but there is an Earth cell at the height of the lower part of Willy's body, which prevents Willy from moving on to the left. If that particular Earth cell wasn't there, Willy could move left (he would then get killed by the Fire cell below, but you couldn't claim that Willy gets stuck because of the bug).
-
It is the Screen Flash PV (which I call the Flashing Screen PV in "WNM SE"'s Readme), indeed, and its cousin, the Coloured Screen PV. I offer a disassembly of all of my PVs in the Readme, and these two go as quoted below. The descriptions in red are obviously wrong and need to be modified. If you have any suggestions as to what specifically should be put / would make sense there, please let me know :) . Flashing Screen This PV works by setting the value of the screen flash counter and thus activating the screen flash routine (which is unused in the original "JSW", where it resides at #8A11
-
Thanks for these explanations, Ian! :)
-
This is post #4000 on the forum :) . Perhaps the next milestones of this kind could be highlighted in this thread?
-
Thanks to both of you, guys, I appreciate your help!
-
I am currently working on the Readme file which will accompany the Special Edition of "Willy's New Mansion". I am describing in it, among other things, the way the patch vectors (PVs) which I created work. I have come up against a problem in the description of two of the PVs which has to do with the AND instruction. I will be very grateful for assistance from anyone who is able to answer my query. Many of Geoff Eddy's PVs, on which I based some of my solutions, use the following code to make something happen every n ticks: 3A CB 85 LD A, (#85CB) pick up the minute counter E6 0F AND #0F and make things happen every 16 ticks C8 RET Z only As I understand, the operand of the AND (E6) instruction determines how many ticks something is supposed to happen. For example, #07 (7 in decimal) will correspond to "every 8 ticks", #0F (15 in decimal) will correspond to "every 16 ticks", #1F (31 in decimal) will correspond to "every 32 ticks" and so on. I followed the pattern and used this kind of code in my PVs. However - to be honest - I made a mistake and used: #C0 (192 in decimal) to make something happen "every 192 ticks" - while now, with the benefit of hindsight, I think it should have been #BF (191 in decimal); #E0 (224 in decimal) to make something happen "every 224 ticks" - while now, with the benefit of hindsight, I think it should have been #DF (223 in decimal). The results are fine, I am satisfied with my PVs and I am not going to modify them; it's just their description that I am now struggling with. So my questions are: using the above code, does #C0 make something happen "every 193 ticks" (as would seem logical) and does #E0 make something happen "every 225 ticks", or is it not true, because the code works (with these values in place) in a different way? Looking at the results of applying these values, it seems to me that they do *not* correspond to things happening "every 193 or every 225 ticks". In fact, there is quite a significant difference between how the PV in question works with the value of #BF and #C0, and it doesn't look at all like it's the question of something happening "every 192 ticks" or "every 193 ticks" (where the difference would be hardly noticeable, I think). So I *suspect* something else is in play, which has to do with the way the AND instruction works, which I don't understand. It may seem strange that I have created something and now have a problem describing how it works. However, it happens in the real world as well from time to time, doesn't it? (e.g. scientists creating a new material with amazing properties through experiments, and then trying to explain *why* it has these properties by looking at its molecular structure, etc. - at least that's what I imagine might happen :) ). Any help on this would be appreciated, in the sense of describing how: 3A CB 85 LD A, (#85CB) E6 C0 / E0 AND #C0 / AND #E0 C8 RET Z works will be appreciated before 10 May, when the Special Edition of "Willy's New Mansion" is due to be released (speak now or forever hold your peace! :) ).
-
'Don't Mind Your Head (While Walking Left)' Bug Fix for JSW
jetsetdanny replied to IRF's topic in JSW
Very interesting! :) -
Inserting patch vectors in JSW48 games
jetsetdanny replied to jetsetdanny's topic in Designer's Lounge
My comments in blue: -
Inserting patch vectors in JSW48 games
jetsetdanny replied to jetsetdanny's topic in Designer's Lounge
If it is, then so is setting the flying pig as Willy's sprite in "The Nightmare Room" in the original JSW, isn't it? And *if* the Jukebox routine is called 'Danny's Jukebox routine' (which is an honour to me, of course :blush:), it should be called (as of "Willy's New Mansion SE", when it's released) 'Danny's Jukebox routine perfected by Ian', or something like that, since Ian has noticed and suggested a very significant increase in its efficiency since the release of "The Nightmare Edition" (in the sense of using significantly fewer bytes while achieving the same effect) :) . -
Ian, I believe the fact that Willy gets stuck in this particular place is related to the conveyor. If there was no conveyor there (or if it had a different direction), Willy wouldn't get stuck (he could always walk left).
-
'Don't Mind Your Head (While Walking Left)' Bug Fix for JSW
jetsetdanny replied to IRF's topic in JSW
Well done, Ian! :) Will you document the fix later on (the modifications to the code)? -
Twenty days before the planned release of the Special Edition of "Willy's New Mansion", I am pleased to confirm that the game should indeed be released on 10th May 2016, as scheduled. A Release Candidate is currently undergoing playtesting and the main task which remains to be done is finishing the Readme file :) .
-
Inserting patch vectors in JSW48 games
jetsetdanny replied to jetsetdanny's topic in Designer's Lounge
I am pleased to say I *think* I have completed the last code consolidation in "WNM SE" and I *hope* it's really the last one. I have inserted Stuart's Cell Graphics Bug Fix into the main loop thanks to Ian's technical tips. Hats off to both gentlemen for their contribution! :) I have consolidated the code related to some of the patch vectors and moved things around a bit. As a result, apart from finding "secure" space for the "border colour restoration" code (which I had to move from the "endangered" area in A3...), I also inserted another "customised"* patch vector (PV) into the game, bringing the total of rooms with PVs to 63 out of 66. The three rooms which do not have patch vectors are: "The Multi-Toilet Bathroom" (a special room in itself, obviously), "Jump 'n' Jive" (the very first JSW room I ever designed) and "Copin' with Ropin'" (a room which doesn't need any PV for the kind of challenge it has). There are several "customised" PVs in "WNM SE" which comprise the following parts: an "introductory" part setting a variable or some variables within the PV proper and then the "PV proper" which executes whatever is supposed to happen. So the "introductory" parts are different for each room this PV is applied in, while the "PV proper" is just one and the same for all. -
Inserting patch vectors in JSW48 games
jetsetdanny replied to jetsetdanny's topic in Designer's Lounge
I'll try to provide a short update on "WNM SE" tomorrow, time permitting. There's work in progress, still :) . -
Inserting patch vectors in JSW48 games
jetsetdanny replied to jetsetdanny's topic in Designer's Lounge
Congratulations, Ian! You are quickly becoming an expert on Z80 machine code :). For my part, I have successfully inserted Stuart's Graphic Bug fix into the main loop in "WNM SE" (thanks to your technical tips). More about it later. -
Inserting patch vectors in JSW48 games
jetsetdanny replied to jetsetdanny's topic in Designer's Lounge
Thanks for your explanation, Andrew! -
It could be a rope, certainly. I do have the 'adjacent ropes patch' in place. It even occured to me that *it* could be using this space to write data to (instead of the buffer at 81..). In any case, this area is now 'too suspicious' for me to place any code...
-
I've done just that and the results are not encouraging. I put the code which stops the border from getting stuck on the wrong colour for the room Willy is in, if Willy collects an item or the arrow warning sound occurs whilst the in-game music is switched off (called from 925E and 941D) at A3F9
-
Inserting patch vectors in JSW48 games
jetsetdanny replied to jetsetdanny's topic in Designer's Lounge
My preference is to leave some rooms without patch vectors, for various reasons, both room-specific and general, the general one being to prove that it is also possible to have rooms *without* any PVs ;) . Not all rooms where there are active PVs have PVs which are exclusive. In other words, there are several PVs which are applied, without any variation, in more than one room. So it wouldn't be a problem to add some of them to the rooms which have no active PVs at the moment. However, I don't think I will be doing it. -
Inserting patch vectors in JSW48 games
jetsetdanny replied to jetsetdanny's topic in Designer's Lounge
Corrected Corrected! You *are* an astute observer, Ian! :) -
Here's some relevant info from another discussion: Ian (IRF)'s idea: I was considering approaching this from a completely different perspective - removing the ability to turn the music off altogether, thinking that would save a fair few extra bytes in the main loop (keychecks etc), it would remove the need to reset the border colour after the item-collection/arrow-fire border 'special effects', and the player can always press the mute button on their hardware if they don't want to hear the music! Andy (Spider)'s reply: That's very easy, you can chop code out but the quick fix is to change: 35626 JR Z,35638 Jump if not Default is: 35626,40 and 35627,10 (#8B2A,#28 and #8B2A,#0A) Change it to this: only one byte needs changing: 35626 JR 35638 Jump anyway! Which is: 35626,24 and 35627,10 (#8B2A,#18 and #8B2A,#0A) Summary: To turn off the ability to turn off ( ! ) the in game tune via JSWED then just do a #8B2A,#18 , to restore it back to normal change that address back to #28
-
Inserting patch vectors in JSW48 games
jetsetdanny replied to jetsetdanny's topic in Designer's Lounge
Done as you have suggested, Ian! I have edited my original post, including a mention that it's done on your advice :) . An astute observer will note that in "WNM SE" there will be patch vectors in 62 out of the 66 rooms of the game... ;) -
Inserting patch vectors in JSW48 games
jetsetdanny replied to jetsetdanny's topic in Designer's Lounge
To be honest, I use the word "subroutine" from time to time, but I'm not 100% sure how it should be defined. I perceive it as a part of a "major" routine, if that makes sense. Wikipedia has this to say about it: In computer programming, a subroutine is a sequence of program instructions that perform a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed. Subprograms may be defined within programs, or separately in libraries that can be used by multiple programs. In different programming languages, a subroutine may be called a procedure, a function, a routine, a method, or a subprogram.