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: 5873
Author: andrewbroad
Date: 20/07/2006
Subject: Re: Spectrum patch-file formats
john_elliott_uk wrote:
>I have invented a textual notation for patches, where the addresses
> jgh@ wrote:
> >
> > Is there a prefered file format for JSW (or generic Spectrum)
> > patches?
>
> The ones I've done - at
> http://www.seasip.demon.co.uk/Jsw/patches.html - use the Intel .HEX
> format, because that's what the assembler I was using generates.
> JSWED's 48-to-64 upgrader uses the same format.
>
> .HEX solves the problem of a patch covering more than one part of
> memory, because it can contain multiple memory ranges. What it
> can't do is say "put this bit anywhere there's some free space".
> For that you'd need a more complicated format again, such as .REL.
of any subroutines and data-areas introduced by a patch are given as
variables (with recommended values). It's suitable for use (by hand)
with JSWED's hex-editor.
It's up to the person who applies a patch to know if the recommended
addresses are applicable, and to give appropriate addresses if the
recommended ones are already used for something else by the game to
be patched.
Knowing whether a given address is used or free is, in general,
computationally undecidable. So a program to "put this bit anywhere
there's some free space" would have to rely on heuristics such as
knowing the memory-map of the original JSW, and comparing the
original JSW byte-by-byte with the game to be patched, on the
presumption that if the values at Address x match and x is free in
the original JSW, then x is also free in the game to be patched
(actually we could do with better heuristics, which err only on the
conservative side - i.e. are guaranteed never to say that an address
is free when it is in fact used).
My patch-notation is not yet a fully formal language, and is not yet
recognised by any programs; I expect that SPECSAISIE will one day be
able to take patches in this format and apply them to a given game.
See Message 5792 for details of this notation, and a list of unused
addresses in MM, JSW48, JSW128 and JSW64 (see also Message 5815 for
an erratum).
I make extensive use of this notation in TECHNICA.TXT of Advanced
MM/JSW Trainer.
--
Dr. Andrew Broad
http://geocities.com/andrewbroad/
http://geocities.com/andrewbroad/spectrum/
http://geocities.com/andrewbroad/spectrum/willy/
P.S. Wimbledon may be over, but I've got an awful lot to catch up on
before I'm "more intensely back" to the MM/JSW scene. I've got this
big, important thing on over the next couple of weeks, so it will be
a while before I make any significant progress with Advanced MM/JSW
Trainer, or even update my website.
P.P.S. Willy's Hoard looks like an amazing effort at first glance!
:-)
