VOGONS


First post, by keropi

User metadata
Rank l33t++
Rank
l33t++

Game list and updated driver on this post below: Re: Which Sierra games can use the PC1512.DRV so they have 16colors with an Amstrad 1512 system?

Hiya!
I recently got an Amstrad 1512 system and I am messing with it 🤣
Apparently because of the onboard "cga" special mode you can have 320x200/16colors graphics and Sierra made a driver for this:

One thing I had forgotten about until writing this article was that Sierra offered support for the 640x200x16 mode in its SCI0 and 16-color versions of SCI1 games! With a driver called PC1512.DRV, you could obtain a proper, effective 320x200x16 resolution in Sierra's games. In order to achieve this, each pixel is written twice horizontally. This driver rarely can be found with the actual games themselves, but here is a place to download the driver : http://sierrahelp.com/Patches-Updates/MiscUpdates.html The SCI games run a tad slow on the PC1512. As far as AGI games go, there is no Amstrad driver and you are limited to 4-color CGA at best.

source: http://nerdlypleasures.blogspot.com/2016/04/t … ble-pc-for.html

So I grabbed the PC1512.DRV from the link in the article, put it in King's Quest 4 directory, ran install.exe but after a while there was an error about missing files related to PC1512.DRV ...
so what's the trick here? any ideas?

Can this driver be used with all SCI1.0 games listed in wikipedia? https://en.wikipedia.org/wiki/List_of_Sierra% … eter_games#SCI1

Thanks!

Last edited by keropi on 2021-07-17, 21:02. Edited 2 times in total.

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 1 of 39, by Boohyaka

User metadata
Rank Member
Rank
Member

Hey keropi have you tried manually editing resource.cfg to put pc1512.drv file as videodrv?

edit: as for your secondary question i'd assume only strict SCI1 with EGA support games would work, but may be wrong of course. I have no experience with Amstrad and this particular driver.

Reply 2 of 39, by keropi

User metadata
Rank l33t++
Rank
l33t++
Boohyaka wrote on 2020-07-23, 22:21:

Hey keropi have you tried manually editing resource.cfg to put pc1512.drv file as videodrv?

edit: as for your secondary question i'd assume only strict SCI1 with EGA support games would work, but may be wrong of course. I have no experience with Amstrad and this particular driver.

I did exactly like this. Codename Iceman's INSTALL did not complain about the PC1512.DRV missing descriptions and whatnot, so I just copied it's resource.cfg to KQ4 and that seemed to work fine:

swnIndTl.png

cf4lTWIl.png

slowly I believe I'll discover all those games that work with the 1512 special mode 😀

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 3 of 39, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Hi, I don't mean to hijack this thread, but this reminds me of some issues that I had in the past.
Apparently, there are many releases of the Sierra interpreters around.
Some of them are compatible with exotic drivers, some are not.
You can read my misadventures here:
Space Quest III on CT-460

😅

"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 4 of 39, by keropi

User metadata
Rank l33t++
Rank
l33t++
Jo22 wrote on 2020-07-24, 23:34:
Hi, I don't mean to hijack this thread, but this reminds me of some issues that I had in the past. Apparently, there are many re […]
Show full quote

Hi, I don't mean to hijack this thread, but this reminds me of some issues that I had in the past.
Apparently, there are many releases of the Sierra interpreters around.
Some of them are compatible with exotic drivers, some are not.
You can read my misadventures here:
Space Quest III on CT-460

😅

oh thanks for the tip - will study this thread! 😁

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 5 of 39, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

Since you're testing quite a few games now...
How would you describe the speed of the VDU mode? Can it compete with the MCGA mode in an otherwise similarly equipped machine?

Reply 6 of 39, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

By the way...

This has inspired a new weekend project: A Plantronics driver!
The graphics output is already working and I'm probably going to open a new thread for it once the mouse cursor support is done, as well.

Reply 7 of 39, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

Done: New thread.

To drag the PC1512-related discussion back here:

Benedikt wrote on 2020-08-11, 13:32:
My guess on why Sierra's PC1512 driver locks up the game is that it does not even provide a dummy function. The MCGA driver does […]
Show full quote

My guess on why Sierra's PC1512 driver locks up the game is that it does not even provide a dummy function.
The MCGA driver does not implement hardware scrolling, either, but its call table has an entry that leads to an empty dummy function.
The PC1512 driver's call table is one entry too short, which means that the driver will do funny things when the game tries to call the hardware scrolling function via call table index.

My driver provides a dummy entry, just like the MCGA driver, and should therefore work.
(Except that it won't scroll, obviously.)

keropi wrote on 2020-08-11, 13:40:

in theory can this dummy function be added to the 1512 driver to disable scrolling?

I'd say so.
The 8-word call table (should be 9) is followed by a buffer that appears to be used but it follows the description string "Amstrad PC1512 - 16 Colors." with what looks like two unused bytes of garbage in between.
It should therefore be possible to shift the entire call table, to add a pointer to a random ret statement at the end and to patch the reference in the dispatcher.

Reply 8 of 39, by keropi

User metadata
Rank l33t++
Rank
l33t++
Benedikt wrote on 2020-07-26, 09:37:

Since you're testing quite a few games now...
How would you describe the speed of the VDU mode? Can it compete with the MCGA mode in an otherwise similarly equipped machine?

oh wow I completely missed your posts!
speed is very bad. the 1512 VDU is very slow , it's almost horrible 🤣
I would say PCEM really nails the speed factor , just run Keen4/cga and you'll immediately notice how slow it is.
The rumors on the internet that an IBM CGA is faster are very much true!

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 9 of 39, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

My guess was wrong. Turns out that the call table has all 9 entries and that my disassembler was confused.
So apparently, there is indeed a hardware scrolling implementation, but it's broken. (But can still be bypassed by pointing straight to a ret!)

Reply 10 of 39, by keropi

User metadata
Rank l33t++
Rank
l33t++

I was remembering wrong, it's the Space Quest 1 sci remake that has issues with text boxes and colors in them:

eZwHCFS.png

and this is what it is supposed to look like:

5yRevmq.png

it's a shame since everything else displays OK - slow but OK...

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 11 of 39, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

This is weird. The driver isn't supposed to do that. It is supposed to copy rectangular areas from the engine's device-independent off-screen buffer to the screen. Nothing more.

Reply 12 of 39, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

As mentioned in the other thread, the indeed missing 10th function that some games need is a scroll function, but can be implemented with this minimal stub:

mov     si,di
jmp update_rect

We should be able to patch that into the PC1512 driver binary, as well.

Reply 13 of 39, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

It works! (Somewhat. Still buggy, but no freezes.)

Patching instructions:

  1. Change the byte at offset 10h from 1Bh (27) to 19h (25). This shortens the descriptive string that precedes the call table.
  2. Remove two bytes (the 's.') at offset 2Ah and insert the two bytes 28h 08h (the new pointer) at offset 3ch (the end of the call table).
  3. Change the byte at offset 42Bh from 2Ch to 2Ah. This adjusts the call table offset in the dispatcher call.
  4. Append the bytes 89h FEh E9h 2Eh Fch at the end of the file, i.e. at offset 828h, see above.
  5. Save the new file as PC1512_P.DRV.

Or use the line below to apply the supplied VCDIFF patch:

xdelta3 -d PC1512_patch.vcdiff

Attachments

  • Filename
    PC1512_patch.vcdiff.zip
    File size
    235 Bytes
    Downloads
    99 downloads
    File comment
    VCDIFF patch for PC1512.DRV
    File license
    Public domain

Reply 15 of 39, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

The aforementioned bug is that the scroll function dummy draws the screen with a certain offset.
I have no idea why that is happening, because the same dummy function works flawlessly in the PCPLUS driver, but the relevant games should still be playable even with the bug.

Reply 16 of 39, by keropi

User metadata
Rank l33t++
Rank
l33t++

I am proud to present an updated PC1512 Sierra SCI interpreter 16 color driver patched by ripsaw8080

This update fixes 2 issues :

  • 1. scrolling issue resolved so no more screen corruption: instead there are screen transitions that are better suited anyways for the slow PC1512 (additional changes were needed in the driver's dispatch routine to preserve the value of the DI register)
  • 2. color issue that resulted in unreadable areas is now resolved so newer EGA games are now readable (issue was the driver inexplicably reporting support for 65535 colors instead of 16)
    this made some later EGA titles playable: KQ5, SQ4, PQ3, SQ1 remake, LSL1 remake

Here are some shots for your viewing pleasure, taken while testing this new driver on a real PC1512 and Color Monitor - things looks better in person but not that much as the monitor is a cheap one following the Amstrad tradition 🤣

yElyENml.jpg EkgDPG6l.jpg

pAJeltCl.jpg o5LxJA9l.jpg

VP07eJgl.jpg UHjBpCUl.jpg

0qiD9q9l.jpg JkjUUkWl.jpg

gEOXx1nl.jpg 5is6P3El.jpg

8htFZ4Vl.jpg eCokATFl.jpg

CZqAkEml.jpg xRLKbPZl.jpg

SfDZFOql.jpg 2u2JhuIl.jpg

So what games are actually compatible? It is safe to assume every SCI EGA game will work - but keep in mind that the PC1512 is a *slow* system even though it's a 8086 one.
AFAIK this is because of the way Amstrad implement the onboard CGA graphics and that needs plenty of waitstates or something... I am using a V30 cpu in my system and for some games like KQ5 and SQ4 there are 10-15sec loading delays...

Here is a mostly complete to my knowledge list of supported games - if multiple versions exist then the EGA one is the suitable for the new driver:

  • Colonel's Bequest
  • Conquest of Camelot
  • Mixed Up Mother Goose
  • Hoyle Book of Games 1, 2 and 3
  • Codename Iceman
  • King's Quest 1 SCI, KQ4 and KQ5 EGA version
  • Leisure Suite Larry 1 remake EGA version, LSL3
  • Police Quest 2 and 3
  • Quest for Glory 1, 2 and 3
  • Space Quest 1 remake, SQ3 and SQ4 EGA version

Maybe there is an omission or mistake on the list, don't hold it against me 🤣

This brings a welcome surprise to the system, thanks everyone for working on this driver!

Attachments

  • Filename
    PC1512_SCI.ZIP
    File size
    1018 Bytes
    Downloads
    119 downloads
    File comment
    PC1512 Sierra SCI 16color driver by ripsaw8080
    File license
    Public domain
Last edited by keropi on 2021-07-18, 05:47. Edited 1 time in total.

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 17 of 39, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie
keropi wrote on 2021-07-17, 20:54:
This update fixes 2 issues : […]
Show full quote

This update fixes 2 issues :

  • 1. scrolling issue resolved so no more screen corruption: instead there are screen transitions that are better suited anyways for the slow PC1512 (additional changes were needed in the driver's dispatch routine to preserve the value of the DI register)
  • 2. color issue that resulted in unreadable areas is now resolved so newer EGA games are now readable (issue was the driver inexplicably reporting support for 65535 colors instead of 16)
    this made some later EGA titles playable: KQ5, SQ4, PQ3, SQ1 remake, LSL1 remake

Great news!
So I guess it is now an established fact that the return value 65535 instead of 16 was indeed a bug.

Reply 19 of 39, by MJay99

User metadata
Rank Member
Rank
Member
StolleMan wrote on 2021-07-24, 05:49:

I've tried this driver with my PC1640 and unfortunately it doesn't work. Don't suppose anybody knows of a driver out there for the 'updated' Amstrad XT?

Wasn't the PC1640 just a memory upgraded version to the PC1512? (PC1*512* -> PC1* 640*)?