Fix read latch address on AVGA2/Cirrus Logic cards.
This commit is contained in:
parent
60472b3a66
commit
cbcc5d126a
1 changed files with 6 additions and 1 deletions
|
|
@ -1098,13 +1098,18 @@ uint8_t gd5429_read_linear(uint32_t addr, void *p)
|
||||||
svga_t *svga = &gd5429->svga;
|
svga_t *svga = &gd5429->svga;
|
||||||
uint8_t temp, temp2, temp3, temp4;
|
uint8_t temp, temp2, temp3, temp4;
|
||||||
int readplane = svga->readplane;
|
int readplane = svga->readplane;
|
||||||
uint32_t latch_addr = (addr << 2) & svga->decode_mask;
|
uint32_t latch_addr;
|
||||||
|
|
||||||
cycles -= video_timing_read_b;
|
cycles -= video_timing_read_b;
|
||||||
cycles_lost += video_timing_read_b;
|
cycles_lost += video_timing_read_b;
|
||||||
|
|
||||||
egareads++;
|
egareads++;
|
||||||
|
|
||||||
|
if (svga->gdcreg[0xb] & GRB_X8_ADDRESSING)
|
||||||
|
latch_addr = (addr << 3) & svga->decode_mask;
|
||||||
|
else
|
||||||
|
latch_addr = (addr << 2) & svga->decode_mask;
|
||||||
|
|
||||||
if (svga->gdcreg[0xb] & GRB_X8_ADDRESSING)
|
if (svga->gdcreg[0xb] & GRB_X8_ADDRESSING)
|
||||||
addr <<= 3;
|
addr <<= 3;
|
||||||
else if (svga->chain4 || svga->fb_only)
|
else if (svga->chain4 || svga->fb_only)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue