Jump to content


Member Since 17 Aug 2014
Offline Last Active May 09 2017 02:28 PM

#6468 Pokes for Fixing the Cell Graphics Bug in JSW

Posted by jgharston on 09 May 2017 - 02:12 PM

You're right, the branch offset should be FC. I think I had the ADD somewhere else initially starting at BACKGROUND instead of BACKGROUND-9. I edited the bytes in manually and it worked correctly, I obviously missed the disassembly then saying JR 8D55 instead of JR 8556. I'll tweek my patch on my site.

#5800 Pokes for Fixing the Cell Graphics Bug in JSW

Posted by jgharston on 18 February 2017 - 07:08 PM

I was doing some tidying up of my JSW documents a couple of days ago and was looking at the block graphics drawing code. Not being able to remember seeing a bugfix for it anywhere I thought I'd test a fix I'd had sitting at the back of my mind for years. I tested it yesterday, and with one tweek this is it. See also link.

Original code:                Change to:
L8D4B: LD   C,&00             L8D4B: 1E 00     LD   E,&00           ; Start at screen address 0
L8D4D: LD   E,C               L8D4D: DD 7E 00  LD   A,(IX+0)        ; Get current attribute
       LD   A,(IX+&00)               21 97 80  LD   HL,BACKGROUND-9 ; Start at the background attribute
       LD   HL,BACKGROUND            01 09 00  LD   BC,9            ; Nine bytes per block
       LD   BC,&0036          L8D56: 09        ADD  HL,BC           ; Step to next block
       CPIR                          BE        CP   (HL)            ; Does attribute byte match?
       LD   C,E                      20 FB     JR   NZ,L8D56        ; Check next block
       LD   B,&08                              LD   B,&08           ; Eight pixel-lines
L8D5C: LD   D,&00             L8D5C:           LD   D,&00           ; High byte of screen bitmap address
                              L8D5E: 23        INC  HL              ; Point to bitmap
L8D5E: LD   A,(HL)                   7E        LD   A,(HL)          ; Get a character byte
       LD   (DE),A                   12        LD   (DE),A          ; Store into screen buffer
       INC  HL
       INC  D                                  INC  D               ; Move to next pixel-line
       DJNZ L8D5E                              DJNZ L8D5E           ; Loop for eight pixel-lines
       INC  IX                                 INC  IX              ; Move to next attribute
       INC  C                        1C        INC  E               ; Move to next screen address
       JP   NZ,L8D4D                           JP   NZ,L8D4D        ; Loop for 256 attributes
       RET                                     RET

The following hex patchfile will apply this fix:


#5674 JSW2 - BBC (disc) aka: 'full' version

Posted by jgharston on 24 January 2017 - 09:50 PM

I was looking at JSWII a couple of days ago before looking into the issue with the Foot/Barrel/Maria disappearing on the Master fixed version of JSW1, which is now fixed. I have an idea how to get JSWII to use sideways RAM regardless of machine, at the moment it only tests for its presence if it's already found that it's a Master. It should test for the SRAM presence before/instead of testing for the machine type.

#5673 Jsw Bbc Computer Version

Posted by jgharston on 24 January 2017 - 09:42 PM

Fixed now. I'd put a bit of patch code in a bit of space that eventually got overwritten. (Seems to) work(s) now. I've been alternating between running it on BBC B and Master for the last half hour, and no problems so far.

#5671 Jsw Bbc Computer Version

Posted by jgharston on 24 January 2017 - 07:20 PM

Spoke too soon, as the game progresses those sprites gradually get eaten. Go into the Nightmare room, leave it, then go back in again. ;)

I think I know where the problem is.

#5668 Jsw Bbc Computer Version

Posted by jgharston on 24 January 2017 - 05:23 PM

Bingo! Carlo set me looking in the right direction.
Jet Set Willy 1 for the BBC
Now runs fully on the Master.

#5556 Jsw Bbc Computer Version

Posted by jgharston on 06 January 2017 - 03:22 PM

I've gone through the BBC JetSetWilly versions I have and checked them and tidied them up a bit. I'd got a rather confused mess of about five different "versions" that clarified into the three actual versions: JSW1, the cut-down JSW2, and the full JSW2 (which I've distinguished by calling JSW2 and JSWII). Still a couple of bugs to iron out. Also at long last I've got around to updating the maps replacing the Spectrum screenshots with BBC screenshots.


Jet Set Willy 1 - Runs on BBC and Master, runs on an active network

  • Loader tidied up.
  • Flashing cursor turned off.
  • Loading screen not overwritten by loading files.
  • Patched to run correctly on the Master. Still a few problems, the 'Special' rooms have no guardians and the falling foot is invisible.

Jet Set Willy 2 - Runs on BBC, fails on the Master, fails on an active network

  • Loader tidied up.
  • Flashing cursor turned off

Jet Set Willy II - Runs on BBC and Master, fails on an active network

  • Loader tidied up.
  • Flashing cursor turned off.
  • If Master doesn't have SRAM banks 4,5,6 free, reverts to loading in parts as on the BBC.

#5544 Jsw Bbc Computer Version

Posted by jgharston on 04 January 2017 - 07:09 AM

I've just checked and the patched version works on my Compact exactly the same as the Master, with the same errors that I haven't fixed yet.

#5536 Jsw Bbc Computer Version

Posted by jgharston on 03 January 2017 - 11:21 AM

I was wondering if you managed to look into making it run properly on the Master series yet ? :) I guess not as I do not see an update although you never know. :)


My investigations so far reveal:


JSW1 , similar to JSW 'tape' corruption although not quite as bad as JSW2, its playable-ish with immunity applied but it looks like the ZX version with the Attic Bug in full swing.


The mapping queries over on StarDot prompted me to update my maps, and also to look into getting JSW working on the Master.


Not got it perfect yet, but here we are so far: JSW1.ssd.

It no longer crashes, no longer fails to display anything, and the game runs properly. The only problems at the moment are:

* the "special" rooms fail to display any guardians (Bathroom, Top Landing, Bedroom, Nighmare Room)

* the falling Game Over foot is invisible - but still squashes Willy.


Almost all the problems stem from JSW1 pointing the VDU driver's line address table to a custom table, but MOS 3 doesn't use a soft line address table, it calculates everything on the fly so you can't make it use a custom table. The only thing the custom table is used for is the text messages, so I modified the code use the standard 40-column text coordinates.


I also turned the cursor off, yea gods, that was annoying me.

#134 Jswed Editor Games

Posted by jgharston on 21 September 2014 - 08:47 PM

There must be hundreds :wacko: , apparently there was a Yahoo news group on just JSWed remakes but I have never looked for it , apparently it was a good source of files and info.

There is the old MM+JSW Yahoo Group at https://groups.yahoo...etsetwilly/info but it hasn't had any posts in a couple of years, and none since Yahoo killed the usability. Yahoo has been hemmoraging groups since they went out of their way to make it as unusable as possible.

#131 Jsw Disassembly

Posted by jgharston on 21 September 2014 - 04:27 PM

EDIT... The JSW maps are currently broken, server migration ?


Yes, moved to a new server over September. I'm still catching where files are missing as in uploading 2.5G of data the FTP connection timed out a few times.

#125 Jsw Bbc Computer Version

Posted by jgharston on 16 September 2014 - 10:23 PM

I've made a rough (on paper) map of the 'tape' version. I plan to assemble it into screenshots at some point. To summarize its got (most) of the 'space' rooms intact but the mansion is very small. No megatree etc. 74 rooms unless I've missed something.


Disk version needs mapping next although I think its not far off the C64 / CPC464 / Spectrum version in regards to its content. I'm aware of the 'extra' rooms in the C64 version.

BBC JetSetWilly 1 appears to have an identical room map to the Spectrum version (http://mdfs.net/Soft...SW/JSW1/Map.htm).


God damm it, how do you do proper links in this thing?

#124 Jsw Bbc Computer Version

Posted by jgharston on 16 September 2014 - 10:19 PM

I've uploaded a disassembly of the BBC version of Jet Set Willy 1. It's not yet as comprehensive as my Spectrum disassembly as I haven't done as much work on it. I have found a few initial pointers showing why it doesn't work properly on the Master series, and it looks like I'll be able to work up a bugfix to get it working.


Jet Set WIlly BBC Versions at http://mdfs.net/Software/JSW/BBC/