From dac822b0df1f22bd44ba41fb9e6c00c38bb7b7fd Mon Sep 17 00:00:00 2001 From: Eyal Gruss Date: Sun, 15 Dec 2024 21:59:53 +0200 Subject: [PATCH] gameboy cleanup + snippet, fix arabic, snark/petri fixes --- resen/fonts/ReadexPro-Arabic-300.woff2 | Bin 0 -> 23688 bytes resen/fonts/ReadexPro-Arabic-Regular.woff2 | Bin 22620 -> 0 bytes resen/kaddish/style.css | 2 +- resen/petri/script.js | 28 +- resen/petri/style.css | 2 +- resen/psychosophy/index.html | 26 +- resen/psychosophy/style.css | 34 +- resen/seasons/index.html | 2 +- resen/snark/index.html | 8 +- resen/snark/script.js | 38 +- resen/snark/style.css | 20 +- resen/style.css | 36 +- resen/taase/index.html | 2 +- resen/talismetta/index.html | 2 - resen/talismother/index.html | 2 +- resen/water/index.html | 22 +- resen/water/style.css | 12 +- .../assets/Assistant-VariableFont_wght.ttf | Bin 79660 -> 0 bytes resen/zag/assets/Assistant_OFL.txt | 95 -- resen/zag/{ => binjgb}/README.md | 0 resen/zag/{ => binjgb}/binjgb.js | 0 resen/zag/{ => binjgb}/binjgb.wasm | Bin resen/zag/css/style_keyboard_controls.css | 1259 --------------- resen/zag/imgs/logo.png | Bin 456 -> 0 bytes resen/zag/index.html | 39 +- resen/zag/index_keyboard_controls.html | 102 -- resen/zag/js/additions.js | 18 - resen/zag/js/script_keyboard_controls.js | 1424 ----------------- resen/zag/{rom => }/kmeot_zag.gb | Bin resen/zag/{js => }/script.js | 217 +-- resen/zag/snippet | Bin 100737 -> 38665 bytes resen/zag/{css => }/style.css | 10 +- styles/index.css | 4 +- styles/whom.css | 4 +- 34 files changed, 177 insertions(+), 3231 deletions(-) create mode 100644 resen/fonts/ReadexPro-Arabic-300.woff2 delete mode 100644 resen/fonts/ReadexPro-Arabic-Regular.woff2 delete mode 100644 resen/zag/assets/Assistant-VariableFont_wght.ttf delete mode 100644 resen/zag/assets/Assistant_OFL.txt rename resen/zag/{ => binjgb}/README.md (100%) rename resen/zag/{ => binjgb}/binjgb.js (100%) rename resen/zag/{ => binjgb}/binjgb.wasm (100%) delete mode 100644 resen/zag/css/style_keyboard_controls.css delete mode 100644 resen/zag/imgs/logo.png delete mode 100644 resen/zag/index_keyboard_controls.html delete mode 100644 resen/zag/js/additions.js delete mode 100644 resen/zag/js/script_keyboard_controls.js rename resen/zag/{rom => }/kmeot_zag.gb (100%) rename resen/zag/{js => }/script.js (84%) rename resen/zag/{css => }/style.css (98%) diff --git a/resen/fonts/ReadexPro-Arabic-300.woff2 b/resen/fonts/ReadexPro-Arabic-300.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6d3b0b92e56f3a6b9d2d8d945e3689f3ee5c5e54 GIT binary patch literal 23688 zcmV)AK*YayPew8T0RR9109=Rw5C8xG0N0EF09+&h0RR9100000000000000000000 z0000Qf)E?j1RRxk24Fu^R6$fg0ET=K2nvDx7=g?j3x{w30X7081CLw;AO(d02cBjO z2OEyM7tq@VT_AS>sHJp!z1a%n<~7or2?1&RmQhj8NZYdi|4&Iy#wbP!PE9Mje~3!3 zf-6iEWTjk{HMB$`6Frd`v(^@?42OXW4qa%NnSJ3#Yoe;mKCpO_`7BH+NK|6Bi6Du* zHqkV5Ol^lR4uz|{m;VNBCw#?huaJ)Upod!2IQp;+9k>gT`xcphGMW1FprT0oht68# zb-Y%%qv>-aiA&nJ*zbg|g?UEOMPS^*N7bAcBB-m1$m;D`NIv5U^Gjm#=lQw)x$nJ2 z0%IFB#u#G^7*Qi4t)$X~RuKykvoXICWufArMO5JP74!R%C@a4r%JBT!d=?UYTyRmz zRsDt>vTzkqBW0@ z7>i}lXa?!AZ#x{|d+xn!y=+mgYUK%6(tS0uwno+wD4HV2lsE;N0?h}?!O|RLFU4n)4Qmeu z$#ujE$obO206DR(9lG=D@r4fAYJhC9k`226npE!eE6QM`(U<+3lXcfM=^SWF9<6=7bZyMaNDBZfJk{P7 zcA+169KxX7)>;MA(|<{`#3qE`C?B%J2pq-*M^@oZpFW|o(DsBj2eFk@QwkdvI&9~HfK#ogETaAWUBeV=NC=1K1tZ)w>=Qme5_N2bw&d`B*dt75xjfkqK zh=_>(`&=zuopocmH6;}p(>d|t$1vucP4}O*1O>SYaRg85&MzPYqY&tOBs zhk}fVCJe+H>j6T5G!2^7bTN=Yu`T8Mz-EtE8dfn@Api3q&^(9*^1O;LHridm-e+MD z`_q8bOb=$2_rQw;-1-b0uTD@*P+`mR2+>I0gKxU8xFCAeL z$KJX~<3SJa!sXX#N9;oJm-zj=vHXG5BKuqF6N3m4%Sr}R9}WY?azRk){<|RJt^Z;` zYm-!wO+wK9sO~Snt|Fj13o()C(W#YEom%D2D{;g=k(s$ep#m}TWDvWQgcUe@j;dYTp@c<47!oE%b~YkI6&oIBCX@&ma;B+6s;F%iZ`XAE?x8(t7r6X z-F%_v)M|0BroBz?ng6p=EE)Ey8-H8SZ_xx^&EZvRKHPAzK}9?mZ*KR}p2pnBvpeXystWAFnS^06KEe%Oe*?ep>g9H*Rp!0;quZ;QRD)&NU5l4`T@S_?!m7x4_ z;>heV5BRwVebAG=)2&vz&b2Q0d6)Qz!M+RI;lc}46gba)?(A_35nczDfdK((5fj8 zV?w~l5R3py$rw)3upR_#0s@=j3qIC+_byxa*v>}D4RSfFTz`S5d5j0Ri$&bXwe0^` zDMg&L`DO|!h!*OMl9;qKC&;B3Rss1|RniA0h(AaWfiZ>wJV#$m5$Lhovg_y!O4(bX zL>+2Tj`JwN5$wyb!ze@nMjrYcGO9Y!0#n_5b|8f~f_3#H2#J|$!g7}HoZ?T`rV?^n zL#pq<199caCnr~9@O?e;!`JYN&Z$lOb8}M7(uk)WakK2ju5@(lSfy)J{->oF z%F1Y_r#ynZ;XlLM2CB?-PeuxIb{F8YTjJ^W z--BBwEyJC8Hpt!9kkh+H*L)%Z0EFh9qg1&mq|i1R|&;NaW512%MvyWgMarlU}i3 z0yKj3YKmfQD(TY@D?!!z294|MI+;l|$Vdlm&Rs zo>>NaX<68vv+G!%Y>B&4*9G~Maq+rEWDveQ7sW#7brl7-j(9P1j zgG-zESkH+U!_tfKd}qyIoa>T9b8wf)7+d1 zKx4Y6?#?-D7jnH#547ymoCOf2s7kyuV_xaij^ey&l7PJq5Kj|>#1OW!6&5V1W=Jw% z(o4XIO#MLp#Nj0`ji34`tVjb@2ksp~fCd^Q@|G>(+}nakU@v?24j^?5WY3R#Oc@u& z9OY_dp0$$7tm;!iB<6JhBPR9pvTm(TQbI~iT4|XL*KH)`F#(FS%Wh6`!gN*uip1Ot zU~{=!tZC&{<%ft#aC#;{m^@_NavxpuquABv=Kw;O#Vo~Jl}@atpic(@)KHT*?TbbMcR?!L4^V4CGYwH0AXcN zgTx%xiYM@-Dnh|Q0#3Gy`j|cqRgV!Z8z~3{Iepz?^XI^%Xm&U$Fi@ocEU>_U@>CXp zOYtYMO*{kWFW@6slF4#@1njE13~l#(RFwDi)as`C5Xl#>Vl{q_DcX( z+9iL5_BsL`l6=@-VBgsnpM8Y4$FE{gt+Ez)vA~G!mkFR5d+iyjXn&&jwBQ0fq(JaD zpXzVu9=HP?t+h4Xt1p@~>*zqXnY{LL!;aq|7ylAL+@&s%8lC-O-<|sc@X>g%T>Ki~ z1;A5h9sz6yd%*7c^p^fAkA(K=b+9Y!qR-C3TjO{-ZOSq}WU0rQ3^rEzf-Jk`CzFhj zNhLWPWj9%7GK{bFWt~63pn}z&f(}-b00O9W^cyB-#QxfQr^DQ~cIIMdk9(zV1 z^DCc!{N6)N8lU{!;X^eprFf`z8fNiTL#u#4(` zEOQeSg;(T7EA}IjD|CaHxrM&B8-sONz)SUL*nAFznc76{-OnR%w6+$hm|hxmW*2+h zIaH8eLEq-w$$*R9Ko74tQ-`a*tJ5GZ(ofeK+@$g7%F~GI3DW+ns4$}DF|6wIkQLP` zIR}}3v*O@w{WbxMJ!<)=4y)tN$QEp zzVe{YjC+a;#O~3UMv&I%hv>8Z!v+FYwB)wCz^-DrQ^fgq^1;=2z}{2 z_BHDZFGGA43HNO|rQ`=qGsfz2TplVav>scbIFRMt-OKS}I8tDbk*}|rn{o8qr~s(- zdw6VOcZV?c!Ln~D98E8nn5^g#u!+v=V=}70kpWZ7KaOe?u-dRe+}Hy*)XJHLknee#v)PlpATh-uCLdRKM@d?d;|UM#s@EN>T&FB*J&3Qm+?&1BLF+6} zwBx3iT4cUeO{M_(xusI7L`Sq-H3|z6y?DHEdE`A>_SKk*$59!=esFQ`Ra)(7kAWeC zUe^T~Q2oT|9x|9{C})Km*iB{Bm@uR1l1u`29O-iARZBj6I`}+51XEkD+FC4yomp3X zq|4=N!TpegSqV+?^vz0jY_|HF%&EQ>^J;6FB~7nSq#Z4~S$aRNB^Hs`CS6N%yF5h- zq}efiKa`oD%H}W)GY&HEF0~3!ExoRx*QXfiVj5lqnV11d3?XGi z#+dv$(nBs)T!kBV9z1#R<;P!uKtY0q2o)(xv>37C#7pRsA2UDcfnonx@FG|ddklnx zAt@s=#^mqH@P7Dt<`Y`L>)6g-mu#u9{sV#CH3i(t>z1F=FJy_4h-rAl3`iJ~G9qKV zEw_@~C8rbH;%!Dz8ULRNU;)?w4uA`=0$2lV0JeW15MU2*05}4i0KN>$8B_y!06stf z5CTL1F+c*415|*!O!}oVuXe{>;s_FBNb7!2h4 zN>#uun~!p4;?fu~+o4Q^DhO+~^pKdzh=EB+AiHwOAUZdL8mH-5e65ZE4NXA!gq23f zB!F`$N2DCri>)$Vq?!E7#Tf)VJ~xG7>}AEF&~NNaiI<=Z2sYcQ(Ad~c$dC-#@{+AI zSS1tqh+wJ|AVD%Y;u(_nw5Wy zP?8>_zUQl9YYgVOS9}Hz!ILYl>|Rl*GRexe`?-XeFj8M*@Q4|ZFeGI}#+aO84vxlI zQQJY1=#)1YZYFN)$XZVZ!<2g0jKU8PP`0A{ldV_3{&N|lrmaBTFo^?jedK_8{;y;n zFP!HsDHr#VXAjQ5m!i|l| z9Bbm36UUf1dOi*6P|#dM0CaQ~a5-m#j?ezpL%*5?5F6GVpP!;+=-`8>X=}QED*ItN z{-N6m<(GZ`fx0SBeQK*VtSGuGdM&VlK4S;QdNF{ZE=a&tkVTl(C*T3jyn?%0%McS7a<=yoHvLkH>}d`cijPNn5|(cAvVfe~gMoG^>5O|}^jNFo4EEr-I8qklzqBZV-E6Kts{ZK*KL z^vx*N!@5`pYca&^FTO&=hsKCvX2dPM%K=A}IImQtT9;jOgHp40ox1eu^VACiMof5Z z*az~vNq+)VLS#fmbi_m)`(D1yY_i2x+ibVfeutfO&P5e!Tyn*Aw=`*U$9;c$=!t*5 zG;G`}?|kyjPrprDAQGY=8e$-|G}BIy5Yh(%lH|lY(YDtipMJt~LAh#;T6MUm#{-W& z*Kf#}w?6vnhp8~6f_M4O^vKHcK~cla$_WSOo?Xa+B0(ou~GM+u)K= zgIgW1;Fk339k|)?GH!Cb%CGY>)lGwhWFk-ztYbu&;w$*F=@OL*w=*?@U|401wG-*4 z^?s!d)wb=hrRhvK9;BGBH?J5Qs*l0!@)4MwJ^`~EgooBX|G^Jbj{M%v@16_<-t4;9 zzHnXFx7ZFl;;3Ve`^LAv^SvMZ=qEq>#s7i;Bto;N%Jj^yo>>9|`}!6P>7)@SzLct& z7K~xon9X=3U}*r^$((-e3?^|3lha=!%}gfPfi%UkAe@I472uqweO}gaFGqxh& zI8J@R`tneX+KN$B92FRXaUGHALYxHn4?vn5Q+(5#%!$h9%33P_lf%D^zjPJ<{Lk*w z?q%+CoL?x6n@GRk8hZa-Y8qH`1(TLZGZs0l+^2D1HE<0ciIFK+k^xsQwO6 z(G~y&Sl%j!%hveTz~D3BklUb!I7wD`$8d)1W+HVjLvwRd!?a>YIGEg#Zs_4 z9Br{4A?4#%{T4?qC%~|zY+TykBSF*|HaIU0VP$v%mV5S)bGVC#(h-(nl$^1o!x6!i zb_z+#K9G|z(Yb<>$w9Y{f@Bw2uFmT9QQE5tvB-C0dZgYXjWQCmM8p*`_+1mJ$&f*5 zg9IQ#3Oz*}`=XSR5@sv(*&v@5bmXa*?7sQzw+p|@K?wKzrVVIAV1vj$N#r^jvJ`^{ z6%(~qMtvG1Ly$JSK@L^1`;NiFFtyqMWlfNShWjeG`D=~nBR4fI4v?L$U0pkB_#9b z`M%%pDUsF(`gcupDKz1?iU6na7bNSkc%NG0s^b z*3>Z1KEN3}B))(3jwxjw{qDjC$cV6KFxp;{%25hIQi%N|Fr92wg8$X|Xtd=%grM%Nn{HCSyP7$bvX*v>tMbMKSrSF!UT&e+t=Z}Kq(eUj( zf0xBNmGCSvz|-E7KsqtMk9(!@OgE5Qb$xS@sVBcj(?I@t69w0$TFbI`Haw}nRjPb> zj4I7%3F314B{y=J-GMT%S(qo20F@)hhE#Iu z&gwms?{;jyNY!8JpoApf<(3PucF4lOU*rTNqAf)Ph5r&H=z2Nc(hx{y8x0rt%R27g zE#_f^cR6c2e&_MUTF#bC>9oocO}K%WM%GtzrU$j{28>;7v)8w&mzY<5UED~+iPfI_ z;9B81K_sv!AI1=qlg3Hv8CJ`P8Y5OA!N9x4JZM2d-NUk z#+YHAL!2U-?1r^7p#s`{2Lbt4oK!@+v1u!hDfEs}XMr*7;s~$QMCU`9@3P`3P5Dx| z-9zFyO^|HDLPNQzFF7jg(=Sh6m#5UePgOZQg*&0WcBzS7dp$S15M|Ji!@q?3X6&~_^G+R3ReK@Dfor~C z>>Hc`h4_i@qB$r>m>Nk*2&r}I&{&NJ2AbzeDp#s#l>iu9T0-s9^b`(;A7I6WtFp7+ z4lWT5ckJztX$Ih*nUy(Nma{cgmiLmy`#8o}O{0lGqX8tNdi9+p|4v)`x8)bbS?yh+i= zd4|S3j8p0) z;p6HOb{5-$7IbU0Mi;V@mp0k3P)(W zD3-6(6kep9jeOH@>}a!UGeR^xrKZ7P;$Zk+eeG)AGC5Xh1=2kfgaJ_N==`VkV0|$Y zTJ28=m1l&9PWmLG+^Iraj=%^diUs{*%xHV4RT*xM2}6$6*Av*x=WR&?Z<>riGa1t4 zc97}z@TI8QIP=BAmLxN4?=2N329T?kSKQ5Q+TBE?^_grd!)#ghi9YT5u}k1;mne^f z=v^5rOe_yWDNu$cgh_AREGi3{v;m7cHdv92s}Eo~o`jvKs!!7?EvhEESQ4DMF`_4o=7OhINAHGSDdS71AwwEB9(BV1oCPQL8Lo4 z%Rvk_isi0NT&w_*>XiYtZg*rUOL9CMzwuTcI{^YoG@=>W)8?=j00#0|Ha zk2xm`7`4s2%4wC(c%Lc=-?&d?5BaYsqwUP0JAqEs?wngir^UlA(u+;Z<`RAAdS+Q> z4$pDYVz@Ip3-YaS7@+a9r3RmMcJ3aXpArQJ>xEButh)0<`gRwgJ12D7GE)E1dV}Mf z_O}_y#M?wqsg;Zm>^dZMTG;fuGZrMH zyBCf-kydWURSZ-SXmHhLs1l+7-7SUXEJn(BPDI`a(!K;-MRpPG-;{ z@ntC3B@-5s9M=;bs1G!x>LPVq9lgCiZJnYsR*Q~>B39_vXXq-^jB%GUuNP!^G`v^V zy-hMeivh2ut{8_bCx=JpA#u6?fiwAqOb{H?<$yU2d*?MiIhR?0K&6$8Sy-U&!#8j^2y4Ig;rc~wF!x?thHI?!kTw*sVs&(*$$a{-FZj=~)+YZ}0 zFR{os8cVd~Y7gB(J4taxx1YL~v}9`uoTs~Bep8tw zenoah+|HImRfuO7>0r@|gh(Wy3dnafB*_rj6p)fgl_;Fo#9p*81vvZwR%kQ2MTBO| ztFEs#v@%R%F^2Nk8|q2+FAQ%w29KuNl7WV3iH|h0M171eYiSA)FhTJMkR%JykD1VITl^4c; zGVu*qOgfeZLT7~0S|D6$83XyquZSr>6uIZpq<&k>1+-+%xBC9(yNr|%*K@Bnd_=ET zYtn6YuTl}%WqMm%sxw$hHd^s#qSY+C>dU~(AXwuo8lOq`DJDGy;xHka(d!BiEA4{L z?RSEko*%fsKsznE4kfA7R2sdIt@X3Kc96;OSHLcxgy>EK2ititK-_-#83u|6rQx@X zQ%XX*Kuh-pZLsuExg)1}kSrzx*OdYB z>ROsN#2G#gg@@Okz8D-w3Xb1{%ra(!2~Hu7)%+E6GhdRl$cNO8u?<_$6bAX?UA|At#$8-j+OBo zpSVANSxP6lW4a^khh5ep4*h%a-Rp%Nt}D)ayN4h4oVtjN z{{JBBEw4OJF&fNU&l1G{8B?cO=70PBDu*;Gi1rlukGw`XM?_#M0wxWQt#F3!Q6cJ+ zkni@BrDFTdR`$jSXi^f*NuJ23GC4cYlnaeGk6wgY828kD8tkr0j%K_CaGmYB z_Un4o%uUL}NI5fs%(Wsg5)3&o&e!--z6uSp0s)({ka?<_8s&T+LV9(LyXz2j139FA zUU{}%VbIs}yfC-PpyxNiNCRJ|2$MdcdIcq~J`C8G7UX5X;{Ir)R|uSxfpG@hl>#;L z5dy411Ka_x$vem$^n!ad`Wv*_U!pdDIf2Z3i|&wan&;Jfr|ndbL)-jhaQ^d270VX2 zipFlnEyDKgvm6r6+Z~iK8p%1WntLk1&pyMQ(Lemz<5Afki%t$qneOYaywJH{O}!A9 z5}nxNQ3S?4uS8#VP7dh=Mb%(g7CfR#Rm%D<-}v_BIe^6%0{W}^+N;AmDc7i!ZSr;F79nv})bq)Jg`Fe+-3TJ2k?nz!hV zZ#eAFZS=Q5lQOXEWlgzKnbK>O>2kH^<;_37$cWscvwpKOUj(aSCdVy;i7~c7;=dy_ zDe?NWT3ut*t83F*{nf(6X;rZJbuK);f`s)W<00R=u=zB+2;ZG23KFb;!ZQ$}7k( z$n|c}O$y9}ppn4oz#+Y&DydfMD%6T9{UPLZz%?=g0X}D};_R)Zzn9y@IKOe_F(x0!IX>bl2dT(ZY>PXet6|0voxf1(mOgDDr%@;3%f)Qul zjK(jG=vh^n{h41FfA^6;P^ST9VFz|~^-o^eNAAk}O?Rt-!R46k>pjQ={So`wHxRHs zt#BFjvH<6oqBq-QW1b_E?eu1J5dCc)L*{!(>j5Vd(nYBYifXV*!Be6v!1=3iZ=1p-cB5Q}Sv?>?V>+=* z>nk}ck?)bZw^O!eD~93jbXtZ2e#^{GDCks$m6A%GPFxXIsFgv5xI(8FR|J*7ga-Gy zY{Pz^ZMYAD9UaQ2&ta9%lQnULtU{-gS0+?yN-wJXKz6qZ7|=Z3kafr(unu=a5XVz` zTth-nLw-b7-WRFboH(LQ8B~fY4F*wVP^D6ZRpOLECr*WxKuCeQAj>dP#;UQp5?q-g zCerx2m3T(29j;M-d-Ftt#vjtO5$7Xe^PDc13sU$M!g6hyFz#0F1-QaLnbF}g}!)&8fV5YqId&zs5c!9btx`=e_ygXS& zh1_5X#RgvFJt(jxE}~n$=h8KgUjCX?jCpcjJI=~3X*>r>ARwM7YhmP#Jxfx=Wg&qm zV(eYlq_ajj5^o=58}bKi!_y%bWjAs9R^?={9e!Y9);Mfwx`w3+%Ow?hy+pl+I;wO? zdzVEOz<&gB{krdHkRj9ug}f@a9Wg10)|Gqci#Cj4!mO+kFrS6wv6tYl;c(aR_^YMZ z*MMKL0Dx$_s&Cg)5Sfevxj2)b3n?x9va}pQfSViGc6ef}Ft6q1+#iu237`HO!i6B> z=Sx4}U?HHN|5}i~pCWV+ukOqbzS1U{OVs&9oV3S`7!ZTgL~ZCx<6)oCV|3|gjSEuP zAaJpe?qBz94Kd{%z=q}2nsRV@P)lrx$`aHF2f1GAmnJ9#?3rs5UE0 zRtaZU5G|N=5mWN#M6Blc-08Y1wiA-#EjB30R;l6)i;Z4^nR3ExULji~w0oFBbwDai z8nxn7x!Nl5kb<#(3&VqA>1x@KOR|PKxaZQGvgDTZ>%WbF(Ho0SMLA-3m(x7t_nU`1 zA*U?KF(^utHp^(~8Rd$R-z;>vc?V>s;RQ)t+B;HpZ4hey5v;?LaPhl5MnX zEbBN!P)8J!)31}1LrAR($@3dqS`ku!r~U0fWH)TbvE1E|Wyl|}40k~g$Bo~v5n;gr z_|9X3G9VXM==Bs6P^eU4C1_edCMNpx3D~@BeV&uaFS@ZF6~1vHkK!(O5ar-|maSEs zV|XjTP~b;iyk1OO|Jg)t%1wtJ{HraHSi?*e6GFXE@w($~Ar8Oo?JrSzuaN2Z7 z$`v`qwCtsh7;8zwB}}VLvdW}#|6b=zCs?;0S^xH%Ubh!ar0F73Vank|w17F1ULw*9TS~m##~S*O%9*<~aJ+V;Kw#&8XDSx6-A>*!?El2lCv5f|srWxY_O{>ik@?2&xI}~Q=r7n} z=5j_!EQ=qugTOHIBLW_Ze|G;vcO%-;g-`{V2m@Ww`sQjOq5ki&9uz{8S2o~X9enQ_ z@T*fG#wgqSzleCtCa=mxWwfU-?1+#PTl6EQ53dW(XAS$g&hj|*YQYOPx2>n)FlnN|H z3z#Lvj=k2*E>KMbHig_>WUewOx_m_|9`A0|W)@~Du{DB_RUf5Ue!|MtQ(+2J1#7tS+XieiLMcbEczJDa#9!>9+_K&%Y60t%>pUB zxwjD&ERoEg0x_1cy=KdNMq^RS@9A4$0r%+V-e>1j%`3Ve6!IRLQ7_4 zK+I(v9yajB86kvI3&p6)I z=nT%B5+n6HO*-ui&y2NYopD?LlI_b7$YID6l(|JUW$aeOynLdy-H%aZP3cpn_)98I z&CS=rXG0}Fkya9#FB=zW?XEpvnaA+iFbEX%egft5V0ns>sePcJ)w2l#zfS;aQSU`p zJ`Yx;7@3OuzBqa8!(RBS$uT0)m6cih7i}FKq3Fu$SrvS17-TdB2!j{3pirxOzL2he z&i18R?O1Q4E34GDGmM5*cQ}vsqg@taKlEtY{sNcXmbFDKRa1U3mbGKmZ#t28+=Jw# zL6*=tO#K5@M~rQ`Q#|gh0am5_I>pUZnUP^m(lo6=VmcQ?MKapIwiQ&DDMBiZDw>v< z1VNOXa{V^ldf8K*2J*g1LP32$>^_qR7(+zTU$3=;z~Z zRZ`99Wz; z_jAuOJ|g81?NTR!$8!+mL>rgS3$A(~FOI+v&pvs1>88u)doe%6p0fXBQ9m%!=!W;H z>`d2VY{Obd!paTqTHMKh+J21PotAI3WH+#Y`S}V0(%65Gkr;oBJQHSqqx%0mZPXttQyUhy63ep5&@4UyvjY^rvyUnCvUFQT&&Q z{SEFPhG2G>>CaxGaF?4AP~fpw~uaX~I@n-vl@t zmF0mWMXvIu73xN5GIL@!ogA^TDC%o;;hlqe<9smDOZXA_@u5(yI)1iD{HYY(lG*vf zhCJdIn9_anGBvOsfCr!5x>2^{GKKWE1xCI3x^dPkp8oAg@0`nCJx6vXr)Mu*J;A3K z94>DsSxlPSi5>&x-Ba|ZALK{__(kNP`Vg|a&a-H-4cLPQ;lbRhrk9WH6?pkpF<8LQ@7RVK| zHZ^3}nCUQ`{h-k+uR>t6u|Uyz%jAin>@A#S`F%pN;G5|S9E#WQ#1BOw0`$+iWk-r8 z!V_tCVoX;O`m8T6x1RZLZq;qPI)8T2XvW&X9#FdD$i-_*-)k;Bc|Ypx$01YeIQRM2 z0obP(w5-6LJgKnZiV3Xs@(|AD`RNI6GCY|f8>CtbJb6<}N{)PTY6shr^;a1-NAey_ zjDd1NOcgm@9pXodLRpb}g)M&I2&|Dwzs<1=Eo`pJuN60CEoJ)y-U2tUseDr%{CxHm zHzo+S)@PSf9Dh`RU#z81LKamN~%%75yGkwT{*MR7bdre7Y9*P z3*CtBJT0ZI_uP;rfioL_OBzxs8y`Auwk0s%5|a~ z6n3fY-~zab+D+oDfawaaL`^OI!63y3oLPM*w*Z?VcsQi6cR5TmKN>5=lA#>*p@#e}NJ z(pRpM#Q~_V#YzEj+f^nxZfBlsbowXcipA}dY1PvCQq_@-P`0*Y zcF91KzQRYLZc4z!uQX6C(u~QulZ6!9I|;1T(u8w!J2B{|D`-?J?etUQjh-?-spT{!uunvzk}QW~qV7@eVo~We zafX#|<;cFp(n!{=F=2P!!6!2NlN8`4@DuNPJ0(9?YEc!p6a_)oTis z;V+mZ^^wCq#~L6w;;B~nu?v#eK8nevfkd9aK2Qr}R)7X6oHHewxmh^>V4F5#^4UzDnKdAsC#9SLr=)G+9|!Rh1X<*%r)e>kHJZ+qyR2 z`vTXI8DqCMDw{T0aOF9MF46h2-xzL0tJIg}!(gVl#qz(0JE%oAB47vde0yhK$2@pM zWu=fHEvP+Ua=Wb-#KL%wM4rk_BT2g2&6;+Amwh92faF*>gIa^sFxX_`IR^Y96Fiv< z4sL+!tguB%n6rDMy4Nn^ctl!FtX69F6;JiXGrd!TX0^s6g@u-E80D-&@)W8t<`~H) z)RjdW6xIyD^OOEag;aWOoyEXrS@fJbgNh3MDDv9t$`q|01Fcmb3W$WFfXEP{wHiFi z*4i?V7V?JT*elZ2@M>>LC`ft1SB)DYTa;Ur(Q_Msuz5rI_MHQ+ATPU3fik(-Yt-0n zdR%`{uq)xmij5UgdBR|nRmC)FW4uh<=m0WWxHo3l)6+w;tqO;x=Q2bG-SMgoqocAi zo=E<&3EUS~?i&r1I8HXQ_n)I9N(3bH?oEB*Q;*`ACC9n6`%2rl9}(=~G*6>XNt6*a zC6_FD4p;p7e>)yRhi*DYoB6 z(ISL8N)1SC=C(E?Si8thDA&I40W`1HS54ypHhsIy-uGV!iNrF$Py~xbd^f}wm;RHG zZ05^`ys(t{SoI|No?>m#>6+|LYgdm2kTH3jVYV`pY8EynX@gr1`?%A`t_$Nt4^re@ z{<(+DH`JMQ%@&uTr`2L}iy#3HmWlXYr%)*N2zXwxgon6=Ak}Ea(SGld4@paa2(z}S zOcfd$uQR5nmXBPesmh`?GQ9y!9J1q~My8FbXqQK3=AZRaGd=t=b48od>JdTotxV1e zh%OdF^c@_=Hi$0palWL{sPwNmoOkF{8ucCUkn`>VR_jd{iL0;G>l#f?Q^z#3T^^-d z%*>dKIF5BPBkL<)P#Q&U9v2dcxE_cn<~w*CmqfsEIryM1OX!er!YVa8;t-2Ob}=iW zR`MvK_U7O8okZ8)8P>E z#0Plzm0EhDqU@LwT+AZw^Ka|a71Iw;@HOP3zoz~(n08~W^3_Oh!;Op1Ecs_rI%XH3 z7Y3?4Crgj+{Gax8rnc_v@i(9SS^-KjOP?`aBX?q0A5+K+=_OgUH?hxLR-LRVoIm{2 zpER2IEt)Rq0EaX6j=0N2P5&SwJrpm$EJU+KHeh{q_gRkoo`{K?D6B9&oGm+E` zs;H}NhQ?K&saDHCZ8l>kg+#12XJ5q;`8KVL=DkfU&Hgg`Nv(iHSy@QvE5+54NFiKl zAO29O5RDPx@I)+H2##cuCQ3#>6O?c%`gymFt+?x1*fn&6BMzCU=^v@jk&^^cf<)*i z5tD%OU=03n3|!AT(_USadur;*g}joNv1lxxguioX9@vsexK1K`Te=?z{CBvF3ZEao z4Z57pnutXlmuVESDyc~lq1w%}^lbShI`8z)bV}pDZgEZ~o%k*u_Z^;e9bft$=ph;f z;-}8s23Gb4L-<1;Oc@n+{qtr-7 z=cEqB5*V`3LLZ)x+{LfGR=Dx8Tl{aM9{uMve8wfZT0hHfj!>nhDybr-kxAlVOHEE^ zbOqsDDd8*$|9&a{b-ahO(>7MBsiza>9L8T-EMS z=c{Jpd+=(WvGuCiWCoJ#(t4$rZd`Dq3HKob#{Iwm_FoWf1So%bk9dJ{$~)-=)lP%k z0Ax3Z;5k36SU&ehn`PBBch}XyfsQL3UZA}hpiawR`{lA-<#!HfZaw_ugpmi9x~Uvg zhJi^{+Rb2TL^v5Q{&1Y`7EMU&WN`k(LK&=`kQTb>uK|nJY(a5yNjdyv_&_92l~ zsU3w(1MAKSC4sMD_@UvsX3X{%4M5RgczytL>?Om)VOabW=hBfdzy5sc*qMjh3-hI$ za&P3J4g;TGes4Pp@?{%|Z|9;9VLOm^k^cRt2Go`9y*g>{-3Log<}JAl7AQX0!_40y z!Hb)e331niPbm|Uo(aJ8CVoQFF#(*}8(*rbty3(EbopOcxp3Uo6<#2!j>@OIT- zMY%#w`(+8CXi?(a|0cQ_LLnsN1l4j{t=S)wD5)z3%DK2*uv#0j5~(kW-1vHZ*weSz zRM~RK+}~&3S?%Tb1;V`oj{q)k5{lpCN6EfC0*()fWd0f=CyO-qKZd}g6V_@KMqm>h zx_9>dbN~LXUaC+8D}@G;mppV~gYAxl-FB9Sp%%=BPQ32wn_ZLT?bF#CEuKKPkNoR< zCZtR%@y5A2MTBK>^6N&NBkX2f1kt6*fMTN;s-r4t%3#%0Hz*zC@xZRH#xu7<=+6Is z+07)%c#8#Z_eD0b#R6A^qhr~M7Eaq+@`Z^gxyvmE3vYBVAhf|%NZ1L{8lQ6fD2R2q zRa(Urt1Nt8u_>{67SCFub;-DXJNL~G>znIKNsDH7F}3H*`4RyX<$$6Lc%HhZMm-OP z)pKiV=c!@uTyxe&$3xr zd?J1R#T$0CG-YlVheD!uvqdy56lxcncm2~W=9DA}07I5$gR!wBQy(pQvm{J^!U#&X z5)I$VLt<%ACIi`4$>rf(h6h=>p4G5i*nRk39eoLna)|2urFr;*5~D5YG{= zo+J`aULg=Z-$f#xxC(sD&$yof5qH@IbOuTgi-oN}kU7d;IClPe2KBq6z+Wa*MgB*n6S7k{7Z zh{o-z^U1I>8S&kxK6#c#d+rI9^5i)h?b#=F=oiL62i@H13!;=kVp#Z8w0GCu zVmqDm^G}~u;cW$59*!n*$gV=u4P^`~Cg{HDC*z2gbHR&9>ETMtD$9Rqa{0EyG9P$s zTy32XJb|8qUr=q9cLn&5_e0=^((Cq{cA%Q(0XvwNC{I2vpI;?CmrQ;G6z}c7+5Z~P zU-h^k|C8AT1+zcNm)`tf=KPl7m)SraVZUU*`0Q6!P|Gf>yCSZ;s%d)11P-$lW zL)Haq><~EoC1{n*&D$h`>0+zRWV71zVvhwKsZVT^(U-PulxTd9E6*LTwtb^x=`HP^ zxS765+O80?D%(QVg0H+LF0DTsdiNZqEqB*#MVzhxLDX#C6Sh#FUAzS=n(T~digGi8w0b|wx(XXT#jZO`H_t0gd zokS=g47bj=<*?4vn2$0d`C)Xfd_QFYs;C7Njvo8ZS^*f|*+m~`qM$DNO%pS_8nY^Y z_K{Bu=wm$A){^3uqC0w?oh{BknothjukGE!c|uEVgM%2r*EC*lI@sGpq3mCc!B3CfOH{OB=tHk?aH|MS(OwWMB8-({ zUnAhJmg2sA{}I4`Rhn;n9Gskuzf$@~ox1UzgjZ9Iu*q_*dw6DWkyQ+SE+LHLssy|D zcYrB!f6bGX1K|1UP4BNQPr#!3&$?S}-L0R^@#DbHq|VKE@Wk=Q1k$Z>BL1D5<2b<6 z%ERHF;?Mvv4gLKsi!L*-ouJ7!@=Ct{@79X!0=-a8TD=_bV)4QiT>D_yJ9vHQ_=x>u zi%DjFO7NcUyr`(~P~l}uqeSS`5NP<{HD3VqrisMk*pgF3;xSywsZa6O+{o7nr0s9;Zos&* zEpe=cVf*w3AbmGtuORr_D}JW!SSvX62Me{nx_||LUCB)A`_iw@gRtP|L+N*0<}W=- zpwk7rmi8WgAN+HaaPu0TbnO;_cWtt^kA2#bNVtm;%7XGf+E@p5L0Ak1ElN z*Re3GvDp61LOV)_Z(jyTU+`Lu7L5OZRx}!dvHz&yIomC;C86bAHy4vWO z#k9LKJMEVD?A^!`j&F3FY@;*W&L_qxY%tY^5`Io8z~^VqO4%WHiR>**eJBK*dX z^8ObG|S>WkZH%mQO*u4tE8i=5aRMwg?cZEeVOUwg~`2EnVXjjk;tD`;qVMtlf2Ty`W&>TF5dOo}qmzfugv@5g6M?*@3 zF@4fxh8ID{P%vVab+eqT-dbfcVI=cqs@pLY58knLe#zSn<`?_;lrX|`)Vv*TLleidj7 zwF6+Lb_A${{k<&ABX>?ay62XHau+L*0=U-M+s47lT}O?R)ts&4Vm((IpU7^Oi|!uW z$u-h!Mey@Sb zr5AyUszVp|z4WZs17XvucJ=otkATKDH5q6*ctdZ>DWHPaM^e6DwtQ8WOY4CQFY}i+ za-Wr*uyqqpWi%*W`*56D+=ko*MKQ1D+rGGC%6y_vnGZ)H2L3sq`9H#=?Z zfXZvBxFJ{0A+HN1DS1BOw~8`ueGwhFL277z%H8Na26gqpG##eJ=m;puGj&$h+{SEq zo1{6;s78scRW;>rwpOtLciQy<++%8Q0!9kBk0b*pB174@3wPrl{5S5!ef;@y;$gcF zIn56IjVl?KL zQc^;CQ6ih08x?INKy4Mm>hcr~d2Zwh5PF3+HHTl}W!M?aDhsPSNzs&vE%LG{R7qG} zoEo)J;)4aiF1jNLw(-?v+|`PvX( zV`Y^V9d}QvF)hidkyrjgalTTZ5;avA#bOkTz!%4XuJ9qdGtep^Mvt|nIH#4<0sX*24RRL=M?XsA zlK6s2JnD=4q7rB!)q;9+2&j<4^Ap@>&23El5+klhlGp@^TATm4HIaEvbI$B9nG^Dw1<4TbFd-byuk7SydxcMIn;) zSMSQ_1`ys<{rs4_Q&#;u zvt=yj+sSQFoV&2O`R5|mC25^D>{=XmZsStD@bjh-tCkd49lr* z#<95VMlw?aRQ666D<2Lim7*vfS1SfGO?lZj%wBA#6Tki4VtqLH+RQA;b2U5Xrd2d) z#@xoZDP!j@JdR!V0VeG0vzGu6n`a!G>Yc@!xwA(9BL#+jh?lOU3HY;o=_8y{nf`lN zU-VoJzfK~lBHmCZCnw_i<32xyio1#x>$5*5D1{-rL??3|qeorIaEdNM0But z$%4&5$BOTuu*8)sr31YCJIUh2OOCvHPK^>p(<2@82?XH4Pxl98P1P!f|7YU(1OV@R zloAENhd*r8^tNXqsj!p+D1!ljK*K0mlm@wW3*xW0VE>E&vME8M?{{y3$0-u#7&bkd zi12S1&s=YoAjF>b=)?Z@I-ZD`CbCiDvSQw(F!?E?*aR719m12?%!)bGGgQE_H+2<@ z5fjcRkz8~TjlE)??bdbJGG~^{!;t4-nL*s6Ynx^Kr-Tevg8KwqD#`}(ntJj#$wU(eS^ttiQ}J1Yy1VE z2v2=k>lq$)n4o3x0cN$rnfJ){m7(Y6S&d@*Y#DBGbjl(uO%IRazy&U-BX#jAWl9mX zsf2r+v08GfEf9brQ#BOOR!b^k<`$AESN1h}_&kp4KV)Mn&amdn6sgL+goO*ER>N*Oh$^U8SI7DeW2e)RkT|Ossa3ZeT}Hu zWSLdg*<_ntitKa9F{hk!$u+m!^T?VldybqzxpL>p8yu1^e}RI93KuC_tayo%l~++^ zsj5mhC+)1QuKKTQtf}T&YOSqlwbxN+U3J$}Z`0eF-qqhggAFy@%qEzz9pyx=dEURg;6+O< zv)l?Rt+Lu0YrW)Uub|#AH8mUkTRH??^_q2FZ{K-$lg+l+YMbreZsz&F-|1cNc^{>( zzWH7kxZU>nx4r)310UMwBh;v%OQ-_DIbvtE*@^`j4)-4W1l68$*_EE*g#nYLqPX$U z?zXG0sdHVKa*djhp!*yHG>R13uGkKn`jPrV4bf~rR4HLfdb%W&}*{^={yZ`&cpHBMADS!LN=`k=rA63&0)3P0pSGqnw%kgoD z-A16gcf%!-Ps#ldhRi-+MxE;IuXZdZaxBw7{c$WS0=PPr)K z;2zNyMD?4vBiZ3YZpb!0h{0u>LK0vIB`G8ziw+4zg(NW;oLH;tIC(ED0TyaU?_OC8 zoG}U+a)>hqR}JmZ!Kz)OJQ`x$g-{&u6-}e7XxbHcCcs!6o`ANwxgo#+0z{(F z7%XnY7k+CEafKtRTkZ4J*Rknm)L%RvY<=5TSSPk^{O;S*G2Z>^s<_jM9_4oW*wNfQ zC;zza5ruy3Mv>bqRBkM6thc*w?I*fZeGY{#dPf(dm(P`U zkIddr^!U2#N~QGQcg0fw^XKLJ!pHi#)q3oimf7E2=y{SDGs-;$s#opQC%k+FQ=XmkDPkb>svn&TU=m!P r{{O$&1j>{`JVpQ?{%?AVfSmvUf-VDd literal 0 HcmV?d00001 diff --git a/resen/fonts/ReadexPro-Arabic-Regular.woff2 b/resen/fonts/ReadexPro-Arabic-Regular.woff2 deleted file mode 100644 index b0b2beef7887688040a0e816012ee7ba567ceb28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22620 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 P=TQMV`TsRb<#7N2rkPbD diff --git a/resen/kaddish/style.css b/resen/kaddish/style.css index 715cc96..33bfeb6 100644 --- a/resen/kaddish/style.css +++ b/resen/kaddish/style.css @@ -1,6 +1,6 @@ @font-face { - font-family: ktiv; font-display: block; + font-family: ktiv; src: url('fonts/OHSagiIdan-Regular.woff2'); } diff --git a/resen/petri/script.js b/resen/petri/script.js index 00734d0..ec8c3b8 100644 --- a/resen/petri/script.js +++ b/resen/petri/script.js @@ -201,11 +201,11 @@ function arrows(inside, outside, clue) { [inside, outside, inside_arrow, outside_arrow] = [outside, inside, outside_arrow, inside_arrow] const inside_top = inside / 2 | 0 const outside_top = outside / 2 + .5 | 0 - let arrows = outside_arrow.repeat(outside_top) + inside_arrow.repeat(inside_top) + (is_hor && (inside+outside) % 2 == 0 ? '\n' : '') + inside_arrow.repeat(inside - inside_top) + outside_arrow.repeat(outside - outside_top) + let result_arrows = outside_arrow.repeat(outside_top) + inside_arrow.repeat(inside_top) + (is_hor && (inside+outside) % 2 == 0 ? '\n' : '') + inside_arrow.repeat(inside - inside_top) + outside_arrow.repeat(outside - outside_top) if (is_hor) - return arrows - arrows = arrows.trim().split('\n') - return [...arrows[0]].map((_, c) => arrows.map(row => row[c])).map(c => c.join(' ')).join('\n') + return result_arrows + result_arrows = result_arrows.trim().split('\n') + return [...result_arrows[0]].map((_, c) => result_arrows.map(row => row[c])).map(c => c.join(' ')).join('\n') } function step(grid, json, steps=0, max_tokens={}, result_counter={}, reset_counter=0, tokens) { @@ -256,23 +256,23 @@ function step(grid, json, steps=0, max_tokens={}, result_counter={}, reset_count const out = json.transitions[elem.dataset.id][1].filter(p => p == place).length const pelem = grid.querySelector(`[data-id="${place}"]`) if (inp + out) - if (elem.parentElement.children[index - cols - 1] == pelem && index % cols && inp + out == 1) + if (elems[index - cols - 1] == pelem && index % cols && inp + out == 1) ts = inp ? 1 : -1 - else if (elem.parentElement.children[index - cols + 1] == pelem && (index+1) % cols && inp + out == 1) + else if (elems[index - cols + 1] == pelem && (index+1) % cols && inp + out == 1) te = inp ? 1 : -1 - else if (elem.parentElement.children[index + cols - 1] == pelem && index % cols && inp + out == 1) + else if (elems[index + cols - 1] == pelem && index % cols && inp + out == 1) bs = inp ? 1 : -1 - else if (elem.parentElement.children[index + cols + 1] == pelem && (index+1) % cols && inp + out == 1) + else if (elems[index + cols + 1] == pelem && (index+1) % cols && inp + out == 1) be = inp ? 1 : -1 else if (is_vertical(grid, elem.dataset.id)) { if (elem.previousSibling == pelem && index % cols) elem.dataset.before = arrows(inp, out, label) else if (elem.nextSibling == pelem && (index+1) % cols) elem.dataset.after = arrows(out, inp, label) - else if (elem.parentElement.children[index - cols] == pelem) - elem.parentElement.children[index - cols].dataset.after = arrows(inp, out) - else if (elem.parentElement.children[index + cols] == pelem) - elem.parentElement.children[index + cols].dataset.before = arrows(out, inp, 1) + else if (elems[index - cols] == pelem) + elems[index - cols].dataset.after = arrows(inp, out) + else if (elems[index + cols] == pelem) + elems[index + cols].dataset.before = arrows(out, inp, 1) else missing_arrows.push([elem, pelem, inp, out]) } else if (!comp) @@ -280,9 +280,9 @@ function step(grid, json, steps=0, max_tokens={}, result_counter={}, reset_count elem.previousSibling.firstChild.dataset.after = arrows(inp, out, '') else if (elem.nextSibling == pelem && (index+1) % cols) elem.nextSibling.firstChild.dataset.before = arrows(out, inp, '') - else if (elem.parentElement.children[index - cols] == pelem) + else if (elems[index - cols] == pelem) elem.dataset.before = arrows(inp, out, 1) - else if (elem.parentElement.children[index + cols] == pelem) + else if (elems[index + cols] == pelem) elem.dataset.after = arrows(out, inp) else missing_arrows.push([elem, pelem, inp, out]) diff --git a/resen/petri/style.css b/resen/petri/style.css index f5e56b4..22714b5 100644 --- a/resen/petri/style.css +++ b/resen/petri/style.css @@ -1,6 +1,6 @@ @font-face { - font-family: 'IBM Plex Mono'; font-display: block; + font-family: 'IBM Plex Mono'; src: url('fonts/IBMPlexMono-Regular.woff2'); } diff --git a/resen/psychosophy/index.html b/resen/psychosophy/index.html index 8938705..6f49f23 100644 --- a/resen/psychosophy/index.html +++ b/resen/psychosophy/index.html @@ -17,51 +17,51 @@
- קלף אוכלי הנבלות - אביר הנוצות - קלף האורקל - מלכת העיניים - קלף הסחרור - שלוש נוצות - קלף האמודאי - נסיך העיניים + קלף אוכלי הנבלות - אביר הנוצות + קלף האורקל - מלכת העיניים + קלף הסחרור - שלוש נוצות + קלף האמודאי - נסיך העיניים

קלפי הפסיכוסופיה - פתיחה בנושא קמעות - ראיון

מנחם: בפתיחה המרובעת שלנו, של ארבעה קלפים, הקלף הראשון הוא קלף הנושא, של השאלה. כי אחת הבעיות, כמו שהיידגר אמר לנו, שזה לא התשובה. כבר דרך השאלה אתה מציב את עצמך בתוך מרחב מסוים. השאלה עצמה מכילה את הלוגיקה שלה, ואפשר לפתוח את זה. ואז יש שני קלפים של האדם, של הפרשנות - החיובי והשלילי, המרחב הדיאלקטי שבו התודעה מתחילה להיות מעורבת. ואז יש לנו את קלף הפרספקטיבה.

אבינועם: פותחים לקמע. סביב הנושא של קמע.

-



קלף אוכלי הנבלות - אביר הנוצות
-

1. קלף ה"נושא" - מייצג את השאלה, ויהווה את מרכז התוכן אליו הפתיחה כולה תתייחס

+

1. קלף ה"נושא" - מייצג את השאלה, ויהווה את מרכז התוכן אליו הפתיחה כולה תתייחס

מנחם: פרספקטיבה מעניינת לדבר על קמעות דרך אוכלי הנבלות, ואו. נגיד שהקלף הזה הוא קודם כל שייך לסדרת ה"קיום". נוצות זו סדרה שעוסקת ב־יש, בקיום, מה יש במשמעות קיומית.

מיתר: מציאות אכזרית שנבנית כמאבק על כמות מוגבלת של משאבים. זה קלף הישרדות. מעניין בהקשר של קמעות.

+
"יש משהו בקמע שמאוד מחובר לצרכים האנושיים של הקיום שלנו. גם במובן של להעניק לנו ביטחון, שזה תנאי לאינטימיות. וגם במובן של להעניק איזושהי מסגרת."

מנחם: זה מחבר אותנו מאוד לצורך. שאלת היחסים בין הקמעות לצרכים שלנו. לא רק במובן הנפשי של נחמה, אלא גם לפרנסה, לזוגיות. יש משהו בקמע שמאוד מחובר לצרכים האנושיים של הקיום שלנו. גם במובן של להעניק לנו ביטחון, שזה תנאי לאינטימיות. וגם במובן של להעניק איזושהי מסגרת. בקלפי הטארוט יש את קלפי המסע, המספרים, מאחד עד עשר, וזה סיפור מסע כזה, ואז ארבע פונקציות. כאשר הפונקצייה הראשונה זה המפגש עם העולם - והמפגש הראשון הוא הלם וכו׳. וזה פונקצייה של הישרדות. מה שמאפיין את ההישרדות זה שהעולם הערכי הוא redundant, אתה מוכן לוותר עליו בקלות כי אתה צריך לעשות מה שצריך ולא מה שראוי. זה מן רגע פרובלמטי כזה שמאפיין את מצב ההישרדות. כל קלפי ההישרדות פועלים מתוך ההיגיון הזה, שיש השהיה או הימנעות ממחשבות שהן גדולות יותר ממה שאני צריך כדי להסתדר. הדבר הנוסף לגבי עניין הצורך זה שזה לא שהערך נעלם שם לחלוטין, כי חלק מהמאבק הוא מה הדבר שמצריך שימור. זה התחיל מהמקום שדיברנו [מנחם ואבינועם] על זה שאנשים נטפלים למישהו ומנצלים את החלש וצובאים עליו ומפילים עליו את האשמה. הכוח של ההמון שפוגע במישהו. אחד הדברים שאותי עניינו באוכלי הנבלות, זה הפונקצייה האקולוגית שלהם, שהם בעצם שייכים לתהליך של הניקוי של הטבע, ושל הפצת המחלות ושל הריקבון. יש להם כן פונקצייה כמעט היגיינית. והדבר השני שעניין אותי זה מה שהיום אנחנו קוראים לו flat ontology, העמדה שבה אתה לא בוחל בדבר. אני חושב שהרבה יוצרים נמצאים בעמדה דומה. אוכל הנבלות רואה בכל דבר אוכל, הוא לא שופט, "טוב לי, נעים לי, אני אוהב את זה, אני לא". האטיטיוד של אוכל הנבלות היא של "הכול אותו דבר" ומתוך ההתכוונות והפעולה הוא נהפך לבעל משמעות. הפגר הופך למזין. האכילה המגעילה של הפגר הופכת להיות בריאות הטבע. אז המשחק הזה היה חשוב ב־undertone של הקלף. כל מיני מנגנונים מתווכים ועוצרים אותנו מלגעת בחיים בשם הערכים הבורגניים.

מיתר: החליפה המעונבת שם ברקע היא מאוד חזקה, אי אפשר להתעלם ממנה.

מנחם: נכון. תשימי לב שהחליפה מאחורה והעט מקדימה. הרעיון שיש תיווך, "לפני שתתחיל את החיים, קח עט - ותחתום". בין העניבה לעט שישפוט אותך יש מרחב מחיה מעניין, שזה מה שניסינו לייצג. לקחת פגר ולהפוך אותו להזנה. בתוך המקום הזה הקלף הזה פועל.

מיתר: זה מעין היפוך תפקידים כלשהו, היפוך רעיוני. המעונבות המהוקצעת היא באיזה אופן הנבלה, הטרפה האמיתית.

+
"אנחנו מתחילים את החיים מראש בתוך ההגבלה, של החוזה ושל השופט, בתוך המבט של האחר. דרך הקלף הזה, אולי השאלה שמופנית אלינו זה - איפה אנחנו ממקמים את הקמע? - האם בצד של המשמעות של הקמע? מה שכתוב עם העט ומה שהפרשן עם העניבה יגיד? או שבעצם הקמע הוא באזור שבין העט והאיש עם החליפה? בין ההסדרות ומנגנוני ההסדרה."

מנחם: אנחנו מתחילים את החיים מראש בתוך ההגבלה, של החוזה ושל השופט, בתוך המבט של האחר. דרך הקלף הזה, אולי השאלה שמופנית אלינו זה - איפה אנחנו ממקמים את הקמע? - האם בצד של המשמעות של הקמע? מה שכתוב עם העט ומה שהפרשן עם העניבה יגיד? או שבעצם הקמע הוא באזור שבין העט והאיש עם החליפה? בין ההסדרות ומנגנוני ההסדרה. כי הקמעות גם עושים שימוש בשיירים, זה לא נדיר שהקמע שייך ללוגיקה של השיירים שנושאים איתם את המשמעות. כי הוא לא הדבר. הוא התמצית, המכיל של משהו. הקלף מחזיר אלינו שאלה - הקמע שאתם מדברים עליו, האם זה הכתיבת קמעות? המכירת קמעות? או המקום שבו הקמע שייך לשרשרת המזון הרוחנית שבה אנחנו נדרשים לפעמים גם לסתום את האף.

אבינועם: זה למקם את הקמע במקום של ההישרדות, במקום של בני האדם מתוך החיים הקשים והאתגרים מתקשר לצורך להיאחז במשהו, באמונה. בא מישהו ונותן לך דבר, ואומר שזה יביא לך "ככה וככה".

מנחם: זה קלף של ריבוי, זה לא "אוכל הנבלות", אלא זה "אוכלי הנבלות". אחד הדברים שאנחנו מדברים עליהם זה על הכוח של ה־הרבה, של הלהקה. אוכלי הנבלות באים בלהקה, הם לא ציידים, ויש משהו מן המשותף - הקמעות הם לא פרסונליים, למרות שזה ההתכוונות שלי, ואני שעושה שימוש. זה מפנה לקטגוריה של המשותף. הקמע, למרות שהוא אישי ופרטי, זה שם אותך בתוך להקה, קבוצה, מרחב שהוא גדול ממך. אתה לא יכול לדאוג לניקיון ולאקולוגיה של העולם לבד, זו פעולה שנדרש לה הכוח של ה־הרבה. חלק מהפעולות, אנחנו מביאים את כל הידע של העולם, הולכים לסינים, לזן בודהיזם, אריסטו ומביאים מהכול. כי המחשבה משותפת. אנחנו שותפים במוטיבציות של השאיפה אל הטוב, הריבוי והשיתוף.

-



קלף האורקל - מלכת העיניים
-

2. קלף "התומך" - מה מחזק אותנו ביחס לנושא השאלה? (תזה)

+

2. קלף "התומך" - מה מחזק אותנו ביחס לנושא השאלה? (תזה)

אבינועם: נקרא אותו באופן חיובי, כי הוא נמצא בצד של התומך. יש בו באר, מטאפורה של הנפש. מה שהדמות יכולה לעשות זה לצלול לקרקעית הבאר ולהציף כל מיני דברים, טראומות, למשל, אל האור. אם מדברים על פסיכומאגיה או אפקט של קמע, אפשר לטעון שזה בא ממקור מומצא, שקרי או מונפץ, אבל הפעולה שזה עושה על האדם שמקבל את הקמע פותחת לו אפשרות לריפוי, נותנת לו כוח. זה גם מלכת העיניים, עיניים זה סמל המוסר, והמלכה זה קלף מימוש, זה מקום שהוא פגיע. הביאו לי נבואה, וזה משפיע עליי באופן חיובי.

מנחם: סדרת העיניים [בקלפי הפסיכוסופיה] היא סדרת המוסר. מוסר זה המרחב שבו אנחנו שופטים פעולות. נותנים ערך לפעולה שלנו. והקלף הזה מתכתב עם קלף האידאה, הקלף שמגלם את התחום הטהור. הוא מהדהד אותו כי העיגול של הבאר, כמו האידאה - חתוכה מהפריים, היא גדולה מהחיים. להגיד שאי אפשר לתפוס את הכול. זו תובנה גדולה גם לגבי העיסוק בקמעות, כי הוא אומר - אני לוקח אתכם ל־beyond. בגלל שהפעולה בתחום המוסר מתייחסת למניעים, והם קשורים למבנה עומק, הם מגיעים מבפנים. והאורקל, שצופה פני עתיד, זה לא שהיא רואה את העתיד, אלא כמו שאבינועם אמר, פעולה של להעלות ולהתמודד עם משקעים כמה שאמור לפתוח את העתיד. כי שוב, אתה מבין את הלוגיקה של הדבר, לא הפשט. זה לא מגדת עתידות.

מיתר: אני לא יכולה שלא לחשוב על המדוזה, עם שיער הנחשים, מיתולוגיה בה הראש שלה כרות בהרבה ייצוגים.

מנחם: זה גם הרעיון שאתה לא יכול להפסיק. כל דבר מוציא עוד דבר. גם היא מקפיאה אותך. אגב, זה רפרנס מעניין למדוזה - המפגש שמשאיר אותך באלם. לאקאן נתן לזה שם - טראומה. המקום שבו אי אפשר לדבר. אנחנו באמת לא מדברים על מרחב שהוא חושני, זה לא שאני רואה את העתיד או יודע את מה שאני לא יודע. זה גם מה שהקמע רוצה לקחת אותנו אליו, לראות עם עיניים עצומות ולשמוע בקשב. הרעיון של להציף, לעבוד עם משקעים. הקלף מדבר על לעמוד בפתח של העתיד. מה שהאורקל עושה, כמובן שייך לאורקל של דלפי, מושג עם מסורת פילוסופית קריטית, כי זה הסימון של סוקרטס כמי שיודע והמשחק עם יודע־לא־יודע. זה מעניין לחשוב שהקמע "יודע ולא יודע" בו זמנית. מנגנוני הידיעה שלו הם לא דרך ידיעה שכלית ולא דרך הכרה חושית. הקמע הוא בפונקצייה של לארגן את כל משקעי העבר שלך ולהציף אותם, לאפשר לך להתמודד אותם.

אבינועם: היא לא רואה מהעיניים. הם בלי אישונים והעין מופיעה מהאבן, מהגוש. מהעומק.

מנחם: הרקע שנעלם הוא גם מעניין. בדרך כלל כדי שיהיה משמעות לדברים, וזה יכול להיות טייק מעניין על קמע. המצית הזאת, יש לה משמעות, כי היא בתוך קונטקסט, בתוך עולם. כלומר, אנחנו מייצרים משמעות כשאנחנו ממקמים דברים בתוך הקשר. אני חושב שהקמע נושא את הכוח שלו בתוך עצמו. הוא לא צריך את ההקשר שבתוכו הוא יהיה בעל משמעות. זה מין אובייקט מיוחד. הם באים עם הזמן והחלל שלהם, הם לא צריכים שמישהו יביא זמן וחלל כדי שהם יתחילו לתפקד. הם עצמם נושאים את הזמן והחלל כמעט כמו מונדה אצל לייבניץ. אז אני חושב שגם פה בהקשר הזה, מה שהאורקל מצביעה עליו, זה שהיא מתנתקת מההקשר, מהעולם, כי היא עוצמת עיניים והפעולה שלה היא באמת פעולה פנימית, אבל יקומית. היא מחוללת יקום מתוך ההשתקעות פנימה. ואני חושב שיש משהו שמהדהד את הדבר הזה גם בקמע. הוא אובייקט ייחודי שבהרבה מובנים קורא תיגר על הקשרים, אתה יכול לקחת אותו לכל מקום, הוא יכול לפעול בכל הקשר. יש את המעמד האקס־טריטוריאלי של הקמע שיכול להיות שהקלף הזה גם רוצה להזכיר לנו.

-

מיתר: מענין אגב שהזכרת את המונדה של לייבניץ, כי חשבתי על זה קצת בהקשר של הפתית שלג דווקא [גרסת קלף שלא נכנס לחפיסה]. במובן הזה, הצומת שמחזיק את כל הדרכים לרגע ומקבל את הצורה הייחודית שלו. האובייקט שמשתכפל גם עד אין קץ, מחזיק את תכונת היותו כמונדה.

+

מיתר: מעניין אגב שהזכרת את המונדה של לייבניץ, כי חשבתי על זה קצת בהקשר של הפתית שלג דווקא [גרסת קלף שלא נכנס לחפיסה]. במובן הזה, הצומת שמחזיק את כל הדרכים לרגע ומקבל את הצורה הייחודית שלו. האובייקט שמשתכפל גם עד אין קץ, מחזיק את תכונת היותו כמונדה.

+
"הנבואה פה היא לא "ידיעת העתיד", אלא הבנת ההווה כמשהו שמכיל את העבר והעתיד."

מנחם: ובואי נזכור את הדבר הכי חשוב, המונדה היא האמת, היא לא רק היחידה האוטונומית, האוטרקטית, אלא היא גם מכילה את האמת באופן אנליטי, וזה שוב הפעולה של האורקל, זה הפעולה שאנחנו עושים. אם תשימו לב, זה לא "אנחנו חוזים את העתיד", אנחנו באמת משתקעים עוד ועוד כדי לפתוח ועוד דברים ומציפים דברים כדי להבין. הנבואה פה היא לא "ידיעת העתיד", אלא הבנת ההווה כמשהו שמכיל את העבר והעתיד. את המגע עם העתיד והמגע עם העבר.

-



קלף הסחרור - שלוש נוצות
-

3. קלף ה"חוסם" - מה חוסם אותנו ביחס לנושא השאלה? (אנטיתזה)

+

3. קלף ה"חוסם" - מה חוסם אותנו ביחס לנושא השאלה? (אנטיתזה)

אבינועם: אני קורא אותו בתור השקט שבעין הסערה. הקלף הזה הוא קלף שלוש, נוצות. נוצות זה סמל של היקום אצלנו, ושלוש - זה קלף כלי מכשיר, איך היקום פועל ומפעיל דברים. וכאן זה דרך לייצר מערבולות, פתאום משהו משתבש ויוצר איזה תגובת שרשרת שבה הכול מסתחרר מסביב ונדרשת הרבה תעיזות שלך, ומתוך זה אתה מתקדם הלאה ולא נאחז בבטוח.

מנחם: זה היידגר. מאוד פשוט, "קיום זה זמן". ואנחנו נוהגים להסדיר את הזמן. והזמן הקיומי הוא זמן אקסטטי, כמו שאומר היידגר. אנחנו בתוך מערבולת, אז העבר נכנס להווה, העתיד נכנס לעבר ויש ecstatic temporality, ובאמת בתור כלי, כמו שאבינועם אמר, הכלי הראשון להיכנס לתוך מחשבה קיומית, לתוך מחשבת הזמן היא באמת לתת לפרוע את הזמן, לתת לדברים להסתחרר, להבין שבממד הקיומי, אתה מסוחרר הרבה פעמים. יש כמה דברים שחשובים בקלף, אפשר לראות שזה גם להסתחרר מעבר לחומות הידע הבצורות. יש שם חומה. וזה גם ללכת למקום. דווקא היציאה החוצה זו לא הבטחה לגאולה, אלא שממה ואובדן קיומי. הסחרור הזה הוא לא רגע שכולו הארה, אלא דווקא מעמת עם דברים. בגלל זה, כמו שאבינועם אמר, הקלף הזה עוסק הרבה באיך שאתה מארגן את השקט שבאין, שבעין הסערה. אתם יכולים לראות שגם דמות הנוצה, יש בה להבות. היא מחזיקה את התשוקה. אתה לא רוצה לאבד את התשוקה כדי לעמוד בעין הסערה, אתה רוצה לתת לעולם להמשיך להסתחרר ולדברים להמשיך להתערבל, ולקחת אותך מעבר למקום הבטוח, מעבר לחומות הבצורות ועדיין להיות עם איזשהו סנטר. אני חושב שהקמע, ברמה האפקטיבית, לגמרי מכניס אותך למקום של סחרור שכזה. ששוב, הרבה דברים מוכלים בתוך הקמע הזה. הרבה מאוד אנרגיות שנאספו, הרבה אירועים שנאספו ונאצרו בתוך הרגע הזה. זה די מתחבר לי, באופן חיובי אגב, לאיך קמע עובד ואיזו התכוונות. אני חושב שזה מזהיר אותנו באמת מללכת לאיבוד בסחרחורת הזאת שלה ובאפקט הרגשי שקמע מייצר. אם חושבים על האפקט, שיש, שוב - למשל מצית, שיכולה לארגן עכשיו את הביטחון שלי, זה הרי מטורף לחשוב על זה. זה באמת משהו מהסוג של...

@@ -76,11 +76,10 @@

3. קלף ה"חוסם" - מה חוסם אותנו ביחס לנושא השא

אבינועם: כל המלוכה של סדרת הנוצות זה ציפורים. זו היתה התמה, מסגרת שעבדנו איתה. יש נשרים באביר, הנסיך זה סנוניות. אחרי זה יש לנו ציפורים יפניות שרוקדות, חיזור. עגורים מיפן.

מנחם: ובסוף "נשר אמריקאי". אגב על הנוצות יש גם דברים מעניינים. למשל למה הנוצה נבחרה לייצג את הקיום. זה סמל שחשבנו עליו הרבה, גם על האיבר שהוא בעצם גם איבר מת, אבל הוא איבר. הנוצה נוצרת מתאים מתים. הרעיון הזה של משהו שברירי שיכול לשאת משא ולקחת אותך. יש שם את הסייקל של הקארמה, של המת והחי וגם את עולמות הרוח, והחומר והיחסים בין כובד. איך וייל [סימון] אומרת - בין כובד וחסד. הנוצה תופסת את הרגע הזה גם. אז, כן. הסימבוליקה, כמו שאת אומרת, היא חשובה. יש הרבה דברים שנכנסים לשם.

-



קלף האמודאי - נסיך העיניים
-

4. קלף ה"אני" - איך אני ממוקם ביחס לנושא? (פרספקטיבה)

+

4. קלף ה"אני" - איך אני ממוקם ביחס לנושא? (פרספקטיבה)

מנחם ואבינועם יחד: אווו.

מנחם: הקלף האהוב ביותר [צוחק]. הקלף שכל אחד מאיתנו חושב שהוא אישי לו. הינה הנסיך של הפעולה. אותו מעמד של לצאת ולחקור מבלי שיש עליך את העול. חשבנו על סוג של צלילה כזאת.

מיתר: יש לו קסדה של צוללן?

@@ -95,6 +94,7 @@

4. קלף ה"אני" - איך אני ממוקם ביחס לנושא? (פרס

מיתר: זה נהדר ואני חושבת בהקשר של מה שאנחנו עושים עם רֶסֶן, והגיליון הנוכחי של הקמעות, זה נעדר את הטקטיליות. אנחנו בעצם עובדים בפורמט שהוא מאוד דיגיטלי, אלקטרוני, מקוון וזו גם בחירה. אנחנו מתמודדים [בגיליון] עם כל מיני קמעות שהם אובייקטים, או קמעות שדורשים פעולה פיזית, ואז בעצם הפלטפורמה הזו מתווכת משהו שהוא לא התוצר הסופי שלו. אנחנו מודעים לכך ומדברים על זה [מיתר ואיל, עורכי הגיליון], אולי זה נותן לזה את הגושפנקה שזה בסדר.

מנחם: החומריות זה אחד הדברים המעניינים שהקמע מעורר, אפרופו חודורובסקי. מה שעניין אותו זו אצלו זו הגישה המטריאליסטית, או הרגישות החומרית שלו לכל המרחב הרוחני. שוב, אנחנו יודעים את זה ברמה הכי פשוטה: קונוטציות. אנחנו יודעים שמחשבות הם חומריות. הן יכולות להזיז דברים, הן יכולות להתערב. זה חלק מהנחות היסוד של הפרויקט [קלפי הפסיכוסופיה]. אנחנו שותפים להנחות הללו.

+ - -
- +
+ @@ -164,8 +164,8 @@
-
- +
+ diff --git a/resen/snark/script.js b/resen/snark/script.js index 1e154ad..bc55e78 100644 --- a/resen/snark/script.js +++ b/resen/snark/script.js @@ -3,12 +3,11 @@ const notes = {ABMH: 'C4 D4 E4 F4 E4 F4 F4 G4 G4 A4 F4 G4 G4 A4 G4 A4 A4 B4 A4 B const keymap = {a: 'א', b: 'ב', - v: 'ב', g: 'ג', d: 'ד', h: 'ה', + u: 'ו', w: 'ו', - v: 'ו', z: 'ז', j: 'ח', y: 'ט', @@ -22,9 +21,8 @@ const keymap = {a: 'א', 'ן': 'נ', s: 'ס', o: 'ע', - e: 'ע', - p: 'פ', f: 'פ', + p: 'פ', 'ף': 'פ', c: 'צ', 'ץ': 'צ', @@ -34,14 +32,14 @@ const keymap = {a: 'א', t: 'ת'} const duration_sec = .125 -const reverb = new Tone.Reverb({decay: 15, wet: .6}) const style = getComputedStyle(document.body) -const synth = new Tone.Synth({oscillator: {type: 'sine'}, envelope: {attack: style.getPropertyValue('--active_transition_sec').slice(0, -1)}}).chain(reverb, Tone.Destination) const delay_sec = style.getPropertyValue('--active_delay_sec').slice(0, -1) +const reverb = new Tone.Reverb({decay: 15, wet: .6}) +const synth = new Tone.Synth({oscillator: {type: 'sine'}, envelope: {attack: style.getPropertyValue('--active_transition_sec').slice(0, -1)}}).chain(reverb, Tone.Destination) -function get_play(event) { - const svg = event.currentTarget +function get_play(event, sticky) { const circle = event.target + const svg = event.currentTarget let cls = '' if (navigator.userActivation.hasBeenActive && circle && circle.tagName.toLowerCase() == 'circle') { cls = [...circle.parentElement.classList].find(c => c.match(/^m\d+$/)) @@ -51,37 +49,47 @@ function get_play(event) { const notes_array = notes[svg.id].split(' ') const seq = new Tone.Sequence((time, note) => synth.triggerAttackRelease(note, duration_sec, time), path.map(i => notes_array[i]), delay_sec).start('+.05') // Reduce pops noise and avoid skipping first note. See: https://github.com/Tonejs/Tone.js/wiki/Performance#scheduling-in-advance and https://github.com/Tonejs/Tone.js/issues/403#issuecomment-447663104 seq.loop = false + function mute() { seq.mute = true; circle.removeEventListener('click', mute) circle.removeEventListener('mouseleave', mute) } + circle.addEventListener('click', mute) circle.addEventListener('mouseleave', mute) // Will also fire when clicking outside for touch interaction Tone.Transport.start() } - return [svg, cls] + if (sticky) + svg.dataset.selected = cls } function click(event) { - const [svg, cls] = get_play(event) - svg.dataset.selected = cls + get_play(event, true) } -const containers = document.querySelectorAll('div[oncontextmenu*=toggle_fullscreen]') +const containers = document.querySelectorAll('.snark') + +containers.forEach(elem => { + elem.oncontextmenu = e => toggle_fullscreen(e, false) + elem.addEventListener('mousedown', () => elem.classList.remove('keyboard')) + elem.addEventListener('mousemove', () => elem.classList.remove('keyboard')) + const svg = elem.querySelector('svg') + svg.addEventListener('mouseover', e => {if (!svg.parentElement.classList.contains('keyboard')) get_play(e)}) + svg.addEventListener('click', click) +}) document.addEventListener('keydown', event => { if (event.altKey || event.getModifierState('AltGraph') || event.ctrlKey || event.metaKey || !event.key.match(/^[א-תa-zA-Z]$/) && event.key != 'Backspace' && event.key != 'CapsLock') return const current = containers[1].classList.contains('fullscreen') | 0 + containers[current].classList.remove('keyboard') const svgs = document.querySelectorAll('svg') if (event.key == 'CapsLock') { - svgs[current].dataset.selected = '' + svgs.forEach(e => e.dataset.selected = '') containers.forEach((e, i) => e.appendChild(svgs[1 - i])) - svgs[current].dataset.selected = '' return } - containers[current].classList.remove('keyboard') if (event.key != 'Backspace') setTimeout(() => { svgs[current].style.setProperty('--delay', 0) diff --git a/resen/snark/style.css b/resen/snark/style.css index 920c3eb..9e336d6 100644 --- a/resen/snark/style.css +++ b/resen/snark/style.css @@ -18,6 +18,14 @@ svg { --thick: .8; } +#ABMH { + --fg: #64ff64; +} + +#ADWS { + --fg: #ff6464; +} + @media (hover: hover) { svg:not(.keyboard > *):has(.m21 circle:hover) :is(.m21, .n21), svg:not(.keyboard > *):has(.m20 circle:hover) :is(.m20, .n20), @@ -110,10 +118,6 @@ svg { transition-duration: var(--active_transition_sec); } -div[oncontextmenu*=toggle_fullscreen] { - transition: cursor .5s allow-discrete; -} - .keyboard { cursor: none; } @@ -131,6 +135,10 @@ g { transition: all 2s calc(var(--delay, 0s) * 3); } +line { + stroke: var(--fg); +} + .m0 { transition-delay: 0s; } @@ -143,8 +151,8 @@ g { transition-delay: calc(var(--delay) * 2); } -line { - stroke: var(--fg); +.snark { + transition: cursor .5s allow-discrete; } text { diff --git a/resen/style.css b/resen/style.css index bfbb04d..3b1f395 100644 --- a/resen/style.css +++ b/resen/style.css @@ -1,41 +1,48 @@ @font-face { - font-family: 'David Libre'; font-display: block; + font-family: 'David Libre'; src: url('fonts/DavidLibre-Medium.woff2'); } @font-face { - font-family: 'Miriam Libre'; font-display: block; + font-family: 'Miriam Libre'; src: url('fonts/MiriamLibre-Regular.woff2'); } @font-face { + font-display: block; font-family: 'Miriam Libre'; font-weight: bold; - font-display: block; src: url('fonts/MiriamLibre-Bold.woff2'); } @font-face { - font-family: Alef; font-display: block; + font-family: Alef; src: url('fonts/Alef-Regular.woff2'); } @font-face { + font-display: block; font-family: Alef; font-weight: bold; - font-display: block; src: url('fonts/Alef-Bold.woff2'); } @font-face { - font-family: 'Alef Mono'; font-display: block; + font-family: 'Alef Mono'; src: url('fonts/Alef-Monospace.woff2'); } +@font-face { + font-display: block; + font-family: arabic; + src: url('fonts/ReadexPro-Arabic-300.woff2'); + unicode-range: U+0600-06ff; +} + @font-face { font-family: Arial; /* MacOS, iOS */ size-adjust: 160%; @@ -51,12 +58,6 @@ unicode-range: U+2709; } -@font-face { - font-family: arabic; - font-display: block; - src: url('fonts/ReadexPro-Arabic-Regular.woff2'); -} - :root, ::backdrop { /* In Chrome (<122) and Firefox (<120) ::backdrop did not inherit from :root. See: https://issues.chromium.org/issues/40569411, https://bugzilla.mozilla.org/show_bug.cgi?id=1855668 */ --bg: white; --fg_rgb: 0 0 0; @@ -78,8 +79,8 @@ --letter_spacing: normal; --line_height: 1.5; --row_gap: 3em; - - --font: 'Miriam Libre', Arial, sans-serif; + + --font: 'Miriam Libre', arabic, Arial, sans-serif; --heading_font: 'David Libre', 'Times New Roman', serif; --mono_font: 'Courier New', 'Alef Mono', monospace; @@ -676,6 +677,7 @@ iframe, object { .images.fullscreen > img:first-child:last-child { --max_media_height: 100%; + min-height: 0; } .images > img:not(:first-child:last-child) { @@ -950,6 +952,10 @@ nav[dir=rtl] ~ :nth-last-child(1 of .refs):not([data-title]) { direction: rtl; } +.pull { + font-size: 1.4em; +} + .refs > blockquote { font-size: initial; } @@ -1198,7 +1204,7 @@ video::-webkit-media-controls-enclosure { /* Not supported in Firefox */ --media_width: auto; } - .refs > blockquote { + .pull, .refs > blockquote { margin-inline: 0; } diff --git a/resen/taase/index.html b/resen/taase/index.html index 794b94a..f1e4b2b 100644 --- a/resen/taase/index.html +++ b/resen/taase/index.html @@ -20,7 +20,7 @@
diff --git a/resen/talismetta/index.html b/resen/talismetta/index.html index 87b3480..e8a347a 100644 --- a/resen/talismetta/index.html +++ b/resen/talismetta/index.html @@ -36,7 +36,6 @@


-

تاليس-ميتا هي تميمةٌ الكترونية وظيفتها نشر "ميتا" - وما تحملها - من كَرم محبة القلب لنفسي، لأقاربي وأحبائي، ولكل المخلوقات. يا حبذا لو يعم علينا السلام، الفرح، الصحة، الأمان، وعدم المعاناة. تميمتنا تشمل برمجة يهودية، الكترونيات صينية، مانترا بوذية، وتطريز فلسطيني.

هي تميمة مشتركة - التمائم تشعر الواحدة بالأخرى، تستطيع أن تستوعب وتبث بركات واحدة من الأخرى، وتستطيع توزيع تموجات السلام في أنحاء كون ال-Wi-Fi. بينما تُشغل تميمة بالقرب من تميمة أخرى، تنضم للعرض حمامة ثانية، وبكبسة زر يستطيع من تمنطق التميمة أن يبعث تموجات ليس فقط لنفسه، بل للآخرين. يا حبذا لو امتلئوا بكرم محبة القلب. تعرض التمائم كلمة "سلام" بالعربية أو "שלום" بالعبرية، وعندما تبث التميمتين تموجا الواحدة للأخرى، تتمازج الكلمات في اللغات المختلفة ويعم السلام حول الجميع.

@@ -44,7 +43,6 @@

تصميم نص متمازج: ميرا عوض

تصميم الفيديو: جلعاد كوريسكي

ترجمة للعربية: عبد ناطور

-

diff --git a/resen/talismother/index.html b/resen/talismother/index.html index f5858d7..c5f2623 100644 --- a/resen/talismother/index.html +++ b/resen/talismother/index.html @@ -25,7 +25,7 @@ הדמות הנשית עשויה לייצג כוח אלוהי נשי, אימא קמאית (ועל כן "קמעית"), מקור כל הבריאה, רחם מאזין ומנחם.

- בהשראה של קמע מאוסף קבלה מעשית של משפחת גרוס. + בהשראה של קמע מאוסף קבלה מעשית של משפחת גרוס.

diff --git a/resen/water/index.html b/resen/water/index.html index c288c62..d4a3cf2 100644 --- a/resen/water/index.html +++ b/resen/water/index.html @@ -18,19 +18,13 @@
-
-
-
+
-
-
-
+
-
-
-
+
@@ -66,12 +60,12 @@ כשמוסיפים את האות י' ש"מרחפת על פני המים" (האות היחידה בעברית שמרחפת מעל קו האותיות) נוצר משהו אין־סופי ביסודו הרוחני.

+
+ +
+
+
- -
-
-
-

בצינור המוביל את המים - ה"קו", ה־ו' היא אות שנראית כמו קו ומשמשת גם כ־ו' החיבור. הקו נמצא ב־מקווה ב־מקום ב־תקווה, diff --git a/resen/water/style.css b/resen/water/style.css index ebc56a5..a8c3df5 100644 --- a/resen/water/style.css +++ b/resen/water/style.css @@ -1,4 +1,4 @@ -article > *:not(p + p) { +article > :not(p + p) { margin-top: 5rem; width: 100%; } @@ -7,13 +7,17 @@ article > *:not(p + p) { direction: ltr; /* Fix for: https://github.com/google/model-viewer/issues/4930 */ display: flex; justify-content: center; - margin-inline: auto; - width: var(--media_width); + margin-inline: var(--anti_margin); + width: auto; } model-viewer { aspect-ratio: 1; clip-path: inset(1px); /* Partial fix for: https://github.com/google/model-viewer/discussions/4935 */ height: auto; - min-height: 0; +} + +.model_container model-viewer:first-child:last-child { + height: 100vmin; + width: 100%; } \ No newline at end of file diff --git a/resen/zag/assets/Assistant-VariableFont_wght.ttf b/resen/zag/assets/Assistant-VariableFont_wght.ttf deleted file mode 100644 index e4ad9382b6f1b0264996405acc9fd690ef6ccbe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79660 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

#YC6SYx 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 z * { - display: inline-block; -} - -ul.team li img { - border: 4px solid #f1dcab; - border-radius: 10px; - width: 50%; - image-rendering: -moz-crisp-edges; - image-rendering: crisp-edges; - image-rendering: pixelated; -} - -h2, -h3, -h4, -h5, -h6, -strong { - color: #f1dcab; - text-shadow: 1px 1px #9e3230; - font-variation-settings: "MONO" 0, "wght" 600; - text-transform: none; -} - -.hero h2 { - text-shadow: 1px 1px #3b0213; -} -.hero h1 span { - font-variation-settings: "MONO" 0, "wght" 700; -} -h4 { - margin: 10px 0; - font-size: 1em; -} -h3 { - margin: 10px 0 15px; - font-size: 1.3em; -} - -a.nav-active { - color: #9e3230; -} - -a { - color: #86c06c; -} - -body { - position: relative; - font-size: 16px; - margin: 0; - padding: 0; -} - -a { - color: #f1dcab; -} - -ul.q-and-a { - list-style-type: square; - padding: 0; - margin: 30px auto 10px; - width: 75%; -} - -ul.q-and-a li:not(.question) { - margin-bottom: 30px; - line-height: 1.2; - text-align: justify; -} - -#contact a span { - text-decoration: underline; -} - -nav { - padding-left: 4vw; - display: block; - width: 85vw; - position: relative; - height: 100vh; - float: left; - max-width: 400px; - overflow-y: auto; - padding: 15px 2%; - height: 80px; - margin: 0 auto; - left: 50%; - transform: translateX(-50%); - max-width: 1200px; -} - -#main section { - width: 100%; - margin: 20px auto 100px; - display: block; - position: relative; - height: unset; -} -#main { - overflow: hidden; -} - -#main section#mailinglist { - margin-bottom: 300px; -} - -h2 { - margin: 10px 0; -} - -#logo img { - width: 100px; -} - -#staticlogo { - position: absolute; -} - -small { - font-style: italic; - color: #86bf6c63; -} - -.description { - /* background: #f1dcab; - border-color: #3b0213; - color: #3b0213; - text-shadow: 1px 1px #86c26c; */ - - font-size: 1.2em; - padding: 20px 15px; - width: 45%; - margin: 0 auto; -} - -.ignore-content object { - height: 1em; -} - -ul.navigation li { - list-style: none; - font-style: normal; -} - -ul.navigation li a { - text-decoration: none; - color: #3b0213; - font-variation-settings: "MONO" 0, "wght" 600; - position: relative; - top: 50%; - transform: translateY(-50%); - vertical-align: middle; - display: flex; - width: 100%; -} - -ul.navigation { - font-size: 1.2em; - display: flex; - position: relative; - margin: 0 auto; - height: 100%; - width: 70%; -} - -ul.navigation li { - flex: fit-content; - position: relative; - height: 100%; -} - -.heb * { - direction: rtl; - /* text-align: right; */ -} - -.heb ul.team li, -.heb ul.team li > * { - text-align: center; -} - -.heb nav { - padding-right: 4vw; - padding-left: 0; - float: right; - right: 0; -} - -@media screen and (min-width: 1400px) { - body { - font-size: 18px; - } -} - -@media screen and (min-width: 801px) { - #lang { - position: fixed; - font-size: 20px; - top: 50%; - transform: translateY(-50%); - } - - #staticlogo:hover { - opacity: 0; - } - - footer { - width: 100vw; - position: fixed; - bottom: calc(-100% + 200px); - bottom: 0; - background-color: #f1dcab; - z-index: 2; - } - - nav.expanded #collapse, - #expand { - display: none; - } -} - -@media screen and (max-width: 800px) { - nav:not(.expanded) #lang { - display: none; - } - - #iframe-container { - height: 480px; - } - - #lang a { - border-radius: 0; - } - - ul.navigation li a span { - padding: 0; - } - - ul.navigation li a.nav-active span { - padding: 15px; - } - - #swipe { - display: block; - text-align: center; - margin-bottom: 50px; - } - #swipe small { - color: rgba(255, 255, 255, 0.549); - } - nav.expanded #collapse, - #expand { - display: block; - position: fixed; - bottom: 76px; - left: 50%; - transform: translateX(-50%); - } - - nav { - width: 100vw; - position: fixed; - bottom: calc(-100% + 200px); - bottom: 0; - background-color: #f1dcab; - } - - nav.expanded, - .heb nav.expanded { - height: 100vh; - } - - .mobile-only { - display: block; - } - - .hero { - display: block; - /* margin-bottom: 110%; */ - } - - ul.navigation li a { - display: block; - font-size: 1.2em; - } - - .hero > img { - width: 100%; - object-fit: contain; - } - - .hero > * { - position: relative; - display: block; - } - - .description, - .mailchimp { - margin: 0 auto 20px; - display: block; - position: relative; - width: calc(80vw - 60px); - } - .brandingLogo img { - object-fit: fill; - max-width: 100%; - } - - .he p.description, - .en-US p.description { - text-align: center; - font-size: 1em; - padding: 30px 15px; - } - - .navigation a { - font-size: 0.8em; - } - - ul.team { - display: block; - padding: 0; - } - - .team li { - margin: 20px 0; - } - - #collapse { - display: none; - } - - nav.expanded #expand { - display: none; - } - - #expand { - display: block; - padding-top: 0; - } - - #collapse { - padding-bottom: 0; - } - - #expand img, - #collapse img { - display: block; - } - - #mobilelogo img { - width: 55px; - } - h2 { - font-size: 1.3em; - } - /* h1 { - font-size: 0.75em; - } */ - - .heb #lang { - direction: ltr; - } - p.brandingLogo { - width: 100%; - } - p { - width: 90%; - margin: 0 auto 15px; - } - - nav { - width: 100%; - max-width: 100%; - padding: 0; - position: fixed; - height: auto; - float: none; - font-size: 12px; - z-index: 999; - } - - nav, - nav .navigation li, - nav a, - #contact li { - text-align: center; - } - - #contact h2 { - text-align: center; - } - - #contact li a img, - .heb #contact li a img { - float: none; - height: 0.8em; - } - - nav, - .heb nav { - padding-right: 0; - padding-left: 0; - padding-bottom: 2vh; - overflow: hidden; - height: 100px; - } - - #lang { - text-align: center; - } - - #logo { - text-align: center; - display: block; - width: 50%; - margin: 0 auto; - } - - #xyz ul { - width: 85%; - margin: 0 auto; - } - - #lang { - position: fixed; - z-index: 999; - bottom: 125px; - } - - .he #lang { - right: 50%; - transform: translateX(50%); - width: 50%; - } - - .en-US #lang { - left: 50%; - transform: translateX(-50%); - width: 50%; - } - - #main section { - width: calc(90vw - 40px); - display: block; - position: relative; - padding: 0 20px; - margin: 0 0 50px 0; - right: 0; - } - - ul.navigation { - font-size: 20px; - padding: 50px 0; - width: 100%; - position: relative; - display: none; - text-align: center; - } - - nav.expanded ul.navigation { - display: flex; - width: 75%; - height: auto; - flex-direction: column; - top: 50%; - transform: translateY(-50%); - } - - nav.expanded ul.navigation li { - padding: 0 0 5px; - width: 100%; - position: relative; - display: block; - flex: 1 1 content; - flex: unset; - display: block; - width: 100%; - position: relative; - height: unset; - text-align: center; - margin-bottom: 30px; - } - - #logocontainer { - display: none; - } - - #mobilelogo { - display: block; - position: fixed; - bottom: 16px; - left: calc(50% + -4px); - transform: translateX(-50%); - } - - #lang a { - padding: 5px 10px; - box-shadow: unset; - -webkit-transition: ease 0.5s; - -moz-transition: ease 0.5s; - transition: ease 0.5s; - } - - #lang a.active { - background: #9e3230; - box-shadow: unset; - } - - #lang a { - padding: 5px 10px; - box-shadow: unset; - -webkit-transition: ease 0.5s; - transition: ease 0.5s; - font-size: 1.6em; - } -} - -@media screen and (max-height: 450px) { - nav.expanded ul.navigation li { - margin-bottom: 15px; - } - ul.navigation { - font-size: 15px; - } -} - -body { - background: #3b0213; - color: #fff; - /* font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", - Helvetica, Arial, "Lucida Grande", sans-serif; */ - font-family: "narkiss-yair-variable", sans-serif; - font-weight: 300; - margin: 0; - padding: 0; - touch-action: none; - -webkit-touch-callout: none; - user-select: none; - -webkit-user-select: none; - overflow: hidden; -} - -.cky-modal, -.cky-consent-container { - direction: ltr !important; -} - -footer { - color: #3b0213; -} -strong { - color: #3b0213; - text-shadow: none; -} -#char1Logo { - height: 70px; - padding: 15px 0; -} -#game { - display: flex; - flex-direction: column; - position: fixed; - width: 100%; - height: calc(100% - 300px); - touch-action: none; -} -body:not(.fullscreen) #game { - top: calc(50% - 55px); - transform: translateY(-50%); - height: calc( - 100% - 220px - ); /* Subtracting footer height and some extra space */ - /* max-height: calc(100vh - 160px); */ -} -.buttonIndicator, -span#fullScreenButton { - max-width: 50%; - margin: 0 auto 10px; - color: #9e3230; - background: #e38c89; - padding: 4px; - border-radius: 100%; - border: 2px solid #9e3230; - display: block; - line-height: 1.2em; - /* text-shadow: 0 1px #e1eacd; */ - font-weight: bold; - color: #9e3230; -} - -body.fullscreen #mainCanvas { - position: fixed; - width: 100%; - height: 100%; - top: 0; - right: 0; - bottom: 0; - left: 0; -} -body.fullscreen #gameFooter, -body.fullscreen #char1Logo { - display: none; -} - -.buttonIndicator:not(.square) { - width: 1.2em; - height: 1.2em; -} -/* .buttonIndicator.square { - border-radius: 4px; -} */ -.buttonIndicator.square, -span#fullScreenButton { - border-radius: 7px; - max-width: 120px; -} -span#fullScreenButton { - cursor: pointer; -} -#game canvas { - object-fit: contain; - image-rendering: -moz-crisp-edges; - image-rendering: -webkit-crisp-edges; - image-rendering: pixelated; - image-rendering: crisp-edges; - height: 100%; -} - -#controller { - display: none; - position: fixed; - bottom: 0px; - height: 230px; - width: 100%; - touch-action: none; -} -#fullScreenButton span.material-symbols-outlined { - color: #f1dcab; - vertical-align: bottom; -} -#controller_dpad { - position: absolute; - bottom: 10px; - left: 0px; - width: 184px; - height: 184px; -} -#xyzLogo { - height: 100px; - padding: 25px 0; -} -#controller_dpad:before { - /* content: ""; - display: block; - width: 48px; - height: 48px; - background: #e38c89; - - position: absolute; - left: 68px; - top: 68px; */ - content: ""; - display: block; - width: 42px; - height: 42px; - background: #e38c89; - position: absolute; - left: 62px; - top: 68px; -} - -#controller_left { - /* position: absolute; - left: 20px; - top: 68px; - width: 48px; - height: 48px; - background: #e38c89; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; */ - position: absolute; - left: 20px; - top: 68px; - width: 42px; - height: 42px; - background: #e38c89; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} - -#controller_right { - /* position: absolute; - left: 116px; - top: 68px; - width: 48px; - height: 48px; - background: #e38c89; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; */ - position: absolute; - left: 104px; - top: 68px; - width: 42px; - height: 42px; - background: #e38c89; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} - -#controller_up { - /* position: absolute; - left: 68px; - top: 20px; - width: 48px; - height: 48px; - background: #e38c89; - border-top-left-radius: 4px; - border-top-right-radius: 4px; */ - position: absolute; - left: 62px; - top: 26px; - width: 42px; - height: 42px; - background: #e38c89; - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} - -#controller_down { - /* position: absolute; - left: 68px; - top: 116px; - width: 48px; - height: 48px; - background: #e38c89; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; */ - position: absolute; - left: 62px; - top: 110px; - width: 42px; - height: 42px; - background: #e38c89; - 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: 90px; -} -/* ul.navigation { - width: 85%; - direction: rtl; -} */ -ul.navigation { - width: 85%; - direction: rtl; - right: 0; - margin: 0; - padding: 0; -} -#logo, -ul.navigation { - display: inline-flex; -} -ul.navigation li { - margin: 0; - padding: 0; -} -.roundBtn { - display: flex; - justify-content: center; - align-items: center; - font-weight: bold; - font-size: 26px; - line-height: 56px; - width: 56px; - height: 56px; - border-radius: 56px; - color: #9e3230; - background: #e38c89; - border: 2px solid #9e3230; - - box-shadow: 0px 4px 5px rgba(0, 0, 0, 0.2); -} - -.capsuleBtn { - font-weight: bold; - font-size: 10px; - color: #9e3230; - display: flex; - justify-content: center; - align-items: center; - line-height: 20px; - text-transform: uppercase; - width: 56px; - height: 25px; - border-radius: 40px; - background: #e38c89; - box-shadow: 0px 4px 5px rgba(0, 0, 0, 0.2); - vertical-align: middle; -} - -#controller_start { - position: absolute; - bottom: 20px; - right: 15px; -} - -#controller_select { - position: absolute; - bottom: 20px; - right: 90px; -} - -.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 #9e3230; - border-right: 10px solid #9e3230; - border-bottom: 10px solid #9e3230; - 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: 560px) { - #game canvas { - margin-top: 0px; - width: 100%; - /* max-width: 512px; */ - border: 0px; - border-radius: 0px; - } - #game { - width: 100%; - height: calc(100% - 150px); - } - #char1Logo { - /* height: 70px; */ - padding: 15px 0; - } - nav { - height: 50px; - top: 0; - } -} -@media only screen and (max-width: 800px) { - nav { - display: none; - } -} -@media only screen and (max-device-width: 1080px) { - #char1Logo { - height: 50px; - padding: 10px; - } - - #mobile-notice { - display: block; - } - footer { - display: none; - } -} -@media only screen and (max-device-width: 1080px) and (orientation: landscape) { - #char1Logo { - display: none; - } - #game { - height: 100%; - } -} -@media only screen and (max-device-width: 845px) and (orientation: landscape) { - #char1Logo { - height: 50px; - } - #mobile-notice { - font-size: 0.67rem; - /* bottom: 0; */ - } - #game { - height: calc(100% - 100px); - } - footer { - display: none; - } -} - -@media only screen and (max-device-width: 845px) 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; - } -} - -/* Small devices in landscape */ -@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; - } -} - -/* Devices large enough for landscape */ -@media only screen and (min-width: 300px) and (orientation: landscape) { - #controller { - bottom: 50%; - transform: translateY(50%); - } - a#logo { - overflow: hidden; - height: 80px; - } -} diff --git a/resen/zag/imgs/logo.png b/resen/zag/imgs/logo.png deleted file mode 100644 index 76d7bb002cd8c2bb5d93d4a8dc7318aea6c3ce14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^H9+jo!3HEXKP=n}q!^2X+?^QKos)S9a~60+7Beu&wu3NZ|I?4DKn<~;E{-7;ac{3V@-;c|I0WV$ziA=PE*+fg zdwBtO_@)2xNitkB&$5?9I~iK^98BclOD>RTJ}e<~?12GWI|V{#Iv(8Kw)U|_ock}Z zQIfKMY|cO5`KvSX)XjbG-w)tGLd+fIUG@HREZR7HxCN=&q`wR}*IVULe7IF}!u4QLP W?omotOuP>aeFjfgKbLh*2~7Z0ptiFB diff --git a/resen/zag/index.html b/resen/zag/index.html index bc67d79..15d0a6a 100644 --- a/resen/zag/index.html +++ b/resen/zag/index.html @@ -6,41 +6,38 @@ - + - +

- - - + + \ No newline at end of file diff --git a/resen/zag/index_keyboard_controls.html b/resen/zag/index_keyboard_controls.html deleted file mode 100644 index 476c440..0000000 --- a/resen/zag/index_keyboard_controls.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - XYZ - - - - - - - - - - - -
- No Canvas - Support -
-
- -
-
-
-
-
-
-
Select
-
Start
- -
B
-
A
-
-
- - -
- - - - - - - - \ No newline at end of file diff --git a/resen/zag/js/additions.js b/resen/zag/js/additions.js deleted file mode 100644 index 1a8e831..0000000 --- a/resen/zag/js/additions.js +++ /dev/null @@ -1,18 +0,0 @@ -function fullScreen() { - const body = document.getElementById("gameBody"); // Replace 'canvas' with your canvas element's ID - - if (body) { - body.classList.add("fullscreen"); // Replace 'your-class-name' with the class you want to add - } -} - -// Function to remove a class from the canvas element when the "Esc" key is pressed -document.addEventListener("keydown", function (event) { - if (event.key === "Escape") { - const body = document.getElementById("gameBody"); // Replace 'canvas' with your canvas element's ID - - if (body) { - body.classList.remove("fullscreen"); // Replace 'your-class-name' with the class you want to remove - } - } -}); diff --git a/resen/zag/js/script_keyboard_controls.js b/resen/zag/js/script_keyboard_controls.js deleted file mode 100644 index 8685469..0000000 --- a/resen/zag/js/script_keyboard_controls.js +++ /dev/null @@ -1,1424 +0,0 @@ -/* - * Copyright (C) 2017 Ben Smith - * - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -"use strict"; - -// User configurable. -let ROM_FILENAME = "rom/kmeot_zag.gb"; - -const ENABLE_REWIND = true; -const ENABLE_PAUSE = false; -const ENABLE_SWITCH_PALETTES = true; -const OSGP_DEADZONE = 0.1; // On screen gamepad deadzone range -const CGB_COLOR_CURVE = 2; // 0: none, 1: Sameboy "Emulate Hardware" 2: Gambatte/Gameboy Online - -// List of DMG palettes to switch between. By default it includes all 84 -// built-in palettes. If you want to restrict this, change it to an array of -// the palettes you want to use and change DEFAULT_PALETTE_IDX to the index of the -// default palette in that list. -// -// Example: (only allow one palette with index 16): -// const DEFAULT_PALETTE_IDX = 0; -// const PALETTES = [16]; -// -// Example: (allow three palettes, 16, 32, 64, with default 32): -// const DEFAULT_PALETTE_IDX = 1; -// const PALETTES = [16, 32, 64]; -// -const DEFAULT_PALETTE_IDX = 83; -const 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, -]; - -const RESULT_OK = 0; -const RESULT_ERROR = 1; -const SCREEN_WIDTH = 160; -const SCREEN_HEIGHT = 144; -const SGB_SCREEN_WIDTH = 256; -const SGB_SCREEN_HEIGHT = 224; -const SGB_SCREEN_LEFT = (SGB_SCREEN_WIDTH - SCREEN_WIDTH) >> 1; -const SGB_SCREEN_RIGHT = (SGB_SCREEN_WIDTH + SCREEN_WIDTH) >> 1; -const SGB_SCREEN_TOP = (SGB_SCREEN_HEIGHT - SCREEN_HEIGHT) >> 1; -const SGB_SCREEN_BOTTOM = (SGB_SCREEN_HEIGHT + SCREEN_HEIGHT) >> 1; -const AUDIO_FRAMES = 4096; -const AUDIO_LATENCY_SEC = 0.1; -const MAX_UPDATE_SEC = 5 / 60; -const CPU_TICKS_PER_SECOND = 4194304; -const EVENT_NEW_FRAME = 1; -const EVENT_AUDIO_BUFFER_FULL = 2; -const EVENT_UNTIL_TICKS = 4; -const REWIND_FRAMES_PER_BASE_STATE = 45; -const REWIND_BUFFER_CAPACITY = 4 * 1024 * 1024; -const REWIND_FACTOR = 1.5; -const REWIND_UPDATE_MS = 16; -const GAMEPAD_POLLING_INTERVAL = 1000 / 60 / 4; // When activated, poll for gamepad input about ~4 times per gameboy frame (~240 times second) -const GAMEPAD_KEYMAP_STANDARD_STR = "standard"; // Try to use "standard" HTML5 mapping config if available - -const $ = document.querySelector.bind(document); -let emulator = null; - -const controllerEl = $("#controller"); -const dpadEl = $("#controller_dpad"); -const selectEl = $("#controller_select"); -const startEl = $("#controller_start"); -const bEl = $("#controller_b"); -const aEl = $("#controller_a"); - -const binjgbPromise = Binjgb(); - -const sgbEnabled = window.location.href.includes("sgb=true"); -if (sgbEnabled) { - $("canvas").width = SGB_SCREEN_WIDTH; - $("canvas").height = SGB_SCREEN_HEIGHT; -} else { - $("canvas").width = SCREEN_WIDTH; - $("canvas").height = SCREEN_HEIGHT; -} - -// Extract stuff from the vue.js implementation in demo.js. -class VM { - constructor() { - this.ticks = 0; - this.extRamUpdated = false; - this.paused_ = false; - this.volume = 0.5; - this.palIdx = DEFAULT_PALETTE_IDX; - this.canvas = { - show: true, - useSgbBorder: sgbEnabled, - scale: 3, - }; - this.rewind = { - minTicks: 0, - maxTicks: 0, - }; - setInterval(() => { - if (this.extRamUpdated) { - this.updateExtRam(); - this.extRamUpdated = false; - } - }, 1000); - } - - get paused() { - return this.paused_; - } - set paused(newPaused) { - let oldPaused = this.paused_; - this.paused_ = newPaused; - if (!emulator) return; - if (newPaused == oldPaused) return; - if (newPaused) { - emulator.pause(); - this.ticks = emulator.ticks; - this.rewind.minTicks = emulator.rewind.oldestTicks; - this.rewind.maxTicks = emulator.rewind.newestTicks; - } else { - emulator.resume(); - } - } - - togglePause() { - this.paused = !this.paused; - } - - updateExtRam() { - if (!emulator) return; - const extram = emulator.getExtRam(); - localStorage.setItem("extram", JSON.stringify(Array.from(extram))); - } -} -// // Function to detect if the user is using an iPhone or iPad -// function isIOS() { -// const userAgent = window.navigator.userAgent; -// return /iPad|iPhone|iPod/.test(userAgent); -// } - -const vm = new VM(); - -// Load a ROM. -(async function go() { - // if (isIOS()) { - // ROM_FILENAME = "rom/tzag_kmeot_ios.gb"; - // } - let response = await fetch(ROM_FILENAME); - let romBuffer = await response.arrayBuffer(); - const extRam = new Uint8Array(JSON.parse(localStorage.getItem("extram"))); - Emulator.start(await binjgbPromise, romBuffer, extRam); - emulator.setBuiltinPalette(vm.palIdx); -})(); - -function makeWasmBuffer(module, ptr, size) { - return new Uint8Array(module.HEAP8.buffer, ptr, size); -} - -class Emulator { - static start(module, romBuffer, extRamBuffer) { - Emulator.stop(); - emulator = new Emulator(module, romBuffer, extRamBuffer); - emulator.run(); - } - - static stop() { - if (emulator) { - emulator.destroy(); - emulator = null; - } - } - - constructor(module, romBuffer, extRamBuffer) { - this.module = module; - this.romDataPtr = this.module._malloc(romBuffer.byteLength); - makeWasmBuffer(this.module, this.romDataPtr, romBuffer.byteLength).set( - new Uint8Array(romBuffer) - ); - this.e = this.module._emulator_new_simple( - this.romDataPtr, - romBuffer.byteLength, - Audio.ctx.sampleRate, - AUDIO_FRAMES, - CGB_COLOR_CURVE - ); - if (this.e == 0) { - throw new Error("Invalid ROM."); - } - - this.gamepad = new Gamepad(module, this.e); - this.audio = new Audio(module, this.e); - this.video = new Video(module, this.e, $("canvas")); - this.rewind = new Rewind(module, this.e); - this.rewindIntervalId = 0; - - this.lastRafSec = 0; - this.leftoverTicks = 0; - this.fps = 60; - - if (extRamBuffer) { - this.loadExtRam(extRamBuffer); - } - - this.bindKeys(); - this.bindTouch(); - - this.touchEnabled = "ontouchstart" in document.documentElement; - this.updateOnscreenGamepad(); - - this.gamepad.init(); - } - - destroy() { - this.gamepad.shutdown(); - this.unbindTouch(); - this.unbindKeys(); - this.cancelAnimationFrame(); - clearInterval(this.rewindIntervalId); - this.rewind.destroy(); - this.module._emulator_delete(this.e); - this.module._free(this.romDataPtr); - } - - withNewFileData(cb) { - const fileDataPtr = this.module._ext_ram_file_data_new(this.e); - const buffer = makeWasmBuffer( - this.module, - this.module._get_file_data_ptr(fileDataPtr), - this.module._get_file_data_size(fileDataPtr) - ); - const result = cb(fileDataPtr, buffer); - this.module._file_data_delete(fileDataPtr); - return result; - } - - loadExtRam(extRamBuffer) { - this.withNewFileData((fileDataPtr, buffer) => { - if (buffer.byteLength === extRamBuffer.byteLength) { - buffer.set(new Uint8Array(extRamBuffer)); - this.module._emulator_read_ext_ram(this.e, fileDataPtr); - } - }); - } - - getExtRam() { - return this.withNewFileData((fileDataPtr, buffer) => { - this.module._emulator_write_ext_ram(this.e, fileDataPtr); - return new Uint8Array(buffer); - }); - } - - get isPaused() { - return this.rafCancelToken === null; - } - - pause() { - if (!this.isPaused) { - this.cancelAnimationFrame(); - this.audio.pause(); - this.beginRewind(); - } - } - - resume() { - if (this.isPaused) { - this.endRewind(); - this.requestAnimationFrame(); - this.audio.resume(); - } - } - - setBuiltinPalette(palIdx) { - this.module._emulator_set_builtin_palette(this.e, PALETTES[palIdx]); - } - - get isRewinding() { - return this.rewind.isRewinding; - } - - beginRewind() { - this.rewind.beginRewind(); - } - - rewindToTicks(ticks) { - if (this.rewind.rewindToTicks(ticks)) { - this.runUntil(ticks); - this.video.renderTexture(); - } - } - - endRewind() { - this.rewind.endRewind(); - this.lastRafSec = 0; - this.leftoverTicks = 0; - this.audio.startSec = 0; - } - - set autoRewind(enabled) { - if (enabled) { - this.rewindIntervalId = setInterval(() => { - const oldest = this.rewind.oldestTicks; - const start = this.ticks; - const delta = - ((REWIND_FACTOR * REWIND_UPDATE_MS) / 1000) * CPU_TICKS_PER_SECOND; - const rewindTo = Math.max(oldest, start - delta); - this.rewindToTicks(rewindTo); - vm.ticks = emulator.ticks; - }, REWIND_UPDATE_MS); - } else { - 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(ticks) { - while (true) { - const event = this.module._emulator_run_until_f64(this.e, ticks); - if (event & EVENT_NEW_FRAME) { - this.rewind.pushBuffer(); - this.video.uploadTexture(); - } - if (event & EVENT_AUDIO_BUFFER_FULL && !this.isRewinding) { - this.audio.pushBuffer(); - } - if (event & EVENT_UNTIL_TICKS) { - break; - } - } - if (this.module._emulator_was_ext_ram_updated(this.e)) { - vm.extRamUpdated = true; - } - } - - rafCallback(startMs) { - this.requestAnimationFrame(); - let deltaSec = 0; - if (!this.isRewinding) { - const startSec = startMs / 1000; - deltaSec = Math.max(startSec - (this.lastRafSec || startSec), 0); - const startTicks = this.ticks; - const deltaTicks = - Math.min(deltaSec, MAX_UPDATE_SEC) * CPU_TICKS_PER_SECOND; - const runUntilTicks = startTicks + deltaTicks - this.leftoverTicks; - this.runUntil(runUntilTicks); - this.leftoverTicks = (this.ticks - runUntilTicks) | 0; - this.lastRafSec = startSec; - } - const lerp = (from, to, alpha) => alpha * from + (1 - alpha) * to; - this.fps = lerp(this.fps, Math.min(1 / deltaSec, 10000), 0.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(event) { - if (event.currentTarget.id in this.touchFuncs) { - this.touchFuncs[event.currentTarget.id](true); - event.currentTarget.classList.add("btnPressed"); - event.preventDefault(); - } - } - - buttonTouchEnd(event) { - if (event.currentTarget.id in this.touchFuncs) { - this.touchFuncs[event.currentTarget.id](false); - event.currentTarget.classList.remove("btnPressed"); - event.preventDefault(); - } - } - - dpadTouchStartMove(event) { - const rect = event.currentTarget.getBoundingClientRect(); - const x = - (2 * (event.targetTouches[0].clientX - rect.left)) / rect.width - 1; - const y = - (2 * (event.targetTouches[0].clientY - rect.top)) / rect.height - 1; - - if (Math.abs(x) > OSGP_DEADZONE) { - if (y > x && y < -x) { - this.setJoypLeft(true); - this.setJoypRight(false); - } else if (y < x && y > -x) { - this.setJoypLeft(false); - this.setJoypRight(true); - } - } else { - this.setJoypLeft(false); - this.setJoypRight(false); - } - - if (Math.abs(y) > OSGP_DEADZONE) { - if (x > y && x < -y) { - this.setJoypUp(true); - this.setJoypDown(false); - } else if (x < y && x > -y) { - this.setJoypUp(false); - this.setJoypDown(true); - } - } else { - this.setJoypUp(false); - this.setJoypDown(false); - } - event.preventDefault(); - } - - dpadTouchEnd(event) { - this.setJoypLeft(false); - this.setJoypRight(false); - this.setJoypUp(false); - this.setJoypDown(false); - event.preventDefault(); - } - - touchRestore() { - this.touchEnabled = true; - this.updateOnscreenGamepad(); - } - - bindKeys() { - this.keyFuncs = { - Backspace: this.keyRewind.bind(this), - " ": this.keyPause.bind(this), - "[": this.keyPrevPalette.bind(this), - "]": this.keyNextPalette.bind(this), - }; - - if (customControls.down && customControls.down.length > 0) { - customControls.down.forEach((k) => { - this.keyFuncs[k] = this.setJoypDown.bind(this); - }); - } else { - // keys assigned to DOWN button on game boy - this.keyFuncs["ArrowDown"] = this.setJoypDown.bind(this); - this.keyFuncs["s"] = this.setJoypDown.bind(this); - this.keyFuncs["S"] = this.setJoypDown.bind(this); - - this.keyFuncs["ד"] = this.setJoypDown.bind(this); - } - - if (customControls.left && customControls.left.length > 0) { - customControls.left.forEach((k) => { - this.keyFuncs[k] = this.setJoypLeft.bind(this); - }); - } else { - // keys assigned to LEFT button on game boy - this.keyFuncs["ArrowLeft"] = this.setJoypLeft.bind(this); - this.keyFuncs["a"] = this.setJoypLeft.bind(this); - this.keyFuncs["ש"] = this.setJoypLeft.bind(this); - this.keyFuncs["A"] = this.setJoypDown.bind(this); - } - - if (customControls.right && customControls.right.length > 0) { - customControls.right.forEach((k) => { - this.keyFuncs[k] = this.setJoypRight.bind(this); - }); - } else { - // keys assigned to RIGHT button on game boy - this.keyFuncs["ArrowRight"] = this.setJoypRight.bind(this); - this.keyFuncs["d"] = this.setJoypRight.bind(this); - this.keyFuncs["ג"] = this.setJoypRight.bind(this); - this.keyFuncs["D"] = this.setJoypDown.bind(this); - } - - if (customControls.up && customControls.up.length > 0) { - customControls.up.forEach((k) => { - this.keyFuncs[k] = this.setJoypUp.bind(this); - }); - } else { - // keys assigned to UP button on game boy - - this.keyFuncs["ArrowUp"] = this.setJoypUp.bind(this); - this.keyFuncs["w"] = this.setJoypUp.bind(this); - this.keyFuncs["W"] = this.setJoypUp.bind(this); - this.keyFuncs["'"] = this.setJoypUp.bind(this); - } - - if (customControls.a && customControls.a.length > 0) { - customControls.a.forEach((k) => { - this.keyFuncs[k] = this.setJoypA.bind(this); - }); - } else { - // keys assigned to A button on game boy - - this.keyFuncs["z"] = this.setJoypA.bind(this); - this.keyFuncs["ז"] = this.setJoypA.bind(this); - this.keyFuncs["ח"] = this.setJoypA.bind(this); - this.keyFuncs["j"] = this.setJoypA.bind(this); - this.keyFuncs["Z"] = this.setJoypA.bind(this); - this.keyFuncs["j"] = this.setJoypA.bind(this); - // this.keyFuncs["Alt"] = this.setJoypA.bind(this); - } - - if (customControls.b && customControls.b.length > 0) { - customControls.b.forEach((k) => { - this.keyFuncs[k] = this.setJoypB.bind(this); - }); - } else { - // keys assigned to B button on game boy - this.keyFuncs["x"] = this.setJoypB.bind(this); - this.keyFuncs["X"] = this.setJoypB.bind(this); - this.keyFuncs["ס"] = this.setJoypB.bind(this); - this.keyFuncs["ל"] = this.setJoypB.bind(this); - this.keyFuncs["k"] = this.setJoypB.bind(this); - this.keyFuncs["K"] = this.setJoypB.bind(this); - // this.keyFuncs["Control"] = this.setJoypB.bind(this); - } - - if (customControls.start && customControls.start.length > 0) { - customControls.start.forEach((k) => { - this.keyFuncs[k] = this.setJoypStart.bind(this); - }); - } else { - // keys assigned to START button on game boy - - this.keyFuncs["Enter"] = this.setJoypStart.bind(this); - } - - if (customControls.select && customControls.select.length > 0) { - customControls.select.forEach((k) => { - this.keyFuncs[k] = this.setJoypSelect.bind(this); - }); - } else { - // keys assigned to SELECT button on game boy - - this.keyFuncs["Shift"] = this.setJoypSelect.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(event) { - if (event.key === "w" && (event.metaKey || event.ctrlKey)) { - return; - } - if (event.key in this.keyFuncs) { - if (this.touchEnabled) { - this.touchEnabled = false; - this.updateOnscreenGamepad(); - } - this.keyFuncs[event.key](true); - event.preventDefault(); - } - } - - keyUp(event) { - if (event.key in this.keyFuncs) { - this.keyFuncs[event.key](false); - event.preventDefault(); - } - } - - keyRewind(isKeyDown) { - if (!ENABLE_REWIND) { - return; - } - if (this.isRewinding !== isKeyDown) { - if (isKeyDown) { - vm.paused = true; - this.autoRewind = true; - } else { - this.autoRewind = false; - vm.paused = false; - } - } - } - - keyPause(isKeyDown) { - if (!ENABLE_PAUSE) { - return; - } - if (isKeyDown) vm.togglePause(); - } - - keyPrevPalette(isKeyDown) { - if (!ENABLE_SWITCH_PALETTES) { - return; - } - if (isKeyDown) { - vm.palIdx = (vm.palIdx + PALETTES.length - 1) % PALETTES.length; - emulator.setBuiltinPalette(vm.palIdx); - } - } - - keyNextPalette(isKeyDown) { - if (!ENABLE_SWITCH_PALETTES) { - return; - } - if (isKeyDown) { - vm.palIdx = (vm.palIdx + 1) % PALETTES.length; - emulator.setBuiltinPalette(vm.palIdx); - } - } - - setJoypDown(set) { - this.module._set_joyp_down(this.e, set); - } - setJoypUp(set) { - this.module._set_joyp_up(this.e, set); - } - setJoypLeft(set) { - this.module._set_joyp_left(this.e, set); - } - setJoypRight(set) { - this.module._set_joyp_right(this.e, set); - } - setJoypSelect(set) { - this.module._set_joyp_select(this.e, set); - } - setJoypStart(set) { - this.module._set_joyp_start(this.e, set); - } - setJoypB(set) { - this.module._set_joyp_B(this.e, set); - } - setJoypA(set) { - this.module._set_joyp_A(this.e, set); - } -} - -class Gamepad { - constructor(module, e) { - this.module = module; - this.e = e; - } - - // Load a key map for gamepad-to-gameboy buttons - bindKeys(strMapping) { - this.GAMEPAD_KEYMAP_STANDARD = [ - { - gb_key: "b", - gp_button: 0, - type: "button", - gp_bind: this.module._set_joyp_B.bind(null, this.e), - }, - { - gb_key: "a", - gp_button: 1, - type: "button", - gp_bind: this.module._set_joyp_A.bind(null, this.e), - }, - { - gb_key: "select", - gp_button: 8, - type: "button", - gp_bind: this.module._set_joyp_select.bind(null, this.e), - }, - { - gb_key: "start", - gp_button: 9, - type: "button", - gp_bind: this.module._set_joyp_start.bind(null, this.e), - }, - { - gb_key: "up", - gp_button: 12, - type: "button", - gp_bind: this.module._set_joyp_up.bind(null, this.e), - }, - { - gb_key: "down", - gp_button: 13, - type: "button", - gp_bind: this.module._set_joyp_down.bind(null, this.e), - }, - { - gb_key: "left", - gp_button: 14, - type: "button", - gp_bind: this.module._set_joyp_left.bind(null, this.e), - }, - { - gb_key: "right", - gp_button: 15, - type: "button", - gp_bind: this.module._set_joyp_right.bind(null, this.e), - }, - ]; - - this.GAMEPAD_KEYMAP_DEFAULT = [ - { - gb_key: "a", - gp_button: 0, - type: "button", - gp_bind: this.module._set_joyp_A.bind(null, this.e), - }, - { - gb_key: "b", - gp_button: 1, - type: "button", - gp_bind: this.module._set_joyp_B.bind(null, this.e), - }, - { - gb_key: "select", - gp_button: 2, - type: "button", - gp_bind: this.module._set_joyp_select.bind(null, this.e), - }, - { - gb_key: "start", - gp_button: 3, - type: "button", - gp_bind: this.module._set_joyp_start.bind(null, this.e), - }, - { - gb_key: "up", - gp_button: 2, - type: "axis", - gp_bind: this.module._set_joyp_up.bind(null, this.e), - }, - { - gb_key: "down", - gp_button: 3, - type: "axis", - gp_bind: this.module._set_joyp_down.bind(null, this.e), - }, - { - gb_key: "left", - gp_button: 0, - type: "axis", - gp_bind: this.module._set_joyp_left.bind(null, this.e), - }, - { - gb_key: "right", - gp_button: 1, - type: "axis", - gp_bind: this.module._set_joyp_right.bind(null, this.e), - }, - ]; - - // Try to use the w3c "standard" gamepad mapping if available - // (Chrome/V8 seems to do that better than Firefox) - // - // Otherwise use a default mapping that assigns - // A/B/Select/Start to the first four buttons, - // and U/D/L/R to the first two axes. - if (strMapping === GAMEPAD_KEYMAP_STANDARD_STR) { - this.gp.keybinds = this.GAMEPAD_KEYMAP_STANDARD; - } else { - this.gp.keybinds = this.GAMEPAD_KEYMAP_DEFAULT; - } - } - - cacheValues(gamepad) { - // Read Buttons - for (let k = 0; k < gamepad.buttons.length; k++) { - // .value is for analog, .pressed is for boolean buttons - this.gp.buttons.cur[k] = - gamepad.buttons[k].value > 0 || gamepad.buttons[k].pressed == true; - - // Update state changed if not on first input pass - if (this.gp.buttons.last !== undefined) { - this.gp.buttons.changed[k] = - this.gp.buttons.cur[k] != this.gp.buttons.last[k]; - } - } - - // Read Axes - for (let k = 0; k < gamepad.axes.length; k++) { - // Decode each dpad axis into two buttons, one for each direction - this.gp.axes.cur[k * 2] = gamepad.axes[k] < 0; - this.gp.axes.cur[k * 2 + 1] = gamepad.axes[k] > 0; - - // Update state changed if not on first input pass - if (this.gp.axes.last !== undefined) { - this.gp.axes.changed[k * 2] = - this.gp.axes.cur[k * 2] != this.gp.axes.last[k * 2]; - this.gp.axes.changed[k * 2 + 1] = - this.gp.axes.cur[k * 2 + 1] != this.gp.axes.last[k * 2 + 1]; - } - } - - // Save current state for comparison on next input - this.gp.axes.last = this.gp.axes.cur.slice(0); - this.gp.buttons.last = this.gp.buttons.cur.slice(0); - } - - handleButton(keyBind) { - let buttonCache; - - // Select button / axis cache based on key bind type - if (keyBind.type === "button") { - buttonCache = this.gp.buttons; - } else if (keyBind.type === "axis") { - buttonCache = this.gp.axes; - } - - // Make sure the button exists in the cache array - if (keyBind.gp_button < buttonCache.changed.length) { - // Send the button state if it's changed - if (buttonCache.changed[keyBind.gp_button]) { - if (buttonCache.cur[keyBind.gp_button]) { - // Gamepad Button Down - keyBind.gp_bind(true); - } else { - // Gamepad Button Up - keyBind.gp_bind(false); - } - } - } - } - - getCurrent() { - // Chrome requires retrieving a new gamepad object - // every time button state is queried (the existing object - // will have stale button state). Just do that for all browsers - let gamepad = navigator.getGamepads()[this.gp.apiID]; - - if (gamepad) { - if (gamepad.connected) { - return gamepad; - } - } - - return undefined; - } - - update() { - let gamepad = this.getCurrent(); - - if (gamepad !== undefined) { - // Cache gamepad input values - this.cacheValues(gamepad); - - // Loop through buttons and send changes if needed - for (let i = 0; i < this.gp.keybinds.length; i++) { - this.handleButton(this.gp.keybinds[i]); - } - } else { - // Gamepad is no longer present, disconnect - this.releaseGamepad(); - } - } - - startGamepad(gamepad) { - // Make sure it has enough buttons and axes - if ( - gamepad.mapping === GAMEPAD_KEYMAP_STANDARD_STR || - (gamepad.axes.length >= 2 && gamepad.buttons.length >= 4) - ) { - // Save API index for polling (required by Chrome/V8) - this.gp.apiID = gamepad.index; - - // Assign gameboy keys to the gamepad - this.bindKeys(gamepad.mapping); - - // Start polling the gamepad for input - this.gp.timerID = setInterval( - () => this.update(), - GAMEPAD_POLLING_INTERVAL - ); - } - } - - releaseGamepad() { - // Stop polling the gamepad for input - if (this.gp.timerID !== undefined) { - clearInterval(this.gp.timerID); - } - - // Clear previous button history and controller info - this.gp.axes.last = undefined; - this.gp.buttons.last = undefined; - this.gp.keybinds = undefined; - - this.gp.apiID = undefined; - } - - // If a gamepad was already connected on this page - // and released, it won't fire another connect event. - // So try to find any that might be present - checkAlreadyConnected() { - let gamepads = navigator.getGamepads(); - - // If any gamepads are already attached to the page, - // use the first one that is connected - for (let idx = 0; idx < gamepads.length; idx++) { - if (gamepads[idx] !== undefined && gamepads[idx] !== null) { - if (gamepads[idx].connected === true) { - this.startGamepad(gamepads[idx]); - } - } - } - } - - // Event handler for when a gamepad is connected - eventConnected(event) { - this.startGamepad(navigator.getGamepads()[event.gamepad.index]); - } - - // Event handler for when a gamepad is disconnected - eventDisconnected(event) { - this.releaseGamepad(); - } - - // Register event connection handlers for gamepads - init() { - // gamepad related vars - this.gp = { - apiID: undefined, - timerID: undefined, - keybinds: undefined, - axes: { last: undefined, cur: [], changed: [] }, - buttons: { last: undefined, cur: [], changed: [] }, - }; - - // Check for previously attached gamepads that might - // not emit a gamepadconnected() event - this.checkAlreadyConnected(); - - this.boundGamepadConnected = this.eventConnected.bind(this); - this.boundGamepadDisconnected = this.eventDisconnected.bind(this); - - // When a gamepad connects, start polling it for input - window.addEventListener("gamepadconnected", this.boundGamepadConnected); - - // When a gamepad disconnects, shut down polling for input - window.addEventListener( - "gamepaddisconnected", - this.boundGamepadDisconnected - ); - } - - // Release event connection handlers and settings - shutdown() { - this.releaseGamepad(); - window.removeEventListener("gamepadconnected", this.boundGamepadConnected); - window.removeEventListener( - "gamepaddisconnected", - this.boundGamepadDisconnected - ); - } -} - -class Audio { - constructor(module, e) { - this.started = false; - this.module = module; - 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, true); - window.addEventListener("click", this.boundStartPlayback, true); - window.addEventListener("touchend", this.boundStartPlayback, true); - } - - startPlayback() { - window.removeEventListener("touchend", this.boundStartPlayback, true); - window.removeEventListener("keydown", this.boundStartPlayback, true); - window.removeEventListener("click", this.boundStartPlayback, true); - this.started = true; - this.resume(); - } - - get sampleRate() { - return Audio.ctx.sampleRate; - } - - pushBuffer() { - if (!this.started) { - return; - } - const nowSec = Audio.ctx.currentTime; - const nowPlusLatency = nowSec + AUDIO_LATENCY_SEC; - const volume = vm.volume; - this.startSec = this.startSec || nowPlusLatency; - if (this.startSec >= nowSec) { - const buffer = Audio.ctx.createBuffer(2, AUDIO_FRAMES, this.sampleRate); - const channel0 = buffer.getChannelData(0); - const channel1 = buffer.getChannelData(1); - for (let i = 0; i < AUDIO_FRAMES; i++) { - channel0[i] = (this.buffer[2 * i] * volume) / 255; - channel1[i] = (this.buffer[2 * i + 1] * volume) / 255; - } - const bufferSource = Audio.ctx.createBufferSource(); - bufferSource.buffer = buffer; - bufferSource.connect(Audio.ctx.destination); - bufferSource.start(this.startSec); - const bufferSec = AUDIO_FRAMES / this.sampleRate; - this.startSec += bufferSec; - } else { - console.log( - "Resetting audio (" + - this.startSec.toFixed(2) + - " < " + - nowSec.toFixed(2) + - ")" - ); - this.startSec = nowPlusLatency; - } - } - - pause() { - if (!this.started) { - return; - } - Audio.ctx.suspend(); - } - - resume() { - if (!this.started) { - return; - } - Audio.ctx.resume(); - } -} - -Audio.ctx = new AudioContext(); - -class Video { - constructor(module, e, el) { - this.module = module; - // Both iPhone and Desktop Safari dont't upscale using image-rendering: pixelated - // on webgl canvases. See https://bugs.webkit.org/show_bug.cgi?id=193895. - // For now, default to Canvas2D. - if (window.navigator.userAgent.match(/iPhone|iPad|15.[0-9] Safari/)) { - this.renderer = new Canvas2DRenderer(el); - } else { - try { - this.renderer = new WebGLRenderer(el); - } catch (error) { - console.log(`Error creating WebGLRenderer: ${error}`); - this.renderer = new Canvas2DRenderer(el); - } - } - this.buffer = makeWasmBuffer( - this.module, - this.module._get_frame_buffer_ptr(e), - this.module._get_frame_buffer_size(e) - ); - this.sgbBuffer = makeWasmBuffer( - this.module, - this.module._get_sgb_frame_buffer_ptr(e), - this.module._get_sgb_frame_buffer_size(e) - ); - } - - uploadTexture() { - this.renderer.uploadTextures(this.buffer, this.sgbBuffer); - } - - renderTexture() { - this.renderer.renderTextures(); - } -} - -class Canvas2DRenderer { - constructor(el) { - this.ctx = el.getContext("2d"); - this.imageData = this.ctx.createImageData(SCREEN_WIDTH, SCREEN_HEIGHT); - this.sgbImageData = this.ctx.createImageData( - SGB_SCREEN_WIDTH, - SGB_SCREEN_HEIGHT - ); - - this.overlayCanvas = document.createElement("canvas"); - this.overlayCanvas.width = SGB_SCREEN_WIDTH; - this.overlayCanvas.height = SGB_SCREEN_HEIGHT; - this.overlayCtx = this.overlayCanvas.getContext("2d"); - } - - uploadTextures(buffer, sgbBuffer) { - this.imageData.data.set(buffer); - this.sgbImageData.data.set(sgbBuffer); - } - - renderTextures() { - if (vm.canvas.useSgbBorder) { - this.ctx.putImageData(this.imageData, SGB_SCREEN_LEFT, SGB_SCREEN_TOP); - this.overlayCtx.putImageData(this.sgbImageData, 0, 0); - this.ctx.drawImage(this.overlayCanvas, 0, 0); - } else { - this.ctx.putImageData(this.imageData, 0, 0); - } - } -} - -class WebGLRenderer { - constructor(el) { - const gl = (this.gl = el.getContext("webgl", { - preserveDrawingBuffer: true, - })); - if (gl === null) { - throw new Error("unable to create webgl context"); - } - - function compileShader(type, source) { - const shader = gl.createShader(type); - gl.shaderSource(shader, source); - gl.compileShader(shader); - if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { - throw new Error(`compileShader failed: ${gl.getShaderInfoLog(shader)}`); - } - return shader; - } - - const vertexShader = compileShader( - gl.VERTEX_SHADER, - `attribute vec2 aPos; - attribute vec2 aTexCoord; - varying highp vec2 vTexCoord; - void main(void) { - gl_Position = vec4(aPos, 0.0, 1.0); - vTexCoord = aTexCoord; - }` - ); - const fragmentShader = compileShader( - gl.FRAGMENT_SHADER, - `varying highp vec2 vTexCoord; - uniform sampler2D uSampler; - void main(void) { - gl_FragColor = texture2D(uSampler, vTexCoord); - }` - ); - - const program = gl.createProgram(); - gl.attachShader(program, vertexShader); - gl.attachShader(program, fragmentShader); - gl.linkProgram(program); - if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { - throw new Error(`program link failed: ${gl.getProgramInfoLog(program)}`); - } - gl.useProgram(program); - - this.aPos = gl.getAttribLocation(program, "aPos"); - this.aTexCoord = gl.getAttribLocation(program, "aTexCoord"); - this.uSampler = gl.getUniformLocation(program, "uSampler"); - - this.fbTexture = this.createTexture(); - this.sgbFbTexture = this.createTexture(); - - const invLerpClipSpace = (x, max) => 2 * (x / max) - 1; - const l = invLerpClipSpace(SGB_SCREEN_LEFT, SGB_SCREEN_WIDTH); - const r = invLerpClipSpace(SGB_SCREEN_RIGHT, SGB_SCREEN_WIDTH); - const t = -invLerpClipSpace(SGB_SCREEN_TOP, SGB_SCREEN_HEIGHT); - const b = -invLerpClipSpace(SGB_SCREEN_BOTTOM, SGB_SCREEN_HEIGHT); - const w = SCREEN_WIDTH / 256, - sw = SGB_SCREEN_WIDTH / 256; - const h = SCREEN_HEIGHT / 256, - sh = SGB_SCREEN_HEIGHT / 256; - - const verts = new Float32Array([ - // fb only - -1, - -1, - 0, - h, - +1, - -1, - w, - h, - -1, - +1, - 0, - 0, - +1, - +1, - w, - 0, - - // sgb fb - l, - b, - 0, - h, - r, - b, - w, - h, - l, - t, - 0, - 0, - r, - t, - w, - 0, - - // sgb border - -1, - -1, - 0, - sh, - +1, - -1, - sw, - sh, - -1, - +1, - 0, - 0, - +1, - +1, - sw, - 0, - ]); - - const buffer = gl.createBuffer(); - this.gl.bindBuffer(gl.ARRAY_BUFFER, buffer); - gl.bufferData(gl.ARRAY_BUFFER, verts, gl.STATIC_DRAW); - - gl.enableVertexAttribArray(this.aPos); - gl.enableVertexAttribArray(this.aTexCoord); - gl.vertexAttribPointer(this.aPos, 2, gl.FLOAT, gl.FALSE, 16, 0); - gl.vertexAttribPointer(this.aTexCoord, 2, gl.FLOAT, gl.FALSE, 16, 8); - gl.uniform1i(this.uSampler, 0); - } - - createTexture() { - const gl = this.gl; - const texture = gl.createTexture(); - gl.bindTexture(gl.TEXTURE_2D, texture); - gl.texImage2D( - gl.TEXTURE_2D, - 0, - gl.RGBA, - 256, - 256, - 0, - gl.RGBA, - gl.UNSIGNED_BYTE, - null - ); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); - return texture; - } - - uploadTextures(buffer, sgbBuffer) { - const gl = this.gl; - gl.bindTexture(gl.TEXTURE_2D, this.fbTexture); - gl.texSubImage2D( - gl.TEXTURE_2D, - 0, - 0, - 0, - SCREEN_WIDTH, - SCREEN_HEIGHT, - gl.RGBA, - gl.UNSIGNED_BYTE, - buffer - ); - - gl.bindTexture(gl.TEXTURE_2D, this.sgbFbTexture); - gl.texSubImage2D( - gl.TEXTURE_2D, - 0, - 0, - 0, - SGB_SCREEN_WIDTH, - SGB_SCREEN_HEIGHT, - gl.RGBA, - gl.UNSIGNED_BYTE, - sgbBuffer - ); - } - - renderTextures() { - const gl = this.gl; - gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); - gl.clearColor(0.5, 0.5, 0.5, 1.0); - gl.clear(gl.COLOR_BUFFER_BIT); - - if (vm.canvas.useSgbBorder) { - gl.bindTexture(gl.TEXTURE_2D, this.fbTexture); - gl.drawArrays(gl.TRIANGLE_STRIP, 4, 4); - - gl.enable(gl.BLEND); - gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); - gl.bindTexture(gl.TEXTURE_2D, this.sgbFbTexture); - gl.drawArrays(gl.TRIANGLE_STRIP, 8, 4); - gl.disable(gl.BLEND); - } else { - gl.bindTexture(gl.TEXTURE_2D, this.fbTexture); - gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4); - } - } -} - -class Rewind { - constructor(module, e) { - this.module = module; - 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() { - if (!this.isRewinding) { - this.module._rewind_append(this.bufferPtr, this.e); - } - } - - get isRewinding() { - return this.statePtr !== 0; - } - - beginRewind() { - if (this.isRewinding) return; - this.statePtr = this.module._rewind_begin( - this.e, - this.bufferPtr, - this.joypadBufferPtr - ); - } - - rewindToTicks(ticks) { - if (!this.isRewinding) return; - return ( - this.module._rewind_to_ticks_wrapper(this.statePtr, ticks) === RESULT_OK - ); - } - - endRewind() { - if (!this.isRewinding) return; - this.module._emulator_set_default_joypad_callback( - this.e, - this.joypadBufferPtr - ); - this.module._rewind_end(this.statePtr); - this.statePtr = 0; - } -} diff --git a/resen/zag/rom/kmeot_zag.gb b/resen/zag/kmeot_zag.gb similarity index 100% rename from resen/zag/rom/kmeot_zag.gb rename to resen/zag/kmeot_zag.gb diff --git a/resen/zag/js/script.js b/resen/zag/script.js similarity index 84% rename from resen/zag/js/script.js rename to resen/zag/script.js index 5665553..bcfc0cb 100644 --- a/resen/zag/js/script.js +++ b/resen/zag/script.js @@ -7,7 +7,7 @@ "use strict"; // User configurable. -let ROM_FILENAME = "rom/kmeot_zag.gb"; +let ROM_FILENAME = "kmeot_zag.gb"; const ENABLE_REWIND = true; const ENABLE_PAUSE = false; @@ -145,9 +145,6 @@ const vm = new VM(); // Load a ROM. (async function go() { - // if (isIOS()) { - // ROM_FILENAME = "rom/tzag_kmeot_ios.gb"; - // } let response = await fetch(ROM_FILENAME); let romBuffer = await response.arrayBuffer(); const extRam = new Uint8Array(JSON.parse(localStorage.getItem("extram"))); @@ -215,8 +212,6 @@ class Emulator { destroy() { this.gamepad.shutdown(); - this.unbindTouch(); - // this.unbindKeys(); this.cancelAnimationFrame(); clearInterval(this.rewindIntervalId); this.rewind.destroy(); @@ -385,63 +380,47 @@ class Emulator { this.boundButtonTouchStart = this.buttonTouchStart.bind(this); this.boundButtonTouchEnd = this.buttonTouchEnd.bind(this); + selectEl.addEventListener("touchstart", this.boundButtonTouchStart); selectEl.addEventListener("touchend", this.boundButtonTouchEnd); selectEl.addEventListener("mousedown", this.boundButtonTouchStart); selectEl.addEventListener("mouseup", this.boundButtonTouchEnd); + selectEl.addEventListener("mouseleave", this.boundButtonTouchEnd); startEl.addEventListener("touchstart", this.boundButtonTouchStart); startEl.addEventListener("touchend", this.boundButtonTouchEnd); startEl.addEventListener("mousedown", this.boundButtonTouchStart); startEl.addEventListener("mouseup", this.boundButtonTouchEnd); + startEl.addEventListener("mouseleave", this.boundButtonTouchEnd); bEl.addEventListener("touchstart", this.boundButtonTouchStart); bEl.addEventListener("touchend", this.boundButtonTouchEnd); bEl.addEventListener("mousedown", this.boundButtonTouchStart); bEl.addEventListener("mouseup", this.boundButtonTouchEnd); + bEl.addEventListener("mouseleave", this.boundButtonTouchEnd); aEl.addEventListener("touchstart", this.boundButtonTouchStart); aEl.addEventListener("touchend", this.boundButtonTouchEnd); aEl.addEventListener("mousedown", this.boundButtonTouchStart); aEl.addEventListener("mouseup", this.boundButtonTouchEnd); + aEl.addEventListener("mouseleave", 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); dpadEl.addEventListener("mousedown", this.boundDpadTouchStartMove); dpadEl.addEventListener("mousemove", this.boundDpadTouchStartMove); dpadEl.addEventListener("mouseup", this.boundDpadTouchEnd); + dpadEl.addEventListener("mouseleave", this.boundDpadTouchEnd); this.boundTouchRestore = this.touchRestore.bind(this); window.addEventListener("touchstart", this.boundTouchRestore); window.addEventListener("mousedown", this.boundTouchRestore); } - unbindTouch() { - console.log("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); - dpadEl.addEventListener("mousedown", this.boundDpadTouchStartMove); - dpadEl.addEventListener("mousemove", this.boundDpadTouchStartMove); - dpadEl.addEventListener("mouseup", this.boundDpadTouchEnd); - dpadEl.addEventListener("mouseleave", this.boundDpadTouchEnd); - } - buttonTouchStart(event) { if (event.currentTarget.id in this.touchFuncs) { this.touchFuncs[event.currentTarget.id](true); @@ -457,54 +436,7 @@ class Emulator { event.preventDefault(); } } - // original code - // dpadTouchStartMove(event) { - // const rect = event.currentTarget.getBoundingClientRect(); - - // const x = - // (2 * (event.targetTouches[0].clientX - rect.left)) / rect.width - 1; - // const y = - // (2 * (event.targetTouches[0].clientY - rect.top)) / rect.height - 1; - // if (event.targetTouches && event.targetTouches[0]) { - // x = (2 * (event.targetTouches[0].clientX - rect.left)) / rect.width - 1; - // y = (2 * (event.targetTouches[0].clientY - rect.top)) / rect.height - 1; - // } else if (event.clientX && event.clientY) { - // // Handle mouse events - // x = (2 * (event.clientX - rect.left)) / rect.width - 1; - // y = (2 * (event.clientY - rect.top)) / rect.height - 1; - // } else { - // return; // Exit if we can't get coordinates - // } - - // // Rest of the function using x and y... - - // if (Math.abs(x) > OSGP_DEADZONE) { - // if (y > x && y < -x) { - // this.setJoypLeft(true); - // this.setJoypRight(false); - // } else if (y < x && y > -x) { - // this.setJoypLeft(false); - // this.setJoypRight(true); - // } - // } else { - // this.setJoypLeft(false); - // this.setJoypRight(false); - // } - - // if (Math.abs(y) > OSGP_DEADZONE) { - // if (x > y && x < -y) { - // this.setJoypUp(true); - // this.setJoypDown(false); - // } else if (x < y && x > -y) { - // this.setJoypUp(false); - // this.setJoypDown(true); - // } - // } else { - // this.setJoypUp(false); - // this.setJoypDown(false); - // } - // event.preventDefault(); - // } + dpadTouchStartMove(event) { // works but has unwanted diagonal movement @@ -555,14 +487,6 @@ class Emulator { event.preventDefault(); } - //original code - // dpadTouchEnd(event) { - // this.setJoypLeft(false); - // this.setJoypRight(false); - // this.setJoypUp(false); - // this.setJoypDown(false); - // event.preventDefault(); - // } dpadTouchEnd(event) { this.setJoypLeft(false); this.setJoypRight(false); @@ -693,13 +617,6 @@ class Emulator { window.addEventListener("keyup", this.boundKeyUp); } - unbindKeys() { - console.log("unbindKeys"); - - window.removeEventListener("keydown", this.boundKeyDown); - window.removeEventListener("keyup", this.boundKeyUp); - } - keyDown(event) { if (event.key === "w" && (event.metaKey || event.ctrlKey)) { return; @@ -795,122 +712,6 @@ class Gamepad { this.e = e; } - // Load a key map for gamepad-to-gameboy buttons - // bindKeys(strMapping) { - // this.GAMEPAD_KEYMAP_STANDARD = [ - // { - // gb_key: "b", - // gp_button: 0, - // type: "button", - // gp_bind: this.module._set_joyp_B.bind(null, this.e), - // }, - // { - // gb_key: "a", - // gp_button: 1, - // type: "button", - // gp_bind: this.module._set_joyp_A.bind(null, this.e), - // }, - // { - // gb_key: "select", - // gp_button: 8, - // type: "button", - // gp_bind: this.module._set_joyp_select.bind(null, this.e), - // }, - // { - // gb_key: "start", - // gp_button: 9, - // type: "button", - // gp_bind: this.module._set_joyp_start.bind(null, this.e), - // }, - // { - // gb_key: "up", - // gp_button: 12, - // type: "button", - // gp_bind: this.module._set_joyp_up.bind(null, this.e), - // }, - // { - // gb_key: "down", - // gp_button: 13, - // type: "button", - // gp_bind: this.module._set_joyp_down.bind(null, this.e), - // }, - // { - // gb_key: "left", - // gp_button: 14, - // type: "button", - // gp_bind: this.module._set_joyp_left.bind(null, this.e), - // }, - // { - // gb_key: "right", - // gp_button: 15, - // type: "button", - // gp_bind: this.module._set_joyp_right.bind(null, this.e), - // }, - // ]; - - // this.GAMEPAD_KEYMAP_DEFAULT = [ - // { - // gb_key: "a", - // gp_button: 0, - // type: "button", - // gp_bind: this.module._set_joyp_A.bind(null, this.e), - // }, - // { - // gb_key: "b", - // gp_button: 1, - // type: "button", - // gp_bind: this.module._set_joyp_B.bind(null, this.e), - // }, - // { - // gb_key: "select", - // gp_button: 2, - // type: "button", - // gp_bind: this.module._set_joyp_select.bind(null, this.e), - // }, - // { - // gb_key: "start", - // gp_button: 3, - // type: "button", - // gp_bind: this.module._set_joyp_start.bind(null, this.e), - // }, - // { - // gb_key: "up", - // gp_button: 2, - // type: "axis", - // gp_bind: this.module._set_joyp_up.bind(null, this.e), - // }, - // { - // gb_key: "down", - // gp_button: 3, - // type: "axis", - // gp_bind: this.module._set_joyp_down.bind(null, this.e), - // }, - // { - // gb_key: "left", - // gp_button: 0, - // type: "axis", - // gp_bind: this.module._set_joyp_left.bind(null, this.e), - // }, - // { - // gb_key: "right", - // gp_button: 1, - // type: "axis", - // gp_bind: this.module._set_joyp_right.bind(null, this.e), - // }, - // ]; - - // // Try to use the w3c "standard" gamepad mapping if available - // // (Chrome/V8 seems to do that better than Firefox) - // // - // // Otherwise use a default mapping that assigns - // // A/B/Select/Start to the first four buttons, - // // and U/D/L/R to the first two axes. - // if (strMapping === GAMEPAD_KEYMAP_STANDARD_STR) { - // this.gp.keybinds = this.GAMEPAD_KEYMAP_STANDARD; - // } else { - // this.gp.keybinds = this.GAMEPAD_KEYMAP_DEFAULT; - // } - // } cacheValues(gamepad) { // Read Buttons diff --git a/resen/zag/snippet b/resen/zag/snippet index 01482edb8238e39e8498308167962378b4a9b4f1..b26418dddf37ac21e09dc163e0fd806963273425 100644 GIT binary patch literal 38665 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