capturing vga output from dos on winxp

This commit is contained in:
Wouter Groeneveld 2022-11-27 17:09:14 +01:00
parent 0a7d7dd445
commit 562b4f0150
10 changed files with 79 additions and 4 deletions

View File

@ -36,4 +36,6 @@ Thanks so much Peter, you made my day---or week, or month. Things have been awfu
In case you're wondering what the heck Gobliins 2 is about, read [my short review from 2006](https://jefklakscodex.com/games/gobliins-2/) that is in dire need of restoration. My wife and I are replaying the game---I promise I'll write a more lengthy report sometime soon.
I still haven't found a decent way to capture VGA output though... Still lots to do in Retro Land!
I still haven't found a decent way to capture VGA output though... Still lots to do in Retro Land!
Addendum, 27 Nov 2022: capturing VGA output? [Check!](/post/2022/11/capturing-vga-output-from-dos-on-winxp/)

View File

@ -30,10 +30,10 @@ Adding _Q1_ to the title would have induced too much stress. Before you know it,
## WinXP Stuff
- Buy an old PCI-Express VGA Capture card. That way, I hope to directly capture the video stream from the 486/Win98 PC. I only have one slot left and have been unable to find the matching one on eBay so far. Upscaling and capturing VGA, especially several DOS modes, is very tricky, according to the VOGONs forums.
- Buy an old PCI-Express VGA Capture card. That way, I hope to directly capture the video stream from the 486/Win98 PC. I only have one slot left and have been unable to find the matching one on eBay so far. Upscaling and capturing VGA, especially several DOS modes, is very tricky, according to the VOGONs forums. (27 Nov 2022: [check!](/post/2022/11/capturing-vga-output-from-dos-on-winxp/))
- The XP and Win98 machines share a screen and keyboard/mouse using an USB Hub. They also share speakers but I haven't invested in or built a mixer yet, meaning replugging the audio in cable every time I switch devices. That can't be right.
## Others
- Find a cheap way to capture HDMI output. The GameCube now has a HDMI upscaler, and the Evercade console also outputs HDMI, so I could use that to capture my own screenshots for Jefklak's Codex. There are so many options to choose from...
- Find a cheap way to capture HDMI output. The GameCube now has a HDMI upscaler, and the Evercade console also outputs HDMI, so I could use that to capture my own screenshots for Jefklak's Codex. There are so many options to choose from... (27 Nov 2022: [check!](/post/2022/11/capturing-vga-output-from-dos-on-winxp/))
- Is taking photos of your Nintendo DS really the only way to capture the screen? The 3DS is modded and has a screenshot feature now, but ARM7 mode does not.

View File

@ -0,0 +1,59 @@
---
title: "Capturing VGA Output From DOS On Windows XP"
date: 2022-11-30T10:00:00+01:00
tags:
- screenshots
- winxp
- dos
- am486
categories:
- retro
---
It took a long time to fill that last available slot on the [WinXP build motherboard](/post/2020/10/building-a-core2duo-winxp-retro-pc/): the PCI-E 1x is now officially claimed by an Avermedia C127 VGA/HDMI capture card, also known as the _Game Broadcaster HD_. I've had this on my [retrocomputing projects list](/post/2022/02/retrocomputing-projects-2022/) for almost a year now. I occassionally wander around in the old hardware section on eBay and happened to spot one for only `€35`---sold! It's quite a slim card with a low profile, as you can see:
![](../avermedia.jpg "The Avermedia C127 with VGA and HDMI in ports on the left.")
I wanted a capture card with the following properties:
- One that's compatible with Windows XP and functions in a PCI-E 1x slot, since my "best" desktop computer is the WinXP machine. It never stopped being 2003 here!
- One that's still able to record analog VGA signals instead of being optimized for modern HDMI-enabled machines.
- Ideally, one that can do both, as it would be cool to be able to capture GameCube stuff (that one is already [outputting HDMI](/post/2021/12/three-gamecube-mods/))
Therefore, I had zero interest in buying a modern (and expensive!) Gato USB3+ external device that would work with a MacBook. It's more fun to use (semi-)vintage equipment to record vintage equipment---_we need to go deeper!_
Unfortunately, AverMedia removed all their older drivers since they don't have anything in their lineup anymore that can capture VGA. After a bit of digging, I uncovered http://www.ibmfiles.com/pages/avermedia.htm where C127 Win32 drivers can still be found, together with either "AVer MediaCenter 3D" or the later "RecCenter". I went with the former. The installation process was painless, and the fist thing I tried to hook up was my MacBook.
_Out of range_. Crap.
I figured the laptop is too new and its resolution/refresh rate is incompatible with the capture card, and reverted to my a few years older Windows work laptop: success! Okay, so HDMI works, but the real challenge is VGA, since old DOS resolutions can be all over the place according to [Nerdly Pleasures](http://nerdlypleasures.blogspot.com/2014/09/oddball-ega-and-vga-resolutions-when.html). Only VGA mode `12h` runs at 60Hz, all others run at 70Hz, which of course most cheap capture cards don't support. Let's see here, boot Duke Nukum I, connect the VGA cable from the [Cirrus Logic CL-542X-VLB-U](/post/2020/09/reviving-a-80486/) to the Broadcaster in port, and...
_Out of range_. Crap!
I turned to the VOGONS forums looking for answers. In the [VGA Capture thread](https://www.vogons.org/viewtopic.php?f=63&t=26661&p=625653&hilit=avermedium%20avermedia%20out%20range#p625653), Elia1995 says:
> Every single VGA to HDMI converter I tested with my capture card (Avermedia live gamer HD lite) just gives me an "Out of range" or pure black screen in RECentral.
Okay, that means there's no point in investing in a HDMI upscaler like MiSTeR? The MiSTeR project is geared specifically towards vintage console hardware, not PC DOS hardware, but I've read reports of it working there, and I'm sure it's those blasted VGA modes that are causing trouble again. Luckily, someone else chimes in:
> Before I found a good VGA to HDMI converter, I used to work around it using a TSR I wrote that intercepts INT 10h and forces the VGA output to 480-line modes. It worked as long as DOS was able to boot (so, no BIOS setup screens). Most assume 640x480 instead of 720x480 so the TSR also allows you to force the 8-pixel wide alphanumeric mode.
The answer is the [DOSLIB](https://github.com/joncampbell123/doslib), a collection of useful libraries for writing MS-DOS software that contains `vga240.exe` which, while initiated, forces VGA mode to output in 60Hz instead of 70Hz, hopefully getting rid of the capture card's confusion along the way. The binary from the `hw/vga/dos860T` folder did the trick:
![](../486dn1.jpg "A captured still from Duke Nukum I running on authentic hardware.")
As soon as the `vga240.exe` utility is loaded, I notice the DOS prompt looks weird, but at least the AverMedia card recognizes the video signal! However, the tool chokes on something like 3DMenu, which apparently runs at yet another resolution, so the workaround of the workaround (similar to the one as proposed [in this thread](https://www.vogons.org/viewtopic.php?f=5&t=33392&p=313993&hilit=avermedium%20avermedia%20out%20range#p313993)) is to _first_ run something that works, like Duke's CGA adventure, and _then_ switch to something else.
I now can finally capture material that I couldn't before, like during a benchmark or sysinfo application:
![](../486bench.jpg "Superscape's Benchmark 1.0 runs '3D' at 31 FPS.")
![](../486sysinfo.jpg "System Information from my 486 PC, through the VGA capture in port.")
The only downside with the `vga240` trick is its scope: it needs to load first before the C127 recognizes the vieo stream, meaning capturing BIOS screens is impossible. Or is it? Apparently, once you're good to go using the above method, simply rebooting---thereby unloading the 60Hz trick---does not immediately cause the signal to drop. Here's the Award Software SysConfig overview just before starting the OnTrack partition from my embedded SD card:
![](../486bootsequence.jpg "A part of the boot sequence of the old PC successfully captured.")
Its resolution is still a bit messy: AverMedia's software isn't great at dynamically switching or correctly configuring it. You can also use VLC to directly "open" a capture device; the C127 should be in the combobox as a DirectShow device. In VLC, configuring the resolution is easier, but switching between capture software while both are active doesn't work as the stream is in use.
There's still much to discover: booting Windows 3.11 on `800x600` drops the signal after the logo (that still uses the VGA mode from the DOS prompt) and I have yet to try the more demanding games. But I'm one step closer to taking my own screenshots on _native_ hardware. Consider me happy!

View File

@ -1,4 +1,18 @@
[
{
"author": {
"name": "Jan-Lukas Else",
"picture": "/pictures/jlelse.blog"
},
"name": "“Bloggers, Dump Your Twitter Card Tags”",
"content": "Its crazy to think how much bandwidth is being used by metadata tags. Every company wants to invent its own new system. Wouter Groeneveld gives a brief overview and recommends getting rid of them (for the most part). I agree with him completely...",
"published": "2022-11-27T15:47:32+01:00",
"url": "https://jlelse.blog/links/2022/11/dump-twitter-card-tags",
"type": "bookmark",
"source": "https://jlelse.blog/links/2022/11/dump-twitter-card-tags",
"target": "https://brainbaking.com/post/2022/11/bloggers-dump-your-twitter-card-tags/",
"relativeTarget": "/post/2022/11/bloggers-dump-your-twitter-card-tags/"
},
{
"author": {
"name": "James Ravenscroft",

View File

@ -1,6 +1,6 @@
<div class="video-mask">
<video width="100%" controls preload="metadata">
<source src="{{ index .Params 0 }}#t=0.5" type="video/mp4">
<source src="{{ index .Params 0 }}" type="video/mp4">
Your browser does not support HTML video. Here's a link to the MP4-encoded video instead: <a href="{{ index .Params 0 }}">{{ index .Params 0 }}</a>.
</video>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB