Merge pull request #4723 from MaxwellS04/mirocrystal_3d

Add miroCRYSTAL 3D video card
This commit is contained in:
Miran Grča
2024-08-26 06:38:22 +02:00
committed by GitHub
3 changed files with 28 additions and 0 deletions

View File

@@ -529,6 +529,7 @@ extern const device_t s3_trio64v2_dx_onboard_pci_device;
extern const device_t s3_virge_325_pci_device;
extern const device_t s3_virge_325_onboard_pci_device;
extern const device_t s3_diamond_stealth_2000_pci_device;
extern const device_t s3_mirocrystal_3d_pci_device;
extern const device_t s3_diamond_stealth_3000_pci_device;
extern const device_t s3_stb_velocity_3d_pci_device;
extern const device_t s3_virge_375_pci_device;

View File

@@ -61,6 +61,7 @@ static int dither[4][4] = {
#define ROM_VIRGE_325 "roms/video/s3virge/86c325.bin"
#define ROM_DIAMOND_STEALTH3D_2000 "roms/video/s3virge/s3virge.bin"
#define ROM_MIROCRYSTAL_3D "roms/video/s3virge/miro Crystal 3D 1.02.bin"
#define ROM_DIAMOND_STEALTH3D_3000 "roms/video/s3virge/diamondstealth3000.vbi"
#define ROM_STB_VELOCITY_3D "roms/video/s3virge/stb_velocity3d_110.BIN"
#define ROM_VIRGE_DX "roms/video/s3virge/86c375_1.bin"
@@ -91,6 +92,7 @@ static int dither[4][4] = {
enum {
S3_VIRGE_325,
S3_DIAMOND_STEALTH3D_2000,
S3_MIROCRYSTAL_3D,
S3_DIAMOND_STEALTH3D_3000,
S3_STB_VELOCITY_3D,
S3_VIRGE_DX,
@@ -4326,6 +4328,9 @@ s3_virge_init(const device_t *info)
case S3_DIAMOND_STEALTH3D_2000:
bios_fn = ROM_DIAMOND_STEALTH3D_2000;
break;
case S3_MIROCRYSTAL_3D:
bios_fn = ROM_MIROCRYSTAL_3D;
break;
case S3_DIAMOND_STEALTH3D_3000:
bios_fn = ROM_DIAMOND_STEALTH3D_3000;
break;
@@ -4420,6 +4425,7 @@ s3_virge_init(const device_t *info)
switch (info->local) {
case S3_VIRGE_325:
case S3_DIAMOND_STEALTH3D_2000:
case S3_MIROCRYSTAL_3D:
virge->fifo_slots_num = 8;
virge->svga.decode_mask = (4 << 20) - 1;
virge->virge_id_high = 0x56;
@@ -4597,6 +4603,12 @@ s3_virge_325_available(void)
return rom_present(ROM_VIRGE_325);
}
static int
s3_mirocrystal_3d_available(void)
{
return rom_present(ROM_MIROCRYSTAL_3D);
}
static int
s3_virge_988_diamond_available(void)
{
@@ -4844,6 +4856,20 @@ const device_t s3_diamond_stealth_2000_pci_device = {
.config = s3_virge_config
};
const device_t s3_mirocrystal_3d_pci_device = {
.name = "S3 ViRGE (miroCRYSTAL 3D) PCI",
.internal_name = "mirocrystal_3d_pci",
.flags = DEVICE_PCI,
.local = S3_MIROCRYSTAL_3D,
.init = s3_virge_init,
.close = s3_virge_close,
.reset = s3_virge_reset,
{ .available = s3_mirocrystal_3d_available },
.speed_changed = s3_virge_speed_changed,
.force_redraw = s3_virge_force_redraw,
.config = s3_virge_config
};
const device_t s3_diamond_stealth_3000_pci_device = {
.name = "S3 ViRGE/VX (Diamond Stealth 3D 3000) PCI",
.internal_name = "stealth3d_3000_pci",

View File

@@ -174,6 +174,7 @@ video_cards[] = {
{ &s3_trio64v2_dx_pci_device },
{ &s3_virge_325_pci_device },
{ &s3_diamond_stealth_2000_pci_device },
{ &s3_mirocrystal_3d_pci_device },
{ &s3_diamond_stealth_3000_pci_device },
{ &s3_stb_velocity_3d_pci_device },
{ &s3_virge_375_pci_device },