4.32 MB
/home/fdroid/fdroiddata/tmp/net.alexbarry.alexgames_2.apk vs.
/home/fdroid/fdroiddata/unsigned/net.alexbarry.alexgames_2.apk
8.2 KB
APK Signing Block
    
Offset 1, 121 lines modifiedOffset 0, 0 lines modified
1 Key·0x42726577: 
2 0000000000000000000000000000000000000000000000000000000000000000000000 
3 0000000000000000000000000000000000000000000000000000000000000000000000 
4 0000000000000000000000000000000000000000000000000000000000000000000000 
5 0000000000000000000000000000000000000000000000000000000000000000000000 
6 0000000000000000000000000000000000000000000000000000000000000000000000 
7 0000000000000000000000000000000000000000000000000000000000000000000000 
8 0000000000000000000000000000000000000000000000000000000000000000000000 
9 0000000000000000000000000000000000000000000000000000000000000000000000 
10 0000000000000000000000000000000000000000000000000000000000000000000000 
11 00000000000000000000000000000000000000 
  
12 Key·0x7109871a: 
13 330700002f070000e503000060000000280000000301000020000000fa75b7bd288885 
14 d552c65d44ec10d5d67495453a9514e312b482929480bbf8b430000000210400002800 
15 00002190604618667b2644102a5747d57b43bf1fdd627bc0502289761d25336d143c97 
16 09d4000000000069030000650300003082036130820249a00302010202042e9d1d7f30 
17 0d06092a864886f70d01010b05003060310b300906035504061302554b310c300a0603 
18 55040813034f5247310c300a060355040713034f524731133011060355040a130a6664 
19 726f69642e6f7267310f300d060355040b13064644726f6964310f300d060355040313 
20 064644726f69643020170d3234303530393139353133375a180f323035313039323531 
21 39353133375a3060310b300906035504061302554b310c300a060355040813034f5247 
22 310c300a060355040713034f524731133011060355040a130a6664726f69642e6f7267 
23 310f300d060355040b13064644726f6964310f300d060355040313064644726f696430 
24 820122300d06092a864886f70d01010105000382010f003082010a0282010100890ca5 
25 51420e0fba5109c7a1f918d3ba8fedfaf0b748dc41b309aca38c16e63fc7666973b6ed 
26 41bcdfc685fef4517fe0731a13bc07e9427621247f015123022ed9efcfe69600df6a96 
27 f66deb045d3cbafd86f2316f3710ba66b27d7c7cfa2cca84cf5879425ce384156864b8 
28 0b2e22d2cd893858b71005c216aba2c9f963224e81f7ff64a38de58934803329680086 
29 341d5beea48d6eb7d3f43abb8670d68f5676b2b2acedd022f04e446e83ca2e606e6d69 
30 11c8a2d6818a4a23c5c183a4f1df0e86594ac2a63b863ccaf9164977e4b68edb226d15 
31 2091cb81450316723b47596456fbbb40b34666709f90de93994c06d94dc43dcf7d85b1 
32 d71a5277de51ff030203010001a321301f301d0603551d0e04160414063d292032bfc2 
33 6f43d9eb036b896ad62d882bf7300d06092a864886f70d01010b050003820101000ebd 
34 bfefc93bc8e4649e491342afa6d95c9fd77ce19df792783d324fd805a58a25b1f243db 
35 d05c4af3e0c66c25d987462cac8ed8b139f6ab134421c8b4bd085fa8fd32e2b6375cc9 
36 b125640ec6ef00957df85e892f54a8b3b3735643148c22760e99cdc5c79a15d7734223 
37 ccb453e18dde088a8c53aaf81d382c2ca27c0707de2c9e00f87c89142ea678ba0a3214 
38 98387de194eaebf01755656d328be78d46d1aca27d61b6096d2f1dd70bab6b1c352100 
39 43c861921b487cfc47a5e772b2d85a7556621ec2615f77e587ca3f8a1cd82eda429121 
40 1d814010eebea4c27af8eddbcb333cb65370fab5e2a8567055246214e30f2d26025268 
41 063fa76898273b627a0c000000080000000df0efbe0300000000000000180200000801 
42 000003010000000100005b4a8b3220640cae2288e7cb1d8eb4535ca474c740a971263d 
43 dbc862310c24405ea0b65e1fb69cf96a9ed0fa61a792e1fe6e16a2729b0e82906a19a2 
44 00ad660b973705a6a9b384844a3719ff632948ed3a54f6a55b064fe0fa40b6e16dc3fe 
45 f92e298ed9ecc07d0f093858661d68455471baa37c61bb083f600276c167c73a0e58e7 
46 5cf063ccc56d6345b951a88d00b46ce5faf8bb65c471b8c544f93c097454f659002331 
47 720f63856c914595d38daf215d7c3cc31e7c87f5722a808cd5ffabc019055999fd14ed 
48 d9094c4a72598faf411838b1b29a5d138543599708b36da3e978dbbc116b701be872ef 
49 a71990ff2ce5fd5edd2406b62c5463353553333e2c0801000021040000000100005b4a 
50 8b3220640cae2288e7cb1d8eb4535ca474c740a971263ddbc862310c24405ea0b65e1f 
51 b69cf96a9ed0fa61a792e1fe6e16a2729b0e82906a19a200ad660b973705a6a9b38484 
52 4a3719ff632948ed3a54f6a55b064fe0fa40b6e16dc3fef92e298ed9ecc07d0f093858 
53 661d68455471baa37c61bb083f600276c167c73a0e58e75cf063ccc56d6345b951a88d 
54 00b46ce5faf8bb65c471b8c544f93c097454f659002331720f63856c914595d38daf21 
55 5d7c3cc31e7c87f5722a808cd5ffabc019055999fd14edd9094c4a72598faf411838b1 
56 b29a5d138543599708b36da3e978dbbc116b701be872efa71990ff2ce5fd5edd2406b6 
57 2c5463353553333e2c2601000030820122300d06092a864886f70d0101010500038201 
58 0f003082010a0282010100890ca551420e0fba5109c7a1f918d3ba8fedfaf0b748dc41 
59 b309aca38c16e63fc7666973b6ed41bcdfc685fef4517fe0731a13bc07e9427621247f 
60 015123022ed9efcfe69600df6a96f66deb045d3cbafd86f2316f3710ba66b27d7c7cfa 
61 2cca84cf5879425ce384156864b80b2e22d2cd893858b71005c216aba2c9f963224e81 
62 f7ff64a38de58934803329680086341d5beea48d6eb7d3f43abb8670d68f5676b2b2ac 
63 edd022f04e446e83ca2e606e6d6911c8a2d6818a4a23c5c183a4f1df0e86594ac2a63b 
64 863ccaf9164977e4b68edb226d152091cb81450316723b47596456fbbb40b34666709f 
65 90de93994c06d94dc43dcf7d85b1d71a5277de51ff030203010001 
  
66 Key·0xf05368c0: 
67 330700002f070000dd03000060000000280000000301000020000000fa75b7bd288885 
68 d552c65d44ec10d5d67495453a9514e312b482929480bbf8b430000000210400002800 
69 00002190604618667b2644102a5747d57b43bf1fdd627bc0502289761d25336d143c97 
70 09d4000000000069030000650300003082036130820249a00302010202042e9d1d7f30 
71 0d06092a864886f70d01010b05003060310b300906035504061302554b310c300a0603 
72 55040813034f5247310c300a060355040713034f524731133011060355040a130a6664 
73 726f69642e6f7267310f300d060355040b13064644726f6964310f300d060355040313 
74 064644726f69643020170d3234303530393139353133375a180f323035313039323531 
75 39353133375a3060310b300906035504061302554b310c300a060355040813034f5247 
76 310c300a060355040713034f524731133011060355040a130a6664726f69642e6f7267 
77 310f300d060355040b13064644726f6964310f300d060355040313064644726f696430 
78 820122300d06092a864886f70d01010105000382010f003082010a0282010100890ca5 
79 51420e0fba5109c7a1f918d3ba8fedfaf0b748dc41b309aca38c16e63fc7666973b6ed 
80 41bcdfc685fef4517fe0731a13bc07e9427621247f015123022ed9efcfe69600df6a96 
81 f66deb045d3cbafd86f2316f3710ba66b27d7c7cfa2cca84cf5879425ce384156864b8 
82 0b2e22d2cd893858b71005c216aba2c9f963224e81f7ff64a38de58934803329680086 
83 341d5beea48d6eb7d3f43abb8670d68f5676b2b2acedd022f04e446e83ca2e606e6d69 
84 11c8a2d6818a4a23c5c183a4f1df0e86594ac2a63b863ccaf9164977e4b68edb226d15 
85 2091cb81450316723b47596456fbbb40b34666709f90de93994c06d94dc43dcf7d85b1 
86 d71a5277de51ff030203010001a321301f301d0603551d0e04160414063d292032bfc2 
87 6f43d9eb036b896ad62d882bf7300d06092a864886f70d01010b050003820101000ebd 
88 bfefc93bc8e4649e491342afa6d95c9fd77ce19df792783d324fd805a58a25b1f243db 
89 d05c4af3e0c66c25d987462cac8ed8b139f6ab134421c8b4bd085fa8fd32e2b6375cc9 
90 b125640ec6ef00957df85e892f54a8b3b3735643148c22760e99cdc5c79a15d7734223 
91 ccb453e18dde088a8c53aaf81d382c2ca27c0707de2c9e00f87c89142ea678ba0a3214 
92 98387de194eaebf01755656d328be78d46d1aca27d61b6096d2f1dd70bab6b1c352100 
93 43c861921b487cfc47a5e772b2d85a7556621ec2615f77e587ca3f8a1cd82eda429121 
94 1d814010eebea4c27af8eddbcb333cb65370fab5e2a8567055246214e30f2d26025268 
95 063fa76898273b627a18000000ffffff7f0000000018000000ffffff7f180200000801 
96 0000030100000001000017a68025725ac8644b5f3de0004f524c675b7b64e66f005577 
97 2b6676f78dcb5a1952af0c47b9de1fda48c7f4fe96f2068620c90b7f8cccc3827ba5c8 
98 b38b4e3333f3bb466cd6d37e7e79e3550072d8bde3dbf13a9b04e8444b4c6127963ab1 
99 1a2297b5d56fb5d5214361cedc91f4c9fc7812518f667cc3ac99593140c5ab5f0194ff 
100 722f96c82441510e62239adbcbe29c13ca648d03c4969e4612ec047293e2e427cb0128 
101 11bcf416a0de1677ff583b80c061203c9f85470ace2ce1e78330ff031263c45427f28c 
102 808a7e52489203343b7e19f5eaff7ba9c04d1cdba0315ecbd440423d0ea86d3b578811 
103 e549ced64abf123b53e9a5083e6101d1c485b359bc08010000210400000001000017a6 
104 8025725ac8644b5f3de0004f524c675b7b64e66f0055772b6676f78dcb5a1952af0c47 
105 b9de1fda48c7f4fe96f2068620c90b7f8cccc3827ba5c8b38b4e3333f3bb466cd6d37e 
106 7e79e3550072d8bde3dbf13a9b04e8444b4c6127963ab11a2297b5d56fb5d5214361ce 
107 dc91f4c9fc7812518f667cc3ac99593140c5ab5f0194ff722f96c82441510e62239adb 
108 cbe29c13ca648d03c4969e4612ec047293e2e427cb012811bcf416a0de1677ff583b80 
109 c061203c9f85470ace2ce1e78330ff031263c45427f28c808a7e52489203343b7e19f5 
110 eaff7ba9c04d1cdba0315ecbd440423d0ea86d3b578811e549ced64abf123b53e9a508 
111 3e6101d1c485b359bc2601000030820122300d06092a864886f70d0101010500038201 
112 0f003082010a0282010100890ca551420e0fba5109c7a1f918d3ba8fedfaf0b748dc41 
113 b309aca38c16e63fc7666973b6ed41bcdfc685fef4517fe0731a13bc07e9427621247f 
114 015123022ed9efcfe69600df6a96f66deb045d3cbafd86f2316f3710ba66b27d7c7cfa 
115 2cca84cf5879425ce384156864b80b2e22d2cd893858b71005c216aba2c9f963224e81 
116 f7ff64a38de58934803329680086341d5beea48d6eb7d3f43abb8670d68f5676b2b2ac 
117 edd022f04e446e83ca2e606e6d6911c8a2d6818a4a23c5c183a4f1df0e86594ac2a63b 
118 863ccaf9164977e4b68edb226d152091cb81450316723b47596456fbbb40b34666709f 
119 90de93994c06d94dc43dcf7d85b1d71a5277de51ff030203010001 
1.4 KB
/usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {}
error from `/usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {}`: OpenJDK 64-Bit Server VM warning: Insufficient space for shared memory file: 1769933 Try using the -Djava.io.tmpdir= option to select an alternate temp location.
    
Offset 1, 17 lines modifiedOffset 0, 0 lines modified
1 Verifies 
2 Verified·using·v1·scheme·(JAR·signing):·false 
3 Verified·using·v2·scheme·(APK·Signature·Scheme·v2):·true 
4 Verified·using·v3·scheme·(APK·Signature·Scheme·v3):·true 
5 Verified·using·v3.1·scheme·(APK·Signature·Scheme·v3.1):·false 
6 Verified·using·v4·scheme·(APK·Signature·Scheme·v4):·false 
7 Verified·for·SourceStamp:·false 
8 Number·of·signers:·1 
9 Signer·#1·certificate·DN:·CN=FDroid,·OU=FDroid,·O=fdroid.org,·L=ORG,·ST=ORG,·C=UK 
10 Signer·#1·certificate·SHA-256·digest:·3466536ce7052bcae59599765ed9aaf186f4077b965ee563ea7f914522c1ef07 
11 Signer·#1·certificate·SHA-1·digest:·bf41aeeeeaf24598365901053f359987390a879a 
12 Signer·#1·certificate·MD5·digest:·71a67dec2df377f277eaf3b78342e04a 
13 Signer·#1·key·algorithm:·RSA 
14 Signer·#1·key·size·(bits):·2048 
15 Signer·#1·public·key·SHA-256·digest:·60446c3002741fdbed8914e8d512542a64a3867ee75e4d8a20e809d3facf09ce 
16 Signer·#1·public·key·SHA-1·digest:·a31eac3d203de078cafc674f3a00bae95df07fb6 
17 Signer·#1·public·key·MD5·digest:·a50a40ee6f06c38752a47c72c0e3b4aa 
3.2 KB
zipinfo {}
    
Offset 1, 8 lines modifiedOffset 1, 8 lines modified
1 Zip·file·size:·13900183·bytes,·number·of·entries:·11501 Zip·file·size:·13803468·bytes,·number·of·entries:·1147
2 -rw-r--r--··0.0·unx·······56·b-·defN·81-Jan-01·01:01·META-INF/com/android/build/gradle/app-metadata.properties2 -rw-r--r--··0.0·unx·······56·b-·defN·81-Jan-01·01:01·META-INF/com/android/build/gradle/app-metadata.properties
3 -rw-r--r--··0.0·unx··6199888·b-·defN·81-Jan-01·01:01·classes.dex3 -rw-r--r--··0.0·unx··6199888·b-·defN·81-Jan-01·01:01·classes.dex
4 -rw-r--r--··0.0·unx··1267912·b-·stor·81-Jan-01·01:01·lib/arm64-v8a/libalex_games_android_jni.so4 -rw-r--r--··0.0·unx··1267912·b-·stor·81-Jan-01·01:01·lib/arm64-v8a/libalex_games_android_jni.so
5 -rw-r--r--··0.0·unx···820956·b-·stor·81-Jan-01·01:01·lib/armeabi-v7a/libalex_games_android_jni.so5 -rw-r--r--··0.0·unx···820956·b-·stor·81-Jan-01·01:01·lib/armeabi-v7a/libalex_games_android_jni.so
6 -rw-r--r--··0.0·unx··1373924·b-·stor·81-Jan-01·01:01·lib/x86/libalex_games_android_jni.so6 -rw-r--r--··0.0·unx··1373924·b-·stor·81-Jan-01·01:01·lib/x86/libalex_games_android_jni.so
7 -rw-r--r--··0.0·unx··1358296·b-·stor·81-Jan-01·01:01·lib/x86_64/libalex_games_android_jni.so7 -rw-r--r--··0.0·unx··1358296·b-·stor·81-Jan-01·01:01·lib/x86_64/libalex_games_android_jni.so
8 -rw-r--r--··0.0·unx·····1157·b-·stor·81-Jan-01·01:01·assets/games/img/arrow.png8 -rw-r--r--··0.0·unx·····1157·b-·stor·81-Jan-01·01:01·assets/games/img/arrow.png
Offset 272, 16 lines modifiedOffset 272, 16 lines modified
272 -rw-r--r--··0.0·unx·····3889·b-·defN·81-Jan-01·01:01·assets/games/preload/libs/ui/buttons.lua272 -rw-r--r--··0.0·unx·····3889·b-·defN·81-Jan-01·01:01·assets/games/preload/libs/ui/buttons.lua
273 -rw-r--r--··0.0·unx······779·b-·defN·81-Jan-01·01:01·assets/games/preload/libs/ui/show_buttons_popup.lua273 -rw-r--r--··0.0·unx······779·b-·defN·81-Jan-01·01:01·assets/games/preload/libs/ui/show_buttons_popup.lua
274 -rw-r--r--··0.0·unx·····3993·b-·defN·81-Jan-01·01:01·assets/games/preload/libs/ui/soft_numpad.lua274 -rw-r--r--··0.0·unx·····3993·b-·defN·81-Jan-01·01:01·assets/games/preload/libs/ui/soft_numpad.lua
275 -rw-r--r--··0.0·unx·····1338·b-·defN·81-Jan-01·01:01·assets/games/preload/libs/ui/touchpad.lua275 -rw-r--r--··0.0·unx·····1338·b-·defN·81-Jan-01·01:01·assets/games/preload/libs/ui/touchpad.lua
276 -rw-r--r--··0.0·unx·····4526·b-·defN·81-Jan-01·01:01·assets/games/preload/libs/utils.lua276 -rw-r--r--··0.0·unx·····4526·b-·defN·81-Jan-01·01:01·assets/games/preload/libs/utils.lua
277 -rw-r--r--··0.0·unx·····3301·b-·defN·81-Jan-01·01:01·assets/games/preload/libs/words.lua277 -rw-r--r--··0.0·unx·····3301·b-·defN·81-Jan-01·01:01·assets/games/preload/libs/words.lua
278 -rw-r--r--··0.0·unx··1139918·b-·defN·81-Jan-01·01:01·assets/html/alexgames_wasm.data278 -rw-r--r--··0.0·unx··1139918·b-·defN·81-Jan-01·01:01·assets/html/alexgames_wasm.data
279 -rw-r--r--··0.0·unx···305907·b-·defN·81-Jan-01·01:01·assets/html/alexgames_wasm.js279 -rw-r--r--··0.0·unx···305923·b-·defN·81-Jan-01·01:01·assets/html/alexgames_wasm.js
280 -rw-r--r--··0.0·unx··1440557·b-·defN·81-Jan-01·01:01·assets/html/alexgames_wasm.wasm280 -rw-r--r--··0.0·unx··1446987·b-·defN·81-Jan-01·01:01·assets/html/alexgames_wasm.wasm
281 -rw-r--r--··0.0·unx·······45·b-·defN·81-Jan-01·01:01·assets/html/cache.manifest281 -rw-r--r--··0.0·unx·······45·b-·defN·81-Jan-01·01:01·assets/html/cache.manifest
282 -rw-r--r--··0.0·unx·····3935·b-·defN·81-Jan-01·01:01·assets/html/css/style.css282 -rw-r--r--··0.0·unx·····3935·b-·defN·81-Jan-01·01:01·assets/html/css/style.css
283 -rw-r--r--··0.0·unx······608·b-·defN·81-Jan-01·01:01·assets/html/css/style_collapsable.css283 -rw-r--r--··0.0·unx······608·b-·defN·81-Jan-01·01:01·assets/html/css/style_collapsable.css
284 -rw-r--r--··0.0·unx·····1698·b-·defN·81-Jan-01·01:01·assets/html/css/style_dark.css284 -rw-r--r--··0.0·unx·····1698·b-·defN·81-Jan-01·01:01·assets/html/css/style_dark.css
285 -rw-r--r--··0.0·unx·····1779·b-·defN·81-Jan-01·01:01·assets/html/css/style_very_dark.css285 -rw-r--r--··0.0·unx·····1779·b-·defN·81-Jan-01·01:01·assets/html/css/style_very_dark.css
286 -rw-r--r--··0.0·unx·····5830·b-·defN·81-Jan-01·01:01·assets/html/example_game_apidemo.zip286 -rw-r--r--··0.0·unx·····5830·b-·defN·81-Jan-01·01:01·assets/html/example_game_apidemo.zip
287 -rw-r--r--··0.0·unx····48983·b-·defN·81-Jan-01·01:01·assets/html/game_api_doc.html287 -rw-r--r--··0.0·unx····48983·b-·defN·81-Jan-01·01:01·assets/html/game_api_doc.html
Offset 1142, 11 lines modifiedOffset 1142, 8 lines modified
1142 -rw----·····0.0·fat······396·b-·defN·81-Jan-01·01:01·res/z3.xml1142 -rw----·····0.0·fat······396·b-·defN·81-Jan-01·01:01·res/z3.xml
1143 -rw----·····0.0·fat·····1116·b-·defN·81-Jan-01·01:01·res/zH.xml1143 -rw----·····0.0·fat·····1116·b-·defN·81-Jan-01·01:01·res/zH.xml
1144 -rw----·····0.0·fat······318·b-·stor·81-Jan-01·01:01·res/zN.png1144 -rw----·····0.0·fat······318·b-·stor·81-Jan-01·01:01·res/zN.png
1145 -rw----·····0.0·fat······887·b-·stor·81-Jan-01·01:01·res/zQ.png1145 -rw----·····0.0·fat······887·b-·stor·81-Jan-01·01:01·res/zQ.png
1146 -rw----·····0.0·fat·····1076·b-·defN·81-Jan-01·01:01·res/zY.xml1146 -rw----·····0.0·fat·····1076·b-·defN·81-Jan-01·01:01·res/zY.xml
1147 -rw----·····0.0·fat······840·b-·defN·81-Jan-01·01:01·res/zq.xml1147 -rw----·····0.0·fat······840·b-·defN·81-Jan-01·01:01·res/zq.xml
1148 -rw----·····0.0·fat···686856·b-·stor·81-Jan-01·01:01·resources.arsc1148 -rw----·····0.0·fat···686856·b-·stor·81-Jan-01·01:01·resources.arsc
1149 -rw----·····2.0·fat···114206·b-·defN·81-Jan-01·01:01·META-INF/454C5DCB.SF 
1150 -rw----·····2.0·fat·····1336·b-·defN·81-Jan-01·01:01·META-INF/454C5DCB.RSA 
1151 -rw----·····2.0·fat···114079·b-·defN·81-Jan-01·01:01·META-INF/MANIFEST.MF 
1152 1150·files,·25224568·bytes·uncompressed,·13734331·bytes·compressed:··45.6%1149 1147·files,·25001393·bytes·uncompressed,·13643373·bytes·compressed:··45.4%
1.45 MB
assets/html/alexgames_wasm.data
Ordering differences only
    
Offset 1, 2177 lines modifiedOffset 1, 1294 lines modified
1 local·alexgames·=·require("alexgames") 
  
2 local·lua_draw·=·{}1 local·draw·=·{}
  
3 local·cell_size_y·=·nil 
4 local·cell_size_x·=·nil 
  
5 local·present_colour·=·'#000000' 
6 local·absent_colour··=·'#ffffff' 
  
7 if·alexgames.get_user_colour_pref()·==·"dark"·then 
8 »       present_colour·=·'#888888' 
9 »       absent_colour··=·'#000000' 
10 end 
  
11 function·lua_draw.init(cell_size) 
12 »       cell_size_y·=·cell_size 
13 »       cell_size_x·=·cell_size 
14 end 
  
15 function·lua_draw.update(board) 
16 »       alexgames.draw_clear() 
17 »       for·y=1,#board·do 
18 »       »       for·x=1,#board[y]·do 
19 »       »       »       local·fill_colour 
20 »       »       »       if·board[y][x]·~=·0·then 
21 »       »       »       »       fill_colour·=·present_colour 
22 »       »       »       else 
23 »       »       »       »       fill_colour·=·absent_colour 
24 »       »       »       end 
25 »       »       »       alexgames.draw_rect(fill_colour, 
26 »       »       »       ·····················(y-1)*cell_size_y,·(x-1)*cell_size_x, 
27 »       »       »       ······················y·*··cell_size_y,··x·*··cell_size_x) 
28 »       »       end 
29 »       end 
30 »       alexgames.draw_refresh() 
31 end 
  
32 function·lua_draw.coords_to_cell_idx(coords_y,·coords_x) 
33 »       return·{·y·=·1·+·math.floor(coords_y/cell_size_y), 
34 »       ·········x·=·1·+·math.floor(coords_x/cell_size_x)·} 
35 end 
  
36 return·lua_draw 
37 local·life_core·=·require("games/life/life_core") 
38 local·life_draw·=·require("games/life/life_draw") 
39 local·alexgames·=·require("alexgames")2 local·alexgames·=·require("alexgames")
  
 3 --·Helper·library·to·draw·shapes·from·the·base·APIs·defined·in·alexgames
 4 local·draw_more·=·require("libs/draw/draw_shapes")
40 local·BTN_ID_TOGGLE_PLAY_PAUSE·=·"toggle_play_pause" 
41 local·BTN_ID_STEP··············=·"step" 
42 local·BTN_ID_RANDOM············=·"random" 
43 local·BTN_ID_CLEAR·············=·"clear" 
  
44 local·cell_size·=·10 
45 local·board_width·=·4805 local·g_board_width
46 local·board_height·=·4806 local·g_board_height
47 --local·cells_y·=·40 
48 --local·cells_x·=·30 
49 local·cells_y·=·math.floor(board_height/cell_size) 
50 local·cells_x·=·math.floor(board_width/cell_size) 
  
51 local·state·=·nil 
52 local·is_drawing·=·true7 local·BORDER_COLOUR·=·'#8888ff88'
 8 local·BORDER_THICKNESS·=·3
  
53 function·draw_board_internal() 
54 »       life_core.update_state(state) 
55 »       life_draw.update(life_core.get_active_board(state))9 function·draw.init(board_width,·board_height)
 10 »       g_board_width··=·board_width
 11 »       g_board_height·=·board_height
56 end12 end
  
 13 local·function·in_range(min_val,·val,·max_val)
 14 »       return·min_val·<=·val·and·val·<=·max_val
57 function·update() 
58 »       if·is_drawing·then 
59 »       »       draw_board_internal() 
60 »       end 
61 end15 end
  
62 function·handle_user_clicked(y_coords,·x_coords) 
63 »       local·cell_pos·=·life_draw.coords_to_cell_idx(y_coords,·x_coords) 
64 »       life_core.toggle_cell_state(state,·cell_pos) 
65 »       life_draw.update(life_core.get_active_board(state)) 
66 end 
  
 16 function·draw.draw(state)
 17 »       --·This·clears·anything·on·the·screen·from·previous·`update`·calls.
 18 »       alexgames.draw_clear()
67 function·handle_btn_clicked(btn_id) 
68 »       if·btn_id·==·BTN_ID_STEP·then 
69 »       »       life_core.update_state(state) 
70 »       »       life_draw.update(life_core.get_active_board(state)) 
71 »       elseif·btn_id·==·BTN_ID_TOGGLE_PLAY_PAUSE·then 
72 »       »       is_drawing·=·not·is_drawing 
73 »       elseif·btn_id·==·BTN_ID_RANDOM·then 
74 »       »       life_core.random_board(state) 
75 »       »       life_draw.update(life_core.get_active_board(state)) 
76 »       elseif·btn_id·==·BTN_ID_CLEAR·then 
77 »       »       life_core.clear_board(state) 
78 »       »       life_draw.update(life_core.get_active_board(state)) 
79 »       else 
80 »       »       print(string.format("Unhandled·btn_id·\"%s\"",·btn_id)) 
81 »       end 
82 end 
  
83 function·get_state() 
84 »       --·TODO·it·wouldn't·be·unreasonable·to·implement·importing/exporting·state·for·this,·but 
85 »       --·since·it's·more·of·a·tech·demo·than·a·game,·I·don't·want·to·bother 
86 »       --·with·it·right·now. 
87 »       return·nil 
88 end 
  
89 life_draw.init(cell_size)19 »       --·Draw·a·border·around·the·screen·to·show·where·the·ball·will·bounce
 20 »       local·padding·=·3
 21 »       local·outline_pt1·=·{·y·=·padding,·x·=·padding·}
 22 »       local·outline_pt2·=·{·y·=·g_board_height·-·padding,·x·=·g_board_width·-·padding·}
 23 »       draw_more.draw_rect_outline(BORDER_COLOUR,·BORDER_THICKNESS,
 24 »       ····························outline_pt1.y,·outline_pt1.x,
 25 »       ····························outline_pt2.y,·outline_pt2.x)
 26 »       --·draw_more.draw_rect_outline(...)·is·a·helper·function·to·do·this·(draw·4·lines·in·a·rectangle):
 27 »       --[[
 28 »       alexgames.draw_line(BORDER_COLOUR,·BORDER_THICKNESS,
 29 »       ·····················0,·0,
 30 »       ·····················0,·g_board_width)
Max diff block lines reached; 1511648/1516226 bytes (99.70%) of diff not shown.
53.7 KB
assets/html/alexgames_wasm.js
53.7 KB
js-beautify {}
    
Offset 636, 50 lines modifiedOffset 636, 50 lines modified
636 ····················function·runWithFS()·{636 ····················function·runWithFS()·{
  
637 ························function·assert(check,·msg)·{637 ························function·assert(check,·msg)·{
638 ····························if·(!check)·throw·msg·+·new·Error().stack;638 ····························if·(!check)·throw·msg·+·new·Error().stack;
639 ························}639 ························}
640 ························Module['FS_createPath']("/",·"preload",·true,·true);640 ························Module['FS_createPath']("/",·"preload",·true,·true);
641 ························Module['FS_createPath']("/preload",·"games",·true,·true);641 ························Module['FS_createPath']("/preload",·"games",·true,·true);
642 ························Module['FS_createPath']("/preload/games",·"life",·true,·true);642 ························Module['FS_createPath']("/preload/games",·"api_demo",·true,·true);
643 ························Module['FS_createPath']("/preload/games",·"poker_chips",·true,·true); 
644 ························Module['FS_createPath']("/preload/games/poker_chips",·"ui",·true,·true); 
645 ························Module['FS_createPath']("/preload/games",·"swarm",·true,·true); 
646 ························Module['FS_createPath']("/preload/games",·"touch_test",·true,·true); 
647 ························Module['FS_createPath']("/preload/games",·"thrust",·true,·true); 
648 ························Module['FS_createPath']("/preload/games",·"chess",·true,·true); 
649 ························Module['FS_createPath']("/preload/games",·"blue",·true,·true); 
650 ························Module['FS_createPath']("/preload/games",·"crossword_builder",·true,·true); 
651 ························Module['FS_createPath']("/preload/games",·"spider_swing",·true,·true);643 ························Module['FS_createPath']("/preload/games",·"spider_swing",·true,·true);
 644 ························Module['FS_createPath']("/preload/games",·"thrust",·true,·true);
652 ························Module['FS_createPath']("/preload/games",·"fluid_mix",·true,·true);645 ························Module['FS_createPath']("/preload/games",·"fluid_mix",·true,·true);
 646 ························Module['FS_createPath']("/preload/games",·"checkers",·true,·true);
 647 ························Module['FS_createPath']("/preload/games",·"blue",·true,·true);
653 ························Module['FS_createPath']("/preload/games",·"bound",·true,·true);648 ························Module['FS_createPath']("/preload/games",·"bound",·true,·true);
654 ························Module['FS_createPath']("/preload/games",·"sudoku",·true,·true);649 ························Module['FS_createPath']("/preload/games",·"test",·true,·true);
 650 ························Module['FS_createPath']("/preload/games",·"crib",·true,·true);
655 ························Module['FS_createPath']("/preload/games",·"31s",·true,·true);651 ························Module['FS_createPath']("/preload/games",·"31s",·true,·true);
656 ························Module['FS_createPath']("/preload/games",·"minesweeper",·true,·true);652 ························Module['FS_createPath']("/preload/games",·"minesweeper",·true,·true);
 653 ························Module['FS_createPath']("/preload/games",·"minesweeper_life",·true,·true);
657 ························Module['FS_createPath']("/preload/games",·"word_mastermind",·true,·true);654 ························Module['FS_createPath']("/preload/games",·"card_sim",·true,·true);
 655 ························Module['FS_createPath']("/preload/games",·"sudoku",·true,·true);
 656 ························Module['FS_createPath']("/preload/games",·"chess",·true,·true);
658 ························Module['FS_createPath']("/preload/games",·"api_demo",·true,·true);657 ························Module['FS_createPath']("/preload/games",·"swarm",·true,·true);
659 ························Module['FS_createPath']("/preload/games",·"endless_runner",·true,·true); 
660 ························Module['FS_createPath']("/preload/games",·"hospital",·true,·true);658 ························Module['FS_createPath']("/preload/games",·"hospital",·true,·true);
 659 ························Module['FS_createPath']("/preload/games",·"touch_test",·true,·true);
661 ························Module['FS_createPath']("/preload/games",·"go",·true,·true);660 ························Module['FS_createPath']("/preload/games",·"go",·true,·true);
 661 ························Module['FS_createPath']("/preload/games",·"endless_runner",·true,·true);
 662 ························Module['FS_createPath']("/preload/games",·"poker_chips",·true,·true);
 663 ························Module['FS_createPath']("/preload/games/poker_chips",·"ui",·true,·true);
 664 ························Module['FS_createPath']("/preload/games",·"solitaire",·true,·true);
662 ························Module['FS_createPath']("/preload/games",·"backgammon",·true,·true);665 ························Module['FS_createPath']("/preload/games",·"backgammon",·true,·true);
663 ························Module['FS_createPath']("/preload/games",·"card_sim",·true,·true);666 ························Module['FS_createPath']("/preload/games",·"life",·true,·true);
664 ························Module['FS_createPath']("/preload/games",·"minesweeper_life",·true,·true);667 ························Module['FS_createPath']("/preload/games",·"crossword_builder",·true,·true);
 668 ························Module['FS_createPath']("/preload/games",·"word_mastermind",·true,·true);
665 ························Module['FS_createPath']("/preload/games",·"wu",·true,·true);669 ························Module['FS_createPath']("/preload/games",·"wu",·true,·true);
666 ························Module['FS_createPath']("/preload/games",·"solitaire",·true,·true); 
667 ························Module['FS_createPath']("/preload/games",·"crossword_letters",·true,·true);670 ························Module['FS_createPath']("/preload/games",·"crossword_letters",·true,·true);
668 ························Module['FS_createPath']("/preload/games",·"checkers",·true,·true); 
669 ························Module['FS_createPath']("/preload/games",·"test",·true,·true); 
670 ························Module['FS_createPath']("/preload/games",·"crib",·true,·true); 
671 ························Module['FS_createPath']("/preload",·"libs",·true,·true);671 ························Module['FS_createPath']("/preload",·"libs",·true,·true);
672 ························Module['FS_createPath']("/preload/libs",·"dice",·true,·true); 
673 ························Module['FS_createPath']("/preload/libs",·"serialize",·true,·true); 
674 ························Module['FS_createPath']("/preload/libs",·"cards",·true,·true); 
675 ························Module['FS_createPath']("/preload/libs",·"multiplayer",·true,·true);672 ························Module['FS_createPath']("/preload/libs",·"multiplayer",·true,·true);
676 ························Module['FS_createPath']("/preload/libs",·"draw",·true,·true); 
677 ························Module['FS_createPath']("/preload/libs",·"ui",·true,·true);673 ························Module['FS_createPath']("/preload/libs",·"ui",·true,·true);
 674 ························Module['FS_createPath']("/preload/libs",·"draw",·true,·true);
 675 ························Module['FS_createPath']("/preload/libs",·"serialize",·true,·true);
 676 ························Module['FS_createPath']("/preload/libs",·"cards",·true,·true);
 677 ························Module['FS_createPath']("/preload/libs",·"dice",·true,·true);
  
678 ························/**·@constructor·*/678 ························/**·@constructor·*/
679 ························function·DataRequest(start,·end,·audio)·{679 ························function·DataRequest(start,·end,·audio)·{
680 ····························this.start·=·start;680 ····························this.start·=·start;
681 ····························this.end·=·end;681 ····························this.end·=·end;
682 ····························this.audio·=·audio;682 ····························this.audio·=·audio;
683 ························}683 ························}
Offset 744, 564 lines modifiedOffset 744, 564 lines modified
744 ························if·(!Module['preRun'])·Module['preRun']·=·[];744 ························if·(!Module['preRun'])·Module['preRun']·=·[];
745 ························Module["preRun"].push(runWithFS);·//·FS·is·not·initialized·yet,·wait·for·it745 ························Module["preRun"].push(runWithFS);·//·FS·is·not·initialized·yet,·wait·for·it
746 ····················}746 ····················}
  
747 ················}747 ················}
748 ················loadPackage({748 ················loadPackage({
749 ····················"files":·[{749 ····················"files":·[{
750 ························"filename":·"/preload/games/life/life_draw.lua",750 ························"filename":·"/preload/games/api_demo/game_draw.lua",
751 ························"start":·0,751 ························"start":·0,
752 ························"end":·990752 ························"end":·6402
753 ····················},·{ 
754 ························"filename":·"/preload/games/life/life_main.lua", 
755 ························"start":·990, 
756 ························"end":·3163 
757 ····················},·{753 ····················},·{
758 ························"filename":·"/preload/games/life/life_core.lua",754 ························"filename":·"/preload/games/api_demo/game.lua",
759 ························"start":·3163,755 ························"start":·6402,
760 ························"end":·5909756 ························"end":·14115
761 ····················},·{ 
762 ························"filename":·"/preload/games/poker_chips/poker_chips_serialize.lua", 
763 ························"start":·5909, 
764 ························"end":·8524 
765 ····················},·{757 ····················},·{
766 ························"filename":·"/preload/games/poker_chips/poker_chips_main.lua",758 ························"filename":·"/preload/games/api_demo/game_core.lua",
767 ························"start":·8524,759 ························"start":·14115,
768 ························"end":·12719760 ························"end":·16288
769 ····················},·{761 ····················},·{
770 ························"filename":·"/preload/games/poker_chips/poker_chips_ui.lua",762 ························"filename":·"/preload/games/spider_swing/spider_swing_core.lua",
771 ························"start":·12719,763 ························"start":·16288,
772 ························"end":·15092764 ························"end":·21739
773 ····················},·{765 ····················},·{
774 ························"filename":·"/preload/games/poker_chips/poker_chips_core.lua",766 ························"filename":·"/preload/games/spider_swing/spider_swing_main.lua",
775 ························"start":·15092,767 ························"start":·21739,
776 ························"end":·20463768 ························"end":·24459
777 ····················},·{769 ····················},·{
778 ························"filename":·"/preload/games/poker_chips/ui/control.lua",770 ························"filename":·"/preload/games/spider_swing/spider_swing_draw.lua",
779 ························"start":·20463,771 ························"start":·24459,
780 ························"end":·24503772 ························"end":·30580
781 ····················},·{773 ····················},·{
782 ························"filename":·"/preload/games/poker_chips/ui/view_others.lua",774 ························"filename":·"/preload/games/thrust/thrust_keyboard_input.lua",
783 ························"start":·24503,775 ························"start":·30580,
784 ························"end":·30451776 ························"end":·32445
785 ····················},·{777 ····················},·{
786 ························"filename":·"/preload/games/poker_chips/ui/bet_input.lua",778 ························"filename":·"/preload/games/thrust/thrust_draw.lua",
787 ························"start":·30451,779 ························"start":·32445,
788 ························"end":·38890780 ························"end":·39496
789 ····················},·{781 ····················},·{
790 ························"filename":·"/preload/games/swarm/swarm_keyboard_input.lua",782 ························"filename":·"/preload/games/thrust/thrust_main.lua",
791 ························"start":·38890,783 ························"start":·39496,
792 ························"end":·40458784 ························"end":·41760
793 ····················},·{785 ····················},·{
794 ························"filename":·"/preload/games/swarm/swarm_core.lua",786 ························"filename":·"/preload/games/thrust/thrust_core.lua",
795 ························"start":·40458,787 ························"start":·41760,
796 ························"end":·54807788 ························"end":·52714
797 ····················},·{789 ····················},·{
798 ························"filename":·"/preload/games/swarm/swarm_main.lua",790 ························"filename":·"/preload/games/fluid_mix/fluid_mix_draw.lua",
799 ························"start":·54807,791 ························"start":·52714,
800 ························"end":·56851792 ························"end":·58522
801 ····················},·{793 ····················},·{
Max diff block lines reached; 44053/54933 bytes (80.19%) of diff not shown.
9.93 KB
assets/html/example_game_apidemo.zip
549 B
zipinfo {}
    
Offset 1, 5 lines modifiedOffset 1, 5 lines modified
1 Zip·file·size:·5830·bytes,·number·of·entries:·31 Zip·file·size:·5830·bytes,·number·of·entries:·3
2 -rw-r--r--··3.0·unx·····2173·tx·defN·24-Jun-10·20:59·game_core.lua2 -rw-r--r--··3.0·unx·····2173·tx·defN·25-Oct-21·00:18·game_core.lua
3 -rw-r--r--··3.0·unx·····6402·tx·defN·24-Jun-10·20:59·game_draw.lua3 -rw-r--r--··3.0·unx·····6402·tx·defN·25-Oct-21·00:18·game_draw.lua
4 -rw-r--r--··3.0·unx·····7713·tx·defN·24-Jun-10·20:59·game.lua4 -rw-r--r--··3.0·unx·····7713·tx·defN·25-Oct-21·00:18·game.lua
5 3·files,·16288·bytes·uncompressed,·5356·bytes·compressed:··67.1%5 3·files,·16288·bytes·uncompressed,·5356·bytes·compressed:··67.1%
9.0 KB
zipdetails --redact --walk --utc {}
    
Offset 1, 30 lines modifiedOffset 1, 30 lines modified
  
1 0000·LOCAL·HEADER·#1·······04034B50·(67324752)1 0000·LOCAL·HEADER·#1·······04034B50·(67324752)
2 0004·Extract·Zip·Spec······14·(20)·'2.0'2 0004·Extract·Zip·Spec······14·(20)·'2.0'
3 0005·Extract·OS············00·(0)·'MS-DOS'3 0005·Extract·OS············00·(0)·'MS-DOS'
4 0006·General·Purpose·Flag··0000·(0)4 0006·General·Purpose·Flag··0000·(0)
5 ·····[Bits·1-2]············0·'Normal·Compression'5 ·····[Bits·1-2]············0·'Normal·Compression'
6 0008·Compression·Method····0008·(8)·'Deflated'6 0008·Compression·Method····0008·(8)·'Deflated'
7 000A·Modification·Time·····58CAA760·(1489676128)·'Mon·Jun·10·20:59:00·2024'7 000A·Modification·Time·····5B55024F·(1532297807)·'Tue·Oct·21·00:18:30·2025'
8 000E·CRC···················3DE3D9E4·(1038342628)8 000E·CRC···················3DE3D9E4·(1038342628)
9 0012·Compressed·Size·······000002B2·(690)9 0012·Compressed·Size·······000002B2·(690)
10 0016·Uncompressed·Size·····0000087D·(2173)10 0016·Uncompressed·Size·····0000087D·(2173)
11 001A·Filename·Length·······000D·(13)11 001A·Filename·Length·······000D·(13)
12 001C·Extra·Length··········001C·(28)12 001C·Extra·Length··········001C·(28)
13 001E·Filename··············'XXXXXXXXXXXXX'13 001E·Filename··············'XXXXXXXXXXXXX'
14 #14 #
15 #·WARNING:·Offset·0x1E:·Filename·'XXXXXXXXXXXXX'15 #·WARNING:·Offset·0x1E:·Filename·'XXXXXXXXXXXXX'
16 #··········Zero·length·filename16 #··········Zero·length·filename
17 #17 #
18 002B·Extra·ID·#1···········5455·(21589)·'Extended·Timestamp·[UT]'18 002B·Extra·ID·#1···········5455·(21589)·'Extended·Timestamp·[UT]'
19 002D···Length··············0009·(9)19 002D···Length··············0009·(9)
20 002F···Flags···············03·(3)·'Modification·Access'20 002F···Flags···············03·(3)·'Modification·Access'
21 0030···Modification·Time···66676914·(1718053140)·'Mon·Jun·10·20:59:00·2024' 
22 0034···Access·Time·········66676917·(1718053143)·'Mon·Jun·10·20:59:03·2024'21 0030···Modification·Time···68F6D156·(1761005910)·'Tue·Oct·21·00:18:30·2025'
 22 0034···Access·Time·········68F6D156·(1761005910)·'Tue·Oct·21·00:18:30·2025'
23 0038·Extra·ID·#2···········7875·(30837)·'Unix·Extra·type·3·[ux]'23 0038·Extra·ID·#2···········7875·(30837)·'Unix·Extra·type·3·[ux]'
24 003A···Length··············000B·(11)24 003A···Length··············000B·(11)
25 003C···Version·············01·(1)25 003C···Version·············01·(1)
26 003D···UID·Size············04·(4)26 003D···UID·Size············04·(4)
27 003E···UID·················000003E8·(1000)27 003E···UID·················000003E8·(1000)
28 0042···GID·Size············04·(4)28 0042···GID·Size············04·(4)
29 0043···GID·················000003E8·(1000)29 0043···GID·················000003E8·(1000)
Offset 32, 30 lines modifiedOffset 32, 30 lines modified
  
32 02F9·LOCAL·HEADER·#2·······04034B50·(67324752)32 02F9·LOCAL·HEADER·#2·······04034B50·(67324752)
33 02FD·Extract·Zip·Spec······14·(20)·'2.0'33 02FD·Extract·Zip·Spec······14·(20)·'2.0'
34 02FE·Extract·OS············00·(0)·'MS-DOS'34 02FE·Extract·OS············00·(0)·'MS-DOS'
35 02FF·General·Purpose·Flag··0000·(0)35 02FF·General·Purpose·Flag··0000·(0)
36 ·····[Bits·1-2]············0·'Normal·Compression'36 ·····[Bits·1-2]············0·'Normal·Compression'
37 0301·Compression·Method····0008·(8)·'Deflated'37 0301·Compression·Method····0008·(8)·'Deflated'
38 0303·Modification·Time·····58CAA760·(1489676128)·'Mon·Jun·10·20:59:00·2024'38 0303·Modification·Time·····5B550250·(1532297808)·'Tue·Oct·21·00:18:32·2025'
39 0307·CRC···················42800EDC·(1115688668)39 0307·CRC···················42800EDC·(1115688668)
40 030B·Compressed·Size·······00000705·(1797)40 030B·Compressed·Size·······00000705·(1797)
41 030F·Uncompressed·Size·····00001902·(6402)41 030F·Uncompressed·Size·····00001902·(6402)
42 0313·Filename·Length·······000D·(13)42 0313·Filename·Length·······000D·(13)
43 0315·Extra·Length··········001C·(28)43 0315·Extra·Length··········001C·(28)
44 0317·Filename··············'XXXXXXXXXXXXX'44 0317·Filename··············'XXXXXXXXXXXXX'
45 #45 #
46 #·WARNING:·Offset·0x317:·Filename·'XXXXXXXXXXXXX'46 #·WARNING:·Offset·0x317:·Filename·'XXXXXXXXXXXXX'
47 #··········Zero·length·filename47 #··········Zero·length·filename
48 #48 #
49 0324·Extra·ID·#1···········5455·(21589)·'Extended·Timestamp·[UT]'49 0324·Extra·ID·#1···········5455·(21589)·'Extended·Timestamp·[UT]'
50 0326···Length··············0009·(9)50 0326···Length··············0009·(9)
51 0328···Flags···············03·(3)·'Modification·Access'51 0328···Flags···············03·(3)·'Modification·Access'
52 0329···Modification·Time···66676914·(1718053140)·'Mon·Jun·10·20:59:00·2024' 
53 032D···Access·Time·········66676917·(1718053143)·'Mon·Jun·10·20:59:03·2024'52 0329···Modification·Time···68F6D157·(1761005911)·'Tue·Oct·21·00:18:31·2025'
 53 032D···Access·Time·········68F6D16C·(1761005932)·'Tue·Oct·21·00:18:52·2025'
54 0331·Extra·ID·#2···········7875·(30837)·'Unix·Extra·type·3·[ux]'54 0331·Extra·ID·#2···········7875·(30837)·'Unix·Extra·type·3·[ux]'
55 0333···Length··············000B·(11)55 0333···Length··············000B·(11)
56 0335···Version·············01·(1)56 0335···Version·············01·(1)
57 0336···UID·Size············04·(4)57 0336···UID·Size············04·(4)
58 0337···UID·················000003E8·(1000)58 0337···UID·················000003E8·(1000)
59 033B···GID·Size············04·(4)59 033B···GID·Size············04·(4)
60 033C···GID·················000003E8·(1000)60 033C···GID·················000003E8·(1000)
Offset 63, 30 lines modifiedOffset 63, 30 lines modified
  
63 0A45·LOCAL·HEADER·#3·······04034B50·(67324752)63 0A45·LOCAL·HEADER·#3·······04034B50·(67324752)
64 0A49·Extract·Zip·Spec······14·(20)·'2.0'64 0A49·Extract·Zip·Spec······14·(20)·'2.0'
65 0A4A·Extract·OS············00·(0)·'MS-DOS'65 0A4A·Extract·OS············00·(0)·'MS-DOS'
66 0A4B·General·Purpose·Flag··0000·(0)66 0A4B·General·Purpose·Flag··0000·(0)
67 ·····[Bits·1-2]············0·'Normal·Compression'67 ·····[Bits·1-2]············0·'Normal·Compression'
68 0A4D·Compression·Method····0008·(8)·'Deflated'68 0A4D·Compression·Method····0008·(8)·'Deflated'
69 0A4F·Modification·Time·····58CAA760·(1489676128)·'Mon·Jun·10·20:59:00·2024'69 0A4F·Modification·Time·····5B550250·(1532297808)·'Tue·Oct·21·00:18:32·2025'
70 0A53·CRC···················89BE64C8·(2310956232)70 0A53·CRC···················89BE64C8·(2310956232)
71 0A57·Compressed·Size·······00000B35·(2869)71 0A57·Compressed·Size·······00000B35·(2869)
72 0A5B·Uncompressed·Size·····00001E21·(7713)72 0A5B·Uncompressed·Size·····00001E21·(7713)
73 0A5F·Filename·Length·······0008·(8)73 0A5F·Filename·Length·······0008·(8)
74 0A61·Extra·Length··········001C·(28)74 0A61·Extra·Length··········001C·(28)
75 0A63·Filename··············'XXXXXXXX'75 0A63·Filename··············'XXXXXXXX'
76 #76 #
77 #·WARNING:·Offset·0xA63:·Filename·'XXXXXXXX'77 #·WARNING:·Offset·0xA63:·Filename·'XXXXXXXX'
78 #··········Zero·length·filename78 #··········Zero·length·filename
79 #79 #
80 0A6B·Extra·ID·#1···········5455·(21589)·'Extended·Timestamp·[UT]'80 0A6B·Extra·ID·#1···········5455·(21589)·'Extended·Timestamp·[UT]'
81 0A6D···Length··············0009·(9)81 0A6D···Length··············0009·(9)
82 0A6F···Flags···············03·(3)·'Modification·Access'82 0A6F···Flags···············03·(3)·'Modification·Access'
83 0A70···Modification·Time···66676914·(1718053140)·'Mon·Jun·10·20:59:00·2024' 
84 0A74···Access·Time·········66676917·(1718053143)·'Mon·Jun·10·20:59:03·2024'83 0A70···Modification·Time···68F6D157·(1761005911)·'Tue·Oct·21·00:18:31·2025'
 84 0A74···Access·Time·········68F6D16C·(1761005932)·'Tue·Oct·21·00:18:52·2025'
85 0A78·Extra·ID·#2···········7875·(30837)·'Unix·Extra·type·3·[ux]'85 0A78·Extra·ID·#2···········7875·(30837)·'Unix·Extra·type·3·[ux]'
86 0A7A···Length··············000B·(11)86 0A7A···Length··············000B·(11)
87 0A7C···Version·············01·(1)87 0A7C···Version·············01·(1)
88 0A7D···UID·Size············04·(4)88 0A7D···UID·Size············04·(4)
89 0A7E···UID·················000003E8·(1000)89 0A7E···UID·················000003E8·(1000)
90 0A82···GID·Size············04·(4)90 0A82···GID·Size············04·(4)
91 0A83···GID·················000003E8·(1000)91 0A83···GID·················000003E8·(1000)
Offset 96, 15 lines modifiedOffset 96, 15 lines modified
96 15C0·Created·Zip·Spec······1E·(30)·'3.0'96 15C0·Created·Zip·Spec······1E·(30)·'3.0'
97 15C1·Created·OS············03·(3)·'Unix'97 15C1·Created·OS············03·(3)·'Unix'
98 15C2·Extract·Zip·Spec······14·(20)·'2.0'98 15C2·Extract·Zip·Spec······14·(20)·'2.0'
99 15C3·Extract·OS············00·(0)·'MS-DOS'99 15C3·Extract·OS············00·(0)·'MS-DOS'
100 15C4·General·Purpose·Flag··0000·(0)100 15C4·General·Purpose·Flag··0000·(0)
101 ·····[Bits·1-2]············0·'Normal·Compression'101 ·····[Bits·1-2]············0·'Normal·Compression'
102 15C6·Compression·Method····0008·(8)·'Deflated'102 15C6·Compression·Method····0008·(8)·'Deflated'
103 15C8·Modification·Time·····58CAA760·(1489676128)·'Mon·Jun·10·20:59:00·2024'103 15C8·Modification·Time·····5B55024F·(1532297807)·'Tue·Oct·21·00:18:30·2025'
104 15CC·CRC···················3DE3D9E4·(1038342628)104 15CC·CRC···················3DE3D9E4·(1038342628)
105 15D0·Compressed·Size·······000002B2·(690)105 15D0·Compressed·Size·······000002B2·(690)
106 15D4·Uncompressed·Size·····0000087D·(2173)106 15D4·Uncompressed·Size·····0000087D·(2173)
107 15D8·Filename·Length·······000D·(13)107 15D8·Filename·Length·······000D·(13)
108 15DA·Extra·Length··········0018·(24)108 15DA·Extra·Length··········0018·(24)
109 15DC·Comment·Length········0000·(0)109 15DC·Comment·Length········0000·(0)
110 15DE·Disk·Start············0000·(0)110 15DE·Disk·Start············0000·(0)
Offset 118, 15 lines modifiedOffset 118, 15 lines modified
118 #118 #
119 #·WARNING:·Offset·0x15EA:·Filename·'XXXXXXXXXXXXX'119 #·WARNING:·Offset·0x15EA:·Filename·'XXXXXXXXXXXXX'
120 #··········Zero·length·filename120 #··········Zero·length·filename
121 #121 #
122 15F7·Extra·ID·#1···········5455·(21589)·'Extended·Timestamp·[UT]'122 15F7·Extra·ID·#1···········5455·(21589)·'Extended·Timestamp·[UT]'
123 15F9···Length··············0005·(5)123 15F9···Length··············0005·(5)
124 15FB···Flags···············03·(3)·'Modification·Access'124 15FB···Flags···············03·(3)·'Modification·Access'
125 15FC···Modification·Time···66676914·(1718053140)·'Mon·Jun·10·20:59:00·2024'125 15FC···Modification·Time···68F6D156·(1761005910)·'Tue·Oct·21·00:18:30·2025'
126 1600·Extra·ID·#2···········7875·(30837)·'Unix·Extra·type·3·[ux]'126 1600·Extra·ID·#2···········7875·(30837)·'Unix·Extra·type·3·[ux]'
127 1602···Length··············000B·(11)127 1602···Length··············000B·(11)
128 1604···Version·············01·(1)128 1604···Version·············01·(1)
129 1605···UID·Size············04·(4)129 1605···UID·Size············04·(4)
130 1606···UID·················000003E8·(1000)130 1606···UID·················000003E8·(1000)
131 160A···GID·Size············04·(4)131 160A···GID·Size············04·(4)
132 160B···GID·················000003E8·(1000)132 160B···GID·················000003E8·(1000)
Max diff block lines reached; 2962/9141 bytes (32.40%) of diff not shown.
338 B
filetype from file(1)
    
Offset 1, 1 lines modifiedOffset 1, 1 lines modified
1 Zip·archive·data,·made·by·v3.0·UNIX,·extract·using·at·least·v2.0,·last·modified·Jun·10·2024·20:59:00,·uncompressed·size·2173,·method=deflate1 Zip·archive·data,·made·by·v3.0·UNIX,·extract·using·at·least·v2.0,·last·modified·Oct·21·2025·00:18:30,·uncompressed·size·2173,·method=deflate
2.8 MB
assets/html/alexgames_wasm.wasm
2.8 MB
wasm2wat --no-check {}
    
Offset 73, 49 lines modifiedOffset 73, 53 lines modified
73 ··(type·(;71;)·(func·(param·f64·i64)·(result·i32)))73 ··(type·(;71;)·(func·(param·f64·i64)·(result·i32)))
74 ··(type·(;72;)·(func·(param·i32·i64·i64)·(result·i64)))74 ··(type·(;72;)·(func·(param·i32·i64·i64)·(result·i64)))
75 ··(type·(;73;)·(func·(param·i32·f64·f64)·(result·f64)))75 ··(type·(;73;)·(func·(param·i32·f64·f64)·(result·f64)))
76 ··(type·(;74;)·(func·(param·i64·i64)·(result·i64)))76 ··(type·(;74;)·(func·(param·i64·i64)·(result·i64)))
77 ··(type·(;75;)·(func·(param·i32·i64·i32·i32·i64)·(result·i32)))77 ··(type·(;75;)·(func·(param·i32·i64·i32·i32·i64)·(result·i32)))
78 ··(type·(;76;)·(func·(param·i32·i64·i32)·(result·i32)))78 ··(type·(;76;)·(func·(param·i32·i64·i32)·(result·i32)))
79 ··(type·(;77;)·(func·(param·i32·i32·i64·i32·i32)·(result·i32)))79 ··(type·(;77;)·(func·(param·i32·i32·i64·i32·i32)·(result·i32)))
 80 ··(type·(;78;)·(func·(param·i32·i32·i32·i32·i64·i32·i32)·(result·i64)))
 81 ··(type·(;79;)·(func·(param·i32·i32·i32·i64·i32·i32)·(result·i32)))
 82 ··(type·(;80;)·(func·(param·i64·i32·i64·i32·i32)·(result·i32)))
 83 ··(type·(;81;)·(func·(param·i32·i32·i64·i64·i32)·(result·i32)))
80 ··(type·(;78;)·(func·(param·i64·i64·i32·i64·i32)·(result·i64)))84 ··(type·(;82;)·(func·(param·i64·i64·i32·i64·i32)·(result·i64)))
81 ··(type·(;79;)·(func·(param·i32·i64·i64·i32·i64·i32·i32·i32·i64·i32·i32)·(result·i32)))85 ··(type·(;83;)·(func·(param·i32·i64·i64·i32·i64·i32·i32·i32·i64·i32·i32)·(result·i32)))
82 ··(type·(;80;)·(func·(param·i32·i64·i32·i32·i32)·(result·i32)))86 ··(type·(;84;)·(func·(param·i32·i64·i32·i32·i32)·(result·i32)))
83 ··(type·(;81;)·(func·(param·i32·i32·i32·i64)))87 ··(type·(;85;)·(func·(param·i32·i32·i32·i64)))
84 ··(type·(;82;)·(func·(param·i64)·(result·i64)))88 ··(type·(;86;)·(func·(param·i64)·(result·i64)))
85 ··(type·(;83;)·(func·(param·i32·i32·i32·i64)·(result·i64)))89 ··(type·(;87;)·(func·(param·i32·i32·i32·i64)·(result·i64)))
86 ··(type·(;84;)·(func·(param·i32·i64·i32·i64·i64·i32·i32)·(result·i32)))90 ··(type·(;88;)·(func·(param·i32·i64·i32·i64·i64·i32·i32)·(result·i32)))
87 ··(type·(;85;)·(func·(param·i32·i32·i64·i64·i32·i32·i32·i32)·(result·i32)))91 ··(type·(;89;)·(func·(param·i32·i32·i64·i64·i32·i32·i32·i32)·(result·i32)))
88 ··(type·(;86;)·(func·(param·i32·i64·i64·i32)·(result·i32)))92 ··(type·(;90;)·(func·(param·i32·i64·i64·i32)·(result·i32)))
89 ··(type·(;87;)·(func·(param·f64)·(result·f64)))93 ··(type·(;91;)·(func·(param·f64)·(result·f64)))
90 ··(type·(;88;)·(func·(param·f64)·(result·i64)))94 ··(type·(;92;)·(func·(param·f64)·(result·i64)))
91 ··(type·(;89;)·(func·(param·f64·f64)·(result·f64)))95 ··(type·(;93;)·(func·(param·f64·f64)·(result·f64)))
92 ··(type·(;90;)·(func·(param·f64·i32)·(result·i32)))96 ··(type·(;94;)·(func·(param·f64·i32)·(result·i32)))
93 ··(type·(;91;)·(func·(param·f64·f64·i32)·(result·f64)))97 ··(type·(;95;)·(func·(param·f64·f64·i32)·(result·f64)))
94 ··(type·(;92;)·(func·(param·i32·f64)·(result·f64)))98 ··(type·(;96;)·(func·(param·i32·f64)·(result·f64)))
95 ··(type·(;93;)·(func·(param·f64·i64·i64)·(result·f64)))99 ··(type·(;97;)·(func·(param·f64·i64·i64)·(result·f64)))
96 ··(type·(;94;)·(func·(param·f64·i32)·(result·f64)))100 ··(type·(;98;)·(func·(param·f64·i32)·(result·f64)))
97 ··(type·(;95;)·(func·(param·i32·i64·i64·i64·i64)))101 ··(type·(;99;)·(func·(param·i32·i64·i64·i64·i64)))
98 ··(type·(;96;)·(func·(param·i32·i64·i64·i32)))102 ··(type·(;100;)·(func·(param·i32·i64·i64·i32)))
99 ··(type·(;97;)·(func·(param·i64·i64)·(result·i32)))103 ··(type·(;101;)·(func·(param·i64·i64)·(result·i32)))
100 ··(type·(;98;)·(func·(param·i32·i64·i64)))104 ··(type·(;102;)·(func·(param·i32·i64·i64)))
101 ··(type·(;99;)·(func·(param·i32·i32·i32)·(result·f32)))105 ··(type·(;103;)·(func·(param·i32·i32·i32)·(result·f32)))
102 ··(type·(;100;)·(func·(param·i64·i32·i32)·(result·i32)))106 ··(type·(;104;)·(func·(param·i64·i32·i32)·(result·i32)))
103 ··(type·(;101;)·(func·(param·i64·i64·i64·i64)·(result·i32)))107 ··(type·(;105;)·(func·(param·i64·i64·i64·i64)·(result·i32)))
104 ··(type·(;102;)·(func·(param·i32·f32)))108 ··(type·(;106;)·(func·(param·i32·f32)))
105 ··(type·(;103;)·(func·(param·i64·i64)·(result·f64)))109 ··(type·(;107;)·(func·(param·i64·i64)·(result·f64)))
106 ··(type·(;104;)·(func·(param·i64·i64)·(result·f32)))110 ··(type·(;108;)·(func·(param·i64·i64)·(result·f32)))
107 ··(type·(;105;)·(func·(param·i32·i32·i64·i32·i32)))111 ··(type·(;109;)·(func·(param·i32·i32·i64·i32·i32)))
108 ··(type·(;106;)·(func·(param·i32·i32·i32·i32)·(result·i64)))112 ··(type·(;110;)·(func·(param·i32·i32·i32·i32)·(result·i64)))
109 ··(type·(;107;)·(func·(param·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32)·(result·i32)))113 ··(type·(;111;)·(func·(param·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32)·(result·i32)))
110 ··(type·(;108;)·(func·(param·i32·i32·i32·i32·i64)·(result·i32)))114 ··(type·(;112;)·(func·(param·i32·i32·i32·i32·i64)·(result·i32)))
111 ··(type·(;109;)·(func·(param·i32·i32·i32·i32·f64)·(result·i32)))115 ··(type·(;113;)·(func·(param·i32·i32·i32·i32·f64)·(result·i32)))
112 ··(type·(;110;)·(func·(param·i32·i32·i32·i32·i64·i64)·(result·i32)))116 ··(type·(;114;)·(func·(param·i32·i32·i32·i32·i64·i64)·(result·i32)))
113 ··(type·(;111;)·(func·(param·i32·i32·i32·i32·i32·i64·i64)·(result·i32)))117 ··(type·(;115;)·(func·(param·i32·i32·i32·i32·i32·i64·i64)·(result·i32)))
114 ··(type·(;112;)·(func·(param·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32)))118 ··(type·(;116;)·(func·(param·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32·i32)))
115 ··(import·"env"·"js_draw_graphic_raw"·(func·$js_draw_graphic_raw·(type·27)))119 ··(import·"env"·"js_draw_graphic_raw"·(func·$js_draw_graphic_raw·(type·27)))
116 ··(import·"env"·"js_add_game_option_json_str"·(func·$js_add_game_option_json_str·(type·2)))120 ··(import·"env"·"js_add_game_option_json_str"·(func·$js_add_game_option_json_str·(type·2)))
117 ··(import·"env"·"js_set_game_handle2"·(func·$js_set_game_handle2·(type·1)))121 ··(import·"env"·"js_set_game_handle2"·(func·$js_set_game_handle2·(type·1)))
118 ··(import·"env"·"js_show_popup_json"·(func·$js_show_popup_json·(type·0)))122 ··(import·"env"·"js_show_popup_json"·(func·$js_show_popup_json·(type·0)))
119 ··(import·"env"·"js_get_game_id"·(func·$js_get_game_id·(type·2)))123 ··(import·"env"·"js_get_game_id"·(func·$js_get_game_id·(type·2)))
120 ··(import·"env"·"js_draw_line"·(func·$js_draw_line·(type·12)))124 ··(import·"env"·"js_draw_line"·(func·$js_draw_line·(type·12)))
121 ··(import·"env"·"js_draw_text"·(func·$js_draw_text·(type·13)))125 ··(import·"env"·"js_draw_text"·(func·$js_draw_text·(type·13)))
Offset 237, 150 lines modifiedOffset 241, 150 lines modified
237 ··(func·$get_game_name·(type·10)·(param·i32)·(result·i32)241 ··(func·$get_game_name·(type·10)·(param·i32)·(result·i32)
238 ····local.get·0242 ····local.get·0
239 ····call·$alex_get_game_name)243 ····call·$alex_get_game_name)
240 ··(func·$start_game·(type·0)·(param·i32·i32·i32·i32)244 ··(func·$start_game·(type·0)·(param·i32·i32·i32·i32)
241 ····(local·i32)245 ····(local·i32)
242 ····block··;;·label·=·@1246 ····block··;;·label·=·@1
243 ······i32.const·0247 ······i32.const·0
244 ······i32.load·offset=83600248 ······i32.load·offset=83968
245 ······i32.load·offset=56249 ······i32.load·offset=56
246 ······local.tee·4250 ······local.tee·4
247 ······br_if·0·(;@1;)251 ······br_if·0·(;@1;)
248 ······i32.const·1024252 ······i32.const·1024
249 ······i32.const·19482253 ······i32.const·19785
250 ······i32.const·0254 ······i32.const·0
251 ······call·$alex_log_err_user_visible255 ······call·$alex_log_err_user_visible
252 ······return256 ······return
253 ····end257 ····end
254 ····local.get·0258 ····local.get·0
255 ····local.get·1259 ····local.get·1
256 ····local.get·2260 ····local.get·2
257 ····local.get·3261 ····local.get·3
258 ····local.get·4262 ····local.get·4
259 ····call_indirect·(type·0))263 ····call_indirect·(type·0))
260 ··(func·$update·(type·1)·(param·i32·i32)264 ··(func·$update·(type·1)·(param·i32·i32)
261 ····local.get·0265 ····local.get·0
262 ····local.get·1266 ····local.get·1
263 ····i32.const·0267 ····i32.const·0
264 ····i32.load·offset=83600268 ····i32.load·offset=83968
265 ····i32.load·offset=8269 ····i32.load·offset=8
266 ····call_indirect·(type·1))270 ····call_indirect·(type·1))
267 ··(func·$handle_user_string_input·(type·0)·(param·i32·i32·i32·i32)271 ··(func·$handle_user_string_input·(type·0)·(param·i32·i32·i32·i32)
268 ····local.get·0272 ····local.get·0
269 ····local.get·1273 ····local.get·1
270 ····local.get·2274 ····local.get·2
271 ····local.get·3275 ····local.get·3
272 ····i32.const·0276 ····i32.const·0
273 ····i32.load·offset=83600277 ····i32.load·offset=83968
274 ····i32.load·offset=12278 ····i32.load·offset=12
275 ····call_indirect·(type·0))279 ····call_indirect·(type·0))
276 ··(func·$handle_user_clicked·(type·2)·(param·i32·i32·i32)280 ··(func·$handle_user_clicked·(type·2)·(param·i32·i32·i32)
277 ····local.get·0281 ····local.get·0
278 ····local.get·1282 ····local.get·1
279 ····local.get·2283 ····local.get·2
280 ····i32.const·0284 ····i32.const·0
281 ····i32.load·offset=83600285 ····i32.load·offset=83968
282 ····i32.load·offset=16286 ····i32.load·offset=16
283 ····call_indirect·(type·2))287 ····call_indirect·(type·2))
284 ··(func·$handle_mousemove·(type·0)·(param·i32·i32·i32·i32)288 ··(func·$handle_mousemove·(type·0)·(param·i32·i32·i32·i32)
285 ····local.get·0289 ····local.get·0
286 ····local.get·1290 ····local.get·1
287 ····local.get·2291 ····local.get·2
288 ····local.get·3292 ····local.get·3
289 ····i32.const·0293 ····i32.const·0
290 ····i32.load·offset=83600294 ····i32.load·offset=83968
291 ····i32.load·offset=20295 ····i32.load·offset=20
292 ····call_indirect·(type·0))296 ····call_indirect·(type·0))
293 ··(func·$handle_mouse_evt·(type·3)·(param·i32·i32·i32·i32·i32)297 ··(func·$handle_mouse_evt·(type·3)·(param·i32·i32·i32·i32·i32)
294 ····local.get·0298 ····local.get·0
295 ····local.get·1299 ····local.get·1
296 ····local.get·2300 ····local.get·2
297 ····local.get·3301 ····local.get·3
298 ····local.get·4302 ····local.get·4
299 ····i32.const·0303 ····i32.const·0
300 ····i32.load·offset=83600304 ····i32.load·offset=83968
301 ····i32.load·offset=24305 ····i32.load·offset=24
302 ····call_indirect·(type·3))306 ····call_indirect·(type·3))
303 ··(func·$handle_wheel_changed·(type·2)·(param·i32·i32·i32)307 ··(func·$handle_wheel_changed·(type·2)·(param·i32·i32·i32)
304 ····local.get·0308 ····local.get·0
305 ····local.get·1309 ····local.get·1
306 ····local.get·2310 ····local.get·2
307 ····i32.const·0311 ····i32.const·0
308 ····i32.load·offset=83600312 ····i32.load·offset=83968
309 ····i32.load·offset=28313 ····i32.load·offset=28
Max diff block lines reached; 2929802/2937321 bytes (99.74%) of diff not shown.