Jump to content


jgharston

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

Posts I've Made

In Topic: Pokes for Fixing the Cell Graphics Bug in JSW

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.


In Topic: Pokes for Fixing the Cell Graphics Bug in JSW

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:

:0F8D4B001E00DD7E0021978001090009BE20FB7C
:098D5E00237E121410FADD231C1F
:0000000000

In Topic: 'Don't Mind Your Head (While Walking Left)' Bug Fix for JSW

24 January 2017 - 09:55 PM

Is this quirk the one discussed here?


In Topic: JSW2 - BBC (disc) aka: 'full' version

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.


In Topic: Jsw Bbc Computer Version

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.