8bitworkshop/gen/vector-JSMPRN7T.js

3 lines
9.0 KiB
JavaScript

import{D as K,g as T,z as I}from"./chunk-TIPL7ZBK.js";import{$ as y,I as R,P as A,R as C,T as _,V as w,X as O,Y as E,_ as D}from"./chunk-BHN4Q7CX.js";import"./chunk-RQFURXHW.js";var F=[{id:"font.c",name:"Vector Fonts"},{id:"threed.c",name:"3D Transformations"},{id:"game.c",name:"Space Game"},{id:"music.c",name:"POKEY Music"}],L=E([[w.B,3,255],[w.A,4,255],[w.SELECT,8,255],[w.VK_6,9,255],[w.VK_7,10,255],[w.START,11,255],[w.P2_START,12,255],[w.UP,13,255],[w.RIGHT,14,255],[w.LEFT,15,255]]),G=E([[w.B,1,-1],[w.A,1,-2],[w.VK_5,0,2],[w.VK_6,0,1],[w.START,2,32],[w.P2_START,2,64],[w.UP,1,-16],[w.DOWN,1,-32],[w.RIGHT,1,-4],[w.LEFT,1,-8]]),H=function(M){var k=12096e3,P=k/8,v=Math.round(P/(k/4096)),o=Math.round(P*12/(k/4096)),x=Math.round(P/60),s,h,u,g,p,d,f,m,i,t,l,e=0,n=new C(16).mem,S=o;this.__proto__=new I,this.showHelp=function(){return"https://8bitworkshop.com/docs/platforms/arcade/index.html#vector-games"},this.getPresets=function(){return F},this.start=function(){h=new C(1024),u=new C(8192),d={read:y([[0,1023,1023,function(a){return h.mem[a]}],[8193,8193,0,function(a){return l/v&1?255:0}],[8192,8199,7,function(a){return n[a]}],[9216,9223,7,function(a){return n[a+8]}],[16384,20479,4095,function(a){return u.mem[a]}],[20480,24575,4095,function(a){return p[a]}],[26624,32767,0,function(a){return g?g[a-26624]:0}]],{gmask:32767}),write:y([[0,1023,1023,function(a,b){h.mem[a]=b}],[12288,12288,0,function(a,b){f.runUntilHalt(0)}],[13312,13312,0,function(a,b){e=0}],[16384,24575,8191,function(a,b){u.mem[a]=b}]],{gmask:32767})},this.readAddress=d.read,s=this.newCPU(d),m=new A(M,1024,1024),f=new W(d,m,16384),i=T(2),m.create(),t=new _(60,this.nextFrame.bind(this)),O(m,n,L)},this.advance=a=>{a||m.clear();var b=this.getDebugCallback();l=0;for(var r=0;r<x;r++){if(b&&b()){b=null;break}if(l++,--S==0){var c=s.setNMIAndWait();l+=c,S=o-c}s.clockPulse()}},this.loadROM=function(a,b){if(b.length!=8192)throw Error("ROM length must be == 0x2000");g=b.slice(0,6144),p=b.slice(6144,8192),this.reset()},this.isRunning=function(){return t&&t.isRunning()},this.pause=function(){t.stop(),i.stop()},this.resume=function(){t.start(),i.start()},this.reset=function(){this.clearDebug(),s.reset()},this.loadState=function(a){s.loadState(a.c),h.mem.set(a.b),u.mem.set(a.db),n.set(a.sw),S=a.nmic},this.saveState=function(){return{c:s.saveState(),b:h.mem.slice(0),db:u.mem.slice(0),sw:n.slice(0),nmic:S}},this.loadControlsState=function(a){n.set(a.sw)},this.saveControlsState=function(){return{sw:n.slice(0)}},this.getCPUState=function(){return s.saveState()},this.getMemoryMap=function(){return{main:[{name:"Switches/POKEY I/O",start:30720,size:4096,type:"io"},{name:"DVG I/O",start:34816,size:256,type:"io"},{name:"EAROM",start:35072,size:256,type:"ram"}]}}},B=function(M){var k=12096e3,P=k/8,v=k/4096/12,o=Math.round(P/v),x=Math.round(P/60),s,h,u,g,p,d,f,m,i,t,l,e,n=new C(16).mem,S=o,a,b;this.__proto__=new I,this.getPresets=function(){return F},this.start=function(){h=new C(2048),u=new C(8192),m=new C(64),n[0]=0,n[1]=255,n[2]=0,d={read:y([[0,2047,2047,function(r){return h.mem[r]}],[8192,10239,2047,function(r){return u.mem[r]}],[10240,24575,32767,function(r){return p[r-10240]}],[30720,30720,0,function(r){return n[0]}],[32768,32768,0,function(r){return n[1]}],[34816,34816,0,function(r){return n[2]}],[35072,35072,0,function(r){return b}],[36864,65535,65535,function(r){return g?g[r-36864]:0}]]),write:y([[0,2047,2047,function(r,c){h.mem[r]=c}],[8192,10239,2047,function(r,c){u.mem[r]=c}],[10240,24575,32767,function(r,c){p[r-10240]=c}],[24576,26623,15,function(r,c){t.pokey1.setRegister(r,c)}],[26624,28671,15,function(r,c){t.pokey2.setRegister(r,c)}],[34816,34816,0,function(r,c){}],[34880,34880,0,function(r,c){f.runUntilHalt(0)}],[34944,34944,0,function(r,c){f.reset()}],[35008,35008,0,function(r,c){}],[35072,35072,0,function(r,c){c==9&&(b=m.mem[a]),c==12&&(m.mem[a]=b)}],[35136,35199,63,function(r,c){a=r,b=c}],[35200,35200,0,function(r,c){}]])},this.readAddress=d.read,s=this.newCPU(d),i=new A(M,1024,1024),f=new z(d,i,8192),t=T(2),i.create(),l=new _(60,this.nextFrame.bind(this)),O(i,n,G)},this.advance=r=>{r||i.clear();var c=this.getDebugCallback();e=0;for(var V=0;V<x;V++){if(c&&c()){c=null;break}if(e++,--S==0){var U=s.setIRQ();e+=U,S=o-U}s.clockPulse()}},this.loadROM=function(r,c){g=c.slice(0,28672),p=D(c.slice(28672),14336),this.reset()},this.isRunning=function(){return l&&l.isRunning()},this.pause=function(){l.stop(),t.stop()},this.resume=function(){l.start(),t.start()},this.reset=function(){this.clearDebug(),s.reset()},this.loadState=function(r){this.unfixPC(r.c),s.loadState(r.c),this.fixPC(r.c),h.mem.set(r.b),u.mem.set(r.db),n.set(r.sw),S=r.nmic},this.saveState=function(){return{c:this.getCPUState(),b:h.mem.slice(0),db:u.mem.slice(0),sw:n.slice(0),nmic:S}},this.loadControlsState=function(r){n.set(r.sw)},this.saveControlsState=function(){return{sw:n.slice(0)}},this.getCPUState=function(){return this.fixPC(s.saveState())}},Y=function(M,k){var P=4e6,v=Math.round(P/60),o,x,s,h,u,g,p,d,f,m,i=new C(16).mem,t=new C(16).mem;this.__proto__=new K,this.getPresets=function(){return F};function l(){var e=t[0]+(t[1]<<8)<<16>>16,n=t[2]<<24>>24,S=t[3]<<24>>24,a=n!=0?e/n:0;e+=n*S&65535,t[0]=e&255,t[1]=e>>8&255,t[4]=a&255,t[5]=a>>8&255}this.start=function(){x=new C(8192),s=new C(16384),i[0]=0,i[1]=255,i[2]=0,u={read:y([[0,32767,0,function(e){return h?h[e]:0}],[32768,32783,15,function(e){return i[e]}],[33024,33039,15,function(e){return t[e]}],[40960,57343,16383,function(e){return s.mem[e]}],[57344,65535,8191,function(e){return x.mem[e]}]]),write:y([[32768,32783,15,function(e,n){d.pokey1.setRegister(e,n)}],[32784,32799,15,function(e,n){d.pokey2.setRegister(e,n)}],[33024,33038,15,function(e,n){t[e]=n}],[33039,33039,0,function(e,n){l()}],[34880,34880,0,function(e,n){g.runUntilHalt(0)}],[34944,34944,0,function(e,n){g.reset()}],[35200,35200,0,function(e,n){i[14]=16}],[40960,57343,16383,function(e,n){s.mem[e]=n}],[57344,65535,8191,function(e,n){x.mem[e]=n}]])},this.readAddress=u.read,o=this.newCPU(u,u),p=new A(M,1024,1024),g=new z(u,p,40960),d=T(2),p.create(),f=new _(60,this.nextFrame.bind(this)),O(p,i,G)},this.advance=e=>{e||p.clear(),this.runCPU(o,v),o.interrupt(255),i[15]=i[15]+1&3,--i[14]<=0&&(console.log("WATCHDOG FIRED"),this.reset())},this.loadROM=function(e,n){h=D(n,32768),this.reset()},this.isRunning=function(){return f&&f.isRunning()},this.pause=function(){f.stop(),d.stop()},this.resume=function(){f.start(),d.start()},this.reset=function(){i[14]=16,o.reset()},this.loadState=function(e){o.loadState(e.c),x.mem.set(e.b),s.mem.set(e.db),i.set(e.sw),t.set(e.mr)},this.saveState=function(){return{c:o.saveState(),b:x.mem.slice(0),db:s.mem.slice(0),sw:i.slice(0),mr:t.slice(0)}},this.loadControlsState=function(e){i.set(e.sw)},this.saveControlsState=function(){return{sw:i.slice(0)}},this.getCPUState=function(){return o.saveState()},this.getMemoryMap=function(){return{main:[{name:"Switches/POKEY I/O",start:32768,size:256,type:"io"},{name:"Math Box I/O",start:33024,size:256,type:"io"},{name:"DVG I/O",start:34816,size:256,type:"io"},{name:"DVG RAM",start:40960,size:16384,type:"ram"}]}}},W=function(M,k,P){var v=0,o=0,x=0,s=0,h=[],u=!1;P&=65535;function g(f){f&=4095;var m=M.read(f*2+P)+(M.read(f*2+P+1)<<8);return m}function p(f,m){var i=f&1<<m;return f=f&(1<<m)-1,i?-f:f}this.reset=function(){v=0,s=7,u=!1},this.go=function(){this.reset(),u=!0},this.runUntilHalt=function(f){this.go(),v=f;for(var m=0;m<1e4&&u;m++)this.nextInstruction()};var d=[7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8];this.nextInstruction=function(){if(!!u){var f=g(v),m=f>>12;switch(v++,m){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:{var i=s+9-m,t=g(v++),l=t>>12,e=o+(p(t,10)<<7>>i),n=x+(p(f,10)<<7>>i);k.drawLine(o,x,e,n,l*32,7),o=e,x=n;break}case 10:{var t=g(v++);s=d[t>>12],o=t&1023,x=f&1023;break}case 11:u=!1;break;case 13:v=h.pop();break;case 12:h.push(v);case 14:v=f&4095;break;case 15:{var i=(f>>11&1)+(f>>2&2);i=s-i-1;var e=o+(p(f,2)<<7>>i),n=x+(p(f>>8,2)<<7>>i),l=f>>4&15;k.drawLine(o,x,e,n,l*32,7),o=e,x=n;break}}}}},z=function(M,k,P){var v=0,o=0,x=0,s=1,h,u,g,p=[],d=!1;P&=65535;function f(t){return t&=8191,M.read(t*2+P)+(M.read(t*2+P+1)<<8)}function m(t,l){var e=t&1<<l;return t=t&(1<<l)-1,e?t-(1<<l):t}function i(){return Math.random()*256&7}this.reset=function(){v=0,s=1,h=7,u=15,o=512,x=512,g=!1,d=!1},this.go=function(){this.reset(),d=!0},this.runUntilHalt=function(t){this.go(),v=t;for(var l=0;l<1e4&&d;l++)this.nextInstruction()},this.nextInstruction=function(){if(!!d){var t=f(v),l=t>>13;switch(v++,l){case 0:{var e=f(v++),n=e>>13;n==2&&(n=u);var S=o+Math.round(m(e,12)*s),a=x+Math.round(m(t,12)*s);g&&(h=i()),k.drawLine(o,x,S,a,n<<4,h),o=S,x=a;break}case 1:d=!1;break;case 2:{var S=o+Math.round(m(t,4)*s*2),a=x+Math.round(m(t>>8,4)*s*2),n=t>>5&7;n==2&&(n=u),g&&(h=i()),k.drawLine(o,x,S,a,n<<4,h),o=S,x=a;break}case 3:{if(t&4096){var b=(t>>8&7)+8,r=~t&255;s=(r<<16>>b)/32768}else h=t&7,u=t>>4&15,g=(t&2048)!=0;break}case 4:o=512,x=512;break;case 6:p.length==0||(v=p.pop());break;case 5:p.push(v);case 7:v==0?d=!1:v=t&8191;break}}}};R["vector-ataribw"]=H;R["vector-ataricolor"]=B;R["vector-z80color"]=Y;
//# sourceMappingURL=vector-JSMPRN7T.js.map