Harry Potter Posted January 1, 2023 Share Posted January 1, 2023 Hi! I have a text adventure called Smir 3, 1. It is a Sci-Fi/Fantasy text adventure for the C64 where you must free your friend Talnon and other prisoners from a person from another dimension who wants the secret to fusion. Currently, its two main problems are that it has a few typos and is nowhere near completion--only the first chapter is written. If I finish it, I plan to port it to other platforms, including the Plus4, C128, Apple3enh and 8-bit Ataris. Should I upload it as is? Or should I wait? Quote Link to comment Share on other sites More sharing options...
carlsson Posted January 1, 2023 Share Posted January 1, 2023 Make it playable, iron out bugs and typos and then perhaps release the first part. See if you get any attention, and then decide what to do with the rest. To me, C64/128 is just about the same computer except the C128 has more memory. I don't know how big the Plus/4 scene is, in particular for text adventures. 1 Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted January 1, 2023 Author Share Posted January 1, 2023 Thank you. So far, it appears that there are some typos. They occurred because I manually compressed the text using tokenization, and occasionally I used the wrong token. I currently see no other bugs in the code, but I only tested it quickly. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted January 1, 2023 Author Share Posted January 1, 2023 The typos were worse than I thought. I need to fix them before publishing the program.. 1 Quote Link to comment Share on other sites More sharing options...
carlsson Posted January 1, 2023 Share Posted January 1, 2023 Sorry for the laughing reaction, but going from "ready to publish" to "oops, multiple typos and only tested briefly" in the matter of 15 minutes made me click on that one. 1 Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted January 16, 2023 Author Share Posted January 16, 2023 I just fixed the typos in the first two rooms. Quote Link to comment Share on other sites More sharing options...
Virtualsky Posted January 16, 2023 Share Posted January 16, 2023 On 1/1/2023 at 4:42 PM, carlsson said: Make it playable, iron out bugs and typos and then perhaps release the first part. See if you get any attention, and then decide what to do with the rest. To me, C64/128 is just about the same computer except the C128 has more memory. I don't know how big the Plus/4 scene is, in particular for text adventures. I find that the C128's 80 column screen is much more accommodating to text adventure games. Much more comfortable to read that way. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted January 24, 2023 Author Share Posted January 24, 2023 Today, I fixed some more typos, but, when I type "get map," I get garbage, and the command doesn't work. The garbage is in the form of actual text in the code but the wrong text. I think the routine that prints messages is getting the wrong address. Should I post the code that might be responsible for the printing? Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted February 16, 2023 Author Share Posted February 16, 2023 I fixed a lot of typos today, but I forgot about the "get map" issue. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted March 3, 2023 Author Share Posted March 3, 2023 I updated one of my text adventure codes today. I have mainly some bug fixes and a text compression technique. The option to disable string compression is currently not working properly. PET support was improved: the character set is now changed properly. You can find it at c65 additions - Manage /game at SourceForge.net. The file is called AdvSkelVic65-011.zip. The hi-end version online is currently not working properly. I got most configurations to work but am getting the monitor on the 128k Plus4 version when I enter "get key." Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted March 3, 2023 Author Share Posted March 3, 2023 I just emailed the program to zimmers.net. Let's see if he'll upload it. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted March 4, 2023 Author Share Posted March 4, 2023 Good news: I just optimized it by converting the code that returns whether there is a match between a noun given and the nouns in the database to assembler and gained .04k optimality. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted March 7, 2023 Author Share Posted March 7, 2023 Smr 3, 1 is doing better: I've been fixing the typos, but now, I am having a problem: the code that displays a standard message is giving garbage. It is currently in assembler, but the C version works properly. Also, the code is being put in zeropage, and when I move it to the default code segment, it gives me a blue screen with no text. Following are the C version of the function: ------------------------ static void __fastcall__ printmsg(unsigned char m) {printtok ((void*)Message[m]); printcr();} --------------------- and the assembler version: ------------------------- .segment "ZP2CODE" _printmsg: asl tax lda _Message,x pha lda _Message+1,x tax pla jsr _printtok jmp _printcr Quote Link to comment Share on other sites More sharing options...
carlsson Posted March 7, 2023 Share Posted March 7, 2023 Why do you end up with code in the zero page to begin with? Is Message located higher in memory, so it renders a 16-bit address? I'm thinking if you end up with LDA $NN,X and X wraps around zero page. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted March 7, 2023 Author Share Posted March 7, 2023 Actually, because I put it there. It's part of my Cubbyhole optimization technique. The game uses some ZP for variables, and the unused section of ZP is used to store extra code such that it is not included in the main file. Message is an array of pointers to strings that's located in main memory. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted March 22, 2023 Author Share Posted March 22, 2023 Yesterday, I fixed the bug in and heavily optimized the text adventure yesterday. The bug was that the version of my CBMSimpleIO's printu() function had a bug in it that was causing corruption of two zeropage locations. I replaced it with another version, and now it works. Now, I need to continue to fix all the typos. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted March 22, 2023 Author Share Posted March 22, 2023 BTW, I recently updated my AdvSkelVic65 program. WHile you're waiting for another version of AdvSkel65, you can try AdvSkelVic65. It supports the PET, the Vic20, the C16 and cartridges for the Vic20, the C16 and the C64. It is at c65 additions - Manage /game at SourceForge.net. Try it out! If you like it, I ask for ways in which I can improve it. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted March 23, 2023 Author Share Posted March 23, 2023 I just updated my AdvSkel65 program. Its main updates are heavy source code clean-up, optimizations and debugging. I also documented a feature allowing room text to be printed depending on conditions such as a task done or a player's possession. It is in the same location as AdvSkelVic65. Try it out! Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted March 25, 2023 Author Share Posted March 25, 2023 I optimized Smir 3, 1 today, even though I need to fix a lot of typos first. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted April 9, 2023 Author Share Posted April 9, 2023 I recently optimized my text adventure codes and knocked the 64k C128 version of AdvSkel65 down to 3.06k. I also fixed a bug with AdvSkel65 where the C128 versions didn't display the score board properly. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted May 6, 2023 Author Share Posted May 6, 2023 I have an update to AdvSkelVic65 online. It now supports C64 and Atari 800 floppies and one-part programs for supported CBM targets other than the PET. It was also heavily optimized. It has support for text compression, but such support is limited and requires manual compression. You can disable it if you want--the instructions are in the manual. It is in the same location as the earlier versions. I actually came back here because there's a bug in the function of my text adventure: it's not handling spaces properly: when I press Space, the emulated cursor disappears, and no new text is displayed until I press Return. The main program loop doesn't see the text after the space either but sees the verb. I attached the function here: ------------------------ unsigned char __fastcall__ GetInput (char* In, unsigned char InLen) { //unsigned char i; CurPos=0; printc ('>'); while (1) { printc ('_'); i = getkey (); printc (20); if (i==13){ /*return*/ In[CurPos]=0; printcr (); return CurPos; } if (i == 20 && CurPos) { /* delete */ --CurPos; printc (20); } if ((i&0x60) && CurPos<InLen) { //In[CurPos]=i; printc (In[CurPos]=i); ++CurPos; } } } --------------- In is the array that receives the output, InLen is the size of the buffer, excluding the NUL,i is a temporary ZP unsigned char variable, CurPos is also in ZP and reports the current pos. in the buffer, and the use functions are from my CBMSimpleIO library. Quote Link to comment Share on other sites More sharing options...
Harry Potter Posted May 6, 2023 Author Share Posted May 6, 2023 I found the problem: silly me! My emulator was in Warp mode. It works now. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.