SB: Fix CT1475 even port read and return 0xFF on it and ports 227h and 22Bh which are tested for noise by OS/2 Warp 4.0, fixes the OS/2 Warp 4.0 hang on SB PNP's and AWE 32.

This commit is contained in:
OBattler
2024-12-25 20:25:25 +01:00
parent ca9564f5f2
commit c98ad84171
2 changed files with 11 additions and 4 deletions

View File

@@ -1177,12 +1177,11 @@ sb_ct1745_mixer_read(uint16_t addr, void *priv)
const sb_ct1745_mixer_t *mixer = &sb->mixer_sb16;
uint8_t ret = 0xff;
if (!(addr & 1))
ret = mixer->index;
sb_log("sb_ct1745: received register READ: %02X\t%02X\n", mixer->index, mixer->regs[mixer->index]);
if ((mixer->index >= 0x30) && (mixer->index <= 0x47))
if (!(addr & 1))
ret = 0xff /*mixer->index*/;
else if ((mixer->index >= 0x30) && (mixer->index <= 0x47))
ret = mixer->regs[mixer->index];
else {
switch (mixer->index) {

View File

@@ -1938,6 +1938,14 @@ sb_read(uint16_t a, void *priv)
} else
ret = 0xff;
break;
case 0x7:
case 0xB:
/*
These two ports are tested for random noise by OS/2 Warp 4.0, so
return 0xff to get through said test.
*/
ret = 0xff;
break;
case 0xA: /* Read data */
if (dsp->mpu && dsp->uart_midi)
ret = MPU401_ReadData(dsp->mpu);