Please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Akalabeth: World of Doom (DOS, 1996)

From The Cutting Room Floor
Jump to: navigation, search

Title Screen

Akalabeth: World of Doom

Also known as: Ultima 0: Akalabeth
Developer: Richard Gariott
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 a game originally released for the Apple II Basic, and is the precursor to the Ultima series. After being mostly unknown, there were two ports made over to the PC. The first is an unoffical port written by Finire Dragon, being compiled in Microsoft QBasic. The second port was officially made in 1998 as an enhanced remake and is included in the Ultima Collection.

This page describes the unofficial Black & White port in 1996, which is the main version of the game distributed on GOG.com. This distributor placed the official port 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 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, once 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.