Jump to content

"The Quest" by Jim Beck


Recommended Posts

Was wondering if anyone on here could kindly make this game emulator friendly as it currently crashes out or keeps returning to the naming character section when rolling a character using Classic99 & MESS, it's a protected saved extended basic program which I used CALL LOAD(-31931,0) to then get a listing but not being a TI99 coder have'nt really got a clue what is causing the crash other than I suspect it's to do with disk access (which Classic99 will have a problem with saving to disk, but not MESS).


Any ideas?




Edited by OX.
Link to comment
Share on other sites

What are you seeing for the crash?


I tried it here, and it worked fine. I saved my character on DSK2 and put the image in DSK1, that worked fine. It does take a LONG time to load, though, even on CPU Overdrive.


For some weird reason It would'nt let you create a character in MESS, just kept returning to the enter character name screen.

Link to comment
Share on other sites

The problem wasn't so much a "crash" as it was poor programming style (IMHO).


The author first asks the user for his/her character name, ie, "DSK1.USER". Once the user hits ENTER, the program asks the user to confirm what was entered and immediately jumps into a CALL KEY loop. Anything besides a Y/y keypress triggered a return to the character name input.


Changing the status condition test may have also cured the INPUT->CALL KEY misfire but instead, by only allowing "YyNn", the program now patiently awaits a proper keypress.


As for the slow load time I'm sure someone could effectively squash the static data into a more quickly loading format. I would probably convert the 1000 or so integers into string representation, save the resulting 5-6 records to an IF255 file, then at game time read the string records and convert each byte of each string back to integer representation. Pack/unpack would look something like this :


100 !pack integer array into string
110 FOR I=1 TO 254 :: A$=A$&CHR$(A(I)) :: NEXT I
200 !unpack variable length string into integer array
210 FOR I=1 TO LEN(A$) :: A(I)=ASC(SEG$(A$,i,1)) :: NEXT I

* Integers must be a value between 0-255.

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.

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.

  • Recently Browsing   0 members

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