Closed anabate123 closed 1 year ago
Implementing cards with 3D acceleration capabilities is extremely difficult. As an owner of a Rage IIC & a Rage 128, i would like to see Rage emulation happening too. There's a Riva 128 implementation in the works, though not that much progress is reported. Imagine the ATI Rage now.
Hey, I'm the person who's worked on the nVidia Riva 128 emulation. AFAICT, there simply isn't enough documentation on ATI Rage cards before the Rage 128, and the only docs available for that card are open source drivers :P Simply put, it's not likely at all, I'm afraid.
@qeeg VGAmuseum has some documentation for Rage cards, Here's link to datasheet for 3D Rage Pro (Rage LT Pro is mobile version of that card): http://www.vgamuseum.info/index.php/cards/item/download/118_15798fb50539a5a89c7a14598f82440b
the fact that documentation exists is known but yet it's pretty difficult to make. There has to be a proper reason for someone to implement this.
I'm probably late to the party but there is an ongoing effort to write an emulator for ATI 3D Rage Pro video card: C++ source and header.
This GPU serves as a soldered on-board video in some late PowerMacintosh models. Their ROMs (i.e. BIOS) include both OpenFirmware and Mac OS drivers for this chip.
I'm analyzing the way those drivers communicate with the HW right now. Next step is to implement frame buffer handling and HW cursor. 3D features, despite being used in a couple of games, aren't probably required yet. Not sure about the 2D acceleration.
VGA Museum hosts a couple of confidential ATI docs including the datasheet and a RRG (register reference guide). Linux sources bring an additional clarification about some obscure bits/features.
I think a basic emulation of this card will be available soon. Advanced features will be added on-demand...
Available hardware documents:
Programmer guide: http://old.vgamuseum.info/images/stories/doc/ati/prg-215r3-00-10_rage_pro_and_derivatives_programmers_guide_mar00.pdf
Register Reference guide: http://old.vgamuseum.info/images/stories/doc/ati/rrg-g04500-c_rev1.01_rage_128_pro_register_reference_guide_jan00.pdf
Specification guide: http://vgamuseum.info/images/doc/ati/rage128/gcs-c04100_rage_128_vr_and_128_gl_graphics_controller_specifications_nov98.pdf
i posted a long ago https://github.com/86Box/86Box/issues/1786
and i spot that https://github.com/dingusdev/dingusppc/blob/master/devices/video/atirage.cpp partially done emulation is updated 4 months ago.
ATi 3D Rage chips may be more doable as they were supported by Mesa3D in the past, which means source code documentation to work off.
VGA museum hosts register reference guides (RRGs) as well as programming references for various ATI Rage ASICs. Unfortunately, none of them is complete. Especially, I didn't see any halfway complete description of the 3D engine registers for Mach64. We even don't know how its 3D pipeline looks like, not to mention its internals. The 3D section of RAGE 128 is better documented. Real Rage 128 ASICs seem to relay on a microcode engine responsible for performant parsing of CCE packets internally. ATI drivers usually upload a comparable short (2KB) microcode program to the engine at startup. We do know absolutely nothing about this microcode except certain assumptions that the Rage 128 GPU has some kind of VLIW architecture that expects fixed size opcodes (QWORDS). Implementing a high-performance emulation of such an engine based on this scarce documentation will be challenging. 2D stuff is indeed doable as recent experiments with its basic emulation in Dingusppc show...
ATi 3D Rage chips may be more doable as they were supported by Mesa3D in the past, which means source code documentation to work off.
Closing because maximumspatium is right: Implementing a high-performance emulation of such an engine based on this scarce documentation will be challenging. Well, that is, unless we only do 2D but such partial emulation would be contrary to our goals. As such, this is being closed with a "Can't do".
Is your feature request related to a problem? Please describe. 86Box doesn't have ATI 3D Rage Pro emulation
Describe the solution you'd like I would like 86Box to emulate the ATI 3D Rage Pro video card
Describe alternatives you've considered I've considered using either ATI Graphics Pro Turbo (Mach64 GX + Voodoo2) or ATI Video Xpression (Mach64 VT2 + Voodoo2)
Additional context The ATI 3D Rage Pro so for, I think, had these specs: