VOGONS


Reply 20 of 53, by Grzyb

User metadata
Rank l33t
Rank
l33t

Once upon a time, I've found this...

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 21 of 53, by mkarcher

User metadata
Rank l33t
Rank
l33t
Jo22 wrote on 2024-12-15, 15:34:

Edit: Or how about that polarity thing to display EGA 640x350 on VGA monitors.
Can the same circuit be used to make Hercules look full screen/non-squashed?

That's exactly what I was thinking about when suggesting to emulate Hercules on VGA: Put it into the EGA 640x350 mode, pick the higher dot clock to fit 720 instead of 640 pixels into a line, and you are done, including a 4:3 picture out-of-the-box.

Reply 22 of 53, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

That is sounding like the sensible avenue... as I was trying to say in my last post edit, doing it the way VGA does CGA might be a non starter. I have no doubt the original implementations of EGA can do that, and also ISA VGA cards with full EGA compatibility can do it, but where do we start running into "only does standard modes EGA emulation"? Because it doesn't get us much further if the same chipsets that dropped Hercules support don't do full EGA either. Or we only get some "tweener" cards working, and most AGP won't play ball.

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

Reply 23 of 53, by mkarcher

User metadata
Rank l33t
Rank
l33t
BitWrangler wrote on 2024-12-16, 14:53:

That is sounding like the sensible avenue... as I was trying to say in my last post edit, doing it the way VGA does CGA might be a non starter. I have no doubt the original implementations of EGA can do that,

I'm not sure I understand you correctly. If you expect the "original implementation of EGA" to have better CGA compatiblity than a random PCI VGA card, that's not true. IBM designed the EGA to be "BIOS compatible" to the CGA cards with some small additions like allowing cursor positioning and display page selection via I/O port access, as well as the VSYNC/BLANK feedback from the status register. No IBM-made EGA or VGA card ever had port level compatibility to the IBM CGA card. This is a unique selling point of the third-party clone cards.

Actually, there are some differences between CGA modes displayed on an EGA card, and CGA modes displayed on a VGA card: The EGA card displays CGA modes at CGA/NTSC frequencies, 15kHz HSync, 60Hz VSync. On the other hand, the VGA card line-doubles the modes to 31.5kHz HSync, 70Hz VSync. Both the refresh rate (and thus game speed if it is frame rate locked) and horizontal sync rate deviates on VGA. Any software that is so close to the CGA that it requires a certain horizontal rate is likely accessing CGA in other ways that are not supported on EGA/VGA cards as well (e.g. in-frame CGA palette switching).

IBM did provide hardware support for Hercules compatible video memory layout on both the EGA and VGA card - although no mode actually uses it. Given that Hercules compatible video memory layout is just one extra signal compared to CGA graphics mode compatible video memory layout, IBM didn't pay a notable price for it. The Olivetti/AT&T 640x400 monochrome mode has a memory layout very similar to the hercules 720x348 mode, and should be supportable in a similar way on VGA. Given that this mode is initialized via BIOS, you might be able to add the AT&T mode without VM86 I/O port trapping - as long as the software trying to use that mode doesn't verify that the mainboard BIOS is by Olivetti or AT&T.

Reply 24 of 53, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++
mkarcher wrote on 2024-12-16, 16:47:
BitWrangler wrote on 2024-12-16, 14:53:

That is sounding like the sensible avenue... as I was trying to say in my last post edit, doing it the way VGA does CGA might be a non starter. I have no doubt the original implementations of EGA can do that,

I'm not sure I understand you correctly. If you expect the "original implementation of EGA" to have better CGA compatiblity than a random PCI VGA card, that's not true. IBM designed the EGA to be "BIOS compatible" to the CGA cards with some small additions like allowing cursor positioning and display page selection via I/O port access, as well as the VSYNC/BLANK feedback from the status register. No IBM-made EGA or VGA card ever had port level compatibility to the IBM CGA card. This is a unique selling point of the third-party clone cards.

No I meant the EGA should be able to stretch to the hercules res as you said above. and the previous statement was referring to this ...

mkarcher wrote on 2024-12-16, 16:47:

Actually, there are some differences between CGA modes displayed on an EGA card, and CGA modes displayed on a VGA card: The EGA card displays CGA modes at CGA/NTSC frequencies, 15kHz HSync, 60Hz VSync. On the other hand, the VGA card line-doubles the modes to 31.5kHz HSync, 70Hz VSync. Both the refresh rate (and thus game speed if it is frame rate locked) and horizontal sync rate deviates on VGA. Any software that is so close to the CGA that it requires a certain horizontal rate is likely accessing CGA in other ways that are not supported on EGA/VGA cards as well (e.g. in-frame CGA palette switching).

... way that VGA does CGA and I am thinking that the doubling of hercules frequencies will push the it out the edge of what many VGA monitors can handle, since although they do higher frequencies, it's often not continuous. They do a band here, then they do a band there, or the bands are tight and they're more like spot frequencies.

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

Reply 25 of 53, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie
MatchesMalone wrote on 2024-12-14, 00:51:
Hi! I have a Pentium MMX 233 with a SiS 6326 PCI video card and a Samsung Syncmaster 3 monitor. Out of complete nostalgy and not […]
Show full quote

Hi!
I have a Pentium MMX 233 with a SiS 6326 PCI video card and a Samsung Syncmaster 3 monitor.
Out of complete nostalgy and nothing else, I'd love to run some old games (Prince of Persia, Leisure Suit Larry, Sokoban, etc) in Hercules mode (this was monochrome, right? I remember running things in black and white, amber and green phosphor monitors).
Is that possible? I've run for example Prince of Persia in CGA and EGA modes, but I'm guessing Hercules was too different on a hardware level and VGA cards do not work that way?
Is there a command/utility to emulate that video mode? (similar to what simcga.com did back in the day?).

Thanks!

I take it that you are primarily interested in the “look and feel” rather than actual, accurate Hercules emulation.
If that is true, you could instead take a look at my open source SCI driver code.
With an appropriate driver you could play SCI0-based games like Leisure Suit Larry in a mode that merely mimics Hercules, but is actually a normal 640x480 1BPP VGA mode.
The overhead would not be larger than with any of the other drivers, because SCI initially renders everything to an internal buffer, anyway, and then lets the respective video driver convert it.

Reply 26 of 53, by MatchesMalone

User metadata
Rank Newbie
Rank
Newbie
Benedikt wrote on 2024-12-20, 18:17:

I take it that you are primarily interested in the “look and feel” rather than actual, accurate Hercules emulation.

Hi! Well, yes, I think so. But you know, I built this machine to be as close as the real thing as possible. I find this discussion of actual emulation quite interesting.
However, I will definitely try your driver and let you know. Thank you!

Reply 27 of 53, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie
MatchesMalone wrote on 2024-12-23, 03:03:

However, I will definitely try your driver and let you know. Thank you!

Well, you would have to write the driver, first, because the existing ones are for Plantronics ColorPlus and Sigma Designs Color 400, only, but it could be done.

Reply 28 of 53, by Grzyb

User metadata
Rank l33t
Rank
l33t
MatchesMalone wrote on 2024-12-14, 00:51:

Sokoban

This made me think...

Sokoban is a CGA game, running in 320 x 200 x 2bpp, ie. BIOS mode 4 or 5.
It doesn't even have Hercules mode.
If you used to play it on a Hercules, it must have been via some CGA emulator, which uses 640 x 200 x 1bpp mode.

On CGA/EGA/VGA, 640 x 200 x 1bpp = BIOS mode 6.
So, making that game to look like on the CGA-emulating Hercules may be as easy as changing a single byte in the executable.

So, can anybody recommend a good disassembler for DOS executables?

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 29 of 53, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

Hacker's View / hiew ?

Reply 30 of 53, by Grzyb

User metadata
Rank l33t
Rank
l33t
The attachment before.png is no longer available
The attachment after.png is no longer available

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 31 of 53, by mkarcher

User metadata
Rank l33t
Rank
l33t
Grzyb wrote on 2024-12-23, 10:23:

If you used to play it on a Hercules, it must have been via some CGA emulator, which uses 640 x 200 x 1bpp mode.

My copy of Sokoban (from not-that-reputable sources) came with a small executable COM file called "!!FARBE" ("farbe" is German for color), which is a minimalistic CGA emulator for Hercules. IIRC it was around 750 bytes. A lot of Sokoban copies floating around in the BBS scene might have an emulator bundled with it.

Reply 32 of 53, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

I have a CGA emulator for Hercules, too: HGCGA.
It patches the video BIOS to enable a customized 640x300 pixel Hercules mode with a framebuffer at segment b800h.
It does not do any transformation, but merely keeps the CGA pixel data and leaves every third line black.

The video BIOS patching could be repurposed for a primitive driver that replaces the 4-color CGA mode with the high-res 2-color CGA mode with e.g. green foreground color.

Reply 33 of 53, by Grzyb

User metadata
Rank l33t
Rank
l33t
Benedikt wrote on 2024-12-23, 21:51:

The video BIOS patching could be repurposed for a primitive driver that replaces the 4-color CGA mode with the high-res 2-color CGA mode with e.g. green foreground color.

Yes, there's already a program that changes the VGA palette on setting mode 4 or 5:
CGA4VGA - correcting/altering CGA graphic modes colors on VGA
It should be easy to make it also set mode 6.

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 34 of 53, by Jo22

User metadata
Rank l33t++
Rank
l33t++
Grzyb wrote on 2024-12-24, 03:28:
Yes, there's already a program that changes the VGA palette on setting mode 4 or 5: CGA4VGA - correcting/altering CGA graphic mo […]
Show full quote
Benedikt wrote on 2024-12-23, 21:51:

The video BIOS patching could be repurposed for a primitive driver that replaces the 4-color CGA mode with the high-res 2-color CGA mode with e.g. green foreground color.

Yes, there's already a program that changes the VGA palette on setting mode 4 or 5:
CGA4VGA - correcting/altering CGA graphic modes colors on VGA
It should be easy to make it also set mode 6.

VERDE utility does re-colour CGA modes on VGA cards, too.
Some sofware to do fake EGA scanlines?

"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 35 of 53, by mkarcher

User metadata
Rank l33t
Rank
l33t
Benedikt wrote on 2024-12-23, 21:51:

I have a CGA emulator for Hercules, too: HGCGA.
It patches the video BIOS to enable a customized 640x300 pixel Hercules mode with a framebuffer at segment b800h.
It does not do any transformation, but merely keeps the CGA pixel data and leaves every third line black.

That's exactly what the CGA emulator I got "bundled" with Sokoban also did. Other emulators also installed a timer handler that copied the second line to the third line, which removed the black stripes, at the same time adding artifacts similar to bad deinterlacing as soon as anything moved. What's the deal with mode 13h/93h in your emulator on the hooked "get video mode" function?

Reply 36 of 53, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

I remembered Aopen did a SiS card so dug their site out of the wayback, found the filename of the DOS package dosr225.exe and clawed that out of the net, but it's Chinese character set support it seems, not any DOS display mode or backward compatibility tools.

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

Reply 38 of 53, by MatchesMalone

User metadata
Rank Newbie
Rank
Newbie

So yeah, probably there are a small number of games that were natively for monochrome, perhaps most games I played on an Hercules I did so by emulating CGA with utilities like SIMCGA. Prince of Persia I think it run natively on Hercules also?