VOGONS


First post, by Nitroraptor53

User metadata
Rank Member
Rank
Member

Hi guys! I was wondering if there is any way to emulate Tandy and/or Plantronics Colorplus on a 486 with a VGA card?

Reply 1 of 15, by digger

User metadata
Rank Oldbie
Rank
Oldbie

Apparently there is indeed a way to emulate Tandy 1000 video modes on some VGA cards.
But it doesn't work with every game and it only works with certain VGA chipsets. See Re: Games that show 16 colors ONLY in Tandy / PCjr mode?

As for emulating Plantronics Colorplus modes, why would anybody ever want to do that?😂 There was zero support for that standard back in the day.

I assume you need that for software deveopment purposes? In that case, you might want to try PCem instead. It can emulate a wide range of computer models and hardware with very high accuracy, including the Plantronics Colorplus graphics card. https://pcem-emulator.co.uk/

Good luck, whatever fun project you're working on! 😃

Reply 2 of 15, by Nitroraptor53

User metadata
Rank Member
Rank
Member
digger wrote on 2020-03-01, 17:43:

As for emulating Plantronics Colorplus modes, why would anybody ever want to do that?😂 There was zero support for that standard back in the day.

Good luck, whatever fun project you're working on! 😃

Because it's awesome. I have PCem, I just want to play PX3 with Plantronics mode on a 486DX4/75.

Reply 4 of 15, by Nitroraptor53

User metadata
Rank Member
Rank
Member
derSammler wrote on 2020-03-01, 18:04:

Plantronics is the same as Tandy, only with the pixels laid out differently in video memory. And both are just CGA with more video memory anyway.

I don't think that's right...

Reply 5 of 15, by derSammler

User metadata
Rank l33t
Rank
l33t

No idea why people always "think" something is right or wrong. Technical information about that stuff is widely available.

https://en.wikipedia.org/wiki/Plantronics_Colorplus
https://www.seasip.info/VintagePC/plantronics.html and http://www.seasip.info/VintagePC/cga.html

Both are supersets of CGA with the additional modes simply possible due to more video memory. Only difference between Tandy and Plantronics is that Tandy uses chunky memory arrangement, while the Plantronics uses planar.

Reply 6 of 15, by digger

User metadata
Rank Oldbie
Rank
Oldbie

Actually, one notable difference between Tandy graphics (and PCjr graphics, on which it is based) on the one hand and CGA and Plantronics Colorplus on the other hand, is that the former used part of the system's conventional RAM as shared video memory, whereas the latter had separate discrete video memory.

Reply 7 of 15, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie

ATI Graphics Solution is compatible with PCP and way easier to obtain, so can be considered a "HW emulator". Problem is, it requires a CGA monitor or some external CGA to VGA signal converter.
It has 64KiB of VRAM so 640x200 in 16 colors is possible as well, using bit 7 to enable it, but that mode is even less known than original PCP. Also, the "16 colors" thing is a bit of a misnomer - it's actually 2x the same 8 colors, except at different brightness. Well, with the brown/yellow exception but that is a function of the monitor, not the card.

Reply 8 of 15, by digger

User metadata
Rank Oldbie
Rank
Oldbie

Cool. 🙂

That means someone could theoretically write an "AGS640.DLL" driver to make the ATI Graphics Solution work through dithering with 256-color Sierra SCI adventure games. See Question about Sierra's EGA640.DRV dithering

Reply 9 of 15, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie
Nitroraptor53 wrote on 2020-03-01, 17:50:
digger wrote on 2020-03-01, 17:43:

As for emulating Plantronics Colorplus modes, why would anybody ever want to do that?😂 There was zero support for that standard back in the day.

Good luck, whatever fun project you're working on! 😃

Because it's awesome. I have PCem, I just want to play PX3 with Plantronics mode on a 486DX4/75.

No, you don't! (For real!)
The Plantronics mode in Planet X3 converts the low-res Tandy tile sets at load-time and uses Tandy video memory write access emulation routines for the fade-in effects.
Both use horizontal pixel doubling, just the text output has been adapted from the CGA version, instead.
I know that, because I wrote that quick'n'dirty port.

If you really need the low-res artwork on a VGA machine, either emulate the Tandy mode or unpack the zx7-compressed files, rearrange the resulting raw pixel data from Tandy to VGA format and overwrite the VGA artwork with the recompressed result.

Reply 10 of 15, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie
digger wrote on 2020-03-02, 17:28:

Cool. 🙂

That means someone could theoretically write an "AGS640.DLL" driver to make the ATI Graphics Solution work through dithering with 256-color Sierra SCI adventure games. See Question about Sierra's EGA640.DRV dithering

You know, I actually thought about it. I'd like to try that sometime, now that I know how the ATI works. Perhaps it could be implemented for some AGI games as well, SQ2 for example have files named CGA_GRAF.OVL, EGA_GRAF.OVL - I think these are graphics back-ends? If a game uses the default EGA palette then it's exactly the same 16 colors (as CGA text modes) so a nice conversion is possible.

My problem right now is I don't have a CGA monitor (nor, frankly, do I want one, no room for it) so I'm using a convoluted setup of my own 5V level shifter, FPGA and OSSC to have modern video output. This setup produces unstable picture though (so much for a simple PLD approach). I guess OSSC doesn't like the 200-line modes of CGA. I need to try line doubling to get it to 640x400, maybe if my LCD monitor accepts this I can just use VGA input directly.

Reply 11 of 15, by digger

User metadata
Rank Oldbie
Rank
Oldbie
Deunan wrote on 2020-03-02, 23:17:

If a game uses the default EGA palette then it's exactly the same 16 colors (as CGA text modes) so a nice conversion is possible.

The extended EGA palettes were only available in 640x350 mode. This was to maintain downward compatibility with CGA monitors in the lower graphics modes. Since the AGI and 16-color SCI adventure games never made use of the 640x350 mode, they use the regular 16-color palette. The only exception being dark yellow, which is displayed as brown on EGA monitors, but will show up as an ugly mustard-like dark yellow on CGA monitors.

Reply 12 of 15, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie
digger wrote on 2020-03-03, 07:50:

The extended EGA palettes were only available in 640x350 mode.

I haven't found how that's done, yet. I mean the card can lock or bypass the palette registers in the lower modes somehow, on a HW level because I've tried that, but I don't think it's the CRTC job. So my guess there is some other register with a bit that disables this, independent of resolution? If so, some more "clever" games for EGA could be undoing that lock and using full palette in 320x200 too. Though granted, probably not Sierra games.

digger wrote on 2020-03-03, 07:50:

The only exception being dark yellow, which is displayed as brown on EGA monitors, but will show up as an ugly mustard-like dark yellow on CGA monitors.

Eh, wait, shouldn't that be the other way around? CGA having brown? But then, even EGA monitor should display brown because the rgbRGB bits would be 010100 - I guess the actual shade is depends on the CRT and some CGA monitors might also do the conversion a bit more aggresively, but I would expect it always to be brown. Unless, of course, using the composite video output of CGA - then it's dark yellow. But most PC games were either meant to use the digital monitor, or the composite output as a way to glitch NTSC decoder to get more colors.

Reply 13 of 15, by JohnElliott

User metadata
Rank Newbie
Rank
Newbie
Deunan wrote on 2020-03-03, 09:11:

I haven't found how that's done, yet. I mean the card can lock or bypass the palette registers in the lower modes somehow, on a HW level because I've tried that, but I don't think it's the CRTC job. So my guess there is some other register with a bit that disables this, independent of resolution? If so, some more "clever" games for EGA could be undoing that lock and using full palette in 320x200 too. Though granted, probably not Sierra games.

It's done by the monitor. 200-line modes use one VSYNC polarity, 350-line modes use the other. The monitor detects this and displays 4-bit colour in 200-line modes, 6-bit colour in 350-line modes.

Reply 15 of 15, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie
Nitroraptor53 wrote on 2020-03-04, 23:47:

Wait - so is there a Tandy emulator? I have a 512k Cirrus Logic chip.

I believe that the approach linked by digger will only work with the 320x200 mode, not the 160x200 mode (correct me if I'm wrong), which would further explain why it would not work with every game, even if the game uses video memory at b800h, only.

Quoted for your convenience:

digger wrote on 2020-03-01, 17:43:

Apparently there is indeed a way to emulate Tandy 1000 video modes on some VGA cards.
But it doesn't work with every game and it only works with certain VGA chipsets. See Re: Games that show 16 colors ONLY in Tandy / PCjr mode?

There might be another approach, though:
If the card can present a big 128KiB video memory window at a000h, i.e. extending through b800h, a TSR could then periodically read that back and write the rearranged data to a000h.