Jump to content
Jet Set Willy & Manic Miner Community

Norman Sword

Contributor
  • Posts

    596
  • Joined

  • Last visited

Posts posted by Norman Sword

  1. Sorry I forgot to add the code that should be changed in order to fix the LDIR problem

     

     
    ;Matthews  ldir 
    ;this is compromised by the copy being overtaken
    ; by the physical screen updates 
    ; once noticed this defect is hard to ignore
     
     
    35317 LD HL,24576   ;3
    35320 LD DE,16384  ;6
    35323 LD BC,4096    ;9
    35326 LDIR               ;11
    35328 LD A,(34271) ;14
    35331 AND 2             ;16
    35333 RRCA             ;17
    35334 LD HL,34258) ;20
    35337 OR (HL)         ;21
    35338 LD (HL),A      ;22
    35339 LD A,(34253) ;25
    35342 OR A             ;26
    35343 JR Z,35366   ;28
     
    ;unused portion of code
    35345 DEC A            ;29
    35346 LD (34253),A ;32
    35349 RLCA             ;33
    35350 RLCA             ;34
    35351 RLCA             ;35
    35352 AND 56           ;37
    35354 LD HL,23552 ;40
    35357 LD DE,23553 ;43
    35360 LD BC,511    ;46
    35363 LD (HL),A      ;47
    35364 LDIR              ;49
     
    ; change the code above to the code below.
    ; This routine does a raster style copy.
     
    org 35317
     
    35317 ld hl,#8200     ;3
    loop    ld e,(hl)          ;4
               inc l                ;5
               push hl           ;6
               ld d,(hl)           ;7
               ld l,e               ;8
               ld h,d              ;9
               res 5,d          ;11
               ld bc,32         ;14
               ldir                 ;16
               pop hl             ;17
               inc l                ;18
               jr nz,loop         ;20 ; for the raster screen copy
    ;----------------------------
               ld a,(34271)    ;23 ; this code is moved down in memory
               and 2              ;25
               rrca                 ;26
               ld hl,34258     ;29
               or (hl)             ;30
               ld (hl),a           ;31
               jr 35366           ;33 ; 5 bytes bigger 
     
    ;16 unused bytes <here>
  2. JSW jagged finger effect (demo)

    View File

    In both Manic Miner and Jet Set Willy the screen is copied by a simple LDIR. This simple copy does also have one simple flaw. The look of this flaw can best be described by a jagged finger look. When a sprite is moving the LDIR screen update of the sprite is sometimes overtaken by the physical raster update. This is what causes the break up flicker of Willy as he moves around the screen. The breakup is dependent on the movement of the sprite and thus what part is being updated. E.g. the breakup is dependent on the difference between the old and new position of a sprite as the screen is updated. If Willy is static then no breakup will occur. The most noticeable breakup will occur when willy move diagonally up or down stairs.

     

    The screen is physically updated from top to bottom, one raster line after the other. The LDIR instruction just copies one block of ram from one place to another and this copy does not follow the raster layout of the screen.

     

    I have modified an original version of Jet Set Willy to have two distinct copy routines. These two copy routines alternate between a simple LDIR and a proper raster screen copy.

     

    In this demo version (which will have problems with the end game due to the nature of the modification) the screen will alternate between the two differing methods of screen update

     

    1) when the time ends in an odd number the screen will update with LDIR.

     

    2) when the time is even the screen will update using a simple raster copy routine.

     

    This demo is not stable and I do not know how long it will work till problems occur. Its purpose is to demonstrate a problem.


     

  3. One observation from the loader routine. The stack is situated at 63796: the program loads from 16384 (#4000) and loads in 47416 bytes.  This means all data in memory from 16384 to 63800 is overwritten....This has two consequences..

     

    1) the code you are reading is overwritten by the loader. Thus the lines

      

     jp nc, 0    
     jp 36864  

     

    will not exist when the program is loaded 

     

    2) the return address from the loader is pushed onto the stack. The stack is overwritten so after the program has loaded, it will not return to the routine that called it. The return address is written by the code that is loaded.

     

    The above proved enough protection, that further duplication (MASTER TAPE) resorted to a snapshot loader

  4. Chronology of JSW2+ . As far as I am aware there have been 4 releases of JSW2+

     

    original listing scanned 14th October 

    Two prototypes testing ideas, which could not be finnished. (which have been deleted)

     

    Then the J Wiseman version  12th November 2016

     

    This was changed and developed further up until the end of 2016.

    Cutoff point for all development was 31st December 2016

     

    The Final version was Ve22 and released on Facebook on the 10th January 2017.

     

     

    I will seek more information on chronology/development. (this may take some time)

  5. In JSW2+e.22 To complete the game it is necessary if collecting all the items for Willy to be killed only once.

     

    The Glitch rooms are accessed by killing Willy, the life will be given back due to the number of objects collected in those four rooms.

     

    There is no need to kill Willy in any other place. The exit from "water supply" does not need a suicide jump.  The rope that permits exit, cycles and after a short wait will re-appear.

  6. The Julian Wiseman site contains a version of JSW2+ that as mentioned in comments somewhere. Contains a problem with being able to escape from the "Off licence" in the end game sequence. As a result of that problem, it was decided to continue the development of the game. The final version is version +E22. Which has around 298 objects to collect, and 145 rooms. In version +e22 the game starts with the title loader screen from JSW2.

     

    The game was edited up to the end of 2016. And every version was just a test platform,  to see how much could be added to a standard 48k spectrum.   

     

     

    Posted the latest version +ve22 on this website in downloads

     

    1. Jet Set Willy And Manic Miner Community
    2.  
    3. ? Downloads
    4.  
    5. ? Jet Set Willy
    6.  
    7. ? Jet Set Willy [Third Party]
    8.  
    9. ? JSW+ Ve22 rv1
×
×
  • Create New...

Important Information

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