Jump to content
IGNORED

Upload Smir 3, 1?


Recommended Posts

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?

Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

  • 4 weeks later...
  • 2 weeks later...

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."

Link to comment
Share on other sites

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
 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

  • 2 weeks later...

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.

Link to comment
Share on other sites

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.  :)

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...

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.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...