https://sourceforge.net/projects/h-tron/
H-Tron - a Tron motorcycle game for Z80-based computers
Author: RobertK (RetroBertie@outlook.com)
Version 2024-11-12
H-Tron is a portable little game for various classic Z80-based computers, written in C using the z88dk compiler (www.z88dk.org).
This is the classic overhead view "Tron" game from the movie of the same title (motorcycles that leave "wall trails" behind them). If you crash into a wall, your opponent scores a point. The player who first reaches a score of five wins.
The compiled program is a little over 8K in size, so it usually requires the target machine to have at least 16K RAM.
The following systems are currently supported:
Amstrad CPC
Amstrad PCW
AVR-ChipBasic2 (rewritten in BASIC, One-Player-Mode only)
Bandai RX-78
Bit-90
Bondwell 12/14
Bondwell 2
Camputers Lynx
Casio FP-1100
Casio PV-1000
Casio PV-2000
CCE MC-1000
ColecoVision
Dick Smith Super-80 (e/m and r/v models)
EACA EG2000 Colour Genie
Epson PX-4/HC-40
Epson PX-8/HC-80 [1]
Excalibur 64
Exidy Sorcerer
Galaksija Plus (separate Lo-Res and Hi-Res versions) [2]
Genius Leader 6000SL
Hanimex Pencil II
Hector 2 HR
Homelab 2
Homelab 3/4
Hübler Grafik-MC
Jupiter Ace
Krokha
Lviv/Lvov PK-01
Mattel Aquarius
Memotech MTX
MicroBee 128k Standard / Premium / Premium Plus
Mikro-80
Mitsubishi Multi 8
MS-DOS PC with Hercules Graphics [3]
MSX
NABU (CP/M mode)
Nascom [1] [4]
NEC PC-6001 mkII
NEC PC-8001
Nichibutsu My Vision
Nintendo Gameboy
Osborne 1
Otrona Attach
Philips P2000
Philips VG5000
Primo
Regnecentralen RC 700
Robotron KC 85/2-5 and HC 900
Robotron Z 1013
Robotron Z 9001 (KC 85/1, KC 87)
SAM Coupe
Samsung SPC-1000
Sega SC-3000
Sega Master System
Sharp MZ-700
Sharp PC-G850 and PC-G850V
Sharp X1
Sinclair ZX81
Sinclair ZX Spectrum
Sony SMC-777 and SMC-70 (CP/M and native version)
Sord M5
Spectravideo SVI
Tandy TRS-80
Tandy TRS-80 Model II (Lifeboat CP/M) [5]
Tatung Einstein (separate TK02 80 column version)
Tesla Ondra
Tesla PMD 85
TIM-011
Tiki-100 (also known as "Kontiki-100")
Triumph Adler Alphatronic PC
Vector-06C
VTech Laser 210 / 310 / VZ 200
VTech Laser 500 / 700
Z80 TV Game System (home-brew)
[1] That system is not powerful enough for this game, only two-player mode runs at decent speed.
[2] The Lo-Res "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 256x208 Hi-Res graphics of the Plus model and performs better than the standard version (where one-player mode is a little slow, but still playable).
[3] This is the original DOS version of the game that I wrote in 2016 using Turbo C 2.01.
[4] Correct game speed has not been determined yet because the available NASCOM emulators all run at different speeds.
[5] Occasional graphical glitches when two horizontal lines are close to each other, due to the computer's limited character set.
=== Controls (on QWERTY keyboards, AZERTY differs, consoles use joystick only) ===
Turn left/right:
Left Player: A/S
Right Player: N/M or 5/8 (Cursor left/right on ZX81)
(in one-player mode, human is right player)
Start round: Space or 0
Pause game: P
End game: X
Note that on some systems usability of the two-player mode is currently very limited because z88dk does not support checking the status of two keys simultaneously on all target machines. Therefore, a fully usable two-player mode is currently available only on the following systems:
ColecoVision (Joystick control)
EACA EG2000 Colour Genie
Exidy Sorcerer
Jupiter Ace
Mattel Aquarius
Mikro-80
Philips VG5000
Primo
PV-1000 (Joystick control)
SAM Coupe
Sinclair ZX81
Sinclair ZX Spectrum
Tandy TRS-80
Tesla PMD 85
VZ 200 / Laser 210/310
=== Compiling ===
Download the latest nightly build from www.z88dk.org and extract it to any location on your computer.
Edit the compile_htron_....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 (htron.c).
With all the "#if defined(...)" pre-processor directives (used to make the game portable), the source may be a little difficult to read and understand.
So I have also included a "simple" version that is for the Sinclair ZX81 only and hopefully easier to understand. This should help z88dk newcomers on their first steps towards creating new software for our beloved classic computers.
=== Known Bugs / Limitations / TODOs ===
- Limited usability of two-player mode on some systems (see above) because the state of two buttons cannot be checked simultaneously. Maybe some day the z88dk will add this functionality for more targets.
=== Thanks ===
Thanks to the z88dk team for creating this wonderful compiler and for their continuous work in order to further improve it. And thanks to A. Rea for providing ASM plot functions (zx81plot.h) used in the "simple source" ZX81-only version, they are a little faster than the standard plot/point functions from graphics.h.
=== History ===
The history behind the game: in 2016 I decided to write a game for XT-class DOS PCs equipped with a Hercules graphics card, since there are so few games that truly support the Hercules card (most 1980s games simply blew up their 320x200 CGA graphics, but very few produced a real 720x348 Hercules screen).
So "H-Tron" was born (the "H" stands for "Hercules"), written in December 2016 in Borland Turbo C 2.01.
Later I found the great z88dk C compiler for Z80 computers (www.z88dk.org) that allowed me to port the game to the ZX81.
=== Release Version History ===
2024-11-12:
- New target supported: Hector 2 HR
2024-10-09:
- New target supported: Tandy TRS-80 Model II (Lifeboat CP/M)
2024-08-09:
- New targets supported: Epson PX-4/HC-40 and PX-8/HC-80. However, the PX-8/HC-80 is not powerful enough for this game, only two-player mode runs at decent speed.
2024-08-06:
- New target supported: TIM-011
2024-07-04:
- New target supported: Sharp PC-G850 and PC-G850V
2023-11-19:
- Sega Master System and Sinclair ZX Spectrum versions: changed colour scheme to white on black.
2023-01-05:
- New target supported: NABU (CP/M mode)
2022-03-11:
- Galaksija Plus Highres version fixed. Previously it was only working on the emulators, but not on real hardware.
2021-04-17:
- New targets supported:
Genius Leader 6000SL
SAM Coupe
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
Lviv/Lvov PK-01
- Casio PV-1000, ColecoVision and Z80 TV Game System: computer player movement should be random now.
2020-10-13:
- New target supported: Tesla Ondra
2020-05-04:
- New targets supported:
Mikro-80
Primo
2020-03-29:
- AVR-ChipBasic2: Auto PAL/NTSC detection added.
2020-03-28:
- New target supported: AVR-ChipBasic2 (rewritten in BASIC, One-Player-Mode only)
See http://www.jcwolfram.de/projekte/avr/chipbasic2/main.php (in German) and http://cb2.qrp.gr/
2020-03-11:
- Homelab 2: Graphics bug fixed in z88dk
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 target supported: Vector-06C
2020-01-15:
- New target supported: Bit-90
2020-01-14:
- Tesla PMD 85: Improved speed
2020-01-13:
- New target supported: Tesla PMD 85
2019-12-23:
- New target supported: Hübler-Grafik-MC
2019-11-25:
- New targets supported:
Casio FP-1100
Hanimex Pencil II
Nichibutsu My Vision
2019-11-15:
- New target supported: Sharp X1
2019-10-20:
- New target supported: NEC PC-8001
2019-10-13:
- New target supported: Regnecentralen RC 700
2019-10-09:
- New target supported: Nintendo Gameboy
2019-03-24:
- New target supported: Excalibur 64
2019-03-01:
- New target supported: Z80 TV Game System (home-brew)
2019-02-10:
- New target supported: Otrona Attach
2019-01-24:
- New target supported: Sony SMC-777 and SMC-70 (CP/M)
- The original MS-DOS PC (Hercules graphics) version that I wrote in 2016 is now also included in the "MS-DOS" directory, along with the Turbo C 2.01 source.
2019-01-02:
- Galaksija Plus version using 256x208 Hi-Res-Graphics added, thanks to Dom for implementing that in z88dk. This now deserves being called a "Galaksija Plus version", while the previous version uses only standard Galaksija functionality (but requires more RAM and therefore only runs on a Plus model). The previous "Standard Galaksija" version is still available for comparison.
2018-11-08:
- Tatung Einstein 80 Column Mode (TK02): re-arranged the top of the screen to get a larger playfield area.
- Tiki-100: changed the foreground colour to white.
2018-10-23:
- New targets supported:
Dick Smith Super-80
Galaksija Plus
Tiki-100 (also known as "Kontiki-100")
Notes: for the Super-80, two different MAME quickload .ql files are available: "em" for the e ("El Graphix 4") and m ("with colour") model, and "rv" for the r ("with VDUEB") and v ("with enhanced VDUEB") model. The standard model ("V1.2") and the d model ("V2.2") are not supported.
- Multi 8: bug fix (the bug allowed you to pass through the wall at the bottom of the screen)
- Laser 500: game has correct speed now (MAME emulation runs too fast). Use this new online emulator https://nippur72.github.io/laser500emu/ and drop the .bin file into the browser to play the game at the correct speed (the author has checked the speed on the real hardware).
2018-10-04:
- New targets supported:
CCE MC-1000
MicroBee 128k Standard / Premium / Premium Plus
Tatung Einstein 80 Column Mode (TK02)
2018-09-22:
- New targets supported:
Amstrad CPC
Memotech MTX
2018-09-21:
- New targets supported:
Camputers Lynx
Osborne 1
Tatung Einstein
Notes:
- On the Einstein, when you exit the game the characters at the CP/M prompt are broken, you need to restart the machine at that point.
- For the Camputers Lynx two different versions are included - their font looks a little different, but they both do the same. htron_CamputersLynx.tap uses the "Generic Console" while htron_CamputersLynx_StandardConsole.tap uses the built-in routines to display characters. The latter looks better IMHO but is much slower at displaying the game menu texts.
2018-09-12:
- New target supported: VTech Laser 500/700. Two different .WAV tape files are included: one that can be loaded by M.A.M.E, while the other one should be able to run on real hardware.
- VTech Laser 210/310 / VZ 200: new alternative lo-resolution version added ("lgfx")
- TRS-80: a .cas tape file is now also included in the package
2018-08-29:
- New target supported: Robotron KC 85/2-5 and HC 900
2018-08-19:
- New targets supported:
MSX
NEC PC-6001mkII
Sord M5
Spectravideo SVI
- Philips VG5000: improved graphics (no longer requiring the huge characters for displaying text)
2018-07-27:
- New target supported: Sega SC-3000
- Casio PV-2000: Bug fixes (graphics glitches, collision detection)
2018-07-22:
- New targets supported:
Bandai RX-78
Casio PV-2000
Nascom [*]
Sinclair ZX Spectrum
[*] The Nascom is not powerful enough for this game, only two-player mode runs at decent speed.
2018-07-10:
- New targets supported:
Casio PV-1000
ColecoVision
Exidy Sorcerer
Mitsubishi Multi 8
Samsung SPC-1000
Triumph Adler Alphatronic PC
- VG5000, TRS-80, EG2000, Aquarius: new keyboard input method makes the two-player mode usable
- VZ 200 / Laser 310: "Visible Cursor Problem" (that occurred occasionally) hopefully solved
- Bug fixes: correct random seed initialization, automatic round restart (on some systems, without space or 0 pressed) fixed
2018-06-24:
- Jupiter Ace and VZ200: new keyboard input method provided by z88dk that allows simultaneously checking more than just one key, so two-player mode is now usable on these two systems.
2018-06-22:
- New target supported: Sharp MZ
- EG2000 screen size changed to 102x96 to support the older EG2000 models.
2018-06-14: Initial release