mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2026-04-19 08:27:40 +00:00
3 lines
9.0 KiB
JavaScript
3 lines
9.0 KiB
JavaScript
import{C as K,g as T,y as I}from"./chunk-PTIFNBOG.js";import{$ as y,J as R,P as A,R as C,T as _,V as w,X as O,Y as E,_ as D}from"./chunk-QWAF5HSH.js";import"./chunk-KT7KMEQC.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)),c=Math.round(P*12/(k/4096)),x=Math.round(P/60),s,h,u,g,p,d,f,m,i,t,l,e=0,r=new C(16).mem,b=c;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 r[a]}],[9216,9223,7,function(a){return r[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,S){h.mem[a]=S}],[12288,12288,0,function(a,S){f.runUntilHalt(0)}],[13312,13312,0,function(a,S){e=0}],[16384,24575,8191,function(a,S){u.mem[a]=S}]],{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,r,L)},this.advance=a=>{a||m.clear();var S=this.getDebugCallback();l=0;for(var n=0;n<x;n++){if(S&&S()){S=null;break}if(l++,--b==0){var o=s.setNMIAndWait();l+=o,b=c-o}s.clockPulse()}},this.loadROM=function(a,S){if(S.length!=8192)throw Error("ROM length must be == 0x2000");g=S.slice(0,6144),p=S.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),r.set(a.sw),b=a.nmic},this.saveState=function(){return{c:s.saveState(),b:h.mem.slice(0),db:u.mem.slice(0),sw:r.slice(0),nmic:b}},this.loadControlsState=function(a){r.set(a.sw)},this.saveControlsState=function(){return{sw:r.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,c=Math.round(P/v),x=Math.round(P/60),s,h,u,g,p,d,f,m,i,t,l,e,r=new C(16).mem,b=c,a,S;this.__proto__=new I,this.getPresets=function(){return F},this.start=function(){h=new C(2048),u=new C(8192),m=new C(64),r[0]=0,r[1]=255,r[2]=0,d={read:y([[0,2047,2047,function(n){return h.mem[n]}],[8192,10239,2047,function(n){return u.mem[n]}],[10240,24575,32767,function(n){return p[n-10240]}],[30720,30720,0,function(n){return r[0]}],[32768,32768,0,function(n){return r[1]}],[34816,34816,0,function(n){return r[2]}],[35072,35072,0,function(n){return S}],[36864,65535,65535,function(n){return g?g[n-36864]:0}]]),write:y([[0,2047,2047,function(n,o){h.mem[n]=o}],[8192,10239,2047,function(n,o){u.mem[n]=o}],[10240,24575,32767,function(n,o){p[n-10240]=o}],[24576,26623,15,function(n,o){t.pokey1.setRegister(n,o)}],[26624,28671,15,function(n,o){t.pokey2.setRegister(n,o)}],[34816,34816,0,function(n,o){}],[34880,34880,0,function(n,o){f.runUntilHalt(0)}],[34944,34944,0,function(n,o){f.reset()}],[35008,35008,0,function(n,o){}],[35072,35072,0,function(n,o){o==9&&(S=m.mem[a]),o==12&&(m.mem[a]=S)}],[35136,35199,63,function(n,o){a=n,S=o}],[35200,35200,0,function(n,o){}]])},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,r,G)},this.advance=n=>{n||i.clear();var o=this.getDebugCallback();e=0;for(var V=0;V<x;V++){if(o&&o()){o=null;break}if(e++,--b==0){var U=s.setIRQ();e+=U,b=c-U}s.clockPulse()}},this.loadROM=function(n,o){g=o.slice(0,28672),p=D(o.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(n){this.unfixPC(n.c),s.loadState(n.c),this.fixPC(n.c),h.mem.set(n.b),u.mem.set(n.db),r.set(n.sw),b=n.nmic},this.saveState=function(){return{c:this.getCPUState(),b:h.mem.slice(0),db:u.mem.slice(0),sw:r.slice(0),nmic:b}},this.loadControlsState=function(n){r.set(n.sw)},this.saveControlsState=function(){return{sw:r.slice(0)}},this.getCPUState=function(){return this.fixPC(s.saveState())}},Y=function(M,k){var P=4e6,v=Math.round(P/60),c,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,r=t[2]<<24>>24,b=t[3]<<24>>24,a=r!=0?e/r:0;e+=r*b&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,r){d.pokey1.setRegister(e,r)}],[32784,32799,15,function(e,r){d.pokey2.setRegister(e,r)}],[33024,33038,15,function(e,r){t[e]=r}],[33039,33039,0,function(e,r){l()}],[34880,34880,0,function(e,r){g.runUntilHalt(0)}],[34944,34944,0,function(e,r){g.reset()}],[35200,35200,0,function(e,r){i[14]=16}],[40960,57343,16383,function(e,r){s.mem[e]=r}],[57344,65535,8191,function(e,r){x.mem[e]=r}]])},this.readAddress=u.read,c=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(c,v),c.interrupt(255),i[15]=i[15]+1&3,--i[14]<=0&&(console.log("WATCHDOG FIRED"),this.reset())},this.loadROM=function(e,r){h=D(r,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,c.reset()},this.loadState=function(e){c.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:c.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 c.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,c=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=c+(p(t,10)<<7>>i),r=x+(p(f,10)<<7>>i);k.drawLine(c,x,e,r,l*32,7),c=e,x=r;break}case 10:{var t=g(v++);s=d[t>>12],c=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=c+(p(f,2)<<7>>i),r=x+(p(f>>8,2)<<7>>i),l=f>>4&15;k.drawLine(c,x,e,r,l*32,7),c=e,x=r;break}}}}},z=function(M,k,P){var v=0,c=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,c=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++),r=e>>13;r==2&&(r=u);var b=c+Math.round(m(e,12)*s),a=x+Math.round(m(t,12)*s);g&&(h=i()),k.drawLine(c,x,b,a,r<<4,h),c=b,x=a;break}case 1:d=!1;break;case 2:{var b=c+Math.round(m(t,4)*s*2),a=x+Math.round(m(t>>8,4)*s*2),r=t>>5&7;r==2&&(r=u),g&&(h=i()),k.drawLine(c,x,b,a,r<<4,h),c=b,x=a;break}case 3:{if(t&4096){var S=(t>>8&7)+8,n=~t&255;s=(n<<16>>S)/32768}else h=t&7,u=t>>4&15,g=(t&2048)!=0;break}case 4:c=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-3EWFORZ4.js.map
|