Source code to the 1995 DOS roguelike game Alphaman

Overview

Alphaman Source and Files

Source code and related files for the 1995 DOS roguelike game Alphaman by Jeffrey R. Olson.

Jeff can be reached via email at [email protected]

The Game

The game itself is described at:

The game is available for download at:

There are several contemporary discussions about Alphaman from 1995 on Usenet, including the suggestions from others which are referenced in FIXES.TXT:

Files

Game source

  • Any .BAS file is in MS QuickBasic 4.5 binary format
  • Any .BAS.txt is a plaintext version of the same file
  • A1.BAS to A8.BAS - Game source
  • ALPCLIB.C - C helper library
  • MODJNK.BAS - Game strings
  • MODAM6.BAS - More strings
  • ALPHA.CAS and ALPHA.CAS.txt - Castle data
  • ALPHA.DEC and ALPHA.DEC.txt - Variable declarations
  • ALPHA.GDY and ALPHA.GDY.txt - Weapon and item handling
  • ALPHA.CRE, CRELIST, CRETEST.*, CREVIEW.*, CREALTER.*, VIEW.* - Definitions, programs, output for creature (enemy monster) generation

Supporting Files

  • ALPHA.DBG,DB2,DB3,DC2 - Debug snippets, commented out in the game code
  • BRESNHAM.C - Public Domain example math code
  • MAZ.* - Maze path finding test
  • *.BAT - Build scripts for MS QuickBasic 4.5 and MS QuickC 2.5
  • *.MAK Compiler directives to create object files from source and strings

Gameplay Assistance

Jeff made the FAQ available publicly. The Spoilers file was only provided to the 50 to 100 people who registered the shareware. It appears on some very old FTP listings but this is the first time it's been available publicly in about two decades!

  • ALPHAMAN.FAQ.txt - Alphaman FAQ by Jeff Olson, version 1.1
  • ALPHAMAN.SPL.txt - Spoilers by Jeff Olson, version 1.1
  • ALPMAN11.TXT - Description for upload to FTP sites
  • FIXES.TXT - Changelog
  • README.TXT - Descriptive file shipped with game
  • ITEMLIST - All possible items in plaintext

Cheats

These tools require a .ALF saved game in the current directory.

  • ITEMS.EXE/BAS/txt - Add berries, small and large tech devices
  • MUTAT.EXE/BAS/txt - Modify player stats and physical/mental mutations

You can also name your character Jeffrey Olson to start with all stats at 18, good gear like a Long Sword, Chainmail, Small Titanium Shield, and advantageous Mutations. Keeping with the game's humour and not taking itself too seriously, this inside joke allows Jeff to be atop everyone's High Score list.

GamqFAQs also contains a guide which does not allow copying elsewhere. The author did not respond to my request to include it here:

Code Description

Alphaman was originally written as a QuickBasic program. In order to keep the game on a single 3.5" floppy, Jeff used some C and assembly helpers (ALPCLIB.C) which are linked into the QuickBasic objects at compile time.

Strings are kept in intermediate files and referenced by their binary offset and length. String definitions are in MODJNK.BAS and MODAM6.BAS. String print routines are SUB Printjnk in A7.BAS and FUNCTION jnk$ in A8.BAS.

Jeff originally used floating point math to handle the game randomisation, but after seeing how slowly the map generated on an 8088 system without a math co-processor, he changed to integer-based math using bit-shifts with the help of a classmate who had written some books on assembly language programming.

File Formats

Note that when browsing QuickBasic source, SUB procedures are "hidden" from the main file they are defined in. You can list and enter subprocedures in QuickBasic by pressing the F2 key or in the top menu bar by selecting View then SUBs....

A few of the text files may not open in your editor of choice. This occurs because those files use ISO-8859-1 Latin encoding, not UTF-8 like most modern text files. I chose not to convert the Latin files to preserve the content accurately, as some DOS characters do not covert to UTF-8.

Compiling

Alphaman can be compiled in DOSBox. The following was tested successfully with dosbox-staging version 0.76.0.

Install Microsoft QuickBasic 4.5 and Microsoft QuickC 2.5 with "medium" memory model support selected. You can find those at:

Your PATH should look something like:

SET PATH=C:\QB45\;C:\QC25\BIN;%PATH%

You also need the LIB and INCLUDE variables set as QuickC requires, plus add the QuickBasic path to libraries:

SET LIB=C:\QC25\LIB;C:\QB45
SET INCLUDE=C:\QC25\INCLUDE
  • ALPHAMAN.EXE is generated by running COMCLIB.BAT then COMALPHA.BAT
  • ALPHAMAN.1 is generated by running MODJNK.BAS
  • ALPHAMAN.2 is generated by running CREALTER.BAS
  • ALPHAMAN.3 is generated by running ALPHA.GDY
  • ALPHAMAN.4 is generated by running ALPHA.CAS
  • ALPHAMAN.5 is plain text, no compilation required
  • ALPHAMAN.6 is generated by running MODAM6.BAS

These steps provide all required game files.

Interestingly, this source generates files with differences in ALPHAMAN.1 (strings) and ALPHAMAN.4 (castles) compared to the v1.1 game release, so the source may be a slightly later unreleased version.

License

The contents of this repository are made available under the MIT license.

tl;dr - do what you like, but include Jeff's copyright notice in any derivative.

Copyright (c) 1995 Jeffrey R. Olson

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Maintainer

This repository is maintained by:

Owner
Jamie
I am not a robot. Maybe.
Jamie
A system to flag anomalous source code expressions by learning typical expressions from training data

A friendly request: Thanks for visiting control-flag GitHub repository! If you find control-flag useful, we would appreciate a note from you (to niran

Intel Labs 1.2k Jun 27, 2022
Source Code for SIGGRAPH Asia 2021 Paper "Ensemble Denoising for Monte Carlo Renderings"

Ensemble Denoising Source Code for SIGGRAPH Asia 2021 Paper Ensemble Denoising for Monte Carlo Renderings. Paper | Code | Talk Slides Dependencies A C

郑少锟 43 May 10, 2022
Source Code for SIGGRAPH Asia 2021 Paper "Ensemble Denoising for Monte Carlo Renderings"

Ensemble Denoising Source Code for SIGGRAPH Asia 2021 Paper Ensemble Denoising for Monte Carlo Renderings. Paper | Code | Talk Slides Dependencies A C

郑少锟 43 May 10, 2022
Source code for the TKET quantum compiler, Python bindings and utilities

tket Introduction This repository contains the full source code for tket, a quantum SDK. If you just want to use tket via Python, the easiest way is t

Cambridge Quantum 128 Jun 22, 2022
An open-source, low-code machine learning library in Python

An open-source, low-code machine learning library in Python ?? Version 2.3.6 out now! Check out the release notes here. Official • Docs • Install • Tu

PyCaret 5.9k Jun 27, 2022
SoftON Hack is an internal Ring3 cheat for Free2Play MMOFPS game (x86) - CSN:S (ex. CSN:Z)

Changelog (2021.03.19) DLL: Empty signature is allowed to Hacker Detector, and allows be invisible to other SoftON users DLL: Players state updating m

null 17 Jun 29, 2022
AlphaZero like implementation for Oware Abapa game

CGZero AlphaZero like implementation for Oware abapa game, in Codingame (https://www.codingame.com/multiplayer/bot-programming/oware-abapa) See https:

null 20 Jun 18, 2022
DeepRTS is a high-performance Real-TIme strategy game for Reinforcement Learning research written in C++

DeepRTS is a high-performance Real-TIme strategy game for Reinforcement Learning research. It is written in C++ for performance, but provides an python interface to better interface with machine-learning toolkits. Deep RTS can process the game with over 6 000 000 steps per second and 2 000 000 steps when rendering graphics. In comparison to other solutions, such as StarCraft, this is over 15 000% faster simulation time running on Intel i7-8700k with Nvidia RTX 2080 TI.

Centre for Artificial Intelligence Research (CAIR) 144 Jun 27, 2022
AGE is a simple 2D console game engine runs in UNIX using third library Ncurses.

AGE-Game-Engine AGE is a simple 2D console game engine runs in UNIX using third library Ncurses. How-To-Run You need to install ncurses using the foll

SIHAN LI 1 Dec 16, 2021
Pymo Game Engine implement in C.

cpymo 此项目尚在工作中!欢迎提交代码! 这是一个使用C实现的pymo引擎的复刻,以方便在各种平台上运行pymo游戏。 pymo原版参见:https://github.com/pymo/pymo pymo官网:https://www.pymogames.com/ 原作者:chen_xin_min

许兴逸 61 Jun 23, 2022
Vendor and game agnostic latency reduction middleware. An alternative to NVIDIA Reflex.

LatencyFleX (LFX) Vendor and game agnostic latency reduction middleware. An alternative to NVIDIA Reflex. Why LatencyFleX? There is a phenomenon commo

Tatsuyuki Ishi 480 Jun 26, 2022
An Open Source Machine Learning Framework for Everyone

Documentation TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries, a

null 166.1k Jul 1, 2022
Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit

CNTK Chat Windows build status Linux build status The Microsoft Cognitive Toolkit (https://cntk.ai) is a unified deep learning toolkit that describes

Microsoft 17.2k Jun 24, 2022
🐸 Coqui STT is an open source Speech-to-Text toolkit which can run in real time on devices ranging from a Raspberry Pi 4 to high power GPU servers

Coqui STT ( ?? STT) is an open-source deep-learning toolkit for training and deploying speech-to-text models. ?? STT is battle tested in both producti

Coqui.ai 1.4k Jun 27, 2022
An open source machine learning library for performing regression tasks using RVM technique.

Introduction neonrvm is an open source machine learning library for performing regression tasks using RVM technique. It is written in C programming la

Siavash Eliasi 33 May 31, 2022
An open source python library for automated feature engineering

"One of the holy grails of machine learning is to automate more and more of the feature engineering process." ― Pedro Domingos, A Few Useful Things to

alteryx 6.2k Jul 1, 2022
Open source modules to interface Metavision Intelligence Suite with event-based vision hardware equipment

Metavision: installation from source This page describes how to compile and install the OpenEB codebase. For more information, refer to our online doc

PROPHESEE 71 Jun 23, 2022
Open-source vector similarity search for Postgres

Open-source vector similarity search for Postgres

Andrew Kane 550 Jun 26, 2022
OpenEmbedding is an open source framework for Tensorflow distributed training acceleration.

OpenEmbedding English version | 中文版 About OpenEmbedding is an open-source framework for TensorFlow distributed training acceleration. Nowadays, many m

4Paradigm 18 Jun 16, 2022