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

 

arrowleft Previous message
Next message arrowright
arrowleftthread Previous in thread
Next in thread arrowrightthread

 

 

Message: 6633

Author: andrewbroad

Date: 17/02/2010

Subject: Re: Patch-vectors in JSW64

 

Roger wrote:

I downloaded your JSW 64V version 0.01 HL 12.tap file from WoS
expecting that it would make the perfect template file for future
64V games but I ran into trouble with Room 63 straight away because
any guardians placed there behave like the eye sprite in the clock
tower even when this has been deleted. They attempt to jump around
a non-existent clock face.

I presume that this special guardian path must have been done with a
patch that remains in that room. Can it be removed with a poke so
that the room can be re-used like any other?

Room 63 uses the main-loop patch-vector (Room-offsets #FD-FE) to call a subroutine at #C500.

The address of Room r's main-loop patch-vector is

bank : #C0FD + #200*(r mod 32)
where
bank = 1 if {0 <= r <= 31}
bank = 3 if {32 <= r <= 63}
bank = 4 if {64 <= r <= 95}
bank = 6 if {96 <= r <= 127}

Thus, the address of Room 63's main-loop patch-vector is
3:#C0FD + #200*31 = 3:#FEFD

The default patch-vector is #869F, which just returns.
To make Room 63 use the default patch-vector, set:
3:#FEFD: 9F 86

Are there instructions published anywhere on how to call a
subroutine in free memory that would poke something on room entry
and then how would normal conditions be regained on leaving the
room?

To do that, you need to write a room-setup patch-vector (Room-offsets #FB-FC) to apply the poke, and a default patch-vector that is called by every other room in the game to set the normal conditions.

An example of this is documented in my Advanced MM/JSW Trainer, which makes guardians harmless by default, but certain rooms call a room-setup patch-vector to make them harmful:

http://abroad.sqweebs.com/spectrum/software/trainer.html
(download v0.1.0 and see TECHNICA.TXT: sections "Default room-setup patch-vector" and "Harmful guardians").

--
Dr. Andrew Broad
http://abroad.sqweebs.com/spectrum/mmjsw/

 

 

arrowleft Previous message Back to the Yahoo! Archive
home page
Next message arrowright
arrowleftthread Previous in thread Next in thread arrowrightthread