Plantronics ColorPlus and Sierra SCI0 based games

Support and general discussion.
Post Reply
Dulton
Posts: 12
Joined: Wed 05 Jun, 2019 12:11 pm

Plantronics ColorPlus and Sierra SCI0 based games

Post by Dulton »

Because the dutch government promoted private PC ownership in the 80's, civil servants and public servants got large discounts on PCs with an ATi small wonder card. This card is compatible with the Plantronics ColorPlus. As a result, these PCs were plentiful and I had plenty fun with these, incl. some programming. I wrote a graphics driver for certain games from Sierra taking advantage of the features of the ATi card.

I tried to test it with the ColorPlus emulation of PCem but it didn't work. My old driver is using a feature not found on the ColorPlus. So my options were either to extend the ColorPlus emulation to the small wonder, or alter the driver to make it compatible with the ColorPlus.

Altering the driver seemed the logical option to me. It's much easier to do, and the drivier will be compatible with many more graphic adapters than just ATi's.
I tested and debugged the driver on PCem, generic XT with minimum features and (ofc) a ColorPlus.

See attached my driver for Sierra's "SCI0" based games, including: King's Quest 4, Leisure Suit Larry 2 and 3, Police Quest 2 and Space Quest 3.
Attachments
PCP320.zip
(5.38 KiB) Downloaded 394 times
Dulton
Posts: 12
Joined: Wed 05 Jun, 2019 12:11 pm

Re: Plantronics ColorPlus and Sierra SCI0 based games

Post by Dulton »

The ATi small wonder card comes with software to test and demo the features, incl. the ColorPlus compatible ones.
The 320×200, 16 colour mode works fine and this is what my driver is using.
The 640×200, 4 colour mode seems to have an issue. I see white and cyan were brown and green where expected. Something to do with the CGA pallette?

So... is this a known issue? should someone look into this?
User avatar
omarsis81
Posts: 945
Joined: Thu 17 Dec, 2015 6:20 pm

Re: Plantronics ColorPlus and Sierra SCI0 based games

Post by omarsis81 »

He made the Plantronics emulation
http://pcem-emulator.co.uk/phpBB3/membe ... ile&u=1312

The ATI chipset you had was this? ATI CW16800-B
Dulton
Posts: 12
Joined: Wed 05 Jun, 2019 12:11 pm

Re: Plantronics ColorPlus and Sierra SCI0 based games

Post by Dulton »

omarsis81 wrote: Thu 06 Jun, 2019 2:16 pm The ATI chipset you had was this? ATI CW16800-B
I still have one of those PCs but the hard drive failed. Can't be bothered to repair it (yet).
The (single) chip is the ATi 18700.
The card is this one ATi Small Wonder GS (wikipedia) but in perfect condition (fresh from the factory :D )
Dulton
Posts: 12
Joined: Wed 05 Jun, 2019 12:11 pm

Re: Plantronics ColorPlus and Sierra SCI0 based games

Post by Dulton »

omarsis81 wrote: Thu 06 Jun, 2019 2:16 pm He made the Plantronics emulation
http://pcem-emulator.co.uk/phpBB3/membe ... ile&u=1312
ok, thnx.
Just wondering if it's worth the trouble though. It's just a demo, and not even designed for the ColorPlus.
User avatar
JohnElliott
Posts: 113
Joined: Sun 31 Jan, 2016 7:29 pm

Re: Plantronics ColorPlus and Sierra SCI0 based games

Post by JohnElliott »

I don't have a real ColorPlus in working order, so I based the behaviour on the ColorPlus mode of the Amstrad PC1640's Paradise chipset. It's a while ago, but I'm pretty sure that I matched how the CGA palette behaved on the PC1640.

I have, or ought to have, a Small Wonder somewhere to test with. Not sure where it is at the moment, though, let alone finding the time to do the testing.
Dulton
Posts: 12
Joined: Wed 05 Jun, 2019 12:11 pm

Re: Plantronics ColorPlus and Sierra SCI0 based games

Post by Dulton »

I did a quick check on the test/demo program. It simply sets video mode to 6 (640×200,2 colours) using BIOS and then enables the 4 colour mode by setting bit 5 at port 3DDh.
The Generic XT BIOS I use here sets bit 2 (Black and white) and thus selects the third palette.

So either the test program didn't expect BIOS to set bit 2, or the ATi Small wonder ignores bit 2 in this mode (although I doubt that).

Either way, it's not the emulation to blame. Also, easy workaround is to reset bit 2 after setting the mode.
Dulton
Posts: 12
Joined: Wed 05 Jun, 2019 12:11 pm

Re: Plantronics ColorPlus and Sierra SCI0 based games

Post by Dulton »

Anyway. I've tested Space Quest III on an emulated Generic XT clone (8088) + Plantronics ColorPlus + Adlib + XTIDE + Generic BIOSes + my SCI0 drivier, and it works great!

Also, PCem team, thank you for helping me fixing a near 30-year old bug. I only had a monochrome display, so I couldn't tell the driver mixed up some colours on colour displays :)

Now... should I create an AGI driver for the ColorPlus as well?..
A. Naim
Posts: 139
Joined: Thu 09 Jul, 2015 5:06 pm

Re: Plantronics ColorPlus and Sierra SCI0 based games

Post by A. Naim »

Dulton wrote: Fri 07 Jun, 2019 9:25 am Also, PCem team, thank you for helping me fixing a near 30-year old bug.
This is pretty cool. :)
User avatar
JohnElliott
Posts: 113
Joined: Sun 31 Jan, 2016 7:29 pm

Re: Plantronics ColorPlus and Sierra SCI0 based games

Post by JohnElliott »

JohnElliott wrote: Thu 06 Jun, 2019 11:50 pm I have, or ought to have, a Small Wonder somewhere to test with. Not sure where it is at the moment, though, let alone finding the time to do the testing.
I've now dug out my Small Wonder. Interesting card, though the 640x200x16 mode looks like it would be a bear to use. Like the Plantronics 320x200x16 mode, it's two planes with two bits per pixel in each plane - all the disadvantages of packed pixels, and all the disadvantages of planes! And Hercules-style memory organisation, with horizontal lines in four groups.

Doing an accurate emulation of the MDA/Hercules-video-on-CGA-monitor modes (using interlacing to get 350 lines out of a 200-line monitor) could be a challenge, too.

The example code (gsdemo1.c) is interesting -- it detects whether the card is driving a CGA monitor or an MDA one by counting the number of vertical refreshes in 18 timer ticks. 45-55 and it's a mono monitor, 55-65 and it's colour.
Dulton
Posts: 12
Joined: Wed 05 Jun, 2019 12:11 pm

Re: Plantronics ColorPlus and Sierra SCI0 based games

Post by Dulton »

JohnElliott wrote: Wed 24 Jul, 2019 7:34 pm Doing an accurate emulation of the MDA/Hercules-video-on-CGA-monitor modes (using interlacing to get 350 lines out of a 200-line monitor) could be a challenge, too.
I remember that MDA/Herc-on-CGA-monitor didn't look very attractive.
CGA/Plan-on-MDA-monitor looked fine. Not sure how they made 200 lines worked so well on 350 lines monitor. Was there enough border lines left?

Also, I remembered that I actually blew up a monochrome display by setting the wrong bit by software :) It enabled the actualy CGA frequencies instead of CGA emulation frequencies.

So... my lil SCI0 driver plays save, it let's the BIOS set the CGA mode and I only enable the planes...
Benedikt
Posts: 6
Joined: Sat 31 Oct, 2020 4:29 pm

Re: Plantronics ColorPlus and Sierra SCI0 based games

Post by Benedikt »

Hi there!

The existence of this thread must have escaped me, somehow! I only noticed it, yesterday.
I myself have written a Plantronics SCI driver, too, but only started this August.

This looks like a good opportunity to exchange some experiences.

Two things that I noticed about your driver (besides the fact that it bears a striking resemblance to the existing drivers) is that (a) it lacks the 10th call table entry for a scroll function expected by some later titles and (b) that you left the alignment NOP right after the description string in there.
Since your ID and description strings would result in even alignment, already, keeping the NOP will hurt overall performance on systems that access the 16 bit variables via a 16 bit bus.
The missing 10th function means that you will not get past the first in-game screen in King's Quest I (SCI), to name an example. You could fix it with a primitive dummy, though.

My approach was to try to figure out how the original drivers work, first, and to write a new one completely from scratch, afterwards, to create a FOSS-licensed (LGPL) base for future drivers.
The result is potentially not the fastest, because the initial focus was readability, but it provides fairly comprehensive documentation of the SCI0 driver API and ABI.

The commented code is in my FOSS SCI Drivers repo on Github and I initially announced it on VOGONS.
So far, PCPLUS.DRV for the Plantronics ColorPlus has been tested in PCem and on various ATI "Small Wonder" Graphics Solutions and a Schneider Euro PC with a Paradise PVC4 graphics chip.
The first derived driver, namely COL400.DRV for the Sigma Color 400, has not been tested on real hardware, yet.

You mentioned that you initially created your driver for Plantronics mode on an MDA screen. That is a combination that I have never seen in action.
Does it work well? Are there visible dithering artifacts?

Greetings,
Benedikt
Post Reply