Path: blob/main/misc/emulator/xnes/snem/testworker.js
28515 views
function snes_init(){1reboot_emulator=Module.cwrap('reboot_emulator', 'number', ['string'])2native_set_joypad_state=Module._native_set_joypad_state3native_bitmap_pointer=Module._native_bitmap_pointer4mainloop=Module._mainloop5renderscreen=Module._renderscreen6palf=reboot_emulator("/_.smc")7native_set_joypad_state(0x80000000)8frameskip=0910}11function snes_mainloop(){12for(var _i=0;_i<=frameskip;_i++)13mainloop(palf ? 312 :262)14renderscreen()15var bitmap=native_bitmap_pointer(-16,0)>>216var src=i.subarray(bitmap,bitmap+288*224) // // Unstable Hack: i is Heap32 compiled by closure17var buffer=new ArrayBuffer(4*288*224)18var src2=new Uint32Array(buffer) // WW219for(var _i=0;_i<288*224;_i++) src2[_i]=src[_i] // WW220postMessage({cmd:"render2", src:buffer}, [buffer]) // WW221postMessage({cmd:"render", src:src}) // WW122setTimeout("snes_mainloop()", 0);23}2425onmessage=function(event) {26var data=event.data27switch(data.cmd){28case "loadfile":29Module.FS_createDataFile("/", "_.smc", new Uint8Array(data.buffer) , true, true)30postMessage({cmd: "print", txt:"file loaded"})31break32case "start":33snes_init()34snes_mainloop()35break36case "joy1":37native_set_joypad_state(data.state)38break39case "frameskip":40frameskip=data.value41break42default:43postMessage({cmd:"print", txt:"unknown command "+data.cmd})44}45}464748