diff --git a/tulip/release.sh b/tulip/release.sh index fa9e589b..53937e5a 100755 --- a/tulip/release.sh +++ b/tulip/release.sh @@ -65,14 +65,6 @@ if [ "$TYPE" == "upload" ]; then fi cd .. -# Now do web -cd ../web -make clean -./build.sh -if [ "$TYPE" == "upload" ]; then - git commit -a -m "deploying Tulip Web"; git push -u origin HEAD; gh pr create -f; gh pr merge -m -fi -cd .. diff --git a/www/run/index.html b/www/run/index.html index 02119522..29f1d54b 100644 --- a/www/run/index.html +++ b/www/run/index.html @@ -21,6 +21,7 @@ + @@ -33,7 +34,7 @@ - + diff --git a/www/run/micropython.data b/www/run/micropython.data index 5ff98cb5..21c39b6f 100644 Binary files a/www/run/micropython.data and b/www/run/micropython.data differ diff --git a/www/run/micropython.mjs b/www/run/micropython.mjs index 1763b14a..076aa62f 100644 --- a/www/run/micropython.mjs +++ b/www/run/micropython.mjs @@ -221,7 +221,7 @@ Module['FS_createPath']("/tulip4/sys/im", "tiny_town", true, true); } } - loadPackage({"files": [{"filename": "/tulip4/sys/ex/ansi.py", "start": 0, "end": 211}, {"filename": "/tulip4/sys/ex/bcla3.wav", "start": 211, "end": 585993, "audio": 1}, {"filename": "/tulip4/sys/ex/bunny_bounce/bunny_bounce.py", "start": 585993, "end": 593768}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_0.png", "start": 593768, "end": 596178}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_1.png", "start": 596178, "end": 598373}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_2.png", "start": 598373, "end": 600651}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_3.png", "start": 600651, "end": 602949}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_0.png", "start": 602949, "end": 605243}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_1.png", "start": 605243, "end": 607519}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_2.png", "start": 607519, "end": 609727}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_3.png", "start": 609727, "end": 612147}, {"filename": "/tulip4/sys/ex/buttons.py", "start": 612147, "end": 613763}, {"filename": "/tulip4/sys/ex/calibrate.py", "start": 613763, "end": 615130}, {"filename": "/tulip4/sys/ex/fonts.py", "start": 615130, "end": 615301}, {"filename": "/tulip4/sys/ex/g/brick.png", "start": 615301, "end": 615594}, {"filename": "/tulip4/sys/ex/g/cave.png", "start": 615594, "end": 616196}, {"filename": "/tulip4/sys/ex/g/clouds.png", "start": 616196, "end": 617026}, {"filename": "/tulip4/sys/ex/g/clouds2.png", "start": 617026, "end": 617823}, {"filename": "/tulip4/sys/ex/g/colorbars.png", "start": 617823, "end": 627664}, {"filename": "/tulip4/sys/ex/g/desert.png", "start": 627664, "end": 628302}, {"filename": "/tulip4/sys/ex/g/earth.png", "start": 628302, "end": 629145}, {"filename": "/tulip4/sys/ex/g/earth2.png", "start": 629145, "end": 629991}, {"filename": "/tulip4/sys/ex/g/fire.png", "start": 629991, "end": 630981}, {"filename": "/tulip4/sys/ex/g/flowers.png", "start": 630981, "end": 631743}, {"filename": "/tulip4/sys/ex/g/grass.png", "start": 631743, "end": 632914}, {"filename": "/tulip4/sys/ex/g/meadow.png", "start": 632914, "end": 633420}, {"filename": "/tulip4/sys/ex/g/mountain-bg.png", "start": 633420, "end": 638023}, {"filename": "/tulip4/sys/ex/g/mountain-far.png", "start": 638023, "end": 640438}, {"filename": "/tulip4/sys/ex/g/mountain.png", "start": 640438, "end": 645320}, {"filename": "/tulip4/sys/ex/g/rabbit_l_0.png", "start": 645320, "end": 647730}, {"filename": "/tulip4/sys/ex/g/rabbit_l_1.png", "start": 647730, "end": 649925}, {"filename": "/tulip4/sys/ex/g/rabbit_l_2.png", "start": 649925, "end": 652203}, {"filename": "/tulip4/sys/ex/g/rabbit_l_3.png", "start": 652203, "end": 654501}, {"filename": "/tulip4/sys/ex/g/rabbit_r_0.png", "start": 654501, "end": 656795}, {"filename": "/tulip4/sys/ex/g/rabbit_r_1.png", "start": 656795, "end": 659071}, {"filename": "/tulip4/sys/ex/g/rabbit_r_2.png", "start": 659071, "end": 661279}, {"filename": "/tulip4/sys/ex/g/rabbit_r_3.png", "start": 661279, "end": 663699}, {"filename": "/tulip4/sys/ex/g/trees-far.png", "start": 663699, "end": 669414}, {"filename": "/tulip4/sys/ex/g/trees.png", "start": 669414, "end": 676340}, {"filename": "/tulip4/sys/ex/g/tulip3.png", "start": 676340, "end": 711458}, {"filename": "/tulip4/sys/ex/g/tulipbw.png", "start": 711458, "end": 714337}, {"filename": "/tulip4/sys/ex/g/water.png", "start": 714337, "end": 714921}, {"filename": "/tulip4/sys/ex/joy.py", "start": 714921, "end": 715922}, {"filename": "/tulip4/sys/ex/my_drums.py", "start": 715922, "end": 724860}, {"filename": "/tulip4/sys/ex/my_juno6.py", "start": 724860, "end": 749640}, {"filename": "/tulip4/sys/ex/my_voices.py", "start": 749640, "end": 762929}, {"filename": "/tulip4/sys/ex/my_worldui.py", "start": 762929, "end": 766940}, {"filename": "/tulip4/sys/ex/parallax.py", "start": 766940, "end": 771145}, {"filename": "/tulip4/sys/ex/planet_boing/pix/bang_texture_03.png", "start": 771145, "end": 773090}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_00.png", "start": 773090, "end": 774930}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_01.png", "start": 774930, "end": 778435}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_02.png", "start": 778435, "end": 780645}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_03.png", "start": 780645, "end": 782725}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_04.png", "start": 782725, "end": 784913}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_05.png", "start": 784913, "end": 786908}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_06.png", "start": 786908, "end": 789024}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_07.png", "start": 789024, "end": 791169}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_08.png", "start": 791169, "end": 793321}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_09.png", "start": 793321, "end": 795434}, {"filename": "/tulip4/sys/ex/planet_boing/pix/wormhole.png", "start": 795434, "end": 796196}, {"filename": "/tulip4/sys/ex/planet_boing/planet_boing.py", "start": 796196, "end": 812102}, {"filename": "/tulip4/sys/ex/rgb332.py", "start": 812102, "end": 812440}, {"filename": "/tulip4/sys/ex/screensaver.py", "start": 812440, "end": 813456}, {"filename": "/tulip4/sys/ex/vlng3.wav", "start": 813456, "end": 1116246, "audio": 1}, {"filename": "/tulip4/sys/ex/vlsa3.wav", "start": 1116246, "end": 1574820, "audio": 1}, {"filename": "/tulip4/sys/ex/woodpiano.txt", "start": 1574820, "end": 1575403}, {"filename": "/tulip4/sys/ex/wordpad.py", "start": 1575403, "end": 1576079}, {"filename": "/tulip4/sys/ex/xanadu.py", "start": 1576079, "end": 1581670}, {"filename": "/tulip4/sys/im/tiny_town/tile_0000.png", "start": 1581670, "end": 1581769}, {"filename": "/tulip4/sys/im/tiny_town/tile_0001.png", "start": 1581769, "end": 1581913}, {"filename": "/tulip4/sys/im/tiny_town/tile_0002.png", "start": 1581913, "end": 1582087}, {"filename": "/tulip4/sys/im/tiny_town/tile_0003.png", "start": 1582087, "end": 1582263}, {"filename": "/tulip4/sys/im/tiny_town/tile_0004.png", "start": 1582263, "end": 1582438}, {"filename": "/tulip4/sys/im/tiny_town/tile_0005.png", "start": 1582438, "end": 1582635}, {"filename": "/tulip4/sys/im/tiny_town/tile_0006.png", "start": 1582635, "end": 1582815}, {"filename": "/tulip4/sys/im/tiny_town/tile_0007.png", "start": 1582815, "end": 1582972}, {"filename": "/tulip4/sys/im/tiny_town/tile_0008.png", "start": 1582972, "end": 1583157}, {"filename": "/tulip4/sys/im/tiny_town/tile_0009.png", "start": 1583157, "end": 1583337}, {"filename": "/tulip4/sys/im/tiny_town/tile_0010.png", "start": 1583337, "end": 1583494}, {"filename": "/tulip4/sys/im/tiny_town/tile_0011.png", "start": 1583494, "end": 1583679}, {"filename": "/tulip4/sys/im/tiny_town/tile_0012.png", "start": 1583679, "end": 1583840}, {"filename": "/tulip4/sys/im/tiny_town/tile_0013.png", "start": 1583840, "end": 1583993}, {"filename": "/tulip4/sys/im/tiny_town/tile_0014.png", "start": 1583993, "end": 1584154}, {"filename": "/tulip4/sys/im/tiny_town/tile_0015.png", "start": 1584154, "end": 1584347}, {"filename": "/tulip4/sys/im/tiny_town/tile_0016.png", "start": 1584347, "end": 1584539}, {"filename": "/tulip4/sys/im/tiny_town/tile_0017.png", "start": 1584539, "end": 1584716}, {"filename": "/tulip4/sys/im/tiny_town/tile_0018.png", "start": 1584716, "end": 1584879}, {"filename": "/tulip4/sys/im/tiny_town/tile_0019.png", "start": 1584879, "end": 1585079}, {"filename": "/tulip4/sys/im/tiny_town/tile_0020.png", "start": 1585079, "end": 1585245}, {"filename": "/tulip4/sys/im/tiny_town/tile_0021.png", "start": 1585245, "end": 1585408}, {"filename": "/tulip4/sys/im/tiny_town/tile_0022.png", "start": 1585408, "end": 1585608}, {"filename": "/tulip4/sys/im/tiny_town/tile_0023.png", "start": 1585608, "end": 1585774}, {"filename": "/tulip4/sys/im/tiny_town/tile_0024.png", "start": 1585774, "end": 1585909}, {"filename": "/tulip4/sys/im/tiny_town/tile_0025.png", "start": 1585909, "end": 1586008}, {"filename": "/tulip4/sys/im/tiny_town/tile_0026.png", "start": 1586008, "end": 1586148}, {"filename": "/tulip4/sys/im/tiny_town/tile_0027.png", "start": 1586148, "end": 1586339}, {"filename": "/tulip4/sys/im/tiny_town/tile_0028.png", "start": 1586339, "end": 1586530}, {"filename": "/tulip4/sys/im/tiny_town/tile_0029.png", "start": 1586530, "end": 1586727}, {"filename": "/tulip4/sys/im/tiny_town/tile_0030.png", "start": 1586727, "end": 1586908}, {"filename": "/tulip4/sys/im/tiny_town/tile_0031.png", "start": 1586908, "end": 1587065}, {"filename": "/tulip4/sys/im/tiny_town/tile_0032.png", "start": 1587065, "end": 1587246}, {"filename": "/tulip4/sys/im/tiny_town/tile_0033.png", "start": 1587246, "end": 1587427}, {"filename": "/tulip4/sys/im/tiny_town/tile_0034.png", "start": 1587427, "end": 1587584}, {"filename": "/tulip4/sys/im/tiny_town/tile_0035.png", "start": 1587584, "end": 1587765}, {"filename": "/tulip4/sys/im/tiny_town/tile_0036.png", "start": 1587765, "end": 1587919}, {"filename": "/tulip4/sys/im/tiny_town/tile_0037.png", "start": 1587919, "end": 1588053}, {"filename": "/tulip4/sys/im/tiny_town/tile_0038.png", "start": 1588053, "end": 1588202}, {"filename": "/tulip4/sys/im/tiny_town/tile_0039.png", "start": 1588202, "end": 1588331}, {"filename": "/tulip4/sys/im/tiny_town/tile_0040.png", "start": 1588331, "end": 1588470}, {"filename": "/tulip4/sys/im/tiny_town/tile_0041.png", "start": 1588470, "end": 1588596}, {"filename": "/tulip4/sys/im/tiny_town/tile_0042.png", "start": 1588596, "end": 1588733}, {"filename": "/tulip4/sys/im/tiny_town/tile_0043.png", "start": 1588733, "end": 1588899}, {"filename": "/tulip4/sys/im/tiny_town/tile_0044.png", "start": 1588899, "end": 1589063}, {"filename": "/tulip4/sys/im/tiny_town/tile_0045.png", "start": 1589063, "end": 1589241}, {"filename": "/tulip4/sys/im/tiny_town/tile_0046.png", "start": 1589241, "end": 1589405}, {"filename": "/tulip4/sys/im/tiny_town/tile_0047.png", "start": 1589405, "end": 1589549}, {"filename": "/tulip4/sys/im/tiny_town/tile_0048.png", "start": 1589549, "end": 1589715}, {"filename": "/tulip4/sys/im/tiny_town/tile_0049.png", "start": 1589715, "end": 1589876}, {"filename": "/tulip4/sys/im/tiny_town/tile_0050.png", "start": 1589876, "end": 1590047}, {"filename": "/tulip4/sys/im/tiny_town/tile_0051.png", "start": 1590047, "end": 1590214}, {"filename": "/tulip4/sys/im/tiny_town/tile_0052.png", "start": 1590214, "end": 1590394}, {"filename": "/tulip4/sys/im/tiny_town/tile_0053.png", "start": 1590394, "end": 1590572}, {"filename": "/tulip4/sys/im/tiny_town/tile_0054.png", "start": 1590572, "end": 1590753}, {"filename": "/tulip4/sys/im/tiny_town/tile_0055.png", "start": 1590753, "end": 1590941}, {"filename": "/tulip4/sys/im/tiny_town/tile_0056.png", "start": 1590941, "end": 1591087}, {"filename": "/tulip4/sys/im/tiny_town/tile_0057.png", "start": 1591087, "end": 1591300}, {"filename": "/tulip4/sys/im/tiny_town/tile_0058.png", "start": 1591300, "end": 1591447}, {"filename": "/tulip4/sys/im/tiny_town/tile_0059.png", "start": 1591447, "end": 1591592}, {"filename": "/tulip4/sys/im/tiny_town/tile_0060.png", "start": 1591592, "end": 1591769}, {"filename": "/tulip4/sys/im/tiny_town/tile_0061.png", "start": 1591769, "end": 1591935}, {"filename": "/tulip4/sys/im/tiny_town/tile_0062.png", "start": 1591935, "end": 1592119}, {"filename": "/tulip4/sys/im/tiny_town/tile_0063.png", "start": 1592119, "end": 1592335}, {"filename": "/tulip4/sys/im/tiny_town/tile_0064.png", "start": 1592335, "end": 1592512}, {"filename": "/tulip4/sys/im/tiny_town/tile_0065.png", "start": 1592512, "end": 1592678}, {"filename": "/tulip4/sys/im/tiny_town/tile_0066.png", "start": 1592678, "end": 1592862}, {"filename": "/tulip4/sys/im/tiny_town/tile_0067.png", "start": 1592862, "end": 1593078}, {"filename": "/tulip4/sys/im/tiny_town/tile_0068.png", "start": 1593078, "end": 1593242}, {"filename": "/tulip4/sys/im/tiny_town/tile_0069.png", "start": 1593242, "end": 1593413}, {"filename": "/tulip4/sys/im/tiny_town/tile_0070.png", "start": 1593413, "end": 1593578}, {"filename": "/tulip4/sys/im/tiny_town/tile_0071.png", "start": 1593578, "end": 1593717}, {"filename": "/tulip4/sys/im/tiny_town/tile_0072.png", "start": 1593717, "end": 1593854}, {"filename": "/tulip4/sys/im/tiny_town/tile_0073.png", "start": 1593854, "end": 1593983}, {"filename": "/tulip4/sys/im/tiny_town/tile_0074.png", "start": 1593983, "end": 1594138}, {"filename": "/tulip4/sys/im/tiny_town/tile_0075.png", "start": 1594138, "end": 1594281}, {"filename": "/tulip4/sys/im/tiny_town/tile_0076.png", "start": 1594281, "end": 1594418}, {"filename": "/tulip4/sys/im/tiny_town/tile_0077.png", "start": 1594418, "end": 1594547}, {"filename": "/tulip4/sys/im/tiny_town/tile_0078.png", "start": 1594547, "end": 1594702}, {"filename": "/tulip4/sys/im/tiny_town/tile_0079.png", "start": 1594702, "end": 1594845}, {"filename": "/tulip4/sys/im/tiny_town/tile_0080.png", "start": 1594845, "end": 1595005}, {"filename": "/tulip4/sys/im/tiny_town/tile_0081.png", "start": 1595005, "end": 1595125}, {"filename": "/tulip4/sys/im/tiny_town/tile_0082.png", "start": 1595125, "end": 1595287}, {"filename": "/tulip4/sys/im/tiny_town/tile_0083.png", "start": 1595287, "end": 1595476}, {"filename": "/tulip4/sys/im/tiny_town/tile_0084.png", "start": 1595476, "end": 1595646}, {"filename": "/tulip4/sys/im/tiny_town/tile_0085.png", "start": 1595646, "end": 1595809}, {"filename": "/tulip4/sys/im/tiny_town/tile_0086.png", "start": 1595809, "end": 1595970}, {"filename": "/tulip4/sys/im/tiny_town/tile_0087.png", "start": 1595970, "end": 1596131}, {"filename": "/tulip4/sys/im/tiny_town/tile_0088.png", "start": 1596131, "end": 1596298}, {"filename": "/tulip4/sys/im/tiny_town/tile_0089.png", "start": 1596298, "end": 1596461}, {"filename": "/tulip4/sys/im/tiny_town/tile_0090.png", "start": 1596461, "end": 1596622}, {"filename": "/tulip4/sys/im/tiny_town/tile_0091.png", "start": 1596622, "end": 1596784}, {"filename": "/tulip4/sys/im/tiny_town/tile_0092.png", "start": 1596784, "end": 1596942}, {"filename": "/tulip4/sys/im/tiny_town/tile_0093.png", "start": 1596942, "end": 1597104}, {"filename": "/tulip4/sys/im/tiny_town/tile_0094.png", "start": 1597104, "end": 1597289}, {"filename": "/tulip4/sys/im/tiny_town/tile_0095.png", "start": 1597289, "end": 1597484}, {"filename": "/tulip4/sys/im/tiny_town/tile_0096.png", "start": 1597484, "end": 1597673}, {"filename": "/tulip4/sys/im/tiny_town/tile_0097.png", "start": 1597673, "end": 1597812}, {"filename": "/tulip4/sys/im/tiny_town/tile_0098.png", "start": 1597812, "end": 1597993}, {"filename": "/tulip4/sys/im/tiny_town/tile_0099.png", "start": 1597993, "end": 1598164}, {"filename": "/tulip4/sys/im/tiny_town/tile_0100.png", "start": 1598164, "end": 1598296}, {"filename": "/tulip4/sys/im/tiny_town/tile_0101.png", "start": 1598296, "end": 1598470}, {"filename": "/tulip4/sys/im/tiny_town/tile_0102.png", "start": 1598470, "end": 1598645}, {"filename": "/tulip4/sys/im/tiny_town/tile_0103.png", "start": 1598645, "end": 1598841}, {"filename": "/tulip4/sys/im/tiny_town/tile_0104.png", "start": 1598841, "end": 1599083}, {"filename": "/tulip4/sys/im/tiny_town/tile_0105.png", "start": 1599083, "end": 1599281}, {"filename": "/tulip4/sys/im/tiny_town/tile_0106.png", "start": 1599281, "end": 1599459}, {"filename": "/tulip4/sys/im/tiny_town/tile_0107.png", "start": 1599459, "end": 1599661}, {"filename": "/tulip4/sys/im/tiny_town/tile_0108.png", "start": 1599661, "end": 1599783}, {"filename": "/tulip4/sys/im/tiny_town/tile_0109.png", "start": 1599783, "end": 1599882}, {"filename": "/tulip4/sys/im/tiny_town/tile_0110.png", "start": 1599882, "end": 1600003}, {"filename": "/tulip4/sys/im/tiny_town/tile_0111.png", "start": 1600003, "end": 1600206}, {"filename": "/tulip4/sys/im/tiny_town/tile_0112.png", "start": 1600206, "end": 1600409}, {"filename": "/tulip4/sys/im/tiny_town/tile_0113.png", "start": 1600409, "end": 1600609}, {"filename": "/tulip4/sys/im/tiny_town/tile_0114.png", "start": 1600609, "end": 1600809}, {"filename": "/tulip4/sys/im/tiny_town/tile_0115.png", "start": 1600809, "end": 1600995}, {"filename": "/tulip4/sys/im/tiny_town/tile_0116.png", "start": 1600995, "end": 1601179}, {"filename": "/tulip4/sys/im/tiny_town/tile_0117.png", "start": 1601179, "end": 1601351}, {"filename": "/tulip4/sys/im/tiny_town/tile_0118.png", "start": 1601351, "end": 1601534}, {"filename": "/tulip4/sys/im/tiny_town/tile_0119.png", "start": 1601534, "end": 1601717}, {"filename": "/tulip4/sys/im/tiny_town/tile_0120.png", "start": 1601717, "end": 1601875}, {"filename": "/tulip4/sys/im/tiny_town/tile_0121.png", "start": 1601875, "end": 1602016}, {"filename": "/tulip4/sys/im/tiny_town/tile_0122.png", "start": 1602016, "end": 1602179}, {"filename": "/tulip4/sys/im/tiny_town/tile_0123.png", "start": 1602179, "end": 1602324}, {"filename": "/tulip4/sys/im/tiny_town/tile_0124.png", "start": 1602324, "end": 1602470}, {"filename": "/tulip4/sys/im/tiny_town/tile_0125.png", "start": 1602470, "end": 1602656}, {"filename": "/tulip4/sys/im/tiny_town/tile_0126.png", "start": 1602656, "end": 1602814}, {"filename": "/tulip4/sys/im/tiny_town/tile_0127.png", "start": 1602814, "end": 1602998}, {"filename": "/tulip4/sys/im/tiny_town/tile_0128.png", "start": 1602998, "end": 1603198}, {"filename": "/tulip4/sys/im/tiny_town/tile_0129.png", "start": 1603198, "end": 1603398}, {"filename": "/tulip4/sys/im/tiny_town/tile_0130.png", "start": 1603398, "end": 1603604}, {"filename": "/tulip4/sys/im/tiny_town/tile_0131.png", "start": 1603604, "end": 1603824}], "remote_package_size": 1603824}); + loadPackage({"files": [{"filename": "/tulip4/sys/ex/ansi.py", "start": 0, "end": 211}, {"filename": "/tulip4/sys/ex/bcla3.wav", "start": 211, "end": 585993, "audio": 1}, {"filename": "/tulip4/sys/ex/bunny_bounce/bunny_bounce.py", "start": 585993, "end": 593768}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_0.png", "start": 593768, "end": 596178}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_1.png", "start": 596178, "end": 598373}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_2.png", "start": 598373, "end": 600651}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_l_3.png", "start": 600651, "end": 602949}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_0.png", "start": 602949, "end": 605243}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_1.png", "start": 605243, "end": 607519}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_2.png", "start": 607519, "end": 609727}, {"filename": "/tulip4/sys/ex/bunny_bounce/pix/rabbit_r_3.png", "start": 609727, "end": 612147}, {"filename": "/tulip4/sys/ex/buttons.py", "start": 612147, "end": 613763}, {"filename": "/tulip4/sys/ex/calibrate.py", "start": 613763, "end": 615130}, {"filename": "/tulip4/sys/ex/fonts.py", "start": 615130, "end": 615301}, {"filename": "/tulip4/sys/ex/g/brick.png", "start": 615301, "end": 615594}, {"filename": "/tulip4/sys/ex/g/cave.png", "start": 615594, "end": 616196}, {"filename": "/tulip4/sys/ex/g/clouds.png", "start": 616196, "end": 617026}, {"filename": "/tulip4/sys/ex/g/clouds2.png", "start": 617026, "end": 617823}, {"filename": "/tulip4/sys/ex/g/colorbars.png", "start": 617823, "end": 627664}, {"filename": "/tulip4/sys/ex/g/desert.png", "start": 627664, "end": 628302}, {"filename": "/tulip4/sys/ex/g/earth.png", "start": 628302, "end": 629145}, {"filename": "/tulip4/sys/ex/g/earth2.png", "start": 629145, "end": 629991}, {"filename": "/tulip4/sys/ex/g/fire.png", "start": 629991, "end": 630981}, {"filename": "/tulip4/sys/ex/g/flowers.png", "start": 630981, "end": 631743}, {"filename": "/tulip4/sys/ex/g/grass.png", "start": 631743, "end": 632914}, {"filename": "/tulip4/sys/ex/g/meadow.png", "start": 632914, "end": 633420}, {"filename": "/tulip4/sys/ex/g/mountain-bg.png", "start": 633420, "end": 638023}, {"filename": "/tulip4/sys/ex/g/mountain-far.png", "start": 638023, "end": 640438}, {"filename": "/tulip4/sys/ex/g/mountain.png", "start": 640438, "end": 645320}, {"filename": "/tulip4/sys/ex/g/rabbit_l_0.png", "start": 645320, "end": 647730}, {"filename": "/tulip4/sys/ex/g/rabbit_l_1.png", "start": 647730, "end": 649925}, {"filename": "/tulip4/sys/ex/g/rabbit_l_2.png", "start": 649925, "end": 652203}, {"filename": "/tulip4/sys/ex/g/rabbit_l_3.png", "start": 652203, "end": 654501}, {"filename": "/tulip4/sys/ex/g/rabbit_r_0.png", "start": 654501, "end": 656795}, {"filename": "/tulip4/sys/ex/g/rabbit_r_1.png", "start": 656795, "end": 659071}, {"filename": "/tulip4/sys/ex/g/rabbit_r_2.png", "start": 659071, "end": 661279}, {"filename": "/tulip4/sys/ex/g/rabbit_r_3.png", "start": 661279, "end": 663699}, {"filename": "/tulip4/sys/ex/g/trees-far.png", "start": 663699, "end": 669414}, {"filename": "/tulip4/sys/ex/g/trees.png", "start": 669414, "end": 676340}, {"filename": "/tulip4/sys/ex/g/tulip3.png", "start": 676340, "end": 711458}, {"filename": "/tulip4/sys/ex/g/tulipbw.png", "start": 711458, "end": 714337}, {"filename": "/tulip4/sys/ex/g/water.png", "start": 714337, "end": 714921}, {"filename": "/tulip4/sys/ex/joy.py", "start": 714921, "end": 715922}, {"filename": "/tulip4/sys/ex/my_drums.py", "start": 715922, "end": 725518}, {"filename": "/tulip4/sys/ex/my_juno6.py", "start": 725518, "end": 750298}, {"filename": "/tulip4/sys/ex/my_voices.py", "start": 750298, "end": 763587}, {"filename": "/tulip4/sys/ex/my_worldui.py", "start": 763587, "end": 767598}, {"filename": "/tulip4/sys/ex/parallax.py", "start": 767598, "end": 771803}, {"filename": "/tulip4/sys/ex/planet_boing/pix/bang_texture_03.png", "start": 771803, "end": 773748}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_00.png", "start": 773748, "end": 775588}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_01.png", "start": 775588, "end": 779093}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_02.png", "start": 779093, "end": 781303}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_03.png", "start": 781303, "end": 783383}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_04.png", "start": 783383, "end": 785571}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_05.png", "start": 785571, "end": 787566}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_06.png", "start": 787566, "end": 789682}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_07.png", "start": 789682, "end": 791827}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_08.png", "start": 791827, "end": 793979}, {"filename": "/tulip4/sys/ex/planet_boing/pix/blob_texture_09.png", "start": 793979, "end": 796092}, {"filename": "/tulip4/sys/ex/planet_boing/pix/wormhole.png", "start": 796092, "end": 796854}, {"filename": "/tulip4/sys/ex/planet_boing/planet_boing.py", "start": 796854, "end": 812760}, {"filename": "/tulip4/sys/ex/rgb332.py", "start": 812760, "end": 813098}, {"filename": "/tulip4/sys/ex/screensaver.py", "start": 813098, "end": 814114}, {"filename": "/tulip4/sys/ex/vlng3.wav", "start": 814114, "end": 1116904, "audio": 1}, {"filename": "/tulip4/sys/ex/vlsa3.wav", "start": 1116904, "end": 1575478, "audio": 1}, {"filename": "/tulip4/sys/ex/woodpiano.txt", "start": 1575478, "end": 1576061}, {"filename": "/tulip4/sys/ex/wordpad.py", "start": 1576061, "end": 1576737}, {"filename": "/tulip4/sys/ex/xanadu.py", "start": 1576737, "end": 1582328}, {"filename": "/tulip4/sys/im/tiny_town/tile_0000.png", "start": 1582328, "end": 1582427}, {"filename": "/tulip4/sys/im/tiny_town/tile_0001.png", "start": 1582427, "end": 1582571}, {"filename": "/tulip4/sys/im/tiny_town/tile_0002.png", "start": 1582571, "end": 1582745}, {"filename": "/tulip4/sys/im/tiny_town/tile_0003.png", "start": 1582745, "end": 1582921}, {"filename": "/tulip4/sys/im/tiny_town/tile_0004.png", "start": 1582921, "end": 1583096}, {"filename": "/tulip4/sys/im/tiny_town/tile_0005.png", "start": 1583096, "end": 1583293}, {"filename": "/tulip4/sys/im/tiny_town/tile_0006.png", "start": 1583293, "end": 1583473}, {"filename": "/tulip4/sys/im/tiny_town/tile_0007.png", "start": 1583473, "end": 1583630}, {"filename": "/tulip4/sys/im/tiny_town/tile_0008.png", "start": 1583630, "end": 1583815}, {"filename": "/tulip4/sys/im/tiny_town/tile_0009.png", "start": 1583815, "end": 1583995}, {"filename": "/tulip4/sys/im/tiny_town/tile_0010.png", "start": 1583995, "end": 1584152}, {"filename": "/tulip4/sys/im/tiny_town/tile_0011.png", "start": 1584152, "end": 1584337}, {"filename": "/tulip4/sys/im/tiny_town/tile_0012.png", "start": 1584337, "end": 1584498}, {"filename": "/tulip4/sys/im/tiny_town/tile_0013.png", "start": 1584498, "end": 1584651}, {"filename": "/tulip4/sys/im/tiny_town/tile_0014.png", "start": 1584651, "end": 1584812}, {"filename": "/tulip4/sys/im/tiny_town/tile_0015.png", "start": 1584812, "end": 1585005}, {"filename": "/tulip4/sys/im/tiny_town/tile_0016.png", "start": 1585005, "end": 1585197}, {"filename": "/tulip4/sys/im/tiny_town/tile_0017.png", "start": 1585197, "end": 1585374}, {"filename": "/tulip4/sys/im/tiny_town/tile_0018.png", "start": 1585374, "end": 1585537}, {"filename": "/tulip4/sys/im/tiny_town/tile_0019.png", "start": 1585537, "end": 1585737}, {"filename": "/tulip4/sys/im/tiny_town/tile_0020.png", "start": 1585737, "end": 1585903}, {"filename": "/tulip4/sys/im/tiny_town/tile_0021.png", "start": 1585903, "end": 1586066}, {"filename": "/tulip4/sys/im/tiny_town/tile_0022.png", "start": 1586066, "end": 1586266}, {"filename": "/tulip4/sys/im/tiny_town/tile_0023.png", "start": 1586266, "end": 1586432}, {"filename": "/tulip4/sys/im/tiny_town/tile_0024.png", "start": 1586432, "end": 1586567}, {"filename": "/tulip4/sys/im/tiny_town/tile_0025.png", "start": 1586567, "end": 1586666}, {"filename": "/tulip4/sys/im/tiny_town/tile_0026.png", "start": 1586666, "end": 1586806}, {"filename": "/tulip4/sys/im/tiny_town/tile_0027.png", "start": 1586806, "end": 1586997}, {"filename": "/tulip4/sys/im/tiny_town/tile_0028.png", "start": 1586997, "end": 1587188}, {"filename": "/tulip4/sys/im/tiny_town/tile_0029.png", "start": 1587188, "end": 1587385}, {"filename": "/tulip4/sys/im/tiny_town/tile_0030.png", "start": 1587385, "end": 1587566}, {"filename": "/tulip4/sys/im/tiny_town/tile_0031.png", "start": 1587566, "end": 1587723}, {"filename": "/tulip4/sys/im/tiny_town/tile_0032.png", "start": 1587723, "end": 1587904}, {"filename": "/tulip4/sys/im/tiny_town/tile_0033.png", "start": 1587904, "end": 1588085}, {"filename": "/tulip4/sys/im/tiny_town/tile_0034.png", "start": 1588085, "end": 1588242}, {"filename": "/tulip4/sys/im/tiny_town/tile_0035.png", "start": 1588242, "end": 1588423}, {"filename": "/tulip4/sys/im/tiny_town/tile_0036.png", "start": 1588423, "end": 1588577}, {"filename": "/tulip4/sys/im/tiny_town/tile_0037.png", "start": 1588577, "end": 1588711}, {"filename": "/tulip4/sys/im/tiny_town/tile_0038.png", "start": 1588711, "end": 1588860}, {"filename": "/tulip4/sys/im/tiny_town/tile_0039.png", "start": 1588860, "end": 1588989}, {"filename": "/tulip4/sys/im/tiny_town/tile_0040.png", "start": 1588989, "end": 1589128}, {"filename": "/tulip4/sys/im/tiny_town/tile_0041.png", "start": 1589128, "end": 1589254}, {"filename": "/tulip4/sys/im/tiny_town/tile_0042.png", "start": 1589254, "end": 1589391}, {"filename": "/tulip4/sys/im/tiny_town/tile_0043.png", "start": 1589391, "end": 1589557}, {"filename": "/tulip4/sys/im/tiny_town/tile_0044.png", "start": 1589557, "end": 1589721}, {"filename": "/tulip4/sys/im/tiny_town/tile_0045.png", "start": 1589721, "end": 1589899}, {"filename": "/tulip4/sys/im/tiny_town/tile_0046.png", "start": 1589899, "end": 1590063}, {"filename": "/tulip4/sys/im/tiny_town/tile_0047.png", "start": 1590063, "end": 1590207}, {"filename": "/tulip4/sys/im/tiny_town/tile_0048.png", "start": 1590207, "end": 1590373}, {"filename": "/tulip4/sys/im/tiny_town/tile_0049.png", "start": 1590373, "end": 1590534}, {"filename": "/tulip4/sys/im/tiny_town/tile_0050.png", "start": 1590534, "end": 1590705}, {"filename": "/tulip4/sys/im/tiny_town/tile_0051.png", "start": 1590705, "end": 1590872}, {"filename": "/tulip4/sys/im/tiny_town/tile_0052.png", "start": 1590872, "end": 1591052}, {"filename": "/tulip4/sys/im/tiny_town/tile_0053.png", "start": 1591052, "end": 1591230}, {"filename": "/tulip4/sys/im/tiny_town/tile_0054.png", "start": 1591230, "end": 1591411}, {"filename": "/tulip4/sys/im/tiny_town/tile_0055.png", "start": 1591411, "end": 1591599}, {"filename": "/tulip4/sys/im/tiny_town/tile_0056.png", "start": 1591599, "end": 1591745}, {"filename": "/tulip4/sys/im/tiny_town/tile_0057.png", "start": 1591745, "end": 1591958}, {"filename": "/tulip4/sys/im/tiny_town/tile_0058.png", "start": 1591958, "end": 1592105}, {"filename": "/tulip4/sys/im/tiny_town/tile_0059.png", "start": 1592105, "end": 1592250}, {"filename": "/tulip4/sys/im/tiny_town/tile_0060.png", "start": 1592250, "end": 1592427}, {"filename": "/tulip4/sys/im/tiny_town/tile_0061.png", "start": 1592427, "end": 1592593}, {"filename": "/tulip4/sys/im/tiny_town/tile_0062.png", "start": 1592593, "end": 1592777}, {"filename": "/tulip4/sys/im/tiny_town/tile_0063.png", "start": 1592777, "end": 1592993}, {"filename": "/tulip4/sys/im/tiny_town/tile_0064.png", "start": 1592993, "end": 1593170}, {"filename": "/tulip4/sys/im/tiny_town/tile_0065.png", "start": 1593170, "end": 1593336}, {"filename": "/tulip4/sys/im/tiny_town/tile_0066.png", "start": 1593336, "end": 1593520}, {"filename": "/tulip4/sys/im/tiny_town/tile_0067.png", "start": 1593520, "end": 1593736}, {"filename": "/tulip4/sys/im/tiny_town/tile_0068.png", "start": 1593736, "end": 1593900}, {"filename": "/tulip4/sys/im/tiny_town/tile_0069.png", "start": 1593900, "end": 1594071}, {"filename": "/tulip4/sys/im/tiny_town/tile_0070.png", "start": 1594071, "end": 1594236}, {"filename": "/tulip4/sys/im/tiny_town/tile_0071.png", "start": 1594236, "end": 1594375}, {"filename": "/tulip4/sys/im/tiny_town/tile_0072.png", "start": 1594375, "end": 1594512}, {"filename": "/tulip4/sys/im/tiny_town/tile_0073.png", "start": 1594512, "end": 1594641}, {"filename": "/tulip4/sys/im/tiny_town/tile_0074.png", "start": 1594641, "end": 1594796}, {"filename": "/tulip4/sys/im/tiny_town/tile_0075.png", "start": 1594796, "end": 1594939}, {"filename": "/tulip4/sys/im/tiny_town/tile_0076.png", "start": 1594939, "end": 1595076}, {"filename": "/tulip4/sys/im/tiny_town/tile_0077.png", "start": 1595076, "end": 1595205}, {"filename": "/tulip4/sys/im/tiny_town/tile_0078.png", "start": 1595205, "end": 1595360}, {"filename": "/tulip4/sys/im/tiny_town/tile_0079.png", "start": 1595360, "end": 1595503}, {"filename": "/tulip4/sys/im/tiny_town/tile_0080.png", "start": 1595503, "end": 1595663}, {"filename": "/tulip4/sys/im/tiny_town/tile_0081.png", "start": 1595663, "end": 1595783}, {"filename": "/tulip4/sys/im/tiny_town/tile_0082.png", "start": 1595783, "end": 1595945}, {"filename": "/tulip4/sys/im/tiny_town/tile_0083.png", "start": 1595945, "end": 1596134}, {"filename": "/tulip4/sys/im/tiny_town/tile_0084.png", "start": 1596134, "end": 1596304}, {"filename": "/tulip4/sys/im/tiny_town/tile_0085.png", "start": 1596304, "end": 1596467}, {"filename": "/tulip4/sys/im/tiny_town/tile_0086.png", "start": 1596467, "end": 1596628}, {"filename": "/tulip4/sys/im/tiny_town/tile_0087.png", "start": 1596628, "end": 1596789}, {"filename": "/tulip4/sys/im/tiny_town/tile_0088.png", "start": 1596789, "end": 1596956}, {"filename": "/tulip4/sys/im/tiny_town/tile_0089.png", "start": 1596956, "end": 1597119}, {"filename": "/tulip4/sys/im/tiny_town/tile_0090.png", "start": 1597119, "end": 1597280}, {"filename": "/tulip4/sys/im/tiny_town/tile_0091.png", "start": 1597280, "end": 1597442}, {"filename": "/tulip4/sys/im/tiny_town/tile_0092.png", "start": 1597442, "end": 1597600}, {"filename": "/tulip4/sys/im/tiny_town/tile_0093.png", "start": 1597600, "end": 1597762}, {"filename": "/tulip4/sys/im/tiny_town/tile_0094.png", "start": 1597762, "end": 1597947}, {"filename": "/tulip4/sys/im/tiny_town/tile_0095.png", "start": 1597947, "end": 1598142}, {"filename": "/tulip4/sys/im/tiny_town/tile_0096.png", "start": 1598142, "end": 1598331}, {"filename": "/tulip4/sys/im/tiny_town/tile_0097.png", "start": 1598331, "end": 1598470}, {"filename": "/tulip4/sys/im/tiny_town/tile_0098.png", "start": 1598470, "end": 1598651}, {"filename": "/tulip4/sys/im/tiny_town/tile_0099.png", "start": 1598651, "end": 1598822}, {"filename": "/tulip4/sys/im/tiny_town/tile_0100.png", "start": 1598822, "end": 1598954}, {"filename": "/tulip4/sys/im/tiny_town/tile_0101.png", "start": 1598954, "end": 1599128}, {"filename": "/tulip4/sys/im/tiny_town/tile_0102.png", "start": 1599128, "end": 1599303}, {"filename": "/tulip4/sys/im/tiny_town/tile_0103.png", "start": 1599303, "end": 1599499}, {"filename": "/tulip4/sys/im/tiny_town/tile_0104.png", "start": 1599499, "end": 1599741}, {"filename": "/tulip4/sys/im/tiny_town/tile_0105.png", "start": 1599741, "end": 1599939}, {"filename": "/tulip4/sys/im/tiny_town/tile_0106.png", "start": 1599939, "end": 1600117}, {"filename": "/tulip4/sys/im/tiny_town/tile_0107.png", "start": 1600117, "end": 1600319}, {"filename": "/tulip4/sys/im/tiny_town/tile_0108.png", "start": 1600319, "end": 1600441}, {"filename": "/tulip4/sys/im/tiny_town/tile_0109.png", "start": 1600441, "end": 1600540}, {"filename": "/tulip4/sys/im/tiny_town/tile_0110.png", "start": 1600540, "end": 1600661}, {"filename": "/tulip4/sys/im/tiny_town/tile_0111.png", "start": 1600661, "end": 1600864}, {"filename": "/tulip4/sys/im/tiny_town/tile_0112.png", "start": 1600864, "end": 1601067}, {"filename": "/tulip4/sys/im/tiny_town/tile_0113.png", "start": 1601067, "end": 1601267}, {"filename": "/tulip4/sys/im/tiny_town/tile_0114.png", "start": 1601267, "end": 1601467}, {"filename": "/tulip4/sys/im/tiny_town/tile_0115.png", "start": 1601467, "end": 1601653}, {"filename": "/tulip4/sys/im/tiny_town/tile_0116.png", "start": 1601653, "end": 1601837}, {"filename": "/tulip4/sys/im/tiny_town/tile_0117.png", "start": 1601837, "end": 1602009}, {"filename": "/tulip4/sys/im/tiny_town/tile_0118.png", "start": 1602009, "end": 1602192}, {"filename": "/tulip4/sys/im/tiny_town/tile_0119.png", "start": 1602192, "end": 1602375}, {"filename": "/tulip4/sys/im/tiny_town/tile_0120.png", "start": 1602375, "end": 1602533}, {"filename": "/tulip4/sys/im/tiny_town/tile_0121.png", "start": 1602533, "end": 1602674}, {"filename": "/tulip4/sys/im/tiny_town/tile_0122.png", "start": 1602674, "end": 1602837}, {"filename": "/tulip4/sys/im/tiny_town/tile_0123.png", "start": 1602837, "end": 1602982}, {"filename": "/tulip4/sys/im/tiny_town/tile_0124.png", "start": 1602982, "end": 1603128}, {"filename": "/tulip4/sys/im/tiny_town/tile_0125.png", "start": 1603128, "end": 1603314}, {"filename": "/tulip4/sys/im/tiny_town/tile_0126.png", "start": 1603314, "end": 1603472}, {"filename": "/tulip4/sys/im/tiny_town/tile_0127.png", "start": 1603472, "end": 1603656}, {"filename": "/tulip4/sys/im/tiny_town/tile_0128.png", "start": 1603656, "end": 1603856}, {"filename": "/tulip4/sys/im/tiny_town/tile_0129.png", "start": 1603856, "end": 1604056}, {"filename": "/tulip4/sys/im/tiny_town/tile_0130.png", "start": 1604056, "end": 1604262}, {"filename": "/tulip4/sys/im/tiny_town/tile_0131.png", "start": 1604262, "end": 1604482}], "remote_package_size": 1604482}); })(); @@ -1221,24 +1221,24 @@ function dbg(text) { // === Body === var ASM_CONSTS = { - 67663616: () => { try { FS.mkdir('/tulip4/user'); } catch (err) { console.log('tulip4/user already exist'); } FS.mount(IDBFS, {autoPersist:true}, '/tulip4/user'); FS.syncfs(true, function (err) { }); }, - 67663798: ($0, $1) => { if(midiOutputDevice != null) { midiOutputDevice.send(HEAPU8.subarray($0, $0 + $1)); } }, - 67663884: ($0) => { var str = UTF8ToString($0) + '\n\n' + 'Abort/Retry/Ignore/AlwaysIgnore? [ariA] :'; var reply = window.prompt(str, "i"); if (reply === null) { reply = "i"; } return allocate(intArrayFromString(reply), 'i8', ALLOC_NORMAL); }, - 67664109: () => { if (typeof(AudioContext) !== 'undefined') { return true; } else if (typeof(webkitAudioContext) !== 'undefined') { return true; } return false; }, - 67664256: () => { if ((typeof(navigator.mediaDevices) !== 'undefined') && (typeof(navigator.mediaDevices.getUserMedia) !== 'undefined')) { return true; } else if (typeof(navigator.webkitGetUserMedia) !== 'undefined') { return true; } return false; }, - 67664490: ($0) => { if(typeof(Module['SDL2']) === 'undefined') { Module['SDL2'] = {}; } var SDL2 = Module['SDL2']; if (!$0) { SDL2.audio = {}; } else { SDL2.capture = {}; } if (!SDL2.audioContext) { if (typeof(AudioContext) !== 'undefined') { SDL2.audioContext = new AudioContext(); } else if (typeof(webkitAudioContext) !== 'undefined') { SDL2.audioContext = new webkitAudioContext(); } if (SDL2.audioContext) { autoResumeAudioContext(SDL2.audioContext); } } return SDL2.audioContext === undefined ? -1 : 0; }, - 67664983: () => { var SDL2 = Module['SDL2']; return SDL2.audioContext.sampleRate; }, - 67665051: ($0, $1, $2, $3) => { var SDL2 = Module['SDL2']; var have_microphone = function(stream) { if (SDL2.capture.silenceTimer !== undefined) { clearTimeout(SDL2.capture.silenceTimer); SDL2.capture.silenceTimer = undefined; } SDL2.capture.mediaStreamNode = SDL2.audioContext.createMediaStreamSource(stream); SDL2.capture.scriptProcessorNode = SDL2.audioContext.createScriptProcessor($1, $0, 1); SDL2.capture.scriptProcessorNode.onaudioprocess = function(audioProcessingEvent) { if ((SDL2 === undefined) || (SDL2.capture === undefined)) { return; } audioProcessingEvent.outputBuffer.getChannelData(0).fill(0.0); SDL2.capture.currentCaptureBuffer = audioProcessingEvent.inputBuffer; dynCall('vi', $2, [$3]); }; SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode); SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination); SDL2.capture.stream = stream; }; var no_microphone = function(error) { }; SDL2.capture.silenceBuffer = SDL2.audioContext.createBuffer($0, $1, SDL2.audioContext.sampleRate); SDL2.capture.silenceBuffer.getChannelData(0).fill(0.0); var silence_callback = function() { SDL2.capture.currentCaptureBuffer = SDL2.capture.silenceBuffer; dynCall('vi', $2, [$3]); }; SDL2.capture.silenceTimer = setTimeout(silence_callback, ($1 / SDL2.audioContext.sampleRate) * 1000); if ((navigator.mediaDevices !== undefined) && (navigator.mediaDevices.getUserMedia !== undefined)) { navigator.mediaDevices.getUserMedia({ audio: true, video: false }).then(have_microphone).catch(no_microphone); } else if (navigator.webkitGetUserMedia !== undefined) { navigator.webkitGetUserMedia({ audio: true, video: false }, have_microphone, no_microphone); } }, - 67666703: ($0, $1, $2, $3) => { var SDL2 = Module['SDL2']; SDL2.audio.scriptProcessorNode = SDL2.audioContext['createScriptProcessor']($1, 0, $0); SDL2.audio.scriptProcessorNode['onaudioprocess'] = function (e) { if ((SDL2 === undefined) || (SDL2.audio === undefined)) { return; } SDL2.audio.currentOutputBuffer = e['outputBuffer']; dynCall('vi', $2, [$3]); }; SDL2.audio.scriptProcessorNode['connect'](SDL2.audioContext['destination']); }, - 67667113: ($0, $1) => { var SDL2 = Module['SDL2']; var numChannels = SDL2.capture.currentCaptureBuffer.numberOfChannels; for (var c = 0; c < numChannels; ++c) { var channelData = SDL2.capture.currentCaptureBuffer.getChannelData(c); if (channelData.length != $1) { throw 'Web Audio capture buffer length mismatch! Destination size: ' + channelData.length + ' samples vs expected ' + $1 + ' samples!'; } if (numChannels == 1) { for (var j = 0; j < $1; ++j) { setValue($0 + (j * 4), channelData[j], 'float'); } } else { for (var j = 0; j < $1; ++j) { setValue($0 + (((j * numChannels) + c) * 4), channelData[j], 'float'); } } } }, - 67667718: ($0, $1) => { var SDL2 = Module['SDL2']; var numChannels = SDL2.audio.currentOutputBuffer['numberOfChannels']; for (var c = 0; c < numChannels; ++c) { var channelData = SDL2.audio.currentOutputBuffer['getChannelData'](c); if (channelData.length != $1) { throw 'Web Audio output buffer length mismatch! Destination size: ' + channelData.length + ' samples vs expected ' + $1 + ' samples!'; } for (var j = 0; j < $1; ++j) { channelData[j] = HEAPF32[$0 + ((j*numChannels + c) << 2) >> 2]; } } }, - 67668198: ($0) => { var SDL2 = Module['SDL2']; if ($0) { if (SDL2.capture.silenceTimer !== undefined) { clearTimeout(SDL2.capture.silenceTimer); } if (SDL2.capture.stream !== undefined) { var tracks = SDL2.capture.stream.getAudioTracks(); for (var i = 0; i < tracks.length; i++) { SDL2.capture.stream.removeTrack(tracks[i]); } SDL2.capture.stream = undefined; } if (SDL2.capture.scriptProcessorNode !== undefined) { SDL2.capture.scriptProcessorNode.onaudioprocess = function(audioProcessingEvent) {}; SDL2.capture.scriptProcessorNode.disconnect(); SDL2.capture.scriptProcessorNode = undefined; } if (SDL2.capture.mediaStreamNode !== undefined) { SDL2.capture.mediaStreamNode.disconnect(); SDL2.capture.mediaStreamNode = undefined; } if (SDL2.capture.silenceBuffer !== undefined) { SDL2.capture.silenceBuffer = undefined } SDL2.capture = undefined; } else { if (SDL2.audio.scriptProcessorNode != undefined) { SDL2.audio.scriptProcessorNode.disconnect(); SDL2.audio.scriptProcessorNode = undefined; } SDL2.audio = undefined; } if ((SDL2.audioContext !== undefined) && (SDL2.audio === undefined) && (SDL2.capture === undefined)) { SDL2.audioContext.close(); SDL2.audioContext = undefined; } }, - 67669370: ($0, $1, $2) => { var w = $0; var h = $1; var pixels = $2; if (!Module['SDL2']) Module['SDL2'] = {}; var SDL2 = Module['SDL2']; if (SDL2.ctxCanvas !== Module['canvas']) { SDL2.ctx = Module['createContext'](Module['canvas'], false, true); SDL2.ctxCanvas = Module['canvas']; } if (SDL2.w !== w || SDL2.h !== h || SDL2.imageCtx !== SDL2.ctx) { SDL2.image = SDL2.ctx.createImageData(w, h); SDL2.w = w; SDL2.h = h; SDL2.imageCtx = SDL2.ctx; } var data = SDL2.image.data; var src = pixels >> 2; var dst = 0; var num; if (typeof CanvasPixelArray !== 'undefined' && data instanceof CanvasPixelArray) { num = data.length; while (dst < num) { var val = HEAP32[src]; data[dst ] = val & 0xff; data[dst+1] = (val >> 8) & 0xff; data[dst+2] = (val >> 16) & 0xff; data[dst+3] = 0xff; src++; dst += 4; } } else { if (SDL2.data32Data !== data) { SDL2.data32 = new Int32Array(data.buffer); SDL2.data8 = new Uint8Array(data.buffer); SDL2.data32Data = data; } var data32 = SDL2.data32; num = data32.length; data32.set(HEAP32.subarray(src, src + num)); var data8 = SDL2.data8; var i = 3; var j = i + 4*num; if (num % 8 == 0) { while (i < j) { data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; } } else { while (i < j) { data8[i] = 0xff; i = i + 4 | 0; } } } SDL2.ctx.putImageData(SDL2.image, 0, 0); }, - 67670839: ($0, $1, $2, $3, $4) => { var w = $0; var h = $1; var hot_x = $2; var hot_y = $3; var pixels = $4; var canvas = document.createElement("canvas"); canvas.width = w; canvas.height = h; var ctx = canvas.getContext("2d"); var image = ctx.createImageData(w, h); var data = image.data; var src = pixels >> 2; var dst = 0; var num; if (typeof CanvasPixelArray !== 'undefined' && data instanceof CanvasPixelArray) { num = data.length; while (dst < num) { var val = HEAP32[src]; data[dst ] = val & 0xff; data[dst+1] = (val >> 8) & 0xff; data[dst+2] = (val >> 16) & 0xff; data[dst+3] = (val >> 24) & 0xff; src++; dst += 4; } } else { var data32 = new Int32Array(data.buffer); num = data32.length; data32.set(HEAP32.subarray(src, src + num)); } ctx.putImageData(image, 0, 0); var url = hot_x === 0 && hot_y === 0 ? "url(" + canvas.toDataURL() + "), auto" : "url(" + canvas.toDataURL() + ") " + hot_x + " " + hot_y + ", auto"; var urlBuf = _malloc(url.length + 1); stringToUTF8(url, urlBuf, url.length + 1); return urlBuf; }, - 67671828: ($0) => { if (Module['canvas']) { Module['canvas'].style['cursor'] = UTF8ToString($0); } }, - 67671911: () => { if (Module['canvas']) { Module['canvas'].style['cursor'] = 'none'; } }, - 67671980: () => { return window.innerWidth; }, - 67672010: () => { return window.innerHeight; } + 67663728: () => { try { FS.mkdir('/tulip4/user'); } catch (err) { console.log('tulip4/user already exist'); } FS.mount(IDBFS, {autoPersist:true}, '/tulip4/user'); FS.syncfs(true, function (err) { }); }, + 67663910: ($0, $1) => { if(midiOutputDevice != null) { midiOutputDevice.send(HEAPU8.subarray($0, $0 + $1)); } }, + 67663996: ($0) => { var str = UTF8ToString($0) + '\n\n' + 'Abort/Retry/Ignore/AlwaysIgnore? [ariA] :'; var reply = window.prompt(str, "i"); if (reply === null) { reply = "i"; } return allocate(intArrayFromString(reply), 'i8', ALLOC_NORMAL); }, + 67664221: () => { if (typeof(AudioContext) !== 'undefined') { return true; } else if (typeof(webkitAudioContext) !== 'undefined') { return true; } return false; }, + 67664368: () => { if ((typeof(navigator.mediaDevices) !== 'undefined') && (typeof(navigator.mediaDevices.getUserMedia) !== 'undefined')) { return true; } else if (typeof(navigator.webkitGetUserMedia) !== 'undefined') { return true; } return false; }, + 67664602: ($0) => { if(typeof(Module['SDL2']) === 'undefined') { Module['SDL2'] = {}; } var SDL2 = Module['SDL2']; if (!$0) { SDL2.audio = {}; } else { SDL2.capture = {}; } if (!SDL2.audioContext) { if (typeof(AudioContext) !== 'undefined') { SDL2.audioContext = new AudioContext(); } else if (typeof(webkitAudioContext) !== 'undefined') { SDL2.audioContext = new webkitAudioContext(); } if (SDL2.audioContext) { autoResumeAudioContext(SDL2.audioContext); } } return SDL2.audioContext === undefined ? -1 : 0; }, + 67665095: () => { var SDL2 = Module['SDL2']; return SDL2.audioContext.sampleRate; }, + 67665163: ($0, $1, $2, $3) => { var SDL2 = Module['SDL2']; var have_microphone = function(stream) { if (SDL2.capture.silenceTimer !== undefined) { clearTimeout(SDL2.capture.silenceTimer); SDL2.capture.silenceTimer = undefined; } SDL2.capture.mediaStreamNode = SDL2.audioContext.createMediaStreamSource(stream); SDL2.capture.scriptProcessorNode = SDL2.audioContext.createScriptProcessor($1, $0, 1); SDL2.capture.scriptProcessorNode.onaudioprocess = function(audioProcessingEvent) { if ((SDL2 === undefined) || (SDL2.capture === undefined)) { return; } audioProcessingEvent.outputBuffer.getChannelData(0).fill(0.0); SDL2.capture.currentCaptureBuffer = audioProcessingEvent.inputBuffer; dynCall('vi', $2, [$3]); }; SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode); SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination); SDL2.capture.stream = stream; }; var no_microphone = function(error) { }; SDL2.capture.silenceBuffer = SDL2.audioContext.createBuffer($0, $1, SDL2.audioContext.sampleRate); SDL2.capture.silenceBuffer.getChannelData(0).fill(0.0); var silence_callback = function() { SDL2.capture.currentCaptureBuffer = SDL2.capture.silenceBuffer; dynCall('vi', $2, [$3]); }; SDL2.capture.silenceTimer = setTimeout(silence_callback, ($1 / SDL2.audioContext.sampleRate) * 1000); if ((navigator.mediaDevices !== undefined) && (navigator.mediaDevices.getUserMedia !== undefined)) { navigator.mediaDevices.getUserMedia({ audio: true, video: false }).then(have_microphone).catch(no_microphone); } else if (navigator.webkitGetUserMedia !== undefined) { navigator.webkitGetUserMedia({ audio: true, video: false }, have_microphone, no_microphone); } }, + 67666815: ($0, $1, $2, $3) => { var SDL2 = Module['SDL2']; SDL2.audio.scriptProcessorNode = SDL2.audioContext['createScriptProcessor']($1, 0, $0); SDL2.audio.scriptProcessorNode['onaudioprocess'] = function (e) { if ((SDL2 === undefined) || (SDL2.audio === undefined)) { return; } SDL2.audio.currentOutputBuffer = e['outputBuffer']; dynCall('vi', $2, [$3]); }; SDL2.audio.scriptProcessorNode['connect'](SDL2.audioContext['destination']); }, + 67667225: ($0, $1) => { var SDL2 = Module['SDL2']; var numChannels = SDL2.capture.currentCaptureBuffer.numberOfChannels; for (var c = 0; c < numChannels; ++c) { var channelData = SDL2.capture.currentCaptureBuffer.getChannelData(c); if (channelData.length != $1) { throw 'Web Audio capture buffer length mismatch! Destination size: ' + channelData.length + ' samples vs expected ' + $1 + ' samples!'; } if (numChannels == 1) { for (var j = 0; j < $1; ++j) { setValue($0 + (j * 4), channelData[j], 'float'); } } else { for (var j = 0; j < $1; ++j) { setValue($0 + (((j * numChannels) + c) * 4), channelData[j], 'float'); } } } }, + 67667830: ($0, $1) => { var SDL2 = Module['SDL2']; var numChannels = SDL2.audio.currentOutputBuffer['numberOfChannels']; for (var c = 0; c < numChannels; ++c) { var channelData = SDL2.audio.currentOutputBuffer['getChannelData'](c); if (channelData.length != $1) { throw 'Web Audio output buffer length mismatch! Destination size: ' + channelData.length + ' samples vs expected ' + $1 + ' samples!'; } for (var j = 0; j < $1; ++j) { channelData[j] = HEAPF32[$0 + ((j*numChannels + c) << 2) >> 2]; } } }, + 67668310: ($0) => { var SDL2 = Module['SDL2']; if ($0) { if (SDL2.capture.silenceTimer !== undefined) { clearTimeout(SDL2.capture.silenceTimer); } if (SDL2.capture.stream !== undefined) { var tracks = SDL2.capture.stream.getAudioTracks(); for (var i = 0; i < tracks.length; i++) { SDL2.capture.stream.removeTrack(tracks[i]); } SDL2.capture.stream = undefined; } if (SDL2.capture.scriptProcessorNode !== undefined) { SDL2.capture.scriptProcessorNode.onaudioprocess = function(audioProcessingEvent) {}; SDL2.capture.scriptProcessorNode.disconnect(); SDL2.capture.scriptProcessorNode = undefined; } if (SDL2.capture.mediaStreamNode !== undefined) { SDL2.capture.mediaStreamNode.disconnect(); SDL2.capture.mediaStreamNode = undefined; } if (SDL2.capture.silenceBuffer !== undefined) { SDL2.capture.silenceBuffer = undefined } SDL2.capture = undefined; } else { if (SDL2.audio.scriptProcessorNode != undefined) { SDL2.audio.scriptProcessorNode.disconnect(); SDL2.audio.scriptProcessorNode = undefined; } SDL2.audio = undefined; } if ((SDL2.audioContext !== undefined) && (SDL2.audio === undefined) && (SDL2.capture === undefined)) { SDL2.audioContext.close(); SDL2.audioContext = undefined; } }, + 67669482: ($0, $1, $2) => { var w = $0; var h = $1; var pixels = $2; if (!Module['SDL2']) Module['SDL2'] = {}; var SDL2 = Module['SDL2']; if (SDL2.ctxCanvas !== Module['canvas']) { SDL2.ctx = Module['createContext'](Module['canvas'], false, true); SDL2.ctxCanvas = Module['canvas']; } if (SDL2.w !== w || SDL2.h !== h || SDL2.imageCtx !== SDL2.ctx) { SDL2.image = SDL2.ctx.createImageData(w, h); SDL2.w = w; SDL2.h = h; SDL2.imageCtx = SDL2.ctx; } var data = SDL2.image.data; var src = pixels >> 2; var dst = 0; var num; if (typeof CanvasPixelArray !== 'undefined' && data instanceof CanvasPixelArray) { num = data.length; while (dst < num) { var val = HEAP32[src]; data[dst ] = val & 0xff; data[dst+1] = (val >> 8) & 0xff; data[dst+2] = (val >> 16) & 0xff; data[dst+3] = 0xff; src++; dst += 4; } } else { if (SDL2.data32Data !== data) { SDL2.data32 = new Int32Array(data.buffer); SDL2.data8 = new Uint8Array(data.buffer); SDL2.data32Data = data; } var data32 = SDL2.data32; num = data32.length; data32.set(HEAP32.subarray(src, src + num)); var data8 = SDL2.data8; var i = 3; var j = i + 4*num; if (num % 8 == 0) { while (i < j) { data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; } } else { while (i < j) { data8[i] = 0xff; i = i + 4 | 0; } } } SDL2.ctx.putImageData(SDL2.image, 0, 0); }, + 67670951: ($0, $1, $2, $3, $4) => { var w = $0; var h = $1; var hot_x = $2; var hot_y = $3; var pixels = $4; var canvas = document.createElement("canvas"); canvas.width = w; canvas.height = h; var ctx = canvas.getContext("2d"); var image = ctx.createImageData(w, h); var data = image.data; var src = pixels >> 2; var dst = 0; var num; if (typeof CanvasPixelArray !== 'undefined' && data instanceof CanvasPixelArray) { num = data.length; while (dst < num) { var val = HEAP32[src]; data[dst ] = val & 0xff; data[dst+1] = (val >> 8) & 0xff; data[dst+2] = (val >> 16) & 0xff; data[dst+3] = (val >> 24) & 0xff; src++; dst += 4; } } else { var data32 = new Int32Array(data.buffer); num = data32.length; data32.set(HEAP32.subarray(src, src + num)); } ctx.putImageData(image, 0, 0); var url = hot_x === 0 && hot_y === 0 ? "url(" + canvas.toDataURL() + "), auto" : "url(" + canvas.toDataURL() + ") " + hot_x + " " + hot_y + ", auto"; var urlBuf = _malloc(url.length + 1); stringToUTF8(url, urlBuf, url.length + 1); return urlBuf; }, + 67671940: ($0) => { if (Module['canvas']) { Module['canvas'].style['cursor'] = UTF8ToString($0); } }, + 67672023: () => { if (Module['canvas']) { Module['canvas'].style['cursor'] = 'none'; } }, + 67672092: () => { return window.innerWidth; }, + 67672122: () => { return window.innerHeight; } }; function proxy_convert_mp_to_js_then_js_to_mp_obj_jsside(out) { const ret = proxy_convert_mp_to_js_obj_jsside(out); proxy_convert_js_to_mp_obj_jsside_force_double_proxy(ret, out); } function proxy_convert_mp_to_js_then_js_to_js_then_js_to_mp_obj_jsside(out) { const ret = proxy_convert_mp_to_js_obj_jsside(out); const js_obj = PyProxy.toJs(ret); proxy_convert_js_to_mp_obj_jsside(js_obj, out); } @@ -11035,8 +11035,8 @@ var _asyncify_start_unwind = createExportWrapper('asyncify_start_unwind'); var _asyncify_stop_unwind = createExportWrapper('asyncify_stop_unwind'); var _asyncify_start_rewind = createExportWrapper('asyncify_start_rewind'); var _asyncify_stop_rewind = createExportWrapper('asyncify_stop_rewind'); -var ___start_em_js = Module['___start_em_js'] = 67672041; -var ___stop_em_js = Module['___stop_em_js'] = 67677661; +var ___start_em_js = Module['___start_em_js'] = 67672153; +var ___stop_em_js = Module['___stop_em_js'] = 67677773; function invoke_ii(index,a1) { var sp = stackSave(); try { diff --git a/www/run/micropython.wasm b/www/run/micropython.wasm index e856ea81..1f7f4a2f 100755 Binary files a/www/run/micropython.wasm and b/www/run/micropython.wasm differ diff --git a/www/run/mini-coi.js b/www/run/mini-coi.js new file mode 100644 index 00000000..95d15960 --- /dev/null +++ b/www/run/mini-coi.js @@ -0,0 +1,28 @@ +/*! coi-serviceworker v0.1.7 - Guido Zuidhof and contributors, licensed under MIT */ +/*! mini-coi - Andrea Giammarchi and contributors, licensed under MIT */ +(({ document: d, navigator: { serviceWorker: s } }) => { + if (d) { + const { currentScript: c } = d; + s.register(c.src, { scope: c.getAttribute('scope') || '.' }).then(r => { + r.addEventListener('updatefound', () => location.reload()); + if (r.active && !s.controller) location.reload(); + }); + } + else { + addEventListener('install', () => skipWaiting()); + addEventListener('activate', e => e.waitUntil(clients.claim())); + addEventListener('fetch', e => { + const { request: r } = e; + if (r.cache === 'only-if-cached' && r.mode !== 'same-origin') return; + e.respondWith(fetch(r).then(r => { + const { body, status, statusText } = r; + if (!status || status > 399) return r; + const h = new Headers(r.headers); + h.set('Cross-Origin-Opener-Policy', 'same-origin'); + h.set('Cross-Origin-Embedder-Policy', 'require-corp'); + h.set('Cross-Origin-Resource-Policy', 'cross-origin'); + return new Response(body, { status, statusText, headers: h }); + })); + }); + } +})(self); \ No newline at end of file