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
| Previous message | Next message | |||
| Previous in thread | Next in thread | |||
Message: 4488
Author: andrewbroad
Date: 30/09/2004
Subject: Re: Abusing Items and alternate endings
Alexandra wrote:
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.
Sacrilege! There are four levels at which one can be said to have
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:
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 Wow, just what I was going to look for myself! ;-) Now, there are various tricks that can be done. To have a fixed
colour, you simply replace the 'add a,3' with 'ld a, ' - so
for red, you replace the C6 03 with 3E 02.
For those of us who prefer using the POKE command to using a
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 F8
with E6 B8, you get red items which slowly go bright and dim -
quite a neat effect, particularly in the Off Licence.
POKE 37941,64
(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 Hoard
engine, which has item colour settable by room.
Something for me to remember when I finally get around to writing up
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/
| Previous message | Back to the Yahoo! Archive home page |
Next message | ||
| Previous in thread | Next in thread | |||
