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: 5003
Author: andrewbroad
Date: 01/11/2005
Subject: Re: Hex-editors for TAP files / Disassemblies
Hervé wrote:
>I have just installed Hackman Hex Editor myself
> For the moment, I tested Hackman hex editor(like John advised it
> to me), but I don't find the sequence "21 45 45" or "21 21 07"
<http://www.technologismiki.com/en/index-h.html>, and I had no
difficulty in editing the original JSW (JETSET.TAP) as John
described (21 45 45 -> 21 42 06, and 21 07 07 -> 21 06 42).
However, this example only works because it happens not to break the
checksum of "Bytes: jsw.js2".
You see, every Spectrum-file encoded within a TAP file has a
checksum in its header, which must match the checksum calculated by
bitwise-XORing all the data-bytes together.
So whenever you edit a TAP file in a hex-editor, there's a 255/256
chance that you'll break the checksum of the Spectrum-file you're
editing (this is not an issue for SNA files, which have no
checksums).
Fortunately, SPECSAISIE has a function FixChecksum which loads a TAP
file, fixes any broken checksums, and resaves it as a valid TAP file.
e.g. Command Prompt> java FixChecksum JETSET.TAP
> I also charged the program NetBeans 4.1 (for Java language)I generated "38249: LD HL,4545h" using SPECSAISIE Disassemble
> great progress! I can now open the Andrew's program
> "SPECSAISIE 1.3", in a window, I see the listing of this one...
> I will like to be able to read the listing of JSW game in the same
> way.
>
> for example:
> 38249: LD HL,4545h ;;; HL= upper two colourr-attributes
>
> I will arrive at that!!!
(I wrote Disassemble *after* I beta-released SPECSAISIE 1.3 -
it will be in the gamma-release).
[SPECSAISIE Disassemble can disassemble a TAP or SNA file between a
given start-address and stop-address, can generate its output in
either denary or hexadecimal, and can even follow jumps and/or calls
(given just a start-address). But it's not yet opcode-complete.]
But "HL= upper two colour-attributes" is just a comment that I added
by hand - you can't get that from a disassembler.
But the good news is that there are several annotated disassemblies
of Jet Set Willy in existence:
1. John Elliott's:
- JSW 48: http://jetsetwilly.jodi.org/poke.html
- JSW128: http://www.seasip.demon.co.uk/Jsw/jswdiffs.html
2. J.G. Harston's:
http://www.mdfsnet.f9.co.uk/Software/JSW/JGH/Docs/jsw48.asm
3. Carl Woffenden's (sadly no longer online)
4. Geoff Eddy's:
- Geoff Mode: http://www.cix.co.uk/~morven/jsw/geoff_dis.html
- Patch vectors: http://www.cix.co.uk/~morven/jsw/patches.html
5. Various code-fragments that I disassembled, annotated and rewrote
can be found in the TECHNICA.TXTs of JSW:LOTR, Goodnite Luddite and
Party Willy:
http://www.geocities.com/andrewbroad/spectrum/download/
And of Manic Miner:
1. John Elliott's:
http://www.seasip.demon.co.uk/Jsw/manic.mac
2. Carl Woffenden's (sadly no longer online)
3. Various code-fragments that I disassembled, annotated and rewrote
can be found in the TECHNICA.TXT of MM: Neighbours - Allana Truman:
http://www.geocities.com/andrewbroad/spectrum/download/
--
Dr. Andrew Broad
http://www.geocities.com/andrewbroad/
http://www.geocities.com/andrewbroad/spectrum/
http://www.geocities.com/andrewbroad/spectrum/willy/
