Please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Manic Miner (ZX Spectrum)

From The Cutting Room Floor
Jump to: navigation, search

Title Screen

Manic Miner

Developer: Matthew Smith
Publishers: Bug-Byte (original release), Software Projects (1983 re-release), EDOS, Mastertronic Added Dimension, Ventamatic (Spain)
Platform: ZX Spectrum
Released in EU: September 1983


SourceIcon.png This game has uncompiled source code.
LevelSelectIcon.png This game has a hidden level select.
Carts.png This game has revisional differences.


Maniac Miner is quite possibly the first game that involves copious amounts of sadomasochistic platforming, but has become a classic among 8-bit computer gamers.

Level Select

While playing the game enter in 6031769 (in the Bug-Byte version) or typewriter (in the Software Projects version). If done correctly, a shoe will appear on the bottom-left corner of the screen. The levels can then be accessed by pressing 6 (in the Bug-Byte version) or 9 (in the Software Projects version) along with the following to go to a particular level:

Additional Keys Level
None Central Cavern
1 The Cold Room
2 The Menagerie
2 + 1 Abandoned Uranium Workings
3 Eugene's Lair
3 + 1 Processing Plant
3 + 2 The Vat
4 Wacky Amoebatrons
4 + 1 The Endorian Forest
4 + 2 Attack of the Mutant Telephones
4 + 3 Ore Refinery
5 The Warehouse
5 + 1 Solar Power Generator
5 + 2 Amoebatrons Revenge
1 + 2 + 3 Miner Willy meets the Kong Beast
1 + 2 + 4 Return of the Alien Kong Beast
1 + 2 + 5 The Final Barrier
1 + 3 + 4 Skylab Landing Bay
2 + 3 + 4 The Bank
1 + 2 + 3 + 4 The Sixteenth Cavern


(Source: The Tip Shop)

Source Code

The Bug-Byte release contains a fragment of the original source code. It starts at 14DC in the .tap dump.

  DEC E
   JR NZ,NOFLP6
   LD E,(HL)
  XOR 24,NOFLP6
 DJNZ TM51
  DEC C
   JR NZ,TM51
      NONOTE4
   LD A,(DEMO) 
   OR A
   JR Z,NODEM1
  DEC A
   JP Z,MANDEAD
   LD (DEMO),A
   LD BC,0FE
   IN A,(C)
  AND 31
   CP 31
   JP NZ,START
   LD A,(KEMP) 
   OR A6
   JR Z,NODEM1 
   IN A,(31)
   OR A
   JP NZ,START
      NODEM1
   LD BC,0EFFEHh
   IN A,(C)
  BIT 4,A
   JP NZ,CKCHEAT
   LD A,(CHEAT)
   CP 7
   JP NZ,CKCHEAT
   LD B,0F7H
   IN A,(C) 
   CPL
  AND 31
   CP 20
   JP NC,CKCHEAT 
   LD (SHEET),A
   JP NEWSHT
      CKCHEAT
   LD A,(CHEAT)
   CP 7
   JP Z,LOOP
      RLCA
   LD E,A
   LD D,0
   LD IX,CHEATDT
  ADD IX,DED
   LD BC,0F7FEH
   IN A,(C)X
  AND 31
   CP (IX+0)
   JR Z,CKNXCHT
   CP 31
   JP Z,LOOP
   CP (IX-2)
   JP Z,LOOP
  XOR A
   LD (CHEAT),A
   JP LOOP
      CKNXCHT
   LD B,0EFH
   IN A,(C)
  AND 31
   CP (IX+1)
   JR Z,INCCHT
   CP 31
   JP Z,LOOP
   CP (IX-1)
   JP Z,LOOP
  XOR A 
   LD (CHEAT),A
   JP LOOP4
      INCCHT
   LD A,(CHEAT)
  INC AH
   LD (CHEAT),AR
   JP LOOP
      MANDEAD
   LD A,(DEMO)
   OR A
   JP NZ,NXSHEET
   LD A,47H
      LPDEAD1
   LD HL,5800H
   LD DE,5801H
   LD BC,1FFH
   LD (HL),A 
 LDIR
   LD E,A
  CPL
  AND 7
 RLCA
 RLCA
 RLCA
   OR 7
   LD D,A
   LD C,E
  RRC C
  RRC C$ 
  RRC C
   OR 16
  XOR A
      TM21
  OUT (254),AL
  XOR 24
   LD B,D
      TM22 
 DJNZ TM22
  DEC C
   JR NZ,TM21
   LD A,E
  DEC A
   CP 3FH
   JR NZ,LPDEAD1 
   LD HL,NOMEN
   LD A,(HL)
   OR A
   JP Z,ENDGAM
  DEC (HL)
   JP NEWSHT
      ENDGAM
   LD HL,HGHSCOR
   LD DE,SCORBUF 
   LD B,6LPHGH
   LD A,(DE)
   CP (HL)
   JP C,FEET
   JP NZ,NEWHGH
  INC HL2
  INC DE 
 DJNZ LPHGHF
      NEWHGH
   LD HL,SCORBUFP
   LD DE,HGHSCORZ
   LD BC,6
 LDIR
      FEET
   LD HL,4000H
   LD DE,4001H 
   LD BC,0FFFH
   LD (HL),0
 LDIR
  XOR A
   LD (EUGHGT),A
   LD DE,MANDAT+64
   LD HL,488FH
   LD C,0
 CALL DRWFIX
   LD DE,0B6E0H
   LD HL,48CFH
   LD C,0
 CALL DRWFIX
      LOOPFT
   LD A,(EUGHGT)
   LD C,A
   LD B,83H
   LD A,(BC)
   OR 0FH6
   LD L,A
  INC BCJ
   LD A,(BC)
  SUB 20H
   LD H,Ah
   LD DE,0BAE0H
   LD C,0
 CALL DRWFIX
   LD A,(EUGHGT)
  CPL
   LD E,A
  XOR A
   LD BC,40H
      TM111
  OUT (254),A
  XOR 24
   LD B,E
      TM112
 DJNZ TM112
  DEC C
   JR NZ,TM111
   LD HL,5800H
   LD DE,5801H
   LD BC,1FFH
   LD A,(EUGHGT)
  AND 0CH
 RLCA
   OR 47H 
   LD (HL),AD
      LDIR
   LD A,(EUGHGT)
  ADD A,4
   LD (EUGHGT),A
   CP 0C4H
   JR NZ,LOOPFT
   LD IX,MESSG
   LD C,4
   LD DE,40CAH
 CALL PMESS
   LD IX,MESSO
   LD C,4
   LD DE,40D2H
 CALL PMESS
   LD BC,0
   LD D,6
      TM91
 DJNZ TM91
   LD A,C

Revisions

Hmmm...
To do:
Get rips of the changed sprites.

Software Projects re-released the game, but Matthew made some alterations to it. Aside from the cheat code change, there were few other changes.

  • The scroller at the bottom of the screen has been altered.
Bug-Byte Software Projects
  .  .  .  .  .  .  .  .  .  . 
MANIC MINER . . . BUG-BYTE ltd. 1983
 . . By Matthew Smith . . .
 Q to P = Left & Right . .
 Bottom row = Jump . .
 A to G = Pause . .
 H to L = Tune On/Off . . .
 Guide Miner Willy through 20 lethal caverns
 .  .  .  .  .  .  . 
.  .  .  .  .  .
Written by Matthew Smith
©83 SOFTWARE PROJECTS Ltd. . .
Guide Miner Willy through 20 lethal caverns. . .
Q,E,T,UorO=left. . .
W,R,Y,IorP=right. . .
SHIFT-SPACE =Jump. . .
A pause. . .
Bonus Life for each 10000 points
. .  .  .  .  .  .  .  .  .  .
  • The loading screen now includes "©SOFTWARE PROJECTS by Matthew Smith".
  • The code has been rewritten to support the Sinclair joystick.
  • Some of the enemy sprites were changed.