Added the 3dfx Velocity 100 per request, alongside its BIOS.
This commit is contained in:
@@ -406,6 +406,7 @@ extern const device_t voodoo_3_2000_agp_device;
|
|||||||
extern const device_t voodoo_3_2000_agp_onboard_8m_device;
|
extern const device_t voodoo_3_2000_agp_onboard_8m_device;
|
||||||
extern const device_t voodoo_3_3000_device;
|
extern const device_t voodoo_3_3000_device;
|
||||||
extern const device_t voodoo_3_3000_agp_device;
|
extern const device_t voodoo_3_3000_agp_device;
|
||||||
|
extern const device_t velocity_100_agp_device;
|
||||||
|
|
||||||
/* Wyse 700 */
|
/* Wyse 700 */
|
||||||
extern const device_t wy700_device;
|
extern const device_t wy700_device;
|
||||||
|
@@ -201,6 +201,7 @@ video_cards[] = {
|
|||||||
{ "virge375_vbe20_vlb", &s3_virge_375_4_vlb_device },
|
{ "virge375_vbe20_vlb", &s3_virge_375_4_vlb_device },
|
||||||
{ "tgui9400cxi_vlb", &tgui9400cxi_device },
|
{ "tgui9400cxi_vlb", &tgui9400cxi_device },
|
||||||
{ "tgui9440_vlb", &tgui9440_vlb_device },
|
{ "tgui9440_vlb", &tgui9440_vlb_device },
|
||||||
|
{ "velocity100_agp", &velocity_100_agp_device },
|
||||||
{ "voodoo3_2k_agp", &voodoo_3_2000_agp_device },
|
{ "voodoo3_2k_agp", &voodoo_3_2000_agp_device },
|
||||||
{ "voodoo3_3k_agp", &voodoo_3_3000_agp_device },
|
{ "voodoo3_3k_agp", &voodoo_3_3000_agp_device },
|
||||||
{ "", NULL }
|
{ "", NULL }
|
||||||
|
@@ -62,7 +62,8 @@ enum
|
|||||||
{
|
{
|
||||||
TYPE_BANSHEE = 0,
|
TYPE_BANSHEE = 0,
|
||||||
TYPE_V3_2000,
|
TYPE_V3_2000,
|
||||||
TYPE_V3_3000
|
TYPE_V3_3000,
|
||||||
|
TYPE_VELOCITY100
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct banshee_t
|
typedef struct banshee_t
|
||||||
@@ -2406,7 +2407,7 @@ static uint8_t banshee_pci_read(int func, int addr, void *p)
|
|||||||
case 0x00: ret = 0x1a; break; /*3DFX*/
|
case 0x00: ret = 0x1a; break; /*3DFX*/
|
||||||
case 0x01: ret = 0x12; break;
|
case 0x01: ret = 0x12; break;
|
||||||
|
|
||||||
case 0x02: ret = (banshee->type == TYPE_BANSHEE) ? 0x03 : 0x05; break;
|
case 0x02: ret = (banshee->type == TYPE_BANSHEE) ? 0x03 : ((banshee->type == TYPE_VELOCITY100) ? 0x04 : 0x05); break;
|
||||||
case 0x03: ret = 0x00; break;
|
case 0x03: ret = 0x00; break;
|
||||||
|
|
||||||
case 0x04: ret = banshee->pci_regs[0x04] & 0x27; break;
|
case 0x04: ret = banshee->pci_regs[0x04] & 0x27; break;
|
||||||
@@ -2750,9 +2751,12 @@ static void *banshee_init_common(const device_t *info, char *fn, int has_sgram,
|
|||||||
|
|
||||||
if (!banshee->has_bios)
|
if (!banshee->has_bios)
|
||||||
mem_size = info->local; /* fixed size for on-board chips */
|
mem_size = info->local; /* fixed size for on-board chips */
|
||||||
else if (has_sgram)
|
else if (has_sgram) {
|
||||||
mem_size = device_get_config_int("memory");
|
if (banshee->type == TYPE_VELOCITY100)
|
||||||
else
|
mem_size = 8; /* Velocity 100 only supports 8 MB */
|
||||||
|
else
|
||||||
|
mem_size = device_get_config_int("memory");
|
||||||
|
} else
|
||||||
mem_size = 16; /* SDRAM Banshee only supports 16 MB */
|
mem_size = 16; /* SDRAM Banshee only supports 16 MB */
|
||||||
|
|
||||||
svga_init(info, &banshee->svga, banshee, mem_size << 20,
|
svga_init(info, &banshee->svga, banshee, mem_size << 20,
|
||||||
@@ -2889,6 +2893,10 @@ static void *v3_3000_agp_init(const device_t *info)
|
|||||||
{
|
{
|
||||||
return banshee_init_common(info, "roms/video/voodoo/3k12sd.rom", 0, TYPE_V3_3000, VOODOO_3, 1);
|
return banshee_init_common(info, "roms/video/voodoo/3k12sd.rom", 0, TYPE_V3_3000, VOODOO_3, 1);
|
||||||
}
|
}
|
||||||
|
static void *velocity_100_agp_init(const device_t *info)
|
||||||
|
{
|
||||||
|
return banshee_init_common(info, "roms/video/voodoo/Velocity100.VBI", 1, TYPE_VELOCITY100, VOODOO_3, 1);
|
||||||
|
}
|
||||||
|
|
||||||
static int banshee_available(void)
|
static int banshee_available(void)
|
||||||
{
|
{
|
||||||
@@ -2908,6 +2916,10 @@ static int v3_3000_available(void)
|
|||||||
return rom_present("roms/video/voodoo/3k12sd.rom");
|
return rom_present("roms/video/voodoo/3k12sd.rom");
|
||||||
}
|
}
|
||||||
#define v3_3000_agp_available v3_3000_available
|
#define v3_3000_agp_available v3_3000_available
|
||||||
|
static int velocity_100_available(void)
|
||||||
|
{
|
||||||
|
return rom_present("roms/video/voodoo/Velocity100.VBI");
|
||||||
|
}
|
||||||
|
|
||||||
static void banshee_close(void *p)
|
static void banshee_close(void *p)
|
||||||
{
|
{
|
||||||
@@ -3034,3 +3046,17 @@ const device_t voodoo_3_3000_agp_device =
|
|||||||
banshee_force_redraw,
|
banshee_force_redraw,
|
||||||
banshee_sdram_config
|
banshee_sdram_config
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const device_t velocity_100_agp_device =
|
||||||
|
{
|
||||||
|
"3dfx Velocity 100",
|
||||||
|
DEVICE_AGP,
|
||||||
|
0,
|
||||||
|
velocity_100_agp_init,
|
||||||
|
banshee_close,
|
||||||
|
NULL,
|
||||||
|
{ velocity_100_available },
|
||||||
|
banshee_speed_changed,
|
||||||
|
banshee_force_redraw,
|
||||||
|
banshee_sdram_config
|
||||||
|
};
|
Reference in New Issue
Block a user