Voodoo 3 3500 TV
This commit is contained in:
@@ -527,6 +527,8 @@ 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_3000_device;
|
||||
extern const device_t voodoo_3_3000_agp_device;
|
||||
extern const device_t voodoo_3_3500_agp_ntsc_device;
|
||||
extern const device_t voodoo_3_3500_agp_pal_device;
|
||||
extern const device_t velocity_100_agp_device;
|
||||
|
||||
/* Wyse 700 */
|
||||
|
@@ -254,6 +254,8 @@ video_cards[] = {
|
||||
{ &voodoo_3_1000_agp_device },
|
||||
{ &voodoo_3_2000_agp_device },
|
||||
{ &voodoo_3_3000_agp_device },
|
||||
{ &voodoo_3_3500_agp_ntsc_device },
|
||||
{ &voodoo_3_3500_agp_pal_device },
|
||||
{ NULL }
|
||||
};
|
||||
// clang-format on
|
||||
|
@@ -51,6 +51,8 @@
|
||||
#define ROM_VOODOO3_1000 "roms/video/voodoo/1k11sg.rom"
|
||||
#define ROM_VOODOO3_2000 "roms/video/voodoo/2k11sd.rom"
|
||||
#define ROM_VOODOO3_3000 "roms/video/voodoo/3k12sd.rom"
|
||||
#define ROM_VOODOO3_3500_AGP_NTSC "roms/video/voodoo/35k05n.rom"
|
||||
#define ROM_VOODOO3_3500_AGP_PAL "roms/video/voodoo/35k05p.rom"
|
||||
#define ROM_VELOCITY_100 "roms/video/voodoo/Velocity100.VBI"
|
||||
|
||||
static video_timings_t timing_banshee = { .type = VIDEO_PCI, .write_b = 2, .write_w = 2, .write_l = 1, .read_b = 20, .read_w = 20, .read_l = 21 };
|
||||
@@ -71,7 +73,9 @@ enum {
|
||||
TYPE_V3_1000,
|
||||
TYPE_V3_2000,
|
||||
TYPE_V3_3000,
|
||||
TYPE_VELOCITY100
|
||||
TYPE_V3_3500,
|
||||
TYPE_VELOCITY100,
|
||||
TYPE_VELOCITY200
|
||||
};
|
||||
|
||||
typedef struct banshee_t {
|
||||
@@ -3039,6 +3043,13 @@ banshee_init_common(const device_t *info, char *fn, int has_sgram, int type, int
|
||||
banshee->pci_regs[0x2f] = 0x00;
|
||||
break;
|
||||
|
||||
case TYPE_V3_3500:
|
||||
banshee->pci_regs[0x2c] = 0x1a;
|
||||
banshee->pci_regs[0x2d] = 0x12;
|
||||
banshee->pci_regs[0x2e] = 0x60;
|
||||
banshee->pci_regs[0x2f] = 0x00;
|
||||
break;
|
||||
|
||||
case TYPE_VELOCITY100:
|
||||
banshee->pci_regs[0x2c] = 0x1a;
|
||||
banshee->pci_regs[0x2d] = 0x12;
|
||||
@@ -3105,6 +3116,19 @@ v3_3000_agp_init(const device_t *info)
|
||||
{
|
||||
return banshee_init_common(info, ROM_VOODOO3_3000, 0, TYPE_V3_3000, VOODOO_3, 1);
|
||||
}
|
||||
|
||||
static void *
|
||||
v3_3500_agp_ntsc_init(const device_t *info)
|
||||
{
|
||||
return banshee_init_common(info, ROM_VOODOO3_3500_AGP_NTSC, 0, TYPE_V3_3500, VOODOO_3, 1);
|
||||
}
|
||||
|
||||
static void *
|
||||
v3_3500_agp_pal_init(const device_t *info)
|
||||
{
|
||||
return banshee_init_common(info, ROM_VOODOO3_3500_AGP_PAL, 0, TYPE_V3_3500, VOODOO_3, 1);
|
||||
}
|
||||
|
||||
static void *
|
||||
velocity_100_agp_init(const device_t *info)
|
||||
{
|
||||
@@ -3143,6 +3167,19 @@ v3_3000_available(void)
|
||||
return rom_present(ROM_VOODOO3_3000);
|
||||
}
|
||||
#define v3_3000_agp_available v3_3000_available
|
||||
|
||||
static int
|
||||
v3_3500_agp_ntsc_available(void)
|
||||
{
|
||||
return rom_present(ROM_VOODOO3_3500_AGP_NTSC);
|
||||
}
|
||||
|
||||
static int
|
||||
v3_3500_agp_pal_available(void)
|
||||
{
|
||||
return rom_present(ROM_VOODOO3_3500_AGP_PAL);
|
||||
}
|
||||
|
||||
static int
|
||||
velocity_100_available(void)
|
||||
{
|
||||
@@ -3305,6 +3342,34 @@ const device_t voodoo_3_3000_agp_device = {
|
||||
banshee_sdram_config
|
||||
};
|
||||
|
||||
const device_t voodoo_3_3500_agp_ntsc_device = {
|
||||
.name = "3dfx Voodoo3 3500 TV (NTSC)",
|
||||
.internal_name = "voodoo3_3500_agp_ntsc",
|
||||
.flags = DEVICE_AGP,
|
||||
.local = 0,
|
||||
.init = v3_3500_agp_ntsc_init,
|
||||
.close = banshee_close,
|
||||
.reset = NULL,
|
||||
{ .available = v3_3500_agp_ntsc_available },
|
||||
.speed_changed = banshee_speed_changed,
|
||||
.force_redraw = banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
};
|
||||
|
||||
const device_t voodoo_3_3500_agp_pal_device = {
|
||||
.name = "3dfx Voodoo3 3500 TV (PAL)",
|
||||
.internal_name = "voodoo3_3500_agp_pal",
|
||||
.flags = DEVICE_AGP,
|
||||
.local = 0,
|
||||
.init = v3_3500_agp_pal_init,
|
||||
.close = banshee_close,
|
||||
.reset = NULL,
|
||||
{ .available = v3_3500_agp_pal_available },
|
||||
.speed_changed = banshee_speed_changed,
|
||||
.force_redraw = banshee_force_redraw,
|
||||
banshee_sdram_config
|
||||
};
|
||||
|
||||
const device_t velocity_100_agp_device = {
|
||||
.name = "3dfx Velocity 100",
|
||||
.internal_name = "velocity100_agp",
|
||||
|
Reference in New Issue
Block a user