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: 5815
Author: andrewbroad
Date: 23/04/2006
Subject: Re: Finding unused addresses
This is an erratum to Message 5792; changes are embedded below.
------------------------
Finding unused addresses
------------------------If you wish to apply a patch and choose your own addresses for the
subroutines and data-areas (instead of the addresses given in
Recommendations, which are inapplicable to JSW64), you must first
find unused addresses in your game-file (a task which will
hopefully one day be automated, but which must be done manually
for now).In the unpatched game-engines, the free space is as follows:
MM48
----
* #934C-9CFF (#9B4 bytes) contain assembly-code which can safely be
overwritten.
* There may be some unused space in the room-definitions,
particularly Offsets 733-767 for rooms which have neither VGs nor
special graphics.
http://geocities.com/andrewbroad/spectrum/willy/mm_format.htmlJSW48
-----
* #869F-87C9 (#12B bytes) contain the colour-code routine, which is
usually bypassed.
* #96F4-97FF (#10C bytes) contain unused code followed by zeroes.
* #9B00-9BFF (#100 bytes) contain the sprites and colour-attributes
for the colour-code screen, which is usually bypassed.It is possible to place patches in unused sprite-pages; in the
original JSW, the following addresses are free:
* #9C00-9C3F (#40 bytes) are two unused sprite-frames.
* #9E00-9EB3 (#B4 bytes) are the 'passwords' for the colour-code
screen, which is usually bypassed.
* #9EB4-9FFF (#14C bytes) are unused.
* #A680-AAFF (#480 bytes) are unused.
* #B100-B1FF (#100 bytes) are the Macaroni Ted sprite, which is
unused in the original JSW.
* #B300-B3FF (#100 bytes) are unused.It is possible to place patches in unused rooms (Room [r] starts at
#C000 + #100*r); in the original JSW, the following addresses are
free:
* #EF00-EFFF [47].
* #FD00-FFFF [61-63].JSW128
------
* #96F4-97FF (#10C bytes) contain unused code followed by zeroes.
* #9B00-9BFF (#100 bytes) contain the sprites and colour-attributes
for the colour-code screen, which is always bypassed.
* Free space in #9800-F6FF (Bank 0) varies from game to game, and
it's up to the author to keep an accurate record of this using
JSWED's Memory screen (it can also be useful to consult the
Sprites screen, and even the Hex-editor, to get a more precise
idea of which addresses are unused).JSW64
-----
* #96F4-9717 (#24 bytes) contain unused code.
* #9B00-9BFF (#100 bytes) contain the sprites and colour-attributes
for the colour-code screen, which is always bypassed.
* Free space in #9800-F6FF (Bank 0) varies from game to game, and
it's up to the author to keep an accurate record of this using
JSWED's Memory screen (it can also be useful to consult the
Sprites screen, and even the Hex-editor, to get a more precise
idea of which addresses are unused).
* The unused space in rooms can be used for local patch-vectors,
since the room-definition gets copied to the current-room buffer
starting at #8000 - but it cannot be used for global patches,
since the rooms reside in memory-banks that are usually paged
out.
--
Dr. Andrew Broad
http://geocities.com/andrewbroad/
http://geocities.com/andrewbroad/spectrum/
http://geocities.com/andrewbroad/spectrum/willy/
| Previous message | Back to the Yahoo! Archive home page |
Next message | ||
| Previous in thread | Next in thread | |||
