Back in late 2012, when the TI-84 Plus C Silver Edition color screen z80 calculator got announced, I wanted to experiment with layered text sprites, often referred to as dual-layer ASCII sprites. Games like Serenity and Metroid Pi used this technique, although the latter did not use the shifted method. In the process, I wanted to attempt making an RPG like Illusiat 6/Nemesiat, but with larger maps while being (hopefully) smaller.

I eventually got the color calculator model before pushing this RPG engine further, so only the walking engine was done and in 2014 it was posted in Omnimaga downloads section. I have recently uploaded it to TI-Planet, Cemetech and Ticalc.org as well.

https://tiplanet.org/forum/archives_voir.php?id=2790407

https://www.cemetech.net/downloads/files/2178/x2410

https://www.ticalc.org/archives/files/fileinfo/476/47676.html

Almost 9 years later, it's being revived as Darkblasters! It will feature four dungeons, a town and a forest, some magic spells and items, but no shop and in-game currency. There will be no experience points, so your max HP/MP will go up every battle, along with your skill points. Magic will get stronger the more you use it. You'll also not be able to enter buildings in the town, but you will be able to talk to NPC's.

My goals:

-Keep the game and its RAM usage as small as possible

-Hopefully keep it in one file, unlike my entire RPG calculatography.

-Make sure that the speed remains fast enough for 15 MHz calcs. 83+ will be playable, but not the most optimal experience.

-Keep compatibility with the TI-82 Advanced and TI-84 Plus-T models. (This is why the game remains in pure TI-BASIC)

Screenshot showing some of the event sprites that you will be able to interact with. Collision might be tricky for some of those, though… (the game detects any sprite where the top-left-most pixel is turned ON as a solid object)

https://i.imgur.com/F0hSnZU.gif

Battles are currently disabled, since they just endlessly play one of the magic animation.

EDIT: New screenshots:

]]>Here is the optimized code:

`StoreGDB 1 ClrDraw AxesOff ⁻10→Ymin 10→Ymax ⁻10→Xmin 10→Xmax 4→H {0,0,0,0→L₁ Horizontal 7.5 Horizontal ⁻8 Text(1,0,"ABACUS- TATERTOMORROW Text(57,0,"EXIT COUNT: Line(⁻6,Ymin,⁻6,⁻8.5 For(A,1,4) For(B,20,80) Pxl-On(12A+3,B End For(B,1,9) For(C,1,5) Pxl-On(12A+C,20+2B End End End Lbl A Text(12H,8,"> Text(57,45,L₁(1),L₁(2),L₁(3),L₁(4 0→A While not(A getKey→A End Text(12H,8," " If A=11 Goto D If A=25 H-1→H If A=34 H+1→H If not(H 4→H If H>4 1→H If A=26 and 9>L₁(H Then 1+L₁(H→L₁(H If 0≠L₁(H Then For(A,12H-2,12H+2) If 12H≠A Then Pxl-Off(A+3,40-L₁(H)2 Pxl-On(A+3,80-L₁(H)2 End End End End If A=24 and 0≠L₁(H Then ⁻1+L₁(H→L₁(H For(A,12H-2,12H+2) If 12H≠A Then Pxl-On(A+3,40-L₁(H)2-2 Pxl-Off(A+3,80-L₁(H)2-2 End End End Goto A Lbl D ClrDraw RecallGDB 1 DelVar GDB1"`

`{2→L₁ 3→J Prompt X Repeat X=dim(L₁ If 1=max(gcd(J,L₁:augment(L₁,{J→L₁ J+2→J End`

it's size is 56 bytes according to my TI-83 ]]>

Well, I know this is insanely long, but until I can figure out another way to share this, here is the source code for my long but well-furnished Hangman game for the Ti-83 Plus, Ti-84 Plus, and Ti-84 Plus SE.

`ZoomSto AxesOff ClrDraw prgmPPGLOGO For(X,1,100) Pt-On(56,31) End ClrDraw Line(7,2,11,2) Line(12,3,12,4) Line(8,3,8,7) Line(9,5,11,5) Line(7,8,9,8) Line(13,8,15,8) Line(14,7,14,6) Pxl-On(4,14) Line(17,4,17,5) Line(19,4,19,5) Line(19,7,19,8) Line(17,8,17,7) Pxl-On(6,18) Line(23,8,22,8) Line(21,7,21,5) Line(22,6,24,6) Pxl-On(5,24) Line(23,4,22,4) Line(26,8,28,8) Line(27,7,27,2) Pxl-On(3,26) Line(31,8,33,8) Line(32,7,32,3) Line(31,2,35,2) Line(36,3,36,4) Line(35,5,33,5) Line(37,8,38,8) Line(38,7,38,2) Pxl-On(2,37) Pxl-On(5,39) Line(40,6,40,8) Line(42,10,43,10) Line(44,9,44,4) Pxl-On(8,43) Line(42,7,42,5) Pxl-On(4,41) Line(48,4,47,4) Pxl-On(5,46) Line(46,6,47,6) Pxl-On(7,48) Line(47,8,46,8) Line(50,8,52,8) Line(51,7,51,6) Pxl-On(4,51) Line(56,8,55,8) Line(54,7,54,5) Line(55,4,56,4) Pxl-On(5,56) Pxl-On(7,56) Text(3,58,"S") Line(62,2,68,2) Line(63,3,64,3) Pxl-On(3,68) Line(63,4,63,7) Line(64,8,67,8) Line(68,6,68,10) Pxl-On(10,67) Line(69,5,66,5) Pxl-On(6,66) Line(71,5,71,7) Line(72,8,73,8) Line(73,7,73,5) Line(73,4,72,4) Line(75,4,75,8) Pxl-On(5,76) Line(77,6,77,8) Pxl-On(5,78) Line(79,4,79,8) Line(82,4,83,4) Pxl-On(5,84) Line(84,6,82,6) Line(81,5,81,7) Line(82,8,83,8) Text(3,86,"S") Line(36,12,36,15) Line(37,14,38,14) Pxl-On(13,38) Line(38,12,37,12) Line(40,12,40,15) Line(41,12,42,12) Pxl-On(13,42) Pxl-On(14,41) Pxl-On(15,42) Line(44,12,44,15) Line(45,15,45,14) Pxl-On(12,45) Line(47,12,48,12) Pxl-On(13,47) Pxl-On(14,48) Line(48,15,47,15) Line(51,12,50,12) Line(50,13,50,15) Line(51,15,51,14) Line(53,12,53,15) Line(54,13,54,14) Line(55,13,55,15) Line(56,12,58,12) Line(57,13,57,15) Line(60,12,61,12) Pxl-On(13,60) Pxl-On(14,61) Line(61,15,60,15) Line(4,18,4,36) Line(5,37,5,17) Line(6,17,6,37) Line(7,36,7,18) Line(8,26,8,27) Line(9,26,9,27) Line(10,18,10,36) Line(11,37,11,17) Line(12,17,12,37) Line(13,36,13,18) Line(16,23,16,36) Line(17,37,17,21) Line(18,37,18,19) Line(19,18,19,36) Line(20,17,20,20) Line(21,17,21,20) Line(21,26,21,27) Line(20,27,20,26) Line(22,18,22,36) Line(23,37,23,19) Line(24,21,24,37) Line(25,36,25,23) Line(28,18,28,36) Line(29,37,29,17) Line(30,17,30,37) Line(31,36,31,18) Line(32,25,32,27) Line(33,28,33,26) Line(34,36,34,18) Line(35,17,35,37) Line(36,37,36,17) Line(37,18,37,36) Line(40,36,40,18) Line(41,17,41,37) Line(42,37,42,17) Line(43,17,43,37) Line(44,37,44,36) Line(44,19,44,17) Line(45,17,45,20) Line(45,29,45,30) Line(45,36,45,37) Line(46,37,46,35) Line(46,31,46,28) Line(46,20,46,17) Line(47,17,47,21) Line(47,28,47,37) Line(48,37,48,28) Line(48,21,48,17) Line(49,18,49,20) Line(49,29,49,36) Line(52,36,52,18) Line(53,17,53,37) Line(54,37,54,17) Line(55,18,55,36) Line(56,25,56,19) Line(57,20,57,26) Line(58,36,58,21) Line(59,22,59,37) Line(60,37,60,22) Line(61,21,61,36) Line(62,26,62,20) Line(63,19,63,25) Line(64,18,64,36) Line(65,37,65,17) Line(66,17,66,37) Line(67,36,67,18) Line(70,23,70,36) Line(71,37,71,21) Line(72,19,72,37) Line(73,36,73,18) Line(74,17,74,20) Line(75,20,75,17) Line(74,26,74,27) Line(75,27,75,26) Line(76,18,76,36) Line(77,37,77,19) Line(78,21,78,37) Line(79,36,79,23) Line(82,18,82,36) Line(83,37,83,17) Line(84,17,84,37) Line(85,36,85,18) Line(86,25,86,27) Line(87,28,87,26) Line(88,18,88,36) Line(89,37,89,17) Line(90,17,90,37) Line(91,36,91,18) Text(39,23,"3-LETTER WORDS") Text(57,81,"v6.0") Repeat G≠0 For(A,1,50) randInt(1,2) End getKey→G Text(51,27,"[Press Enter]") For(A,1,50) randInt(1,2) End getKey→G Text(51,27," " End Lbl M Menu("Hangman Menu ","Play Game",P,"Help",H,"Quit",Q) Lbl H ClrDraw Text(0,30,"Help Menu" Text(6,0,"---------------------------------------------------" Text(10,0,"To begin the game, press any") Text(16,0,"letter key.") Text(24,0,"To quit the game at any time,") Text(30,0,"press the [CLEAR] key. Text(38,0,"To return to the menu, press") Text(44,0,"the [ENTER] key.") Text(51,0,"Support:") Text(57,0,"Ti.PPG.help@Gmail.com") Pause Goto M Lbl P Lbl A ClrHome Output(1,1," A B Output(2,1,"C D E Output(3,1,"FGHIJ Output(4,1,"K L M Output(5,1,"NOPQR Output(6,1,"S T U Output(7,1," V W Output(8,1,"X Y Z Output(1,6,"] Output(2,6,"] Output(3,6,"] Output(4,6,"] Output(5,6,"] --- Output(6,6,"] Output(7,6,"] Output(8,6,"] randInt(1,38)→ DelVar A DelVar B DelVar C DelVar D DelVar E DelVar F DelVar G DelVar H DelVar I DelVar J DelVar K DelVar L DelVar M DelVar N DelVar O DelVar P DelVar Q DelVar R DelVar S DelVar T DelVar U DelVar V DelVar W DelVar X DelVar Y DelVar Z If =1 Goto 1 If =2 Goto 2 If =3 Goto 3 If =4 Goto 4 If =5 Goto 5 If =6 Goto 6 If =7 Goto 7 If =8 Goto 8 If =9 Goto 9 If =10 Goto 10 If =11 Goto 11 If =12 Goto 12 If =13 Goto 13 If =14 Goto 14 If =15 Goto 15 If =16 Goto 16 If =17 Goto 17 If =18 Goto 18 If =19 Goto 19 If =20 Goto 20 If =21 Goto 21 If =22 Goto 22 If =23 Goto 23 If =24 Goto 24 If =25 Goto 25 If =26 Goto 26 If =27 Goto 27 If =28 Goto 28 If =29 Goto 29 If =30 Goto 30 If =31 Goto 31 If =32 Goto 32 If =33 Goto 33 If =34 Goto 34 If =35 Goto 35 If =36 Goto 36 If =37 Goto 37 If =38 Goto 38 Lbl 1 1→C 2→A 3→T 0→ Goto 99 Lbl 2 1→B 2→A 3→T 0→ Goto 99 Lbl 3 1→R 2→A 3→T 0→ Goto 99 Lbl 4 1→E 2→M 3→U 0→ Goto 99 Lbl 5 1→D 2→O 3→G 0→ Goto 99 Lbl 6 1→A 2→P 3→E 0→ Goto 99 Lbl 7 4→E 3→L 0→ Goto 99 Lbl 8 1→H 2→E 3→N 0→ Goto 99 Lbl 9 1→A 2→S 3→P 0→ Goto 99 Lbl 10 1→P 2→I 3→G 0→ Goto 99 Lbl 11 1→H 2→O 3→G 0→ Goto 99 Lbl 12 1→E 2→L 3→K 0→ Goto 99 Lbl 13 1→C 2→U 3→B 0→ Goto 99 Lbl 14 1→D 2→O 3→E 0→ Goto 99 Lbl 15 1→K 2→I 3→D 0→ Goto 99 Lbl 16 1→R 2→A 3→M 0→ Goto 99 Lbl 17 1→Y 2→A 3→K 0→ Goto 99 Lbl 18 1→A 2→G 3→E 0→ Goto 99 Lbl 19 1→B 2→A 3→G 0→ Goto 99 Lbl 20 1→A 2→S 3→H 0→ Goto 99 Lbl 21 1→B 2→A 3→Y 0→ Goto 99 Lbl 22 1→B 2→O 3→T 0→ Goto 99 Lbl 23 1→B 2→U 3→G 0→ Goto 99 Lbl 24 1→C 2→A 3→B 0→ Goto 99 Lbl 25 1→B 2→E 3→D 0→ Goto 99 Lbl 26 1→C 2→O 3→P 0→ Goto 99 Lbl 27 1→D 2→A 3→Y 0→ Goto 99 Lbl 28 1→C 2→A 3→P 0→ Goto 99 Lbl 29 1→C 2→O 3→D 0→ Goto 99 Lbl 30 1→D 2→E 3→N 0→ Goto 99 Lbl 31 1→D 2→E 3→W 0→ Goto 99 Lbl 32 1→E 2→A 3→R 0→ Goto 99 Lbl 33 1→E 2→L 3→M 0→ Goto 99 Lbl 34 1→F 2→A 3→N 0→ Goto 99 Lbl 35 1→F 2→I 3→B 0→ Goto 99 Lbl 36 1→F 2→I 3→G 0→ Goto 99 Lbl 37 1→F 2→R 3→Y 0→ Goto 99 Lbl 38 1→G 2→A 3→S 0→ Goto 99 Lbl 99 Repeat θ≠0 getKey→θ End If θ=45 Then Lbl Q ClrHome ClrDraw ZoomRcl AxesOn ClrHome Stop End If θ=41 and A=1 Then Output(5,8,"A Output(1,2," Z+1→Z End If θ=41 and A=2 Then Z+1→Z Output(5,9,"A Output(1,2," End If θ=41 and A=3 Then Z+1→Z Output(5,10,"A Output(1,2," End If θ=41 and A=0 Then Output(1,2," +1→ End If θ=42 and B=1 Then Output(5,8,"B Output(1,4," Z+1→Z End If θ=42 and B=2 Then Output(5,9,"B Output(1,4," Z+1→Z End If θ=42 and B=3 Then Output(5,10,"B Output(1,4," Z+1→Z End If θ=42 and B=0 Then Output(1,4," " +1→ End If θ=43 and C=1 Then Output(5,8,"C Output(2,1," Z+1→Z End If θ=43 and C=2 Then Output(5,9,"C Output(2,1," Z+1→Z End If θ=43 and C=3 Then Output(5,10,"C Output(2,1," Z+1→Z End If θ=43 and C=0 Then Output(2,1," +1→ End If θ=51 and D=1 Then Output(5,8,"D Output(2,3," Z+1→Z End If θ=51 and D=2 Then Output(5,9,"D Output(2,3," Z+1→Z End If θ=51 and D=3 Then Output(5,10,"D Output(2,3," Z+1→Z End If θ=51 and D=0 Then Output(2,3," +1→ End If θ=52 and E=1 Then Output(5,8,"E Output(2,5," Z+1→Z End If θ=52 and E=2 Then Output(5,9,"E Output(2,5," Z+1→Z End If θ=52 and E=3 Then Output(5,10,"E Output(2,5," Z+1→Z End If θ=52 and E=4 Then Output(5,8,"EE Output(2,5," Z+2→Z End If θ=52 and E=0 Then Output(2,5," +1→ End If θ=53 and F=1 Then Output(5,8,"F Output(3,1," Z+1→Z End If θ=53 and F=2 Then Output(5,9,"F Output(3,1," Z+1→Z End If θ=53 and F=3 Then Output(5,10,"F Output(3,1," Z+1→Z End If θ=53 and F=0 Then Output(3,1," +1→ End If θ=54 and G=1 Then Output(5,8,"G Output(3,2," Z+1→Z End If θ=54 and G=2 Then Output(5,9,"G Output(3,2," Z+1→Z End If θ=54 and G=3 Then Output(5,10,"G Output(3,2," Z+1→Z End If θ=54 and G=0 Then Output(3,2," +1→ End If θ=55 and H=1 Then Output(5,8,"H Output(3,3," Z+1→Z End If θ=55 and H=2 Then Output(5,9,"H Output(3,3," Z+1→Z End If θ=55 and H=3 Then Output(5,10,"H Output(3,3," Z+1→Z End If θ=55 and H=0 Then Output(3,3," +1→ End If θ=61 and I=1 Then Output(5,8,"I Output(3,4," Z+1→Z End If θ=61 and I=2 Then Output(5,9,"I Output(3,4," Z+1→Z End If θ=61 and I=3 Then Output(5,10,"I Output(3,4," Z+1→Z End If θ=61 and I=0 Then Output(3,4," +1→ End If θ=62 and J=1 Then Output(5,8,"J Output(3,5," Z+1→Z End If θ=62 and J=2 Then Output(5,9,"J Output(3,5," Z+1→Z End If θ=62 and J=3 Then Output(5,10,"J Output(3,5," Z+1→Z End If θ=62 and J=0 Then Output(3,5," +1→ End If θ=63 and K=1 Then Output(5,8,"K Output(4,1," Z+1→Z End If θ=63 and K=2 Then Output(5,9,"K Output(4,1," Z+1→Z End If θ=63 and K=3 Then Output(5,10,"K Output(4,1," Z+1→Z End If θ=63 and K=0 Then Output(4,1," +1→ End If θ=64 and L=1 Then Output(5,8,"L Output(4,3," Z+1→Z End If θ=64 and L=2 Then Output(5,9,"L Output(4,3," Z+1→Z End If θ=64 and L=3 Then Output(5,10,"L Output(4,3," Z+1→Z End If θ=64 and L=0 Then Output(4,3," +1→ End If θ=65 and M=1 Then Output(5,8,"M Output(4,5," Z+1→Z End If θ=65 and M=2 Then Output(5,9,"M Output(4,5," Z+1→Z End If θ=65 and M=3 Then Output(5,10,"M Output(4,5," Z+1→Z End If θ=65 and M=0 Then Output(4,5," +1→ End If θ=71 and N=1 Then Output(5,8,"N Output(5,1," Z+1→Z End If θ=71 and N=2 Then Output(5,9,"N Output(5,1," Z+1→Z End If θ=71 and N=3 Then Output(5,10,"N Output(5,1," Z+1→Z End If θ=71 and N=0 Then Output(5,1," +1→ End If θ=72 and O=1 Then Output(5,8,"O Output(5,2," Z+1→Z End If θ=72 and O=2 Then Output(5,9,"O Output(5,2," Z+1→Z End If θ=72 and O=3 Then Output(5,10,"O Output(5,2," Z+1→Z End If θ=72 and O=0 Then Output(5,2," +1→ End If θ=73 and P=1 Then Output(5,8,"P Output(5,3," Z+1→Z End If θ=73 and P=2 Then Output(5,9,"P Output(5,3," Z+1→Z End If θ=73 and P=3 Then Output(5,10,"P Output(5,3," Z+1→Z End If θ=73 and P=0 Then Output(5,3," +1→ End If θ=74 and Q=1 Then Output(5,8,"Q Output(5,4," Z+1→Z End If θ=74 and Q=2 Then Output(5,9,"Q Output(5,4," Z+1→Z End If θ=74 and Q=3 Then Output(5,10,"Q Output(5,4," Z+1→Z End If θ=74 and Q=0 Then Output(5,4," +1→ End If θ=75 and R=1 Then Output(5,8,"R Output(5,5," Z+1→Z End If θ=75 and R=2 Then Output(5,9,"R Output(5,5," Z+1→Z End If θ=75 and R=3 Then Output(5,10,"R Output(5,5," Z+1→Z End If θ=75 and R=0 Then Output(5,5," +1→ End If θ=81 and S=1 Then Output(5,8,"S Output(6,1," Z+1→Z End If θ=81 and S=2 Then Output(5,9,"S Output(6,1," Z+1→Z End If θ=81 and S=3 Then Output(5,10,"S Output(6,1," Z+1→Z End If θ=81 and S=0 Then Output(6,1," +1→ End If θ=82 and T=1 Then Output(5,8,"T Output(6,3," Z+1→Z End If θ=82 and T=2 Then Output(5,9,"T Output(6,3," Z+1→Z End If θ=82 and T=3 Then Output(5,10,"T Output(6,3," Z+1→Z End If θ=82 and T=0 Then Output(6,3," +1→ End If θ=83 and U=1 Then Output(5,8,"U Output(6,5," Z+1→Z End If θ=83 and U=2 Then Output(5,9,"U Output(6,5," Z+1→Z End If θ=83 and U=3 Then Output(5,10,"U Output(6,5," Z+1→Z End If θ=83 and U=0 Then Output(6,5," +1→ End If θ=84 and V=1 Then Output(5,8,"V Output(7,2," Z+1→Z End If θ=84 and V=2 Then Output(5,9,"V Output(7,2," Z+1→Z End If θ=84 and V=3 Then Output(5,10,"V Output(7,2," Z+1→Z End If θ=84 and V=0 Then Output(7,2," +1→ End If θ=85 and W=1 Then Output(5,8,"W Output(7,4," Z+1→Z End If θ=85 and W=2 Then Output(5,9,"W Output(7,4," Z+1→Z End If θ=85 and W=3 Then Output(5,10,"W Output(7,4," Z+1→Z End If θ=85 and W=0 Then Output(7,4," +1→ End If θ=91 and X=1 Then Output(5,8,"X Output(8,1," Z+1→Z End If θ=91 and X=2 Then Output(5,9,"X Output(8,1," Z+1→Z End If θ=91 and X=3 Then Output(5,10,"X Output(8,1," Z+1→Z End If θ=91 and X=0 Then Output(8,1," +1→ End If θ=92 and Y=1 Then Output(5,8,"Y Output(8,3," Z+1→Z End If θ=92 and Y=2 Then Output(5,9,"Y Output(8,3," Z+1→Z End If θ=92 and Y=3 Then Output(5,10,"Y Output(8,3," Z+1→Z End If θ=92 and Y=0 Then Output(8,3," +1→ End If θ=93 Then Output(8,5," +1→ End If =1 Then Output(7,12,"I---I End If =2 Then Output(6,16,"[ Output(5,16,"[ Output(4,16,"[ Output(3,16,"[ Output(2,16,"I End If =3 Then Output(2,13,"1-- End If =4 Then Output(3,13,"T End If =5 Then Output(4,13,"O End If =6 Then Output(5,12,".U. End If =7 Then Output(6,13,"^" Goto 98 End If Z=3 Then Goto 97 End Goto 99 Lbl 98 If A=1 Output(5,8,"A If B=1 Output(5,8,"B If C=1 Output(5,8,"C If D=1 Output(5,8,"D If E=1 Output(5,8,"E If F=1 Output(5,8,"F If G=1 Output(5,8,"G If H=1 Output(5,8,"H If I=1 Output(5,8,"I If J=1 Output(5,8,"J If K=1 Output(5,8,"K If L=1 Output(5,8,"L If M=1 Output(5,8,"M If N=1 Output(5,8,"N If O=1 Output(5,8,"O If P=1 Output(5,8,"P If Q=1 Output(5,8,"Q If R=1 Output(5,8,"R If S=1 Output(5,8,"S If T=1 Output(5,8,"T If U=1 Output(5,8,"U If V=1 Output(5,8,"V If W=1 Output(5,8,"W If X=1 Output(5,8,"X If Y=1 Output(5,8,"Y If A=2 Output(5,9,"A If B=2 Output(5,9,"B If C=2 Output(5,9,"C If D=2 Output(5,9,"D If E=2 Output(5,9,"E If F=2 Output(5,9,"F If G=2 Output(5,9,"G If H=2 Output(5,9,"H If I=2 Output(5,9,"I If J=2 Output(5,9,"J If K=2 Output(5,9,"K If L=2 Output(5,9,"L If M=2 Output(5,9,"M If N=2 Output(5,9,"N If O=2 Output(5,9,"O If P=2 Output(5,9,"P If Q=2 Output(5,9,"Q If R=2 Output(5,9,"R If S=2 Output(5,9,"S If T=2 Output(5,9,"T If U=2 Output(5,9,"U If V=2 Output(5,9,"V If W=2 Output(5,9,"W If X=2 Output(5,9,"X If Y=2 Output(5,9,"Y If A=2 Output(5,10,"A If B=3 Output(5,10,"B If C=3 Output(5,10,"C If D=3 Output(5,10,"D If E=3 Output(5,10,"E If F=3 Output(5,10,"F If G=3 Output(5,10,"G If H=3 Output(5,10,"H If I=3 Output(5,10,"I If J=3 Output(5,10,"J If K=3 Output(5,10,"K If L=3 Output(5,10,"L If M=3 Output(5,10,"M If N=3 Output(5,10,"N If O=3 Output(5,10,"O If P=3 Output(5,10,"P If Q=3 Output(5,10,"Q If R=3 Output(5,10,"R If S=3 Output(5,10,"S If T=3 Output(5,10,"T If U=3 Output(5,10,"U If V=3 Output(5,10,"V If W=3 Output(5,10,"W If X=3 Output(5,10,"X If Y=3 Output(5,10,"Y Output(1,8,"YOU LOST! Output(7,1," [PRESS ENTER] Pause Menu("Play Again?","Yes",A,"No",B Lbl 97 Output(1,8,"YOU WON! Output(7,1," [PRESS ENTER] Pause Menu("Play Again?","Yes",A,"No",B Lbl B ClrDraw AxesOn ZoomRcl ClrHome`

Note that all the boxes are the lowercase "n" symbol which is the first character under the letter N in the catalog.

For this to work, you need to either take ou the line that says prgmPPGLOGO or create program PPGLOGO which draws my logo.

Here is the source code for that:

`0→Xmin 94→Xmax 0→Ymax 62→Ymin ClrDraw Line(11,17,20,17) Line(11,17,11,30) Line(11,30,14,30) Line(14,30,14,23) Line(14,23,20,23) Line(20,23,20,17) Line(14,19,17,19) Line(17,19,17,21) Line(17,21,14,21) Line(14,21,14,19) Line(22,19,25,19) Line(22,19,22,21) Line(25,19,25,21) Line(23,21,23,24) Line(24,21,24,24) Line(22,24,22,30) Line(25,24,25,30) Line(25,30,22,30) Line(27,25,27,24) Pt-On(28,24) Pt-On(31,24) Line(32,24,32,25) Line(32,29,32,30) Pt-On(31,30) Pt-On(28,30) Line(27,30,27,29) Line(29,25,30,25) Line(29,29,30,29) Line(28,26,28,28) Line(31,26,31,28) Line(34,24,34,30) Line(34,30,40,30) Line(40,30,40,24) Line(40,24,34,24) Line(36,26,38,26) Line(36,28,39,28) Line(42,17,45,17) Line(45,17,45,30) Line(45,30,42,30) Line(42,30,42,17) Line(16,33,16,46) Line(16,46,19,46) Line(19,46,19,39) Line(19,39,25,39) Line(25,39,25,33) Line(25,33,16,33) Line(19,35,22,35) Line(19,35,19,37) Line(19,37,22,37) Line(22,35,22,37) Line(27,33,27,46) Line(27,46,30,46) Line(30,46,30,43) Pt-On(31,43) Line(32,43,32,46) Line(32,46,34,46) Line(34,46,34,40) Line(34,40,30,40) Line(30,40,30,33) Line(30,33,27,33) Line(36,40,36,46) Line(36,46,42,46) Line(42,46,42,49) Line(42,49,36,49) Line(36,49,36,52) Line(36,52,45,52) Line(45,52,45,40) Line(45,40,42,40) Line(42,40,42,43) Line(42,43,39,43) Line(39,43,39,40) Line(39,40,36,40) Line(47,40,52,40) Line(52,40,52,46) Line(52,46,47,46) Line(47,46,47,40) Line(49,42,51,42) Line(48,44,50,44) Line(54,40,54,46) Line(54,46,57,46) Line(57,46,57,40) Line(55,40,55,37) Line(56,40,56,37) Line(54,37,54,35) Line(54,35,57,35) Line(57,35,57,37) Line(59,40,59,46) Line(59,46,62,46) Pt-On(62,45) Line(62,44,61,44) Pt-On(61,43) Line(61,42,62,42) Pt-On(62,41) Line(62,40,59,40) Line(64,40,69,40) Line(69,40,69,46) Line(64,46,69,46) Line(64,46,64,40) Line(66,42,68,42) Line(65,44,67,44) Line(48,48,51,48) Pt-On(52,49) Line(47,49,47,53) Line(48,54,51,54) Line(52,53,52,52) Line(50,51,51,51) Line(54,51,54,53) Pt-On(55,50) Line(55,54,56,54) Line(56,53,56,51) Line(58,50,58,54) Pt-On(59,50) Line(60,51,60,54) Pt-On(61,50) Line(62,50,62,54) Line(64,51,64,53) Line(65,50,66,50) Pt-On(67,51) Line(65,52,66,52) Line(65,54,66,54) Line(70,50,71,50) Pt-On(69,51) Line(70,52,71,52) Pt-On(72,53) Line(69,54,71,54) For(X,0,30) Pt-On(11,17) End For(X,0,30) Pt-On(2,8) End For(X,0,30) Pt-On(9,8) End For(X,0,30) Pt-On(15,9) End For(X,0,30) Pt-On(20,12) End For(X,0,30) Pt-On(23,16) End For(X,0,30) Pt-On(26,14) End For(X,0,30) Pt-On(30,11) End For(X,0,30) Pt-On(35,9) End For(X,0,30) Pt-On(41,8) End For(X,0,30) Pt-On(47,11) End For(X,0,30) Pt-On(51,15) End For(X,0,30) Pt-On(54,19) End For(X,0,30) Pt-On(55,25) End For(X,0,30) Pt-On(56,31) End For(X,0,30) Pt-On(60,28) End For(X,0,30) Pt-On(65,26) End For(X,0,30) Pt-On(71,26) End For(X,0,30) Pt-On(76,28) End Line(80,30,80,32) Line(81,30,81,35) Line(82,30,82,32) Line(80,34,82,34) Pt-On(80,36) Pt-On(82,36)`

If you took the time to copy this down, I salute you for your effort. If this is too hard for you, then feel free to copy-paste it in an emulator. :)

I shall find a way soon to post a downloadable file with both these programs.

]]>Code:

`4→Y 8→X While 1 ClrHome Output(Y,X,"θ getKey→K max(1,min(8,Y+(K=34)-(K=25→Y max(1,min(16,X+(K=26)-(K=24→X End`

I hoped you liked it and I am so excited to progress further with TI-Basic!

]]>I cant post links so you'll have to type the link yourself sry. ]]>

It originally just started out as a height map in a matrix, where I programmed the generator to make blocks that are only 1 higher or lower than their neighbors. After a few days I made a rough looking isometric render, then quickly changed it too look sharper and more colorful. I also made it so that you could edit the map, and I also moved the storage over to a list.

So, you can have the program generate a map for you or you can edit a map to make things like this:

The isometric rendering takes about 39-42 seconds on average on my CE, thanks to some optimizations by Cemetech user mr womp womp, which is a significant improvement from a time of 1:25-2:23 when I first started.

It could technically be changed to generate all the blocks instead of just the top ones, but because the top blocks usually cover up what's under/behind them there's really no point in slowing down the rendering that much. I will probably make a modeling program with this soon though specifically for making 3d models. Oh, and you can also rotate the terrain already to render it from all 4 corner angles.

Anyways, I hope you like it!

You can see the whole GitHub repository and download the .8xp from here: https://github.com/Michael2-3B/Terrain-CE

You can also see my original Cemetech thread here: https://cemete.ch/t16660

First Fantasy: Mana Force is a 2015 color remake of my 2002 TI-83 Plus game Mana Force. I have begun updating the TI-84 Plus CE version to take full advantage of CE Texlib ASM library (to draw rectangles and colored text on the home screen) undocumented capabilities. Here are the changes since the last 2015 release:

-The gray TI-OS bar at the top of the screen is now hidden.

-The in-game menu now takes the entire screen and has a border

-Fixed menu exit from save section bug introduced by the above change

-Dungeon walls no longer have horizontal gaps across the screen

-The game now uses 16 colors instead of 15, allowing some dungeon color changes

-The game is completely full screen now

-Your hit points are now displayed at the top of the screen at any time except in the menu

-There is a new sub-program for the custom font routine needed for the above

-You can now quit the game using CLEAR in the menu

-The shops and the warp zone now have a border like the menu

-Some empty green gaps in the village graphics, similar to the ones present in dungeons prior version 1.1 have been removed.

You can download the game at https://www.ticalc.org/archives/files/fileinfo/463/46383.html , but it's version 1.1, which misses some of the aforementioned additions. Version 2.0, pictured above, should come out soon.

]]>It is not available for download yet, and has yet to be forum-optimized, but here is the program:

(Note: → is represented as [->] , small E is represented as slash e slash , ≤ is represented as [<=] and ≠ is represented as [!=] )

`prgmTITIMER1 //Generates notation string "F'F F2B'BB2R'R R2L'LL2U'UU2D'DD2 -> Str1 //Asks what character you want around the border, and if length is not 1, repeats the action Lbl 0 Prompt Str3 If 1!=length(Str3 Goto 0 //Draws border For(X,1,16 For(Y,1,8 If X=1 or X=16 or Y=1 or Y=8 Output(Y,X,Str3 End:End //Starts a Loop for E, which at the end of the code will put the final time at the 'E'th part of L₆ DelVarDFor(E,1,/e/9 //Generates scramble For(C,2,5 2->B //This part of scramble generating doesn't use a For( loop because that will mean gaps in the scramble, see near end of While loop While B<=14 randInt(1,18->A //This part prevents redundancy If int(A/6)=int(D/6 Goto 1 Output(C,B,sub(Str1,2A-1,2 A->D B+2->B Lbl 1 End:End Output(7,2,"Press [Enter]. Pause For(C,2,7 Output(C,2," //14 spaces End Output(4,9,0 Pause //Actual timer (the timing system isn't entirely accurate, but I wanted to save information on the increment level, and it's only off by ~1 second every 5 minutes.) For(A,1,/e/9,.022 Output(4,5,A If getKey: Goto 2 End Lbl 2 A->L₆(E Pause End`

tibasicdev

.wikidot

.com/forum/t-10140286/neural-network-on-ti-84#post-4136063

which was looking for any neural net or ML implementations in TI-BASIC.

I actually developed a software suite for creating apps using a single layer RAM network, like a virtual implementation of a WISARD.

RAM networks are a kind of neural network that is implemented with lookup tables, making them really simple to train and execute. The WISARD was the first commercially available neural network device. Here is some info about it:

elen

.ucl

.ac

.be

/Proceedings

/esann

/esannpdf

/es2016-63.pdf

(Sorry, but my karma is to low to link to the page normally, just select that paragraph and paste it into a new tab and it will automatically remove new lines)

I'll see if I could upload the programs and get a link to it.

The suite lets you train a single discriminator at a time; a discriminator can recognize one feature or simple data pattern.

One discriminator's information can be stored in a single matrix, which can be backed-up in another variable, allowing you to clear it, and train another discriminator.

I wrote one test program that used this software suite to recognize a digit from a 3x5 pixel monochrome image, input as a binary list of length 15. I simply trained a discriminator for each digit, then recalled the contents of the discriminator into a program. I did this for all 10 digits. The resulting program would load a discriminator into the proper matrix var, the discriminator would output how likely that the input was the number that the discriminator was trained to recognize, and then the program would record this and move on to the next discriminator. It did this for all 10 discriminators, and output the number that corresponded to the discriminator that gave the highest score. This was literally a virtual implementation of the WISARD in TI-BASIC, but it couldn't process in parallel like the original hardware device, naturally, so it simply runs the discriminators in series.

]]>I am fairly new to Ti-Basic so I am very open to suggestions that all you Pros have :)! Here is the program…

`:ClrDraw :ClrHome :16->X :8->Y :1->Z :1->R :1->G :1->H :1->A :8->B :0->K :While 1 :Lbl Theta (I don't know how to get a theta) :GetKey->K :ClrHome :Output(R,Z,"* :Output(G,H,"* :Output(Y,X,"i (the I from [2nd] [.]) :Output(B,A,"PI (I don't know how to get a Pi) :If K=32 :Y-1->Y :If K=41 :X-1->X :If K=43 :X+1->X :If K=42 :Y+1->Y :If K=24 :A-1->A :If K=25 :B-1->B :If K=26 :A+1->A :If K=34 :B+1->B :If A=17 :1->A :If A=0 :16->A :If B=0 :8->B :If B=9 :1->B :If X=17 :1->X :If X=0 :16->X :If Y=9 :1->Y :If Y=0 :8->Y :If A=H and B=G :Goto 3 :If A=Z and B=R :Goto 4 :If X=H and Y=G :Goto 5 :If X=Z and Y=R :Goto 6 :If K=31 :Goto 1 :If K=15 :Goto 2 :End :Lbl 1 :randInt(1,16)->Z :randInt(1,8)->R :Output(R,Z,"*" :Goto Theta :Lbl 2 :randInt(1,8)->G :randInt(1,16)->H :Output(G,H,"*" :Goto Theta :Lbl 3 :Lbl 4 :ClrHome :Output(4,5,"i Wins!" :Stop :End :Lbl 5 :Lbl 6 :ClrHome :Output(4,5,"Pi Wins!" :Stop :End`

This comes with both a timer and a high score feature.

You can move the rows and columns with the arrow keys, and you can move the pointers on the sides of the board with mode, alpha, XTθn, and stat

You can copy and paste this into sourcecoder to try it out if you like, or download it here: http://ceme.tech/DL1955

`ClrHome "ABCDEFGHIJKLMNOPQRSTUVWXY->Str1 Ans->Str2 randIntNoRep(1,25->L1 sub(Str1,Ans(1),1 For(N,2,25 Ans+sub(Str1,L1(N),1 If not(remainder(N,5 Output(2+N/5,4,sub(Ans,N-4,5 End Ans->Str1 4->A Ans->B DelVar TDelVar KSetUpEditor LOOP UnArchive |LLOOP If not(dim(|LLOOP {0->|LLOOP "* Output(3,3,Ans Output(2,4,Ans Output(3,9,Ans Output(8,4,Ans Output(2,18,"Time: Output(7,18,"High: timeCnv(sum(|LLOOP Output(8,18,"n/a If sum(Ans Output(8,18,toString(Ans(3))+"m"+toString(Ans(4))+"s Repeat K=45 or Str1=Str2 Repeat Ans If T Then timeCnv(checkTmr(T Output(3,18,toString(Ans(3))+"m"+toString(Ans(4))+"s End getKey End Ans->K If sum(Ans={22,31,32,33 Then If K=22 or K=32 Then Output(A-1,3," Output(A-1,9," A+(K=32)-(K=22->A Ans+5(Ans=3)-5(Ans=9->A Output(Ans-1,3,"* Output(Ans-1,9,"* Else If K=31 or K=33 Then Output(2,B," Output(8,B," B+(K=33)-(K=31->B Ans+5(Ans=3)-5(Ans=9->B Output(2,Ans,"* Output(8,Ans,"* End End Else If K=24 or K=26 Then If not(T startTmr->T sub(Str1,5A-15-3(K=24),1+3(K=24))+sub(Str1,5A-19,4-3(K=24 Output(A-1,4,Ans If A>4 sub(Str1,1,5A-20)+Ans If A<8 Ans+sub(Str1,5A-14,26-(5A-14 Ans->Str1 Else If K=25 or K=34 Then If not(T startTmr->T sub(Str1,B+2+15(K=34),1)+sub(Str1,B-2,4)+sub(Str1,B+7-10(K=34),1)+sub(Str1,B+3,4)+sub(Str1,B+12-10(K=34),1)+sub(Str1,B+8,4)+sub(Str1,B+17-10(K=34),1)+sub(Str1,B+13,4)+sub(Str1,B-3+15(K=34),1 If B>4 sub(Str1,1,B-4)+Ans If B<8 Ans+sub(Str1,B+18,26-(B+18 Ans->Str1 For(I,0,4 Output(3+I,B,sub(Str1,5I+B-3,1 End End End End End If Str1=Str2 Then checkTmr(T If Ans<sum(|LLOOP) or not(sum(|LLOOP Then {Ans->|LLOOP timeCnv(sum(Ans Output(8,18,toString(Ans(3))+"m"+toString(Ans(4))+"s End Output(5,16,"Congrats! Repeat getKey End End Archive |LLOOP ClrHome`

Today, I would present you my project: a Ti-Basic text editor (name: Leviathan)

Actually, the project exist, the foundation is create and this require to add the most important: the Ti-Basic and Python (the news calculators use this) compatibility …

It's open-source and a uwp app, but if people can help me, manifest you ^^

(Sorry, I'm french, my english is not perfect <(＿ ＿)> but I work about this ^^)

I can add more informations about the project is your interest, else, no ^^

And if you don't understand, I can re-explain …

Thx for your attention

Fj ]]>

You can see it in action at youtube address Su0MpwFSWFE

I'll fisrt explain quickly how to make a qr code:

Firstly, you choose with which text type (kanji, numeric, etc) you're gonna encode the data (here, it's always alphanumeric : numbers and uppercase letters).

Secondly, you encode text in binary following the step matching the text type.

Thirdly, you generate the error correction codewords (that's the difficult part), basically (if I understand well), you divide two equations in a galois field (one is generate with your data string, the other depends on your qr size and error correction level), there are 4 level of correction (L, M, Q and H) here I use level M.

Fourth, you put the error codewords after your binary data string from before (it's different for larger qr code, though)

Fifth, you place the string in your matrix (black square for 1 and white square for 0)

Sixth, you "mask" some squares (it mean changing it's color by the opposite), there are 8 masking pattern, you are supposed to choose the optimal one (here I use only the mask pattern 1)

Last, you add the format string, which correspond to your error correction level and your mask pattern

I divided the entire program in 6 progams.

Posts merged and formatted by a moderator

]]>AxesOff

0->Xmin:256->Xmax

0->Ymin:256->Ymax

10->A

10->B

While 1

Lbl S

DispGraph

Pxl-On(A,B)

getKey->K

If K=105

Then

Stop

End

If K=45

Then

ClrDraw

End

If K=24

Then

B-1->B

Pxl-On(A,B

End

If K=25

Then

A-1->A

Pxl-On(A,B

End

If K=26

Then

B+1->B

Pxl-On(A,B

End

If K=34

Then

A+1->A

Pxl-On(A,B

End

If K=85

Then

While K=85

getKey->L

Pxl-On(A,B

If L=24

Then

B-1->B

Pxl-Off(A,B

Pxl-Off(A,B+1

End

If L=25

Then

A-1->A

Pxl-Off(A,B

Pxl-Off(A+1,B

End

If L=26

Then

B+1->B

Pxl-Off(A,B

Pxl-Off(A,B-1

End

If L=34

Then

A+1->A

Pxl-Off(A,B

Pxl-Off(A-1,B

End

If L=45

Then

ClrDraw

End

If L=95

11->K

End

End

End

End

End ]]>

In Daleks you're The Doctor, you move with the numpad as Daleks chase you. The Store key acts as a repeatable dangerous teleport using the "Tardis," and the Ln key is the "Sonic Screwdriver," killing enemy Daleks.

Game code:

https://pastebin.com/TMu6pyiB

I've also TASed programming the game and then playing it as an experimental project, I have a newer version not yet on YouTube that's closer to the pastebin code and saves 50 seconds. I discovered the 1.02 OS bug due to the OS used for TASing in BizHawk.

https://youtu.be/JH9E_SoiYQs