v1.19.3: Last-minute video tweaks (fixed EGA graphics modes and eliminated unnecessary forced updates)

This commit is contained in:
Jeff Parsons 2015-09-02 08:45:41 -07:00
commit 62292571da
3 changed files with 32 additions and 37 deletions

View file

@ -937,10 +937,10 @@ function Cl(a){if(0<=a.sa){if(void 0!==a.fa){var b=a.fa[a.sa];if(b&131072){var b
function El(a){var b,c=a.O;a.oe=!1;var d=c.Qd[5];if(null!=d){b=1024;var e=0,h=c.Qd[3]&31;switch(d&3){case 0:if(h){e=32;switch(h&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.Rc=h&7}break;case 1:e=1;break;case 2:switch(h&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.kb==Rj&&(e=3,c.Rc=h&7)}d&8&&(b=1280);c=c.te[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.oe=!0));b|=e}return b}
function Fl(a,b){var c=a.O;c&&null!=b&&b!=c.bg&&(c.Xg(b),a.ga.Xg(c.mb,c.Vb,c.qh()))}
function vl(a,b){var c,d=a.Qa,e=a.O;if(e)if(e.kb==rk)d=tk;else if(5<=e.kb){var d=null,h=e.td>>2,g=32768<h?32768:h,m=e.Qd[6];if(null!=m){switch(m&12){case 0:e.mb=655360;e.Vb=h;d=255;break;case 4:e.mb=655360;e.Vb=h;d=3==a.Ja?15:16;break;case 8:e.mb=720896;e.Vb=g;d=tk;break;case 12:e.mb=753664,e.Vb=g,d=3==a.Ja?2:3}var q=80==(e.Qd[5]&80);!q||e.mb==a.mb&&e.Vb==a.Vb||(b=!0);c=e.te[1]&8;h=e.rb[6];h|=e.rb[7]&1?256:0;e.kb==Rj&&(h|=e.rb[7]&32?512:0);g=e.rb[9];255!=d&&(m&1?655360==e.mb||q?e.Qd[5]&64?d=g&31?
143>=e.rb[18]?19:20:21:g&128?d=c?13:14:500<h&&(d=3==a.Ja?17:18):d=c?7-d:6:d-=c?2:0);c=El(a)}}else e.Tc&8&&(e.Tc&2?(d=e.Tc&16?6:5,e.Tc&4||--d):(d=e.Tc&1?3:1,e.Tc&4&&--d));else a.Qa=null,null==d&&(d=a.Ha);if(!ul(a,d,b))return!1;Fl(a,c);return!0}
function ul(a,b,c){if(null!=b&&(b!=a.Qa||c)){a.Yg=0;a.Qa=b;a.lb=!1;b=a.O||(b==tk?a.Ba:a.ea);if(b!=a.O||b.mb!=a.mb||b.Vb!=a.Vb){Cl(a);if(a.mb){if(!Yb(a.ga,a.mb,a.Vb))return!1;a.O&&(a.O.uc=!1)}a.O=b;b.uc=!0;a.mb=b.mb;a.Vb=b.Vb;if(!Pb(a.ga,b.mb,b.Vb,3,b===a.B?b:null))return!1}a.ma=0;a.R=a.ad;a.Z=a.xd;a.Qb=a.R;a.$c=sk[tk][2];b=0;var d=sk[a.Qa];d&&(a.R=d[0],a.Z=d[1],a.$c=d[2],b=d[3],a.ma=d[4],4!=a.Ja&&7!=a.Ja||a.O!==a.B||3!=a.ma||(7==a.B.rb[9]?a.Z=43:a.ma=a.kb));a.Ff=a.R*a.Z|0;a.bf=a.Ff/a.$c|0;a.gc=a.bf;
a.rd=0;void 0!==b&&(a.gc=(a.gc<<1)+b|0,a.rd=a.gc+b>>1);a.Va.length&&(a.Na=a.Da/a.R|0,a.Pa=a.Ma/a.Z|0,a.ma?(b=a.Va[a.ma],d=a.Va[a.ma<<1],a.zj&&80==a.R?d&&a.Na>=3*d.Fc>>2&&(a.ma<<=1,b=d):(d&&a.Na>=d.Fc&&(a.ma<<=1,b=d),b&&(a.Na=b.Fc,a.Pa=b.Gc)),a.hc=a.qc=0,b&&(a.hc=a.R*b.Fc,a.qc=a.Z*b.Gc)):(a.Na=a.Pa=1,a.hc=a.R,a.qc=a.Z),a.Fb=a.pa.createImageData(a.hc,a.qc),a.qb=window.document.createElement("canvas"),a.qb.width=a.hc,a.qb.height=a.qc,a.sb=a.qb.getContext("2d"),a.zd=a.Ad=0,a.sd=a.Da,a.vd=a.Ma,b=a.Da-
a.R*a.Na,d=a.Ma-a.Z*a.Pa,0<b&&(a.zd=b>>1,a.sd-=b),0<d&&(a.Ad=d>>1,a.vd-=d),b||d)&&(a.pa.fillStyle=a.ua.style.backgroundColor,a.pa.fillRect(0,0,a.Da,a.Ma));!1!==c?Xc(a,!0):(a.lb=!1,Gl(a,!0))}return!0}function Al(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function Gl(a,b){a.bb=-1;a.Ga=!1;if(b){var c=a.bf;if(void 0===a.fa||a.fa.length!=c)a.fa=Array(c)}}
143>=e.rb[18]?19:20:21:g&128||350>h?d=c?13:14:480<=h&&(d=3==a.Ja?17:18):d=c?7-d:6:d-=c?2:0);c=El(a)}}else e.Tc&8&&(e.Tc&2?(d=e.Tc&16?6:5,e.Tc&4||--d):(d=e.Tc&1?3:1,e.Tc&4&&--d));else a.Qa=null,null==d&&(d=a.Ha);if(!ul(a,d,b))return!1;Fl(a,c);return!0}
function ul(a,b,c){if(null!=b&&(b!=a.Qa||c)){a.Yg=0;a.Qa=b;a.lb=!1;b=a.O||(b==tk?a.Ba:a.ea);if(b!=a.O||b.mb!=a.mb||b.Vb!=a.Vb){Cl(a);if(a.mb){if(!Yb(a.ga,a.mb,a.Vb))return!1;a.O&&(a.O.uc=!1)}a.O=b;b.uc=!0;a.mb=b.mb;a.Vb=b.Vb;if(!Pb(a.ga,b.mb,b.Vb,3,b===a.B?b:null))return!1}a.ma=0;a.R=a.ad;a.Z=a.xd;a.Qb=a.R;a.$c=sk[tk][2];b=0;if(c=sk[a.Qa])a.R=c[0],a.Z=c[1],a.$c=c[2],b=c[3],a.ma=c[4],4!=a.Ja&&7!=a.Ja||a.O!==a.B||3!=a.ma||(7==a.B.rb[9]?a.Z=43:a.ma=a.kb);a.Ff=a.R*a.Z|0;a.bf=a.Ff/a.$c|0;a.gc=a.bf;a.rd=
0;void 0!==b&&(a.gc=(a.gc<<1)+b|0,a.rd=a.gc+b>>1);a.Va.length&&(a.Na=a.Da/a.R|0,a.Pa=a.Ma/a.Z|0,a.ma?(b=a.Va[a.ma],c=a.Va[a.ma<<1],a.zj&&80==a.R?c&&a.Na>=3*c.Fc>>2&&(a.ma<<=1,b=c):(c&&a.Na>=c.Fc&&(a.ma<<=1,b=c),b&&(a.Na=b.Fc,a.Pa=b.Gc)),a.hc=a.qc=0,b&&(a.hc=a.R*b.Fc,a.qc=a.Z*b.Gc)):(a.Na=a.Pa=1,a.hc=a.R,a.qc=a.Z),a.Fb=a.pa.createImageData(a.hc,a.qc),a.qb=window.document.createElement("canvas"),a.qb.width=a.hc,a.qb.height=a.qc,a.sb=a.qb.getContext("2d"),a.zd=a.Ad=0,a.sd=a.Da,a.vd=a.Ma,b=a.Da-a.R*a.Na,
c=a.Ma-a.Z*a.Pa,0<b&&(a.zd=b>>1,a.sd-=b),0<c&&(a.Ad=c>>1,a.vd-=c),b||c)&&(a.pa.fillStyle=a.ua.style.backgroundColor,a.pa.fillRect(0,0,a.Da,a.Ma));a.lb=!1;Gl(a,!0);Xc(a)}return!0}function Al(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function Gl(a,b){a.bb=-1;a.Ga=!1;if(b){var c=a.bf;if(void 0===a.fa||a.fa.length!=c)a.fa=Array(c)}}
function Dl(a,b,c,d,e){var h=d&255,g=d>>8;d=g&15;var m=a.Va[a.ma];m.lf&&(d=m.lf[d]);var q=g>>4&15;m.lf&&(q=m.lf[q]);e?(b*=m.Fc,c*=m.Gc,e.fillStyle=m.ye[q],e.fillRect(b,c,m.Fc,m.Gc)):(b=b*a.Na+a.zd,c=c*a.Pa+a.Ad,a.pa.fillStyle=m.ye[q],a.pa.fillRect(b,c,a.Na,a.Pa));g&256&&(q=(h&15)*m.Fc,h=(h>>4)*m.Gc,e?e.drawImage(m.bh[d],q,h,m.Fc,m.Gc,b,c,m.Fc,m.Gc):a.pa.drawImage(m.bh[d],q,h,m.Fc,m.Gc,b,c,a.Na,a.Pa));g&512&&(h=a.Mf,g=a.ne,e?(a.gb&&a.gb!==m.Gc&&(h=h*m.Gc/a.gb|0,g=g*m.Gc/a.gb|0),e.fillStyle=m.ye[d],
e.fillRect(b,c+h,m.Fc,g)):(a.gb&&a.gb!==a.Pa&&(h=h*a.Pa/a.gb|0,g=g*a.Pa/a.gb|0),a.pa.fillStyle=m.ye[d],a.pa.fillRect(b,c+h,a.Na,g)))}
function Xc(a,b){if(a.oa.kc){var c=!1,d=a.O;d&&(d!==a.B?d.Tc&8&&(c=!0):d.Od&32&&(c=!0));if(c||b){if(b)Gl(a,!0);else if(void 0===a.fa)return;var e=!1;!(b||++a.Yg&15)&&0<=a.pb&&(a.pb++,e=!0);var h=0,g=a.Ff,m=a.mb,c=m,q=c+a.Vb;19<=a.Qa&&(m=c=655360,q=c+65536);if(Hl(a,d)&8||d.$e&&d.$e<d.Di)d.Ef=(d.rb[12]<<8)+d.rb[13]|0,d.$e=0;var t=d.Ef;a.ma&&(t<<=1);c+=t;t=a.gc;5<=a.kb&&d.rb[19]&&d.rb[19]<<1!=d.rb[1]+1&&(a.Qb=d.rb[19]<<(a.ma?1:d.rb[20]&64?3:4),t=(a.Qb*(a.Z-1)+a.R)/a.$c|0);c+t>q&&(t=q-c,0>t&&(t=0));q=