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: 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.html
>
>
> JSW48
> -----
> * #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/

 

 

arrowleft
arrowright