-
Posts
1,103 -
Joined
-
Last visited
-
Days Won
2
Content Type
Profiles
Forums
Blogs
Gallery
Events
Store
Community Map
Everything posted by pixelpedant
-
Favourite early era (1979-1981) game cartridge
pixelpedant replied to pixelpedant's topic in TI-99/4A Computers
Nice to see some love for multiplayer games in this sort of way I suppose. I feel like certain games in the TI-99 library, otherwise including Beyond Parsec, Black Hole and Meteor Belt (off the top of my head), have largely been dismissed out of hand for most of TI-99 history mainly just because without two players, they're largely pointless, and most 99ers did not have a second player most of the time. -
Favourite early era (1979-1981) game cartridge
pixelpedant replied to pixelpedant's topic in TI-99/4A Computers
I've added the major (mainly Gamevision) omissions, so everyone can vote for whatever they like, instead of just whatever I think is worth voting for. But heck, if I went with my gut on this one, the list would read 1) TI Invaders 2) Oops, my finger slipped and I clicked the wrong button So I've got to leave my bias behind, here, clearly. -
TI-99 games really did some maturing in the 99/4A era. But what's your favourite from the first cohort, that were there for its debut?
-
Donn Granros, author of Old Dark Caves, Legends, and Legends 2 recently responded to a retrospective and playthrough video I did a while back on Legends, and in a series of replies, was forthcoming with some great anecdotes on how these games came to be. Of principle interest, I would say, are these comments on the backstory of Legends: Always great to unexpectedly hear back from one of the developers from back in the day.
- 1 reply
-
- 18
-
-
-
Old TI BASIC programs from back in the cassette days
pixelpedant replied to senior_falcon's topic in TI-99/4A Computers
Very nifty (and ambitious) BASIC game indeed! -
Interesting idea for overcoming the sprite limit. So much more would be possible, for a "horizontal" TI-99 shooter, which just achieves that horizontality via rotation. "Into the screen" shooters (Buck Rogers, Moonsweeper) are another genre which could benefit from this. Since, despite being more or less "vertical", due to a vertically compressed playfield, their design tends to inherently result in a lot of enemies accumulating on or around the same scanlines. And rotation would greatly mitigate this.
-
Well that does make a certain amount of sense, since you're already talking about using far more data than a TI BASIC program may contain. In that your limit on the size of a TI BASIC program is ~12KB, and you're talking about storing DATA lines within the program containing 100 x 72 values per level x 3 bytes per numeric value minimum (unquoted string token, length byte, 1 numeric character) = 21.6KB in numeric DATA alone. So if those are your criteria and compiling is the goal, I'd just write for the compiler, and accept that what you're writing is not a functional TI BASIC program and cannot be stored in the Program format, but can nonetheless (potentially) be used to produce a working compiled program written using TI-BASIC-like structures.
-
Certainly, the presence of CALL CHAR and custom character patterns makes all the difference in the world, as far as allowing developing for the device to be interesting in its own right (rather than just functional as a destination for ports of traditional text-based games). Plus, on top of the 31 character screen, you've got the six indicator arrows along the bottom of the display which can be toggled on and off. And as well, the various status indicators (like "Rad") to do with as you will. Finally, you've got the beeper, if you want to use that. So there's a fair amount to work with there that isn't just an alphanumeric display.
-
Why not just read this data from disk? There you can read whatever record you want.
-
No, you cannot in any direct way conditionally designate the destination of a RESTORE. Under the hood (i.e., in the tokenised BASIC), as with GOTO or GOSUB, RESTORE (when used with DATA statements) accepts a single parameter, which is a word value representing the line from which (or subsequent to which) DATA shall be thereafter read. It is not an evaluated expression. It is an immutable constant. The only ways I am aware of by which to determine the location of a READ based on a variable value N is 1) RESTORE to a fixed point, then loop over READs of consecutive values until you have read the Nth value. 2) Use ON N GOTO or ON N GOSUB to pass control to the Nth RESTORE statement in a series thereof, specifying the desired lines for respective values. It must be noted that RESTOREing excessively is *very* undesirable, as it is very slow. So even were one able to RESTORE more flexibly, you probably wouldn't want to. You want to READ consecutive values if at all possible, as this is much faster.
-
Options for Compiling a TI Extended BASIC Program
pixelpedant replied to zacharyfruhling's topic in TI-99/4A Development
The XB Game Developer's Kit is the solution you're looking for, and provides excellent documentation, explaining it's use in detail and comprehensively. If you're looking for some demonstration and discussion: -
Yeah, my family picked up various Toys R Us TI stuff when they were clearing out their inventory on an "everything must go" basis, and that even included a Munch Man display cart with one of these tethers, which I still have somewhere.
-
The TI CC-40 made its public debut at Winter CES, in January 1983. So happy 40th birthday, CC-40! In honour of its anniversary, I've done a video, to spread the word on the machine. Hopefully a few folks are introduced to it, who weren't before: The scope is limited, but I wanted to provide an accessible intro the machine and its use. I'll probably do more detailed and specific videos in the future. Wishlist items for the CC-40's anniversary year: - Progress on a screen mod/replacement solution, for the majority of units with bad screens. - Progress on a video interface (such as was planned). - A project on my part to develop an appealing CC-40 action game which really exploits CC-40 BASIC.
-
One thing I find compelling about the CC-40's performance characteristics, vis-a-vis those of TI-99 BASIC, is that its much faster string operations mean that manipulating/generating/selecting character patterns in their hexadecimal string format is a more credible possibility. So for example, in the second program, all the 7 character patterns are generated via the value RPT$("1F",C)&"0E04". And in the first program, character 4 is animated using the value SEG$("040A1B0A15000A15040A1B0A15",(D-1)*16+1,16) Given you only have those 7 custom patterns, manipulating/generating character patterns on the fly makes a good deal of sense. Since you can't just write a big pile of patterns all at once and be done with it. And a lot of graphical updates or animations are going to have to be done with CALL CHAR, during program execution. But happily, the machine performs well enough in these regards to accommodate this.
-
And here is another completely different one I just cooked up, but one I think I like a bit better, as it is a "natural" 10-liner. That is to say, no multi-statement lines. Just some very space-economic string/pattern manipulation. Demo 2 - Short Clip (edit).mp4 Stare directly into the CC-40 screen with this one, and you eventually start to see the Matrix. Or just the dot matrix. Possibly both? 10 FOR C=0 TO 6 20 CALL CHAR(C,RPT$("1F",C)&"0E04") 30 NEXT C 40 FOR C=6 TO -5 STEP -1 50 F$=F$&CHR$(ABS(C)) 60 NEXT C 70 FOR P=1 TO 12 80 DISPLAY AT(1),SEG$(RPT$(F$,4),P,31) 90 NEXT P 100 GOTO 70
-
Finally, I couldn't help but look at this and see it as a "Ten Liner Competition" sort of program, so I crammed it into nine lines in this version, instead: 10 S$=RPT$(CHR$(32),11) 20 FOR X=1 TO 7:T$=T$&CHR$(VAL(SEG$("4001234",X,1))):NEXT X 30 CALL CHAR(0,"0E1F1B181B1F0E0000000E1F0E") 40 CALL CHAR(2,"1B1B1B1F1F0303000E1F1B1B1B1F0E") 50 CALL CHAR(5,"03060E1B0E060300180C0E1B0E0C18") 60 FOR D=1 TO 2:FOR L=1-(D=2)*11 TO 1-(D=1)*11 STEP (D=2)*2+1 70 CALL CHAR(4,SEG$("040A1B0A15000A15040A1B0A15",(D-1)*16+1,16) 80 DISPLAY AT(1),SEG$(S$&CHR$(D+4)&S$,L,12)&T$&SEG$(S$&CHR$(7-D)&S$,13-L,12) 90 NEXT P:NEXT D:GOTO 60 Seems like the CC-40 is the perfect "10 liner" type platform. Since typing long programs is pretty rough. But at the same time, as sold, entering and running BASIC programs is what the machine is for.
-
Here's a CC-40 demo I put together today, which isn't too much trouble to type in if you have to (only 19 lines, now), but has a pleasant result. Could be something to leave running on a display or demonstration unit. Note: If you should ever wish this demo (or any other) to run persistently for an arbitrarily long period (i.e., until manually interrupted) execute the command CALL POKE(2096,1) before running (or add it to the program), as this will disable auto-power-off until system restart. Demonstration Clip: Demo 1 v2 - 30s edit.mp4 30 S$=RPT$(CHR$(32),11) 40 FOR X=1 TO 7 50 T$=T$&CHR$(VAL(SEG$("4001234",X,1))) 60 NEXT X 70 CALL CHAR(0,"0E1F1B181B1F0E") !C 80 CALL CHAR(1,"00000E1F0E") !DASH 90 CALL CHAR(2,"1B1B1B1F1F0303") !4 100 CALL CHAR(3,"0E1F1B1B1B1F0E") !0 120 CALL CHAR(5,"03060E1B0E0603") !LEFT 130 CALL CHAR(6,"180C0E1B0E0C18") !RIGHT 150 FOR D=1 TO 2 160 FOR P=1 TO 12 170 L=ABS(P-13*(D-1)) 175 CALL CHAR(4,SEG$("040A1B0A15000A15040A1B0A15",(D-1)*16+1,16)) 180 DISPLAY AT(1),SEG$(S$&CHR$(D+4)&S$,L,12)&T$&SEG$(S$&CHR$(7-D)&S$,13-L,12) 190 NEXT P 200 NEXT D 210 GOTO 150 Edit: Version 5, I think? I keep on tweaking this. Yeesh.
- 12 replies
-
- 10
-
-
It's a long way away from any of that, yet. But thank you for the vote of confidence! I've been working on the underlying subroutines and dungeon map generation and whatnot for a couple months now. But I'd say it'll take several more to get it to a playable state. Hopefully Summer 2023 sort of thing.
-
It's popular, anyway. That's the TI Artist convention. Which is the most prevalent image format for bitmap art, in the platform's library as a whole. With the two files containing palette and pattern data respectively, of course. Which can then be trivially loaded on original hardware or integrated into a project, since they just represent the contents of VDP in those respects.
-
There is not, in general. It was a limited run of a custom cart based on a license of limited duration. It's possible someone will jump through the legal and technical hoops to license and build them again some day. But for now, it's a rarity which is almost never available for sale or trade (since most who have one aren't giving theirs up).
-
Nice. The world needs more TI BASIC music demos! On a system where making actual games in the native BASIC was extremely difficult, graphical music demos were a natural genre for the platform, allowing for worthwhile programming experimentation by the average user with worthwhile results. So those are always appreciated.
