My first PC computer came with Hercules card! Awesome resolution, but barely can play most of the games. So I hacked one game https://www.mobygames.com/game/6522/trolls/ to run on it.
Here is what it involved, although it was barely playable. I've found where the game references the 0xA0000 addresss - e.g. the VGA 320x200, then I wrote a stupid TSR program, and had to hack in few places the game to refer to a buffer I had in my TSR (it was at fixed address, so it was easier). Then on every interrupt (I can't remember exactly what), it'll read the pixels and transforms then (well in a shitty way, that somehow made pixels work - how that last bit worked without even caring about the palette I don't know - maybe I was lucky). It was fun experiment, and it worked, but maybe 8-10fps or something like this...
I've also found this message - https://www.mobygames.com/game/6522/trolls/trivia/ - but back then I could not read/understand english that well so wasn't sure what it was about, and that it was an actual trolling from the programmers - lol ;) - from the page above:
"Trivia
Hidden Message
This message can be found in the program executable:
"This game was written on a very slow schneider 10mhz 286 with lots of wait states. If for some reason on your very fast xxxx 25mh 486 this game seems to be fast or unplayable, do no blame us for it was a penny pinching boss who would not buy us reasonable pc's to work on. signed THE PROGRAMMERS OF FLAIR SOFTWARE"
Back in the day I guess for me and my peers it was pretty normal to use some CGA to hercules utility to be able to play Accolades Test Drive on our amber or green monochrome screens with Hercules cards. I always wondered what CGA looked like. Turned out it is really low res and the 4 colors are ugly. Hercules was the much better choice, especially for productivity
Wild! I wish I had that utility back then! I'm glad though so many other games supported the Hercules. The machine was used by my uncle who went to the States, and he used it mainly for AutoCAD.
I knew that Hercules existed but I had never seen one or found any documentation for its graphics mode. Then I saw some graphics code for it (which I disassembled with debug, probably debug.com and not debug.exe!) and stared at it until I had figured out how it worked.
The Hercules card was the first widely popular non-IBM standard for the IBM PC. It got as much mainstream software support as IBM's own CGA or EGA (and far more than Plantronics, or IBM's PGC). Business software like Lotus and Harvard Graphics, and games like Microsoft Flight Simulator and SimCity, support Hercules. (Flight Simulator's support for Hercules singlehandedly turned many 1980s PCs into gaming machines.)
The ultimate proof of the Hercules standard's power is that everyone else cloned it, whether in discrete video cards or in motherboards with integrated video. I guess this video is evidence that the Hercules standard is so simple that someone today can implement it at home. I suppose that's why Hercules, the company, couldn't maintain its market lead after the EGA era; the same thing happened to Hayes modems.
Oh, wow. That takes me back to my first PC, an Amstrad PC1512 (dual 5¼"), which came with CGA and B/W monitor.
I tricked that baby out with additional RAM (640 kB really was enough for most people), a 32 MB HD on an ISA card, and, importantly in this context, a Hercules card. The latter was switchable, so you still could run CGA games, while enjoying the crisp text and line graphics of Hercules.
This takes me back. My first PC was a decommissioned CAD. It was a WYSE branded AT compatible with a passive-mainboard (i.e. the mainboard was just the bus, and the CPU was on a carrier that plugged into the bus), and an HGA connected to an amber display.
As an aside, the Sierra adventure games supported HGA, but many of them were designed for color, making certain puzzles rather difficult to solve.
Hercules is an odd pick for a vintage board recreation. Did the original card have anything that made it particularly special or interesting?
Hercules Plus supported changing the text font without burning a ROM. As someone who never liked the original IBM PC font, that would have been a welcome feature before it came to EGA/VGA.
When doing development for Windows in the early Windows 3 days, if you had a Hercules card and monitor in addition to a VGA one you could run the debugger on the Hercules. This was a much nicer setup than debugging everything on the VGA.
This worked for any mono card. Mono was at segment 0xb000, Colour text was at 0xb800, VGA was at 0xa000.
I used to run Turbo Debugger on one monitor, and commercial games I was fiddling with in various ways on the other. You could break into code without disrupting the VGA registers.
* 16 special characters for game support
* 15 characters for word-processing editing support
* 96 characters for the standard ASCII graphics set
* 48 characters for foreign-language support
* 48 characters for business block-graphics support (for the drawing of charts, boxes, and tables using single and double lines)
* 16 selected Greek characters
* 15 selected scientific-notation characters
In addition, a lot of the lower-end CGA monitors at the time didn't have real great native resolution (i.e. the 'dot pitch'). They would generally be fine for playing games in low res mode, but not that great for doing business work in high res mode.
The better CGA monitors had finer dot pitch, but those were usually more expensive.
In 1982, that was a huge upgrade at the time. CGA’s graphic mode as 320x240. Hercules’ graphic mode resolution was 720 × 348. EGA didn’t arrive for two more years. Anyone doing graphics before EGA would use Hercules cards. Even once EGA arrived, while it did add 16 colors, the resolution was only 640 × 350 in color mode. If you were doing CAD, every pixel counted.
Here is what it involved, although it was barely playable. I've found where the game references the 0xA0000 addresss - e.g. the VGA 320x200, then I wrote a stupid TSR program, and had to hack in few places the game to refer to a buffer I had in my TSR (it was at fixed address, so it was easier). Then on every interrupt (I can't remember exactly what), it'll read the pixels and transforms then (well in a shitty way, that somehow made pixels work - how that last bit worked without even caring about the palette I don't know - maybe I was lucky). It was fun experiment, and it worked, but maybe 8-10fps or something like this...