1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-05-28 23:41:32 +00:00
8bitworkshop/gen/astrocade-B6S7IURT.js

15 lines
18 KiB
JavaScript
Raw Normal View History

import{J as m0,c as f0,d as o0,e as c0,k as B0,q as g0}from"./chunk-ULPRULB6.js";import{$ as q,J as v,W as A,X as a0,Z as d0,aa as N,g as B,l as i0,m as s0,t as n0}from"./chunk-RXF2JDJ3.js";import"./chunk-WAARL7ET.js";var p0=d0([[A.UP,16,1],[A.DOWN,16,2],[A.LEFT,16,4],[A.RIGHT,16,8],[A.A,16,16],[A.P2_UP,17,1],[A.P2_DOWN,17,2],[A.P2_LEFT,17,4],[A.P2_RIGHT,17,8],[A.P2_A,17,16],[A.VK_P,20,1],[A.VK_SLASH,20,2],[A.VK_X,20,4],[A.VK_MINUS,20,8],[A.VK_COMMA,20,16],[A.VK_EQUALS,20,32],[A.VK_O,21,1],[A.VK_L,21,2],[A.VK_9,21,4],[A.VK_6,21,8],[A.VK_3,21,16],[A.VK_PERIOD,21,32],[A.VK_I,22,1],[A.VK_K,22,2],[A.VK_8,22,4],[A.VK_5,22,8],[A.VK_2,22,16],[A.VK_0,22,32],[A.VK_U,23,1],[A.VK_J,23,2],[A.VK_7,23,4],[A.VK_4,23,8],[A.VK_1,23,16],[A.VK_BACK_SLASH,23,32]]),l0=2,w0=function(d){var t,i,c,h,g,U,e0,W;let I=d?320:160,G=d?204:102,x0=I>>2,D0=d?16383:4095,N0=256,P0=4293848814,I0=4278190080;var R=new Uint8Array(32),f=0,D=0,m=!1,E=0,Y=0,b=0,M=0,p=0,w=G,K=new Uint32Array(8),j=new Uint8Array(8),Z=0,y=new Uint8Array(d?262:131),l=new Uint8Array(4),X=0,Q=0,H=0,o=new Uint8Array(8),S=0;function V(e,x){i[e]=x,H++,y[(e&D0)/x0|0]=1}function E0(e,x){for(var s=e*4+3,n=0;n<4;n++){var C=e%x0>=(Y&63)?0:4;e0[s--]=K[C+(x&3)],x>>=2}}function t0(e){for(var x=e*I/4,s=0;s<I/4;s++)E0(x+s,i[x+s])}function F0(e,x){if(f&8){var s=0;m||(x>>=4);for(var n=0;n<4;n++){var C=x&1?D>>2&3:D&3;s|=C<<n*2,x>>=1}x=s,m=!m}if(f&4){if(X&4){var a=2*(~X&3);x=(l[3]>>a&3)<<6|(l[2]>>a&3)<<4|(l[1]>>a&3)<<2|(l[0]>>a&3)<<0}else l[X&3]=x;X++}else{var a=(f&3)<<1,s=x>>a|E;E=x<<8-a&255,x=s}if(f&64&&(x=(x&3)<<6|(x&12)<<2|(x&48)>>2|(x&192)>>6),f&48){var F=i[e],r=0;F&192&&x&192&&(r|=1),F&48&&x&48&&(r|=2),F&12&&x&12&&(r|=4),F&3&&x&3&&(r|=8),f&16&&(x|=F),f&32&&(x^=F),Q=Q&240|r|r<<4}V(e,x)}function J(e,x){j[e&7]=x&255,K[e&7]=$[x&255],T()}function Y0(){var e=Y>>6}function T(){Z=G}function b0(){let e=o[0]|o[1]<<8,x=o[2]&63,s=o[3],n=S&255|o[4]<<8,C=o[5],a=o[6]+1,F,r=0,u=0;r=0,(x&2)==0&&(r=1);function A0(){r&&(x&4)!=0&&(F!==0||(x&8)==0)&&e++,(x&2)!=0&&(r^=1)}function r0(){F!==0&&((x&32)!=0?n++:n--)}for(;a>=0;){let L;for(F=C;F>=0;){let z,_;z=(x&1)==0?e:n,F===0&&(x&8)!=0?_=0:_=c.read(e),(x&1)==0?A0():r0(),z=(x&1)!=0?e:n,V(z,_),(x&1)==0?r0():A0(),u+=4,F--}L=(n&255)+s&256,n=n&65280|n+s&255,(x&16)==0?n+=L:n-=L^256,a--}}this.drawScanline=e=>{e==M&&b&8&&(t.retryInterrupts=!(b&4),this.probe&&this.probe.logInterrupt(p),t.interrupt(p)),e<G&&Z>0?(y[e]=0,t0(e),Z--):y[e]&&(y[e]=0,t0(e))},this.init=(e,x,s,n,C)=>{t=x,i=s,R=n,W=C,d?c={read:N([[16384,32767,16383,function(F){return i[F]}],[53248,57343,4095,function(F){return i[F+16384]}],[0,16383,16383,function(F){return g?g[F]:0}],[32768,49151,16383,function(F){return g?g[F+16384]:0}]]),write:N([[16384,32767,16383,V],[0,16383,16383,F0],[53248,57343,4095,function(F,r){V(F+16384,r)}]])}:(U=q(new i0().decode(s0(atob(Q0))),8192),c={read:N([[0,8191,8191,function(F){return U[F]}],[8192,16383,8191,function(F){return g?g[F]:0}],[16384,20479,4095,function(F){return H++,i[F]}]]),write:N([[16384,20479,4095,V],[0,16383,4095,F0]])}),h={read:function(F){F&=31;var r;switch(F){case 8:r=Q,Q=0;break;default:r=R[F];break}return r},write:function(F,r){if(F!=42331){if(F&=255,F>120&&F<128){o[F&7]=r,F==114&&(S=0),F==116&&(S=S+o[3]&255),F==126&&b0();return}switch(F&=31,r&=255,F){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:J(F,r);break;case 9:Y=r,Y0(),T();break;case 10:w=d?r:r>>1,T();break;case 11:var u=t.saveState();J((u.BC>>8)-1,c.read(u.HL));break;case 12:f=r,E=0,X=0,m=!1;break;case 13:p=r;break;case 14:b=r;break;case 15:M=d?r:r>>1;break;case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:W.setACRegister(F,r);break;case 24:var u=t.saveState();W.setACRegister((u.BC>>8)-1,c.read(u.HL));break;case 25:D=r;break;case 26:case 27:case 28:case 29:case 30:break;default:break}}}},e.connectCPUMemoryBus(c),e.connectCPUIOBus(h),this.membus=c,this.iobus=h;for(var a=0;a<8;a++)J(a,a)},this.resetWaitStates=function(e){var x=e<w?H:0;return H=0,x},this.loadState=e=>{t.loadState(e.c),i.set(e.ram),K.set(e.palette),j.set(e.palinds),f=e.magicop,D=e.xpand,m=e.xplower,E=e.shift2,Y=e.horcb,b=e.
INLIN: `+e.inlin,x+=`
VERBL: `+e.verbl,x+=`
MAGICOP: $`+B(e.magicop),x+=`
XPAND: $`+B(e.xpand),x+=`
XPLOWER: `+e.xplower,x+=`
SHIFT2: $`+B(e.shift2),x+=`
HORCB: $`+B(e.horcb),x+=`
INMOD: $`+B(e.inmod),x+=`
INFBK: $`+B(e.infbk),x+=`
INTST: $`+B(e.intst),x+=`
Palette: `;for(var s=0;s<8;s++)x+=B(j[s]);return x+=`
`,x},this.connectVideo=function(e){e0=e},this.loadROM=function(e){g=e},this.loadBIOS=function(e){U=e},this.getVisiblePixelWords=function(){return w*I}},O=class extends g0{constructor(t){super();this.cpuFrequency=1789e3;this.numTotalScanlines=262;this.sampleRate=60*262*l0;this.arcade=t,this.cpu=new f0,this.psg=new X0(new o0),this.audioadapter=new B0(this.psg.psg,l0,this.sampleRate),this.handler=a0(this.inputs,p0),this.defaultROMSize=t?45056:8192,this.ram=new Uint8Array(t?20480:4096),this.numVisibleScanlines=t?204:102,this.canvasWidth=t?320:160,this.cpuCyclesPerLine=this.cpuFrequency/(60*this.numVisibleScanlines*1.286)|0,this.m=new w0(t),this.m.init(this,this.cpu,this.ram,this.inputs,this.psg),t&&(this.inputs[16]=255,this.inputs[17]=255,this.inputs[18]=0,this.inputs[19]=8)}read(t){return this.m.membus.read(t)}write(t,i){this.m.membus.write(t,i)}connectVideo(t){super.connectVideo(t),this.frontbuffer=t,this.backbuffer=new Uint32Array(t.length),this.m.connectVideo(this.backbuffer)}preFrame(){this.m.resetWaitStates(0)}postFrame(){var t=this.m.getVisiblePixelWords();this.frontbuffer.set(this.backbuffer.slice(0,t),0),this.frontbuffer.fill(0,t)}setPaddleInput(t,i){switch(t){case 0:this.inputs[28]=i&255;break;case 1:this.inputs[29]=i&255;break}}startScanline(){this.audio&&this.audioadapter.generate(this.audio)}drawScanline(){var t=this.scanline;this.m.drawScanline(t)}advanceCPU(){var t=super.advanceCPU(),i=this.m.resetWaitStates(this.scanline);return i&&(t+=i,this.probe.logClocks(i)),t}loadROM(t){super.loadROM(t),this.m.loadROM(this.rom),this.reset()}loadBIOS(t){this.m.loadBIOS(q(t,8192)),this.reset()}reset(){super.reset(),this.m.reset()}loadState(t){this.m.loadState(t)}saveState(){return this.m.saveState()}getDebugCategories(){return["CPU","Stack","Astro"]}getDebugInfo(t,i){switch(t){case"Astro":return this.m.toLongString(i)}}getRasterCanvasPosition(){return{x:this.getRasterX(),y:this.getRasterY()}}getVideoParams(){return this.arcade?{width:320,height:204,rotate:180}:{width:160,height:102}}},X0=class extends c0{setACRegister(t,i){switch(t&=7,i&=255,t){case 0:this.psg.setClock(1789e3*16/(i+1)),this.psg.writeRegisterAY(7,7^255);break;case 1:case 2:case 3:var c=(t-1)*2,h=i*2+1;this.psg.writeRegisterAY(c,h&255),this.psg.writeRegisterAY(c+1,h>>8&255);break;case 5:this.psg.writeRegisterAY(10,i&15);break;case 6:this.psg.writeRegisterAY(8,i&15),this.psg.writeRegisterAY(9,i>>4&15);break}}},$=[0,2368548,4737096,7171437,9539985,11974326,14342874,16777215,2425019,4784352,7213567,9582079,12016383,14384895,16753663,16762879,4784304,7143637,9568761,11937279,14306047,16740095,16749311,16758783,6946975,9306307,11731175,14096639,16465151,16736767,16745983,16755199,8847495,11206827,13631696,15994612,16724735,16733951,16743423,16752639,10420330,12779662,15138995,16713687,16723195,16732415,16741631,16751103,11534409,13959277,16318610,16713142,16722394,16731647,16741119,16750335,12255269,14680137,16711790,16713362,16722615,16732123,16741375,16750847,12517376,14876708,16711752,16714605,16724113,16733366,16742874,16752127,12255232,14680064,16711715,16716871,16726380,16735632,16745141,16754393,11534336,13959168,16318464,16720164,16729416,16738924,16748177,16757685,10420224,12779520,15141888,16723971,16733479,16742731,16752240,16761492,8847360,11206656,13639168,16007680,16738058,16747310,16756563,16766071,6946816,9309440,11743488,14112256,16480768,16752151,16761659,16770911,4784128,7151872,9585920,11954688,14323200,16757509,16766761,16776270,2429184,4797696,7232e3,9600512,12034816,14403328,16771870,16777027,9472,2377984,4746496,7180800,9549312,11983616,14352155,16777023,14080,23296,2326528,4695040,7129344,9497856,11927326,14286659,18176,27648,36864,2405376,4774144,7142661,9568041,11927374,21760,30976,40192,246272,2614784,4980503,7405371,9764703,24320,33536,43008,52224,716810,3079982,5504851,7864183,25856,35328,44544,53763,63271,1572683,3932016,6291348,26624,35840,45312,54564,63816,393068,2752401,5177269,26112,35584,44835,54343,63596,65424,2031541,4456409,24832,34084,43592,52845,62353,65462,1834970,4194302,22565,31817,41326,50578,60087,65499,2031615,44564
//# sourceMappingURL=astrocade-B6S7IURT.js.map