VOGONS


PowerVR Fun Thread

Topic actions

Reply 520 of 1096, by Ozzuneoj

User metadata
Rank l33t
Rank
l33t

Ohh... I've never seen this thread.

I actually own a Hercules 3D Prophet 4500 and a 4000. I've never actually used them though! They were given to me about 10 years ago when I started collecting older hardware. I should try them out some time. I know they lacked many things that were seen as necessary at the time (T&L and DDR memory) but if I remember correctly they scaled well with faster CPUs and beat out much more expensive cards in situations that played to their strengths.

Now for some blitting from the back buffer.

Reply 521 of 1096, by leileilol

User metadata
Rank l33t++
Rank
l33t++

thanks for the new page. repeating:

leileilol wrote:

There's no information on what the the PCX2 does when reading/writing addresses is there?

So far i'm assuming the tile information are in the 0x0C - 0x3F range, 750% wrong though.

apsosig.png
long live PCem

Reply 522 of 1096, by Scali

User metadata
Rank l33t
Rank
l33t
Ozzuneoj wrote:

DDR memory

Because of the unique rendering technology, VRAM bandwidth wasn't as important for performance. They could get 'DDR' performance out of SDR memory.

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

Reply 523 of 1096, by leileilol

User metadata
Rank l33t++
Rank
l33t++

for the 0.01% of the internet that are amused by witty internal debug strings

VSGL: SetCacheBits: page directory: 0x%08lx, 0x%08lx VSGL: SetCacheBits: page directory entry not present. Dodgy. VSGL: Se […]
Show full quote

VSGL: SetCacheBits: page directory: 0x%08lx, 0x%08lx
VSGL: SetCacheBits: page directory entry not present. Dodgy.
VSGL: SetCacheBits: Hmm, 4MB page. Fuck.
Genuine intel processor (phoarr!)
Non intel pentium clone processor
Pentium pro MMX (Klamath)
Pentium pro
Pentium MMX
Pentium overdrive for 486 system (far out)
Pentium
Cheezy old processor (486 or earlier).
No MSR or MTRR capabilities
Yeah right. I'll just enable write combining on your 286/12.
Ah well. CPU does not support write combining. Oh dear. CPU has no MTRRs. MSRR already defined for PowerVR
VSGL: CreateDMAScatterBuffer: Zero pages requested. What bollocks.
VSGL: Output parameters incorrect you silly.
VSGL: Input parameters incorrect you silly.
VSGL: SchedulerOnRenderRequest: major fuck up in the scheduler. Tin hats on lads!

apsosig.png
long live PCem

Reply 526 of 1096, by Scali

User metadata
Rank l33t
Rank
l33t

Well, of course this is some kind of CPU detection/initialization routine. It is not necessarily representative of the requirements of the actual software.
The CPUID library I wrote many years ago, is capable of detecting any CPU from 8088 up. Which makes little sense in some scenarios. Eg, when you use it in 32-bit or 64-bit mode, it's a given that it's not a 286 or lower.

But yes, they could have indeed had early ISA prototypes, or perhaps the code originated as a software simulation, before the hardware was finished. They could have started working on their tile-based deferred rendering in the late 80s, for all we know.

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

Reply 527 of 1096, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
leileilol wrote:

Some of the demos have 1992-1993 dates (like Ant), so an ISA Midas prototype could be likely. </wildspeculativemassguessing>

🤣 Sgt-Schultz2.jpg

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 528 of 1096, by leileilol

User metadata
Rank l33t++
Rank
l33t++

anyway here's the reason why i've bumped because now i've lost 3 nights to this so far

if someone picks it up that's fine
if someone doesn't pick it up that's fine
how's an "infinite plane" span going to work anyway

apsosig.png
long live PCem

Reply 529 of 1096, by Arctic

User metadata
Rank Oldbie
Rank
Oldbie
leileilol wrote:
anyway here's the reason why i've bumped because now i've lost 3 nights to this so far […]
Show full quote

anyway here's the reason why i've bumped because now i've lost 3 nights to this so far

if someone picks it up that's fine
if someone doesn't pick it up that's fine
how's an "infinite plane" span going to work anyway

Thank you for bumping this! I have the feeling that there will be
a lot more posts in here soon 😎

Reply 530 of 1096, by Scali

User metadata
Rank l33t
Rank
l33t

As far as I know, the idea of 'infinite planes' is just that the polygon edges result from all the intersections of the planes.
So off the top of my head, I think you'd perform these steps:
1) Intersect every plane with every other plane, to get a list of intersection lines
2) Clip all intersection lines to all planes to get a list of edges
3) Convert the edges to a convex n-gon mesh (the planes have an 'inside' and an 'outside', so you know which way each polygon should face. If you keep track of which planes each edge belongs to, the polygon should be trivial to construct).

After that, you can just render it conventionally (which afaik is what PowerVR does... except 'conventionally' in their case means breaking it up into tiles first).

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

Reply 531 of 1096, by Tuxality

User metadata
Rank Newbie
Rank
Newbie
leileilol wrote:
anyway here's the reason why i've bumped because now i've lost 3 nights to this so far […]
Show full quote

anyway here's the reason why i've bumped because now i've lost 3 nights to this so far

if someone picks it up that's fine
if someone doesn't pick it up that's fine
how's an "infinite plane" span going to work anyway

Hah, I see that you did the same what I have done some months ago - PowerVR support for PCem. Despite mine implementation being little more advanced as opposed to yours (copy pasting voodoo emulation), still without documentation there is not much we can do.

I've submitted ticket on PowerVR Insider Developer Support about PCX documentation, sadly there is no possibility to get this. They discussed this internally and decided to not share this, because information about PCX family is scattered and somebody from Imagination Technologies would need to collect, join and review gathered information - which will sadly not happen.

Still there is one thing which can help, SGL SDK for DOS. Yes, it does exist and actually Tomb Raider makes use of it instead of direct GPU programming. Having this SDK would help a lot even without real card.

Or if I could manage to get real card I can write tools in assembly to reverse engineer this card, but sadly in Poland getting this card is more harder than searching for the holy grail.

Last edited by Tuxality on 2016-07-18, 16:35. Edited 1 time in total.

Reply 532 of 1096, by Scali

User metadata
Rank l33t
Rank
l33t
Tuxality wrote:

Or if I could manage to get real card I can write tools in assembly to reverse engineer this card, but sadly in Poland getting this card is more harder than searching for the holy grail.

There's a few Matrox M3D cards on Ebay though. They'll probably ship to Poland.

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

Reply 533 of 1096, by vetz

User metadata
Rank l33t
Rank
l33t

If Tuxality is doing all this work and he does not have the real card, I'm up for donating one of my surplus PCX2. Tuxality: See PM

3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D)
3D Acceleration Comparison Episodes

Reply 535 of 1096, by voodoo47

User metadata
Rank Newbie
Rank
Newbie

hey, does anyone know how much did a PCX2 cost when released? internet says "cheap", "aggressively priced", and "prices lowered soon after release", but no actual price tags attached anywhere, or so it would seem.

thanks.

3Dfx Help Page

Reply 536 of 1096, by ZanQuance

User metadata
Rank Member
Rank
Member
leileilol wrote:

for the 0.01% of the internet that are amused by witty internal debug strings

VSGL: CreateDMAScatterBuffer: Zero pages requested. What bollocks.

*raises hand* GUILTY as charged!

My Aureal driver has a similar debug message because I keep forgetting to initialize the FIFO buffers before setting the DMA transfers.

Debug.WriteLine("Trying to transfer DMA into space again eh? SPAAAAAAACE!\n");
voodoo47 wrote:

hey, does anyone know how much did a PCX2 cost when released? internet says "cheap", "aggressively priced", and "prices lowered soon after release", but no actual price tags attached anywhere, or so it would seem.
thanks.

I picked up my Matrox M3D for $99 at CompUSA, but not sure how long it was out before I picked one up.

Reply 537 of 1096, by Scali

User metadata
Rank l33t
Rank
l33t
voodoo47 wrote:

hey, does anyone know how much did a PCX2 cost when released? internet says "cheap", "aggressively priced", and "prices lowered soon after release", but no actual price tags attached anywhere, or so it would seem.

thanks.

Here's an ad in PC Magazine from November 1997: https://books.google.nl/books?id=GvauLEzhsUwC … x%20m3d&f=false

Says $99.
Browsing through that magazine somewhat, I see a Diamond Monster 3D (original Voodoo chipset) for $199.
So that's pretty damn cheap/aggressively priced, if you ask me.

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

Reply 538 of 1096, by voodoo47

User metadata
Rank Newbie
Rank
Newbie

thanks - not a bad choice if you had 100 bucks and not one more at that time, I suppose. anyway, tried out a few games, but was a bit disappointed - even on a pentium3 system with loads of ram, the performance is less than optimal and even though all tested games were PowerVR ready, the visual quality was not satisfactory in most cases. Q1 and Q2 were ok, but the rest, not so much.

http://imgur.com/a/FQ9XA

also, any way of making the PowerVR logo not fade out when a 3D app is running?

3Dfx Help Page

Reply 539 of 1096, by Tuxality

User metadata
Rank Newbie
Rank
Newbie

Regarding my previous post... So, vetz donated PCX2 in order to help development, so I would like to publicly thank him for this generous gesture. Thank you, vetz! 😀

For now it helped my NEC PowerVR in PCem emulation to become more mature because I could do a basic reverse engineering in order to gather information about registers. For now I discovered some registers of which I'm 100% sure also now I know more or less how communication between driver and PCX2 works - where and how in PowerVR's memory is information stored about tiles, context etc. The problem is that even if everything should be correct, still SGL library does not load, so I think I missed some register and because of this driver goes to different code path. Tomb Raider works, but is null rendered, if only I could get SGL to work in Windows then I can write some demos in order to discover the rest of registers and implement simple rasterizer.

Also I wrote from scratch new MiniGL driver for PCX2, it's lightweight, working and very fast. For now fully supports retained and immediate mode, most API functions, but texturing is not supported as well as other more serious things like mipmapping, blending or direct access to framebuffer (which anyway will be unsupported I think). This code may be used as a base for wrapping OpenGL over other APIs.