https://sourceforge.net/projects/MastermindRK/
"Mastermind RK" for Z80-based computers
Author: RobertK (RetroBertie@outlook.com)
Version 2024-11-18
This is a cross-platform computer game version of the classic board game "Mastermind". Your goal is to break a four-digit colour code in as few moves as possible.
Read more about the board game on Wikipedia:
https://en.wikipedia.org/wiki/Mastermind_(board_game)
The original board game is a two-player game, with one player making the code (shielded from the other player's view) and the other one doing the brainwork trying to break the code. The game pieces are multi-colour plastic pegs, while smaller black and white pegs are used for feedback. A black feedback piece means that the colour and position of one game piece match, while a white piece means that one colour matches but it is not at the correct position.
In this computer game, the letters O and o are used for feedback (O and * on upper-case-only systems like the Sinclair ZX81).
The compiled program is a little over 8K in size, so it usually requires the target machine to have at least 16K RAM. The game of course makes more sense on a colour system, but you can play it on B/W systems as well because the initial letter of the colour name is used to display the game piece. The available colours (Red, Green, Blue, Magenta, Cyan and Yellow) are displayed on the right side of the game screen.
The following systems are currently supported:
ABC 80
Amstrad CPC
Amstrad PCW
AVR-ChipBasic2 (rewritten in BASIC)
Bandai RX-78
Bit-90
Bondwell 12/14
Bondwell 2
Casio FP-1100
Casio PV-1000
Casio PV-2000
ColecoVision
Dick Smith Super-80 (e/m and r/v models, separate RGB colour versions for the m and v models)
Epson QX-10 / QC-10
Excalibur 64
Exidy Sorcerer
Galaksija Plus (separate text mode and Hi-Res versions) [1]
Genius Leader 6000SL
Homelab 2
Homelab 3/4
Hübler Grafik-MC
Hübler/Evert-MC
Jupiter Ace
Kaypro II (2/83)
Kramer-MC
Krokha
Lviv/Lvov PK-01
Mattel Aquarius
MicroBee 128k Standard / Premium / Premium Plus
Micronique Hector 2 HR
Mikro-80
Mitsubishi Multi 8
NABU (CP/M mode)
Nascom
NCR Decision Mate V
NEC PC-6001 mkII
NEC PC-8001
Nichibutsu My Vision
Nintendo Gameboy
Osborne 1 [2]
Otrona Attaché
Philips P2000
Philips VG5000
Primo
Regnecentralen RC 700
Robotron A5105 (BIC)
Robotron KC 85/2-5 and HC 900
Robotron Z 1013
Robotron Z 9001 (KC 85/1, KC 87) [3]
SAM Coupé
Samsung SPC-1000
Sega SC-3000
Sega Master System
Sharp MZ-2500
Sharp X1
Sinclair ZX80
Sinclair ZX81 (+ colourized Chroma version)
Sinclair ZX Spectrum [4]
SOL-20
Sony SMC-777 and SMC-70 (CP/M and native version)
Sord M5
Tandy TRS-80
Tatung Einstein (+ TK02 80-column version)
Tesla Ondra
Tesla PMD 85 (+ "Color Ace" version)
Tiki-100 (also known as "Kontiki-100")
TIM-011
Toshiba Pasopia 7
Triumph Adler Alphatronic PC
Vector-06C
VTech Laser 210 / 310 / VZ 200 [5]
VTech Laser 500 / 700
Z80 TV Game System (home-brew)
Notes:
[1] The "Galaksija" version uses only functionality of the standard Galaksija model, but you will still need a Plus model to run it because the game will not fit into the standard model's 6K RAM. The "Galaksija Plus" version uses the 256x208 Hi-Res graphics of the Plus model and looks entirely different.
[2] If the current MAME version can't read the z88dk-created Osborne .dsk disk files, use an older MAME version like 0.201.
[3] Joystick input is a little irresponsive in the JKCEMU emulator.
[4] In the Spectrum emulators ZXSpin or EightyOne, the game starts immediately after loading, press X to return to the menu screen. On a real Spectrum, this does not happen.
[5] 16K RAM required on the Laser 210 and VZ 200.
=== Controls ===
Use the controls shown on the start-up screen.
Left and Right move the blinking cursor along the current row.
Up and Down select the colour.
The trigger button accepts your guess.
On some systems, you will see "Press C to change Controls" on the start-up screen, there you can choose among different control methods with the C key, while all other systems use the standard QAOP-NM keyboard layout.
During the game, the X key returns you to the start-up screen, and pressing X there ends the program.
=== Compiling ===
Download the latest nightly build from www.z88dk.org and extract it to any location on your computer.
Edit the compile_mm_....bat batch file and modify the z88root path (make sure that there is a backslash at the end).
Run the batch file and the compiler will hopefully run without errors and create the compiled program file.
The entire source is contained in one single file (mm.c).
=== Thanks ===
Thanks to the z88dk team for creating this wonderful compiler and for their continuous work in order to further improve it.
=== Release Version History ===
2024-11-18:
- New target supported: Micronique Hector 2 HR
2024-09-08:
- New target supported: Amstrad CPC
2024-08-06:
- New target supported: TIM-011
2023-01-06:
- New target supported: NABU (CP/M mode)
2022-05-11:
- New target supported: SOL-20
- Galaksija and Galaksija Plus: .WAV tape files replaced with ones created with the galaksija.net online emulator, so that they can be loaded on real hardware.
2022-03-11:
- Galaksija Plus Highres version fixed. Previously it was only working on the emulators, but not on real hardware.
2022-01-14
- New target supported: Sinclair ZX Spectrum
- Colecovision: Joystick display name fixed
2021-04-17:
- New target supported: Genius Leader 6000SL
- SAM Coupé: .mgt floppy disk image added. The game now allows twelve guesses instead of previously eleven.
2021-03-26:
- New target supported: Amstrad PCW
2021-03-11:
- New target supported: Sega Master System
- Sony SMC-777 and SMC-70: native boot disk version added.
- Bondwell 2 version improved. The previous version using the standard system font is still available as the "Standard Console" version.
- NEC PC-8001: Boot disk version added.
2021-02-16:
- New target supported: Bondwell 2
2021-02-13:
- New targets supported:
Bondwell 12/14
Krokha
- Casio PV-1000, Z80 TV Game System, and Sega SC-3000: code generation should be random now.
2021-02-08:
- New target supported: Lviv/Lvov PK-01
2020-10-25:
- New target supported: Tesla Ondra
2020-05-03:
- New targets supported:
Mikro-80
Primo
2020-04-22:
- New target supported: AVR-ChipBasic2 (rewritten in BASIC)
See http://www.jcwolfram.de/projekte/avr/chipbasic2/main.php (in German) and http://cb2.qrp.gr/
2020-03-10:
- New target supported: Homelab 2
- Homelab 3/4 version now runs on all RAM configurations between 16K and 64K (previously it ran only on 64K)
2020-02-23:
- New target supported: Homelab 3/4
2020-02-18:
- Vector-06C: Floppy disk image added.
2020-02-17:
- New targets supported:
Bandai RX-78
Casio PV-1000
Nintendo Gameboy
Vector-06C
Z80 TV Game System (home-brew)
2020-01-29:
- New targets supported:
Epson QX-10 / QC-10
NCR Decision Mate V
Osborne 1
2020-01-25:
- New targets supported:
Dick Smith Super-80 (e/m and r/v models, separate RGB colour versions for the m and v models)
NEC PC-8001
2020-01-21:
- New target supported: ABC 80
- Tatung Einstein (40 column version): fixed graphical glitch
2020-01-20:
- New targets supported:
Excalibur 64
Exidy Sorcerer
Jupiter Ace
Kaypro II (2/83)
Mitsubishi Multi 8
Nascom
NEC PC-6001 mkII
Otrona Attaché
Regnecentralen RC 700
Samsung SPC-1000
Sega SC-3000
Sharp MZ-2500
Sord M5
Tandy TRS-80
Tatung Einstein (+ TK02 80-column version)
- ZX81 Chroma version: .col and .tzx file updated, changed text colour of green pieces to black for better readabilty on CRT screens.
2020-01-14:
- New target supported: Tesla PMD 85 (including a separate "Color Ace" version)
2020-01-08:
- Initial release