Jump to content
IGNORED

More cool TI books


Opry99er

Recommended Posts

 

The tantalizing one is the UK edition according to The Cyc. The wording of the title is supposed to be the only difference. There is a dutch (Tergende spelen...) and german version (Superspiele...) of the book as well.

 

 

Many thanks, @KL99. There is also a French version, although it changes one of the author credits: Les Grands Classiques du Jeu pour votre TI-99/4A

 

 

yes both true, these are the versions I found in the years indeed, so i noted that the dutch version missing to me :P :

 

post-24673-0-90970700-1511126323_thumb.jpg post-24673-0-64291600-1511126332_thumb.jpg

 

Edited by ti99iuc
Link to comment
Share on other sites

I love that one "Homeward Bound". It actually has two speech effects, a croaking frog and a swishing sound when blood gushed out of your frog if he got ran over by a car.

 

They don't render as well on the emulators though; like a lot of custom speech the newer core messes them up a bit. I typed it in long ago, I can find it in my archives and share both file and listing here.

 

I've wondered for years how the author figured out how to make the sounds... nothing about the speech synthesizer was well documented and neither sound seems to have roots with any of the built in vocabulary.

 

Listing:

10 ! //////////////
20 ! / HOME BOUND /
30 ! //////////////
40 !
50 !//1ST SCREEN//
60 CALL CLEAR :: PRINT TAB(;"<<<<<<<>>>>>>>":TAB(;"< HOME BOUND >":TAB(;"<<<<<<<>>>>>>>": : : : : : : : : : :
70 CALL SOUND(100,888,0) :: PRINT " DO YOU NEED INSTRUCTIONS?";
80 CALL KEY(0,K,S) :: IF S=0 THEN 80 ELSE IF K-89 THEN 150
90 PRINT TAB(10);"HOME BOUND": :"  YOU ARE APPROACHED BY A   GROUP OF AMPHIBIANS AND THEYASK YOU TO HELP THEM GET    HOME..."
100 PRINT:"CONTROLS: ARROW KEYS": :TAB(12);"POINTS": :"HOP ON GROUND =   5 PTS":"  HOP ON LOGS =  10 PTS"
110 PRINT "    BLACK BUG =  80 PTS":"    WHITE BEE = 200 PTS": :"GET HOME BEFORE BEE REACHES RIGHT EDGE OF SCREEN!"
120 PRINT:"USE "S"/"D" TO LICK BEE.": :"FREE FROG EVERY 1000 POINTS.": :"GOOD LUCK...PRESS ANY KEY";
130 CALL KEY(0,K,S) :: IF S=0 THEN 130
140 ! // INITIALIZE //
150 DIM C$(1,1),N$(2),N(2) :: CALL CHARPAT(63,A$) :: CALL CHAR(59,A$)
160 CALL INIT :: CALL LOAD(-31878,0) :: CALL SPCH(CR$,BL$) :: CALL CLEAR :: RANDOMIZE :: CALL MAGNIFY(3) :: A$=RPT$("0",42)
170 CALL CHAR(33,RPT$("0",12)&"C0C"&RPT$("0",14)&"30300285A7E7E5A2800",36,"183C6C397E396C3C18"&A$)
180 CALL CHAR(40,"7F9EF17F8FF16F3700000000000000003FFACFFF96FFCD7E0")
190 CALL CHAR(44,"02051F1B1C0F21777F7F3E3F1E1F36362050FCEC1CF8C2F7FF7FBEFEBCFCB636",60,A$&A$)
200 CALL CHAR(128,"077BDD9D9DDD7B070000000000000000FFFDFFFFFFFFFDFF0")
210 CALL CHAR(132,"7073AEFDFDAE737000000000000000003CE4F8FCFCF8E43C0")
220 CALL CHAR(136,"3F151F3E3E1F153F0000000000000000B66ECEC6C6CE6EB60")
230 CALL CHAR(140,"38777C7F7F7C7738000000000000000070F8BCDCDCBCF8700")
240 C$(0,0)=RPT$("0",39)&"77CE" :: C$(0,1)="00C0E0603E0F00000000000000000000000000077CE"
250 C$(1,0)="000000E03E07" :: C$(1,1)="000000E03E0700000000000000000000000307067CF"
260 CALL CHAR(112,"00425A3C7E9942C3"&A$)
270 CALL CHAR(116,"506B0C0E0E0C6B5"&A$)
280 CALL CHAR(120,"00C342817E3C5A42"&A$)
290 CALL CHAR(124,"0AD630707030D6"&A$)
300 CALL CHAR(96,"105438100083")
310 CALL CHAR(100,"0000000000008183C3466C380000000000000E0B0F0C848CD858783")
320 RESTORE 1310 :: READ A$ :: CALL CHAR(92,A$,104,RPT$("F",22)&"07FFFFFFFFFFFFFF00FF00FFFFFF")
330 FOR I=3 TO 8 :: CALL COLOR(I,2,4) :: NEXT I
340 CALL SCREEN(4) :: CALL COLOR(1,2,6,2,2,6,9,3,4,10,2,12,11,13,4)
350 !//1ST SCREEN//
360 ! // SET UP //
370 SC=0 :: SC1=1000 :: S=7 :: FS=4
380 CALL HCHAR(23,1,96,128)
390 CALL HCHAR(14,1,96,64)
400 CALL HCHAR(16,1,104,224) :: CALL HCHAR(17,1,105,32) :: CALL HCHAR(19,1,106,32) :: CALL HCHAR(21,1,105,32)
410 CALL LOAD(-31878,0) :: FOR I=4 TO 31 STEP 5 :: CALL HCHAR(1,I,32,2) :: CALL HCHAR(2,I,33) :: CALL HCHAR(2,I+1,34) :: NEXT I
420 H=0 :: CALL SPRITE(#27,60,7,1,1)
430 ! /LOGS/
440 X=24
450 FOR I=1 TO 11 STEP 5 :: A=24 :: FOR J=I+1 TO I+5 :: CALL SPRITE(#J,40,15,A,X) :: A=A+16 :: NEXT J :: X=X+87 :: NEXT I
460 ! /VEHICLES/
470 A=120
480 FOR I=17 TO 20 :: CALL SPRITE(#I,(I-17)*4+128,INT(RND*13+3),A,1,#I+4,(I-17)*4+128,INT(RND*13+3),A,INT(RND*200+30)) :: A=A+16 :: NEXT I
490 ! /ARRAY/
500 FOR I=0 TO 4 :: RANDOMIZE :: CALL COLOR(#I+2,15,#I+7,15,#I+12,15) :: IF INT(RND*2)AND H THEN 540
510 M(I)=INT(RND*S+RND*4)+1 :: IF M(I)=0 THEN 510
520 B=(I/2=INT(I/2)) :: IF B=0 THEN B=B+1
530 M(I)=M(I)*B
540 NEXT I :: CALL SCREEN(4)
550 FOR J=0 TO 4 :: CALL MOTION(#J+2,0,M(J),#J+7,0,M(J),#J+12,0,M(J)) :: NEXT J
560 !/MOVE CARS/
570 FOR I=17 TO 20
580 RANDOMIZE :: IF INT(RND*3)=0 AND H THEN 590 ELSE B=SGN(I-18.5)*INT(RND*S+4+RND*4+1) :: CALL MOTION(#I,0,B,#I+4,0,B)
590 NEXT I :: GOTO 610
600 FOR I=0 TO 4 :: CALL COLOR(#I+2,15,#I+7,15,#I+12,15) :: NEXT I
610 CALL LOAD(-31878,26) :: CALL SPRITE(#1,112,13,183,126,#25,36,16,1,16) :: IF INT(RND*3)>0 THEN CALL SPRITE(#26,100,2,104,1,0,RND*6+3)
620 RANDOMIZE :: B=INT(RND*6) :: CALL GCHAR(1,B*5+5,I) :: IF I=32 THEN CALL VCHAR(1,B*5+5,35)ELSE B=-4/5
630 ! // START //
640 CALL HCHAR(23,1,96,32) :: DISPLAY AT(24,3)SIZE(FS):RPT$(CHR$(112),FS-1)&CHR$(96)
650 DISPLAY AT(23,12)SIZE(6)BEEP:"READY;" :: FOR I=1 TO 8 :: CALL KEY(0,K,ST) :: IF ST THEN I=10
660 NEXT I :: CALL HCHAR(23,1,96,32) :: IF I=9 THEN 650 ELSE CALL HCHAR(15,10,96,15)
670 X=183 :: Y=126 :: CALL MOTION(#25,0,S/3)
680 !/ON LAND SECTION/
690 CALL KEY(0,K,ST) :: CALL POSITION(#25,X1,Y1) :: IF Y1>243 THEN CALL TIMEEND :: GOTO 1060 ELSE IF ST=0 THEN 800
700 IF K-69 THEN 720 ELSE IF X<104 THEN 840 ELSE X=X-8 :: CALL PATTERN(#1,112) :: CALL LOCATE(#1,X,Y) :: GOSUB 790
710 IF HIT THEN 1060 ELSE X=X-8 :: CALL LOCATE(#1,X,Y) :: CALL SOUND(-100,690, :: GOTO 800
720 IF K-68 THEN 740 ELSE IF Y>248 THEN 780 ELSE Y=Y+4 :: CALL PATTERN(#1,116) :: CALL LOCATE(#1,X,Y) :: GOSUB 790
730 IF HIT THEN 1060 ELSE Y=Y+4 :: CALL LOCATE(#1,X,Y) :: CALL SOUND(-100,680, :: GOTO 800
740 IF K-88 THEN 760 ELSE IF X>180 THEN 780 ELSE X=X+8 :: CALL PATTERN(#1,120) :: CALL LOCATE(#1,X,Y) :: IF X>96 THEN GOSUB 790 ELSE HIT=0
750 IF HIT THEN 1060 ELSE X=X+8 :: CALL LOCATE(#1,X,Y) :: CALL SOUND(-100,880, :: GOTO 800
760 IF K-83 THEN 800 ELSE IF Y<12 THEN 780 ELSE Y=Y-4 :: CALL PATTERN(#1,124) :: CALL LOCATE(#1,X,Y) :: GOSUB 790
770 IF HIT THEN 1060 ELSE Y=Y-4 :: CALL LOCATE(#1,X,Y) :: CALL SOUND(-100,830, :: GOTO 800
780 CALL SOUND(100,110,5) :: GOTO 690
790 CALL COINC(ALL,HIT) :: CALL SOUND(-100,220,7) :: SC=SC+5 :: RETURN
800 CALL COINC(ALL,HIT) :: IF NOT HIT THEN CALL COINC(ALL,HIT) :: IF NOT HIT THEN CALL COINC(ALL,HIT) :: IF NOT HIT THEN 690
810 GOTO 1060
820 !/IN WATER SECTION/
830 CALL KEY(0,K,ST) :: CALL POSITION(#25,X1,Y1) :: IF Y1>243 THEN CALL TIMEEND :: GOTO 1060 ELSE IF ST=0 THEN 830 ELSE CALL SOUND(10,999,5)
840 IF K-69 THEN 850 ELSE CALL MOTION(#1,0,0) :: CALL POSITION(#1,X,Y) :: IF X<24 THEN 900 ELSE CALL PATTERN(#1,112) :: CALL LOCATE(#1,X-16,Y) :: C=39 :: GOTO 1100
850 IF K-68 THEN 860 ELSE CALL MOTION(#1,0,0) :: CALL POSITION(#1,X,Y) :: IF Y>248 THEN 1060 ELSE CALL PATTERN(#1,116) :: CALL LOCATE(#1,X,Y+ :: C=23 :: GOTO 1100
860 IF K-88 THEN 870 ELSE CALL MOTION(#1,0,0) :: CALL POSITION(#1,X,Y) :: IF X<87 THEN CALL PATTERN(#1,120) :: CALL LOCATE(#1,X+16,Y) :: C=7 :: GOTO 1100 ELSE 740
870 IF K-83 THEN 880 ELSE CALL MOTION(#1,0,0) :: CALL POSITION(#1,X,Y) :: IF Y<12 THEN 1060 ELSE CALL PATTERN(#1,124) :: CALL LOCATE(#1,X,Y- :: C=23 :: GOTO 1100
880 GOTO 820
890 !/LAND IN HOME/
900 IF Y>250 THEN 1060 ELSE Y=Y+4 :: CALL MOTION(#25,0,0) :: Y=INT(Y/8+.5)+1 :: CALL GCHAR(2,Y,HIT) :: IF HIT-34 THEN 1060 ELSE CALL GCHAR(1,Y,HIT) :: H=H+1 :: SC=SC+50
910 CALL DELSPRITE(#1) :: CALL SOUND(60,-3,0,110,0) :: CALL VCHAR(1,Y-1,44) :: CALL VCHAR(1,Y,46) :: CALL VCHAR(2,Y-1,45) :: CALL HCHAR(2,Y,47)
920 CALL SAY(,CR$,,CR$) :: IF HIT=35 THEN CALL SOUND(200,880,0,330,5) :: CALL SOUND(100,770,0) :: CALL SOUND(300,550,0)ELSE CALL VCHAR(1,B*5+5,32)
930 Y=(Y-1)*8 :: CALL KEY(0,K,I) :: IF K-83 AND K-68 THEN 1000 ELSE CALL POSITION(#25,X,I) :: CALL LOCATE(#27,3,Y+16*(K=83))!/LICK/
940 CALL SOUND(-200,-7,19) :: CALL CHAR(60,C$((K=83)+1,0)) :: CALL SOUND(-240,-5,16) :: CALL CHAR(60,C$((K=83)+1,1))
950 CALL COINC(ALL,I) :: IF I=0 THEN CALL COINC(ALL,I) :: IF I=0 THEN 980
960 CALL SOUND(50,-5,9,110,4) :: SC=SC+200 :: CALL CHAR(36,"0C1E0202060C181E"&RPT$("0",16)&"44EEAAAAAAAAEE44")
970 FOR I=800 TO 2000 STEP 100 :: CALL SOUND(99,I,4) :: NEXT I :: CALL DELSPRITE(#25) :: CALL CHAR(36,"183C6C397E396C3C18"&RPT$("0",15))
980 IF K=68 THEN CALL CHAR(62,"0")
990 CALL CHAR(60,RPT$("0",33)) :: CALL LOCATE(#27,1,1)
1000 DISPLAY AT(15,10)SIZE(LEN(STR$(SC))+6):"SCORE:"&STR$(SC) :: IF HIT=35 THEN DISPLAY AT(23,10)SIZE(:"BONUS:80" :: CALL DING(SC,80)
1010 GOSUB 1140 :: IF S<14 THEN S=S+1
1020 IF H-6 THEN 1050 ELSE CALL SCREEN(6) :: DISPLAY AT(23,10)SIZE(10):"BONUS:500";CHR$(96) :: CALL DING(SC,500) :: CALL SONG(55) :: GOSUB 1140
1030 FOR I=4 TO 31 STEP 5 :: CALL SOUND(200,770-I*10,0) :: CALL HCHAR(2,I,33) :: CALL HCHAR(2,I+1,34) :: CALL VCHAR(1,I,45) :: CALL VCHAR(1,I+1,47)
1040 CALL SOUND(200,770+I*10,0) :: CALL HCHAR(1,I,32,2) :: NEXT I :: H=0 :: CALL SONG(14) :: GOTO 610
1050 X=14 :: CALL SONG(X) :: GOTO 1070
1060 CALL VCHAR(1,B*5+5,32) :: CALL MOTION(#25,0,0) :: IF X<104 THEN CALL DROWN(FS)ELSE CALL SQUISH(FS,BL$)
1070 CALL DELSPRITE(#25,#26) :: DISPLAY AT(15,10)SIZE(LEN(STR$(SC))+6):"SCORE:"&STR$(SC) :: GOSUB 1140
1080 IF FS=0 THEN CALL OVER(SC,N$(),N()) :: GOTO 370 ELSE IF X=14 THEN 500 ELSE CALL FROGO(FS+3,15) :: GOTO 600
1090 !/LAND ON LOGS/
1100 CALL COINC(ALL,HIT) :: IF NOT HIT THEN CALL COINC(ALL,HIT) :: IF NOT HIT THEN CALL COINC(ALL,HIT) :: IF NOT HIT THEN 1060
1110 SC=SC+10
1120 CALL MOTION(#1,0,M((X-C)/16)) :: CALL SOUND(100,999,7) :: GOTO 830
1130 !//SUBR EXTRA FROG//
1140 IF SC<SC1 THEN RETURN ELSE CALL SCREEN(11) :: DISPLAY AT(23,10)SIZE(10):"EXTRA";CHR$(96);"FROG" :: CALL SOUND(200,440,6) :: CALL SOUND(600,550,4) :: CALL SOUND(99,770,0)
1150 CALL SOUND(999,880,9) :: CALL SCREEN(4) :: SC1=SC1+1000 :: FS=FS+1 :: CALL FROGO(1,FS+2)
1160 CALL DELSPRITE(#1) :: CALL VCHAR(24,FS+3,112) :: CALL VCHAR(24,4,96) :: RETURN
1170 !//SONG//
1180 DATA 261,250,349,250,349,250,391,250,391,250,440,375,466,125,523,250,466,250,440,250,440,250
1190 DATA 391,250,391,250,349,500
1200 DATA 261,250,349,250,349,250,391,250,391,250,440,375,466,125,523,250,466,250,440,250,440,250
1210 DATA 391,250,391,250,349,500
1220 DATA 523,125,466,125,440,250,440,250,440,250,466,125,440,125,391,250,391,250,391,250
1230 DATA 523,125,466,125,440,250,440,250,440,250,466,125,440,125,391,250,391,250,391,250
1240 DATA 523,250,440,250,349,250,391,250,391,250,349,375,44733,1
1250 !/SPLASH/
1260 DATA 0000000001020204050201000000000000000000008040A02040C
1270 DATA 00010608090A1214142219040300000000008040209048282848C810E
1280 DATA 070811002044081190A0004844300906C02010C834128A449A2202860808D
1290 DATA 10609000A00028108000000040904026D00212410C0A0204002000060002142
1300 !/BLOOD/
1310 DATA 000000091F1F0F07071F09000000000000000080C0E0E0E0E0C0808
1320 DATA 000010392F1F0F040F1F1B01010000000000008080F0F8E8F0E08080C
1330 DATA 000020D97F7F331F1F1F7F351B0100000000C0E0A0F8FEF6FEECE0A0C0E0C
1340 !/BLAH/
1350 DATA 20,19,182,85,142,245,155,41,251,82,201,56,30,70,78,68,197,155,183,177,201
1360 !/CROAK/
1370 DATA 22,21,40,83,141,70,98,90,82,28,230,237,117,31,242,168,39,0,1,196,226,34,1
1380 !/SUBPROGRAMS/
1390 SUB SONG(X) :: RESTORE
1400 FOR I=1 TO X :: READ A,B :: CALL SOUND(B,A,0) :: NEXT I :: SUBEND
1410 SUB SQUISH(FS,B$) :: CALL SCREEN(7) :: CALL POSITION(#1,A,B) :: CALL SPRITE(#28,92,7,A-4,B-4)
1420 CALL SCREEN(4) :: FOR I=0 TO 30 :: CALL SOUND(-500,150,I,-7,I) :: NEXT I :: RESTORE 1310 :: FS=FS-1
1430 FOR I=1 TO 3 :: READ A$ :: CALL CHAR(92,A$) :: CALL SAY(,B$) :: NEXT I :: FOR I=1 TO 300 :: NEXT I :: CALL DELSPRITE(#1,#28)
1440 RESTORE 1310 :: READ A$ :: CALL CHAR(92,A$) :: SUBEND
1450 SUB DROWN(FS) :: CALL SOUND(-4000,-6,20) :: CALL POSITION(#1,X,Y) :: CALL SPRITE(#1,108,8,X-4,Y) :: RESTORE 1260
1460 FOR I=1 TO 4 :: CALL SOUND(-4000,-5,I*5) :: READ A$ :: CALL CHAR(108,A$) :: NEXT I
1470 CALL DELSPRITE(#1) :: FS=FS-1 :: SUBEND
1480 SUB TIMEEND :: CALL MOTION(#25,0,0)
1490 FOR I=2 TO 6 :: FOR A=2 TO 16 :: CALL COLOR(#A,I) :: NEXT A :: NEXT I
1500 CALL MOTION(#1,0,0) :: SUBEND
1510 SUB OVER(SC,N$(),N()) :: CALL DELSPRITE(ALL)
1520 IF SC<=N(2)THEN 1550 ELSE IF SC<=N(1)THEN X=2 :: N(X)=SC ELSE N(2)=N(1) :: N$(2)=N$(1) :: IF SC<=N(0)THEN X=1 :: N(X)=SC ELSE X=0 :: N(1)=N(X) :: N$(1)=N$(X) :: N(X)=SC
1530 CALL SONG(55) :: FOR I=3 TO 8 :: CALL COLOR(I,2,16) :: NEXT I
1540 CALL SCREEN(16) :: DISPLAY AT(8,10):"YOU DID IT!": :"  YOU ARE ONE OF THE BEST!": :"YOUR HONORABLE NAME;" :: ACCEPT AT(12,21):N$(X)
1550 FOR I=3 TO 8 :: CALL COLOR(I,2,6) :: NEXT I
1560 DISPLAY AT(3,9):"HIGH SCORES" :: FOR I=0 TO 2 :: DISPLAY AT(I+5,7):N$(I);TAB(16);N(I) :: NEXT I
1570 DISPLAY AT(8,1): :TAB(10);"GAME OVER": :"     PRESS REDO OR BACK": : :: DISPLAY AT(15,10)SIZE(LEN(STR$(SC))+6):"SCORE:"&STR$(SC)
1580 CALL KEY(0,K,ST) :: IF K=15 THEN CALL CLEAR :: STOP ELSE IF K<>6 THEN 1580
1590 CALL CLEAR :: CALL SCREEN(4) :: FOR K=3 TO 8 :: CALL COLOR(K,2,4) :: NEXT K :: CALL COLOR(1,2,6) :: SUBEND
1600 SUB FROGO(A,B) :: CALL VCHAR(24,A+1,96) :: CALL SPRITE(#1,116,13,185,A/8+1)
1610 FOR I=A TO B STEP .5 :: CALL SOUND(-99,690,19) :: CALL LOCATE(#1,185,I*8+1) :: CALL SOUND(-99,220,19) :: NEXT I
1620 SUBEND
1630 SUB DING(A,B)
1640 FOR I=A TO A+B STEP 10 :: CALL SOUND(1,-1,19) :: DISPLAY AT(15,16)SIZE(LEN(STR$(I))):STR$(I) :: NEXT I
1650 A=A+B :: SUBEND
1660 SUB SPCH(A$,S$) :: RESTORE 1350 :: S$,A$=CHR$(96)&CHR$(0) :: READ A :: FOR I=1 TO A :: READ B :: S$=S$&CHR$(B) :: NEXT I :: READ A :: FOR I=1 TO A :: READ B :: A$=A$&CHR$(B) :: NEXT I :: SUBEND

  • Like 3
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...