Merge branch '86Box:master' into master

This commit is contained in:
Ompronce
2021-09-05 12:34:53 -04:00
committed by GitHub
6 changed files with 2189 additions and 1639 deletions

View File

@@ -344,6 +344,8 @@ extern const device_t s3_phoenix_trio64_onboard_pci_device;
extern const device_t s3_phoenix_trio64_pci_device; extern const device_t s3_phoenix_trio64_pci_device;
extern const device_t s3_phoenix_trio64vplus_pci_device; extern const device_t s3_phoenix_trio64vplus_pci_device;
extern const device_t s3_phoenix_trio64vplus_onboard_pci_device; extern const device_t s3_phoenix_trio64vplus_onboard_pci_device;
extern const device_t s3_mirocrystal_20sv_964_vlb_device;
extern const device_t s3_mirocrystal_20sv_964_pci_device;
extern const device_t s3_phoenix_vision864_pci_device; extern const device_t s3_phoenix_vision864_pci_device;
extern const device_t s3_phoenix_vision864_vlb_device; extern const device_t s3_phoenix_vision864_vlb_device;
extern const device_t s3_phoenix_vision868_pci_device; extern const device_t s3_phoenix_vision868_pci_device;
@@ -406,6 +408,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;

File diff suppressed because it is too large Load Diff

View File

@@ -759,7 +759,7 @@ void monitor_thread(void* param)
{ {
exit_event = 1; exit_event = 1;
} }
else if (strncasecmp(xargv[0], "fullscreen", 1) == 0) else if (strncasecmp(xargv[0], "fullscreen", 10) == 0)
{ {
video_fullscreen = 1; video_fullscreen = 1;
fullscreen_pending = 1; fullscreen_pending = 1;

File diff suppressed because it is too large Load Diff

View File

@@ -136,6 +136,7 @@ video_cards[] = {
{ "stealth32_pci", &et4000w32p_pci_device }, { "stealth32_pci", &et4000w32p_pci_device },
{ "stealth64v_pci", &s3_diamond_stealth64_964_pci_device }, { "stealth64v_pci", &s3_diamond_stealth64_964_pci_device },
{ "elsawin2kprox_964_pci", &s3_elsa_winner2000_pro_x_964_pci_device }, { "elsawin2kprox_964_pci", &s3_elsa_winner2000_pro_x_964_pci_device },
{ "mirocrystal20sv_pci", &s3_mirocrystal_20sv_964_pci_device },
{ "bahamas64_pci", &s3_bahamas64_pci_device }, { "bahamas64_pci", &s3_bahamas64_pci_device },
{ "px_vision864_pci", &s3_phoenix_vision864_pci_device }, { "px_vision864_pci", &s3_phoenix_vision864_pci_device },
{ "stealthse_pci", &s3_diamond_stealth_se_pci_device }, { "stealthse_pci", &s3_diamond_stealth_se_pci_device },
@@ -185,7 +186,9 @@ video_cards[] = {
{ "metheus928_vlb", &s3_metheus_86c928_vlb_device }, { "metheus928_vlb", &s3_metheus_86c928_vlb_device },
{ "mirocrystal10sd_vlb", &s3_mirocrystal_10sd_805_vlb_device }, { "mirocrystal10sd_vlb", &s3_mirocrystal_10sd_805_vlb_device },
{ "px_86c805_vlb", &s3_phoenix_86c805_vlb_device }, { "px_86c805_vlb", &s3_phoenix_86c805_vlb_device },
{ "px_s3_v7_805_vlb", &s3_spea_mirage_86c805_vlb_device },
{ "stealth64v_vlb", &s3_diamond_stealth64_964_vlb_device }, { "stealth64v_vlb", &s3_diamond_stealth64_964_vlb_device },
{ "mirocrystal20sv_vlb", &s3_mirocrystal_20sv_964_vlb_device },
{ "bahamas64_vlb", &s3_bahamas64_vlb_device }, { "bahamas64_vlb", &s3_bahamas64_vlb_device },
{ "px_vision864_vlb", &s3_phoenix_vision864_vlb_device }, { "px_vision864_vlb", &s3_phoenix_vision864_vlb_device },
{ "stealthse_vlb", &s3_diamond_stealth_se_vlb_device }, { "stealthse_vlb", &s3_diamond_stealth_se_vlb_device },
@@ -201,6 +204,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 }

View File

@@ -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
};