StellarRoads: Platform game for PC (DOS)

Introduction

StellarRoads is a 2D scrolling platformer where you can only go forward and survive by skillfully controlling the vessel's speed and jumping right on time!

Heavily influenced by the well known 1993 classic SkyRoads by Bluemoon, StellarRoads can be seen as a sort of 2D "demake" of SkyRoads.

Platform: DOS (or DOSBox)
Video modes: VGA, Tandy or CGA
Sound: PC Speaker, Tandy or Adlib

Carefully coded in x86 assembly to run well original hardware, even at only 4.77MHz with CGA. I hope this game will be yet one more game worth enjoying on your retro PCs!


Downloads

CGA, Tandy/PCjr and VGA versions included, supplied as DOS .COM executables, bootable disk images and PCjr cartridge ROM file.

Version 0.6
March 30, 2020 (Monday)
  • Scores now saved to disk (STELLAR.SCO)
  • Normal levels: Display the number of times each level was beaten in the level list.
  • Endless level: Display the best distance in the level list.
  • The Tandy sound option (/TANDY) should now work in the VGA version too.
  • Improved PCjr support: Checks if there is enough memory, check if the program is loaded in fast memory (above 128k) and relocate if necessary.
  • Fix snow when updating the palette on PCjr.
  • PCjr Cartridge version of the game (Binary ROM file and .JRC file)
  • Command-line arguments are now case-insensitive.
  • Add a command-line option to set the language to French (/FR)
File(s):
steld06.zip (977.2 KB)
Show previous releases...
Version 0.5
March 20, 2020 (Friday)
  • A new level/mode has been added: Endless. This level that simply never ends is generated randomly. The ship accelerates until it reaches top speed and never slows down. The distance traveled is displayed in real time, and when the player crashes, game over. How far can you go?
  • The ship can now go above the top of the screen instead of just sticking there.
  • Adjusted jump physics based on comments received. Hopefully it feels better now. The changes are:
    • As long as the jump button is held, an upward force is applied. This slows down the fall.
    • Increased gravity, so once the jump button is released, the ship falls quickly.
    • Increased initial jump velocity to compensate for the increased gravity and provide a similar jumping height.
  • Miscellaneous level tweaks to accomodate what broke due to the modified jump physics and the fact that the ship can go off-screen.
  • The PC Booter version now displys Loading StellarRoads... when reading the program from the diskette instead of 1.....2
File(s):
steld05.zip (882.4 KB)
Version 0.4
March 17, 2020 (Tuesday)
  • Move the vessel closer to the left edge of the screen. This makes the game a bit easier since what comes ahead can be seen earlier.
  • Normal platforms in the VGA version can now be non-white, as in the Tandy version.
  • Implement palette-based fade in/out effects in the VGA version.
  • Exit with an error message if setting the video mode fails.
  • Fix french accented characters in the banner shown at exit.
File(s):
steld04.zip (887.4 KB)
Version 0.3
March 14, 2020 (Saturday)
First release version
File(s):
steld03.zip (903.6 KB)
This game is also available on itch.io



Command-line arguments

The game accepts a few command-line arguments:
  • /PCSPKR : Use the PC speaker for sound and music
  • /ADLIB : Use an AdLib or compatible card (IO port 388h)
  • /TANDY : Use the SN76489 sound chip (port C0h)
  • /NOSOUND : Disable sound
  • /FR : Set the language to French


PCjr support

Starting with version 0.6, StellarRoads has improved PCjr support.

To be playable, the game must run in memory above 128 kB, otherwise it is too slow. This is due to the PCjr system architecture where the internal RAM also used for video, i.e. there is no dedicated video RAM. Memory above 128 kB, typically provided by a Sidecar, is not shared with video RAM and the game can run at normal speed from there.

The game executable (stelltga.com) contains code to help with this situation. The PCjr is detected by looking at the Machine Identification Byte. Then, the Bios Data Area is accessed to learn how much memory is actually installed (PCjr-specific word at 40:15). The game needs 96k of contiguous memory to run, so a total of at least 224k (128k + 96k) of installed memory are required.

Then there is a check to make sure the game is running in "fast" memory. If you are starting the game from a DOS disk without special configuration (using jrconfig.sys for instance) then DOS will not load the game above 128k. In this situation, the game prints a message and relocates itself to segment 0x2000 (128kB) and runs from there.

At the moment, the cartridge version of the game also requires 224kB of memory since the cartridge init code simply copies the game to memory at 0x2000 (128kB) and runs it from there. The game does not run directly from the cartridge ROM yet.

StellarRoads v0.6 cartridge PCB for PCjr

StellarRoads v0.6 cartridge PCB for PCjr



The circuit board above is another of my projects and is documented on a separate page.



Screenshots (VGA version)





Screenshots (Tandy version)





Screenshots (CGA version)