jgharston
-
Posts
18 -
Joined
-
Last visited
Posts posted by jgharston
-
-
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.
- Spider, jetsetdanny and IRF
- 3
-
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
- jetsetdanny, Spider and IRF
- 3
-
Is this quirk the one discussed here?
-
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.
- jetsetdanny and Spider
- 2
-
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.
- jetsetdanny and Spider
- 2
-
-
Bingo! Carlo set me looking in the right direction.
Jet Set Willy 1 for the BBC
Now runs fully on the Master.- jetsetdanny and Spider
- 2
-
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.
-
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.
- Spider and jetsetdanny
- 2
-
-
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.
- Spider and jetsetdanny
- 2
-
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.
-
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.
-
-
BBC Version disassembled at http://mdfs.net/JSW/BBC
-
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?
-
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/
Sinclair QL Keyboard
in Chat
Posted
If they were used as Prestel terminals they probably did use a special chip for the display, the SAA505x. Supported by the additional characters printed on the case above the digit keys, which are the teletext characters used in the SAA5050 instead of [ ] ^ { \ } ~. See link.