Last active
August 20, 2023 17:28
-
-
Save miahmie/9f27ddd848d0447ca4e024c7b40ecc8c to your computer and use it in GitHub Desktop.
wasm-test
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html><html><head><meta charset="utf-8"> | |
| <title>wasm test template</title> | |
| </head><style title=root>#placement{display:flex;justify-content:center;align-items:flex-start}#box{position:relative;background-color:#000;border-radius:8px;border:8px solid #000;margin-top:50px}#screen{image-rendering:pixelated}</style><script> | |
| //function wasm_init() {} // -> can return Promise or other value | |
| //function wasm_custom_env(engine,env,init_result) {} | |
| //function wasm_run(engine) { engine.run(); } | |
| const wasm_data = { | |
| "image": | |
| "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", | |
| "framework": | |
| "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", | |
| "config": { | |
| "screen":"screen", | |
| }, | |
| }; | |
| const wasm_log = { | |
| "debug": (...a) => console.log (...a), | |
| "error": (...a) => console.error(...a), | |
| }; | |
| async function wasm_bootstrap(){const a=wasm_data,b=a.config,c=async a=>{const b=new Blob([new Uint8Array([...atob(a)].map(a=>a.charCodeAt(0)))]),c=new Response(b.stream().pipeThrough(new DecompressionStream("deflate")));return c.arrayBuffer()},d="function"==typeof wasm_init?wasm_init():void 0,e=[c(a.framework).then(a=>{const b=btoa([...new Uint8Array(a)].map(a=>String.fromCharCode(a)).join("")),d=document.createElement("script"),e=document.scripts[0];e.parentNode.insertBefore(d,e),d.type="importmap",d.text=`{"imports":{"framework":"data:application/javascript;base64,${b}"}}`}).then(()=>import("framework")),c(a.image)],f=d instanceof Promise;f&&e.push(d);let g=null;Promise.all(e).then(([a,c,e])=>{g=new a.Engine(b,wasm_log);const h=g.get_env();return"function"==typeof wasm_custom_env&&wasm_custom_env(g,h,f?e:d),WebAssembly.instantiate(new Uint8Array(c),{env:h})}).then(a=>{g.setup(a),"function"==typeof wasm_run?wasm_run(g):g.run()}).catch(a=>wasm_log.error(a))} | |
| </script><body onload="wasm_bootstrap()"><div id=placement><div class=sizebox id=box><canvas class=sizebox id=screen></canvas></div></div><div id=message></div></body></html> |
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html><html><head><meta charset="utf-8"> | |
| <title>Nanikura!</title></head><style title=root>#placement{display:flex;justify-content:center;align-items:flex-start}#box{position:relative;background-color:#000;border-radius:8px;border:8px solid #000;margin-top:16px}#screen{image-rendering:pixelated}</style><script> | |
| //function wasm_init() {} // -> can return Promise or other value | |
| function wasm_setup(engine,init_result) { | |
| const imports = engine.get_imports(); | |
| const console_lines = []; | |
| const textdec = new TextDecoder(); | |
| // [XXX] dummy wasi interfaces | |
| imports.wasi_snapshot_preview1 = { | |
| args_get: () => engine.debug("args_get"), | |
| args_sizes_get: () => 0, //engine.debug("args_sizes_get"), | |
| fd_close: () => 0, //engine.error("fd_close"), | |
| fd_fdstat_get: () => 8, //engine.error("fd_fdstat_get"), | |
| fd_filestat_get: () => 8, //engine.error("fd_filestat_get"), | |
| fd_seek: () => 8, //engine.error("fd_seek"), | |
| fd_write: (fd, ptr, len, wptr) => { | |
| // [TODO] local file access? | |
| const vec = engine.get_memory_iovec(ptr, len); | |
| if (vec) { | |
| // line buffered pseudo console output | |
| let line = console_lines[fd]; | |
| if (line === undefined) line = ""; | |
| line += textdec.decode(vec); | |
| const idx = line.indexOf("\n"); | |
| if (idx >= 0) { | |
| engine.debug(`${fd}:${line.substr(0,idx)}`); | |
| line = line.substr(idx+1); | |
| } | |
| console_lines[fd] = line; | |
| engine.set_memory_u32(wptr, vec.length); // written bytes | |
| } | |
| }, | |
| proc_exit: () => engine.error("process_exit"), | |
| random_get: () => Math.floor(Math.random()*0x100000000), | |
| }; | |
| } | |
| function wasm_run(engine) { | |
| const exports = engine.get_exports(); | |
| if (exports._start) | |
| exports._start(); // for libc/wasi support | |
| // engine.init_and_run(); | |
| // or | |
| engine.init(); | |
| engine.run(); | |
| } | |
| const wasm_log = { | |
| "debug": (...a) => console.log (...a), | |
| "error": (...a) => console.error(...a), | |
| }; | |
| const wasm_data = { | |
| "config": { | |
| "screen": "screen", // element-id | |
| "keyboard": { | |
| "handler": null, // null: window, string: element-id, object: element-object | |
| "listener": false, // true:addEventListener, false:onkey{up,down} override | |
| "bind": { | |
| "Escape": "0:P", | |
| "ArrowLeft": "0:L", | |
| "ArrowRight": "0:R", | |
| "ArrowUp": "0:U", | |
| "ArrowDown": "0:D", | |
| "KeyZ": "0:a", | |
| "KeyX": "0:b", | |
| "KeyC": "0:c", | |
| "KeyV": "0:d", | |
| } | |
| } | |
| }, | |
| "image": |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
なにクラwasm移植(未完成)
入力・音まわり一切無し音声がないので立ち絵デモのセリフが超高速で流れて読めないhttps://gistcdn.githack.com/miahmie/9f27ddd848d0447ca4e024c7b40ecc8c/raw/981ed15c6b130a8db2d89ce8b883dc36288cd120/nanikura.html
二人プレイは html をローカルにダウンロードして
の部分をコピペして 1:{LRUDabcd} と 2:{LRUDabcd} を作れって保存してローカルで起動すれば多分行けると思います(動作未確認)