Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 21:58 21 Oct 2025 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Colossal Cave Adventure Preview/Test Version

     Page 1 of 2    
Author Message
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1297
Posted: 06:35pm 10 Oct 2025
Copy link to clipboard 
Print this post

Crowther & Woods' Colossal Cave Adventure

This is the first version. I have (as a start) adapted the Peter McGavins QBASIC translation syntax to mmbasic so that it works for now. No GUI or graphics yet.
Please report errors and suggest improvements.



CCA.zip

Have Fun
Martin
Edited 2025-10-11 04:46 by Martin H.
'no comment
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5357
Posted: 07:36pm 10 Oct 2025
Copy link to clipboard 
Print this post

Hi Martin,

It is working. But the commands are very different from Tay's. I may have to decode (it is a ROT-13 cypher, like used for GeoCaching) to learn the verbs.
It does not know "Inventory" or the likes..

Thanks for the fun this will give me..

Volhout
PicomiteVGA PETSCII ROBOTS
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1297
Posted: 08:03pm 10 Oct 2025
Copy link to clipboard 
Print this post

I encrypted it myself using ROT-13 to prevent accidental spoilers; in the original list, everything was in plain text  
yes, i was suprised that it does not know "Inventory".

As shown in the image, the GUI version will have a field displaying what the user has with them.
The images are almost finished, and I will then try to integrate the GUI into the text version of the adventure.
Edited 2025-10-11 06:04 by Martin H.
'no comment
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5357
Posted: 09:42pm 10 Oct 2025
Copy link to clipboard 
Print this post

Martin,

We should not forget this game was written by a university professor for his students and colleague. The smartest people. So maybe thing like an inventory where perceived to simple for them. These guys where smart enough to remember what they picked up.

Volhout
PicomiteVGA PETSCII ROBOTS
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4325
Posted: 10:23pm 10 Oct 2025
Copy link to clipboard 
Print this post

The history of Interactive Fiction is one of my interests.

It is my understanding that Will Crowther programmed Colossal Cave / Adventure for his daughters as a way of interacting and showing his love for them following the breakup of his marriage.

Don Woods would only have been 23 when he worked on it, he was a graduate student not a professor.

Best wishes,

Tom
Edited 2025-10-11 08:23 by thwill
MMBasic for Linux, Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1297
Posted: 04:31am 11 Oct 2025
Copy link to clipboard 
Print this post

Line 22 missing an "I" in IF
'no comment
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 8221
Posted: 07:13am 11 Oct 2025
Copy link to clipboard 
Print this post

There have been several versions. "inventory" was certainly recognised in at least one because I hated having to type such a long word! "inven" was also recognised.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5357
Posted: 03:21pm 11 Oct 2025
Copy link to clipboard 
Print this post

Hi Martin,

I hope you have stamina... There is a long way to go.

1/ start new game. press "n" 2x -> error in line 293.
  at many locations in the game pressing "n" several times causes the same.

2/ There is a note about "winding roads" making navigation not logical, but the navigation on this one is very strange. Start new game, go "w" -> up the hill.
There is no way to get back to the starting point, after a bit of trying, you are under ground (walkin in the forest -> main passageway). Without any notice you are entering a cave.

Maybe 2/ is as intended in the game, but to me it feels awkward.

Volhout
Edited 2025-10-12 01:24 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1297
Posted: 05:45pm 11 Oct 2025
Copy link to clipboard 
Print this post

  Quote  1/ start new game. press "n" 2x -> error in line 293.
 at many locations in the game pressing "n" several times causes the same.

Ive done a lot of debugging, this should be Fixed.


Data "3"
Karte:
Data "1;2;2;44"
Data "1;3;3;12  19  43"
Data "1;4;4;5;13  14  46  30"
Data "1;5;6;45  43"
Data "1;8;49"
Data "2;1;8;2;12  7;43  45  30"
Data "2;5;6;45  46"
Data "3;1;3;11  32  44"
Data "3;11  48"
Data "3;33  65"
Data "3;79  5;14"


Meaning in general
Digit 1    Start room (your current position).
Digit 2    Your path number (token)    Associated commands (actions)   Function (for room 1)
2    ROAD
3    ENTER, DOOR, GATE    This is the token you need to access the hut (room 3). ENTER is the main command.
4    UPSTR (Upstream)    Special movement command, not a compass token.
5    DOWNS (Downstream)    Special movement command, not a compass token.
12    BUILD, BLD, HOUSE    Synonym for the building. This is also a token that leads to room 3 in line 1 3 3 12 19 43.
13    GULLY    The noun “gully.”
14    STREA (Stream)    The noun “Stream.”
29    UPWAR, UP, U, ABOVE    The typical command for Up (UP).
30    D, DOWNW, DOWN    The typical command for Down (DOWN).
43    EAST, E    The cardinal direction token east.
44    WEST, W    The cardinal direction token west.
45    NORTH, N    The cardinal direction token north.
46    SOUTH, S    The cardinal direction token south.
48    XYZZY    Magic word/teleportation token.
49    DEPRE (Depression)    Noun/special command (probably the command for room 49).
leads
Digit 3 Target Room


so for room 1

1 2 2 44    2    Room 2    ROAD. Walk on the road.
1 3 3 12 19 43    3    Room 3    ENTER, DOOR, GATE.
Synonyms (12, 19, 43)        BUILD/HOUSE, INWARD/INSIDE/IN, EAST/E.    The command ENTER must have been recognized by the game as token 3 or 12/19. ENTER led to room 3.  
1 4 4 5 13 14 46 30    4    Room 4    UPSTR (Upstream).    
1 5 6 45 43    5    Room 6    DOWNS (Downstream).    
1 8 49    8    Room 49    BACK, RETURN, RETREAT.

I spend the Day debugging the Program, i Hope those Errors are now history:

cca.04.zip
Edited 2025-10-12 16:37 by Martin H.
'no comment
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5357
Posted: 06:58am 12 Oct 2025
Copy link to clipboard 
Print this post

The pictures are beautiful.
This is going to be a great game Martin.
PicomiteVGA PETSCII ROBOTS
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1297
Posted: 10:18am 12 Oct 2025
Copy link to clipboard 
Print this post

Thanks.
There are still a few places I need to work on.
I'm testing my GUI to display all locations and comments, etc.
Once the text adventure is running smoothly, I'll start working on integrating my GUI (with the images).
Cheers
 Martin
'no comment
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5357
Posted: 11:09am 12 Oct 2025
Copy link to clipboard 
Print this post

Martin,

Pictures "a69.bmp" and to a lesser level "a71.bmp" use a different colorscheme. They do not match the rest of the pictures. Maybe that is intended to be.

I like "titel.bmp" better than "titel2.bmp", but that is obviously matter of taste.

Looking out for the implementation of these graphics in the game. Really exciting !!

Do you want me to search for some MOD files that meet the suspense ? Most of the MOD files in the archive are short and up tempo. Here you are looking more towards slow, tense, and spooky....

Volhout

P.S. did you remove the zip with pictures again ? I was able to download them, but now the link is gone again. Was I not intended to fetch them ? Did you want to keep them a secret ?
Edited 2025-10-12 21:13 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1297
Posted: 12:03pm 12 Oct 2025
Copy link to clipboard 
Print this post

Yes, I removed the link again.
You have the zip file, and I will upload a new zip file with images of all rooms. There is a maze in the game, and not all images are regenerated there. I have defined the exceptions here.

SUB Load_Picture RNR%
   Local FNAM$
select case RNR%
Case 46,47,48,54,56,58,63
FNAM$= "asset/DEADEND.bmp"
Case 42,43,45
FNAM$= "asset/2exits.bmp"
Case 44,49 TO 53,55
FNAM$= "asset/3exits.bmp"
Case 25
FNAM$= "asset/A23.bmp"
Case ELSE
FNAM$= "asset/A":'if RNR%<10 then FNAM$=FNAM$+"0"
FNAM$=FNAM$+STR$(RNR%,2,0,"0")+".bmp"
end select
Load bmp FNAM$,0,0
end sub

Edit: New Picture Link
Edited 2025-10-12 22:53 by Martin H.
'no comment
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 8221
Posted: 02:53pm 12 Oct 2025
Copy link to clipboard 
Print this post

You are in a maze of twisty little passages all alike.

Happy daze....   :)





I want to hear a hollow voice saying "PLUGH".  :)


>xyzzy
How dare you swear like that on this forum!

.
Edited 2025-10-13 01:06 by Mixtel90
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
zeitfest
Guru

Joined: 31/07/2019
Location: Australia
Posts: 612
Posted: 01:14am 14 Oct 2025
Copy link to clipboard 
Print this post

  Quote  I want to hear a hollow voice saying "PLUGH"


In the distance, a bird is singing..
[It's probably a twitter account     ]
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5357
Posted: 02:48pm 15 Oct 2025
Copy link to clipboard 
Print this post

@Martin,

A very pre-mature test version showing graphics and text.
This is for mode 2 on PicoVGA.

I replaced most print statements with a w_print. I am not sure I have the relation between location and picture correct. Probably not. Learning as I go.

cca5.zip

Uses the last asset folder.

Volhout
PicomiteVGA PETSCII ROBOTS
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1297
Posted: 04:18pm 15 Oct 2025
Copy link to clipboard 
Print this post

  Volhout said  
Uses the last asset folder.
Volhout

here are some usefull subs, which might be helpful for you:
preparation:
Dim Linebuff$(20),IVNT$(10),DIRS$(10),LBIDX=1:LBINR=1
CONST TEXT_START_ROW = 25 ' Line-Index (not Pixel)
CONST DISPLAY_ROWS = 5
CLS:Font 7

this loads the screens in Order to the szenes

Sub WriteLN (IS)
Linebuff$(LBINR)=IS:INC LBINR
end SUB
SUB Load_Picture RNR%
   Local FNAM$
   select case RNR%
       Case 46,47,48,54,56,58,63
           FNAM$= "asset/DEADEND.bmp"
       Case 42,43,45
           FNAM$= "asset/2exits.bmp"
       Case 44,49 TO 53,55
           FNAM$= "asset/3exits.bmp"
       Case 25
           FNAM$= "asset/A23.bmp"
       Case ELSE
           FNAM$= "asset/A":'if RNR%<10 then FNAM$=FNAM$+"0"
           FNAM$=FNAM$+STR$(RNR%,2,0,"0")+".bmp"
   end select
   Load image FNAM$,0,0
end sub

Fake Input (to scroll the InfoText using up/Down keys while Input
FUNCTION INP$()
   LOCAL K$
   INP$="":PRINT @(0,232);string$(48," ");
   PRINT @(0,232);">_";
   DO
   DO
       K$=INKEY$:Pause 10
       IF ASC(K$)<>0 THEN EXIT DO
   LOOP
     K$=UCASE$(K$)
     SELECT CASE ASC(K$)
       CASE 8,127 'BACKSPACE/DEL
           IF LEN(INP$) THEN INP$=LEFT$(INP$,LEN(INP$)-1)
       CASE 32 to 90
       if  LEN(INP$)< 50 then  INP$=INP$+K$
       CASE 10
           EXIT FUNCTION
       CASE 128 'CURSOR UP
           LBIDX=LBIDX-(LBIDX> 1):DisplayLines(LBIDX, Linebuff$())
       CASE 129 'CURSOR DOWN
           LBIDX=LBIDX+(LBIDX<15):DisplayLines(LBIDX, Linebuff$())
   END SELECT
   
   PRINT @(0,232);">";INP$;"_ ";
   LOOP
   COLOR RGB(WHITE),0
END FUNCTION
SUB DisplayLines(StartIndex AS INTEGER, Buffer$())
   LOCAL I AS INTEGER
   LOCAL ScreenRow AS INTEGER
   LOCAL Y_PIXEL AS INTEGER
       COLOR RGB(GREEN),0
      FOR I = 0 TO DISPLAY_ROWS - 1
       ScreenRow = TEXT_START_ROW + I
          ' Berechne die Y-Pixel-Koordinate: (Reihenindex - 1) * 8
          Y_PIXEL = (ScreenRow - 1) * 8
          ' Löschen der alten Zeile (Spalte 1 bis 42)
       PRINT @(0, Y_PIXEL); SPACE$(53);
          ' Zeige die entschlüsselte Zeile aus dem Puffer
       PRINT @(0, Y_PIXEL);Buffer$(StartIndex + I);
   NEXT I
   COLOR RGB(WHITE),0
END SUB
sub CLR_LINEBUFF
local ff%
   For ff%=1 to 20:Linebuff$(ff%) ="":next
end sub

Edited 2025-10-16 02:19 by Martin H.
'no comment
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5357
Posted: 04:27pm 15 Oct 2025
Copy link to clipboard 
Print this post

Martin,

I used the same method as petscii the subs are at the end of the code.cca5.bas.

Volhout
PicomiteVGA PETSCII ROBOTS
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1297
Posted: 04:50pm 15 Oct 2025
Copy link to clipboard 
Print this post

Hello Harm,
Now that I have satisfactorily completed my own Atkinson  dithering routine(Heureka), I have had some images re-rasterized. You can take a look and see if you like this set better.
AssetNew
Cheers
  Martin
Edited 2025-10-16 03:00 by Martin H.
'no comment
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5357
Posted: 06:22am 16 Oct 2025
Copy link to clipboard 
Print this post

Hi Martin,

Atkinson was smart. It is much easier to implement in a microprocessor. When I remember correct it's algorithm compensate only forward and downward. (old CRT's where scanned from top to bottom). Not upward and back. This made it possible to dither "on the fly" while showing the picture on CRT.

I will not be able to test this week since on travel. Maybe in my cca5 there is some code you can use, otherwise regard it as demo and dispose of it.

Regards,

Volhout
PicomiteVGA PETSCII ROBOTS
 
     Page 1 of 2    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025