1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2026-04-21 06:16:43 +00:00
Files
8bitworkshop/gen/sms-EBBCKCLT.js
T

5 lines
4.9 KiB
JavaScript

import{a as b,b as w,c as A}from"./chunk-MYZLCYIQ.js";import{J as c,d as M,f as P}from"./chunk-236FAHT6.js";import{$ as n,J as m,V as s,Y as l,_ as p,g}from"./chunk-QWAF5HSH.js";import"./chunk-KT7KMEQC.js";var S=l([[s.UP,0,1],[s.DOWN,0,2],[s.LEFT,0,4],[s.RIGHT,0,8],[s.A,0,16],[s.B,0,32],[s.GP_A,0,16],[s.GP_B,0,32],[s.P2_UP,0,64],[s.P2_DOWN,0,128],[s.P2_LEFT,1,1],[s.P2_RIGHT,1,2],[s.P2_A,1,4],[s.P2_B,1,8],[s.VK_BACK_SLASH,1,16],[s.VK_ENTER,1,128]]),a=class extends A{constructor(){super();this.numVisibleScanlines=240;this.defaultROMSize=49152;this.ram=new Uint8Array(1024);this.read=n([[49152,65535,1023,e=>this.ram[e]],[0,49151,65535,e=>this.rom&&this.rom[e]]]);this.write=n([[49152,65535,1023,(e,r)=>{this.ram[e]=r}]]);this.init(this,this.newIOBus(),new P(new M))}getKeyboardMap(){return S}vdpInterrupt(){return this.probe.logInterrupt(255),this.cpu.interrupt(255)}getVCounter(){return 0}getHCounter(){return 0}setMemoryControl(e){}setIOPortControl(e){}readIO(e){switch(e&193){case 64:return this.getVCounter();case 65:return this.getHCounter();case 128:return this.vdp.readData();case 129:return this.vdp.readStatus();case 192:return this.inputs[0]^255;case 193:return this.inputs[1]^255}return 0}writeIO(e,r){switch(e&193){case 0:return this.setMemoryControl(r);case 1:return this.setIOPortControl(r);case 64:case 65:return this.psg.setData(r);case 128:return this.vdp.writeData(r);case 129:return this.vdp.writeAddress(r)}}newIOBus(){return{read:e=>(e&=255,this.readIO(e)),write:(e,r)=>{e&=255,r&=255,this.writeIO(e,r)}}}},o=class extends a{constructor(){super(...arguments);this.cartram=new Uint8Array(0);this.pagingRegisters=new Uint8Array(4);this.latchedHCounter=0;this.ioControlFlags=0;this.ram=new Uint8Array(8192);this.read=n([[49152,65535,8191,e=>this.ram[e]],[0,1023,1023,e=>this.rom&&this.rom[e]],[1024,16383,16383,e=>this.getPagedROM(e,1)],[16384,32767,16383,e=>this.getPagedROM(e,2)],[32768,49151,16383,e=>{var r=this.pagingRegisters[0];return r&8?this.cartram[r&4?e+16384:e]:this.getPagedROM(e,3)}]]);this.write=n([[49152,65531,8191,(e,r)=>{this.ram[e]=r}],[65532,65535,3,(e,r)=>{this.pagingRegisters[e]=r,this.ram[e+8188]=r}],[32768,49151,16383,(e,r)=>{var u=this.pagingRegisters[0];u&8&&(this.cartram.length==0&&(this.cartram=new Uint8Array(32768)),this.cartram[u&4?e+16384:e]=r)}]])}newVDP(e,r,u){return new b(e,r,u)}reset(){super.reset(),this.pagingRegisters.set([0,0,1,2])}getVCounter(){var e=this.scanline;return e<=218?e:e-6}getHCounter(){return this.latchedHCounter}computeHCounter(){return 0}setIOPortControl(e){(e^this.ioControlFlags)&160&&(this.latchedHCounter=this.computeHCounter()),this.ioControlFlags=e}getPagedROM(e,r){return this.rom&&this.rom[e+((this.pagingRegisters[r]&this.romPageMask)<<14)]}loadROM(e){if(e.length<=49152)this.rom=p(e,49152),this.romPageMask=3;else switch(e.length){case 65536:case 131072:case 262144:case 524288:this.rom=e,this.romPageMask=(e.length>>14)-1;break;default:throw Error("Unknown rom size: $"+g(e.length))}this.reset()}loadState(e){super.loadState(e),this.pagingRegisters.set(e.pr),this.cartram.set(e.cr),this.latchedHCounter=e.lhc,this.ioControlFlags=e.iocf}saveState(){var e=super.saveState();return e.pr=this.pagingRegisters.slice(0),e.cr=this.cartram.slice(0),e.lhc=this.latchedHCounter,e.iocf=this.ioControlFlags,e}getDebugInfo(e,r){switch(e){case"SMS":return super.getDebugInfo(e,r)+`
Bank Regs: `+this.pagingRegisters+`
`;default:return super.getDebugInfo(e,r)}}},x=class extends o{newVDP(t,e,r){return new w(t,e,r)}readIO(t){switch(t&193){case 0:return~this.inputs[1]&128|64;case 220:return this.inputs[0]^255;case 221:return this.inputs[1]^255}return super.readIO(t)}};var R=[{id:"text.c",name:"Text Mode"},{id:"hello.c",name:"Scrolling Text"},{id:"text32.c",name:"32-Column Color Text"},{id:"stars.c",name:"Scrolling Starfield"},{id:"cursorsmooth.c",name:"Moving Cursor"},{id:"simplemusic.c",name:"Simple Music"},{id:"musicplayer.c",name:"Multivoice Music"},{id:"mode2bitmap.c",name:"Mode 2 Bitmap"},{id:"mode2compressed.c",name:"Mode 2 Bitmap (LZG)"},{id:"lines.c",name:"Mode 2 Lines"},{id:"multicolor.c",name:"Multicolor Mode"},{id:"siegegame.c",name:"Siege Game"},{id:"shoot.c",name:"Solarian Game"},{id:"climber.c",name:"Climber Game"}],C=[{id:"mode4test.c",name:"Mode 4 Test"},{id:"climber.c",name:"Climber Game"}],f=class extends c{newMachine(){return new a}getPresets(){return R}getDefaultExtension(){return".c"}readAddress(t){return this.machine.read(t)}readVRAMAddress(t){return this.machine.readVRAMAddress(t)}},h=class extends c{newMachine(){return new o}getPresets(){return C}getDefaultExtension(){return".c"}readAddress(t){return this.machine.read(t)}readVRAMAddress(t){return this.machine.readVRAMAddress(t)}},d=class extends c{newMachine(){return new x}getPresets(){return C}getDefaultExtension(){return".c"}readAddress(t){return this.machine.read(t)}readVRAMAddress(t){return this.machine.readVRAMAddress(t)}};m["sms-sg1000-libcv"]=f;m["sms-sms-libcv"]=h;m["sms-gg-libcv"]=d;export{R as SG1000_PRESETS,C as SMS_PRESETS};
//# sourceMappingURL=sms-EBBCKCLT.js.map