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

 

 

 

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
arrowright