var Binjgb=(()=>{var _scriptName=globalThis.document?.currentScript?.src;return async function(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}{readAsync=async url=>{var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;class EmscriptenEH{}class EmscriptenSjLj extends EmscriptenEH{}var readyPromiseResolve,readyPromiseReject;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;wasmExports["e"]()}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what=`Aborted(${what})`;err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("binjgb.wasm")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var HEAP16;var HEAP32;var HEAP64;var HEAP8;var HEAPF32;var HEAPF64;var HEAPU16;var HEAPU32;var HEAPU64;var HEAPU8;var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var noExitRuntime=true;var abortOnCannotGrowMemory=requestedSize=>{abort("OOM")};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;abortOnCannotGrowMemory(requestedSize)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var printCharBuffers=[null,[],[]];var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer));buffer.length=0}else{buffer.push(curr)}};var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0};{if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}var _malloc,_file_data_delete,_free,_emulator_set_builtin_palette,_emulator_was_ext_ram_updated,_emulator_read_state,_emulator_write_state,_emulator_read_ext_ram,_emulator_write_ext_ram,_emulator_delete,_emulator_get_PC,_emulator_get_A,_emulator_get_BC,_emulator_get_DE,_emulator_get_HL,_emulator_get_F,_emulator_get_SP,_emulator_set_PC,_emulator_get_wram_ptr,_emulator_get_hram_ptr,_emulator_read_mem,_emulator_write_mem,_emulator_set_breakpoint,_emulator_clear_breakpoints,_emulator_render_vram,_emulator_render_background,_emulator_get_banked_PC,_set_audio_channel_mute,_joypad_new,_joypad_delete,_rewind_append,_rewind_delete,_emulator_new_simple,_emulator_get_ticks_f64,_emulator_run_until_f64,_rewind_get_newest_ticks_f64,_rewind_get_oldest_ticks_f64,_emulator_set_default_joypad_callback,_emulator_set_bw_palette_simple,_rewind_new_simple,_rewind_begin,_emulator_set_rewind_joypad_callback,_rewind_to_ticks_wrapper,_rewind_end,_set_joyp_up,_set_joyp_down,_set_joyp_left,_set_joyp_right,_set_joyp_B,_set_joyp_A,_set_joyp_start,_set_joyp_select,_get_frame_buffer_ptr,_get_frame_buffer_size,_get_sgb_frame_buffer_ptr,_get_sgb_frame_buffer_size,_get_audio_buffer_ptr,_get_audio_buffer_capacity,_ext_ram_file_data_new,_state_file_data_new,_get_file_data_ptr,_get_file_data_size,_set_log_apu_writes,_get_apu_log_data_size,_get_apu_log_data_ptr,_reset_apu_log,memory,__indirect_function_table,wasmMemory;function assignWasmExports(wasmExports){_malloc=Module["_malloc"]=wasmExports["f"];_file_data_delete=Module["_file_data_delete"]=wasmExports["g"];_free=Module["_free"]=wasmExports["h"];_emulator_set_builtin_palette=Module["_emulator_set_builtin_palette"]=wasmExports["i"];_emulator_was_ext_ram_updated=Module["_emulator_was_ext_ram_updated"]=wasmExports["j"];_emulator_read_state=Module["_emulator_read_state"]=wasmExports["k"];_emulator_write_state=Module["_emulator_write_state"]=wasmExports["l"];_emulator_read_ext_ram=Module["_emulator_read_ext_ram"]=wasmExports["m"];_emulator_write_ext_ram=Module["_emulator_write_ext_ram"]=wasmExports["n"];_emulator_delete=Module["_emulator_delete"]=wasmExports["o"];_emulator_get_PC=Module["_emulator_get_PC"]=wasmExports["p"];_emulator_get_A=Module["_emulator_get_A"]=wasmExports["q"];_emulator_get_BC=Module["_emulator_get_BC"]=wasmExports["r"];_emulator_get_DE=Module["_emulator_get_DE"]=wasmExports["s"];_emulator_get_HL=Module["_emulator_get_HL"]=wasmExports["t"];_emulator_get_F=Module["_emulator_get_F"]=wasmExports["u"];_emulator_get_SP=Module["_emulator_get_SP"]=wasmExports["v"];_emulator_set_PC=Module["_emulator_set_PC"]=wasmExports["w"];_emulator_get_wram_ptr=Module["_emulator_get_wram_ptr"]=wasmExports["x"];_emulator_get_hram_ptr=Module["_emulator_get_hram_ptr"]=wasmExports["y"];_emulator_read_mem=Module["_emulator_read_mem"]=wasmExports["z"];_emulator_write_mem=Module["_emulator_write_mem"]=wasmExports["A"];_emulator_set_breakpoint=Module["_emulator_set_breakpoint"]=wasmExports["B"];_emulator_clear_breakpoints=Module["_emulator_clear_breakpoints"]=wasmExports["C"];_emulator_render_vram=Module["_emulator_render_vram"]=wasmExports["D"];_emulator_render_background=Module["_emulator_render_background"]=wasmExports["E"];_emulator_get_banked_PC=Module["_emulator_get_banked_PC"]=wasmExports["F"];_set_audio_channel_mute=Module["_set_audio_channel_mute"]=wasmExports["G"];_joypad_new=Module["_joypad_new"]=wasmExports["H"];_joypad_delete=Module["_joypad_delete"]=wasmExports["I"];_rewind_append=Module["_rewind_append"]=wasmExports["J"];_rewind_delete=Module["_rewind_delete"]=wasmExports["K"];_emulator_new_simple=Module["_emulator_new_simple"]=wasmExports["L"];_emulator_get_ticks_f64=Module["_emulator_get_ticks_f64"]=wasmExports["M"];_emulator_run_until_f64=Module["_emulator_run_until_f64"]=wasmExports["N"];_rewind_get_newest_ticks_f64=Module["_rewind_get_newest_ticks_f64"]=wasmExports["O"];_rewind_get_oldest_ticks_f64=Module["_rewind_get_oldest_ticks_f64"]=wasmExports["P"];_emulator_set_default_joypad_callback=Module["_emulator_set_default_joypad_callback"]=wasmExports["Q"];_emulator_set_bw_palette_simple=Module["_emulator_set_bw_palette_simple"]=wasmExports["R"];_rewind_new_simple=Module["_rewind_new_simple"]=wasmExports["S"];_rewind_begin=Module["_rewind_begin"]=wasmExports["T"];_emulator_set_rewind_joypad_callback=Module["_emulator_set_rewind_joypad_callback"]=wasmExports["U"];_rewind_to_ticks_wrapper=Module["_rewind_to_ticks_wrapper"]=wasmExports["V"];_rewind_end=Module["_rewind_end"]=wasmExports["W"];_set_joyp_up=Module["_set_joyp_up"]=wasmExports["X"];_set_joyp_down=Module["_set_joyp_down"]=wasmExports["Y"];_set_joyp_left=Module["_set_joyp_left"]=wasmExports["Z"];_set_joyp_right=Module["_set_joyp_right"]=wasmExports["_"];_set_joyp_B=Module["_set_joyp_B"]=wasmExports["$"];_set_joyp_A=Module["_set_joyp_A"]=wasmExports["aa"];_set_joyp_start=Module["_set_joyp_start"]=wasmExports["ba"];_set_joyp_select=Module["_set_joyp_select"]=wasmExports["ca"];_get_frame_buffer_ptr=Module["_get_frame_buffer_ptr"]=wasmExports["da"];_get_frame_buffer_size=Module["_get_frame_buffer_size"]=wasmExports["ea"];_get_sgb_frame_buffer_ptr=Module["_get_sgb_frame_buffer_ptr"]=wasmExports["fa"];_get_sgb_frame_buffer_size=Module["_get_sgb_frame_buffer_size"]=wasmExports["ga"];_get_audio_buffer_ptr=Module["_get_audio_buffer_ptr"]=wasmExports["ha"];_get_audio_buffer_capacity=Module["_get_audio_buffer_capacity"]=wasmExports["ia"];_ext_ram_file_data_new=Module["_ext_ram_file_data_new"]=wasmExports["ja"];_state_file_data_new=Module["_state_file_data_new"]=wasmExports["ka"];_get_file_data_ptr=Module["_get_file_data_ptr"]=wasmExports["la"];_get_file_data_size=Module["_get_file_data_size"]=wasmExports["ma"];_set_log_apu_writes=Module["_set_log_apu_writes"]=wasmExports["na"];_get_apu_log_data_size=Module["_get_apu_log_data_size"]=wasmExports["oa"];_get_apu_log_data_ptr=Module["_get_apu_log_data_ptr"]=wasmExports["pa"];_reset_apu_log=Module["_reset_apu_log"]=wasmExports["qa"];memory=wasmMemory=wasmExports["d"];__indirect_function_table=wasmExports["__indirect_function_table"]}var wasmImports={c:_emscripten_resize_heap,b:_exit,a:_fd_write};function run(){preRun();function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})} ;return moduleRtn}})();if(typeof exports==="object"&&typeof module==="object"){module.exports=Binjgb;module.exports.default=Binjgb}else if(typeof define==="function"&&define["amd"])define([],()=>Binjgb);