HDMI ISA graphics card for vintage PCs by improving the Graphics Gremlin
yeokhengmeng.com
yeokhengmeng.com
Next in line is BPF, which is also unclear.
BPF is anything but simple.
Another use case for I2C is device identification: since I2C-interfaced ROMs are so cheap, it's common to embed them in various types of peripherals and have the host read them out to retrieve information about the peripheral. This is how your PC gets to know which resolutions are supported by your monitor [2] (VGA, DVI and HDMI all have dedicated I2C pins for this purpose) and which type of RAM you have installed [3], for instance.
[1] https://en.wikipedia.org/wiki/I%C2%B2C
[2] https://en.wikipedia.org/wiki/Extended_Display_Identificatio...
HDMI keeps normal analog video timing with blank/hblank, etc. Stuffing anything other than video is pretty complex and a mish mash of finding weird gaps in the video data.
DisplayPort is it's own packet based protocol. Sending things other than video are just other packet types over the same link.
FWIW, yes HDMI is still pretty simple, but not as simple as you describe it. Even though there are 3 pairs of data it's not one pair R, one pair G, one pair B (highest-bandwidth HDMI uses 4 pairs), it's just one data bus. The data pairs aren't only used for data colors, but also conveys audio, and info frames (which will include various stuff like HDR or VRR metadata). Of course there is the matter of DRM: the content will often be encrypted (but negotiation of that encryption happen separately, over I2C)
I did a tiny HDMI implementation in an FPGA for a project, the TMDS implementation was what took the longest.
You are correct. Though as part of my studies (and curiosity, of course) I did end up analyzing the signalling protocol. The side-effect of standardizing line protocols is that it offers an abstraction for the engineers working with it. I didn't have to understand the signalling methods per se to use HDMI in my project.
> FWIW, yes HDMI is still pretty simple, but not as simple as you describe it.
I should have added that at the time I used it, HDMI was still in the 1.0 spec (1080i, 60Hz max), which was effectively DVI. Much has changed since then.
The only HDMI encoder I have seen so far with easily accessible (i.e. leaked) documentation is the CAT6613/IT6613 from ITE, which also happens to be available for purchase in single quantities from a number of Chinese retailers. It seems to be used in the OSSC and several FPGA development boards, so it's about as close to being an unofficial standard for open source projects as it could be.
I might be nostalgic, but to me it sounds much cooler than having a 11700k with a 4090 nowadays
For consumers only sound expansions broke this mold because they came with cool names such as Sound Blaster, Gravis Ultrasound, etc. They carried that over from audio market where equipment had "cool" names for some time already (since 70s at least).
Interestingly, Intel made "Pentium" trademark to distance and distinguish themselves from other x86 CPU vendors, but Creative failed to protect Sound Blaster trademark in a way that in mid90s everyone called every OPL3 card "a sound blaster". In that age real Sound Blasters had quality synthesizer, big wavetable with a quality soundfont and a DSP for effects on top of it, a feature which became less and less relevant as 90s went by. In mid 90s games were already moving to MIDI+CD Audio combination and by late 90s MIDI based soundtracks were largely gone. When you were playing Duke for the first time the type of "sound blaster" you had and hardware around it mattered. A clone would render worse MIDI than real Creative hardware and then came the external hardware such as Roland SC series, etc. The differences were real. When you were playing Half Life or UT for the first time just a few years after, there was no difference.
So Creative never managed to actually stamp "Sound Blaster" with something particular. It always remained a synonym for the entire standard and something even cheap hardware was described by. "Sound Blaster Audigy" was mostly reffered to as Audigy or Creative Audigy and it didn't have an ubiquitous meaning because it was clearly separated from all the junk audio cards of the day.
I've been hooked on to retro computing a while, and I flatted out somewhat. It all depends on what you want to do. If you want to play games or run software I suggest you take a good deep look at the emulators. I had a task to do with my XT and that was pulling the data out from it. I did some original programming for that purpose. I spent days loading software from the internet to it in minutes which was kind of miraculous. I programmed some graphics demos on it. I upgraded it with an XT-CF, etc. In the end there is no need to keep that machine up and running on a desk somewhere. The best purpose would be aesthetic, because it is really beautiful as a package, but even if it were in mint condition, I wouldn't risk running it for a couple hours daily for an useless purpose. Although it would be nice to have an 80s style terminal displaying current whether, RSS feeds, etc, it's just a bad way to run your historic machine out of working hours.
There are a ton of titles from this era that just don't work on current Windows, even with dgVoodoo. I just want to be able to comfortably get rid of this Win98 SE / WinXP dual boot box I have lying around...
Some CGA ran over composite, and there's plenty of modern small TVs with a composite input. It's perfectly fine to use a TV as a computer monitor. (I do!)
> This analog-to-digital conversion will also lead to an inevitable loss in video quality.
Oh, now we're splitting hairs! This is super-low resolution, super-low colorspace. CGA was (at most) 16 discrete colors. In many situations it was 4 colors with 2 pallets to chose from. The CGA port was also digital, so I don't understand where the "loss in video quality" argument comes from.
IMO: I don't "get" this. You're no longer running "vintage" hardware; yet a lot of vintage hardware has limited lifespan and may become unrepairable if/when there's degradation inside the chips themselves.
If someone is going to go through all this trouble, it makes a lot more sense to emulate the whole computer.
The drop in video quality with composite is real. This has less to do with the resolution, but more with the fact that hardware that upscales this to an HD or 4K panel needs to make an educated guess where pixels start and end, and gets it wrong.
It looks quite ugly practically and switching to something with crisp pixels is usually very worth it.
For old game consoles it's often enough to switch to RGB or Component and you don't have to go full digital. Composite (and RF) are quite bad.
This is not an audiophile type of distinction, it's very visible and obvious to almost anyone.
Remember, this is CGA. Some games specifically take advantage of composite: https://en.wikipedia.org/wiki/Composite_artifact_colors
Likewise, remember that the monitor connector is digital. If you build an HDMI (or DVI, DisplayPort, whatever) converter, you're starting with a digital signal, not an analog one: https://en.wikipedia.org/wiki/Color_Graphics_Adapter#Specifi...
I should also add that, if you change the graphics card in an old PC, you're inserting a huge variable when it comes to playing a game on "vintage hardware."
Some games resorted to various tricks, whatever, that might not be emulated correctly on the new graphics card.
Again, that's why I find the idea of a "modern" CGA silly: When you use it, you no longer have vintage hardware, and the CGA connector is digital so there's no need to worry about a loss in quality.
It's a tragedy really. I feel like efforts like OP are great because they pull pressure off the literally limited stock thereby making the speculators go elsewhere (segasaturn games and the like mostly).
Home computers/game consoles of the time mainly had ASIC display controllers but projects like
don't really have the volume to justify making an ASIC so they wind up using FPGA (like this card) or microcontrollers to function as display controllers. Note the super low-end
https://en.wikipedia.org/wiki/ZX80
did not have a video ASIC but instead tricked the microprocessor into functioning as a video controller which meant that it could only show video when it was done thinking, see
https://www.tinaja.com/ebooks/cvcb1.pdf
though that technique can be used today to turn a (secondary) microprocessor for a display controller.
So for example it’d be super cool to be able to drop a new GPU into a PowerMac G4 tower and allow it to drive a modern 2560x1440 display under both OS 9 and OS X.
For older machines even cleanly driving a new 1920x1080 display without a dongle would be a nice upgrade.
I understand what it means in an RGB context but it is the first time I seesomeone mentionning dark yellow as a color.
Sorry if I'm asking a duplicate question, but have you considered submitting this to Hackaday?
https://hackaday.com/2023/09/10/upgraded-graphics-gremlin-ad...