VOGONS


First post, by keropi

User metadata
Rank l33t++
Rank
l33t++

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!

🎵Link to buy a PCMIDI mpu
🎧Orpheus soundcard project
💻WTB Amstrad PC7486SLC-33 system

Reply 1 of 15, 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 15, 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 😀

🎵Link to buy a PCMIDI mpu
🎧Orpheus soundcard project
💻WTB Amstrad PC7486SLC-33 system

Reply 3 of 15, 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 15, 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! 😁

🎵Link to buy a PCMIDI mpu
🎧Orpheus soundcard project
💻WTB Amstrad PC7486SLC-33 system

Reply 5 of 15, by Benedikt

User metadata
Rank Member
Rank
Member

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 15, by Benedikt

User metadata
Rank Member
Rank
Member

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 15, by Benedikt

User metadata
Rank Member
Rank
Member

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 15, 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!

🎵Link to buy a PCMIDI mpu
🎧Orpheus soundcard project
💻WTB Amstrad PC7486SLC-33 system

Reply 9 of 15, by Benedikt

User metadata
Rank Member
Rank
Member

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 15, 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...

🎵Link to buy a PCMIDI mpu
🎧Orpheus soundcard project
💻WTB Amstrad PC7486SLC-33 system

Reply 11 of 15, by Benedikt

User metadata
Rank Member
Rank
Member

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 15, by Benedikt

User metadata
Rank Member
Rank
Member

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 15, by Benedikt

User metadata
Rank Member
Rank
Member

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
    6 downloads
    File comment
    VCDIFF patch for PC1512.DRV
    File license
    Public domain

Reply 15 of 15, by Benedikt

User metadata
Rank Member
Rank
Member

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.