VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

I've currently emulated a Sierra SC11487 DAC on the ET4000 board. When I open up dxdiag, I see that it knows of the Tseng Labs ET4000, with oddly enough 0.5MB of memory(1MB is installed), a display mode of 640 x 480 (16 bit), unknown monitor(not setup for this OS(Windows 95 RTM)), the mini VDD being tseng.vxd and main driver being framebuf.drv.

But when I look at the manufacturer(obvious), Chip Type(should be ET4000) and DAC Type(the Sierra chip mentioned earlier) they're all empty?

Why won't it recognise the Sierra SC11487 DAC that I've emulated in my machine? I've emulated the DAC chip exactly as the documentation for the SC1148* chipset says(with changes to make it detect in WhatVGA).

It's pretty simple to emulate:
- Ports 3C7/3C8/3C9 make the command register return to the DAC Mask Register(also resetting the counter).
- Reading port 3C6 increases the counter when it's less than or equal to 3(and give the DAC Mask register in that case).
- 4 reads completed from the DAC mask register causes it to change to the DAC command register(as documented), the counter having increased to 4 on previous reads(thus 4 reads from the DAC Mask register without any writes to any DAC Mask register or reads/writes from/to other DAC ports(see above)).

Then, writing the DAC command register:
- Bits 3-4 redirect to the DAC Mask register bits 3-4.
- Bit 0 is set if bits 5-7 is 1 or 3, cleared otherwise(being R/O).
- Bits 1-2 are stored in the command register and able to read back, but unused by the emulation(no purpose afaik).
- Bits 5-7 are used by the emulation and stored in the DAC command register.

Afaik writes to the DAC command register don't reset the toggle back to the DAC mask register? Is that correct behaviour?

The manual of the chips(SC1148* chips to be exact) says:

A flag will be set when the pixel read mask (RS1 = 1 & RS0 = 0) is read four times consecutively.
The next write to the pixel mask register will be redirected to the command register and can be used to set the command register. A write to any address or a read from any address other than the pixel read mask register will reset the flag. The flag will also get reset after the power on reset.

So does that mean that writes to the DAC command register also toggle it back to the PEL Mask Register? Or does it keep being in the DAC command register?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io