Plantronics ColorPlus and Sierra SCI0 based games
Plantronics ColorPlus and Sierra SCI0 based games
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.
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 399 times
Re: Plantronics ColorPlus and Sierra SCI0 based games
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?
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?
Re: Plantronics ColorPlus and Sierra SCI0 based games
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
http://pcem-emulator.co.uk/phpBB3/membe ... ile&u=1312
The ATI chipset you had was this? ATI CW16800-B
Re: Plantronics ColorPlus and Sierra SCI0 based games
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 )
Re: Plantronics ColorPlus and Sierra SCI0 based games
ok, thnx.omarsis81 wrote: ↑Thu 06 Jun, 2019 2:16 pm He made the Plantronics emulation
http://pcem-emulator.co.uk/phpBB3/membe ... ile&u=1312
Just wondering if it's worth the trouble though. It's just a demo, and not even designed for the ColorPlus.
- JohnElliott
- Posts: 113
- Joined: Sun 31 Jan, 2016 7:29 pm
Re: Plantronics ColorPlus and Sierra SCI0 based games
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.
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.
Re: Plantronics ColorPlus and Sierra SCI0 based games
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.
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.
Re: Plantronics ColorPlus and Sierra SCI0 based games
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?..
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?..
- JohnElliott
- Posts: 113
- Joined: Sun 31 Jan, 2016 7:29 pm
Re: Plantronics ColorPlus and Sierra SCI0 based games
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.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.
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.
Re: Plantronics ColorPlus and Sierra SCI0 based games
I remember that MDA/Herc-on-CGA-monitor didn't look very attractive.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.
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...
Re: Plantronics ColorPlus and Sierra SCI0 based games
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
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