[HN Gopher] HDMI ISA graphics card for vintage PCs by improving ...
___________________________________________________________________
HDMI ISA graphics card for vintage PCs by improving the Graphics
Gremlin
Author : yeokm1
Score : 250 points
Date : 2023-09-11 04:38 UTC (17 hours ago)
(HTM) web link (yeokhengmeng.com)
(TXT) w3m dump (yeokhengmeng.com)
| gwbas1c wrote:
| > The frequencies and connectors used by CGA and MDA are no
| longer supported by modern monitors hence it is difficult for
| older PCs of the 1980s era to have modern displays connected to
| them without external adapters.
|
| 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.
| dfxm12 wrote:
| FWIW, the lifetime of a CRT display is generally less than the
| lifetime of the rest of the PC. I don't think it's much trouble
| to install a card on a PC that didn't happen to have composite
| out, or to want something better than composite on a modern LCD
| display. You don't have to get it. It's not for you. That's OK.
| treve wrote:
| Count me in as someone who likes vintage hardware but modern
| displays. In my case it's old game consoles.
|
| 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.
| gwbas1c wrote:
| > The drop in video quality with composite is real.
|
| 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: htt
| ps://en.wikipedia.org/wiki/Color_Graphics_Adapter#Specifi...
| jan139748 wrote:
| Related development for those interested in using old hardware
| with new displays. There is this ISA HDMI addon card in
| development that will add HDMI port to your existing old display
| card: https://www.vogons.org/viewtopic.php?t=92512
| noobermin wrote:
| So, this is probably a super nimby moment, but the growing
| excitement around "retrocomputing" (really just old machines)
| means a lot of hardware is becoming super expensive. Like good
| luck finding an IDE harddrive under 500 MB that works, people are
| pulling them out of working old machines, putting them on ebay
| for 100s to even 1000 usd, then shipping them in after thought
| packaging that has them fall apart on their way there. This hobby
| is fast becoming a rich man's game for speculators and huskers.
|
| 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).
| KingLancelot wrote:
| [dead]
| egorfine wrote:
| What kind of command.com they use? I don't remember any with
| autocomplete.
| ok123456 wrote:
| 4DOS had it.
| egorfine wrote:
| thank you!
| PaulHoule wrote:
| The retrocomputing community has struggled with making display
| controllers because it's not so practical to make one with
| 74xx/54xx parts (which have just a few gates on a chip) I saw an
| ad for once circa 1978 in Byte Magazine which was a circuit board
| about as big as an IBM PC expansion card where both sides of the
| board were packed with chips. Something like that costs about the
| same today as it did in 1978.
|
| Home computers/game consoles of the time mainly had ASIC display
| controllers but projects like
|
| https://www.commanderx16.com/
|
| 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.
| boffinAudio wrote:
| I imagine a PC with a Graphics Gremlin and either a Snark Barker
| or Snood Bloober for audio, is going to be quite the hipster toy
| to have, one of these days .. all this great old, retro, PC
| hardware designs!
| waddup_ wrote:
| I refuse to believe Snark Barker and Snood Bloober are real
| device names, what a funny time in computing that was.
| rsynnott wrote:
| They're modern clones of the SoundBlaster 1 card (a real
| late-80s sound card).
| boffinAudio wrote:
| "Sound Blaster" was the original funny name - these are both
| derivations in a modern style, given to clones of that ol'
| sound card .. and yeah, they are hilarious names, and I hope
| the trend sticks, personally .. the world tires of
| X3000-style naming conventions, I'd wager, and for fun things
| like sound cards and video cards, a bit of naming whimsy
| would be welcome.
| LeonM wrote:
| Kids nowadays will never understand how cool it was to have
| a Sound Blaster, an Athlon Thunderbird and Voodoo graphics.
|
| I might be nostalgic, but to me it sounds much cooler than
| having a 11700k with a 4090 nowadays
| zare_st wrote:
| There was a time before Pentium when hardware was not
| named with trade name but by standard it implements. For
| instance you had your 486 with VGA, were it Cyrix CPU
| with Trident graphics card or Intel CPU with S3 graphics
| card didn't matter much.
|
| 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.
| jamesfmilne wrote:
| Sounds well Jackson.
| LeoPanthera wrote:
| I see that you are a self facilitating media node.
| cmpxchg8b wrote:
| I got a Wasp T12 Speechtool - it's well weapon
| LeonM wrote:
| I've worked on something similar while in college. HDMI is
| actually a fairly simple protocol, based on VGA. It still has
| scanlines and such, but the signals are digital instead of
| analog. So instead of a RAMDAC, you have the HDMI encoder chip.
| You typically need control some i2c interface to set the HDMI
| encoder chip in the correct mode, but that's about it.
| raverbashing wrote:
| i2c is also for EDID https://blog.danman.eu/emulating-hdmi-
| connection/
| unixhero wrote:
| I remember i2c support was added to the Linux kernel. I never
| understood what it is.
|
| Next in line is BPF, which is also unclear.
| spicyjpeg wrote:
| I2C is basically "USB for things where USB would be
| overkill". It's a standardized protocol [1] that allows for
| one host to communicate with up to 128 different devices on a
| shared serial bus consisting of two wires. The specification
| does not define any discovery mechanism or higher-level
| functionality on top of basic packet sending and receiving,
| so I2C is meant to be used in cases where the host already
| knows what is connected and has the appropriate drivers set
| up (hence why embedded Linux devices typically use a "device
| tree" or similar configuration file to tell the kernel about
| their I2C hardware). Many of the chips used in modern
| electronics are either controlled entirely via I2C or use it
| as a configuration port in addition to a separate high-
| bandwidth interface for data; the accelerometer, power
| management chip, audio DAC, display and cameras in your phone
| all have I2C interfaces.
|
| 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_Identifica
| tio...
|
| [3] https://en.wikipedia.org/wiki/Serial_presence_detect
| irdc wrote:
| I2C is a simple serial communications protocol typically used
| for things like configuring on-board devices and reading
| sensors.
|
| BPF is anything but simple.
| elric wrote:
| If you're talking about (e)BPF, the (extended) Berkeley
| Packet Filter, the easiest way to think about it is like a
| tiny virtual machine running inside the kernel, which can
| execute "simple" commands that would otherwise be very slow
| or very complex from within userspace. The traditional
| example would be counting the number of packets being sent
| out by a network interface. But it turns out that eBPF is
| massively more general purpose than that, allowing people to
| develop all kinds of monitoring applications.
| spicyjpeg wrote:
| It's worth mentioning that HDMI encoder chips are actually
| quite difficult to get hold of as a hobbyist; the HDMI
| association prohibits their sale to anybody who has not signed
| the relevant NDAs, paid membership fees and whatnot. The
| project shown here gets around this by using a freely available
| DVI encoder chip instead, which works fine (the HDMI
| specification mandates backwards compatibility with DVI) but
| lacks support for a number of HDMI-only features such as audio
| and higher resolutions.
|
| 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.
| raphlinus wrote:
| This is a good reason to bit-bang the protocol. It is in fact
| possible to get HDMI including audio out of an RP2040, as is
| demonstrated by infones[1], a NES emulator.
|
| [1]: https://github.com/shuichitakano/pico-infones
| phh wrote:
| Based on what you said, you didn't actually look at HDMI
| protocol, only the protocol exposed to your HDMI encoder chip.
| You could have such a protocol on Thunderbolt 3 encoder chip.
|
| 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)
| kimburgess wrote:
| That's only the case in the (relatively) shiny new 2.1 spec
| with FRL. Prior versions are TMDS with 3 channels for red,
| green, blue, along with a clock. The audio and InfraFrames
| slot into the data islands in blanking periods on those
| signals.
| phh wrote:
| Thanks for the complementary infos. YCbCr420 (which you
| can't just mux on the channels directly?) dates back to
| HDMI 1.4 though
| monocasa wrote:
| As the source device, you can simply choose not to send
| YCbCr420.
| hansihe wrote:
| While that's true, you really only need to blast out RGB data
| to get an image on screen. Most of what you are talking about
| is layered on top and optional.
|
| I did a tiny HDMI implementation in an FPGA for a project,
| the TMDS implementation was what took the longest.
| LeonM wrote:
| > Based on what you said, you didn't actually look at HDMI
| protocol, only the protocol exposed to your HDMI encoder
| chip.
|
| 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.
| NovemberWhiskey wrote:
| If you only want to drive the monitor in DVI compatibility
| mode, you don't need very much because the interface is (as you
| describe) fairly simple and electrically compatible - if you
| actually want "real" HDMI then it's much more complex.
| HeckFeck wrote:
| How does its complexity compare to DisplayPort?
| monocasa wrote:
| HDMI is simpler to have a simple implementation; DisplayPort
| is simpler to have a fully featured implementation.
|
| 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.
| jwells89 wrote:
| I'd love to see something like this for late 90s through mid 00s
| computers, because many of those machines can still find modern
| uses but are awkward to use with modern high-resolution displays,
| even if they can sometimes be adapted digitally (DVI-equipped
| machines). Of course you can always grab an old monitor to pair
| with said machine, but that comes with heavy picture quality
| concessions in the case of LCDs, and good CRT monitors are
| becoming rare and expensive.
|
| 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.
| jandrese wrote:
| Just be aware that old machines can bog way down when you start
| asking them to push millions of pixels. Their old graphics
| subsystems were never designed to handle that much data, bus
| widths are a major bottleneck.
| jwells89 wrote:
| Yeah that's a good point. There's definitely some machines in
| that bracket that are capable since with the right GPUs they
| could drive similar contemporary displays though (G5 tower
| with circa 2005 2560x1600 Apple display for example), and
| it'd be great to not be restricted to only those old GPUs to
| gain that capability.
|
| For older machines even cleanly driving a new 1920x1080
| display without a dongle would be a nice upgrade.
| haunter wrote:
| Are there any recommended made to oder PCB services if you just
| want a card? Googling around seems to be a lot of options all
| over the world but maybe some HNers have experience with some of
| them.
| mikecoles wrote:
| JLCPCB has worked for me. There are others, but I haven't had
| the need to look elsewhere. OSHPark is another I recall.
|
| https://jlcpcb.com/ https://oshpark.com/
| geerlingguy wrote:
| And PCBWay.
| mmastrac wrote:
| JLCPCB is great as long as your components don't get too
| small. They made a few boards for me with a tiny component
| that just didn't work. I think they vastly overestimate their
| minimum trace size.
| prmoustache wrote:
| "the brown colour is displayed incorrectly as dark yellow"
|
| I understand what it means in an RGB context but it is the first
| time I seesomeone mentionning dark yellow as a color.
| marceldegraaf wrote:
| There's a lot to say about the color brown :-)
| https://www.youtube.com/watch?v=wh4aWZRtTwU
| zare_st wrote:
| I have a couple of vintage computers. One is my original first
| computer. While there is a cheap expansion that would allow me to
| hook up any VGA screen on it, the part of the experience is the
| screen.
|
| 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.
| Teknoman117 wrote:
| My main trouble with the emulators/virtual machines is that
| late-90s and early-00s Windows/DirectX games are a huge dead
| spot.
|
| 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...
| sydbarrett74 wrote:
| Awesome work, Yeo!
|
| Sorry if I'm asking a duplicate question, but have you considered
| submitting this to Hackaday?
___________________________________________________________________
(page generated 2023-09-11 22:01 UTC)