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

3 lines
7.3 KiB
JavaScript
Raw Normal View History

import{J,c as Y,d as q,e as I,k as X,q as j}from"./chunk-ULPRULB6.js";import{$ as N,J as C,K as V,T as z,W as a,X as Z,Z as P,aa as _}from"./chunk-RXF2JDJ3.js";import"./chunk-WAARL7ET.js";var o0=P([[a.A,0,16],[a.LEFT,0,4],[a.RIGHT,0,8],[a.P2_A,1,16],[a.P2_LEFT,1,4],[a.P2_RIGHT,1,8],[a.SELECT,0,1],[a.START,1,1],[a.VK_2,1,2]]),h0=P([[a.UP,0,-1],[a.B,0,-2],[a.VK_7,0,-4],[a.A,0,-8],[a.RIGHT,0,-16],[a.LEFT,0,-32],[a.VK_6,0,-64],[a.SELECT,0,-128],[a.START,1,-128],[a.VK_2,1,-64],[a.DOWN,2,-64]]),c0=[33,71,151,8448,18176,38656,5308416,11403264],u0=function(f,t,e,i,h){var G=h.gfxBase||10240;this.missileWidth=h.missileWidth||4,this.missileOffset=h.missileOffset||0,this.showOffscreenObjects=!1,this.frameCounter=0,this.starsEnabled=0;for(var L=[],M=0;M<256;M++)L[M]=V();this.advanceFrame=function(){this.frameCounter=this.frameCounter+1&255},this.drawScanline=function(u,x){var p=x*264;if(!this.showOffscreenObjects&&(x<16||x>=240)){for(var r=0;r<264;r++)u[p+r]=4278190080;return}for(var s=p,S=0;S<32;S++)for(var R=S,a0=e[R*2],s0=e[R*2+1],U=x+a0&255,i0=U>>3<<5,o=U&7,n0=t[i0+R],g=(s0&7)<<2,m=G+(n0<<3)+o,d=f[m],v=f[m+2048],r=0;r<8;r++){var c=128>>r,l=g+(d&c?1:0)+(v&c?2:0);u[s]=i[l],s++}for(var b=7;b>=0;b--){var A=(b<<2)+64,f0=e[A],T=240-(f0-(b<3?1:0)),o=x-T;if(o>=0&&o<16){var w=e[A+3]+1;if(w==0&&!this.showOffscreenObjects)continue;var y=e[A+1],k=y&64;y&128&&(o=15-o),y&=63;var g=(e[A+2]&7)<<2,m=G+(y<<5)+(o<8?o:o+8);s=p+w;for(var d=f[m],v=f[m+2048],r=0;r<8;r++){var c=128>>r,l=(d&c?1:0)+(v&c?2:0);l&&(u[k?s+15-r:s+r]=i[g+l])}for(var d=f[m+8],v=f[m+2056],r=0;r<8;r++){var c=128>>r,l=(d&c?1:0)+(v&c?2:0);l&&(u[k?s+7-r:s+r+8]=i[g+l])}}}for(var D=255,K=255,n=0;n<8;n++){var T=e[96+(n<<2)+1];(T+x-(n<3?1:0)&255)==255&&(n!=7?D=n:K=n)}for(var r=0;r<2;r++)if(n=r?K:D,n!=255)for(var w=255-e[96+(n<<2)+3],s=p+w-this.missileOffset,x0=n==7?4294967040:4294967295,W=0;W<this.missileWidth;W++)u[s++]=x0;if(this.starsEnabled){var H=this.frameCounter+L[x&255]&255;if(H+x&16){var s=p+H;(u[s]&16777215)==0&&(u[s]=i[x&31])}}}},Q=18432e3,m0=264,$=Q/6,t0=Q/3/192/2,l0=t0/132/2,E0=1/l0*(20/132),p0=$/t0,E=8,e0=2,d0=60*m0,O=class extends j{constructor(){super();this.options={};this.palBase=14336;this.keyMap=o0;this.cpuFrequency=$;this.canvasWidth=264;this.numTotalScanlines=264;this.numVisibleScanlines=264;this.defaultROMSize=16384;this.sampleRate=d0*e0;this.cpuCyclesPerLine=p0|0;this.rotate=90;this.cpu=new Y;this.ram=new Uint8Array(2048);this.vram=new Uint8Array(1024);this.oram=new Uint8Array(256);this.watchdog_counter=0;this.interruptEnabled=0;this.defaultInputs=[14,8,0];this.read=_([[0,16383,0,t=>this.rom?this.rom[t]:null],[16384,18431,1023,t=>this.ram[t]],[20480,22527,1023,t=>this.vram[t]],[22528,24575,255,t=>this.oram[t]],[24576,24576,0,t=>this.inputs[0]],[26624,26624,0,t=>this.inputs[1]],[28672,28672,0,t=>this.inputs[2]],[30720,30720,0,t=>{this.watchdog_counter=E}]]);this.write=_([[16384,18431,1023,(t,e)=>{this.ram[t]=e}],[20480,22527,1023,(t,e)=>{this.vram[t]=e}],[22528,24575,255,(t,e)=>{this.oram[t]=e}],[28673,28673,0,(t,e)=>{this.interruptEnabled=e&1}],[28676,28676,0,(t,e)=>{this.gfx.starsEnabled=e&1}]]);var t=new q;this.psg1=new I(t),this.psg2=new I(t),this.audioadapter=new X([this.psg1.psg,this.psg2.psg],e0,this.sampleRate),this.init()}init(){this.rom=new Uint8Array(this.defaultROMSize),this.palette=new Uint32Array(new ArrayBuffer(32*4)),this.gfx=new u0(this.rom,this.vram,this.oram,this.palette,this.options),this.connectCPUMemoryBus(this),this.connectCPUIOBus(this.newIOBus()),this.inputs.set(this.defaultInputs),this.handler=Z(this.inputs,this.keyMap)}readConst(t){return t<28672?this.read(t):null}newIOBus(){return{read:t=>0,write:(t,e)=>{t&1&&this.psg1.selectRegister(e&15),t&2&&this.psg1.setData(e),t&4&&this.psg2.selectRegister(e&15),t&8&&this.psg2.setData(e)}}}reset(){super.reset(),this.psg1.reset(),this.psg2.reset(),this.watchdog_counter=E}startScanline(){this.audio&&this.audioadapter&&this.audioadapter.generate(this.audio)}drawScanline(){this.gfx.drawScanline(this.pixels,this.scanline)}advanceFrame(t){var e=super.advanceFrame(t);if(this.gfx.advanceFrame(),!this.gfx.s
//# sourceMappingURL=galaxian-KKUCSTLZ.js.map