We have upgraded to the latest version of MediaWiki and now support TLS1.2 and transcoding!
Please contact us via Discord or Twitter if you experience any problems.

Akalabeth: World of Doom (DOS, 1996)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Akalabeth: World of Doom

Also known as: Ultima 0: Akalabeth
Developer: Richard Garriott
Publisher: California Pacific Computer Co.
Platform: DOS


CodeIcon.png This game has unused code.
TextIcon.png This game has unused text.


Akalabeth: World of Doom is the precursor to the Ultima series. Originally released for the Apple II Basic, the game remained mostly unknown until being unofficially ported to the PC by Finire Dragon (being compiled in Microsoft QBasic) in 1996. An official PC port was released in 1998 as an enhanced remake and is included in the Ultima Collection.

This page describes the unofficial Black & White port, which is the main version of the game distributed on GOG.com (the official port is placed as an extra download instead).

Unused Code

In this port, Lord British doesn't recognize any quest progress. This technically makes the game unwinnable, but the most that gets missed is a +1 boost to all stats (marginal compared to becoming a Lizard Man) and receiving the lord title (which can be added on your first visit to the castle).

(Source: Lord British dialogue messed up in Akalabeth after first quest. - GOG Forums)

As the Black & White version from GOG.com includes the basic source code, one can spot the affected lines directly.

7500  IF ta > 0 THEN PRINT : PRINT : PRINT pn$; " WHY HAST THOU RETURNED?": PRINT "THOU MUST KILL A(N) "; m$(ta)
      PRINT "GO NOW AND COMPLETE THY QUEST!": PRINT : PRINT "         PRESS -SPACE- TO CONT."; : DO: q$ = INKEY$: LOOP WHILE q$ = "": CLS : GOTO 1090

7510  PRINT : PRINT : PRINT : PRINT "AAHH!!....."; pn$: PRINT : PRINT "THOU HAST ACOMPLISHED THY QUEST!": IF ABS(ta) = 10 THEN 7900

7520  PRINT "UNFORTUNATELY, THIS IS NOT ENOUGH TO": PRINT "BECOME A KNIGHT.": ta = ABS(ta) + 1: PRINT : PRINT "NOW THOU MUST KILL A(N) "; m$(ta)

7530  GOTO 7060

7900  SCREEN 1: VIEW PRINT: CLS : PRINT : PRINT : PRINT : pn$ = "LORD " + pn$: PRINT " "; pn$; ","

7910  PRINT "       THOU HAST PROVED THYSELF WORTHY": PRINT "OF KNIGHTHOOD, CONTINUE PLAY IF THOU": PRINT "DOTH WISH, BUT THOU HAST ACOMPLISHED": PRINT "THE MAIN OBJECTIVE OF THIS GAME..."

7920  IF lp = 10 THEN 7950

7930  PRINT : PRINT "   NOW MAYBE THOU ART FOOLHEARTY": PRINT "ENOUGH TOTRY DIFFICULTY LEVEL "; lp + 1

7940  GOTO 7070

7950  PRINT : PRINT "...CALL CALIFORNIA PACIFIC COMPUTER": PRINT "AT (415)-569-9126 TO REPORT THIS": PRINT "AMAZING FEAT!"

7990  GOTO 7070

The cause is code line 7500 - since there's a hard return at the end of the line, the following indented line is treated as a separate line of code as opposed to being part of the if statement.