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 : CMM2: More creaky old text adventures (SAAINT)
Page 2 of 3 | |||||
Author | Message | ||||
Turbo46 Guru Joined: 24/12/2017 Location: AustraliaPosts: 1611 |
Some time ago Tom posted an MMBasic port of "TENLINER CAVE ADVENTURE" a ZX81 game by Einar Saukas here. The attached is the same adventure in the Scott Adams adventure format. Cave.zip If you want to play, just copy it to the 'adventures\misc' directory and run SAAINT. Bill Keep safe. Live long and prosper. |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4047 |
Very nice Bill you could probably have posted the .dat in a CODE block so that casual readers could have seen what is involved. Is anyone else playing with SAAINT ? Is there any interest in having a TBS interactive fiction writing competition ? Best wishes, Tom Edited 2021-07-27 05:06 by thwill Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
Turbo46 Guru Joined: 24/12/2017 Location: AustraliaPosts: 1611 |
Yes I could have but it's 256 lines long, even for such a small adventure. The .dat file is a plain text file and plain old notepad will open it. A dump file may be better? Bill The Dump file: Data dump for 'A:/cmm2-saaint-develop-2.0.0/src/../adventures/misc/cave.dat' Min text size (bytes): 1066 Max object index: 9 Max action index: 16 Max vocabulary index: 27 Max room index: 4 Max objects carried: 5 Starting room index: 1 Number of treasures: 1 Vocabulary word length: 4 Time limit: 999 Max message index: 6 Treasure room index: 1 ACTIONS ------- 0: 0 100 IN 1 -BIT 0 Par 0 Par 0 Par 0 MSG:4 MSG:5 MSG:6 SETz 1: 0 0 Par 0 Par 0 Par 0 Par 0 Par 0 0 0 0 0 2: LOOK ANY IN 1 Par 0 Par 0 Par 0 Par 0 MSG:3 0 0 0 3: LOOK ANY IN 2 Par 0 Par 2 Par 0 Par 0 x->y DspRM 0 0 4: KILL DRAG IN 2 -HAVE 4 Par 0 Par 0 Par 0 DEAD FINI 0 0 5: LOOK ANY IN 3 Par 1 Par 3 Par 0 Par 0 x->y DspRM 0 0 6: OPEN CHES IN 3 -HAVE 3 Par 0 Par 0 Par 0 MSG:1 0 0 0 7: OPEN CHES IN 3 HAS 3 Par 4 Par 3 Par 0 x->y DspRM 0 0 8: LOOK ANY IN 4 -IN/W 2 Par 2 Par 4 Par 0 x->y DspRM 0 0 9: LOOK ANY IN 4 IN/W 2 Par 3 Par 4 Par 0 x->y DspRM 0 0 10:GET KEY IN 4 IN/W 3 Par 3 Par 0 Par 0 GETx INV 0 0 11:GET SWOR IN 3 IN/W 4 Par 4 Par 0 Par 0 GETx INV 0 0 12:KILL DRAG IN 2 HAS 4 Par 0 Par 0 Par 0 MSG:2 FINI 0 0 13:INVE ANY Par 0 Par 0 Par 0 Par 0 Par 0 INV 0 0 0 14:QUIT ANY Par 0 Par 0 Par 0 Par 0 Par 0 SCORE FINI 0 0 15:LOOK ANY Par 0 Par 0 Par 0 Par 0 Par 0 DspRM 0 0 0 16:SCOR ANY Par 0 Par 0 Par 0 Par 0 Par 0 SCORE 0 0 0 VOCAB ----- 0: AUTO ANY 1: GO NORTH 2: *ENT SOUTH 3: *EXIT EAST 4: *WALK WEST 5: *RUN UP 6: CLIM DOWN 7: LOOK DRAG 8: *EXAM CHES 9: *INSP CORP 10: GET KEY 11: *CARR SWOR 12: *TAKE 13: *PICK 14: *CATC 15: INVE 16: QUIT 17: HELP 18: DROP 19: *RELE 20: *PUT 21: *GIVE 22: *LEAV 23: SCOR 24: KILL 25: *SLAY 26: OPEN 27: *UNLO ROOMS ----- 0: <storeroom> Exits: None 1: Cave Exits: North 2: Hall Exits: South, East 3: Pit Exits: North, West 4: Lake Exits: South MESSAGES -------- 0: <empty> 1: Cannot do 2: You won 3: Nothing 4: As a young warrior apprentice, you have been chosen by the village elders to 5: seek out the evil menace that lurks in some nearby caves. Once found, use any 6: means at your disposal to defeat it... Gook luck on your quest! OBJECTS -------- No Rm 0: 0 dragon 1: 0 chest 2: 0 corpse 3: 0 key 4: 0 sword 5: 4 water 6: 0 x 7: 0 y 8: 0 z 9: 0 lamp For "SAAINT's many devoted users" I should explain that the objects 'x, y, and z' are padding because the adventure system expects the light source (not Used Here) to be object number 9. Also it expects the verb 'DROP' (also not used) to be number 18, so there are extra un-needed verbs for padding. Edited 2021-07-27 14:31 by Turbo46 Keep safe. Live long and prosper. |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4047 |
Thanks Bill, I'm sure "SAAINT's many devoted users" will appreciate it . I'm looking at handling those minimum object and verb issues in the next maintenance build - but not much free time at the moment. Best wishes, Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4047 |
Hi folks, I've consulted the Necronomicon and resurrected this thread so that I can announce SAAINT version 2.0.5 which can be downloaded from the usual place: README ChangeLog Download There are many, many changes but the bottom line is that it makes some creaky old text adventures marginally less creaky and will now also run on Linux using MMB4L. It won't run on MMB4W alpha 3, I need Peter to implement #INCLUDE and even then I suspect there will be some file API incompatibilities to iron out. It also won't run on the PicoMite even after I transpile out the #INCLUDEs because it uses too much memory due to naive storage of strings, one of these days I'll get around to dealing with that. If you are wondering why I've bothered then hopefully that mystery will be resolved within a couple of days . Best wishes, Tom Edited 2022-02-20 09:58 by thwill Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 6808 |
More moons ago than I care to remember, I had a play with compacting strings. It was in my old TRS-80 programming book and saves about 50% on string space. It was impressive! Limitations are that you only have 40 characters (usually A-Z, 0-9, space, period, comma, dash). One is a default, which is substituted if you try to compress an unrecognized character. It converts each 3-byte section of the string into 2 bytes. Unfortunately for us it was in Z80 assembler, but I suspect that even done in MMBasic it wouldn't be snail's pace. I might have a play at some point... Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4047 |
Hi Mick, SAAINT on the PicoMite shouldn't need string compression per se, I just need to stop using 256 characters for each string. If I need more than that then I will probably repurpose the Z-String compression in Z-MIM which sounds very similar to what you mention. Best wishes, Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
KD5ZXG Regular Member Joined: 21/01/2022 Location: United StatesPosts: 53 |
TRS-80 Model 1 could display only 6 bits per character unless you piggyback a missing ram and disable the logic that faked it. Moreover, mine needed a new character rom (missing lower case fonts? I can no longer recall with certainty.) If you had Model 3 or hacked Model 1, most adventures included full support for lower case text. Quite a surprise to me, as that was demonstrated even before Model 3 existed. I got stuck in SAA a lot, hot reset and peek'd through memory looking for hints. All I could ever find were a few keywords. Majority of text in memory was scrambled or compressed or otherwise obfuscated. Something not right about my story, as a character could display 6 blocks of graphics and that's six bits right there. How did that ever work? Maybe it was seven bits faked out to eight by logic. This page offers far better explanation: Cloning a TRS-80 "In the original TRS-80 the designers skimped on memory, providing only seven 1-bit static RAM chips for the video memory. Bit-7 controlled whether a memory location defined either a graphics character or a ROM-generated "text" character. Bit-6 was the missing memory chip, leaving only six bits (bits 0 through 5) for selecting the character. So, that gave 64 ROM-defined "text" characters and 64 graphics/block characters (the latter giving chunky, pseudo bit-mapping). Only 64 text characters didn't leave enough room for lower case letters of the alphabet. Lower case letters, in addition to several other characters, were actually defined in the second 64 character page of the TRS-80's character ROM, but the original hardware just couldn't access them without bit-6." Except my character rom also needed upgrade. I had an early Model 1 Level 1. Switchable to Level 2 Basic via cigar box hanging out the back. Not talking expansion interface, but external eproms zif socketed into an actual cigar box. Those sold as Level 1's may not have had complete character rom. Character rom was an internal upgrade, separate from the display bit and cigar box hacks. Edited 2022-02-20 20:16 by KD5ZXG |
||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 6808 |
I had (still have but it's not been plugged in for many years) a Model 1 level 2 with several mods! There's also an expansion interface with a AY3-8910 sound chip where the memory expansion should be (expansion is in the keyboard). There's also a Tandy green screen monitor and a couple of floppy drives. When I bought it they didn't have a UK version, so there's also a little 240/110v transformer. Unfortunately that doesn't fix the frequency so the monitor has a continuous wobble on the display. :( Through nefarious sources I also got Newdos-80 and, later, LDOS. :) Getting a good disk BASIC was fantastic. Fond memories of "Dancing Demon" :) Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3152 |
Sounds like a variant of 5-bit ASCII. I first encountered that in 1968 on a paper tape technical journal typesetting and publishing system. All you need to add is a shift-on and shift-off character and you can have full ASCII plus tons of special characters (shift-on encountered while you are already shifted takes you to a whole additional character set--as many times as you need). PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
Turbo46 Guru Joined: 24/12/2017 Location: AustraliaPosts: 1611 |
I have written a Scott Adams style adventure: Blackberry.zip The idea came from a comment by lizby about picking blackberries in a previous post. It is a small adventure with one treasure and 17 locations and it is kid friendly, no gruesome death. There are several ways to complete the adventure and only a few ways to get into trouble. It would be a good one to involve a child, our hero is most likely to be a young boy but not necessarily. Like any adventure of this type will have to draw a map as you go or you will get lost. It will fit on an A4 sheet so it's not a big task. Tom has been tireless and very patient in assisting me with this by testing, identifying bugs and making suggestions. Without his help it would have been nowhere as complete and playable. He is doubtless glad to see the back of it. Thanks Tom. Tom has updated SAAINT since the post above and the download now includes blackberry. If you want to play blackberry (and I hope someone does) then I suggest that you download the latest version. Any comments or suggestions would be gratefully accepted (because it would mean that someone actually tried it ) If you just download this file the unzip it and put the two files in: saaint\adventures\misc Bill Keep safe. Live long and prosper. |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4047 |
Note that even with the latest MMB4W alpha (21st Feb 2022) SAAINT still doesn't work on Windows . Peter said "Your file and directory handling is so multi-layered and complex I can't make head or tail of it ..." I haven't yet decided whether I will wear this as a badge of pride or of ignominy . I'm waiting until he implements "Change all file and path input to properly canonicalize the pathnames" and then I'll get it working. Watch (or not) this space, Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 6808 |
Lol! I'm sure something nice will happen eventually. :) Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4047 |
Well done Bill, I've really appreciated collaborating with you on this and SAAINT is much better as a result of the process. I think "The Great Blackberry Adventure" is a great achievement and I know you've worked really hard on creating the tooling to make it possible. Best wishes, Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
Turbo46 Guru Joined: 24/12/2017 Location: AustraliaPosts: 1611 |
Thanks Tom, and thanks again for all of your help. It's been quite a journey from when I offered to try to port 'Pirate' to the CMM2. I did not realize at the time that it was really an interpreter and all of the adventure commands, locations and so on were contained in the data statements. The 90 odd GOTOs it contained quickly got the better of me. You then wrote SAAINT just to get 'Pirate' going for the CMM2. Now SAAINT has evolved to be able to play any of the Scott Adams style adventures better, I think, than many of the original versions. It seems that SAAINT is coming closer to be able to run on MMB4W. Interesting that Peter could not make head nor tail of your file and directory handling, how could a mere mortal like me expect to understand it (and much of the rest of it)? Cheers Bill Keep safe. Live long and prosper. |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4047 |
Blame Bill , SAAINT 2.0.7 now runs on CMM2, MMB4L and MMBasic for Windows: README ChangeLog Download Best wishes, Tom Edited 2022-04-07 01:14 by thwill Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 6808 |
Tried to run it, Tom without success. Might be that my CMM2 needs updating though. I'm running MMBasic 5.07.01. error in splib/file.inc line 4b:syntax I'm not absolutely sure about the 4b as the very top line is cropped on my monitor. I've not tried earlier versions so I've nothing to compare it with. I just happen to have spare time because I'm stuck at home with soddin' covid. :( Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4047 |
I'm running on 5.07.02b2 ... which may or may not be the latest, I lose track. I'm guessing it is line 46: file.exists% = Mm.Info(Exists File f$) Or Mm.Info(Exists Dir f$) MM.INFO(EXISTS [FILE|DIR] path$) is a very recent addition to MMBasic, so possibly only in 5.07.02. Damn! I hope you get well soon. Best wishes, Tom Edited 2022-04-08 02:05 by thwill Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 6808 |
Cheers, Tom. I'll do an update. (I don't recommend covid - even when fully jabbed! I wouldn't mind, but as a family we have all tended towards playing safe most of the time - wearing a mask in shops & on the bus etc. Still, we get short term immunity as some sort of recompense. :) ) EDIT: YAY! that fixed it. I've put the latest b5 version on and it's perfectly happy. Playing Adventureland again has brought back a lot of happy memories. It was the first "real" text adventure I ever played. Edited 2022-04-08 05:07 by Mixtel90 Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
Rickard5 Guru Joined: 31/03/2022 Location: United StatesPosts: 463 |
THWILL Hoping my CCM2 Comes soon Because this is the BEST NEWS EVER I loved Scott Adams Games back when :) You sir are a Man among Men and you deserve our Praise and Admiration I may be Vulgar, but , while I'm poor, I'm Industrious, Honest, and trustworthy! I Know my Place |
||||
Page 2 of 3 |
Print this page |