TMS9918A Retro Video Chip Reimplemented In FPGA, With VGA Out
acadiel writes "Matthew H from the AtariAge.com TI-99/4A forum has finalized a design of a TMS 9918A replacement (with VGA out) for classic computer systems such as the ColecoVision, TI-99/4A, SpectraVision, MSX1, SpectraVision 128, and Tomy Tutor Home computers. This hardware project replaces the native video controller on these classic systems and enables them to have VGA output for the first time." (It's just under $100 to order one.)
For viewing things. VGA is somewhat nicer than the composite video out that most machines of the age shipped with.
Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
there's actually quite a community for these old systems, and a lot of people who don't enjoy playing on emulators, or who want to recapture the original experience.
it's pretty cool that they've managed to do this, though I might prefer a different connection type... my current TV does have a VGA input, but I doubt my next one will.
Of all the chips that one on the Commodore 128/128D is a pain to convert to anything modern as it uses the old CGA/RGBI interface. All the CGA adapters ive found dont handle the intensity signal, they are more RGBA compatible.
"Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
he'd better do an HDMI version quick as VGA seems to be on the way out as a connector :-P
Except HDMI is a closed standard and buying HDMI chips requires signing over your first-born to Satan.
If they only had composite to begin with, anything above VGA is completely excessive. These machines are never going to be outputting 1080p.
then just implement DVI-D over HDMI ... so you don't have to bother with the DRM. Check out the wikipedia article I imagine there are some kinks but HDMI is mostly backwards compatible with DVI-D
And I have real world evidence as well.. Pandaboard does DVI-D for the very reasons you mentioned and it works just fine with a couple TV's I have tried that said it was picky one one monitor I tried though it seemed to be a kernel issue as one kernel would boot up on HDMI the other on DVI so had nothing to do with the hardware itself working correctly.
It not excessive. It's about supporting widely available monitors.
Except that you're still upconverting a signal from 240p to 480p. By going directly to VGA you're at least getting a crisp 480p image (ie: 640x480). And no, doing this after the signal has been produced at the composite outputs is not going to be as pretty.
classic computer systems such as the ColecoVision
This word, "computer," I do not think it means what you think it means...
/former Adam owner
Except HDMI is a closed standard and buying HDMI chips requires signing over your first-born to Satan.
As someone who used to worship Satan as a kid (yeah, stupid), I resent that remark. Please do not insult Satan by comparing him to a vile media consortium.
The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
And no, doing this after the signal has been produced at the composite outputs is not going to be as pretty.
Unless you're using a program that relies on the artifacts in a particular video chip's composite output. The NES PPU's architecture was heavily inspired by the TMS9918, and I know a lot of NES games rely on interactions between luma and chroma to give the backgrounds more texture.
Better, perhaps, to ask "for whom?"
Please consider that just thirty-odd years ago, one could own a computer that wasn't the university's or corporation's. Whether one came fresh to it or from mainframe milieu, there was an immediacy, a power, a whole new realm of discovery. One no longer had to submit their deck of cards to an acolyte to the high priests of a Burroughs or CDC Behemoth only to get back a core dump due to an errant comma. Some, even now, for reasons of nostalgia or fun, continue their interest and enthusiasm - vibrant 8-bit micro communities are but a search away.
The TI-99/4A offered, amongst other things, 16 sprites with built-in collision detection. At the time this was nigh magical. Sprites were effectively independent of screen - they were a 'floating' layer above it and allowed for some interesting game and simulation possibilities. SCREEN itself was a defined device; one could PEEK and POKE 'most anywhere, and PUT and GET to any device. An entire screen could be represented with a string in memory, its contents readily changed on the fly. One could read data for a string from a DATA statement in program code or from (eventually) floppy; with several strings screen-swapping, almost animation, could be done. Graphics could accompany text adventures. Add sprites? Oh, my. And now with VGA?
You may have to ask "what for?" - others will not.
...that is freely downloadable from Chinese web sites... :]
Which is fine until you try selling a chip or distributing the plans, then the IP Barons come to beat you with a big stick.
You're completely, absolutely, out of you mind deluded. Sorry. At work I use some test instruments, made by Tektronix and HP, where the date codes on chips are all in the 70s. They work beautifully, and I regularly "hack" on them. They are anywhere between 30 to 40 years old at this point. There's nothing fussy and temperamental about those systems, and some of them are so complex that a consumer-grade microcomputer or game console holds no candle to them. I'd say that all of the consumer systems that this chip replacement would go into are comparably simple. If you would really have a problem with them, then it's your problem, not a general one. If you want complex, take any modern PC and try replacing a BGA chip in it. I'd take a 30 year old piece of gear any day, I probably could do chip swaps in those blindfolded.
A successful API design takes a mixture of software design and pedagogy.
Probably the biggest problem is going to be all the old school electrolytic capacitors. I know my TI-99/4A is a bit flaky, and I suspect that's why. The VDP was running at the edge of process technology in those days (5.37MHz!) and it wants nice, clean clocks and nice clean supply rails. The rest of the machine runs a fair bit slower, with possible exception of the 256 byte SRAM that the TMS9900 CPU stores its "registers" in.
Thankfully, those big old electrolytic cans are easy to spot and easy to solder in replacements for.
Program Intellivision!
Actually, it was 32 sprites, with a limit of 4 to a line. It had collision detection but it was rarely useful. It had a single bit to tell you that any sprite hit any other sprite. To figure out what hit what, you'd have to walk the descriptor list and do the actual computation yourself. (Or, in the case of TI Extended BASIC, the interpreter had to do it for you.)
On the TI-99/4A, that meant actually accessing VDP memory, since there wasn't much other RAM in the system. That itself was pretty slow, because it wasn't memory mapped for the CPU. You have to write to the VDP's address register, and then do repeated reads after it fetched the byte. Depending on the display mode, that could be as long as 8us during active display (Graphics II mode -- everybody's favorite "bitmap" mode.). Fortunately, the address pointer auto-incremented, so if you were accessing a contiguous structure like the sprite descriptor list, at least you didn't have to keep reloading the address.
Not that TI Extended BASIC was necessarily able to do that, of course. (Read up on the abomination that was GPL. Not the license, but the interpreted language that much TI software was written in, including TI BASIC.) But if you wrote your own assembly code, you could make that optimization, which is probably how Parsec was able to do its soft-scrolling in the time allotted.
(Actually, VDP RAM isn't memory mapped on any platform that I know of. But other systems have CPU-addressable memory that you could store a shadow copy of data in at least. The paltry 256 bytes on the TI-99/4A, though, are far from enough in many cases.)
Program Intellivision!
It's not really RGB output, but rather Y, Y - R and Y - B luma/color difference signals -- actually frightfully close to S-video. But I'm pretty sure they had an app note back in the day that showed how to sum those to get RGB almost trivially.
The reason they went with the 9928A (and later 9128A) was to avoid the "rainbow effect" that was is prominent on the 9918A. See, the 9918A didn't flip the chroma carrier field-to-field, which leads to reinforcing chroma errors. That's also why you couldn't use the EXT VIDEO input on the 9918A to mix with arbitrary video sources (say, for a video overlay), but you could use it to daisy-chain VDPs to get more sprites and such.
Program Intellivision!
Yes. I regularly "hack" my old stuff.
Fer cryin' out loud, they even gave me schematics!
I guess in those days they figured if you were knowledgeable enough to buy their thing, by golly you probably had the skills to fix it too.
It was TEST equipment, meaning you were connecting it to God knows what, where only God knew what malfunctions were in it. This is a sure-fire recipe for an occasional fireworks display on the bench.
Those were the days. I am glad I didn't miss them.
I learned more from fixing my test equipment than I ever learned from books and exams. And I got to learn from the best... Tektronix and Hewlett-Packard.
Like you pointed out, the BGA ( even those surface-mount IC's ) did it in for me. I could not get test prods on them, much less remove/replace them, even if I could get my hands on what soon became custom ASIC's.
The new stuff is either factory-support or downright disposables.
Those were the days. Thanks for another trip down memory lane.
"Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]
I'm sorry you apparently fail at reading comprehension so allow me to break it down. What you have was NOT consumer crap, what you have was designed for business and engineering which had waaaaay better quality parts. the caps and chips used in CONSUMER grade crap was then as now simply not up to the quality of professional instruments which is why we have workstations and desktops with the desktops having significantly lower quality caps, PSUs,fans etc.
We're talking about stuff built for kids in the early 80s and you are talking about HP back when they were THE scientific brand, I'm sorry pal but you couldn't be any more off base if you actually tried and those that marked you interesting obviously don't know how big a quality difference there was between HP and brands like Coleco whose other claim to fame was fricking cabbage patch dolls.
ACs don't waste your time replying, your posts are never seen by me.
http://spiflash.org/block/15.html
The VBXE video board for Atari 8-bit XL and XE machines. Will do 15khz RGB and VGA out and coexists with and extends the original video coprocessor chips (ANTIC and GTIA) providing a blitter and extending the color palette. Enhanced sprites too and more stuff. The Atari graphics chipset was much more programmable and flexible than this thing though every machine deserves to still have modern video output options. The Atari 8-bit is kinda like a baby Amiga in ways.
Actually, VDP RAM isn't memory mapped on any platform that I know of. But other systems have CPU-addressable memory that you could store a shadow copy of data in at least. The paltry 256 bytes on the TI-99/4A, though, are far from enough in many cases.
On the contrary, many 8-bits had memory mapped video. Commodore (VIC/64/Amiga), Sinclair (Spectrum, zx81, zx80, dist by Timex in the US) Atari, VT100 ... etc etc. Not that there weren't machines with distinct video RAM, the Commodore PET had specific video memory, though it was still mapped into the address space like a modern PC video card. Having the video RAM in a inaccessible (I/O bus) location was rare.
The reason was simple, at that point in time only a relatively small amount of RAM was needed for the machines and it ended up being faster than the CPU. So much so that you could assign 50% of the RAM bandwidth to the video subsystem without impacting the speed of the processor at all.
The ZX81, however, was a bit of a foreshadowing of things to come. It was built really, really, cheaply and they used really cheap DRAM. This cheap RAM wasn't fast enough to feed both the CPU and the video at the same time so the CPU was basically turned off when the video was being displayed (In fact it was physically used as a counter chip by the ultra cheap video controller).
Nowadays people want astronomical quantities of RAM so it basically has to be the cheapest design possible; this type of RAM can't keep up with just one CPU, let alone multiple CPUs and a video controller. So the video controller has to reduce the performance of the main CPUs by stealing cycles, or it gets it's own RAM.
Note: There are several Intel video controllers for PC clones that use main memory as the video RAM, they get added as a cheap motherboard video controller. Because of the fact that they're using slow RAM and stealing cycles from the CPU these are rightfully seen as very low performance.
On the other side, a common mistake for designs with distinct video RAM is that the CPU only ever needs to write to this RAM, unfortunately the problem is frequently only recognised in production.