Resource centre for ZX Spectrum games
using Manic Miner and Jet Set Willy game engines
Archive of the
Manic Miner & Jet Set Willy Yahoo! Group
messages
|
|
||
|
|
Message: 4488
Author: andrewbroad
Date: 30/09/2004
Subject: Re: Abusing Items and alternate endings
Alexandra wrote:
>Sacrilege! There are four levels at which one can be said to have
> It has come to my attention that you could treat Items in JSW64 as
> nonessential, since it's quite possible to make a different ending
> that doesn't rely on the items being collected. For example you
> could use the graphics buffer to have a nice ending screen, or use
> a patch.
>
> This would give you the opportunity to use items as true extra
> lives that aren't neccecary. You could also have essential-to-
> collect items on rooms which contain a portal, or to move
> guardians out of the way or whatever.
played a JSW game to completion, and collecting all the items is the
most basic one upon which all the others are built.
A JSW game is:
1. ITEM-COMPLETABLE iff it is possible to collect all the items
without cheating.
2. MARIA-COMPLETABLE iff it is item-completable and possible to get
past Maria after she disappears.
3. BED-COMPLETABLE iff it is Maria-completable and you can reach the
bed-column, triggering Willy to run towards the toilet.
4. TOILET-COMPLETABLE iff it is bed-completable and Willy can reach
the toilet.
john_elliott_uk wrote:
>Wow, just what I was going to look for myself! ;-)
> Alexandra wrote:
> >
> > By the way, can someone tell me how to customize the colour
> > cycling? Is there somewhere in memory that has the start and end
> > colour values? For my unofficial Dark Tower sequel I need the
> > items to all be red.
>
> Your answer lies at 9430h:
>
> 9430 3a cb 85 ld a,(85CBh)
> 9433 85 __ __ add a,l
> 9434 e6 03 __ and 3 ;A is now 0-3
> 9436 c6 03 __ add a,3 ;A is now 3-6, item colour
> 9438 4f __ __ ld c,a
> 9439 1a __ __ ld a,(de)
> 943a e6 f8 __ and 0F8h
> 943c b1 __ __ or c
> 943d 12 __ __ ld (de),a
> Now, there are various tricks that can be done. To have a fixedFor those of us who prefer using the POKE command to using a
> colour, you simply replace the 'add a,3' with 'ld a,' - so
> for red, you replace the C6 03 with 3E 02.
hex-editor:
POKE 37942,62
POKE 37943,c
where c is the INK-colour of items, {0 <= c <= 7}
> If instead you replace E6 03 C6 03 with E6 40 C6 02, and the E6 F8POKE 37941,64
> with E6 B8, you get red items which slowly go bright and dim -
> quite a neat effect, particularly in the Off Licence.
(POKE 37942,198 if replacing the above patch)
POKE 37943,c
POKE 37947,184
Of course, this only toggles the BRIGHTness every 64 time-frames, so
you might want to insert shift-instructions to speed it up, e.g.
LD A,(34251) ; get ticker (current time-frame, 0 to 255)
ADD A,L
AND 00000001b ; extract least significant bit of ticker
SLA A ; shift it left 6 times...
SLA A
SLA A
SLA A
SLA A
SLA A ; ... so that it's in the BRIGHTness position
ADD A,_c_ ; where _c_ is the INK-colour of items
LD C,A
LD A,(DE) ; get colour-attribute of character to print item on
AND 10111000b ; combine its FLASHness and PAPER-colour...
OR C ; ...with the item's BRIGHTness and INK-colour
LD (DE),A ; write it back to secondary attributes-buffer
This code has not been assembled and tested. I'll leave this as an
exercise to the reader who wants this patch badly enough to fiddle
around with code-motion or, alternatively, to write a subroutine in
some free memory to do it...
> Or, of course, you could base your game on the Henry's HoardSomething for me to remember when I finally get around to writing up
> engine, which has item colour settable by room.
my JSW Room-Format...
--
Dr. Andrew Broad
http://www.geocities.com/andrewbroad/
http://www.geocities.com/andrewbroad/spectrum/
http://www.geocities.com/andrewbroad/spectrum/willy/
