VOGONS

Common searches


EGA/VGA emulation on Hercules

Topic actions

First post, by m1so

User metadata
Rank Member
Rank
Member

Out of curiosity, were any EGA/VGA emulators for Hercules cards ever written? CGA emulation works on Hercules and very well, how much harder would it be to create a EGA or VGA emulation program for Hercules monochrome cards? Sure, most very old EGA/VGA software supports CGA as well, but some like for example freeware/shareware games made in the 640x350 EGA mode do not, and the resolution is fairly close to the Hercules one.

Reply 1 of 20, by tayyare

User metadata
Rank Oldbie
Rank
Oldbie

I never ever heard of anything like it, and as far as I know, Hercules Graphics cards can not emulate EGA or VGA. Only CGA.

GA-6VTXE PIII 1.4+512MB
Geforce4 Ti 4200 64MB
Diamond Monster 3D 12MB SLI
SB AWE64 PNP+32MB
120GB IDE Samsung/80GB IDE Seagate/146GB SCSI Compaq/73GB SCSI IBM
Adaptec AHA29160
3com 3C905B-TX
Gotek+CF Reader
MSDOS 6.22+Win 3.11/95 OSR2.1/98SE/ME/2000

Reply 2 of 20, by jwt27

User metadata
Rank Oldbie
Rank
Oldbie
tayyare wrote:

I never ever heard of anything like it, and as far as I know, Hercules Graphics cards can not emulate EGA or VGA. Only CGA.

The card itself can't do CGA in most cases. You'd have to use software drivers for that. Would be cool if there were any drivers like this for VGA too!

I found a Herc card the other day which apparently supports 720x700... VGA would easily fit in there.

Reply 3 of 20, by tayyare

User metadata
Rank Oldbie
Rank
Oldbie
jwt27 wrote:
tayyare wrote:

I never ever heard of anything like it, and as far as I know, Hercules Graphics cards can not emulate EGA or VGA. Only CGA.

The card itself can't do CGA in most cases. You'd have to use software drivers for that. Would be cool if there were any drivers like this for VGA too!

I found a Herc card the other day which apparently supports 720x700... VGA would easily fit in there.

Not in "most" cases, but all cases as far as I'm concerned. You nee to run a TSR called "CGA.COM" or similar. 🤣

Believe me something like a "VGA.COM" would be godsend for us, who used these graphic cards during the days when VGA is too expensive and Hercules was the poor man's only affordable graphic cards...🤣

GA-6VTXE PIII 1.4+512MB
Geforce4 Ti 4200 64MB
Diamond Monster 3D 12MB SLI
SB AWE64 PNP+32MB
120GB IDE Samsung/80GB IDE Seagate/146GB SCSI Compaq/73GB SCSI IBM
Adaptec AHA29160
3com 3C905B-TX
Gotek+CF Reader
MSDOS 6.22+Win 3.11/95 OSR2.1/98SE/ME/2000

Reply 4 of 20, by jwt27

User metadata
Rank Oldbie
Rank
Oldbie
tayyare wrote:
jwt27 wrote:
tayyare wrote:

I never ever heard of anything like it, and as far as I know, Hercules Graphics cards can not emulate EGA or VGA. Only CGA.

The card itself can't do CGA in most cases. You'd have to use software drivers for that. Would be cool if there were any drivers like this for VGA too!

I found a Herc card the other day which apparently supports 720x700... VGA would easily fit in there.

Not in "most" cases, but all cases as far as I'm concerned. You nee to run a TSR called "CGA.COM" or similar. 🤣

Believe me something like a "VGA.COM" would be godsend for us, who used these graphic cards during the days when VGA is too expensive and Hercules was the poor man's only affordable graphic cards...🤣

I thought maybe some of those combo VGA/CGA/EGA/Herc cards could do this in hardware too. No idea if anything like that exists, but it doesn't seem impossible.
In fact I was trying out some of these combo cards a few days ago, but I couldn't check if any of them did this since my file system suddenly got messed up 🙁

Reply 5 of 20, by tayyare

User metadata
Rank Oldbie
Rank
Oldbie
jwt27 wrote:

I thought maybe some of those combo VGA/CGA/EGA/Herc cards could do this in hardware too. No idea if anything like that exists, but it doesn't seem impossible.
In fact I was trying out some of these combo cards a few days ago, but I couldn't check if any of them did this since my file system suddenly got messed up 🙁

I was talking about pure Hercules cards. They can not emulate EGA or VGA. But of course there were combo cards which can do Hercules (Paradise Autoswitch EGA):

http://www.google.com.tr/url?sa=t&rct=j&q=&es … .79189006,d.d2s

GA-6VTXE PIII 1.4+512MB
Geforce4 Ti 4200 64MB
Diamond Monster 3D 12MB SLI
SB AWE64 PNP+32MB
120GB IDE Samsung/80GB IDE Seagate/146GB SCSI Compaq/73GB SCSI IBM
Adaptec AHA29160
3com 3C905B-TX
Gotek+CF Reader
MSDOS 6.22+Win 3.11/95 OSR2.1/98SE/ME/2000

Reply 6 of 20, by Anonymous Coward

User metadata
Rank l33t
Rank
l33t

VGA is definitely not possible.
EGA would really be stretching it. There are only so many colours you can emulate with 1 shade of green.

"Will the highways on the internets become more few?" -Gee Dubya
V'Ger XT|Upgraded AT|Ultimate 386|Super VL/EISA 486|SMP VL/EISA Pentium

Reply 7 of 20, by jwt27

User metadata
Rank Oldbie
Rank
Oldbie
Anonymous Coward wrote:

VGA is definitely not possible.
EGA would really be stretching it. There are only so many colours you can emulate with 1 shade of green.

Too bad Hercules can't do 2 shades like MDA... If it did, you could probably fake more shades with some dithering tricks.

...Why does Herc only use 1 shade, anyway?

Reply 9 of 20, by m1so

User metadata
Rank Member
Rank
Member

How come CGA is so easily emulated then? Are there any differences between CGAs 320x200x4 mode and EGAs 320x200x16 other than some limited, hard to use hardware scrolling?

How about Tandy emulation? That is basically just 16 color CGA, no? Obviously, the shades could not be correctly reproduced, I am talking about just getting a recognisable/reasonably smooth picture from it. It would not make any games look better, but it would make it possible for non-CGA supporting games to run as well. AFAIK many Hercules systems in Hungary for example were 286s or 386s so the CPU power to run EGA/VGA games was there.

Reply 10 of 20, by Harekiet

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Hercules and CGA are pretty similar and you can enable the hercules video memory to the same location as CGA memory and then it works fairly easily.
CGA only has some io ports controlling graphics/text mode resolution and the colors.

Tandy is pretty similar to cga yes but I don't think the default memory location where games would expect the video memory to appear at maps to the hercules locations. So you'd need to copy data from there on some timer maybe.

EGA/VGA has 256kb of memory mapped to a 64kb region and you need IO writes to indicate how you wish to read/write to the video memory. There's no easy/fast way to emulate that.

Reply 11 of 20, by VileR

User metadata
Rank l33t
Rank
l33t
jwt27 wrote:

Too bad Hercules can't do 2 shades like MDA... If it did, you could probably fake more shades with some dithering tricks.

...Why does Herc only use 1 shade, anyway?

Probably to fit a single graphics page within 32KB. It does 2 shades of green in text mode (like MDA), 1 in graphics mode.

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 14 of 20, by idspispopd

User metadata
Rank Oldbie
Rank
Oldbie

Agree that this is not possible, or at least not without some kind of virtualization which would require too much CPU power.
Hercules covers the whole 64k between B000 and BFFF (if you configure it to single page mode it only covers B000 to B7FF so it can coexist with CGA/EGA/VGA).
For CGA emulation games write to the CGA are from B800 onwards and the emulation routine which is triggered by a timer interrupt copies and converts the data to the first Hercules page between B000 and B7FF.
EGA and VGA in graphics mode use the memory between A000 and AFFF. Since Hercules doesn't map memory here you'll need to map RAM there, either through the mainboard chipset or in V86 mode. And even then there are the already mentioned registers: If a byte gets written to some address, when reading the same address a totally different value might be delivered. And the interpretation of the byte written depends on previous writes to the registers.
So in theory using the power of a 386 it might be possible using V86 mode to write an emulation, but the resulting speed would probably be XT class. Of course you could use a faster machine, but why would you use a Hercules card there in the first place?

Reply 15 of 20, by cleansugar

User metadata
Rank Newbie
Rank
Newbie

Is it possible to make EGA's partial screen area pixels emulation?
Is it possible to read A000~AFFF with TSR program without EGA card, and TSR copies A000~AFFFF to RAM, and copies that RAM address to Hercules card area?

Reply 16 of 20, by root42

User metadata
Rank l33t
Rank
l33t
cleansugar wrote on 2023-01-31, 13:24:

Is it possible to make EGA's partial screen area pixels emulation?
Is it possible to read A000~AFFF with TSR program without EGA card, and TSR copies A000~AFFFF to RAM, and copies that RAM address to Hercules card area?

It would be even harder to just do that. EGA has something akin to bitplanes and als other registers than the CGA card. VGA is even more complicated, adding even more registers, and more RAM that is banked into the A000 segment. You would have to do a full VGA emulation including intercepting writes and reads to the VGA's IO ports.

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 17 of 20, by Jo22

User metadata
Rank l33t++
Rank
l33t++

It's possible with an external MMU.
They exist(ed) for 80286 systems. PC-MOS/386 supported at least one model.

I think it's also possible to use memory of an UMB card in the A segment, to simulate the MCGA video memory.

Well, at least the 64KB of the page frame.
VGA uses bank-switched memory in higher resolutions (256KB, 4 planes of 64KB each).
320x200 pels in 256c (mode 13h) can fit into 64KB, I suppose.

Leaves the simulation of the CRTC registers and VGA BIOS. A physical device with some logic circuitry may help hogging the VGA/MCGA ports the user software writes to,
then making them readable on another place by the CPU again.
Then, a VGA simulator does apply reformatting/dithering and uses the Hercules as an output

On a 386 or higher, some sort of softmpu could be installed in memory which would simulate VGA/MCGA logic in software, then use Hercules as an output device.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 18 of 20, by rmay635703

User metadata
Rank Oldbie
Rank
Oldbie
m1so wrote on 2014-11-08, 21:37:

Out of curiosity, were any EGA/VGA emulators for Hercules cards ever written?

Why not buy a EGA/VGA combo card that “emulates “ EGA on Hercules natively?

To emulate EGA or VGA on a plain Hercules card would make everything slow as molasses, simply not practical

Reply 19 of 20, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

AFAICR the areas that hercules capable cards/monitors persisted longest in, were the POS, travel agent and hotel industries, with some of them going into the millennium using them. This is even though VGA had become cheap enough and VGA mono monitors were produced for the market in mid 90s. What I am thinking though, is that if there were POS, travel agent or hotel type applications that were needing VGA, maybe one of these industries had a workaround for using it still on older systems, though I say older systems but I've seen Pentium boards with a Mono/Herc card in come from these applications. I think it was because they also built desks and consoles around the mono monitors and swapped the graphics board to new machines rather than rebuild all the desk infrastructure with VGA parts. Anyhoooo, so that would seem like most plausible avenue to explore to find a VGA emulator for hercules, but it might only do a handful of modes that were useful to those specific applications.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.