Jump to content
IGNORED

RXB SAMS Game (In the Dark)


RXB

Recommended Posts

Hello just finished what I think is the largest game for the TI99/4A ever made.

 

Maybe the largest program ever written for the TI99/4A as it is 960K run from a XB program.

 

Runs from Classic99 but will have to make versions for small disks as this one takes up 3869 sectors on Classic99 at 124 files.

 

Anyway here is the Video just made and posted:

 

Edited by RXB
  • Like 5
Link to comment
Share on other sites

Nice one Rich, why not just span the game over 3 X DSDD images instead of going for a cut down version? Easy enough to setup and run multiple disks in Classic99

 

Yea I could do that it is all written in XB (RXB) code anyway.

Link to comment
Share on other sites

So here is entire program minus the Loader and Saver.

 

100 ! IN THE DARK (TUNNEL)
110 CALL CLEAR :: CALL SCREEN(2) :: RANDOMIZE :: GOSUB 790 :: CALL AMSINIT
120 B=0 :: W=8672 :: C=2 :: T=0 :: F=0 :: S=5 :: @=5
130 Z$=CHR$(&"S"&CHR$(9)&"D"&CHR$(10)&"X"&CHR$(11)&"E"&CHR$(32)&CHR$(13)&CHR$(1)
140 CALL AMSBANK(B,B+1)
150 ! MAIN LOOP
160 CALL SOUND(50,-6,15)
170 CALL CHAR(128,"187E5A5A3C242424")
180 CALL MOVES("RV",768,W,0)
190 CALL SPRITE(#1,128,5,11*8+2,(C-1)*8+2)
200 CALL ONKEY(Z$,0,K,Z)GOTO 220,220,260,260,300,300,360,360,430,660,750! L,R,D,U,SPACE,ENTER,FCTN7
210 GOTO 180
220 ! MOVE LEFT
230 CALL GCHAR(12,C-1,G) :: IF G=143 OR G=119 OR G=111 OR G=103 THEN 610
240 IF G=122 THEN 700
250 C=C-1 :: GOTO 150
260 ! MOVE RIGHT
270 CALL GCHAR(12,C+1,G) :: IF G=143 OR G=119 OR G=111 OR G=103 THEN 610
280 IF G=122 THEN 700
290 C=C+1 :: GOTO 150
300 ! MOVE DOWN
310 IF W=15488 AND B=238 THEN 770
320 CALL GCHAR(13,C,G) :: IF G=143 OR G=119 OR G=111 OR G=103 THEN 610
330 IF G=122 THEN 700
340 IF W>=15615 THEN B=B+1 :: W=W-4096 :: GOTO 420
350 W=W+32 :: GOTO 150
360 ! MOVE UP
370 IF W=8192 AND P=0 THEN CALL HCHAR(1,1,119,480) :: CALL MOVES("VR",768,0,W) :: GOTO 610
380 CALL GCHAR(11,C,G) :: IF G=143 OR G=119 OR G=111 OR G=103 THEN 610
390 IF G=122 THEN 700
400 IF W=8192 THEN B=B-1 :: W=W+4096 :: GOTO 420
410 W=W-32 :: GOTO 150
420 CALL AMSBANK(B,B+1) :: GOTO 150
430 ! FEEL AROUND ME
440 CALL CHAR(128,"0000187E7E242466")
450 FOR GR=11 TO 13
460 FOR GC=C-1 TO C+1
470 CALL GCHAR(GR,GC,G)
480 ! FETCH A TRAP
490 IF G=103 THEN 570
500 IF G=122 THEN CALL HCHAR(GR,GC,103) :: T=T+1 :: GOSUB 760 :: IF T=5000 THEN 770 ELSE 570
510 ! FETCH FOOD
520 IF G=111 THEN 530 ELSE 550
530 F=F+1 :: S=S+@ :: FOR Z=1 TO 24 STEP 4 :: CALL SOUND(100,110*Z,30-Z,44000/Z,Z) :: NEXT Z :: GOSUB 630 :: IF F=1000 OR S=3000 THEN 780
540 ! SHOW WALLS
550 IF G=119 OR G=143 THEN CALL HCHAR(GR,GC,143) :: GOTO 570
560 CALL HCHAR(GR,GC,32)
570 NEXT GC
580 NEXT GR
590 CALL MOVES("VR",768,0,W)
600 GOTO 170
610 CALL SOUND(99,200,20,-7,0) :: GOTO 150
620 ! SHOW SCORE
630 CALL HCHAR(24,1,32,32) :: CALL HPUT(24,1,"TRAPS=",24,7,T,24,13,"SCANS=",24,19,S,24,24,"FOOD=",24,29,F)
640 FOR Z=0 TO 900 :: NEXT Z :: CALL MOVES("RV",768,W,0) :: RETURN
650 ! SHOW AREA SCAN
660 IF S THEN 670 ELSE GOSUB 630 :: GOTO 150
670 CALL COLOR(11,16,1,12,7,1) :: CALL BEEP
680 FOR Z=0 TO 200 :: NEXT Z :: CALL KEY(CHR$(13),0,K,Z) :: CALL COLOR(11,2,1,12,2,1) :: S=S-1 :: GOTO 150
690 ! GAME OVER FAILED
700 FOR Z=1 TO 24 STEP 4 :: CALL SOUND(100,-7,Z) :: NEXT Z
710 CALL CLEAR :: FAIL=FAIL+1 :: @=@-1 :: IF @=1 THEN @=1
720 PRINT "YOU FAILED MISSION ";FAIL;"TIMES": :
730 GOSUB 630 :: PRINT: :"CONTINUE? Y/N"
740 CALL KEY("YN",0,K,Z) :: IF K=89 THEN 150 ELSE PRINT "SAVE PROGRESS? Y/N" :: CALL KEY("YN",0,K,Z) :: IF K=89 THEN 750 ELSE END
750 PRINT "DISK# OR DEVICE PATH? " :: INPUT D$ :: IF LEN(D$)=1 THEN CALL XBPGM("DSK"&D$&".ITDTSAVE")ELSE CALL XBPGM(D$&"ITDTSAVE")
760 CALL SOUND(99,200,20,-5,0) :: RETURN
770 ! WE HAVE A WINNER!
780 CALL CLEAR :: PRINT "YOU ARE FREE AT LAST!!!" :: END
790 ! TITLE SCREEN
800 FOR Z=0 TO 8 :: CALL COLOR(Z,16,1) :: NEXT Z
810 FOR Z=9 TO 12 :: CALL COLOR(Z,2,1) :: NEXT Z
820 CALL CHAR(128,"183C7EFF7E3C18") :: CALL COLOR(13,5,1)
830 CALL CHAR(111,"00003C3C3C000000") :: CALL COLOR(10,8,1)
840 CALL CHAR(119,"FFFFFFFFFFFFFFFF") :: CALL CHAR(122,"00005A5A5A5A0000") :: CALL DUPCHAR(119,143) :: CALL COLOR(14,15,1)
850 CALL CHAR(103,"007F7F7F7F7F7F00") :: CALL COLOR(9,12,1) :: RETURN

Link to comment
Share on other sites

Yea like this lines:

180 CALL MOVES("RV",768,W,0
590 CALL MOVES("VR",768,0,W)

 

Can be converted to Assembly like this:

 

10 ! CALL EXECUTE is 5 times faster then a CALL LINK.
20 CALL INIT
30 CALL LOAD(9838,47,0,38,114,4,32,32,44,3,128)
40 CALL LOAD(12032,0,0,48,0,2,255)
50 CALL EXECUTE(9838) :: ! Save screen.
60 CALL LOAD(9838,47,0,38,114,4,32,32,36,3,128)
70 CALL LOAD(12032,0,0,48,0,2,255)
80 ! This program copies    the screen then clears it.  Then it repeats.
90 FOR L=1 TO 400
100 CALL EXECUTE(9838)! Restore saved screen.
110 CALL CLEAR
120 NEXT L

 

So yea the game can be speeded up tons.

Link to comment
Share on other sites

Can you please whack the whole shebang onto 3 DSDD disk images and post it on here Rich?

 

Working on a DSDD 43 (344K) file version but will also release a Classic99 version (or HARD DRIVE Version) also. 960K for that version.

 

 

It asks for drive number 1-9 or path like a hard drive. Also it has a updater so it saves the game where you are totally.

Your location and what you have done. I have been checking the map so it will be perfect.

Link to comment
Share on other sites

INTHEDARK zip folder will run from any drive on Classic99.

This is the DSDD version that only uses 344K of the SAMS so has 48 files on disk.

ITDT0 to ITDT43 are the CALL BLOAD or CALL BSAVE program image files of the lower 8K.

INTHEDARK is the game to run.

ITDSAVE is the program that saves the SAMS files after you use FCTN 7 to save your progress.

ITDSHOW is the progam that shows the map so you can see all the hazards and where you have been if you save your games.

SCORE is a DV80 file of the values in the game for progress so is also overwritten.

 

Remember it overwrites the files so make a copy of the original first or get used to downloading it.

 

Have another project game in the making using the same principles.

Many ideas come to mind using the SAMS.

 

Rich

INTHEDARK.zip

Link to comment
Share on other sites

Help me out here Rich - when I load this into Classic99 in FIAD mode via RXB with the game dir assigned as DSK1 I RUN"DSK1.INTHEDARK" but it comes back with I/O Error 07,

If I do the same in IMAGE mode with the files written to a floppy image it runs but obviously the save bits are redundant due to Classic99 being unable to save to floppy images.

 

Am I doing something wrong?

Link to comment
Share on other sites

I used Windows 7 to copy DSK3. and send to zip file, then uploaded the zip file to AtariAge.

When I download the file then open the zip file I just copy the contents to DSK1. and it works fine.

 

I suspect you have a different set up for Disk access in Classic99 then the default I use.

All of mine are set at the default of Files(FIAD) Path .\DSK#\

Write TIFILES headers

Recognize TIFILES headers

Recognize V9T9 headers

Read Windows Text as DV files

Read Windows Text as DF files

Read Windows files as ext. as DF128

 

These are the default settings I have never changed them ever in Classic99

 

Rich

 

P.S. I am using Classic99 version QI365 as I had some problems with the latest version crashing and locking up.

Also INTHEDARK will run from any drive so the IO Error may be the SCORE file it is looking for?

Edited by RXB
Link to comment
Share on other sites

Crashes are a big deal, please tell me about them. :)

 

Well if I run the Classic99 for like 2 hours straight it locks up for a few minutes sometimes, do not know why but it then goes back to normal.

Once in awhile it just totally locks up with no keys being detected at all. This happens after several times it locks up and I do not shut it down and restart Classic99.

I am running Windows 7 and Classic99 is running all defaults as far as I can tell.

I thought it might be my RXB under my own USER version so swapped to the built in one, but that did not fix the issue.

You got me as to why this happens as I only run this and Ti99Dir. Well sometimes Windows Media Player playing music, but it does it even when running Classic99 alone.

 

My score when running Windows 7 performance rating is 5.9, but that is the hard drive. All the rest are 7.5 except for Gaming is 7.0 and Hard Drive 5.9

Link to comment
Share on other sites

Well if I run the Classic99 for like 2 hours straight it locks up for a few minutes sometimes, do not know why but it then goes back to normal.

Once in awhile it just totally locks up with no keys being detected at all. This happens after several times it locks up and I do not shut it down and restart Classic99.

 

Thanks, Rich. I haven't done long-term testing for a while, I'll try to reproduce.

 

Link to comment
Share on other sites

Tursi I believe it may be hard drive related you know like buffering as I hear my hard drive spin back up when it does this.

I am running 6 Gig of RAM ECC with a XEON processor so that is the most reliable hardware you can buy. Server Quality hardware with the freaking costs too.

 

Also it may be Screen saver based on the Classic99 like when it shuts down the Classic99 screen a huge delay results. I do not know why Classic99 needs a Screen saver option.

Link to comment
Share on other sites

Classic99 doesn't have a screen saver option... it doesn't shut down its display. When the TI clears the screen, Classic99 has no idea and continues to update it as needed. What kind of graphics card do you have in there? One possibility is you may be losing your DirectX context, which would force Classic99 to rebuild all the display buffers. (Which still shouldn't take too long, but....)

 

I let my copy run here for several hours in CPU overdrive continually loading and running XB programs, and monitored for leaks and artifacts, and I didn't see anything. That just means it's not obvious. As for your hard drive - Classic99 doesn't touch your hard drive unless the emulated TI is doing file system access - so the next question may be "what are you running for hours when this happens?" :)

 

(That said, if your hard drive goes to sleep and an application needs to wake it up, any application will hang while the drive spins back up. That's just a part of Windows.)

 

 

Link to comment
Share on other sites

I have

  • ATI Radeon HD 4870 with 512MB of GDDR5 memory, PCI Express 2.0, one Mini DisplayPort, and one dual-link DVI port

I run RXB for hours at a time writing the INTHEDARK game changes for version 2.

 

I do not see this as a high priority for you right now but a slight annoyance for me sometimes. Not lost much yet as I save before tests.

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