Resource centre for ZX Spectrum games
      using Manic Miner and Jet Set Willy game engines

 

Archive of the

Manic Miner & Jet Set Willy Yahoo! Group

messages

 

arrowleft Previous message
Next message arrowright
arrowleftthread Previous in thread
Next in thread arrowrightthread

 

 

Message: 6938

Author: ian.rushforth

Date: 15/11/2016

Subject: Re: Willy's movement / Turning in mid-jump / New superjump

 

Andrew wrote:

Superjump --------- The superjump POKE 36404,44 is an interesting one because it allows

the jump-control - but not the left & right controls - to be used in
the middle of a jump.

36389: LD A,(34261) ; if jump-phase counter
36392: CP 18 ;;;;;;;; == 18
36394: JP Z,8EB0h ;;; then jump is over (set fall-counter to 6)
36397: CP 16 ;;;;;;;; else if jump-phase counter == 16
36399: JR Z,8E36h ;;; then check what Willy's standing on (8E36)
36401: CP 13 ;;;;;;;; else if jump-phase counter <> 13
36403: JP NZ,8FBCh ;; then do horizontal movement (8FBC)
;;;;;;;;;;;;;;;;;;;;; (else fall through to 8E36)

POKE 36404,44 makes the following change:
36403: JP NZ,8F2Ch

This jumps into the middle of the walking-routine (8ED4) -

apparently after the left & right controls have been checked for,
but before the jump-control is checked for. (The walking-routine
eventually branches to 8FBC.)

************

That POKE is a bit odd - it sends the code into the middle of an IN A, (C) instruction, after the 'ED' shift opcode, so the program will interpret the '78' as LD A, B.

I would have thought POKE 36404, 109 would be more appropriate? That would make the following change:

36403: JP NZ, #8F6D

That sends the program straight to the check for Jump keys.

(Perhaps, with POKE 36404,44 in place, the instructions from #8F2C to #8F6C are implemented harmlessly - or maybe the fact that it enters the key-checking code too soon explains some of the reported 'quirky' behaviour caused by the Superjump?)

 

 

arrowleft Previous message Back to the Yahoo! Archive
home page
Next message arrowright
arrowleftthread Previous in thread Next in thread arrowrightthread