Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Here are my changes:

20 PAPER 1: BORDER 1: INK 7: BRIGHT 0: FLASH 0: CLS

50 LET x=x+(IN 57342-mask=190 AND x<21)-(IN 57342-mask=189 AND x>8)

60 LET y=y+(IN 65022-mask=190 AND y<18)-(IN 64510-mask=190 AND y>4)

702 LET baseline = IN 57342: LET mask = 0

705 IF baseline > 200 THEN LET mask = 64

Notes: Line 20 has some sort of typo as printed in the magazine.  That has been corrected (as it was in your version here).  Additionally, I have added BRIGHT 0 to fix a bug that happens if you run this program immediately after running Break Space Hero, and you cannot be killed due to it being in BRIGHT 1.  FLASH 0 is just for good measure.  Obviously, we want to do these before clearing the screen.

Lines 50 and 60 add a mask factor, which is calculated in lines 702 and 705.  It must be done after the INKEY$ in line 660, which causes the scan codes to be different.  This is only needed if running on a ZX Spectrum Issue 2.  Alternatively, one could hard-code the values to match if running on that hardware.  People using MiSTer systems can alternatively change the keyboard setting to Issue 3 to get around the bug (in the original hardware).  But this revision will work on both versions.  I don't think it adds much latency or responsiveness issues either.

This is a fun little program, and I was wondering why it didn't work on my setup. I found these two issues, but my initial guesses weren't quite right about the cause.  It took a lot to track down.  I had fun doing so.

I think that's about all I can do to improve it.

Thanks!

(+1)

BRILLIANT!!! thank you so much for sharing this.

You're welcome! Thanks for making the program and being so friendly about it.