本文摘要:
HTML超级玛丽游戏的核心实现依赖于canvas元素的像素化渲染和触摸优化的控制器设计。文章详细解析了游戏环境的CSS配置,包括深色背景设置和全屏布局,重点展示了方向键与动作按钮的视觉处理——通过径向渐变和圆角样式确保移动端操作流畅。开发者能从中学习网页游戏的前端技术框架,掌握互动界面的构建方法。
— 本文部分摘要灵感源自 DeepSeek 深度思考 ✨
![图片[1]|HTML 超级玛丽游戏|不死鸟资源网](https://busi.net/wp-content/uploads/2026/03/20260314114608517-image.png)
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
body {
background: #031921;
color: #fff;
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
font-weight: 300;
margin: 0px;
padding: 0px;
touch-action: none;
text-align: center;
-webkit-touch-callout: none;
user-select: none;
overflow: hidden
}
#game {
width: 100%;
touch-action: none;
text-align: center
}
#game canvas {
image-rendering: -moz-crisp-edges;
image-rendering: -webkit-crisp-edges;
image-rendering: pixelated;
image-rendering: crisp-edges
}
#controller {
display: none;
position: fixed;
bottom: 0px;
height: 210px;
width: 100%;
touch-action: none;
opacity: 0.8
}
#controller_dpad {
position: absolute;
bottom: 20px;
left: 0px;
width: 184px;
height: 184px
}
#controller_dpad:before {
content: "";
display: block;
width: 48px;
height: 48px;
background: #5c5c5c;
background: radial-gradient(ellipse at center, #5c5c5c 0%, #555 59%, #5c5c5c 60%);
position: absolute;
left: 68px;
top: 68px
}
#controller_left {
position: absolute;
left: 20px;
top: 68px;
width: 48px;
height: 48px;
background: #666;
background: radial-gradient(ellipse at center, #666 0%, #5c5c5c 80%);
border-top-left-radius: 4px;
border-bottom-left-radius: 4px
}
#controller_right {
position: absolute;
left: 116px;
top: 68px;
width: 48px;
height: 48px;
background: #666;
background: radial-gradient(ellipse at center, #666 0%, #5c5c5c 80%);
border-top-right-radius: 4px;
border-bottom-right-radius: 4px
}
#controller_up {
position: absolute;
left: 68px;
top: 20px;
width: 48px;
height: 48px;
background: #666;
background: radial-gradient(ellipse at center, #666 0%, #5c5c5c 80%);
border-top-left-radius: 4px;
border-top-right-radius: 4px
}
#controller_down {
position: absolute;
left: 68px;
top: 116px;
width: 48px;
height: 48px;
background: #666;
background: radial-gradient(ellipse at center, #666 0%, #5c5c5c 80%);
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px
}
#controller_a {
position: absolute;
bottom: 110px;
right: 20px
}
#controller_b {
position: absolute;
bottom: 80px;
right: 100px
}
.roundBtn {
display: flex;
justify-content: center;
align-items: center;
font-weight: bold;
font-size: 32px;
color: #440f1f;
line-height: 64px;
width: 64px;
height: 64px;
border-radius: 64px;
background: #870a4c;
background: radial-gradient(ellipse at center, #ab1465 0%, #8b1e57 100%);
box-shadow: 0px 4px 5px rgba(0, 0, 0, 0.2)
}
.capsuleBtn {
font-weight: bold;
font-size: 10px;
color: #111;
display: flex;
justify-content: center;
align-items: center;
line-height: 40px;
text-transform: uppercase;
width: 64px;
height: 32px;
border-radius: 40px;
background: #222;
background: radial-gradient(ellipse at center, #666 0%, #555 100%);
box-shadow: 0px 4px 5px rgba(0, 0, 0, 0.2)
}
#controller_start {
position: absolute;
bottom: 20px;
right: 15px
}
#controller_select {
position: absolute;
bottom: 20px;
right: 100px
}
#controller_Load {
position: absolute;
bottom: 200px;
right: 15px
}
#controller_Save {
position: absolute;
bottom: 200px;
right: 130px
}
.btnPressed {
opacity: 0.5
}
.spinner {
height: 50px;
width: 50px;
margin: 0px auto;
-webkit-animation: rotation 0.8s linear infinite;
-moz-animation: rotation 0.8s linear infinite;
-o-animation: rotation 0.8s linear infinite;
animation: rotation 0.8s linear infinite;
border-left: 10px solid#306850;
border-right: 10px solid#306850;
border-bottom: 10px solid#306850;
border-top: 10px solid#88c070;
border-radius: 100%;
background-color: #031921
}
@-webkit-keyframes rotation {
from {
-webkit-transform: rotate(0deg)
}
to {
-webkit-transform: rotate(360deg)
}
}
@-moz-keyframes rotation {
from {
-moz-transform: rotate(0deg)
}
to {
-moz-transform: rotate(360deg)
}
}
@-o-keyframes rotation {
from {
-o-transform: rotate(0deg)
}
to {
-o-transform: rotate(360deg)
}
}
@keyframes rotation {
from {
transform: rotate(0deg)
}
to {
transform: rotate(360deg)
}
}
@media only screen and(max-width:640px) {
#game canvas {
margin-top: 0px;
width: 100%;
max-width: 480px;
border: 0px;
border-radius: 0px
}
}
@media only screen and(max-device-width:812px)and(orientation:portrait) {
body {
margin: 0
}
#game {
width: 100%;
position: fixed;
touch-action: none
}
#game canvas {
margin: 0;
display: block;
width: 100% !important;
height: auto !important
}
}
@media only screen and(max-device-width:320px)and(orientation:portrait) {
#controller_dpad {
left: -5px;
bottom: -5px
}
#controller_a {
right: 5px;
bottom: 95px
}
#controller_b {
right: 80px
}
#controller_start {
right: 5px
}
#controller_select {
right: 80px
}
}
@media only screen and(max-width:500px)and(max-height:400px) {
#controller {
display: none
}
}
@media only screen and(max-device-width:300px)and(orientation:landscape) {
html,
body {
height: 100%
}
body {
display: flex;
justify-content: center;
align-items: center
}
#game:after {
content: "PLEASE ROTATE ↻";
font-size: 24px;
font-weight: bold;
color: #fff
}
#game canvas {
display: none;
max-width: 480px
}
#controller {
display: none
}
}
@media only screen and(min-width:300px)and(orientation:landscape) {
#controller {
bottom: 50%;
transform: translateY(50%);
opacity: 0.5
}
}
;
</style>
<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAA9v77APj++wD6/vsA+f39APr9/QAJCwsA+/39AAoLCwD8/f0A/f//AP7//wD5/fwA////APr9/AD7/fwA+v/+APv//gD8//4A/f/+APn9+wD+//4A+v/9APv//QD8//0A/P7/AP3+/wD+/v8AJSUlAA0PDQD6/v4A+/7+APz+/gAMDQoA/f7+AP7+/gD//v4A+v79APv+/QAKDAsA/P79AP3+/QD5/vwA+v78APz9/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NDQ0NDQ0NDQ0NDQ0NDSsAAA0fKBAFIiolIA0AACUADREAICMCKgcLJhUcDg0AAAMSJAAWBRISEAUACysgAAApIxIADQ4gGBENAAUoDAAADQcbDAAAAAAAAA4KIwsAEwAEDA0LGygNGiUNHxIACh8AJg0GDQklCwUNAAoSABcoAAoIHScNLCYNAAsADQAKEQANFSENIhUmIA0ACw0ADiYPAA0NDhkgJhEVDRUAHiAHASoAAAAAAAAAAAAAGhIiIBcPCw0SCwALJRUKCyAlIiwFDQAAAAANDCwHDRMSKBMgHw0LJiYgIh8mIB4lICYLDQ0oCxEMICAgHwwfBw8eFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" />
<title>GBCmini</title>
</head>
<body>
<div id="game">
<canvas id="mainCanvas" width="160" height="144">No Canvas Support</canvas>
</div>
<div id="controller">
<div id="controller_dpad">
<div id="controller_left"></div>
<div id="controller_right"></div>
<div id="controller_up"></div>
<div id="controller_down"></div>
</div>
<div id="controller_Save" class="capsuleBtn">Save</div>
<div id="controller_Load" class="capsuleBtn">Load</div>
<div id="controller_select" class="capsuleBtn">Select</div>
<div id="controller_start" class="capsuleBtn">Start</div>
<div id="controller_b" class="roundBtn">B</div>
<div id="controller_a" class="roundBtn">A</div>
</div>
<script>
! function (f) {
typeof module != 'undefined' && typeof exports == 'object' ? module.exports = f() : typeof define != 'undefined' && define.amd ? define(f) : (typeof self != 'undefined' ? self : this).fflate = f()
}(function () {
var _e = {};
"use strict";
var t = (typeof module != 'undefined' && typeof exports == 'object' ? function (_f) {
"use strict";
var e, t = ";var __w=require('worker_threads');__w.parentPort.on('message',function(m){onmessage({data:m})}),postMessage=function(m,t){__w.parentPort.postMessage(m,t)},close=process.exit;self=global";
try {
e = require("worker_threads").Worker
} catch (e) {}
exports.default = e ? function (r, n, o, a, s) {
var u = !1,
i = new e(r + t, {
eval: !0
}).on("error", (function (e) {
return s(e, null)
})).on("message", (function (e) {
return s(null, e)
})).on("exit", (function (e) {
e && !u && s(Error("exited with code " + e), null)
}));
return i.postMessage(o, a), i.terminate = function () {
return u = !0, e.prototype.terminate.call(i)
}, i
} : function (e, t, r, n, o) {
setImmediate((function () {
return o(Error("async operations unsupported - update to Node 12+ (or Node 10-11 with the --experimental-worker CLI flag)"), null)
}));
var a = function () {};
return {
terminate: a,
postMessage: a
}
};
return _f
} : function (_f) {
"use strict";
var e = {};
_f.default = function (r, t, s, a, n) {
var o = new Worker(e[t] || (e[t] = URL.createObjectURL(new Blob([r + ';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'], {
type: "text/javascript"
}))));
return o.onmessage = function (e) {
var r = e.data,
t = r.$e$;
if (t) {
var s = Error(t[0]);
s.code = t[1], s.stack = t[2], n(s, null)
} else n(null, r)
}, o.postMessage(s, a), o
};
return _f
})({}),
n = Uint8Array,
r = Uint16Array,
e = Int32Array,
i = new n([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0, 0]),
o = new n([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 0, 0]),
s = new n([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]),
a = function (t, n) {
for (var i = new r(31), o = 0; o < 31; ++o) i[o] = n += 1 << t[o - 1];
var s = new e(i[30]);
for (o = 1; o < 30; ++o)
for (var a = i[o]; a < i[o + 1]; ++a) s[a] = a - i[o] << 5 | o;
return {
b: i,
r: s
}
},
u = a(i, 2),
h = u.b,
f = u.r;
h[28] = 258, f[258] = 28;
for (var l = a(o, 0), c = l.b, p = l.r, v = new r(32768), d = 0; d < 32768; ++d) {
var g = (43690 & d) >> 1 | (21845 & d) << 1;
v[d] = ((65280 & (g = (61680 & (g = (52428 & g) >> 2 | (13107 & g) << 2)) >> 4 | (3855 & g) << 4)) >> 8 | (255 & g) << 8) >> 1
}
var y = function (t, n, e) {
for (var i = t.length, o = 0, s = new r(n); o < i; ++o) t[o] && ++s[t[o] - 1];
var a, u = new r(n);
for (o = 1; o < n; ++o) u[o] = u[o - 1] + s[o - 1] << 1;
if (e) {
a = new r(1 << n);
var h = 15 - n;
for (o = 0; o < i; ++o)
if (t[o])
for (var f = o << 4 | t[o], l = n - t[o], c = u[t[o] - 1]++ << l, p = c | (1 << l) - 1; c <= p; ++c) a[v[c] >> h] = f
} else
for (a = new r(i), o = 0; o < i; ++o) t[o] && (a[o] = v[u[t[o] - 1]++] >> 15 - t[o]);
return a
},
m = new n(288);
for (d = 0; d < 144; ++d) m[d] = 8;
for (d = 144; d < 256; ++d) m[d] = 9;
for (d = 256; d < 280; ++d) m[d] = 7;
for (d = 280; d < 288; ++d) m[d] = 8;
var b = new n(32);
for (d = 0; d < 32; ++d) b[d] = 5;
var w = y(m, 9, 0),
x = y(m, 9, 1),
z = y(b, 5, 0),
k = y(b, 5, 1),
M = function (t) {
for (var n = t[0], r = 1; r < t.length; ++r) t[r] > n && (n = t[r]);
return n
},
S = function (t, n, r) {
var e = n / 8 | 0;
return (t[e] | t[e + 1] << 8) >> (7 & n) & r
},
A = function (t, n) {
var r = n / 8 | 0;
return (t[r] | t[r + 1] << 8 | t[r + 2] << 16) >> (7 & n)
},
T = function (t) {
return (t + 7) / 8 | 0
},
D = function (t, r, e) {
return (null == r || r < 0) && (r = 0), (null == e || e > t.length) && (e = t.length), new n(t.subarray(r, e))
};
_e.FlateErrorCode = {
UnexpectedEOF: 0,
InvalidBlockType: 1,
InvalidLengthLiteral: 2,
InvalidDistance: 3,
StreamFinished: 4,
NoStreamHandler: 5,
InvalidHeader: 6,
NoCallback: 7,
InvalidUTF8: 8,
ExtraFieldTooLong: 9,
InvalidDate: 10,
FilenameTooLong: 11,
StreamFinishing: 12,
InvalidZipData: 13,
UnknownCompressionMethod: 14
};
var C = ["unexpected EOF", "invalid block type", "invalid length/literal", "invalid distance", "stream finished", "no stream handler", , "no callback", "invalid UTF-8 data", "extra field too long", "date not in range 1980-2099", "filename too long", "stream finishing", "invalid zip data"],
I = function (t, n, r) {
var e = Error(n || C[t]);
if (e.code = t, Error.captureStackTrace && Error.captureStackTrace(e, I), !r) throw e;
return e
},
U = function (t, r, e, a) {
var u = t.length,
f = a ? a.length : 0;
if (!u || r.f && !r.l) return e || new n(0);
var l = !e,
p = l || 2 != r.i,
v = r.i;
l && (e = new n(3 * u));
var d = function (t) {
var r = e.length;
if (t > r) {
var i = new n(Math.max(2 * r, t));
i.set(e), e = i
}
},
g = r.f || 0,
m = r.p || 0,
b = r.b || 0,
w = r.l,
z = r.d,
C = r.m,
U = r.n,
F = 8 * u;
do {
if (!w) {
g = S(t, m, 1);
var E = S(t, m + 1, 3);
if (m += 3, !E) {
var Z = t[(J = T(m) + 4) - 4] | t[J - 3] << 8,
q = J + Z;
if (q > u) {
v && I(0);
break
}
p && d(b + Z), e.set(t.subarray(J, q), b), r.b = b += Z, r.p = m = 8 * q, r.f = g;
continue
}
if (1 == E) w = x, z = k, C = 9, U = 5;
else if (2 == E) {
var O = S(t, m, 31) + 257,
G = S(t, m + 10, 15) + 4,
L = O + S(t, m + 5, 31) + 1;
m += 14;
for (var H = new n(L), j = new n(19), N = 0; N < G; ++N) j[s[N]] = S(t, m + 3 * N, 7);
m += 3 * G;
var P = M(j),
B = (1 << P) - 1,
Y = y(j, P, 1);
for (N = 0; N < L;) {
var J, K = Y[S(t, m, B)];
if (m += 15 & K, (J = K >> 4) < 16) H[N++] = J;
else {
var Q = 0,
R = 0;
for (16 == J ? (R = 3 + S(t, m, 3), m += 2, Q = H[N - 1]) : 17 == J ? (R = 3 + S(t, m, 7), m += 3) : 18 == J && (R = 11 + S(t, m, 127), m += 7); R--;) H[N++] = Q
}
}
var V = H.subarray(0, O),
W = H.subarray(O);
C = M(V), U = M(W), w = y(V, C, 1), z = y(W, U, 1)
} else I(1);
if (m > F) {
v && I(0);
break
}
}
p && d(b + 131072);
for (var X = (1 << C) - 1, $ = (1 << U) - 1, _ = m;; _ = m) {
var tt = (Q = w[A(t, m) & X]) >> 4;
if ((m += 15 & Q) > F) {
v && I(0);
break
}
if (Q || I(2), tt < 256) e[b++] = tt;
else {
if (256 == tt) {
_ = m, w = null;
break
}
var nt = tt - 254;
tt > 264 && (nt = S(t, m, (1 << (it = i[N = tt - 257])) - 1) + h[N], m += it);
var rt = z[A(t, m) & $],
et = rt >> 4;
if (rt || I(3), m += 15 & rt, W = c[et], et > 3) {
var it = o[et];
W += A(t, m) & (1 << it) - 1, m += it
}
if (m > F) {
v && I(0);
break
}
p && d(b + 131072);
var ot = b + nt;
if (b < W) {
var st = f - W,
at = Math.min(W, ot);
for (st + b < 0 && I(3); b < at; ++b) e[b] = a[st + b]
}
for (; b < ot; ++b) e[b] = e[b - W]
}
}
r.l = w, r.p = _, r.b = b, r.f = g, w && (g = 1, r.m = C, r.d = z, r.n = U)
} while (!g);
return b != e.length && l ? D(e, 0, b) : e.subarray(0, b)
},
F = function (t, n, r) {
var e = n / 8 | 0;
t[e] |= r <<= 7 & n, t[e + 1] |= r >> 8
},
E = function (t, n, r) {
var e = n / 8 | 0;
t[e] |= r <<= 7 & n, t[e + 1] |= r >> 8, t[e + 2] |= r >> 16
},
Z = function (t, e) {
for (var i = [], o = 0; o < t.length; ++o) t[o] && i.push({
s: o,
f: t[o]
});
var s = i.length,
a = i.slice();
if (!s) return {
t: N,
l: 0
};
if (1 == s) {
var u = new n(i[0].s + 1);
return u[i[0].s] = 1, {
t: u,
l: 1
}
}
i.sort((function (t, n) {
return t.f - n.f
})), i.push({
s: -1,
f: 25001
});
var h = i[0],
f = i[1],
l = 0,
c = 1,
p = 2;
for (i[0] = {
s: -1,
f: h.f + f.f,
l: h,
r: f
}; c != s - 1;) h = i[i[l].f < i[p].f ? l++ : p++], f = i[l != c && i[l].f < i[p].f ? l++ : p++], i[c++] = {
s: -1,
f: h.f + f.f,
l: h,
r: f
};
var v = a[0].s;
for (o = 1; o < s; ++o) a[o].s > v && (v = a[o].s);
var d = new r(v + 1),
g = q(i[c - 1], d, 0);
if (g > e) {
o = 0;
var y = 0,
m = g - e,
b = 1 << m;
for (a.sort((function (t, n) {
return d[n.s] - d[t.s] || t.f - n.f
})); o < s; ++o) {
var w = a[o].s;
if (!(d[w] > e)) break;
y += b - (1 << g - d[w]), d[w] = e
}
for (y >>= m; y > 0;) {
var x = a[o].s;
d[x] < e ? y -= 1 << e - d[x]++ - 1 : ++o
}
for (; o >= 0 && y; --o) {
var z = a[o].s;
d[z] == e && (--d[z], ++y)
}
g = e
}
return {
t: new n(d),
l: g
}
},
q = function (t, n, r) {
return -1 == t.s ? Math.max(q(t.l, n, r + 1), q(t.r, n, r + 1)) : n[t.s] = r
},
O = function (t) {
for (var n = t.length; n && !t[--n];);
for (var e = new r(++n), i = 0, o = t[0], s = 1, a = function (t) {
e[i++] = t
}, u = 1; u <= n; ++u)
if (t[u] == o && u != n) ++s;
else {
if (!o && s > 2) {
for (; s > 138; s -= 138) a(32754);
s > 2 && (a(s > 10 ? s - 11 << 5 | 28690 : s - 3 << 5 | 12305), s = 0)
} else if (s > 3) {
for (a(o), --s; s > 6; s -= 6) a(8304);
s > 2 && (a(s - 3 << 5 | 8208), s = 0)
}
for (; s--;) a(o);
s = 1, o = t[u]
} return {
c: e.subarray(0, i),
n: n
}
},
G = function (t, n) {
for (var r = 0, e = 0; e < n.length; ++e) r += t[e] * n[e];
return r
},
L = function (t, n, r) {
var e = r.length,
i = T(n + 2);
t[i] = 255 & e, t[i + 1] = e >> 8, t[i + 2] = 255 ^ t[i], t[i + 3] = 255 ^ t[i + 1];
for (var o = 0; o < e; ++o) t[i + o + 4] = r[o];
return 8 * (i + 4 + e)
},
H = function (t, n, e, a, u, h, f, l, c, p, v) {
F(n, v++, e), ++u[256];
for (var d = Z(u, 15), g = d.t, x = d.l, k = Z(h, 15), M = k.t, S = k.l, A = O(g), T = A.c, D = A.n, C = O(M), I = C.c, U = C.n, q = new r(19), H = 0; H < T.length; ++H) ++q[31 & T[H]];
for (H = 0; H < I.length; ++H) ++q[31 & I[H]];
for (var j = Z(q, 7), N = j.t, P = j.l, B = 19; B > 4 && !N[s[B - 1]]; --B);
var Y, J, K, Q, R = p + 5 << 3,
V = G(u, m) + G(h, b) + f,
W = G(u, g) + G(h, M) + f + 14 + 3 * B + G(q, N) + 2 * q[16] + 3 * q[17] + 7 * q[18];
if (c >= 0 && R <= V && R <= W) return L(n, v, t.subarray(c, c + p));
if (F(n, v, 1 + (W < V)), v += 2, W < V) {
Y = y(g, x, 0), J = g, K = y(M, S, 0), Q = M;
var X = y(N, P, 0);
for (F(n, v, D - 257), F(n, v + 5, U - 1), F(n, v + 10, B - 4), v += 14, H = 0; H < B; ++H) F(n, v + 3 * H, N[s[H]]);
v += 3 * B;
for (var $ = [T, I], _ = 0; _ < 2; ++_) {
var tt = $[_];
for (H = 0; H < tt.length; ++H) F(n, v, X[rt = 31 & tt[H]]), v += N[rt], rt > 15 && (F(n, v, tt[H] >> 5 & 127), v += tt[H] >> 12)
}
} else Y = w, J = m, K = z, Q = b;
for (H = 0; H < l; ++H) {
var nt = a[H];
if (nt > 255) {
var rt;
E(n, v, Y[257 + (rt = nt >> 18 & 31)]), v += J[rt + 257], rt > 7 && (F(n, v, nt >> 23 & 31), v += i[rt]);
var et = 31 & nt;
E(n, v, K[et]), v += Q[et], et > 3 && (E(n, v, nt >> 5 & 8191), v += o[et])
} else E(n, v, Y[nt]), v += J[nt]
}
return E(n, v, Y[256]), v + J[256]
},
j = new e([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]),
N = new n(0),
P = function (t, s, a, u, h, l) {
var c = l.z || t.length,
v = new n(u + c + 5 * (1 + Math.ceil(c / 7e3)) + h),
d = v.subarray(u, v.length - h),
g = l.l,
y = 7 & (l.r || 0);
if (s) {
y && (d[0] = l.r >> 3);
for (var m = j[s - 1], b = m >> 13, w = 8191 & m, x = (1 << a) - 1, z = l.p || new r(32768), k = l.h || new r(x + 1), M = Math.ceil(a / 3), S = 2 * M, A = function (n) {
return (t[n] ^ t[n + 1] << M ^ t[n + 2] << S) & x
}, C = new e(25e3), I = new r(288), U = new r(32), F = 0, E = 0, Z = l.i || 0, q = 0, O = l.w || 0, G = 0; Z + 2 < c; ++Z) {
var N = A(Z),
P = 32767 & Z,
B = k[N];
if (z[P] = B, k[N] = P, O <= Z) {
var Y = c - Z;
if ((F > 7e3 || q > 24576) && (Y > 423 || !g)) {
y = H(t, d, 0, C, I, U, E, q, G, Z - G, y), q = F = E = 0, G = Z;
for (var J = 0; J < 286; ++J) I[J] = 0;
for (J = 0; J < 30; ++J) U[J] = 0
}
var K = 2,
Q = 0,
R = w,
V = P - B & 32767;
if (Y > 2 && N == A(Z - V))
for (var W = Math.min(b, Y) - 1, X = Math.min(32767, Z), $ = Math.min(258, Y); V <= X && --R && P != B;) {
if (t[Z + K] == t[Z + K - V]) {
for (var _ = 0; _ < $ && t[Z + _] == t[Z + _ - V]; ++_);
if (_ > K) {
if (K = _, Q = V, _ > W) break;
var tt = Math.min(V, _ - 2),
nt = 0;
for (J = 0; J < tt; ++J) {
var rt = Z - V + J & 32767,
et = rt - z[rt] & 32767;
et > nt && (nt = et, B = rt)
}
}
}
V += (P = B) - (B = z[P]) & 32767
}
if (Q) {
C[q++] = 268435456 | f[K] << 18 | p[Q];
var it = 31 & f[K],
ot = 31 & p[Q];
E += i[it] + o[ot], ++I[257 + it], ++U[ot], O = Z + K, ++F
} else C[q++] = t[Z], ++I[t[Z]]
}
}
for (Z = Math.max(Z, O); Z < c; ++Z) C[q++] = t[Z], ++I[t[Z]];
y = H(t, d, g, C, I, U, E, q, G, Z - G, y), g || (l.r = 7 & y | d[y / 8 | 0] << 3, y -= 7, l.h = k, l.p = z, l.i = Z, l.w = O)
} else {
for (Z = l.w || 0; Z < c + g; Z += 65535) {
var st = Z + 65535;
st >= c && (d[y / 8 | 0] = g, st = c), y = L(d, y + 1, t.subarray(Z, st))
}
l.i = c
}
return D(v, 0, u + T(y) + h)
},
B = function () {
for (var t = new Int32Array(256), n = 0; n < 256; ++n) {
for (var r = n, e = 9; --e;) r = (1 & r && -306674912) ^ r >>> 1;
t[n] = r
}
return t
}(),
Y = function () {
var t = -1;
return {
p: function (n) {
for (var r = t, e = 0; e < n.length; ++e) r = B[255 & r ^ n[e]] ^ r >>> 8;
t = r
},
d: function () {
return ~t
}
}
},
J = function () {
var t = 1,
n = 0;
return {
p: function (r) {
for (var e = t, i = n, o = 0 | r.length, s = 0; s != o;) {
for (var a = Math.min(s + 2655, o); s < a; ++s) i += e += r[s];
e = (65535 & e) + 15 * (e >> 16), i = (65535 & i) + 15 * (i >> 16)
}
t = e, n = i
},
d: function () {
return (255 & (t %= 65521)) << 24 | (65280 & t) << 8 | (255 & (n %= 65521)) << 8 | n >> 8
}
}
},
K = function (t, r, e, i, o) {
if (!o && (o = {
l: 1
}, r.dictionary)) {
var s = r.dictionary.subarray(-32768),
a = new n(s.length + t.length);
a.set(s), a.set(t, s.length), t = a, o.w = s.length
}
return P(t, null == r.level ? 6 : r.level, null == r.mem ? o.l ? Math.ceil(1.5 * Math.max(8, Math.min(13, Math.log(t.length)))) : 20 : 12 + r.mem, e, i, o)
},
Q = function (t, n) {
var r = {};
for (var e in t) r[e] = t[e];
for (var e in n) r[e] = n[e];
return r
},
R = function (t, n, r) {
for (var e = t(), i = "" + t, o = i.slice(i.indexOf("[") + 1, i.lastIndexOf("]")).replace(/\s+/g, "").split(","), s = 0; s < e.length; ++s) {
var a = e[s],
u = o[s];
if ("function" == typeof a) {
n += ";" + u + "=";
var h = "" + a;
if (a.prototype)
if (-1 != h.indexOf("[native code]")) {
var f = h.indexOf(" ", 8) + 1;
n += h.slice(f, h.indexOf("(", f))
} else
for (var l in n += h, a.prototype) n += ";" + u + ".prototype." + l + "=" + a.prototype[l];
else n += h
} else r[u] = a
}
return n
},
V = [],
W = function (t) {
var n = [];
for (var r in t) t[r].buffer && n.push((t[r] = new t[r].constructor(t[r])).buffer);
return n
},
X = function (n, r, e, i) {
if (!V[e]) {
for (var o = "", s = {}, a = n.length - 1, u = 0; u < a; ++u) o = R(n[u], o, s);
V[e] = {
c: R(n[a], o, s),
e: s
}
}
var h = Q({}, V[e].e);
return (0, t.default)(V[e].c + ";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=" + r + "}", e, h, W(h), i)
},
$ = function () {
return [n, r, e, i, o, s, h, c, x, k, v, C, y, M, S, A, T, D, I, U, Tt, it, ot]
},
_ = function () {
return [n, r, e, i, o, s, f, p, w, m, z, b, v, j, N, y, F, E, Z, q, O, G, L, H, T, D, P, K, kt, it]
},
tt = function () {
return [pt, gt, ct, Y, B]
},
nt = function () {
return [vt, dt]
},
rt = function () {
return [yt, ct, J]
},
et = function () {
return [mt]
},
it = function (t) {
return postMessage(t, [t.buffer])
},
ot = function (t) {
return t && {
out: t.size && new n(t.size),
dictionary: t.dictionary
}
},
st = function (t, n, r, e, i, o) {
var s = X(r, e, i, (function (t, n) {
s.terminate(), o(t, n)
}));
return s.postMessage([t, n], n.consume ? [t.buffer] : []),
function () {
s.terminate()
}
},
at = function (t) {
return t.ondata = function (t, n) {
return postMessage([t, n], [t.buffer])
},
function (n) {
n.data.length ? (t.push(n.data[0], n.data[1]), postMessage([n.data[0].length])) : t.flush()
}
},
ut = function (t, n, r, e, i, o, s) {
var a, u = X(t, e, i, (function (t, r) {
t ? (u.terminate(), n.ondata.call(n, t)) : Array.isArray(r) ? 1 == r.length ? (n.queuedSize -= r[0], n.ondrain && n.ondrain(r[0])) : (r[1] && u.terminate(), n.ondata.call(n, t, r[0], r[1])) : s(r)
}));
u.postMessage(r), n.queuedSize = 0, n.push = function (t, r) {
n.ondata || I(5), a && n.ondata(I(4, 0, 1), null, !!r), n.queuedSize += t.length, u.postMessage([t, a = r], [t.buffer])
}, n.terminate = function () {
u.terminate()
}, o && (n.flush = function () {
u.postMessage([])
})
},
ht = function (t, n) {
return t[n] | t[n + 1] << 8
},
ft = function (t, n) {
return (t[n] | t[n + 1] << 8 | t[n + 2] << 16 | t[n + 3] << 24) >>> 0
},
lt = function (t, n) {
return ft(t, n) + 4294967296 * ft(t, n + 4)
},
ct = function (t, n, r) {
for (; r; ++n) t[n] = r, r >>>= 8
},
pt = function (t, n) {
var r = n.filename;
if (t[0] = 31, t[1] = 139, t[2] = 8, t[8] = n.level < 2 ? 4 : 9 == n.level ? 2 : 0, t[9] = 3, 0 != n.mtime && ct(t, 4, Math.floor(new Date(n.mtime || Date.now()) / 1e3)), r) {
t[3] = 8;
for (var e = 0; e <= r.length; ++e) t[e + 10] = r.charCodeAt(e)
}
},
vt = function (t) {
31 == t[0] && 139 == t[1] && 8 == t[2] || I(6, "invalid gzip data");
var n = t[3],
r = 10;
4 & n && (r += 2 + (t[10] | t[11] << 8));
for (var e = (n >> 3 & 1) + (n >> 4 & 1); e > 0; e -= !t[r++]);
return r + (2 & n)
},
dt = function (t) {
var n = t.length;
return (t[n - 4] | t[n - 3] << 8 | t[n - 2] << 16 | t[n - 1] << 24) >>> 0
},
gt = function (t) {
return 10 + (t.filename ? t.filename.length + 1 : 0)
},
yt = function (t, n) {
var r = n.level,
e = 0 == r ? 0 : r < 6 ? 1 : 9 == r ? 3 : 2;
if (t[0] = 120, t[1] = e << 6 | (n.dictionary && 32), t[1] |= 31 - (t[0] << 8 | t[1]) % 31, n.dictionary) {
var i = J();
i.p(n.dictionary), ct(t, 2, i.d())
}
},
mt = function (t, n) {
return (8 != (15 & t[0]) || t[0] >> 4 > 7 || (t[0] << 8 | t[1]) % 31) && I(6, "invalid zlib data"), (t[1] >> 5 & 1) == +!n && I(6, "invalid zlib data: " + (32 & t[1] ? "need" : "unexpected") + " dictionary"), 2 + (t[1] >> 3 & 4)
};
function bt(t, n) {
return "function" == typeof t && (n = t, t = {}), this.ondata = n, t
}
var wt = function () {
function t(t, r) {
if ("function" == typeof t && (r = t, t = {}), this.ondata = r, this.o = t || {}, this.s = {
l: 0,
i: 32768,
w: 32768,
z: 32768
}, this.b = new n(98304), this.o.dictionary) {
var e = this.o.dictionary.subarray(-32768);
this.b.set(e, 32768 - e.length), this.s.i = 32768 - e.length
}
}
return t.prototype.p = function (t, n) {
this.ondata(K(t, this.o, 0, 0, this.s), n)
}, t.prototype.push = function (t, r) {
this.ondata || I(5), this.s.l && I(4);
var e = t.length + this.s.z;
if (e > this.b.length) {
if (e > 2 * this.b.length - 32768) {
var i = new n(-32768 & e);
i.set(this.b.subarray(0, this.s.z)), this.b = i
}
var o = this.b.length - this.s.z;
this.b.set(t.subarray(0, o), this.s.z), this.s.z = this.b.length, this.p(this.b, !1), this.b.set(this.b.subarray(-32768)), this.b.set(t.subarray(o), 32768), this.s.z = t.length - o + 32768, this.s.i = 32766, this.s.w = 32768
} else this.b.set(t, this.s.z), this.s.z += t.length;
this.s.l = 1 & r, (this.s.z > this.s.w + 8191 || r) && (this.p(this.b, r || !1), this.s.w = this.s.i, this.s.i -= 2)
}, t.prototype.flush = function () {
this.ondata || I(5), this.s.l && I(4), this.p(this.b, !1), this.s.w = this.s.i, this.s.i -= 2
}, t
}();
_e.Deflate = wt;
var xt = function () {
return function (t, n) {
ut([_, function () {
return [at, wt]
}], this, bt.call(this, t, n), (function (t) {
var n = new wt(t.data);
onmessage = at(n)
}), 6, 1)
}
}();
function zt(t, n, r) {
return r || (r = n, n = {}), "function" != typeof r && I(7), st(t, n, [_], (function (t) {
return it(kt(t.data[0], t.data[1]))
}), 0, r)
}
function kt(t, n) {
return K(t, n || {}, 0, 0)
}
_e.AsyncDeflate = xt, _e.deflate = zt, _e.deflateSync = kt;
var Mt = function () {
function t(t, r) {
"function" == typeof t && (r = t, t = {}), this.ondata = r;
var e = t && t.dictionary && t.dictionary.subarray(-32768);
this.s = {
i: 0,
b: e ? e.length : 0
}, this.o = new n(32768), this.p = new n(0), e && this.o.set(e)
}
return t.prototype.e = function (t) {
if (this.ondata || I(5), this.d && I(4), this.p.length) {
if (t.length) {
var r = new n(this.p.length + t.length);
r.set(this.p), r.set(t, this.p.length), this.p = r
}
} else this.p = t
}, t.prototype.c = function (t) {
this.s.i = +(this.d = t || !1);
var n = this.s.b,
r = U(this.p, this.s, this.o);
this.ondata(D(r, n, this.s.b), this.d), this.o = D(r, this.s.b - 32768), this.s.b = this.o.length, this.p = D(this.p, this.s.p / 8 | 0), this.s.p &= 7
}, t.prototype.push = function (t, n) {
this.e(t), this.c(n)
}, t
}();
_e.Inflate = Mt;
var St = function () {
return function (t, n) {
ut([$, function () {
return [at, Mt]
}], this, bt.call(this, t, n), (function (t) {
var n = new Mt(t.data);
onmessage = at(n)
}), 7, 0)
}
}();
function At(t, n, r) {
return r || (r = n, n = {}), "function" != typeof r && I(7), st(t, n, [$], (function (t) {
return it(Tt(t.data[0], ot(t.data[1])))
}), 1, r)
}
function Tt(t, n) {
return U(t, {
i: 2
}, n && n.out, n && n.dictionary)
}
_e.AsyncInflate = St, _e.inflate = At, _e.inflateSync = Tt;
var Dt = function () {
function t(t, n) {
this.c = Y(), this.l = 0, this.v = 1, wt.call(this, t, n)
}
return t.prototype.push = function (t, n) {
this.c.p(t), this.l += t.length, wt.prototype.push.call(this, t, n)
}, t.prototype.p = function (t, n) {
var r = K(t, this.o, this.v && gt(this.o), n && 8, this.s);
this.v && (pt(r, this.o), this.v = 0), n && (ct(r, r.length - 8, this.c.d()), ct(r, r.length - 4, this.l)), this.ondata(r, n)
}, t.prototype.flush = function () {
wt.prototype.flush.call(this)
}, t
}();
_e.Gzip = Dt, _e.Compress = Dt;
var Ct = function () {
return function (t, n) {
ut([_, tt, function () {
return [at, wt, Dt]
}], this, bt.call(this, t, n), (function (t) {
var n = new Dt(t.data);
onmessage = at(n)
}), 8, 1)
}
}();
function It(t, n, r) {
return r || (r = n, n = {}), "function" != typeof r && I(7), st(t, n, [_, tt, function () {
return [Ut]
}], (function (t) {
return it(Ut(t.data[0], t.data[1]))
}), 2, r)
}
function Ut(t, n) {
n || (n = {});
var r = Y(),
e = t.length;
r.p(t);
var i = K(t, n, gt(n), 8),
o = i.length;
return pt(i, n), ct(i, o - 8, r.d()), ct(i, o - 4, e), i
}
_e.AsyncGzip = Ct, _e.AsyncCompress = Ct, _e.gzip = It, _e.compress = It, _e.gzipSync = Ut, _e.compressSync = Ut;
var Ft = function () {
function t(t, n) {
this.v = 1, this.r = 0, Mt.call(this, t, n)
}
return t.prototype.push = function (t, r) {
if (Mt.prototype.e.call(this, t), this.r += t.length, this.v) {
var e = this.p.subarray(this.v - 1),
i = e.length > 3 ? vt(e) : 4;
if (i > e.length) {
if (!r) return
} else this.v > 1 && this.onmember && this.onmember(this.r - e.length);
this.p = e.subarray(i), this.v = 0
}
Mt.prototype.c.call(this, r), !this.s.f || this.s.l || r || (this.v = T(this.s.p) + 9, this.s = {
i: 0
}, this.o = new n(0), this.push(new n(0), r))
}, t
}();
_e.Gunzip = Ft;
var Et = function () {
return function (t, n) {
var r = this;
ut([$, nt, function () {
return [at, Mt, Ft]
}], this, bt.call(this, t, n), (function (t) {
var n = new Ft(t.data);
n.onmember = function (t) {
return postMessage(t)
}, onmessage = at(n)
}), 9, 0, (function (t) {
return r.onmember && r.onmember(t)
}))
}
}();
function Zt(t, n, r) {
return r || (r = n, n = {}), "function" != typeof r && I(7), st(t, n, [$, nt, function () {
return [qt]
}], (function (t) {
return it(qt(t.data[0], t.data[1]))
}), 3, r)
}
function qt(t, r) {
var e = vt(t);
return e + 8 > t.length && I(6, "invalid gzip data"), U(t.subarray(e, -8), {
i: 2
}, r && r.out || new n(dt(t)), r && r.dictionary)
}
_e.AsyncGunzip = Et, _e.gunzip = Zt, _e.gunzipSync = qt;
var Ot = function () {
function t(t, n) {
this.c = J(), this.v = 1, wt.call(this, t, n)
}
return t.prototype.push = function (t, n) {
this.c.p(t), wt.prototype.push.call(this, t, n)
}, t.prototype.p = function (t, n) {
var r = K(t, this.o, this.v && (this.o.dictionary ? 6 : 2), n && 4, this.s);
this.v && (yt(r, this.o), this.v = 0), n && ct(r, r.length - 4, this.c.d()), this.ondata(r, n)
}, t.prototype.flush = function () {
wt.prototype.flush.call(this)
}, t
}();
_e.Zlib = Ot;
var Gt = function () {
return function (t, n) {
ut([_, rt, function () {
return [at, wt, Ot]
}], this, bt.call(this, t, n), (function (t) {
var n = new Ot(t.data);
onmessage = at(n)
}), 10, 1)
}
}();
function Lt(t, n, r) {
return r || (r = n, n = {}), "function" != typeof r && I(7), st(t, n, [_, rt, function () {
return [Ht]
}], (function (t) {
return it(Ht(t.data[0], t.data[1]))
}), 4, r)
}
function Ht(t, n) {
n || (n = {});
var r = J();
r.p(t);
var e = K(t, n, n.dictionary ? 6 : 2, 4);
return yt(e, n), ct(e, e.length - 4, r.d()), e
}
_e.AsyncZlib = Gt, _e.zlib = Lt, _e.zlibSync = Ht;
var jt = function () {
function t(t, n) {
Mt.call(this, t, n), this.v = t && t.dictionary ? 2 : 1
}
return t.prototype.push = function (t, n) {
if (Mt.prototype.e.call(this, t), this.v) {
if (this.p.length < 6 && !n) return;
this.p = this.p.subarray(mt(this.p, this.v - 1)), this.v = 0
}
n && (this.p.length < 4 && I(6, "invalid zlib data"), this.p = this.p.subarray(0, -4)), Mt.prototype.c.call(this, n)
}, t
}();
_e.Unzlib = jt;
var Nt = function () {
return function (t, n) {
ut([$, et, function () {
return [at, Mt, jt]
}], this, bt.call(this, t, n), (function (t) {
var n = new jt(t.data);
onmessage = at(n)
}), 11, 0)
}
}();
function Pt(t, n, r) {
return r || (r = n, n = {}), "function" != typeof r && I(7), st(t, n, [$, et, function () {
return [Bt]
}], (function (t) {
return it(Bt(t.data[0], ot(t.data[1])))
}), 5, r)
}
function Bt(t, n) {
return U(t.subarray(mt(t, n && n.dictionary), -4), {
i: 2
}, n && n.out, n && n.dictionary)
}
_e.AsyncUnzlib = Nt, _e.unzlib = Pt, _e.unzlibSync = Bt;
var Yt = function () {
function t(t, n) {
this.o = bt.call(this, t, n) || {}, this.G = Ft, this.I = Mt, this.Z = jt
}
return t.prototype.i = function () {
var t = this;
this.s.ondata = function (n, r) {
t.ondata(n, r)
}
}, t.prototype.push = function (t, r) {
if (this.ondata || I(5), this.s) this.s.push(t, r);
else {
if (this.p && this.p.length) {
var e = new n(this.p.length + t.length);
e.set(this.p), e.set(t, this.p.length)
} else this.p = t;
this.p.length > 2 && (this.s = 31 == this.p[0] && 139 == this.p[1] && 8 == this.p[2] ? new this.G(this.o) : 8 != (15 & this.p[0]) || this.p[0] >> 4 > 7 || (this.p[0] << 8 | this.p[1]) % 31 ? new this.I(this.o) : new this.Z(this.o), this.i(), this.s.push(this.p, r), this.p = null)
}
}, t
}();
_e.Decompress = Yt;
var Jt = function () {
function t(t, n) {
Yt.call(this, t, n), this.queuedSize = 0, this.G = Et, this.I = St, this.Z = Nt
}
return t.prototype.i = function () {
var t = this;
this.s.ondata = function (n, r, e) {
t.ondata(n, r, e)
}, this.s.ondrain = function (n) {
t.queuedSize -= n, t.ondrain && t.ondrain(n)
}
}, t.prototype.push = function (t, n) {
this.queuedSize += t.length, Yt.prototype.push.call(this, t, n)
}, t
}();
function Kt(t, n, r) {
return r || (r = n, n = {}), "function" != typeof r && I(7), 31 == t[0] && 139 == t[1] && 8 == t[2] ? Zt(t, n, r) : 8 != (15 & t[0]) || t[0] >> 4 > 7 || (t[0] << 8 | t[1]) % 31 ? At(t, n, r) : Pt(t, n, r)
}
function Qt(t, n) {
return 31 == t[0] && 139 == t[1] && 8 == t[2] ? qt(t, n) : 8 != (15 & t[0]) || t[0] >> 4 > 7 || (t[0] << 8 | t[1]) % 31 ? Tt(t, n) : Bt(t, n)
}
_e.AsyncDecompress = Jt, _e.decompress = Kt, _e.decompressSync = Qt;
var Rt = function (t, r, e, i) {
for (var o in t) {
var s = t[o],
a = r + o,
u = i;
Array.isArray(s) && (u = Q(i, s[1]), s = s[0]), s instanceof n ? e[a] = [s, u] : (e[a += "/"] = [new n(0), u], Rt(s, a, e, i))
}
},
Vt = "undefined" != typeof TextEncoder && new TextEncoder,
Wt = "undefined" != typeof TextDecoder && new TextDecoder,
Xt = 0;
try {
Wt.decode(N, {
stream: !0
}), Xt = 1
} catch (t) {}
var $t = function (t) {
for (var n = "", r = 0;;) {
var e = t[r++],
i = (e > 127) + (e > 223) + (e > 239);
if (r + i > t.length) return {
s: n,
r: D(t, r - 1)
};
i ? 3 == i ? (e = ((15 & e) << 18 | (63 & t[r++]) << 12 | (63 & t[r++]) << 6 | 63 & t[r++]) - 65536, n += String.fromCharCode(55296 | e >> 10, 56320 | 1023 & e)) : n += String.fromCharCode(1 & i ? (31 & e) << 6 | 63 & t[r++] : (15 & e) << 12 | (63 & t[r++]) << 6 | 63 & t[r++]) : n += String.fromCharCode(e)
}
},
_t = function () {
function t(t) {
this.ondata = t, Xt ? this.t = new TextDecoder : this.p = N
}
return t.prototype.push = function (t, r) {
if (this.ondata || I(5), r = !!r, this.t) return this.ondata(this.t.decode(t, {
stream: !0
}), r), void(r && (this.t.decode().length && I(8), this.t = null));
this.p || I(4);
var e = new n(this.p.length + t.length);
e.set(this.p), e.set(t, this.p.length);
var i = $t(e),
o = i.s,
s = i.r;
r ? (s.length && I(8), this.p = null) : this.p = s, this.ondata(o, r)
}, t
}();
_e.DecodeUTF8 = _t;
var tn = function () {
function t(t) {
this.ondata = t
}
return t.prototype.push = function (t, n) {
this.ondata || I(5), this.d && I(4), this.ondata(nn(t), this.d = n || !1)
}, t
}();
function nn(t, r) {
if (r) {
for (var e = new n(t.length), i = 0; i < t.length; ++i) e[i] = t.charCodeAt(i);
return e
}
if (Vt) return Vt.encode(t);
var o = t.length,
s = new n(t.length + (t.length >> 1)),
a = 0,
u = function (t) {
s[a++] = t
};
for (i = 0; i < o; ++i) {
if (a + 5 > s.length) {
var h = new n(a + 8 + (o - i << 1));
h.set(s), s = h
}
var f = t.charCodeAt(i);
f < 128 || r ? u(f) : f < 2048 ? (u(192 | f >> 6), u(128 | 63 & f)) : f > 55295 && f < 57344 ? (u(240 | (f = 65536 + (1047552 & f) | 1023 & t.charCodeAt(++i)) >> 18), u(128 | f >> 12 & 63), u(128 | f >> 6 & 63), u(128 | 63 & f)) : (u(224 | f >> 12), u(128 | f >> 6 & 63), u(128 | 63 & f))
}
return D(s, 0, a)
}
function rn(t, n) {
if (n) {
for (var r = "", e = 0; e < t.length; e += 16384) r += String.fromCharCode.apply(null, t.subarray(e, e + 16384));
return r
}
if (Wt) return Wt.decode(t);
var i = $t(t),
o = i.s;
return (r = i.r).length && I(8), o
}
_e.EncodeUTF8 = tn, _e.strToU8 = nn, _e.strFromU8 = rn;
var en = function (t) {
return 1 == t ? 3 : t < 6 ? 2 : 9 == t ? 1 : 0
},
on = function (t, n) {
return n + 30 + ht(t, n + 26) + ht(t, n + 28)
},
sn = function (t, n, r) {
var e = ht(t, n + 28),
i = rn(t.subarray(n + 46, n + 46 + e), !(2048 & ht(t, n + 8))),
o = n + 46 + e,
s = ft(t, n + 20),
a = r && 4294967295 == s ? an(t, o) : [s, ft(t, n + 24), ft(t, n + 42)],
u = a[0],
h = a[1],
f = a[2];
return [ht(t, n + 10), u, h, i, o + ht(t, n + 30) + ht(t, n + 32), f]
},
an = function (t, n) {
for (; 1 != ht(t, n); n += 4 + ht(t, n + 2));
return [lt(t, n + 12), lt(t, n + 4), lt(t, n + 20)]
},
un = function (t) {
var n = 0;
if (t)
for (var r in t) {
var e = t[r].length;
e > 65535 && I(9), n += e + 4
}
return n
},
hn = function (t, n, r, e, i, o, s, a) {
var u = e.length,
h = r.extra,
f = a && a.length,
l = un(h);
ct(t, n, null != s ? 33639248 : 67324752), n += 4, null != s && (t[n++] = 20, t[n++] = r.os), t[n] = 20, n += 2, t[n++] = r.flag << 1 | (o < 0 && 8), t[n++] = i && 8, t[n++] = 255 & r.compression, t[n++] = r.compression >> 8;
var c = new Date(null == r.mtime ? Date.now() : r.mtime),
p = c.getFullYear() - 1980;
if ((p < 0 || p > 119) && I(10), ct(t, n, p << 25 | c.getMonth() + 1 << 21 | c.getDate() << 16 | c.getHours() << 11 | c.getMinutes() << 5 | c.getSeconds() >> 1), n += 4, -1 != o && (ct(t, n, r.crc), ct(t, n + 4, o < 0 ? -o - 2 : o), ct(t, n + 8, r.size)), ct(t, n + 12, u), ct(t, n + 14, l), n += 16, null != s && (ct(t, n, f), ct(t, n + 6, r.attrs), ct(t, n + 10, s), n += 14), t.set(e, n), n += u, l)
for (var v in h) {
var d = h[v],
g = d.length;
ct(t, n, +v), ct(t, n + 2, g), t.set(d, n + 4), n += 4 + g
}
return f && (t.set(a, n), n += f), n
},
fn = function (t, n, r, e, i) {
ct(t, n, 101010256), ct(t, n + 8, r), ct(t, n + 10, r), ct(t, n + 12, e), ct(t, n + 16, i)
},
ln = function () {
function t(t) {
this.filename = t, this.c = Y(), this.size = 0, this.compression = 0
}
return t.prototype.process = function (t, n) {
this.ondata(null, t, n)
}, t.prototype.push = function (t, n) {
this.ondata || I(5), this.c.p(t), this.size += t.length, n && (this.crc = this.c.d()), this.process(t, n || !1)
}, t
}();
_e.ZipPassThrough = ln;
var cn = function () {
function t(t, n) {
var r = this;
n || (n = {}), ln.call(this, t), this.d = new wt(n, (function (t, n) {
r.ondata(null, t, n)
})), this.compression = 8, this.flag = en(n.level)
}
return t.prototype.process = function (t, n) {
try {
this.d.push(t, n)
} catch (t) {
this.ondata(t, null, n)
}
}, t.prototype.push = function (t, n) {
ln.prototype.push.call(this, t, n)
}, t
}();
_e.ZipDeflate = cn;
var pn = function () {
function t(t, n) {
var r = this;
n || (n = {}), ln.call(this, t), this.d = new xt(n, (function (t, n, e) {
r.ondata(t, n, e)
})), this.compression = 8, this.flag = en(n.level), this.terminate = this.d.terminate
}
return t.prototype.process = function (t, n) {
this.d.push(t, n)
}, t.prototype.push = function (t, n) {
ln.prototype.push.call(this, t, n)
}, t
}();
_e.AsyncZipDeflate = pn;
var vn = function () {
function t(t) {
this.ondata = t, this.u = [], this.d = 1
}
return t.prototype.add = function (t) {
var r = this;
if (this.ondata || I(5), 2 & this.d) this.ondata(I(4 + 8 * (1 & this.d), 0, 1), null, !1);
else {
var e = nn(t.filename),
i = e.length,
o = t.comment,
s = o && nn(o),
a = i != t.filename.length || s && o.length != s.length,
u = i + un(t.extra) + 30;
i > 65535 && this.ondata(I(11, 0, 1), null, !1);
var h = new n(u);
hn(h, 0, t, e, a, -1);
var f = [h],
l = function () {
for (var t = 0, n = f; t < n.length; t++) r.ondata(null, n[t], !1);
f = []
},
c = this.d;
this.d = 0;
var p = this.u.length,
v = Q(t, {
f: e,
u: a,
o: s,
t: function () {
t.terminate && t.terminate()
},
r: function () {
if (l(), c) {
var t = r.u[p + 1];
t ? t.r() : r.d = 1
}
c = 1
}
}),
d = 0;
t.ondata = function (e, i, o) {
if (e) r.ondata(e, i, o), r.terminate();
else if (d += i.length, f.push(i), o) {
var s = new n(16);
ct(s, 0, 134695760), ct(s, 4, t.crc), ct(s, 8, d), ct(s, 12, t.size), f.push(s), v.c = d, v.b = u + d + 16, v.crc = t.crc, v.size = t.size, c && v.r(), c = 1
} else c && l()
}, this.u.push(v)
}
}, t.prototype.end = function () {
var t = this;
2 & this.d ? this.ondata(I(4 + 8 * (1 & this.d), 0, 1), null, !0) : (this.d ? this.e() : this.u.push({
r: function () {
1 & t.d && (t.u.splice(-1, 1), t.e())
},
t: function () {}
}), this.d = 3)
}, t.prototype.e = function () {
for (var t = 0, r = 0, e = 0, i = 0, o = this.u; i < o.length; i++) e += 46 + (h = o[i]).f.length + un(h.extra) + (h.o ? h.o.length : 0);
for (var s = new n(e + 22), a = 0, u = this.u; a < u.length; a++) {
var h;
hn(s, t, h = u[a], h.f, h.u, -h.c - 2, r, h.o), t += 46 + h.f.length + un(h.extra) + (h.o ? h.o.length : 0), r += h.b
}
fn(s, t, this.u.length, e, r), this.ondata(null, s, !0), this.d = 2
}, t.prototype.terminate = function () {
for (var t = 0, n = this.u; t < n.length; t++) n[t].t();
this.d = 2
}, t
}();
function dn(t, r, e) {
e || (e = r, r = {}), "function" != typeof e && I(7);
var i = {};
Rt(t, "", i, r);
var o = Object.keys(i),
s = o.length,
a = 0,
u = 0,
h = s,
f = Array(s),
l = [],
c = function () {
for (var t = 0; t < l.length; ++t) l[t]()
},
p = function (t, n) {
xn((function () {
e(t, n)
}))
};
xn((function () {
p = e
}));
var v = function () {
var t = new n(u + 22),
r = a,
e = u - a;
u = 0;
for (var i = 0; i < h; ++i) {
var o = f[i];
try {
var s = o.c.length;
hn(t, u, o, o.f, o.u, s);
var l = 30 + o.f.length + un(o.extra),
c = u + l;
t.set(o.c, c), hn(t, a, o, o.f, o.u, s, u, o.m), a += 16 + l + (o.m ? o.m.length : 0), u = c + s
} catch (t) {
return p(t, null)
}
}
fn(t, a, f.length, e, r), p(null, t)
};
s || v();
for (var d = function (t) {
var n = o[t],
r = i[n],
e = r[0],
h = r[1],
d = Y(),
g = e.length;
d.p(e);
var y = nn(n),
m = y.length,
b = h.comment,
w = b && nn(b),
x = w && w.length,
z = un(h.extra),
k = 0 == h.level ? 0 : 8,
M = function (r, e) {
if (r) c(), p(r, null);
else {
var i = e.length;
f[t] = Q(h, {
size: g,
crc: d.d(),
c: e,
f: y,
m: w,
u: m != n.length || w && b.length != x,
compression: k
}), a += 30 + m + z + i, u += 76 + 2 * (m + z) + (x || 0) + i, --s || v()
}
};
if (m > 65535 && M(I(11, 0, 1), null), k)
if (g < 16e4) try {
M(null, kt(e, h))
} catch (t) {
M(t, null)
} else l.push(zt(e, h, M));
else M(null, e)
}, g = 0; g < h; ++g) d(g);
return c
}
function gn(t, r) {
r || (r = {});
var e = {},
i = [];
Rt(t, "", e, r);
var o = 0,
s = 0;
for (var a in e) {
var u = e[a],
h = u[0],
f = u[1],
l = 0 == f.level ? 0 : 8,
c = (M = nn(a)).length,
p = f.comment,
v = p && nn(p),
d = v && v.length,
g = un(f.extra);
c > 65535 && I(11);
var y = l ? kt(h, f) : h,
m = y.length,
b = Y();
b.p(h), i.push(Q(f, {
size: h.length,
crc: b.d(),
c: y,
f: M,
m: v,
u: c != a.length || v && p.length != d,
o: o,
compression: l
})), o += 30 + c + g + m, s += 76 + 2 * (c + g) + (d || 0) + m
}
for (var w = new n(s + 22), x = o, z = s - o, k = 0; k < i.length; ++k) {
var M;
hn(w, (M = i[k]).o, M, M.f, M.u, M.c.length);
var S = 30 + M.f.length + un(M.extra);
w.set(M.c, M.o + S), hn(w, o, M, M.f, M.u, M.c.length, M.o, M.m), o += 16 + S + (M.m ? M.m.length : 0)
}
return fn(w, o, i.length, z, x), w
}
_e.Zip = vn, _e.zip = dn, _e.zipSync = gn;
var yn = function () {
function t() {}
return t.prototype.push = function (t, n) {
this.ondata(null, t, n)
}, t.compression = 0, t
}();
_e.UnzipPassThrough = yn;
var mn = function () {
function t() {
var t = this;
this.i = new Mt((function (n, r) {
t.ondata(null, n, r)
}))
}
return t.prototype.push = function (t, n) {
try {
this.i.push(t, n)
} catch (t) {
this.ondata(t, null, n)
}
}, t.compression = 8, t
}();
_e.UnzipInflate = mn;
var bn = function () {
function t(t, n) {
var r = this;
n < 32e4 ? this.i = new Mt((function (t, n) {
r.ondata(null, t, n)
})) : (this.i = new St((function (t, n, e) {
r.ondata(t, n, e)
})), this.terminate = this.i.terminate)
}
return t.prototype.push = function (t, n) {
this.i.terminate && (t = D(t, 0)), this.i.push(t, n)
}, t.compression = 8, t
}();
_e.AsyncUnzipInflate = bn;
var wn = function () {
function t(t) {
this.onfile = t, this.k = [], this.o = {
0: yn
}, this.p = N
}
return t.prototype.push = function (t, r) {
var e = this;
if (this.onfile || I(5), this.p || I(4), this.c > 0) {
var i = Math.min(this.c, t.length),
o = t.subarray(0, i);
if (this.c -= i, this.d ? this.d.push(o, !this.c) : this.k[0].push(o), (t = t.subarray(i)).length) return this.push(t, r)
} else {
var s = 0,
a = 0,
u = void 0,
h = void 0;
this.p.length ? t.length ? ((h = new n(this.p.length + t.length)).set(this.p), h.set(t, this.p.length)) : h = this.p : h = t;
for (var f = h.length, l = this.c, c = l && this.d, p = function () {
var t, n = ft(h, a);
if (67324752 == n) {
s = 1, u = a, v.d = null, v.c = 0;
var r = ht(h, a + 6),
i = ht(h, a + 8),
o = 2048 & r,
c = 8 & r,
p = ht(h, a + 26),
d = ht(h, a + 28);
if (f > a + 30 + p + d) {
var g = [];
v.k.unshift(g), s = 2;
var y, m = ft(h, a + 18),
b = ft(h, a + 22),
w = rn(h.subarray(a + 30, a += 30 + p), !o);
4294967295 == m ? (t = c ? [-2] : an(h, a), m = t[0], b = t[1]) : c && (m = -1), a += d, v.c = m;
var x = {
name: w,
compression: i,
start: function () {
if (x.ondata || I(5), m) {
var t = e.o[i];
t || x.ondata(I(14, "unknown compression type " + i, 1), null, !1), (y = m < 0 ? new t(w) : new t(w, m, b)).ondata = function (t, n, r) {
x.ondata(t, n, r)
};
for (var n = 0, r = g; n < r.length; n++) y.push(r[n], !1);
e.k[0] == g && e.c ? e.d = y : y.push(N, !0)
} else x.ondata(null, N, !0)
},
terminate: function () {
y && y.terminate && y.terminate()
}
};
m >= 0 && (x.size = m, x.originalSize = b), v.onfile(x)
}
return "break"
}
if (l) {
if (134695760 == n) return u = a += 12 + (-2 == l && 8), s = 3, v.c = 0, "break";
if (33639248 == n) return u = a -= 4, s = 3, v.c = 0, "break"
}
}, v = this; a < f - 4 && "break" !== p(); ++a);
if (this.p = N, l < 0) {
var d = h.subarray(0, s ? u - 12 - (-2 == l && 8) - (134695760 == ft(h, u - 16) && 4) : a);
c ? c.push(d, !!s) : this.k[+(2 == s)].push(d)
}
if (2 & s) return this.push(h.subarray(a), r);
this.p = h.subarray(a)
}
r && (this.c && I(13), this.p = null)
}, t.prototype.register = function (t) {
this.o[t.compression] = t
}, t
}();
_e.Unzip = wn;
var xn = "function" == typeof queueMicrotask ? queueMicrotask : "function" == typeof setTimeout ? setTimeout : function (t) {
t()
};
function zn(t, r, e) {
e || (e = r, r = {}), "function" != typeof e && I(7);
var i = [],
o = function () {
for (var t = 0; t < i.length; ++t) i[t]()
},
s = {},
a = function (t, n) {
xn((function () {
e(t, n)
}))
};
xn((function () {
a = e
}));
for (var u = t.length - 22; 101010256 != ft(t, u); --u)
if (!u || t.length - u > 65558) return a(I(13, 0, 1), null), o;
var h = ht(t, u + 8);
if (h) {
var f = h,
l = ft(t, u + 16),
c = 4294967295 == l || 65535 == f;
if (c) {
var p = ft(t, u - 12);
(c = 101075792 == ft(t, p)) && (f = h = ft(t, p + 32), l = ft(t, p + 48))
}
for (var v = r && r.filter, d = function (r) {
var e = sn(t, l, c),
u = e[0],
f = e[1],
p = e[2],
d = e[3],
g = e[4],
y = on(t, e[5]);
l = g;
var m = function (t, n) {
t ? (o(), a(t, null)) : (n && (s[d] = n), --h || a(null, s))
};
if (!v || v({
name: d,
size: f,
originalSize: p,
compression: u
}))
if (u)
if (8 == u) {
var b = t.subarray(y, y + f);
if (p < 524288 || f > .8 * p) try {
m(null, Tt(b, {
out: new n(p)
}))
} catch (t) {
m(t, null)
} else i.push(At(b, {
size: p
}, m))
} else m(I(14, "unknown compression type " + u, 1), null);
else m(null, D(t, y, y + f));
else m(null, null)
}, g = 0; g < f; ++g) d()
} else a(null, {});
return o
}
function kn(t, r) {
for (var e = {}, i = t.length - 22; 101010256 != ft(t, i); --i)(!i || t.length - i > 65558) && I(13);
var o = ht(t, i + 8);
if (!o) return {};
var s = ft(t, i + 16),
a = 4294967295 == s || 65535 == o;
if (a) {
var u = ft(t, i - 12);
(a = 101075792 == ft(t, u)) && (o = ft(t, u + 32), s = ft(t, u + 48))
}
for (var h = r && r.filter, f = 0; f < o; ++f) {
var l = sn(t, s, a),
c = l[0],
p = l[1],
v = l[2],
d = l[3],
g = l[4],
y = on(t, l[5]);
s = g, h && !h({
name: d,
size: p,
originalSize: v,
compression: c
}) || (c ? 8 == c ? e[d] = Tt(t.subarray(y, y + p), {
out: new n(v)
}) : I(14, "unknown compression type " + c) : e[d] = D(t, y, y + p))
}
return e
}
_e.unzip = zn, _e.unzipSync = kn;
return _e
});
</script>
<script>
function base64ToBinaryString(base64Str) {
if (typeof base64Str !== 'string') {
throw new Error('入参必须是纯Base64字符串(无data:前缀)');
}
const pureBase64 = base64Str.trim();
if (!pureBase64) {
throw new Error('Base64字符串不能为空');
}
const base64Pattern = /^[A-Za-z0-9+/=]+$/;
if (!base64Pattern.test(pureBase64)) {
throw new Error('Base64字符串格式无效(包含非Base64字符)');
}
try {
const binaryStr = atob(pureBase64);
const uint8Array = Uint8Array.from(binaryStr, (char) => char.charCodeAt(0));
let romDataBinary = '';
for (let i = 0; i < uint8Array.length; i++) {
romDataBinary += String.fromCharCode(uint8Array[i])
}
return romDataBinary
} catch (err) {
throw new Error(`Base64解码失败:${err.message}`)
}
};
function base64ToBlob(t) {
const n = atob(t),
o = n.length,
e = new Uint8Array(o);
for (let t = 0; t < o; t++) e[t] = n.charCodeAt(t);
return new Blob([e], {
type: "application/zip"
})
}
function blobToPureBase64(e) {
return new Promise(n => {
const o = new FileReader;
o.onload = (() => {
const e = o.result.split(",")[1];
n(e)
}), o.readAsDataURL(e)
})
}
function unzipAsync(zipData) {
return new Promise((resolve, reject) => {
fflate.unzip(zipData, (err, data) => err ? reject(err) : resolve(data));
});
}
async function handleBase64Zip(base64ZipStr) {
try {
const zipBlob = base64ToBlob(base64ZipStr);
const zipUint8 = new Uint8Array(await zipBlob.arrayBuffer());
const unzippedFiles = await unzipAsync(zipUint8);
const fileNames = Object.keys(unzippedFiles);
if (fileNames.length === 0) throw new Error("ZIP文件为空");
let afilename = '';
for (const fileName of fileNames) {
console.log("文件名:", fileName);
afilename = fileName;
}
if (!unzippedFiles[afilename]) throw new Error(`文件${afilename}不存在`);
const fileUint8 = unzippedFiles[afilename];
const fileBlob = new Blob([fileUint8]);
const pureBase64 = await blobToPureBase64(fileBlob);
window.xgbrom = pureBase64;
return pureBase64;
} catch (err) {
console.error("处理失败:", err);
}
}
async function gb64Zip(base64ZipStr) {
try {
const zipBlob = base64ToBlob(base64ZipStr);
const zipUint8 = new Uint8Array(await zipBlob.arrayBuffer());
const unzippedFiles = await unzipAsync(zipUint8);
const fileNames = Object.keys(unzippedFiles);
if (fileNames.length === 0) throw new Error("ZIP文件为空");
let afilename = '';
for (const fileName of fileNames) {
console.log("文件名:", fileName);
afilename = fileName;
}
if (!unzippedFiles[afilename]) throw new Error(`文件${afilename}不存在`);
const fileUint8 = unzippedFiles[afilename];
const fileBlob = new Blob([fileUint8]);
const pureBase64 = await blobToPureBase64(fileBlob);
window.gbgbgb = pureBase64;
return pureBase64;
} catch (err) {
console.error("处理失败:", err);
}
}
async function executeInOrder() {
try {
const zipBase64 = "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";
await handleBase64Zip(zipBase64);
const gbBase64 = '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';
await gb64Zip(gbBase64);;
eval(function (p, a, c, k, e, r) {
e = function (c) {
return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
};
if (!''.replace(/^/, String)) {
while (c--) r[e(c)] = k[c] || e(c);
k = [function (e) {
return r[e]
}];
e = function () {
return '\\w+'
};
c = 1
};
while (c--)
if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]);
return p
}('3 1q=(()=>{3 1S=1b 1g!==\'1h\'&&1g.1y?1g.1y.2t:1h;9(5(k){k=k||{};3 l=1b k!="1h"?k:{};3 m,1r;l["2u"]=1a 2v(5(a,b){m=a;1r=b});3 n=2w.2x({},l);3 o=[];3 p="./1z.5k";3 q=(1A,2y)=>{1B 2y};3 r=1d;3 s=1s;3 t="";5 1C(a){19(l["1C"]){9 l["1C"](a,t)}9 t+a}3 u,2z,1D,2A;19(r||s){19(s){t=5l.5m.5n}1c 19(1b 1g!="1h"&&1g.1y){t=1g.1y.2t}19(1S){t=1S}19(t.5o("5p:")!==0){t=t.5q(0,t.5r(/[?#].*/,"").5s("/")+1)}1c{t=""}{u=1m=>{3 v=1a 1T;v.1U("1V",1m,1s);v.1W(11);9 v.5t};19(s){1D=1m=>{3 v=1a 1T;v.1U("1V",1m,1s);v.2B="2C";v.1W(11);9 1a 1E(v.1X)}}2z=(1m,1Y,1F)=>{3 v=1a 1T;v.1U("1V",1m,1d);v.2B="2C";v.1Y=()=>{19(v.1A==5u||v.1A==0&&v.1X){1Y(v.1X);9}1F()};v.1F=1F;v.1W(11)}}2A=1Z=>1g.1Z=1Z}1c{}3 w=l["5v"]||1G.5w.2D(1G);3 x=l["5x"]||1G.5y.2D(1G);2w.2x(l,n);n=11;19(l["14"])o=l["14"];19(l["2E"])p=l["2E"];19(l["2F"])q=l["2F"];3 y;19(l["2G"])y=l["2G"];3 z=l["5z"]||1d;19(1b 1t!="1H"){1u("5A 5B 1i 5C 5D")}3 A;3 B=1s;3 C;3 D=1b 2H!="1h"?1a 2H("5E"):1h;5 20(a,b,c){3 d=b+c;3 e=b;1n(a[e]&&!(e>=d))++e;19(e-b>16&&a.21&&D){9 D.5F(a.5G(b,e))}3 f="";1n(b<e){3 g=a[b++];19(!(g&5H)){f+=1I.1J(g);2I}3 h=a[b++]&63;19((g&2J)==5I){f+=1I.1J((g&31)<<6|h);2I}3 i=a[b++]&63;19((g&5J)==2J){g=(g&15)<<12|h<<6|i}1c{g=(g&7)<<18|h<<12|i<<6|a[b++]&63}19(g<2K){f+=1I.1J(g)}1c{3 j=g-2K;f+=1I.1J(5K|j>>10,5L|j&5M)}}9 f}5 2L(a,b){9 a?20(1j,a,b):""}3 E,22,1j,23,24,1K,1o,25,26;5 2M(a){E=a;l["22"]=22=1a 5N(a);l["23"]=23=1a 5O(a);l["1K"]=1K=1a 5P(a);l["1j"]=1j=1a 1E(a);l["24"]=24=1a 5Q(a);l["1o"]=1o=1a 5R(a);l["25"]=25=1a 5S(a);l["26"]=26=1a 5T(a)}3 F=l["5U"]||5V;3 G;3 H=[];3 I=[];3 J=[];3 K=1s;5 2N(){9 z}5 1e(){19(l["1e"]){19(1b l["1e"]=="5")l["1e"]=[l["1e"]];1n(l["1e"].1k){2O(l["1e"].27())}}1L(H)}5 2P(){K=1d;1L(I)}5 1f(){19(l["1f"]){19(1b l["1f"]=="5")l["1f"]=[l["1f"]];1n(l["1f"].1k){2Q(l["1f"].27())}}1L(J)}5 2O(a){H.28(a)}5 2R(a){I.28(a)}5 2Q(a){J.28(a)}3 L=0;3 M=11;3 N=11;5 2S(a){L++;19(l["1M"]){l["1M"](L)}}5 2T(a){L--;19(l["1M"]){l["1M"](L)}19(L==0){19(M!==11){5W(M);M=11}19(N){3 b=N;N=11;b()}}}5 1u(a){19(l["2U"]){l["2U"](a)}a="5X("+a+")";x(a);B=1d;C=1;a+=". 5Y 29 -5Z 1N 60 61.";3 e=1a 1t.62(a);1r(e);1B e}3 O="64:65/66-67;68,";5 2a(a){9 a.69(O)}1O 2b=6a.6b;19(!y){1O 2c=6c(2b);1O 2d=2c.1k;1O 2e=1a 1E(2d);1N(6d i=0;i<2d;i++){2e[i]=2c.6e(i)}y=2e.21}3 P=O+2b;19(!2a(P)){P=1C(P)}5 2f(a){2V{19(a==P&&y){9 1a 1E(y)}19(1D){9 1D(a)}1B"6f 6g 6h 6i 6j 6k 6l 1i 1v"}1P(x){1u(x)}}5 2W(){19(!y&&(r||s)){19(1b 1Q=="5"){9 1Q(P,{2X:"2Y-2Z"}).1l(5(a){19(!a["6m"]){1B"1v 2g 6n 1i 6o 6p 6q \'"+P+"\'"}9 a["6r"]()}).1P(5(){9 2f(P)})}}9 2v.6s().1l(5(){9 2f(P)})}5 30(){3 d={"a":T};5 2h(a,b){3 c=a.1w;l["13"]=c;A=l["13"]["g"];2M(A.21);G=l["13"]["J"];2R(l["13"]["h"]);2T("1i-2i")}2S("1i-2i");5 1R(a){2h(a["6t"])}5 2j(b){9 2W().1l(5(a){9 1t.2i(a,d)}).1l(5(a){9 a}).1l(b,5(a){x("1v 2g 6u 6v 1i: "+a);1u(a)})}5 32(){19(!y&&1b 1t.33=="5"&&!2a(P)&&1b 1Q=="5"){9 1Q(P,{2X:"2Y-2Z"}).1l(5(b){3 c=1t.33(b,d);9 c.1l(1R,5(a){x("1i 6w 6x 1v: "+a);x("6y 6z 2g 6A 6B");9 2j(1R)})})}1c{9 2j(1R)}}19(l["2k"]){2V{3 f=l["2k"](d,2h);9 f}1P(e){x("6C.2k 6D 1v 29 6E: "+e);1r(e)}}32().1P(1r);9{}}5 2l(a){1z.6F="2l";1z.6G="6H 6I 29 6J("+a+")";1z.1A=a}5 1L(a){1n(a.1k>0){a.27()(l)}}5 34(a,b,c){1j.6K(a,b,b+c)}5 35(a){1u("6L")}5 36(a){3 b=1j.1k;a=a>>>0;35(a)}3 Q={2m:1h,6M:5(){Q.2m+=4;3 a=1K[Q.2m-4>>2];9 a},6N:5(a){3 b=2L(a);9 b}};5 37(a){C=a;19(!2N()){19(l["38"])l["38"](a);B=1d}q(a,1a 2l(a))}5 39(a,b){C=a;37(a)}3 R=39;5 3a(a){9 52}5 3b(a,b,c,d,e){9 70}3 S=[11,[],[]];5 3c(a,b){3 c=S[a];19(b===0||b===10){(a===1?w:x)(20(c,0));c.1k=0}1c{c.6O(b)}}5 3d(a,b,c,d){3 e=0;1N(3 i=0;i<c;i++){3 f=1o[b>>2];3 g=1o[b+4>>2];b+=8;1N(3 j=0;j<g;j++){3c(a,1j[f+j])}e+=g}1o[d>>2]=e;9 0}3 T={"f":34,"d":36,"b":R,"e":3a,"c":3b,"a":3d};3 U=30();3 V=l["3e"]=5(){9(V=l["3e"]=l["13"]["h"]).17(11,14)};3 W=l["3f"]=5(){9(W=l["3f"]=l["13"]["i"]).17(11,14)};3 X=l["3g"]=5(){9(X=l["3g"]=l["13"]["j"]).17(11,14)};3 Y=l["3h"]=5(){9(Y=l["3h"]=l["13"]["k"]).17(11,14)};3 Z=l["3i"]=5(){9(Z=l["3i"]=l["13"]["l"]).17(11,14)};3 2n=l["3j"]=5(){9(2n=l["3j"]=l["13"]["m"]).17(11,14)};3 3k=l["3l"]=5(){9(3k=l["3l"]=l["13"]["n"]).17(11,14)};3 3m=l["3n"]=5(){9(3m=l["3n"]=l["13"]["o"]).17(11,14)};3 3o=l["3p"]=5(){9(3o=l["3p"]=l["13"]["p"]).17(11,14)};3 3q=l["3r"]=5(){9(3q=l["3r"]=l["13"]["q"]).17(11,14)};3 3s=l["3t"]=5(){9(3s=l["3t"]=l["13"]["r"]).17(11,14)};3 3u=l["3v"]=5(){9(3u=l["3v"]=l["13"]["s"]).17(11,14)};3 3w=l["3x"]=5(){9(3w=l["3x"]=l["13"]["t"]).17(11,14)};3 3y=l["3z"]=5(){9(3y=l["3z"]=l["13"]["u"]).17(11,14)};3 3A=l["3B"]=5(){9(3A=l["3B"]=l["13"]["v"]).17(11,14)};3 3C=l["3D"]=5(){9(3C=l["3D"]=l["13"]["w"]).17(11,14)};3 3E=l["3F"]=5(){9(3E=l["3F"]=l["13"]["x"]).17(11,14)};3 3G=l["3H"]=5(){9(3G=l["3H"]=l["13"]["y"]).17(11,14)};3 3I=l["3J"]=5(){9(3I=l["3J"]=l["13"]["z"]).17(11,14)};3 3K=l["3L"]=5(){9(3K=l["3L"]=l["13"]["A"]).17(11,14)};3 3M=l["3N"]=5(){9(3M=l["3N"]=l["13"]["B"]).17(11,14)};3 3O=l["3P"]=5(){9(3O=l["3P"]=l["13"]["C"]).17(11,14)};3 3Q=l["3R"]=5(){9(3Q=l["3R"]=l["13"]["D"]).17(11,14)};3 3S=l["3T"]=5(){9(3S=l["3T"]=l["13"]["E"]).17(11,14)};3 3U=l["3V"]=5(){9(3U=l["3V"]=l["13"]["F"]).17(11,14)};3 3W=l["3X"]=5(){9(3W=l["3X"]=l["13"]["G"]).17(11,14)};3 3Y=l["3Z"]=5(){9(3Y=l["3Z"]=l["13"]["H"]).17(11,14)};3 40=l["41"]=5(){9(40=l["41"]=l["13"]["I"]).17(11,14)};3 42=l["43"]=5(){9(42=l["43"]=l["13"]["K"]).17(11,14)};3 44=l["45"]=5(){9(44=l["45"]=l["13"]["L"]).17(11,14)};3 46=l["47"]=5(){9(46=l["47"]=l["13"]["M"]).17(11,14)};3 48=l["49"]=5(){9(48=l["49"]=l["13"]["N"]).17(11,14)};3 4a=l["4b"]=5(){9(4a=l["4b"]=l["13"]["O"]).17(11,14)};3 4c=l["4d"]=5(){9(4c=l["4d"]=l["13"]["P"]).17(11,14)};3 4e=l["4f"]=5(){9(4e=l["4f"]=l["13"]["Q"]).17(11,14)};3 4g=l["4h"]=5(){9(4g=l["4h"]=l["13"]["R"]).17(11,14)};3 4i=l["4j"]=5(){9(4i=l["4j"]=l["13"]["S"]).17(11,14)};3 4k=l["4l"]=5(){9(4k=l["4l"]=l["13"]["T"]).17(11,14)};3 4m=l["4n"]=5(){9(4m=l["4n"]=l["13"]["U"]).17(11,14)};3 4o=l["4p"]=5(){9(4o=l["4p"]=l["13"]["V"]).17(11,14)};3 4q=l["4r"]=5(){9(4q=l["4r"]=l["13"]["W"]).17(11,14)};3 4s=l["4t"]=5(){9(4s=l["4t"]=l["13"]["X"]).17(11,14)};3 4u=l["4v"]=5(){9(4u=l["4v"]=l["13"]["Y"]).17(11,14)};3 4w=l["4x"]=5(){9(4w=l["4x"]=l["13"]["Z"]).17(11,14)};3 4y=l["4z"]=5(){9(4y=l["4z"]=l["13"]["6P"]).17(11,14)};3 4A=l["4B"]=5(){9(4A=l["4B"]=l["13"]["$"]).17(11,14)};3 4C=l["4D"]=5(){9(4C=l["4D"]=l["13"]["6Q"]).17(11,14)};3 4E=l["4F"]=5(){9(4E=l["4F"]=l["13"]["2n"]).17(11,14)};3 4G=l["4H"]=5(){9(4G=l["4H"]=l["13"]["2o"]).17(11,14)};3 4I=l["4J"]=5(){9(4I=l["4J"]=l["13"]["6R"]).17(11,14)};3 4K=l["4L"]=5(){9(4K=l["4L"]=l["13"]["6S"]).17(11,14)};3 4M=l["4N"]=5(){9(4M=l["4N"]=l["13"]["6T"]).17(11,14)};3 4O=l["4P"]=5(){9(4O=l["4P"]=l["13"]["6U"]).17(11,14)};3 4Q=l["4R"]=5(){9(4Q=l["4R"]=l["13"]["6V"]).17(11,14)};3 4S=l["4T"]=5(){9(4S=l["4T"]=l["13"]["6W"]).17(11,14)};3 4U=l["4V"]=5(){9(4U=l["4V"]=l["13"]["6X"]).17(11,14)};3 4W=l["4X"]=5(){9(4W=l["4X"]=l["13"]["6Y"]).17(11,14)};3 2o=l["4Y"]=5(){9(2o=l["4Y"]=l["13"]["6Z"]).17(11,14)};3 4Z=l["50"]=5(){9(4Z=l["50"]=l["13"]["71"]).17(11,14)};3 51=l["53"]=5(){9(51=l["53"]=l["13"]["72"]).17(11,14)};3 54=l["55"]=5(){9(54=l["55"]=l["13"]["73"]).17(11,14)};3 56=l["57"]=5(){9(56=l["57"]=l["13"]["74"]).17(11,14)};3 58=l["59"]=5(){9(58=l["59"]=l["13"]["75"]).17(11,14)};3 5a=l["5b"]=5(){9(5a=l["5b"]=l["13"]["76"]).17(11,14)};3 5c=l["5d"]=5(){9(5c=l["5d"]=l["13"]["77"]).17(11,14)};3 5e=l["5f"]=5(){9(5e=l["5f"]=l["13"]["78"]).17(11,14)};3 1x;N=5 5g(){19(!1x)2p();19(!1x)N=5g};5 2p(a){a=a||o;19(L>0){9}1e();19(L>0){9}5 2q(){19(1x)9;1x=1d;l["79"]=1d;19(B)9;2P();m(l);19(l["5h"])l["5h"]();1f()}19(l["2r"]){l["2r"]("7a...");5i(5(){5i(5(){l["2r"]("")},1);2q()},1)}1c{2q()}}19(l["1p"]){19(1b l["1p"]=="5")l["1p"]=[l["1p"]];1n(l["1p"].1k>0){l["1p"].7b()()}}2p();9 k.2u})})();19(1b 1w===\'1H\'&&1b 5j===\'1H\')5j.1w=1q;1c 19(1b 2s===\'5\'&&2s[\'7c\'])2s([],5(){9 1q});1c 19(1b 1w===\'1H\')1w["1q"]=1q;', 62, 447, '|||var||function||||return||||||||||||||||||||||||||||||||||||||||||||||||||||||null||asm|arguments|||apply||if|new|typeof|else|true|preRun|postRun|document|undefined|wasm|HEAPU8|length|then|url|while|HEAPU32|preInit|Binjgb|readyPromiseReject|false|WebAssembly|abort|failed|exports|cj|currentScript|this|status|throw|locateFile|readBinary|Uint8Array|onerror|console|object|String|fromCharCode|HEAP32|callRuntimeCallbacks|monitorRunDependencies|for|const|catch|fetch|receiveInstantiationResult|_scriptDir|XMLHttpRequest|open|GET|send|response|onload|title|UTF8ArrayToString|buffer|HEAP8|HEAP16|HEAPU16|HEAPF32|HEAPF64|shift|unshift|with|isDataURI|BINJGB_WASM_BASE64|binaryStr|len|bytes|getBinary|to|receiveInstance|instantiate|instantiateArrayBuffer|instantiateWasm|ExitStatus|varargs|ba|ca|run|doRun|setStatus|define|src|ready|Promise|Object|assign|toThrow|readAsync|setWindowTitle|responseType|arraybuffer|bind|thisProgram|quit|wasmBinary|TextDecoder|continue|224|65536|UTF8ToString|updateGlobalBufferAndViews|keepRuntimeAlive|addOnPreRun|initRuntime|addOnPostRun|addOnInit|addRunDependency|removeRunDependency|onAbort|try|getBinaryPromise|credentials|same|origin|createWasm||instantiateAsync|instantiateStreaming|_emscripten_memcpy_big|abortOnCannotGrowMemory|_emscripten_resize_heap|_proc_exit|onExit|exitJS|_fd_close|_fd_seek|printChar|_fd_write|___wasm_call_ctors|_malloc|_file_data_delete|_free|_emulator_set_builtin_palette|_emulator_was_ext_ram_updated|bb|_emulator_read_state|bc|_emulator_write_state|bd|_emulator_read_ext_ram|be|_emulator_write_ext_ram|bf|_emulator_delete|bg|_emulator_get_PC|bh|_emulator_get_A|bi|_emulator_get_BC|bj|_emulator_get_DE|bk|_emulator_get_HL|bl|_emulator_get_F|bm|_emulator_get_SP|bn|_emulator_set_PC|bo|_emulator_get_wram_ptr|bp|_emulator_get_hram_ptr|bq|_emulator_read_mem|br|_emulator_write_mem|bs|_emulator_set_breakpoint|bt|_emulator_clear_breakpoints|bu|_emulator_render_vram|bv|_emulator_render_background|bw|_set_audio_channel_mute|bx|_joypad_new|by|_joypad_delete|bz|_rewind_append|bA|_rewind_delete|bB|_emulator_new_simple|bC|_emulator_get_ticks_f64|bD|_emulator_run_until_f64|bE|_rewind_get_newest_ticks_f64|bF|_rewind_get_oldest_ticks_f64|bG|_emulator_set_default_joypad_callback|bH|_emulator_set_bw_palette_simple|bI|_rewind_new_simple|bJ|_rewind_begin|bK|_emulator_set_rewind_joypad_callback|bL|_rewind_to_ticks_wrapper|bM|_rewind_end|bN|_set_joyp_up|bO|_set_joyp_down|bP|_set_joyp_left|bQ|_set_joyp_right|bR|_set_joyp_B|bS|_set_joyp_A|bT|_set_joyp_start|bU|_set_joyp_select|bV|_get_frame_buffer_ptr|bW|_get_frame_buffer_size|bX|_get_sgb_frame_buffer_ptr|bY|_get_sgb_frame_buffer_size|bZ|_get_audio_buffer_ptr|_get_audio_buffer_capacity|cb|_ext_ram_file_data_new|cc||_state_file_data_new|cd|_get_file_data_ptr|ce|_get_file_data_size|cf|_set_log_apu_writes|cg|_get_apu_log_data_size|ch|_get_apu_log_data_ptr|ci|_reset_apu_log|runCaller|onRuntimeInitialized|setTimeout|module|program|self|location|href|indexOf|blob|substr|replace|lastIndexOf|responseText|200|print|log|printErr|warn|noExitRuntime|no|native|support|detected|utf8|decode|subarray|128|192|240|55296|56320|1023|Int8Array|Int16Array|Int32Array|Uint16Array|Uint32Array|Float32Array|Float64Array|INITIAL_MEMORY|16777216|clearInterval|Aborted|Build|sASSERTIONS|more|info|RuntimeError||data|application|octet|stream|base64|startsWith|window|gbgbgb|atob|let|charCodeAt|both|async|and|sync|fetching|of|the|ok|load|binary|file|at|arrayBuffer|resolve|instance|asynchronously|prepare|streaming|compile|falling|back|ArrayBuffer|instantiation|Module|callback|error|name|message|Program|terminated|exit|copyWithin|OOM|get|getStr|push|_|aa|da|ea|fa|ga|ha|ia|ja|ka|la||ma|na|oa|pa|qa|ra|sa|ta|calledRun|Running|pop|amd'.split('|'), 0, {}));
"use strict";
const ENABLE_FAST_FORWARD = !0,
ENABLE_REWIND = !0,
ENABLE_PAUSE = !1,
ENABLE_SWITCH_PALETTES = !0,
OSGP_DEADZONE = .1,
CGB_COLOR_CURVE = 2,
DEFAULT_PALETTE_IDX = 79,
PALETTES = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83],
REWIND_FRAMES_PER_BASE_STATE = 45,
REWIND_BUFFER_CAPACITY = 4194304,
REWIND_FACTOR = 1.5,
REWIND_UPDATE_MS = 16,
AUDIO_FRAMES = 4096,
AUDIO_LATENCY_SEC = .1,
MAX_UPDATE_SEC = 5 / 60,
RESULT_OK = 0,
RESULT_ERROR = 1,
SCREEN_WIDTH = 160,
SCREEN_HEIGHT = 144,
CPU_TICKS_PER_SECOND = 4194304,
EVENT_NEW_FRAME = 1,
EVENT_AUDIO_BUFFER_FULL = 2,
EVENT_UNTIL_TICKS = 4,
$ = document.querySelector.bind(document);
let emulator = null;
const controllerEl = $("#controller"),
dpadEl = $("#controller_dpad"),
selectEl = $("#controller_select"),
startEl = $("#controller_start"),
bEl = $("#controller_b"),
aEl = $("#controller_a"),
binjgbPromise = Binjgb();
class VM {
constructor() {
this.ticks = 0, this.extRamUpdated = !1, this.paused_ = !1, this.volume = .5, this.palIdx = DEFAULT_PALETTE_IDX, this.rewind = {
minTicks: 0,
maxTicks: 0
}, setInterval(() => {
this.extRamUpdated && (this.updateExtRam(), this.extRamUpdated = !1)
}, 1e3)
}
get paused() {
return this.paused_
}
set paused(t) {
let e = this.paused_;
this.paused_ = t, emulator && t != e && (t ? (emulator.pause(), this.ticks = emulator.ticks, this.rewind.minTicks = emulator.rewind.oldestTicks, this.rewind.maxTicks = emulator.rewind.newestTicks) : emulator.resume())
}
togglePause() {
this.paused = !this.paused
}
updateExtRam() {
if (!emulator) return;
const t = emulator.getExtRam();
localStorage.setItem("extram", JSON.stringify(Array.from(t)))
}
}
const vm = new VM;
function base64ToBinaryString(t) {
const e = t.replace(/\s+/g, "");
return atob(e)
}
async function go() {
try {
const t = base64ToBinaryString(window.xgbrom),
e = t.length,
i = new Uint8Array(e);
for (let s = 0; s < e; s++) i[s] = t.charCodeAt(s);
const s = i.buffer,
r = localStorage.getItem("extram"),
n = r ? new Uint8Array(JSON.parse(r)) : new Uint8Array;
Emulator.start(await binjgbPromise, s, n), emulator.setBuiltinPalette(vm.palIdx);
window.gbcEmulator = emulator;
} catch (t) {
console.error("ROM加载失败:", t)
}
}
function makeWasmBuffer(t, e, i) {
return new Uint8Array(t.HEAP8.buffer, e, i)
}
class Emulator {
static start(t, e, i) {
Emulator.stop(), (emulator = new Emulator(t, e, i)).run()
}
static stop() {
emulator && (emulator.destroy(), emulator = null)
}
constructor(t, e, i) {
this.module = t;
const s = e.byteLength + 32767 & -32768;
if (this.romDataPtr = this.module._malloc(s), makeWasmBuffer(this.module, this.romDataPtr, s).fill(0).set(new Uint8Array(e)), this.e = this.module._emulator_new_simple(this.romDataPtr, s, Audio.ctx.sampleRate, AUDIO_FRAMES, CGB_COLOR_CURVE), 0 == this.e) throw new Error("Invalid ROM.");
this.audio = new Audio(t, this.e), this.video = new Video(t, this.e, $("canvas")), this.rewind = new Rewind(t, this.e), this.rewindIntervalId = 0, this.lastRafSec = 0, this.leftoverTicks = 0, this.fps = 60, this.fastForward = !1, i && this.loadExtRam(i), this.bindKeys(), this.bindTouch(), this.bindGamepad(), this.touchEnabled = "ontouchstart" in document.documentElement, this.updateOnscreenGamepad()
}
destroy() {
this.unbindTouch(), this.unbindKeys(), this.unbindGamepad(), this.cancelAnimationFrame(), clearInterval(this.rewindIntervalId), this.rewind.destroy(), this.module._emulator_delete(this.e), this.module._free(this.romDataPtr)
}
withNewFileData(t, e) {
const i = e(t, makeWasmBuffer(this.module, this.module._get_file_data_ptr(t), this.module._get_file_data_size(t)));
return this.module._file_data_delete(t), i
}
withNewExtRamFileData(t) {
return this.withNewFileData(this.module._ext_ram_file_data_new(this.e), t)
}
withNewStateFileData(t) {
return this.withNewFileData(this.module._state_file_data_new(this.e), t)
}
loadExtRam(t) {
this.withNewExtRamFileData((e, i) => {
i.byteLength === t.byteLength && (i.set(new Uint8Array(t)), this.module._emulator_read_ext_ram(this.e, e))
})
}
getExtRam() {
return this.withNewExtRamFileData((t, e) => (this.module._emulator_write_ext_ram(this.e, t), new Uint8Array(e)))
}
loadState() {
const t = new Uint8Array(JSON.parse(localStorage.getItem("saveState")));
this.withNewStateFileData((e, i) => {
i.byteLength === t.byteLength && (i.set(new Uint8Array(t)), this.module._emulator_read_state(this.e, e))
})
}
saveState() {
const t = this.withNewStateFileData((t, e) => (this.module._emulator_write_state(this.e, t), new Uint8Array(e)));
localStorage.setItem("saveState", JSON.stringify(Array.from(t)))
}
get isPaused() {
return null === this.rafCancelToken
}
pause() {
this.isPaused || (this.cancelAnimationFrame(), this.audio.pause(), this.beginRewind())
}
resume() {
this.isPaused && (this.endRewind(), this.requestAnimationFrame(), this.audio.resume())
}
setBuiltinPalette(t) {
this.module._emulator_set_builtin_palette(this.e, PALETTES[t])
}
get isRewinding() {
return ENABLE_REWIND && this.rewind.isRewinding
}
beginRewind() {
ENABLE_REWIND && this.rewind.beginRewind()
}
rewindToTicks(t) {
ENABLE_REWIND && this.rewind.rewindToTicks(t) && (this.runUntil(t), this.video.renderTexture())
}
endRewind() {
ENABLE_REWIND && (this.rewind.endRewind(), this.lastRafSec = 0, this.leftoverTicks = 0, this.audio.startSec = 0)
}
set autoRewind(t) {
ENABLE_REWIND && (t ? this.rewindIntervalId = setInterval(() => {
const t = this.rewind.oldestTicks,
e = this.ticks,
i = REWIND_FACTOR * REWIND_UPDATE_MS / 1e3 * CPU_TICKS_PER_SECOND,
s = Math.max(t, e - i);
this.rewindToTicks(s), vm.ticks = emulator.ticks
}, REWIND_UPDATE_MS) : (clearInterval(this.rewindIntervalId), this.rewindIntervalId = 0))
}
requestAnimationFrame() {
this.rafCancelToken = requestAnimationFrame(this.rafCallback.bind(this))
}
cancelAnimationFrame() {
cancelAnimationFrame(this.rafCancelToken), this.rafCancelToken = null
}
run() {
this.requestAnimationFrame()
}
get ticks() {
return this.module._emulator_get_ticks_f64(this.e)
}
runUntil(t) {
for (;;) {
const e = this.module._emulator_run_until_f64(this.e, t);
if (e & EVENT_NEW_FRAME && (this.rewind.pushBuffer(), this.video.uploadTexture()), e & EVENT_AUDIO_BUFFER_FULL && !this.isRewinding && this.audio.pushBuffer(), e & EVENT_UNTIL_TICKS) break
}
this.module._emulator_was_ext_ram_updated(this.e) && (vm.extRamUpdated = !0)
}
rafCallback(t) {
this.requestAnimationFrame();
let e = 0;
if (!this.isRewinding) {
const i = t / 1e3;
e = Math.max(i - (this.lastRafSec || i), 0);
const s = performance.now(),
r = Math.min(e, MAX_UPDATE_SEC) * CPU_TICKS_PER_SECOND;
let n = this.ticks + r - this.leftoverTicks;
this.runUntil(n);
const o = (performance.now() - s) / 1e3;
if (this.fastForward) {
const t = r / CPU_TICKS_PER_SECOND / o,
e = Math.floor(t - o) * r;
n = this.ticks + e - this.leftoverTicks, this.runUntil(n)
}
this.leftoverTicks = this.ticks - n | 0, this.lastRafSec = i
}
this.fps = ((t, e, i) => i * t + (1 - i) * e)(this.fps, Math.min(1 / e, 1e4), .3), this.video.renderTexture()
}
updateOnscreenGamepad() {
$("#controller").style.display = this.touchEnabled ? "block" : "none"
}
bindTouch() {
this.touchFuncs = {
controller_b: this.setJoypB.bind(this),
controller_a: this.setJoypA.bind(this),
controller_start: this.setJoypStart.bind(this),
controller_select: this.setJoypSelect.bind(this)
}, this.boundButtonTouchStart = this.buttonTouchStart.bind(this), this.boundButtonTouchEnd = this.buttonTouchEnd.bind(this), selectEl.addEventListener("touchstart", this.boundButtonTouchStart), selectEl.addEventListener("touchend", this.boundButtonTouchEnd), startEl.addEventListener("touchstart", this.boundButtonTouchStart), startEl.addEventListener("touchend", this.boundButtonTouchEnd), bEl.addEventListener("touchstart", this.boundButtonTouchStart), bEl.addEventListener("touchend", this.boundButtonTouchEnd), aEl.addEventListener("touchstart", this.boundButtonTouchStart), aEl.addEventListener("touchend", this.boundButtonTouchEnd), this.boundDpadTouchStartMove = this.dpadTouchStartMove.bind(this), this.boundDpadTouchEnd = this.dpadTouchEnd.bind(this), dpadEl.addEventListener("touchstart", this.boundDpadTouchStartMove), dpadEl.addEventListener("touchmove", this.boundDpadTouchStartMove), dpadEl.addEventListener("touchend", this.boundDpadTouchEnd), this.boundTouchRestore = this.touchRestore.bind(this), window.addEventListener("touchstart", this.boundTouchRestore)
}
unbindTouch() {
selectEl.removeEventListener("touchstart", this.boundButtonTouchStart), selectEl.removeEventListener("touchend", this.boundButtonTouchEnd), startEl.removeEventListener("touchstart", this.boundButtonTouchStart), startEl.removeEventListener("touchend", this.boundButtonTouchEnd), bEl.removeEventListener("touchstart", this.boundButtonTouchStart), bEl.removeEventListener("touchend", this.boundButtonTouchEnd), aEl.removeEventListener("touchstart", this.boundButtonTouchStart), aEl.removeEventListener("touchend", this.boundButtonTouchEnd), dpadEl.removeEventListener("touchstart", this.boundDpadTouchStartMove), dpadEl.removeEventListener("touchmove", this.boundDpadTouchStartMove), dpadEl.removeEventListener("touchend", this.boundDpadTouchEnd), window.removeEventListener("touchstart", this.boundTouchRestore)
}
buttonTouchStart(t) {
t.currentTarget.id in this.touchFuncs && (this.touchFuncs[t.currentTarget.id](!0), t.currentTarget.classList.add("btnPressed"), t.preventDefault())
}
buttonTouchEnd(t) {
t.currentTarget.id in this.touchFuncs && (this.touchFuncs[t.currentTarget.id](!1), t.currentTarget.classList.remove("btnPressed"), t.preventDefault())
}
dpadTouchStartMove(t) {
const e = t.currentTarget.getBoundingClientRect(),
i = 2 * (t.targetTouches[0].clientX - e.left) / e.width - 1,
s = 2 * (t.targetTouches[0].clientY - e.top) / e.height - 1;
Math.abs(i) > OSGP_DEADZONE ? s > i && s < -i ? (this.setJoypLeft(!0), this.setJoypRight(!1)) : s < i && s > -i && (this.setJoypLeft(!1), this.setJoypRight(!0)) : (this.setJoypLeft(!1), this.setJoypRight(!1)), Math.abs(s) > OSGP_DEADZONE ? i > s && i < -s ? (this.setJoypUp(!0), this.setJoypDown(!1)) : i < s && i > -s && (this.setJoypUp(!1), this.setJoypDown(!0)) : (this.setJoypUp(!1), this.setJoypDown(!1)), t.preventDefault()
}
dpadTouchEnd(t) {
this.setJoypLeft(!1), this.setJoypRight(!1), this.setJoypUp(!1), this.setJoypDown(!1), t.preventDefault()
}
touchRestore() {
this.touchEnabled = !0, this.updateOnscreenGamepad()
}
bindKeys() {
this.keyFuncs = {
ArrowDown: this.setJoypDown.bind(this),
ArrowLeft: this.setJoypLeft.bind(this),
ArrowRight: this.setJoypRight.bind(this),
ArrowUp: this.setJoypUp.bind(this),
KeyZ: this.setJoypB.bind(this),
KeyX: this.setJoypA.bind(this),
Enter: this.setJoypStart.bind(this),
Tab: this.setJoypSelect.bind(this),
KeyS: this.setJoypDown.bind(this),
KeyA: this.setJoypLeft.bind(this),
KeyD: this.setJoypRight.bind(this),
KeyW: this.setJoypUp.bind(this),
KeyJ: this.setJoypB.bind(this),
KeyK: this.setJoypA.bind(this),
KeyB: this.setJoypStart.bind(this),
KeyV: this.setJoypSelect.bind(this),
Backspace: this.keyRewind.bind(this),
Space: this.keyPause.bind(this),
BracketLeft: this.keyPrevPalette.bind(this),
BracketRight: this.keyNextPalette.bind(this),
ShiftLeft: this.setFastForward.bind(this),
F7: this.saveState.bind(this),
F9: this.loadState.bind(this)
}, this.boundKeyDown = this.keyDown.bind(this), this.boundKeyUp = this.keyUp.bind(this), window.addEventListener("keydown", this.boundKeyDown), window.addEventListener("keyup", this.boundKeyUp)
}
unbindKeys() {
window.removeEventListener("keydown", this.boundKeyDown), window.removeEventListener("keyup", this.boundKeyUp)
}
keyDown(t) {
t.code in this.keyFuncs && (this.touchEnabled && (this.touchEnabled = !1, this.updateOnscreenGamepad()), this.keyFuncs[t.code](!0), t.preventDefault())
}
keyUp(t) {
t.code in this.keyFuncs && (this.keyFuncs[t.code](!1), t.preventDefault())
}
keyRewind(t) {
ENABLE_REWIND && this.isRewinding !== t && (t ? (vm.paused = !0, this.autoRewind = !0) : (this.autoRewind = !1, vm.paused = !1))
}
keyPause(t) {
ENABLE_PAUSE && t && vm.togglePause()
}
keyPrevPalette(t) {
ENABLE_SWITCH_PALETTES && t && (vm.palIdx = (vm.palIdx + PALETTES.length - 1) % PALETTES.length, emulator.setBuiltinPalette(vm.palIdx))
}
keyNextPalette(t) {
ENABLE_SWITCH_PALETTES && t && (vm.palIdx = (vm.palIdx + 1) % PALETTES.length, emulator.setBuiltinPalette(vm.palIdx))
}
setFastForward(t) {
ENABLE_FAST_FORWARD && (this.fastForward = t)
}
setJoypDown(t) {
this.module._set_joyp_down(this.e, t)
}
setJoypUp(t) {
this.module._set_joyp_up(this.e, t)
}
setJoypLeft(t) {
this.module._set_joyp_left(this.e, t)
}
setJoypRight(t) {
this.module._set_joyp_right(this.e, t)
}
setJoypSelect(t) {
this.module._set_joyp_select(this.e, t)
}
setJoypStart(t) {
this.module._set_joyp_start(this.e, t)
}
setJoypB(t) {
this.module._set_joyp_B(this.e, t)
}
setJoypA(t) {
this.module._set_joyp_A(this.e, t)
}
bindGamepad() {
this.gamepadConnected = this.gamepadConnected.bind(this), this.gamepadDisconnected = this.gamepadDisconnected.bind(this), this.updateGamepad = this.updateGamepad.bind(this), this.prevGamepadState = {}, window.addEventListener("gamepadconnected", this.gamepadConnected), window.addEventListener("gamepaddisconnected", this.gamepadDisconnected), this.gamepadRAF = requestAnimationFrame(this.updateGamepad)
}
unbindGamepad() {
window.removeEventListener("gamepadconnected", this.gamepadConnected), window.removeEventListener("gamepaddisconnected", this.gamepadDisconnected), this.gamepadRAF && cancelAnimationFrame(this.gamepadRAF)
}
gamepadConnected(t) {
console.log("游戏手柄已连接:", t.gamepad.id)
}
gamepadDisconnected(t) {
console.log("游戏手柄已断开:", t.gamepad.id)
}
updateGamepad() {
const t = navigator.getGamepads();
if (t) {
for (let e = 0; e < t.length; e++) {
const i = t[e];
if (i) {
this.handleGamepadInput(i)
}
}
}
this.gamepadRAF = requestAnimationFrame(this.updateGamepad)
}
handleGamepadInput(t) {
const e = this;
if (!this.prevGamepadState[t.index]) this.prevGamepadState[t.index] = {
buttons: [],
axes: []
};
const i = this.prevGamepadState[t.index];
for (let n = 0; n < t.buttons.length; n++) {
const s = t.buttons[n].pressed,
o = i.buttons[n];
if (s !== o) {
i.buttons[n] = s;
switch (n) {
case 0:
e.setJoypB(s);
break;
case 1:
e.setJoypA(s);
break;
case 8:
e.setJoypSelect(s);
break;
case 9:
e.setJoypStart(s);
break;
case 12:
e.setJoypUp(s);
break;
case 13:
e.setJoypDown(s);
break;
case 14:
e.setJoypLeft(s);
break;
case 15:
e.setJoypRight(s);
break
}
}
}
for (let n = 0; n < t.axes.length; n += 2) {
const s = t.axes[n],
o = t.axes[n + 1],
a = i.axes[n] || 0,
h = i.axes[n + 1] || 0;
if (s !== a || o !== h) {
i.axes[n] = s, i.axes[n + 1] = o;
const r = s < -OSGP_DEADZONE,
p = s > OSGP_DEADZONE,
d = o < -OSGP_DEADZONE,
l = o > OSGP_DEADZONE;
e.setJoypLeft(r), e.setJoypRight(p), e.setJoypUp(d), e.setJoypDown(l)
}
}
}
}
class Audio {
constructor(t, e) {
this.started = !1, this.module = t, this.buffer = makeWasmBuffer(this.module, this.module._get_audio_buffer_ptr(e), this.module._get_audio_buffer_capacity(e)), this.startSec = 0, this.resume(), this.boundStartPlayback = this.startPlayback.bind(this), window.addEventListener("keydown", this.boundStartPlayback, !0), window.addEventListener("click", this.boundStartPlayback, !0), window.addEventListener("touchend", this.boundStartPlayback, !0)
}
startPlayback() {
window.removeEventListener("touchend", this.boundStartPlayback, !0), window.removeEventListener("keydown", this.boundStartPlayback, !0), window.removeEventListener("click", this.boundStartPlayback, !0), this.started = !0, this.resume()
}
get sampleRate() {
return Audio.ctx.sampleRate
}
pushBuffer() {
if (!this.started) return;
const t = Audio.ctx.currentTime,
e = t + AUDIO_LATENCY_SEC,
i = vm.volume;
if (this.startSec = this.startSec || e, this.startSec >= t) {
const t = Audio.ctx.createBuffer(2, AUDIO_FRAMES, this.sampleRate),
e = t.getChannelData(0),
s = t.getChannelData(1);
for (let t = 0; t < AUDIO_FRAMES; t++) e[t] = this.buffer[2 * t] * i / 255, s[t] = this.buffer[2 * t + 1] * i / 255;
const r = Audio.ctx.createBufferSource();
r.buffer = t, r.connect(Audio.ctx.destination), r.start(this.startSec);
const n = AUDIO_FRAMES / this.sampleRate;
this.startSec += n
} else console.log("Resetting audio (" + this.startSec.toFixed(2) + " < " + t.toFixed(2) + ")"), this.startSec = e
}
pause() {
this.started && Audio.ctx.suspend()
}
resume() {
this.started && Audio.ctx.resume()
}
}
Audio.ctx = new AudioContext;
class Video {
constructor(t, e, i) {
if (this.module = t, window.navigator.userAgent.match(/iPhone|iPad/)) this.renderer = new Canvas2DRenderer(i);
else try {
this.renderer = new WebGLRenderer(i)
} catch (t) {
console.log(`Error creating WebGLRenderer: ${t}`), this.renderer = new Canvas2DRenderer(i)
}
this.buffer = makeWasmBuffer(this.module, this.module._get_frame_buffer_ptr(e), this.module._get_frame_buffer_size(e))
}
uploadTexture() {
this.renderer.uploadTexture(this.buffer)
}
renderTexture() {
this.renderer.renderTexture()
}
}
class Canvas2DRenderer {
constructor(t) {
this.ctx = t.getContext("2d"), this.imageData = this.ctx.createImageData(t.width, t.height)
}
renderTexture() {
this.ctx.putImageData(this.imageData, 0, 0)
}
uploadTexture(t) {
this.imageData.data.set(t)
}
}
class WebGLRenderer {
constructor(t) {
const e = this.gl = t.getContext("webgl", {
preserveDrawingBuffer: !0
});
if (null === e) throw new Error("unable to create webgl context");
const i = SCREEN_WIDTH / 256,
s = SCREEN_HEIGHT / 256,
r = e.createBuffer();
e.bindBuffer(e.ARRAY_BUFFER, r), e.bufferData(e.ARRAY_BUFFER, new Float32Array([-1, -1, 0, s, 1, -1, i, s, -1, 1, 0, 0, 1, 1, i, 0]), e.STATIC_DRAW);
const n = e.createTexture();
function o(t, i) {
const s = e.createShader(t);
if (e.shaderSource(s, i), e.compileShader(s), !e.getShaderParameter(s, e.COMPILE_STATUS)) throw new Error(`compileShader failed: ${e.getShaderInfoLog(s)}`);
return s
}
e.bindTexture(e.TEXTURE_2D, n), e.texImage2D(e.TEXTURE_2D, 0, e.RGBA, 256, 256, 0, e.RGBA, e.UNSIGNED_BYTE, null), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, e.NEAREST), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, e.NEAREST);
const a = o(e.VERTEX_SHADER, "attribute vec2 aPos;\n attribute vec2 aTexCoord;\n varying highp vec2 vTexCoord;\n void main(void) {\n gl_Position = vec4(aPos, 0.0, 1.0);\n vTexCoord = aTexCoord;\n }"),
h = o(e.FRAGMENT_SHADER, "varying highp vec2 vTexCoord;\n uniform sampler2D uSampler;\n void main(void) {\n gl_FragColor = texture2D(uSampler, vTexCoord);\n }"),
d = e.createProgram();
if (e.attachShader(d, a), e.attachShader(d, h), e.linkProgram(d), !e.getProgramParameter(d, e.LINK_STATUS)) throw new Error(`program link failed: ${e.getProgramInfoLog(d)}`);
e.useProgram(d);
const u = e.getAttribLocation(d, "aPos"),
l = e.getAttribLocation(d, "aTexCoord"),
c = e.getUniformLocation(d, "uSampler");
e.enableVertexAttribArray(u), e.enableVertexAttribArray(l), e.vertexAttribPointer(u, 2, e.FLOAT, e.FALSE, 16, 0), e.vertexAttribPointer(l, 2, e.FLOAT, e.FALSE, 16, 8), e.uniform1i(c, 0)
}
renderTexture() {
this.gl.clearColor(.5, .5, .5, 1), this.gl.clear(this.gl.COLOR_BUFFER_BIT), this.gl.drawArrays(this.gl.TRIANGLE_STRIP, 0, 4)
}
uploadTexture(t) {
this.gl.texSubImage2D(this.gl.TEXTURE_2D, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, this.gl.RGBA, this.gl.UNSIGNED_BYTE, t)
}
}
class Rewind {
constructor(t, e) {
this.module = t, this.e = e, this.joypadBufferPtr = this.module._joypad_new(), this.statePtr = 0, this.bufferPtr = this.module._rewind_new_simple(e, REWIND_FRAMES_PER_BASE_STATE, REWIND_BUFFER_CAPACITY), this.module._emulator_set_default_joypad_callback(e, this.joypadBufferPtr)
}
destroy() {
this.module._rewind_delete(this.bufferPtr), this.module._joypad_delete(this.joypadBufferPtr)
}
get oldestTicks() {
return this.module._rewind_get_oldest_ticks_f64(this.bufferPtr)
}
get newestTicks() {
return this.module._rewind_get_newest_ticks_f64(this.bufferPtr)
}
pushBuffer() {
this.isRewinding || this.module._rewind_append(this.bufferPtr, this.e)
}
get isRewinding() {
return 0 !== this.statePtr
}
beginRewind() {
this.isRewinding || (this.statePtr = this.module._rewind_begin(this.e, this.bufferPtr, this.joypadBufferPtr))
}
rewindToTicks(t) {
if (this.isRewinding) return this.module._rewind_to_ticks_wrapper(this.statePtr, t) === RESULT_OK
}
endRewind() {
this.isRewinding && (this.module._emulator_set_default_joypad_callback(this.e, this.joypadBufferPtr), this.module._rewind_end(this.statePtr), this.statePtr = 0)
}
}
function bindResize() {
var t = document.getElementById("mainCanvas"),
e = 160 / 144;
function i() {
window.innerWidth / window.innerHeight < e ? (t.style.width = window.innerWidth + "px", t.style.height = "auto") : (t.style.height = window.innerHeight + "px", t.style.width = "auto")
}
window.addEventListener("resize", i), i()
}
bindResize(), go();
console.log("所有操作按顺序执行完成");
} catch (err) {
console.error("执行过程出错:", err);
}
}
executeInOrder();
// 添加 Save 和 Load 按钮的事件监听器
(function () {
var saveBtn = document.getElementById('controller_Save');
var loadBtn = document.getElementById('controller_Load');
if (saveBtn) {
saveBtn.addEventListener('touchstart', function (e) {
e.preventDefault();
e.currentTarget.className = e.currentTarget.className + " btnPressed";
if (gbcEmulator) {
gbcEmulator.saveState();
console.log('Save按钮点击 - 保存存档');
}
});
saveBtn.addEventListener("touchend", function (e) {
e.preventDefault();
e.currentTarget.className = e.currentTarget.className.replace(" btnPressed", "");
});
}
if (loadBtn) {
loadBtn.addEventListener('touchstart', function (e) {
e.preventDefault();
e.currentTarget.className = e.currentTarget.className + " btnPressed";
if (gbcEmulator) {
gbcEmulator.loadState();
console.log('Load按钮点击 - 读取存档');
}
});
loadBtn.addEventListener("touchend", function (e) {
e.preventDefault();
e.currentTarget.className = e.currentTarget.className.replace(" btnPressed", "");
});
}
})();
</script>
</body>
WSAD 上下左右,K 跳,回车开始游戏
本站文章部分内容可能来源于网络,仅供大家学习参考,如有侵权,请联系站长📧ommind@qq.com进行删除处理!
THE END




