Creating a "Correction" wrapper for obsolete HW?


I have this very, very old video card (PowerVR PCX2 4MB) with an outdated SGL MiniGL driver for it (it has no full ICD, latest MiniGL for it is from November 1998) and I want to attempt playing OpenArena on the card. The OS used is Windows 98SE.
The problem is, the MiniGL driver does not like triangle lists/glArrayElement, and will not render anything, not even lines for any debug modes.

I think the only way to work around this would be a ‘correction wrapper’ that would simply intercept and translate triangle lists into something more arcane but compatible for the MiniGL driver, rendering the triangles similar to Quake2, then pass it over to opengl32_2.dll (which would be the SGL MiniGL driver).

Problem is I don’t even know where to begin with this one. :frowning:

Also another thing i’d want to work around is subtractive blend - some games use it for decals and shadows (Such as Quake3) and the MiniGL renders them like black being the opaque color, white being transparent - it needs to blend as “GL_ONE” so the PowerVR card can attempt to alpha blend it (it has no native additive blending or subtractive blending), with probably ‘0 0 0’ coloring to turn the white part black.

For my tools, I have MinGW/MSYS, and Visual C++ 6 Introductory Edition, and I haven’t coded C in years so I pretty much forgot a ton of things about the language too, don’t know where to start :frowning:


for reference, here’s the gl info

GL_VENDOR: NEC Electronics
GL_EXTENSIONS: POWERVR_set_global_palette GL_EXT_paletted_texture GL_EXT_shared_texture_palette

bad advice for playing but worth a try, Mesa3D.
does everything in software which will give around 1 frame per 10 seconds but still, might push you in a certain direction and ideas.

otherwise you could look at some OpenGL interception libs with source and code something that renders everything in the way you want it.

It may even be simpler to edit the OpenArena source code to directly generate simple GL triangles.