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: 7143
Author: ian.rushforth
Date: 13/09/2017
Subject: Re: Question about inserting patch vectors in JSW64
John wrote:
> What you've overlooked is that room definitions get copied to #8000 before they are used -- so patch vectors > in the room itself have to point to the copy.
> So instead of setting the bytes to #00 #C1, you have to set them to #00 #81.
Just to clarify, the reason why Danny's attempt failed (see earlier posts), when he pointed the patch vector at the source (#C100) rather than at the copy in the room buffer (#8100), is because the room data are stored in a different bank of data in the Spectrum 128K operating system.
Once the 'Room setup' routine has populated the current room buffer from the data in Bank 1 [it's presumably Bank 1 in the case of The Off Licence, because that's traditionally Room 0], the program pages back to Bank 0 to run the Main Loop of the game, and so pointing at the address #C100 will not execute the patch vector that is stored in the room data.
