0Uÿ¯_U//ÿU¯_ÿÿÿ 0ÿÿÿÿÿÿÿÿ2Tv˜ºÜþïÍ«‰gE#2Tv˜ºÜþ2Tv˜ºÜþ 1"13""33""33""33""33""33""33""33""33""33""33""33@AAAA1RBac""33RRcc""33RRcc""33RRcc""33RRcc""33RRcc""33@AAAA4RBac%%66RRcc%%66RRcc%%66RRcc%%66RRcc%%66RRcc%%66@DDDD4UEdf%%66UUff%%66UUff%%66UUff%%66UUff%%66UUff%%66@@DDDDDDEDDdUEdfUUffUUffUUffUUffUUffUUffUUffUUffUUffUUffUUffp@DDttttEDDd…u”–UUff……––UUff……––UUff……––UUff……––UUff……––UUffp@GGttttHGGg…u”–XXii……––XXii……––XXii……––XXii……––XXii……––XXiip@GGwwwwHGGgˆx—™XXiiˆˆ™™XXiiˆˆ™™XXiiˆˆ™™XXiiˆˆ™™XXiiˆˆ™™XXiippwwwwwwxww—ˆx—™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™!"13##""33##""33##""33##""33##""33##!!12##!!22##!!22##!!22##!!22##!!22##!!12""!!22""!!22""!!22""!!22""!!22""!!"""""""""""""""""""""""!"""""""""""!!!!!!!!!!!!!!!!!!!!!!!!îî~wî~wwîwww~ww~wwwwwwwwwwwwwww‡îîîwˆîîw‡èîw‡hîw‡˜îw‡˜æwˆ˜æwˆiãpwpwwwwwpwwp÷ÿwwwwwwwwwwww‡wˆw‡w‡hw‡˜w‡˜wˆ˜wˆ™îîŽxwîxwwŽwwŽ÷ÿwxwwxwwwˆwww˜îîîw™îîw—éîw‡ îw‡™îw‡™àwˆ™à‡˜ æîî~wî~wwîwww~ww~wwwwwwwwwwwwwww‡îîîwˆîîw‡èîw‡hîw‡˜îw‡˜æwˆ˜æwˆ™ãxwww‰xw‡žˆˆˆn™ˆˆîf™™î.ffîî."îîîi∘6áˆi&î™fîf#áî#îîîîîîîîîxwww‰xw‡�ˆˆˆ`™ˆˆf™™PffP%‡ˆiˆ˜9ˆ™&™if#S‰xw‡�ˆˆˆ™™™nîînffîîn6îîî 㘙0â™&î`"îf#âîS#îî"îîîîîîîxwww‰xw‡žˆˆˆn™ˆˆîf™™î^ffîî^%îîîi∘9ሙ&î™iîf#áîSîîîîîîîîî&! ""  """  ð/ðOðoð�ð ¯ð Ïð ïðþÐü°ú�øpöPô0òðð?ð_ððŸð ¿ð ßðÿàýÀû ù€÷`õ@ó ñð?ð_ððŸð ¿ð ßðÿðþÐü°ú�øpöPô0òÿÿÿÿÿÿÿÿÿ >À?!##""3!"!!3!"33##!33##22!!12!!22""!!33!!2233!!22!"#""!!"""#!"!!3##!33##"""!!2!!!!!12!12!!22!"3!!22""!!""!12####!12#""##!!""!!22!!22""!""22!!!1!"!!2####!!22!"""#1!!""!2!!22""""""!!!!13!!!#!!22""!!"1#!!!""""!!!!!131!12!!"2""!!!33"1311##!!!!!"""13!"33"13!2!12!!""!!"!!1"131!33""3312""!!"""1!"3!133!"33!#2!"!!!!!!!!!!!!"!!31!33!12!!1333##!""!!!!!!!!!!!"1133!33!!22!"!13"1313!123##!"!"!3!"33"13##!22""!!33""3322##"""!!1133""33!##!22""!!!!!!!qqq!1!13!3!"33!122!"#""!qqwwwwwwwwwq!!3!13!33##""""!!!!!!qwwwwwwwwwwwwwtwww!##33!!22""""!!qqwwwwwwwwwwwwwwwwwwDt!33!33##"""!!qwwwwwwwwwwwwwwwwwwww—DGGA13!#!123!!22!""!!!!qqwwwwwwxww—wwwwwwwwww—™tttt##"13""##!!AGwwwwxwww‡x—™xww—wwwww—™yDGGgDAA!3##2222""!!qqwwwwww‡xwww‡™y‡x—™xww——yGGGw”–DD111!33!""##qGGwwwwwwwww‡wwwwyww‡™™ˆx—™ywwwttiid13##!122!!22!!ADGGwwwwwwwwwwwxww—wwww™y‡ˆ™™wwwwGg––DDDD1!33""#qqqqAqDDwwwwwwwwwwxww—ˆx—™xww—yww‡™™xww—”vdi4!12#!!22!!!!GGwGDDADDDqADDDDGGwGGwwwwxww—ˆx—™ˆˆ™™ˆx—™wwww™™ˆx—™IDDDTEdf113"""wDGGwttttttDDDttttttDGGwxww—ˆx—™ˆˆ™y‡ˆ™y‡ˆ™™xww—™y„ˆ™™tttt$6613!#22!!!!!!wwwwwDGGGDtttttDDDGGGwwwwˆx—™ˆˆ™y‡ˆyww‡yww‡™y‡x—™IGG‡™™EDDdDDff11""GGGGgttttDGGGDGGwttttHGGgˆˆ™y‡ˆyww‡wwwwwwwwIGG‡™™tttt™™…u”–466!!"22!!!www—yDGGgttttttttHGGgˆx—y„ˆIGG‡wwwwxww—xww—wwww™™HGGg™™UUffdFaf1!!""GGgIGGw”vDGGgHGGg…u”vTXIGG‡wwwwxww—ˆx—™ˆx—™HGGg™y„u”–™I„…––!1313"""!!x—™ttttIDDt”v„u”vTXIDD„ttttHGGgˆx—™ˆˆ™™ˆˆ™™ˆx—™IGGWiiTffAAAA!33##""XiiHGGgttttIDDTIDD„ttttHGGgˆx—™ˆˆ™™ˆˆ™™ˆˆ™™XXiitttt––DDDD––43313!"!!ˆ™™…u”–EDDdttttttttEDDd…u”–XXiy„ˆ™y„ˆ™y„ˆ™™ˆˆ™™HGGgiI4ffRBac133!!TiiXXii…u”–EDDdEDDd…u”–XXiy„ˆIDD„IGG‡IDD„™™XXii…u”–Ddf––%%66113!!q'qqqt™I„…––UUff…u”–…u”–UUfF„…FDDTtttttttttttt™I„ˆ™™XXiiDDDD66fQRcc1!qqwwwwwwwwwwqdIDDTii……––UUffUUff……FDDTttttEDDdHGGgEDDdIDDTii……––4ff!66!13!rwwwwwwwwwwwwwwwwwww–DDDD–FTUfF„…–F„…–FTUDDDDEDDd…u”–…u”–…u”–DDDD™ITXiiUEdf6Fcc1#srwwwwwwwwwwww—wwwwwwwwqfEDDd„TT„EDDd…u”–UUffXXiiUUffEDDd„––%%66166"13swwwwwwwxww—wwww—™xww—wwwwwwwwqqAAAA–UEdfDDDDDDDDDDDDDDDDUEdfUUff……––……––……––UEdfDDDDiiUUffAAAA13cc""3s!wwwwwwww‡x—™wwww™™ˆx—™wwwwwwwwwwwGGwGtDDDDAfUUff4444UUff……––UUfFTXiITUfFTUff4––%%661336!"swwxwwwwwwww‡™ywww—™y‡ˆ™™wwwwwww—wwwwtwwGDDDDAFQUffUEdfUEdfUEdfUEdfUUffUUfF�…„„TffUEdfiQUffRBac33!wwww‡xwwwwwwwwywww—™yww‡™™xww—w——™wwwwwwwwttDDDDDDAATff%%66%%66%%66%%66UUfF�…TDDDDDDDDDDDDfF!%66!66""333xwwww‡xww—xww—wwww™™wwww™™ˆx—™—y—ywww—www—DGGGD4DAAAAfFQUffUUffUUffUUffUUQAAAA444QffffRRccqq‡xwwwwˆx—™ˆx—™xww—™ywww—™™ˆˆ™™ywwwww—™ww—™ttttDDdFDAAA4!6!%66%%66%%6QUAAAA4UEdfUEdfUEdfAAAA616!"33qwwww‡xww—ˆˆ™™ˆˆ™™ˆx—™ywww—™™y‡ˆ™™wwwwww™™wwwwDGGgDD4ABacAAAAQfQUfQUQ1RBac%%66%%66%%66113Qccwwwwww‡x—y‡ˆ™™ˆˆ™™ˆˆ™™wwww™™yww‡™™xww—w—™™wwwwGw”–DDDDDDaC%661!!RBac%%6FQUfFQUffUUffRBac333s'rwwxwwww‡yww‡™y‡ˆ™™ˆˆ™™xww—™™wwww™™ˆx—™—™™™xww—ttiiDDDDDRccRBac11""3QR!!6!%66""33131swwwww‡xwwwwwwwwyww‡™™ˆˆ™™ˆx—™™ywww—™™ˆˆ™™™y—y‡x—™Gw”FDDDdDA%66""33"1311"13RR!AAAAAAAAQfQRcc"1313wwwwwww‡xww—xww—wwww™™ˆˆ™™ˆˆ™™ywww—™™™ˆˆ™™ywwww‡™™DGGGDDdfDDDDRccRRcc""33"13"13""3!"11!33""33q7swwwwwwwwˆx—™ˆx—™xww—™y‡ˆ™™ˆˆ™™wwww™™™y‡ˆ™™wwwwww™™ttttDDff4a!66""33""33""33""3!"Q1RBacRBac1c!"33qwwwwwwwxww—ˆˆ™™ˆˆ™™ˆx—™yww‡™™ˆˆ™™xww—™™yww‡™™xww—w—™™HGGgDdfFQEdfcQRcc""33""33""!"13""3!"3!131!3s'wwwwwwwwˆx—™ˆˆ™™ˆˆ™™ˆˆ™™wwww™™ˆˆ™™ˆx—™™™wwww™™ˆx—™—™™y„u”–dF$66A1!3!"3!"3!"1""3QRQ!3!13swwwwwwwxww—ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™xww—™™ˆˆ™™ˆˆ™™™ywww—™™ˆˆ™™™yGDDTiiFDDDAAfF3!!!1"13""!!3q1wwwwwwwwˆx—™ˆˆ™™ˆˆ™y‡ˆ™™ˆˆ™™ˆx—™™y‡ˆ™™ˆˆ™™ywww—™™™ˆˆ™™IGGwtt––DDDD431"13""3!"1qqwwwwwwwwwwwˆˆ™™ˆˆ™y‡ˆyww‡™y‡ˆ™™ˆˆ™™yww‡™™ˆˆ™™wwww™™™y‡ˆ™™wwwwDdiiEDDdaCAAA3"13111""33""!!1sqDGGwwwwwwwwwxww—ˆˆ™y‡ˆyww‡wwwwyww‡™™ˆˆ™™wwww™™ˆˆ™™xww—™™IGG‡™™HGGg”––FTEdf3""33"13"13"13""3!"!qADGGwwwwwwwwwwwwwˆx—™ˆˆyww‡wwwwxww—wwww™™ˆˆ™™xww—™™ˆˆ™™ˆx—™™™wwww™™ˆx—™ffTffAAAAa!"33""33""33""33""!!qADGGwwwwwwGwwwwwwxww—ˆˆ™y‡ˆwwwwxww—ˆx—™xww—™y‡ˆ™™ˆx—™™™ˆˆ™™ˆˆ™™™™HGGg™™XXii–FDDDDff13!33""33""33""3!"!AADDDtwtDGGGwwwwwwwwwwˆx—™ˆˆyww‡xww—ˆx—™ˆˆ™™ˆx—™yww‡™™ˆˆ™™™y‡ˆ™™ˆˆ™™™y‡x—™™™ˆˆ™™4ffRBac3!"3!"3!"!!AttDGGGwwwwxwwwwwwwwwˆˆ™™ˆˆwwwwˆx—™ˆˆ™™ˆˆ™™ˆˆ™™wwww™™ˆˆ™™yww‡™™ˆˆ™™IGGWii™™XXiiDDDDdff!"33!!!!!ADDtDDwwwwHGGw‡xwwwwxww—ˆˆ™y‡ˆxww—ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™xww—™y‡ˆ™™wwww™™ˆˆ™™wwww™™™I„ˆ™™466Qcc12AADDDGGwHGGw‡xwww‡xww—ˆx—™ˆˆyww‡ˆx—™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆx—™yww‡™™xww—™™ˆˆ™™HGGgiiIDDTiiUEdffF3!##!!!DDDtttt„xGGGWwwwwˆx—™ˆˆ™y‡ˆwwwwˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™wwww™™ˆx—™™™ˆˆ™™ˆx—™™™DDDD™™%%661!22!12!12!DDDDDtDGGGGWwwwwxww—ˆˆ™y‡ˆyww‡xww—ˆˆ™™ˆˆ™y‡ˆ™™ˆˆ™™ˆˆ™™ˆˆ™™xww—™™ˆˆ™™™™ˆˆ™™XXiiiiEDDdiiUUffAAAA13##"""ADDDGGwttttHGGgˆx—™ˆˆIGG‡wwwwˆx—™ˆˆ™y‡ˆyww‡™y‡ˆ™™ˆˆ™™ˆˆ™™ˆx—™™™ˆˆ™™iy„ˆ™™ˆˆ™™™ITEdf™™%%66133!2!!2!!!AQEDDttttHGGgˆx—™ˆˆ™y„ˆwwwwxww—ˆˆ™y‡ˆyww‡wwwwyww‡™™ˆˆ™™ˆˆ™™ˆˆ™™™y„ˆ™™IDD„™™XXiiTffiQUffRBac3!1!AADDDDHGGg…u”–XXiy„ˆIGG‡HGGgˆx—™ˆˆyww‡wwwwxww—wwww™y‡ˆ™™ˆˆ™™ˆˆ™™IGG‡™™tttt™™ˆˆ™™DDDDff!66""33!3!!ADADDDD…u”–XXiy„ˆIGG‡ttttˆx—™ˆˆ™y‡ˆwwwwxww—ˆx—™xww—IGG‡™™ˆˆ™™ˆˆ™™tttt™™EDDd™™XXii4ffffRRcc3"!EDDdXXiI„…FDDTttttHGGgXXiiˆˆIGG‡xww—ˆx—™ˆˆ™™ˆx—™wwww™™ˆˆ™™ˆˆ™™HGGg™™…u”–™™ˆˆ™™UEdfff166""331"!"!"DDDDUEdF„…FDDTttttHGGg…u”–ˆˆ™y„ˆwwwwˆx—™ˆˆ™™ˆˆ™™ˆˆ™™HGGg™™ˆˆ™™ˆˆ™™…u”–™™UUffiiXXii%%66ff"13fQRcc"13"4UUTDDDDEDDd…u”–XXiiXXIDD„HGGgˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆx—™™y„ˆ™™ˆˆ™™XXii™™……––™I�ˆ™™UUfff!"33!33""33"UEdFQUDDDDEDDd…u”–XXii……–F„ˆttttˆx—™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™XXiiIDD„™™ˆˆ™™……––™IQUffQii%%66!33cc""33"%%T4UEdfUUff……–FTXIDDTEDDdXXiiˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™tttt™™ˆˆ™™XXii„––AAAA™™UUff3313!"33"UUAAAAUEdfUUfF„…–FTXIDD„DDDD…u”–ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™XXiiEDDd™™ˆˆ™™……––AAAAff1ii%%66133"13!33"1%%4%%6FQUT„DDDDEDDdUUffXXiiˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™…u”–iI�ˆ™™XXii4––RBac––UUff"133!"333!!"1QURBaCQUTDDDDDDDDEDDdUEdf……––ˆˆ™™ˆˆ™I„ˆ™I„ˆ™I„ˆ™™XXiiUUff„™™……––RBacff""33ii%%66""33!33!!""!%%!AAAA44UEdfUUffUUffXXiI„ˆ„IDD„IDD„™™ˆˆ™™……––AAAA™™XXii%%66––RRcc–QUff""3333"13""QRAAAA4UEdfUEdfUUffUUff……––ˆˆ„DDDDDDDDDDDD™IQXiiUUff4ii……––RRccff""33!66""33!33##""!1RBac%%66%%66UUffUUffUUfFQXDDDD4EDDdEDDd„™™……––RBac™™XXii%%66–QRccff""33"133!"33!1!!RBac%%66UUffUUffUUffUUfF�…„4UEdfUEdfUEdfAAAAiiUUff%%66ii……––RRcc!33166""33####""!1""33RRcc%%66%%66UUfQUQAAAAUEdf%%66UUffUUff4™�…––RRcc™QXii%%66cc"13cc""33""333!!2"""13RRcc%%66UUfQUfQUQAAAA4%%66UUffUUffUUffRBacQff%%66�––RRcc133""336!"33##!"""1""33""3QRc!%!Q1RBacUUff%%66UUffUUff%%66––RRccff%%66"13cc""33!33""33!122"!"13""3QR!Q1RBac%%66%%66UUffUUffUUffRRcc1ff%%661––RRcc""3333""3333##""!""33""!11"13""33RRccUUff%%66UUffUUff%%66"13–QRcc"13ff%%66""33c!"33!33""33!!22!"!""3!"11"13"13""33RRcc%%66%%66UUffUUffUUffRRcc""33!66""33––RRcc""33!33!"33##""!""!1"13"13""33""33""33""33RRcQUf!%6QUffUUff%%66""33cc""33ff%%66""3333""3!"33!!22""!!"13"""13""33""33""33""33""33RRc!%!QQfQUffRRcc""33166""33–QRcc""33!33""##""!#!"1""33""33""33""33""33""3!"QQff%%66""33"13cc""33!33""33!"33""3!!22!!""!"13""33""33""33""33""3!"Q111ffRRcc""33""3366""33cc""33""33""""""3!"3!"3!"3!"3!"!1"13"13"131f!%66""33""33c!"33!33""33""3""!!2!!!""!"!!!!!1"13""33""33""33"13Qcc""33""33!33!12cc""33""""!!!!"13""33""33""33""33""3366""33""3333""33""33""""!!!!!!!"13""33""33""33""33""33""33!cc""33""33!33!!22c!"33""""!!!12"13"13!12"13##""33""33""33""33""33""33"133!"33""33!1233""!33""!!"!12##########""33""33""33""33""33""33""33##!33""33""33!!2233""!##!!22""33""33!!22""33##""33""33""3!"3!"33""33""3333""33!!223""33""!!!"!!2#########""33""3!"3!"!!3!"33##!33""33""!22!!33"""!!3!"3!!22""33#!"!!!33""33!"33""33!!22""33""!##!"!!!3##""3!"33""22!!3""!!!!!!!"!12!!33""!33!!22!!""!!!"!"!"!"""""!"##""##""22!"""""!"!"!"""""""!!22""3""33!!22!!"!!""""!"!"""""""""""!"""!!##"""""""""""""""""!!22""""33!!22!!""""""""""""""""!!#""!!!!22""""""!!!!!!"""!!"""!!qq""""q'!qwwwwwwwq!!"!!""!qwwwwwwwwwwwwwwwq""!!!wwwwwwwwwww—wwwwwwwwwq!!!!""qqwwwwwwwwww—ywwwwwwwwwwwww""!qwwwwwwwwwwwwwywwww—wwwwwwwwwwq!""!qwwwwwwxww—xww—wwww—ywww—wwwww—wwwwqqwwwxww—ˆx—™ˆx—™xww—ywww—™wwww—ywwwwwwwwqqqqq!!qwwww‡x—y‡ˆ™™ˆˆ™™ˆx—™wwww™ywww—ywwwwwwwwwwwwwwwwwwwwwwwqqwwwwww‡yww‡™y‡ˆ™™ˆˆ™™xww—ywww—™wwwwwwwwwwwwwwwwwwwwwwwwwwwwqq!!!qwwwwwwwwwwwwyww‡™™ˆˆ™™ˆx—™wwww™ywww—wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwq!!qwwwwwxww—xww—wwww™y‡ˆ™™ˆˆ™™xww—ywww—™xww—wwwwwwwwwwwwwwwww—wwwwwwwwwww!qwwxww—ˆx—™ˆx—™xww—yww‡™™ˆˆ™™ˆx—™wwww™y‡x—™xww—wwwwwwwwwwww—ywww—wwwwwwwwq!!!qwwwˆx—™ˆˆ™™ˆˆ™™ˆx—™wwww™™ˆˆ™™ˆˆ™™xww—yww‡™™ˆx—™xww—xww—wwwwywww—™xww—wwwwwwwGqA1!wwwwˆˆ™™ˆˆ™™ˆˆ™™ˆˆ™™xww—™y‡ˆ™™ˆˆ™™ˆx—™wwww™y‡ˆ™y‡x—™ˆx—™xww—wwww™y‡x—™wwwwwwwwDDDD112!!qxww—ˆˆ™y‡ˆ™y‡ˆ™™ˆˆ™™ˆx—™yww‡™™ˆˆ™™ˆˆ™™xww—yww‡yww‡™y‡ˆ™™ˆx—™xww—yww‡™™wwwwwww—GwwtDAA131##!qwwˆx—y‡ˆyww‡yww‡™™ˆˆ™™ˆˆ™™wwww™y‡ˆ™™ˆˆ™™ˆx—™wwwwwwwwyww‡™y‡ˆ™™ˆx—™wwww™™xww—ww—™DGGgAA113!13!2!12!!qwwwˆˆyww‡wwwwwwww™y‡ˆ™™ˆˆ™™xww—yww‡™™ˆˆ™™ˆˆ™™xww—xww—wwwwyww‡™y‡ˆ™™xww—™y‡x—™wwwwwwww11!33!1""wwwwˆˆwwwwxww—xww—yww‡™™ˆˆ™™ˆx—™wwww™™ˆˆ™™ˆˆ™™ˆx—™ˆx—™xww—wwwwyww‡™y‡x—™yww‡™™wwwwwGGgDDDD1333"1322xwww‡ˆxww—ˆx—™ˆx—™wwww™y‡ˆ™™ˆˆ™™xww—™y‡ˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆx—™xww—wwwwyww‡™™wwww™™xww—ww—™DD4A1313##!"ˆxwww‡ˆx—™ˆˆ™™ˆˆ™™xww—yww‡™™ˆˆ™™ˆx—™yww‡™y‡ˆ™™ˆˆ™™ˆˆ™™ˆˆ™™ˆx—™xww—wwww™™xww—™™ˆx—™w—iiDDdf11!33!!"ç -- title:Abstract Block Waves (Demo) -- author:MypkaMax -- input:keyboard t=0 T=0 sin,cos,abs,rad=math.sin,math.cos,math.abs,math.rad min,max=math.min,math.max back,front=0,31 DT=0 xS=0 yS=0 xD=0 yD=0 noinput=-300 dbg=false anim=false fps60=true fade=32 x=math.random(0,255)y=math.random(0,255) ox=0 oy=0 h1=math.random(0,89)h2=math.random(0,89) function BOOT()memset(0x3fc0,0,48)end function TIC()FS=time() for i=0,7 do if btn(i)then noinput=-300 end end noinput=noinput+1 if noinput<0 then ox=x oy=y else h1=h1-.02 h2=h2+.003 x=ox+256*sin(noinput/1280)y=oy+256*sin(noinput/1024) end if btn(0)then y=y-1 elseif btn(1)then y=y+1 end if btn(2)then x=x-1 elseif btn(3)then x=x+1 end --x,y=cos(t/128)*256,sin(t/128)*128 if btn(4)then h1=h1-4 elseif btn(5)then h1=h1+4 end if btn(6)then h2=h2-4 elseif btn(7)then h2=h2+4 end if keyp(71)then anim=not anim end if keyp(69)then dbg=not dbg end if keyp(67)then fps60=not fps60 end if fade>0 then fade=fade-1 end vbank(0)memset(0x3fc0,0,48) if t==1 then waves() else if t%2==0 then T=t xS=x yS=y cls(1)end back,front=0+t%2*31,31+t%2*31 waves() end if t%2==1 then memcpy(32768,0,16320) end vbank(1)palette() xD,yD=xS//1-x//1,yS//1-y//1 memcpy(0,32768,16320) DT=time()-FS overlay() t=t+1 --Hue shift LUT (stored as map nibbles) --c010f00f10f20f30f40f50f60f70 --c010f80f90fa0fb0fc0fd0fe0ff0 --c010ef0df0cf0bf0af09f08f07f0 --c0106f05f04f03f02f01f00f00f1 --c0100f20f30f40f50f60f70f80f9 --c0100fa0fb0fc0fd0fe0ff0ef0df --c0100cf0bf0af09f08f07f06f05f --c01004f03f02f01f00f10f20f30f --c01040f50f60f70f80f90fa0fb0f --c010c0fd0fe0ff0ff0ef0df0cf0b --c010f0af09f08f07f06f05f04f03 --3010f02f01 end function waves() for j=back,front do for i=0,31 do local I,J=i+x//8,j+y//3 local osc=sin(T/32+(I/6+J/3.2))*5+cos(T/64+(I/6))*3+sin(T/256+(J/4+I/2.4))*2+cos(T/48+(J/5))*6+sin(T/48+(J/2))*2 if osc<5 then map(clmp(4-osc*2,0,19),132,1,3,(-4+i*8+(J%2)*4-x%8)//1,(-4+j*3+osc*3-y%3)//1,0,1)end end end end function overlay() XD,YD=xD//1,yD//1 if fps60 then poke(0x3ff9,XD) poke(0x3ffa,YD) for i=0,1 do rect(-4+i*244+XD,0,4,136,0) rect(0,-4+i*140+YD,240,4,0) rect(i*236+XD,0,4,136,0) rect(0,i*132+YD,240,4,0) end else memset(0x3ff9,0,2) xD,yD=0,0 end for b=-4,3 do XD,YD=xD//1+b%2*240,yD//1+b//2*136 if dbg then for i=0,3 do print(string.format("%.4f ms",DT),3-i%2+XD,3-i//2+YD,i//3*15) print("Press F1 to toggle 30/60 fps scroll\nAt 60 fps, the resolution is slightly lower",3-i%2+XD,123-i//2+YD,i//3*15) end end if anim then for i=0,31 do clip(96+XD,56+i+YD+sin(t/32)*12,64,1) spr(48,104+XD+sin(t/15+i)*4,56+YD+sin(t/32)*12,14,2,0,0,2,2) clip() end for i=0,18 do spr(48,112+XD+cos(i/3+t/24)*48,60+sin(i/3+t/24)*48+YD,14,1,0,0,2,2) end end end end function palette() --Hue shift, intermediate and shade for i=0,2 do local H1,H2=clmp(sin(rad(h1+i*120)),-.5,.5)*256+127,clmp(sin(rad(h2+i*120)),-.5,.5)*256+127 --local H1,H2=peek4(130336+h1%90//1*3+i)*17,peek4(130336+h2%90//1*3+i)*17 for j=0,2 do local S=j*80 poke(65303+j*3+i,clmp(H1-S,0,255)) poke(65312+j*3+i,clmp(.5*(H1+H2)-S,0,255)) poke(65321+j*3+i,clmp(H2-S,0,255)) end end memcpy(0x3fc3,65303,27) memset(16365,255,3) for i=0,47 do poke(0x3fc0+i,clmp(peek(0x3fc0+i)-fade*8,0,255)) end end function clmp(a,l,h) return min(max(a,l),h) end