VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

Do the Tseng chipsets wrap 256KB of VRAM with more installed? If so, what register bit(s) perform this behaviour?

For example with Commander Keen's scrolling compatibility?

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

Reply 1 of 6, by mkarcher

User metadata
Rank l33t
Rank
l33t
superfury wrote on 2024-02-16, 12:44:

Do the Tseng chipsets wrap 256KB of VRAM with more installed? If so, what register bit(s) perform this behaviour?

For example with Commander Keen's scrolling compatibility?

No, the ET4000 chips do not wrap around. Other chipsets have mode bits with descriptions like "enable SVGA extensions" that would control wrap-around. That's why Commander Keen got the "SVGA compatibility" option that changes the update logic to avoid situations that depend on address wrap-around. It does so by re-painting the whole screen to a different address in video memory if the picture at the current address would depend on the wrap-around. The "compatibility" option does not re-program the hardware to be more "Keen-compliant", it just changes the software behaviour to be more tolerant at the expense of intermittent full-frame copies.

Reply 2 of 6, by superfury

User metadata
Rank l33t++
Rank
l33t++
mkarcher wrote on 2024-02-16, 17:12:
superfury wrote on 2024-02-16, 12:44:

Do the Tseng chipsets wrap 256KB of VRAM with more installed? If so, what register bit(s) perform this behaviour?

For example with Commander Keen's scrolling compatibility?

No, the ET4000 chips do not wrap around. Other chipsets have mode bits with descriptions like "enable SVGA extensions" that would control wrap-around. That's why Commander Keen got the "SVGA compatibility" option that changes the update logic to avoid situations that depend on address wrap-around. It does so by re-painting the whole screen to a different address in video memory if the picture at the current address would depend on the wrap-around. The "compatibility" option does not re-program the hardware to be more "Keen-compliant", it just changes the software behaviour to be more tolerant at the expense of intermittent full-frame copies.

What if only 256KB is installed?

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

Reply 3 of 6, by mkarcher

User metadata
Rank l33t
Rank
l33t
superfury wrote on 2024-02-16, 20:26:

What if only 256KB is installed?

The ET4000AX supports two configurations with 256KB: Either 64K x 32, typically consisting of 8 64K x 4 chips, which is exactly the standard VGA RAM configuration, as well as 256K x 8 (just two 256K x 4 chips). In both cases, the address space of the chips is completely covered by 256K, so a wrap-around is likely. This means you likely can get a wrap-around even with more memory installed if you force the card into x8 mode. Using x8 memory access is likely detrimental to performance, though.

Reply 4 of 6, by Jo22

User metadata
Rank l33t++
Rank
l33t++

ET-3000 is cool, it has a windowing/panning/zooming feature. ET-2000 had something similar.

https://www.cs.cmu.edu/afs/cs/project/clisp/h … gadoc/tseng.txt

"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 5 of 6, by superfury

User metadata
Rank l33t++
Rank
l33t++
Jo22 wrote on 2024-02-18, 10:33:

ET-3000 is cool, it has a windowing/panning/zooming feature. ET-2000 had something similar.

https://www.cs.cmu.edu/afs/cs/project/clisp/h … gadoc/tseng.txt

Yeah, I know.
Never implemented it though.

Perhaps it's a bit like the ET4000/W32 CRTC zooming I've already implemented (verified using WhatVGA's tests)?

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

Reply 6 of 6, by superfury

User metadata
Rank l33t++
Rank
l33t++

I've been reading ET4000AX documentation and found something interesting, perhaps related?

(page 143 of the ET4000AX documentation)

TS Indexed register 7: TS Auxiliary Mode
(...)
Bit 7, when set to 1, enables VGA compatibility. A logical 0 will enable EGA compatibility.

Perhaps that should affect the 256K memory wrapping required on such a card? Or perhaps it's broken?

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