pixelpedant Posted May 21, 2020 Share Posted May 21, 2020 I've kind of always wished the 9918 palette had fewer similar colours, more diversity, and more desaturated or darker colours. Does it really need three shades of green and three reds? Couldn't we wedge a brown and a darker grey in there somewhere? But you know, I think I've started to look at it in a new light as I take a closer look at some of the beloved games for the TI-99, and consider just how often I actually really like the subtle, muted contrast between relatively vivid but similar shades. So for example, get rid of these "redundant" shades, and you don't get the more muted contrast in Arcturus, here, which gives the appealing impression that some surfaces are "shadowed": Or the green on green in Fathom, here: I'm not a very artistic person. I don't think about palettes and colour combinations much, outside computing. But I think I might have come around, on the merits of multiple fairly similar, relatively vivid shades, on this palette. 4 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted May 22, 2020 Share Posted May 22, 2020 You know, I always thought Arcturus (and a couple of other games) would be more enjoyable and playable updated to the full F18A palette, but I've already made enough suggestions over the years here so I've kept it to myself until now. I only mention it because it's been brought up in this thread. Quote Link to comment Share on other sites More sharing options...
pixelpedant Posted May 22, 2020 Author Share Posted May 22, 2020 (edited) I really do think that Arcturus shows off the merit of the palette precisely as it exists better than any other game on the system. Because it specifically exploits the fact that the TI-99/4A palette has Three Blues: Three Reds: And Three Greens: To create that sense of perspective and light and shadow, which wouldn't be possible in quite the same way on a palette featuring 13 more regularly distributed and/or more naturalistic hues (excluding white, black and transparent). I'm not saying this is the be all and end all of 15 colour graphics. But I do want to recognise that having more vivid and closely grouped hues actually does have functional utility, as it does here. Edited May 22, 2020 by pixelpedant 2 Quote Link to comment Share on other sites More sharing options...
Ed in SoDak Posted May 22, 2020 Share Posted May 22, 2020 Add in the Arcturus programmer's artful eye! So, I had to try Fathom, which I happen to have in my bin pile. Too bad they didn't continue the subtle color scheme beyond the title screen. Aside from the colored sprites, game play was pretty much basic single-hue blue and green. -Ed Quote Link to comment Share on other sites More sharing options...
pixelpedant Posted May 22, 2020 Author Share Posted May 22, 2020 Slymoids is another game that does green-on-green and blue-on-blue in game. And dithering, even! Quote Link to comment Share on other sites More sharing options...
+adamantyr Posted May 23, 2020 Share Posted May 23, 2020 I agree. The 9918 palette does have some excellent gradient shades that work very well! I've tried to use a mix of colors with a lot of my artwork in the CRPG and it's worked pretty well. I discovered, for example, that light red and magenta actually compliment each other well. Magenta is one of the few oddball colors that tends to stick out against the others, so it's a good one to use for contrast. Something else I found out is that the grey is really more "off white" than a true mid-tone grey. If you want a darker tone, use light blue instead. Quote Link to comment Share on other sites More sharing options...
atrax27407 Posted May 23, 2020 Share Posted May 23, 2020 (edited) There is an XB program to create "pastel" colors by alternating pixels of different colors. I have it in my library somewhere - I just have to find it. I couldn't find the program in my library. However, I did find the original article and listing. It appears in the January 1997 issue of MICROpendium on page 38. It purports to create 120 shades of color. Enjoyi Edited May 23, 2020 by atrax27407 1 Quote Link to comment Share on other sites More sharing options...
Ed in SoDak Posted May 23, 2020 Share Posted May 23, 2020 Found the disk on WHT. It's named COLORBLEND. Interesting little program! 970102.dsk 2 Quote Link to comment Share on other sites More sharing options...
+Schmitzi Posted May 24, 2020 Share Posted May 24, 2020 18 hours ago, atrax27407 said: There is an XB program to create "pastel" colors by alternating pixels of different colors. I have it in my library somewhere - I just have to find it. I couldn't find the program in my library. However, I did find the original article and listing. It appears in the January 1997 issue of MICROpendium on page 38. It purports to create 120 shades of color. Enjoyi or this one ? Spoiler 100 ! VASARELY - L. Dorais / Ottawa UG / March-May 1991 110 ! 120 CALL CLEAR :: CALL S(12):: DK$="1" :: DG$="0123456789" 130 GOTO 150 :: A$,AC,AS,B$,C,C$,C1,C2,C3,C4,CC,CH,F$,K,OCH,PN,R,R1,R2,RC,S,V 140 CALL KEY :: CALL CHAR :: CALL HCHAR :: CALL VCHAR :: CALL GCHAR :: CALL SPRITE :: CALL PATTERN :: CALL LOCATE :: !@P- 150 CALL CHAR(136,"007E424242427E000000001818000000FFC3A59999A5C3FF")! pen 160 DISPLAY AT(1,1):"DRAW WITH 3 COLORS VASARELYactive keys are --------": :"SCREEN 1: PICK COLOR HARMONY" 170 DISPLAY AT(5,1):RPT$("-",28):" 1-blue 4-black/white/grey 2-red 5-any three colors 3-green 6-start drawing" 180 DISPLAY AT(10,1):"SCREEN 2: DRAW PICTURE":RPT$("-",22):" < >: pick/draw toggle":" left: PICK from 48 chars" 190 DISPLAY AT(14,1):" right: DRAW on 20x20 grid": :" PICK EX> move up-down":" MODE SD> switch left/right" 200 DISPLAY AT(19,1):" DRAW EXSDWRZC> move cursor MODE P> pen up " &CHR$(136)&" / down " &CHR$(137):" O> erase " &CHR$(138)&" (pen up)" 210 DISPLAY AT(23,1):" BOTH K> save L> load":" MODES N> new Q> quit" 220 ACCEPT AT(24,28):A$ :: CALL CLEAR ! press ENTER to start 230 ! init 240 CALL CHAR(42,"FF818181818181FF",43,"0",58,"08183878381808",59,"10181C1E1C181")! grid/arrows 250 CALL CHAR(113,"0000007C4078407C",35,"0044444428281010003844447C4444440038444038044438",123,"0000000000003030")! redefs "eVAS." 260 CALL CHAR(117,"0000004464544C440000007C4444447C",122,"000000404040407C")! redefs "nol" 270 CALL CHAR(124,"00000078242424780000002428302824",120,"0000003C4040403C")! redefs "dkc" 280 A$="FFFFFFFFFFFFFFFFFF818181818181FFFFFFC3C3C3C3FFFFFFFFFFE7E7FFFFFF" :: CALL CHAR(64,A$,80,A$,96,A$)! squares 290 A$="0000000000000000007E7E7E7E7E7E0000003C3C3C3C00000000001818000000" :: CALL CHAR(68,A$,84,A$,100,A$)! inv. squares 300 A$="FFFEFCF8F0E0C08080C0E0F0F8FCFEFFFFFFE7C3C3E7FFFF3C7EFFFFFFFF7E3C" :: CALL CHAR(72,A$,88,A$,104,A$)! diag/circles 310 A$="000103070F1F3F7F7F3F1F0F070301000000183C3C180000C3810000000081C3" :: CALL CHAR(76,A$,92,A$,108,A$)! inv. diag/circles 320 A$="AA55AA55AA55AA55" :: CALL CHAR(68,A$,84,A$,100,A$)! pastels 330 GOTO 430 340 ! color choice 350 C=1 :: FOR R=1 TO 24 :: CALL HCHAR(R,2,C+63):: CALL HCHAR(R,4,C+67):: IF R/4=INT(R/4)THEN C=C+4 360 C=C+1 :: NEXT R ! put the 48 chars on screen 370 A$="FFFFFFFFFFFFFFFF" :: CALL CHAR(40,A$,41,"0",128,A$,129,"0") 380 CALL COLOR(0,16,1,1,16,1,2,6,9,3,16,1,4,16,1,11,16,1,12,16,1,13,3,15) 390 CALL S(2):: CALL D(9,"( ) " &CHR$(128)&" " &CHR$(129)&" $3 ;") 400 CALL D(11,"1 2 3 4 5 6"):: CALL D(13," prqss") 410 CALL KEY(0,K,S):: IF S=0 OR K<49 OR K>54 THEN 410 ELSE CALL D(22,""):: CALL D(24,""):: IF K=54 THEN 510 420 ON K-48 GOTO 430,440,450,460,470 430 C1=5 :: C2=6 :: C3=8 :: GOTO 490 ! blue 440 C1=7 :: C2=9 :: C3=10 :: GOTO 490 ! red 450 C1=3 :: C2=4 :: C3=13 :: GOTO 490 ! green 460 C1=2 :: C2=16 :: C3=15 :: GOTO 490 ! grey 470 CALL D(22,"qutqr 3 xvzvr uv{"):: CALL D(24,"x1> x2> x3>")! enter any three colors 480 CALL A(12,C1,DG$):: CALL A(19,C2,DG$):: CALL A(26,C3,DG$) 490 GOSUB 1030 :: IF R THEN 410 ELSE 350 500 ! painting 510 CALL DS(9,13,""):: IF C1=2 THEN CALL S(13) 520 A$=RPT$("*",20):: CALL DS(2,21,A$):: CALL COLOR(2,15,16)! grid 530 CALL HCHAR(11,19,43,2):: CALL HCHAR(12,19,43,2)! define centre 540 R=2 :: C=10 :: RC=1 :: CC=3 :: AC,AS=58 :: CH=64 :: PN=0 :: CALL SPRITE(#1,136,14,9,73) 550 CALL HCHAR(RC,CC,AC):: CALL HCHAR(9,7,CH):: CALL HCHAR(12,7,AS):: CALL HCHAR(14,7,12*AS-584) 560 CALL KEY(0,K,S):: IF S=0 THEN 560 ELSE A$=CHR$(K):: S=POS("NPOKL,.Q",A$,1)+1 570 ON S GOTO 660,580,610,610,860,860,650,650,1010 580 CALL D(24,"uqw? 1> yqs 2> uv 1"):: CALL A(27,S,"12"):: IF S=2 THEN CALL D(24,""):: GOTO 560 ! new screen? 590 CALL D(24,"uqw xvzvrs? 1>y 2>u 1"):: CALL A(28,S,"12"):: CALL D(24,"")! new colors? 600 IF S=2 THEN CALL HCHAR(RC,CC,32):: GOTO 520 ELSE CALL LOCATE(#1,194,1):: CALL DS(2,21,""):: CALL VCHAR(9,7,32,6):: GOTO 380 610 IF R>21 OR C>29 OR AS=58 THEN 560 :: IF K=79 THEN 630 ! pen check 620 IF CH=42 THEN 560 :: IF PN=1 THEN PN=0 :: GOTO 640 ELSE PN=1 :: GOTO 640 ! pen toggle 630 IF PN<2 THEN PN=2 :: OCH=CH :: CH=42 ELSE PN=0 :: CH=OCH ! erase toggle 640 CALL PATTERN(#1,136+PN):: GOTO 830 650 GOSUB 1040 :: AS=K/2+36 :: CALL HCHAR(12,7,AS):: CALL HCHAR(14,7,28+12*S):: GOTO 560 ! pick/draw toggle 660 IF AS=59 THEN 720 ELSE CALL HCHAR(RC,CC,32)! pick mode 670 IF K=68 THEN AC=59 ELSE IF K=83 THEN AC=58 680 IF K=69 THEN RC=RC-1 :: IF RC<1 THEN RC=1 690 IF K=88 THEN RC=RC+1 :: IF RC>24 THEN RC=24 700 CALL HCHAR(RC,3,AC):: CALL GCHAR(RC,2*AC-114,CH):: CALL HCHAR(9,7,CH):: GOTO 560 ! put picked char on screen 710 ! draw mode 720 ON POS("DSXEWRZC",A$,1)+1 GOTO 560,730,740,750,760,770,780,790,800 730 C=C+1 :: GOTO 810 ! D> right 740 C=C-1 :: GOTO 810 ! S> left 750 R=R+1 :: GOTO 810 ! X> down 760 R=R-1 :: GOTO 810 ! E> up 770 R=R-1 :: GOTO 740 ! W> up>left 780 R=R-1 :: GOTO 730 ! R> up>right 790 R=R+1 :: GOTO 740 ! Z> down>left 800 R=R+1 :: GOTO 730 ! C> down>right 810 S=32+3*(PN>0):: IF C>S THEN C=S ELSE IF C<10 THEN C=10 820 S=24+3*(PN>0):: IF R>S THEN R=S ELSE IF R<2 THEN R=2 830 CALL LOCATE(#1,8*R-7,8*C-7):: IF PN>0 THEN CALL HCHAR(R,C,CH) 840 IF R2<>22 THEN 560 ELSE R2=0 :: GOTO 550 ! R2=22 means coming fm load 850 ! keep(save)/load picture 860 GOSUB 1040 :: IF F$<>"" THEN 880 870 CALL D(24,"|s} 1"):: ACCEPT AT(24,12)SIZE(-1)VALIDATE("1234")BEEP:DK$ :: F$="DSK" &DK$&".VASA" 880 CALL D(24,"#$%$ 0>qsx"):: CALL A(12,K,DG$)! "VASA. 0>esc" 890 DISPLAY AT(24,17):"" :: IF K=0 THEN CALL D(24,""):: GOTO 560 900 F$=SEG$(F$,1,9)&STR$(K):: OPEN #1:F$,INTERNAL,FIXED 201 910 IF A$="L" THEN 960 ELSE PRINT #1:R,C,RC,CC,CH,PN,AC,AS,C1,C2,C3 920 A$,B$="" :: FOR R1=2 TO 21 :: CALL LOCATE(#1,8*R1-7,65):: FOR C4=10 TO 29 930 CALL GCHAR(R1,C4,K):: IF R1<12 THEN A$=A$&CHR$(K)ELSE B$=B$&CHR$(K) 940 NEXT C4 :: NEXT R1 :: PRINT #1:A$ :: PRINT #1:B$ 950 CLOSE #1 :: A$,B$="" :: GOTO 830 960 CALL HCHAR(RC,CC,32):: INPUT #1:R,C,RC,CC,CH,PN,AC,AS,C1,C2,C3 970 GOSUB 1030 :: IF C1=2 THEN CALL S(13)ELSE CALL S(2) 980 INPUT #1:A$ :: INPUT #1:B$ :: CLOSE #1 ! load 990 FOR R2=2 TO 21 :: IF R2<12 THEN C$=A$ :: R1=2 ELSE C$=B$ :: R1=12 1000 DISPLAY AT(R2,8)SIZE(20):SEG$(C$,20*(R2-R1)+1,20):: NEXT R2 :: A$,B$="" :: GOTO 640 1010 END 1020 !@P+ sub and user-def subs 1030 CALL COLOR(5,C1,C2,6,C1,C2,7,C2,C3,8,C2,C3,9,C3,C1,10,C3,C1):: RETURN 1040 PN=0 :: CALL PATTERN(#1,136):: RETURN ! pen up 1050 SUB D(R,A$):: DISPLAY AT(R,8):A$ :: SUBEND 1060 SUB A(C,V,V$):: ACCEPT AT(24,C)SIZE(-2)VALIDATE(V$)BEEP:V :: SUBEND 1070 SUB S(C):: CALL SCREEN(C):: SUBEND 1080 SUB DS(A,B,A$):: FOR R=A TO B :: CALL D(R,A$):: NEXT R :: SUBEND 3 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.