Changes to 8514/A compatible stuff (November 2nd, 2024)

1. vga_on global variable removed, as it didn't play well with 2 subsystems at once (8514/A and XGA both enabled).
2. Emulate the Foreground/Background Color aliases of PIX_TRANS properly when not executing a command.
3. Voodoo 3D override now works properly (again) with Mach32 PCI cards and others by turning the 8514/A timer off and on accordingly.
This commit is contained in:
TC1995
2024-11-02 20:50:06 +01:00
parent b44c214cea
commit 12a57ffeac
6 changed files with 561 additions and 383 deletions

View File

@@ -42,7 +42,6 @@ typedef union {
typedef struct ibm8514_t {
rom_t bios_rom;
rom_t bios_rom2;
rom_t bios_rom3;
hwcursor8514_t hwcursor;
hwcursor8514_t hwcursor_latch;
uint8_t pos_regs[8];
@@ -228,6 +227,7 @@ typedef struct ibm8514_t {
uint32_t vram_amount;
int vram_512k_8514;
PALETTE _8514pal;
int vendor_mode;
latch8514_t latch;
} ibm8514_t;

View File

@@ -79,6 +79,7 @@ typedef struct svga_t {
uint8_t fcr;
uint8_t hblank_overscan;
uint8_t vidsys_ena;
uint8_t sleep;
int dac_addr;
int dac_pos;
@@ -297,8 +298,6 @@ typedef struct svga_t {
void * xga;
} svga_t;
extern int vga_on;
extern void ibm8514_poll(void *priv);
extern void ibm8514_recalctimings(svga_t *svga);
extern uint8_t ibm8514_ramdac_in(uint16_t port, void *priv);
@@ -314,6 +313,8 @@ extern void ibm8514_short_stroke_start(int count, int cpu_input, uint32_t mi
extern void ibm8514_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, svga_t *svga, int len);
#ifdef ATI_8514_ULTRA
extern void ati8514_out(uint16_t addr, uint8_t val, void *priv);
extern uint8_t ati8514_in(uint16_t addr, void *priv);
extern void ati8514_recalctimings(svga_t *svga);
extern uint8_t ati8514_mca_read(int port, void *priv);
extern void ati8514_mca_write(int port, uint8_t val, void *priv);