Jump to content
Jet Set Willy & Manic Miner Community

jgharston

Contributor
  • Posts

    18
  • Joined

  • Last visited

Posts posted by jgharston

  1. 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 0L8D4D: 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-linesL8D5C: LD   D,&00             L8D5C:           LD   D,&00           ; High byte of screen bitmap address                              L8D5E: 23        INC  HL              ; Point to bitmapL8D5E: 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                                     RETThe following hex patchfile will apply this fix::0F8D4B001E00DD7E0021978001090009BE20FB7C:098D5E00237E121410FADD231C1F:0000000000
  2. 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.

  3. The problem is the different text window size (14x1F on a Model B and 14x27 on a Master, according to the pokes you introduced in file JSWL).

    Whenever the VDU driver clears the screen, on a VDU 12 command for example, it clears screen memory at 0x3000 to 0x59FF on a Model B, while it additionally clears 0x5A00 to 0x647F on a Master due to the larger text window. This additional area happens to contain definitions for several guardians, as well as the falling foot.

    Thanks, knowing what is causing the symptoms gives me a way to fix it. I'll have a look when I'm back from work.

     

    Setting the window back to 14x1F wreaks havoc on the Master display of the game. At this point I'm stuck, mainly because I'm ignorant about the video differences between the BBC Micro and the Master. For example, why does a Master require a larger text window in order to display Jet Set Willy correctly? Can you elaborate on this?

    It's because the BBC uses a software characters-per-line table and JSW sets up a 32-characters-per-line tables and tells the VDU drivers to use it. The Master calculates the characters-per-line on the fly and is fixed at 20,40,80, so the patch makes JSW align it's 32-chars-per-line display within this fixed 40-char window.

  4. 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.
     
    http://mdfs.net/Software/JSW/BBC/:

     

    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.
  5. 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.

  6. 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.com/neo/groups/manicminerandjetsetwilly/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.

  7. I like the different sections with all of the screenshots but they seem to be in wildly different sizes. For example, the true resolution of BBC screens is 320 x 256. However, in the section here, the screens are 1200 x 783 which does not scale down to the original resolution. The same is true for the Amstrad and C64 versions. It would be better to keep screens as *exact replicas* from the start. Having produced loads of 8-bit stuff over the years, I know how easily this can become a headache if you want to resize images in the future. Anyone got any thoughts on this?

    It depends on what you are showing. In general I scale to an exact whole multiple of the source screen size. With the BBC almost always shown with no border, and with standard hardware the border colour is unchangeable. With the Spectrum sometimes with the border, sometimes without, depending on if showing the border makes sense.

     

    So:

    BBC: 640x512 (80x32 chars) or 320x256 (40x32 chars) (eg http://mdfs.net/Apps/Graphics/Conversion/BMPSamples

    Spectrum, no border: 512x384 (32x24chars) or 256x192 32x24 chars (eg http://mdfs.net/Software/JSW/Editors/JGH

    Spectrum, border: 576x448 (32x24chars with 2-char border) or 288x224 (eg http://mdfs.net/Software/BBCBasic/Spectrum/Screen.htm

    Spectrum, special case: JSW screens: 256x136 (32x17chars) (eg http://mdfs.net/Software/JSW/JGH/Screens/Room063

     

    Always exactly 1x or exactly 2x source screen bitmap size.

  8. 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/Software/JSW/JSW1/Map.htm).

     

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

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.