VOGONS


ATI Graphics Solution

Topic actions

Reply 100 of 127, by Scali

User metadata
Rank l33t
Rank
l33t
gdjacobs wrote:

Wolf3d needs you to shrink the viewport to achieve viable framerates on a 286, although the system in question (back in the day) was also sporting a shit OTI video card.

Yea, back in the day I had a 386SX-16 with Paradise SVGA card. It had to run at about 3/4 screen.
But I could not find such an option in Catacomb 3-D, it just runs in full screen. So I figured it would be best to compare that way.
I was expecting the 286-20 with ET4000 to run Wolf3D slightly better though. It runs Catacomb 3-D very nicely.

Anyway, it was interesting to see that even Catacomb 3-D was already very optimized: it generates 'compiled' scaling routines for the walls with self-modifying code. So the wall rendering is very efficient.
Not sure if that means planar is better for 3D though...

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 102 of 127, by Scali

User metadata
Rank l33t
Rank
l33t
gdjacobs wrote:

Carmack's magic at work.

Yup, which just shows the relevance of: "How well-optimized are ports to other platforms?"
Catacomb 3-D and Wolf3D both use self-modifying code to pre-compile optimized scaling routines for the walls.
If you were to just port the C-code to a different platform (or even just compile it for x86, disabling the pre-compiler), you lose that optimization, because they only implemented it for x86, and you'd have a fallback to generic scaling code in C. This means that a comparison of performance is not just about video memory layout anymore. The difference in performance of the wall scaling routine will also have a big impact on performance.
Britelite's Cyberwolf has its own pre-compiled scalers, optimized natively for 68k, which makes for a more fair comparison.

If anything, comparing Catacomb 3-D with Wolf3D shows that the memory layout does not have much of an impact on performance at all. Wolf3D is slightly slower, but that is probably explained by the larger levels with more enemies and more complexity, rather than merely the difference in memory layout.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 103 of 127, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

Oh dear, even more magic at work: thread necromancy 😁

Scali wrote:

If anything, comparing Catacomb 3-D with Wolf3D shows that the memory layout does not have much of an impact on performance at all. Wolf3D is slightly slower, but that is probably explained by the larger levels with more enemies and more complexity, rather than merely the difference in memory layout.

Larger levels, more enemies, more complexity, different color depth... so, comparing them shows nothing.

Anyway, looks like my questions have already been answered...

Scali wrote:

I think chunky basically *only* has an advantage if the pixels happen to have a convenient size, such as 8-bit, 16-bit or 32-bit, so they can be read/written easily by the CPU, without additional masking.

rasz_pl wrote:

its simple, every time you want textures bitplanes will be xN times slower, x being number of bitplanes. No more clever let me draw this flat polygon to only one bitplane trickery.

After all, I was talking about textured 8bpp stuff.
Thanks a lot!

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 104 of 127, by Scali

User metadata
Rank l33t
Rank
l33t
Grzyb wrote:

Larger levels, more enemies, more complexity, different color depth... so, comparing them shows nothing.

The color depth is not relevant in this specific case. In both modes you need to write 1 byte for each pixel.
So roughly speaking, Catacomb 3-D writes the same amount of bytes to video memory than Wolf3D does, for a similar room (Catacomb 3-D uses the EGA ALU to mask the correct bits, and write them to the correct bitplanes). The resulting framebuffer is half the size in memory, but that doesn't affect performance.

Also, rasz_pl's remark is not entirely true, as Cyberwolf proves: part of the chunky2planar is rolled into the rendering code itself, making it basically 'free', so effectively the overhead is less than the xN he claims. It may be more along the lines of log(N) for N bitplanes.
And of course, it's also about scaling. The chunky2planar conversion is a fixed speed, where the actual texturing and lighting depends on the rendering technique chosen. The more complex the rendering algorithm, the less relative frametime is spent on chunky2planar. At the limit, virtually all time is spent on rendering, and the chunky2planar overhead is negligible.
rasz_pl focuses only on the opposite edge case: the texturing itself being trivial, thereby making chunky2planar overhead significant. In theory, Wolf3D is that edge case, but as Cyberwolf and Catacomb 3-D prove, with well-optimized code, the overhead is still not that big of a deal. They both use 4 bitplanes, but certainly aren't 4 times slower than Wolf3D, which uses chunky columns.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 105 of 127, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

This might be the first ever game specifically written for the ATI Graphics Solution's 640x200 16-color mode:

ATI_GS_PX3_credits.jpg
Filename
ATI_GS_PX3_credits.jpg
File size
560.37 KiB
Views
2227 views
File comment
Demonstration of the title and credits screen of Planet X3 (by David Murray and contributors, artwork by Renaud Scheidt) on an ATI Small Wonder v.1
File license
Fair use/fair dealing exception

So yes, I've written yet another port. Couldn't resist.

All I can contribute to the discussion above is that the in-game performance of the mode is approximately three times worse than EGA at the same resolution.
The use case – drawing well aligned tiles – profits a lot from the EGA's bit plane parallelism and keeping the tile set in VRAM.

Reply 106 of 127, by Scali

User metadata
Rank l33t
Rank
l33t
Benedikt wrote:

This might be the first ever game specifically written for the ATI Graphics Solution's 640x200 16-color mode:

Yea, I don't think I've ever seen any game at all that made use of any special ATi GS, Paradise PVC4 or Plantronics mode.
Only CGA, EGA, Tandy/PCjr and AT&T 6300 were ever used in games afaik.

Benedikt wrote:

All I can contribute to the discussion above is that the in-game performance of the mode is approximately three times worse than EGA at the same resolution.
The use case – drawing well aligned tiles – profits a lot from the EGA's bit plane parallelism and keeping the tile set in VRAM.

Yea, as you said, it's the worst of both worlds.
I also wonder if EGA has faster memory than the ATi Graphics Solution. It's safe to assume that later (S)VGA cards had faster memory, so when using these cards in CGA/EGA mode they'd be relatively fast, because they'd insert less wait states on the bus.
Real EGA didn't strike me as very fast, but it might still be faster than real CGA.

But if I undestand correctly, you are using this mode for the same trick as on the Tandy 640x200 mode? Where you use the higher horizontal resolution to get dither patterns of pixel pairs, to approximate 320x200 256 colour?

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 107 of 127, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
Scali wrote:

Only CGA, EGA, Tandy/PCjr and AT&T 6300 were ever used in games afaik.

Don't forget about Hercules, and not just the original HGC - there is at least one game with support for Hercules In Color.
Also, there's a game using BGI, which contains the PC3270 BGI driver - it's an amateurish game, so I doubt if the author actually tried to run it on a PC3270, but still, it may just work...

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 108 of 127, by keropi

User metadata
Rank l33t++
Rank
l33t++

I have done some testing with a couple of early vga cards that have both 15 and 9pin video output connectors, even an early oti vga is way faster than an ati ega wonder for example... but as expected ega game compatibility is not great so it's not really an option to use if you want fast ega

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

Reply 109 of 127, by Scali

User metadata
Rank l33t
Rank
l33t
Grzyb wrote:

Don't forget about Hercules, and not just the original HGC - there is at least one game with support for Hercules In Color.

I meant 'enhanced CGA'/16-colour display adapters.
But yea, if there's a game that supports Hercules In Color, then yes, that can be added to the list.
Same with PC3270, I suppose.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 110 of 127, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

Oh, and there's that "super CGA" graphics in Amstrad PC1512, with one commercial game supporting the 640x200x16 mode - https://nerdlypleasures.blogspot.com/2016/04/ … ble-pc-for.html

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 111 of 127, by VileR

User metadata
Rank l33t
Rank
l33t

I haven't seen evidence that any game ever supported the InColor (which was very much a niche product, and not typically used on a games machine anyway).

MobyGames somehow lists it in the tech specs for Karateka, but that's not correct- the game was released a year before the InColor card existed, and the sticker on the back plainly says "Hercules Color Graphics Card", which was simply a CGA clone...

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 112 of 127, by Scali

User metadata
Rank l33t
Rank
l33t
VileRancour wrote:

MobyGames somehow lists it in the tech specs for Karateka, but that's not correct- the game was released a year before the InColor card existed, and the sticker on the back plainly says "Hercules Color Graphics Card", which was simply a CGA clone...

A CGA clone with an interesting feature, according to Wikipedia:

Hercules also sold the Hercules Color Card (not to be confused with the InColor Card), a CGA-compatible video board. This board could coexist with the HGC and still allow both graphics pages to be used. It would detect when the second graphics page was selected and disable access to its own memory, which would otherwise have been at the same addresses.

So apparently this card monitored writes to the Hercules registers, and would disable its memory whenever the second 32k on the Hercules Graphics Card was enabled.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 113 of 127, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
VileRancour wrote:

I haven't seen evidence that any game ever supported the InColor

See Sierra's 3-D Helicopter Simulator - there's the "Hercules In Color" option in some menu.

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 114 of 127, by Scali

User metadata
Rank l33t
Rank
l33t
Grzyb wrote:

See Sierra's 3-D Helicopter Simulator - there's the "Hercules In Color" option in some menu.

MobyGames also lists MS Flight Simulator as having Hercules InColor support:
https://www.mobygames.com/attribute/sheet/att … buteId,579/p,2/

Somehow it seems somewhat appropriate.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 115 of 127, by VileR

User metadata
Rank l33t
Rank
l33t

Hah, nice to know.

One neat InColor feature is the 48K RAMFONT mode which could show 12 simultaneous fonts in text mode - they all had to be the same height, but 48K is also enough space to let you fake out a bitmap graphics display with the speed of text mode.
The Hercules Plus (a mono version) also had that ability, but the InColor added a few other text-mode manipulation tricks (I seem to recall reading that you could get more than two colors per character cell, which was similar to certain C64 tricks to get fast/colorful 'graphics').

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 116 of 127, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

I made a scan of the single page installation guide that came with my ATI "Small Wonder" Graphics Solution and cleaned it up a bit.
The page looks like a 1980s photocopy, so this is as good as it gets.
It is actually the very minimalist installation guide for the whole PC, a Philips PC, so that is apparently where the card came from.

The bottom of the page shows switch settings for different versions of the card.

Attachments

Reply 117 of 127, by Scali

User metadata
Rank l33t
Rank
l33t
Benedikt wrote:

It is actually the very minimalist installation guide for the whole PC, a Philips PC, so that is apparently where the card came from.

Likely...
I have a Philips 3105 XT clone, and mine came with an ATi Small Wonder as well.
I have the full manual, and it could be that this is a page out of that manual (or a manual for a related model).

Interestingly, my card has the cinch connector for composite output, but it is not documented.
When I tried using it, I found it didn't work. Upon closer inspection, I found that the whole register ladder was missing from the card. With the help of reenigne, we reverse-engineered the proper component values from images found online, and I soldered them on myself. The composite output works fine now.
I wonder if it was deliberately left off to save costs, or because these machines were sold in non-NTSC countries, so it wouldn't work on your average equipment anyway.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 118 of 127, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie
Scali wrote:

Interestingly, my card has the cinch connector for composite output, but it is not documented.
When I tried using it, I found it didn't work. Upon closer inspection, I found that the whole register ladder was missing from the card. With the help of reenigne, we reverse-engineered the proper component values from images found online, and I soldered them on myself. The composite output works fine now.
I wonder if it was deliberately left off to save costs, or because these machines were sold in non-NTSC countries, so it wouldn't work on your average equipment anyway.

Interesting. Mine is fully populated and there are no visible differences in the soldering and components, so it must have been fully populated from the factory.

Reply 119 of 127, by keropi

User metadata
Rank l33t++
Rank
l33t++

I hope that all this image searching was quite some time ago, I have documented the composite parts for the Small Wonder here: How to add CVBS-output to an ATI SMALL WONDER that omits it (instructions inside)

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