@@ -618,7 +618,7 @@ svga_recalctimings(svga_t *svga)
618
618
svga -> ma_latch = ((svga -> crtc [0xc ] << 8 ) | svga -> crtc [0xd ]) + ((svga -> crtc [8 ] & 0x60 ) >> 5 );
619
619
svga -> ca_adj = 0 ;
620
620
621
- svga -> rowcount = svga -> crtc [9 ] & 31 ;
621
+ svga -> rowcount = svga -> crtc [9 ] & 0x1f ;
622
622
623
623
svga -> hdisp_time = svga -> hdisp ;
624
624
svga -> render = svga_render_blank ;
@@ -639,27 +639,26 @@ svga_recalctimings(svga_t *svga)
639
639
svga -> hdisp *= (svga -> seqregs [1 ] & 8 ) ? 16 : 8 ;
640
640
svga -> hdisp_old = svga -> hdisp ;
641
641
642
- if ((svga -> bpp <= 8 ) || ((svga -> gdcreg [5 ] & 0x60 ) == 0x00 )) {
642
+ if ((svga -> bpp <= 8 ) || ((svga -> gdcreg [5 ] & 0x60 ) <= 0x20 )) {
643
643
if ((svga -> gdcreg [5 ] & 0x60 ) == 0x00 ) {
644
644
if (svga -> seqregs [1 ] & 8 ) /*Low res (320)*/
645
645
svga -> render = svga_render_4bpp_lowres ;
646
646
else
647
647
svga -> render = svga_render_4bpp_highres ;
648
+ } else if ((svga -> gdcreg [5 ] & 0x60 ) == 0x20 ) {
649
+ if (svga -> seqregs [1 ] & 8 ) /*Low res (320)*/
650
+ svga -> render = svga_render_2bpp_lowres ;
651
+ else
652
+ svga -> render = svga_render_2bpp_highres ;
648
653
} else {
649
654
svga -> map8 = svga -> pallook ;
650
- if (svga -> attrregs [ 0x10 ] & 0x40 ) /*Low res (320)*/
655
+ if (svga -> lowres ) /*Low res (320)*/
651
656
svga -> render = svga_render_8bpp_lowres ;
652
657
else
653
658
svga -> render = svga_render_8bpp_highres ;
654
659
}
655
660
} else {
656
661
switch (svga -> gdcreg [5 ] & 0x60 ) {
657
- case 0x20 : /*4 colours*/
658
- if (svga -> seqregs [1 ] & 8 ) /*Low res (320)*/
659
- svga -> render = svga_render_2bpp_lowres ;
660
- else
661
- svga -> render = svga_render_2bpp_highres ;
662
- break ;
663
662
case 0x40 :
664
663
case 0x60 : /*256+ colours*/
665
664
switch (svga -> bpp ) {
0 commit comments