joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.75k stars 381 forks source link

Add ATI Rage 128 Pro/Rage XL emulation #3889

Open aquaboxs opened 1 year ago

aquaboxs commented 1 year ago

Is your feature request related to a problem? Please describe.

No response

What you want

Have been going to ATI Rage 128 Pro/Rage XL on DOSBox-X, It should match Voodoo 1/Voodoo 2 with ATI Rage 128 Pro to work. but It's gonna to work with 3D/2D Accelerator on this ATI Rage 128 Pro card.

I have documents of ATI Rage 128 Pro/Rage XL to add these:

Describe alternatives you've considered

No response

Additional information

No response

Have you checked that no similar feature request(s) exist?

Code of Conduct & Contributing Guidelines

aquaboxs commented 1 year ago

Oh yeah, ATI Rage 128 Pro video memory has 16 MB to 32 MB, It matches Voodoo1/Voodoo2 with ATI Rage 128 Pro with Glide/D3D support.

aquaboxs commented 1 year ago

Here I found ATI Rage 128 Pro video by swaaye from this

But it runs games/benchmark/techdemos, such as (Techdemo: ATI Rage 128 Pro Tech Demo/Benchmark: 3DMark 99 MAX and 3DMark2000/Games: Quake 2, Quake 3 Arena, Need for Speed 3, Half Life, and more games I play.)

joncampbell123 commented 1 year ago

It's going to be a fair amount of work because so much of the SVGA and VBE code in DOSBox/DOSBox-X is so heavily written around the S3 chipset emulation.

However I could start things out by at least adding a machine type and SVGA card variable for ATI chipsets as a base foundation to start building it up.

I could start it simple with, say, machine=svga_ati18800 (ATI VGA Wonder) (http://hackipedia.org/browse.cgi/Computer/Platform/PC%2c%20IBM%20compatible/Video/VGA/SVGA/ATI%2c%20Array%20Technology%20Inc/ATI%20VGA%20Wonder%20Operational%20Manual%2c%20OEM%20version%20%281988%2d07%29%2epdf) which comes from that time when SVGA support did not have VESA BIOS extensions in the VGA BIOS. Perhaps over time the code could work well enough for DOS games that support the chipset, the WHATVGA test program, and maybe eventually Windows 3.1.

As chipsets tend to build on themselves over time, the code can work it's way up through the various Mach chipsets and then eventually to ATI Rage.

rderooy commented 1 year ago

Ideally, I think the current video card spaghetti in src/hardware/vga*.cpp should be split out better, a cleaner level of abstraction with per-adapter files. Right now files such as vga.cpp contain everything from hercules/cga up to SVGA.

RNMB15 commented 1 year ago

I found a wikipedia article about the ATI-cards: https://en.wikipedia.org/wiki/ATI_Wonder_series

Torinde commented 6 months ago

https://github.com/ata4/glrage

OpenGL wrapper for the ATI 3D C Interface (ATI3DCIF) and DirectDraw 2

QEMU has the 2D part of Rage 128 Pro and Radeon RV100

MAME seems to mention various Rage models.

mrmaller1905 commented 1 week ago

Can someone add support for ATI Rage 128/Rage XL emulation to DOSBox-X for the 3D part?