CodeWalrus

Development => Calculators => Calc Projects, Programming & Tutorials => Topic started by: Dream of Omnimaga on February 02, 2016, 04:49:45 AM

Title: Improved Supersonic Ball HP PPL title animation (faster)
Post by: Dream of Omnimaga on February 02, 2016, 04:49:45 AM
(https://img.ourl.ca/ssbhpupdatedtitle.gif)

This is the source of the program so far (some code is not indented because it was written on-calc and some is from 2013 or so:

// Supersonic Ball HP
// For the HP Prime
// Remake of original TI-83 Plus game
// By DJ Omnimaga
// (c) 2013-16 DJ Omnimaga
// http://codewalr.us

initialize();
fadeIn();
fadeOut();
titleScreen();
forVar1, forVar2, forVar3, aniCounter, ballAniFrm;

EXPORT ssball()
BEGIN

initialize();
fadeOut();
titleScreen();


// SCROLLING DEMO;
FOR Z FROM 0 TO 320 DO
FOR Y FROM 0 TO 304 STEP 16 DO
BLIT_P(G3,Y,0,16+Y,240,"spriteData",0,Z,16,240+Z);
END;
BLIT_P(G3,128,128,144,144,"spriteData",0,464,16,480,RGB(128,0,128));
BLIT_P(G3,32,80,288,164,"titleLogo",0,0,64,14,RGB(128,0,128));
BLIT_P(G0,G3);
END;
END;


titleScreen()
BEGIN
LOCAL colHeight=0, heightChg=0, heightChgDir=.12, bgOffset=0;
LOCAL enterPressed=0;

// Generate title background;
FOR forVar2 FROM 0 TO 240 STEP 16 DO
FOR forVar1 FROM 0 TO 320 STEP 16 DO
BLIT_P(G5,forVar1,forVar2,forVar1+16,forVar2+16,"spriteData",0,160,16,176);
END;
END;
// Generate the spinning balls on title screen;
FOR forVar1 FROM 0 TO 14 DO
FOR forVar2 FROM 0 TO 1 DO
BLIT_P(G5,16*forVar2+336,16*forVar1,16*forVar2+352,16*forVar1+16,"spriteData",0,16*forVar2+448,16,16*forVar2+464);
END;
END;

// Main title loop;
WHILE enterPressed=0 DO
BLIT_P(G3,0,0,320,240,G5,bgOffset,bgOffset,320+bgOffset,240+bgOffset);
FOR forVar1 FROM 0 TO 62 STEP 1 DO
heightChg := heightChgDir*2+heightChg;
IF heightChg>1.1 OR heightChg<-1.11 THEN
heightChgDir := -heightChgDir;
END;
colHeight := colHeight+heightChg;
BLIT_P(G3,32+(forVar1*4),27-colHeight,36+(forVar1*4),115+colHeight,"titleLogo",forVar1,0,forVar1+1,15,RGB(128,0,128));
IF ISKEYDOWN(30) THEN
enterPressed := 1;
fadeOut();
END;
END;

bgOffset := bgOffset+1;
IF bgOffset=16 THEN
bgOffset := 0;
END;

//spinning balls on each side
FOR forVar2 FROM 0 TO 1 DO
BLIT_P(G3,304*forVar2,0,304*forVar2+16,240,G5,16*ballAniFrm+336,0,16*ballAniFrm+352,240,RGB(128,0,128));
END;

//text with black outline rendering
FOR forVar1 FROM 0 TO 3 DO
FOR forVar2 FROM 0 TO 3 DO
IF (forVar2=0 OR forVar2=2) AND forVar1<2 THEN
BLIT_P(G3,64*forVar2+32,110*forVar1+5,64*forVar2+158,110*forVar1+20,"titleLogo",RGB(128,0,128));
END;
TEXTOUT_P("©2013-20XX DJ Omnimaga - codewalr.us",G3,25+forVar2,215+forVar1,3,#000039);
IF ballAniFrm=1 THEN
TEXTOUT_P("Press Enter",G3,107+forVar2,151+forVar1,6,#000039);
END;
END;
END;
TEXTOUT_P("©2013-20XX DJ Omnimaga - codewalr.us",G3,26,216,3,#FFFFFF);
IF ballAniFrm=1 THEN
TEXTOUT_P("Press Enter",G3,108,152,6,#FFFFFF);
END;
IF aniCounter=0 THEN
aniCounter := 1;
fadeIn();
ELSE
BLIT_P(G0,G3);
WAIT(0.015);
aniCounter := aniCounter+1;
IF aniCounter=3 THEN
aniCounter := 1;
ballAniFrm := NOT(ballAniFrm);
END;
END;
END;
END;

fadeIn()
BEGIN
   BLIT_P(G4,G3);
   FOR forVar1 FROM 16 DOWNTO 1 DO
      BLIT_P(G3,0,0,320/forVar1,240/forVar1,G4,0,0,320,240);
      FILLPOLY_P(G3,{{0,0},{320,0},{320,240},{0,240}}, #000000, (16*forVar1)-16);
      BLIT_P(G0,0,0,320,240,G3,0,0,320/forVar1,240/forVar1);
      WAIT(0.015);
   END;
END;

fadeOut()
BEGIN
   BLIT_P(G4,G0);
   FOR forVar1 FROM 2 TO 16 DO
      BLIT_P(G3,0,0,320/forVar1,240/forVar1,G4,0,0,320,240);
      FILLPOLY_P(G3,{{0,0},{320,0},{320,240},{0,240}}, #000000, 16*forVar1);
      BLIT_P(G0,0,0,320,240,G3,0,0,320/forVar1,240/forVar1);
      WAIT(0.015);
   END;
END;

initialize()
BEGIN
   // Main vars
   aniCounter := 0;
   ballAniFrm := 0;
   // Temporary screen and background storages;
   DIMGROB_P(G3,320,240);
   DIMGROB_P(G4,320,240);
   DIMGROB_P(G5,368,256,#FF00FF);
   FOR A FROM 1 TO 239 STEP 2 DO
      LINE_P(G8,0,A,320,A,#000000);
   END;
END;


   // Sprite data;
   ICON spriteData 89504E470D0A1A0A0000000D49484452000000100000023008060000008FC0EB7E0000253A494441547801ED7509745CD599E6F796DAA55269DF65CBB22DDBB2E5DD38188C81103A812C409399106C87A43BA4B34E27274B4F264470CEE464380D93F474672124E9D81D20A4B1432010C2663B84C536962D8317645BC8ABD652A94AAABDEACDFFDF57AFAA5E2DB28D9CC6C9F1AF7355F7DD7BFFEFFEEB77A5CE9B3F05BBD582B75F7A0A9F3DF94964CB0F9A7E06A96D85989795B8E09F98C435972DC5A9C1119C1A1A81244950039341A8728938B4E5E613703B1D505515C96412780198515F8325F36663DBAE7DE8689B09459185A2A228D0348DCED224128B0B8070242A14F980C366156BEDADCD3876E28C583F33E245B9A714E38109A12C001C761BACAA220E476331B158EE2EC1E0E89858EBED3F85603802A7C34EFB71E14A79991BE1E828AC1615524D534BDAE7151FBC0D8D35957879EF012C983D03DB7FF5339C4D4C0053C9CC2B3E800ABA992D79F3C8DBC252DFBEED5057DCF831B85C0EEC7EE330562E6CC7B69C5B5D1D6B446C6634D661CC17C0F1D303882712287339E1A37D75F68C46F4BE7D128A2CE3ED530342A97CC93A44A25111699BC522D6F8C651DF3892F46BB75A11E72C91C84FFF7127DE3E3D888960088DB5D5E9603AED7648340F452288C7E348D0AD4E0A7882147918C0F29C194DA82C2B45A5A70C5E9F5F2C5A699315F9D74DA646E36472A95E2B56AA1106665016D553EAC269AAAA182D70A5B14C0483B0919993A190EE2FA5EEA97FFF41C1E0AA2E8A2AE7937D0B47637A6AA890E69265BC6EA382E2DB222DB7112857A8060FD5C9D3BFF8A10E304EB7AA14C0181509FB389A423E7E6648B8364EA56E04B192D2E8A32A1CA08A343224DBE98609AA34AEF168CA2F96A5F3DB304687DB9AEB514A565A282363FE00B99A489F997CF34F504394E3100170DAEAAA2A529D5782677FF913311FDA9DEFF7B05185D4A96AC77D400766A7DB57A446968A56A4A9E54F12C8AC5A194B1796A1FB8D713CB7E329B84AAAE1705589FD6B56CDC686F56BF1C413AFE2687F08EFBFB699F61D5871D96AFCBFEF3F8233C3511D60EFE13EDC71CB1294B9EDF8DECF5FC5EB7FFA39DE3AB00B9170185BB6BC4CE51B1180B77EA41DF50D7578E5E51EECDAAB77ABCCCAA7FB770A0BAAAACBF0C8839FC30BBFDF829ABA663CF0E0369C198A60D5D20A4AA9845FFFE630EC0E87507EEFDA06EA0F1B94E5ED013CFBBB87D1D951835DBBDFC664C087CB2E7F0FBEFE4FFF4E1107EEBFEFB3F8C23FFD0247F73F86552B9AF1F4D37BD0506BC7BA6B56E1F917DF8234BB5EC66DB72E4247E7127CF35B9BF1911BE660CB13BDF8F6FFBA19ED0BD760C1D29BD3313BB8772B3EB5F12BF8F08DF3A92E8031AF1F4A45A98491611FF6ED3D44BD10C7F2A58D387A6C04D1D02836FCC37DD8B9E327084D0EE3A7FFF28FD8F4EFFF89A1D118DE38308CD9B3DC58D0D10E95BB92A36948456505F540124DCDD578FCA1AFA3A4D4835FFEECA7D8F1EAA0B8958A16CB1695E337BF3B0AD090BEF5854EBCB8ED3035548C7A0068A8B1126D47416D80CFFCFD5ABCF6EA1BD8D9AD976ED7B76E41C7D26B293B13A8A96FA7168F41E61B7DFE38AEBCAC5ADCC0CA2C5CB13F7EF08F4299C158FAFB8E61C6EC2BB070F9AD181E780BAF6E7B08CA1D1F5F8BDFFFA107C74F05F1CD6F7C08FFFC6F8FE248CF56BC7D625258B4B8A30CA706F43AD8DB330039DA8D646C8432F728868786215DD96917B7FEE0075FC1D2D5FF5D54E192F6567C6AC372DC70CB9D906415AD73AFC6C33FF92CEEFBBF4FE3CBFFE36FF0E8AFB6614673196A6A3D905979F102375E78E609A1BC65D397C56DB7ACFF3A5ADAAE10CA5C99659E4AD4D7D8F0F0432FE2ED936154D794E92F547989840573CB5156E6128BF77EE7DF889912D0C207E8867254D5B6E364DF4E3CB4E9111CEC9D107B2C070E8F6211151F250554DF95686C6AC4F7BE7B370647F4203EF4EB376173B8758A0B8C616050A7BBBFFFC44AFCE8475F43F7A163F8E34B47740BB87016773661E7CE63181B8F636EAB93283C86796D2AF6EDFAADA0F72D8F77E3AE6FDE848D9F7F10D59442D562C7B5D75D01A5B69C9948C3197A13B8EB9C76090F3FFE148E1F7E160FFD6A371AEB2CD47DDD3875260439E943EBAC3AD4362E12157AB0673BA4B56BD7A2BDBD1D11A2711E41626497CB05A7D3498DF3345A5A5A5057570707756198DABBB4B454906C6D6D2DF1C41350ABAAAA70FCF87178BD5E62609B18E3E3E3C26C7ED2599981474646A0D29B1022AA67A0A1A1214C4C4C406E6A6A12077893999737D98AC9493D681E8F47ECC7E8B5E2F5D1D15104020144A37AB0A5C6C6C6F42BC366F20DC5C4422F1503991E96ABAFBE5A98525F5F4FF4B505F3E6CDC3BA75EBC46D567A9D1890DD6A6D6DC5FDF7DF2F62D0D6D6262EE542524F9D3A2590DF7AEB2D81C8CA6C3EFB5C5E5E2ECC65CBF89B2FEAE8E810A0EC0ABB2673B03868867074C523CA6F2301C94400EC2F2BB3F90D0D0DE2975F6B3E23190A86B00B7C1B9B57535303BFDF2F6EE2EFC1C14101C8D961B1DBED9056AE5C89E6E66671805D615446E7F43DF6D863A8AEAEC6FCF9F3451CD82256660B3866BCAF7216586160600025F4A4B17F7CCBC99327C59CD3CC7132D2CA009C72AE1B9ECB9C670E082F720DB0125B63A4965D64AB588C14F3057CA9A883EC1814CA339BCE31307CE64B4C75B07EFD7AA13877EE5CDC7BEFBD22CF1C69EE05CE1003B2A9ECF3238F3C028ED992254B44D532B8CABEB1F9070F1EC4D8D818162C58206EE1FE6045369F2F603759F822A394795D361AC4480DDFC4E8BCC6B7732CF8128E8B01C08A7C3B5F24AD5EBD5A14526565257A7B7B4D796677F8B66CE194F3057C86132075A14B6CFC2B1EC7F9C8E7F1613D88D9CA25B7F78BDFF22A0B3DF51694B9EDE87BA01D81FD994C1113601227840E83286F40EF83E8F5BD44EB4A5AB9827E4B6DD444BBCA111E7065DDAD89114710BBF096CECAAAEC81635727CAA4F2B4726595155A4C816291CC794709ECA8860BCD7A51F13F77B215EE500BC23BE62039562A94599C762BA551CEF35F07A9C90088920C39218F96C3F7CC2C044E3A504196D814AA01AB346530D5EC8FC48403D15332FA1E5650553380C80891AC5D9E124071A21E0E1A6990908A44584164D089528F82B097FA232823EC57F2944318C80760890789A1A30A952950D31146349644685C12EBB90045EDF39DA09BA3D4FBD593987FC749B8670760AB88E49D9BD2C14838097B5504AEC6205A3F761CD6461F9492D0B903C4A21A228928BCC331943685E0B9FE18929563D01C41330097671C13790051722118D65FA0517AF6E5F200EC6B7BE1771C875FEECB00706D87319C07928869902C09A1EC1D8961842C19D7C6105AD98338BDD402801B42229C08BCA2BE4D00090DFE6024AD3C36A2D39DF59939E257E84EB79DE5F3D22A20693E208E111D6634094BE9A241B47EFA30C6FD61930B13FF31C3CC07AC6C4305ACF09049D63480B32188E62B0250ED49E2449D09C2C12426EA87A11CADC44E1CD62DE09B5538459B660B7301734265750634394AAFD7AE5A48B24D6442C480CDCE5516D1262E604E60618E60AE60CE60EE600E396B10990B9813981B9823982B9833983B4C412C26CC0561E2044D751247D41157941267D8F2B350483CCD31B240467CD885634F97C37FC48188D756388DB9C21D58313F445C10C5D09B76780F3AC8124BC18BF262C03DCFBDCF1CC05CC09CC0DC306521A5D346BD6E6DF453EF9F220E88438AAB8213A6923400F778B2D2473DDF4FBD9F240E20A6262E604E382B00F7B6E688A06EED20F57C84DA577F58980B98137285DBDEE85C01C015155DD94BBD6E853C9CF1D765510527E42A337770FB330DC8465B1A3D3E96EA7DE600E602E604334030ADFC17C007858403CE313B273EC8154E75A4D48BC8DA83693E104F9B0B4D42B9504B1B221E946AAA93EB8E4376C660ED1C47B4C7A3BB7036B3B9BCB942B9C8B84E38D506BDA9670B123716F706973757E86856534D9C0D805B9ABB72FE1D03A237B8BCB9420D39610030FB2A8A243890694C30919D7F65D1D2910197682CEE0D2E6F51A1EE48C605A66EB7D32608943990698C9988C984F92016B58AAEE4C6E2DEE0F2D62BF4B40EC0BCAF5813827DE93D86933890698C9988C9A4381FA400B8F60D611FFBBB55C1814C63C598C85489464A0458AF9DD8B7511068210E2C086080F0A311DE3183A8DB9DC7BED992CD07A212B9A2F8B98A6C6B8375BC165AD039A532F3410883D4D292990F249FCDF4681406B868F9407CC89EF4A3594CC218C22415B1890F58A2D7F742F556112F38A96CA7CA3D57A02662B10B6FE95928B9BD1F0E9782AAB90924465C50122AB468B1A78C981B1632DD8918023A009343799505D5333494CE0A2131AA5B9108A9454154A2A110067480DA6B82A8A2FAAF2090E6761965B343089D71201156100F16EFF83440DB07C342D9E8F5FA3609D50B22880C3AC9150561BF521440C097B9ED70A9368486F5760E06A97DA99D5B56446177C8A85E3859B09DBDFB5369EC7BA07D0A42098B679EA92D922214C99210AF56FF174A7580C0FEDA822632A5854349A2B421381B830853DB3B4A41BC18250EE10E2ED563E0A051B068C8F7D0B884D15E2BA4AA006CEEB850F6A6DE4FFFAB670160E12CC4830ABC47AC98B4F910D6424299DB9FBB580090F7A2BA8ABD4A5C0F090219EFB321E21A872F38A957AF011015E5CC0096A2205C999CD2D1BE04029ED3486C9DA51795E86952E31E3758A698305730673077B05C103E901A1B1B316FDE3CB85C2EBC1349177A4B4B8B00999898402814423C1ECF3B2CCB3254955E284982DFEF17E7D200168B4500ECDEBD1B2B56AC280AB067CF1EAC5EBD5A7C9B00344DC3F6EDDB71E8D021F1BD68D1A23C80BD7BF7A6F75B5B5BCD2E30C095575E29E60B162C10E8BC96CE0099DDDEDE2EE6CB962DC3F0F0702E800EB274E952EAC62092C9A409C010B68CF77808B7325BE6C385940BAD4D9BD62F248094FA2FA583962DFC9DBB6602E03D91E7EE3DA2267858ADD6F430BEF7EFDF2F8A49511473161445C58E1D3BD2795EB6741985D51CB4EEEEEEF4FEDCB9ED66009BCD866BAEB946CCD7AE5D9B4E53B6187572D555572110983003C4E309EA83492C5EBC045EAF57D48539B51C036021D5C1D8D818B172D20CB067CFEEF3CE00F78E68E7E908118A3950F539869C598129F72FAA4A7C67A29EAFCFB9FBEFBE0BD38FC1F9FA7CA90EFE2AEB40BAF517BFCF5BBCF997FBE0FFCED74C6BEEFF792FB67C7CF145E8C2BB0FA072C0CE550A9D957EBC5BFB0B8FC1F483C81556480A5562418042E5592C33974AB9B048BFB9ED75244A65443CAA58B0F9E2B0FB92A6433105085A80784D10725558AC2547EC50879C5059D93FD306DF4C8BD8F0BC1D03DE8E98402C09C049BF4152981CE319E0A2634E1A2ADFCCCA434BF40D3A46562408206AB2C2005113FAB735A9AFA9E7E32F2B58520086A8ECB3309B6E365CE0B57315957D8D9F88420EE8D025A3712443498CB8F503CE883E58A28E28E22E1D5C9D54610D597517D8671E22E2B432EA96304C83A5DA4F7C4183415879B22AA407118E0C8021412B9D2D91D05F2D91053A40D096DAF417261ED5088EB89D32C937B372C8AE038CA4DC704434B8C96CBED970210D70AEC226F3C8B3C010BE897D66B347526B55F45D9D8A415117B2010C5F0D0556AE3C57806C10F639378DDC13D154FB4D5989D94A86180D35A9B78CDE0B6C016FE49667AE6477A323D58D71EA466EAE73CE4254D690202059D1BF93F49BA43575EFF013E78A019CCC5F7AF729ED12C025804B00170840C5E57FE92E5C02B8047009E00201A8DA15DA5FB80B97002E015C02B8400097E4925C924B628834ABD6CC291B06EF327D6FAABDA7A0E227D72FC3CF36EFC9076059DEE911BFAFF7F80A2A67EFCBB98BFCBB78F1ACA24AB9FB72EE22A3B269D987A6DA57CA4B2434D4DA31383886F7BF6F01BA7BCEA4904362FDCC6078CA7D95D10D5F172FCE986CAC9D6D5F094F46D207F916BED1F8E679F677A17D530A0ADD7AB67D3977D398739E0B29E7EECBC5F2BC6FDF311493ECFDBF823A908D88E6469DBFF996A9F63B9EFD2264FE57287086CF67DB1731305A383BCF7C7BFC9F6F44B17D035892E5469C4D648B8AA4CB09F8FCF97BE9490B01398A205CBD06F2CD1FA0902B795B8A24B921D75503F777419ADB0C6DFBEEBC43522C0EF4F6411B0F1406D05415928BBEBA8F42EB3B91778815B5C04441E32475F1B548EE3F84772A0A86A3988EC8D3D29E0A406EAC13E93BAB0B1CC442CA58FFB7488E5981A1FEF307E0884BE37E4887F6414B26A70438A74A14565DF51EF19BDCFE8ABEE0A04EB43440E5224A0E0CE72B2C5B84E49EFD9985B619C0C46466FF8B9F02E6CEA2344EE697A7FCBD6F000FFE0BA49EDDD00EE931D0BADF80F6E65B19D3092C49455738CC07E9602F35CE89B1A22E25F71D3062D080E908D58186F319724D79CEDA34451201D2DE1992244999204A024A17C633BEB3E7D9FB7F1E0B8ADD5668CFB8F3CF13834216148B815A68B1104831C9B3A090AF85F62E580CA62D264ED48AFC66977DAEADE7668356FCF4B9592065942F40FF5D6C223CFBF18F7FFC8E94EFBCF3CE4C25D29C80F45F4372BFB3C5B8F3C25A50ECD6626B7F1E0B726F2C1697FF9A184C158F0B66C1B4E59CBA91094B9B0E1FA4F9AFC06929D702A9C06FA133178F4858F80E35CB68CC341E16DF3B0440D6CB8489F3502EC94CE5E9C6E012C025800B029029E592E900CC988E058BA7E7C25F011FA8D9EB4DE760C9498FF95BCD3D305542FA0BACA9850ECE2CB0B6AF08A85AECB63959F367A7B06ACA52FE188DDEB3C4644A807B707629EAC2B3E7A05C1460DF392A1704E83F0FE53C80DC22393F80BF5C3E387DFA34EAEBEB31303020466D6D2D24494ACF8DBD3367CE0805FEE5EFBABA3AB1A7AC5BB70E6EB73B7DA0B7B717DDDDDDD0344D00B13CF9E493E23B100808C51B6EB841CCF97269D7AE5D4281D158F877F9F2E5D8B3678F38C072E38D37E2F5D75F17202B56AC489BCF6B122F1A1F850EE4AE31288F86860631A453A74E8949B1032C6C25AFF1D9C6C646B1C6730656AEBCF24AE1CFEEDDBBF1C20B2F88390F5632E270E8D02101F6918F7C44EC95949488B988C1ABAFBE2A02C80756AD5A955634E67C13076EF5EAD585D3C88719A4D881D75E7B0D975D7699003A79F2A47081AD4ACF8F1F3F8EE6E6E6A2079A9A9AC49C078B31E7751E0ADF5C5656963E70E0C0016191216CE1A38F3E2AE6E3E3E302F4D65B6F15F313274E407AE9A59784025BC1C2A8975F7E395E79E5157180E5A31FFD285E7EF96501B666CD9A3438AFA5EBA0D881DC350635DC6E696981D4DFDF2F26C50EB0B095BCC6C358E339032B5C0C7EBF5F1CFADDEF7E277CE3C1DF461DF4F4F408C58F7FFCE3628F7B87E72206DBB76F17133EC04565281A73B690E372D5555715AF0306297660C78E1D58BB76AD0032DC65ABD2F3F9AD9F85CF3F88B2D21A54945763CC37222C30E6D97B2CB5D5D5D4B15554BD23181C1E8672D5EA4FC01F984C1F98D93C039D0BE7434B4A4824B91064BC77DDD56C2C4AA907864747F1F2CE1761B395A2AEA6064A95E7325CBE6A65D103D55535F8C38B4F8AEFC9601047FA7AC44563BE21B126D557DE221666B7768A5FE340B1B5F2B27A54565463D43B8CB1F1339016CCFABC98143BC032A77531EA6BAB291B3554F243A98AADC1EBDD07A15CBBE693B05A4AB170DE22ACA1BE70D85CE48A0BCB972E4434A22249B198DDDA4A011BC5B63F3D2BCE06436131AFF010015F7DD9FFA6C85662606804878F768BDB64594ECF1BEA6A84F2A1237B0AA6598984CBE1B07B84028BD73788D1B181F49CF758995D9BD93C575864B795A4E74A4BC3753879FAADA2074ED05E85A781ACD4597BEEAC59C4568BA125A003BCFF9A3BE1F34D163D9048CAF8DB0F5F4FC525A3CC5D8AD35440CF6E7B8A2E294373133D2C5565EFC1F5D75D5EF44003F1E1AF1F7F14768B87087512077A77898B46BC67C45ABA0E16CC59A93352EA40B1B5724F23EAAB1B30307206DEB193903A667F494C8A1D6059386F151A1B6AD1D6568FA347F5DAE0F94B2FED85F2C1EB3E07BBB50C4B3B97E1FAF7AE83D35E4A1C5982B5572C4324A4209690B060DE5C7A0306F0E433BFA53AF160726252CCABAB8880AFBFE2FF1051D6132B9F41CFC19DE23699DE5463CE71387D6610FBDE7CB5701D0427CBE07294A3E7C06B626168E41406691873270593F72ACA9BA8B0E689EEB4D9DDE9B9B47EBD6642DCB46983E97B033699F73764ED6FDCA8036CDE9C59D334C94C59305FA049A9FDF5EB05808C69CAB40154E1E2A6A94CCE55D12EAC05EF3E809AE7618ECF52CE8226FDF5C720C74514DBA742C6C60B66C1FA298F4CBDAB6E3CEB1D539F90B42DE61BB66E35F7FFD64D5B4DDF9BB6667D2FDE980A624F86107A369B01366FEA310318673BF58BDFFD3A90D66B5BB0193D450F6877779915527CB0BE93C2BBF8627061FA9578D3869BD0B6F9A6F4C2B7BBCCFD7F77570E47A6F7F56E78F75DF8F3D741AEA4EB824B79F10588418A0F3ACF5DA3D3DCBDC4078BCFEFCAC5EE9C18AC37E779539EC606F3D7A6CC898D06C0E60C1D209F53CD852569A966C20522D50B00B06983FE20A68694325ACA333EDB2529159BE72F0A17A629796FA3969BB6BCC44A17990B173E06D2D42E8B721192AAE50BC507EB8B9F583FF502F1C1C6A9AFD838F582A46D31236EBDC97CFCA6ADE6EF0D598CC16FA31EC49E0C21F4E402E4F0EDE614C0FA140B5E0475C03E6D3631E1DDA6035DF8B6E95BEB4AEDB30FEEC517810BD38FC14D376D40DB4D99347EDB1C020EC245EEC2B401246DFD16AACF4CBD4A5DE6BC777DDB4C085D77A79EB64EBD172E1023199D619E0AE9CCE9FFDC7D55D891251B5BCD075A73FADF6D3ECE69EE425543A9F82DAB2A4169B973CAC167B275440C22A1047E7EF57D48269202B4E16A1B6ADE6381AD424E7FF360E1337C96755864E380776F226DD5487714636F26E06A91D2DF3C0CE1B306A000A8ACB565D228CB88F9251A49F80F6B59DF92981B62E848EC179BCAB7B142324EA8941BFE35444EBD1EC69EBB5DC2E4710D116F52B7A0AC5D41E098867828695292F39E1D88337C9675D22EA87699CCD3CD2DA434950817B2FD9794FC4353B95034068642AE68942C2D99E56AB118E4C6223B26568F644EE3B90A5BC4B76B4909F1B07E99627358100F02253329D7E3126D722C52E6263383D7F857B14970CF91C8E22412210DF257C6BE86B9EF2B11D5C52EB08F89883E782E6A22964C7FF3193ECB3AAC2BEE1A1D8C648244265ADC9A183CE7885BDC72FADB104347009C7E31828A2599FC552DB58AC1C2E92AEF50D2DF2C7C9675D2003687823B5EFC0A6445779E378D039CEBA1576219053AC3675947D44E5711E2EFFA9179BDEB3385CFE501B022F51D640A7B52D37DE67942D3DB3D17485987752665A7EAC48C9219682B6BC36CF76C58148B008C501A288CD876E336AC7B725D3E8030F933C08AAB5760EECCB902A4D1D508B7C50D9572E9B17A103A1A42E4AB116CFB5106443694ABEDD55875FF2A8C3E318AFA53F5E8ACE8449BBB0D6BEAD66075CD6AC84764449E8EC07D97DB14A374297B6C1ECC5C381397FFB7CBF1C4BD4FC0D9EFC4EADAD598E59E05EF012FFA7EDA87EAF757436D35F7BB841FE993ABEAAFC2A28A45585CB918D25109BFB8F717B8E79E7BF086F70D7CEF3BDFC3824F2CC060E3208E8C1FC178743C1D54015761AB40281142381146281EC2F215CB85F25D77DD8589D8046EFEE2CD08CD0AC1EFF50BA5326B19BC116F068011BD612F7C511F86C24362F3F4C469F4BCD18378228E25B125980C4DE274F0B4503294D3006C4E201610B74DC626F1FC8EE7B1FDA1EDF8E4F73F29F69ED9FC0C2CD75AE0ABF7E51592D2F56497C8AD4DB1897C1FDD7714CFDDFD1C56DDB90AF26C19C3CE614C382670F0BE83905A89CA4A27D305C645950E299B153F1C47F8A9306A3F578B91C6119CF09E10AE05EA0370DCE940E8891062EF8D0173732A918B62DB8A6D88FC2735CCDF506EE7C8180AE9B1E0E0F28D7C73CC4DCA4F915609DD7E5797B912D76D2390CF6F83364343341915D9E0AC187391B6CA94F2BF66FAC1C4895D5DFA061FD6527FC63C7DE65FCDCD34753B73AD2853B7F3D4ACCC75737ACA1353F0819FF8E00122D9231A947B14246A0AF3819CABCC7CC05DB86CE632D4CFA947C98A1254D4554049BD79B94C25672B730BAFAD5F8B25554BD059D58932B90C255A09DA2ADAD051DE217A2617C4C407358E1A71704DED1AB4296D70D29F32A1A043EA40B9AD1C16D9920762E203DE74A92EB494B46065F54A54582BE076B9E1501CA87654A3D4529A1744D540AAB7D4A342AA407349339A1C4D9857350F0DEE06383A1C68AC6C14DD5861AF8037E88512A7A0AA8954C0FF915EDB57ACB07AAD22804A4C41796939EACBEB71E4C811F4F7F763FE7BE6C3EBF322180B22940C890BE3017A693F48162851425B98803D62477D69BDB8B5CDD386843F8121DF10EC237654B457C0EEB4E374EC349211EA8BC824E022944E02482CD2F3ABD04B535F558F799E7998593A13B1680C074F1C84B5CE8A651B9761B76F3792E349D8349B0E90923C3EE02E1C8F8C2326C5D0F35C0F868787915895803FEA17CC1588078AF38140A48219898CA0EA4C15068707113816103C91AC212509882563F98564942783F0180D8FE2D0E421042D4148B51212369DF2D25C3890D1C954E26732ADCCA6FAE82F9A8822AEC5E1537C999B07326D9FDF0B59205A9058C043C341633C8B0FBACE950F7E48EB7D34A9A361A7EFCF1679DEABB014D311D34357727BBFF82DAFB2A0AADA8232B71D7D0FB423B0BF367D268C214CE20433863906D1EB7B4DCA15F4EB76DAA02852CE8D4ED850412C99CC00A8B2078E5DD4FF52795AB9B2CA0A8DFA42B1E402945048AAA9929B3300EE642BDCA1168477CC4172AC5428B338EDD464D67CDAD4416ACC2E482127E4D172F89E9985C049072AC8129B6285C52A9D7B1013130E444FC9E87B584155CD00222336D8EC5313B7E2443D1C34D220211589B082C8A013A51E0561AF05B1A08CB05FC9530E5159E601B0C4832A34E20999ECABE9A0E72D9644685C12EBB90045EDF39DA09BA349A8D593987FC749B8670760AB88E49D9BD2C14838097B5504AEC6205A3F761CD6461F9492D0B903C4A21A22D491DEE1184A9B42F05C7F0CC9CA316AB0A01980CB338E893C8028B9100C47C57C74240AB93C00FBDA5EF81DC7E197FB32005CDB610CE78124621A244B42287B476218214BC6B5318456F6209EF46500B83122F01240D00C90D0E00F46D2CA63233AA9589F99933E33ED7696A7A58DAC52E6F6E40E339A84A574D1205A3F7D18E3FEB0C98589FF9861B68095B9C7B9D7B385B9803981DB9BDB9CB9426427C51D690BF86656E63635011017302754565BD36BC9D1128476D542926D2213C202363B5759449BB8803981853982B9823983B98339E4AC41642E604E606E608E60AE60CE60EEC80B6221612E08132768F4ECF73D5C475C514A9C612B9C855CF134C7C80219F161178E3D5D0EFF1107225E5BF134660B7760C5FC10714114436FDAE13DE8204B2C052FCA8B01F73CF73E7300730173027343313159C0BD6E6DF453EF9F220E88438AAB8213A6924C25528F272B7DD4F3FDD4FB49E2006A14E202E684B302706F6B8E08EAD60E52CF47A87DF58785B980392157B8ED8DCE15005C51D195BDD4EB56C8C3197F5D16557042AE327307B73FD3403A88468F8FA57A9F3980B98039C10C104C2BB35CE47C504838E0061FA62D28C607B9C2A9D63C11131F88A7CD852658E129D8D2E983FCA054539D5C771CB233066BE738A23D1EDD85B399CDE5CD15CA45C675C2A936E84D3D5B90B8B1B837B8BCB94247B39A6AE26C00DCD2DC95F3EF1810BDC1E5CD156AC8090380D99709943990694C30919D7F65D1D2910197682CEE0D2E6F51A1EE48C605A66E665F2650E640A63166222613E68358D42ABA921B8B7B83CB5BAFD0D33A00F3BE624D08F6A5F7184EE240A63166222693E27C9002E0DA37847DECEF560507328D156322430480911201D66B27F66D14045A88030B021820FC688477CC20EA76E7B16FB664F381A844AEA8897AEAF16D6DB08ED7420B3AA754663E0861905A5ACA58C07CC0CF95949CBA1F2E623E101FB227FD68169330863049456CB890B6807B9C7B9D7B7EEA1B9D823B9843D25928B9BD1F0E9782AAB90924465C50122AB468B1A78C981B160114434007607228AFB2A07A8686D2592124469DD43C1624426A511095682884011DA0F69A20AAA8FE2B08A4B95D46D9EC1042671C488415C483C53B3E0DD0F6C1B050367ABDBE4D42F5820822834E724541D8AF140510F0656E3B5CAA0DA161BD9D83416A5F6AE7961551D81D32AA174E166C67EFFE541AFB1E689F8250C2E299676A8BA40845B224C4ABD5FF85521D20B0BFB6A0894C69E15092286D08CEC620C2D4F68E52102F468943B8834BF5183868142C1AF23D342E61B4D74A351F80CD1D17CADED4FBE97FF52C002C9C85785081F7881593361FC25A482873FB73170B00F29E8E6A22BF8584EB214120E37D36445CE3F00527F5EA3500C8A31480A528085726A774B42F8180E734125B67654A998981FB9CCB932BAC98707546230148473267A6CD07EAE7F1E1BCC5AE0FED012EBB0CB8ED3620420FC8638F013B77A2EBF1FCCB4C85DEF5601370FBEDC00D37E84A8383FAC61FFF487C5F89AEF037809FFF1C5DFF30980FD0F5297AE96EFE22F0A52F01CF3FAF2FEED963BEEE8BB47FEFBDE8DAFD1574FDB4592C0942E9FA21556259195051A12B5F771D2D76011FF800D0D9990178E0012A4F0F5052A25B9BB6E08E3BE81DB78BC3B55FFD2A6A66CE84AC2838D1D808EFA953A0EE028E1CC9007DFFFB540451E0EFBE03B9EBC3DDC0C183FA4653132A69ECBFE20AA8562B9A3B3AF4F5D6023CF9C61B22D83256AD029E79465FA4B9C566C3F2D75F179F31BE8565CD9A7C803FFC41644AC52DB700F3E6E98B7FFA93309B6F4EC4A9714E9CD0D7298579F20DCA485F1F01D8B2DE405A609F85DFD972F264E12AA21A51505303BCEF7DC073CF015EAF3E0201802C618BB063472646D9F2DDEF026FBE494DF0A10FE9295BB60CE725DDDD424FEEFA2D292E5C88F396961651DAFACBB469935E81E72A5FFE32F0E8A362AA57E2DF51902626009F0FF8F4A78B2BDE79A71EA3F1F1743F28EBB04E4CD6759761DB8C3EDD12EE012EED8F7E54EFCA1811E88205C00F7F086CDD8AAEBBA534A6D485AEBC8B44757281718D709A1F7A0878ED358878E5C8FF07D9D07680708BE2560000000049454E44AE426082;

   // Title screen logo data;
   ICON titleLogo 89504E470D0A1A0A0000000D494844520000003F0000000F080300000064FBE74000000042504C5445000000800080000024000048FFFFFF00006DCCFFFF00009199FFFF0000B666FFFF0000DA33FFFF4B5C9E0000FF00FFFF0000DB0000B700009200006E000049000025E505F6580000001674524E530000000000000000000000000000000000000000000021C80CD6000000DD4944415478018592DD968340088361ADD656C7FAD3BEFFAB6EC094A147774B9843FC0877CAF752D57FC0CFD742FC6F20CDE5D2B86CD6E6B30FC413680878226DD7B52E9BB5F9EC03F1045A029EC8B5BFA2DF8A4E08F1CF440672BBDFD06F452784F867220319C67170D93413802A8873BBAF870C647A3C26974D330128A495DB7D3D6520F33C52E638B266C4F3A793389165B953E638B216DCE74F2771226BDFA3F1D6E276ADC0D5AFB8AF8084DB5264EB3A34DEA66EB70A5CE0AA1590708B1FF919A5CFF3C2FD8184915794BECE0BF70712464A9496F3C2FD8184F905216923D97A4313010000000049454E44AE426082;
   // I lost The Game D:;


This was a project to port Supersonic Ball to the HP Prime in 2013 or so, but sadly I stopped working on it. Who knows? Maybe I'll revive it one day, but I thought I would improve the speed of the title screen. Basically, I used to redraw the spinning balls every frame and now they are pre-rendered in a GROB. Also, the logo resolution has been reduced to 4 times its original width to speed up the animation, but the quality loss is almost non-existent (other than the fact the wave animation is now in the opposite direction).

The frame rate went from about 12 FPS to 30.
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: alexgt on February 02, 2016, 01:15:41 PM
I forgot how you did the title animation with the waves? I am interested in that. I am glad you got it working though ;)
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: novenary on February 02, 2016, 03:38:13 PM
Looks nice. :)
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: Dream of Omnimaga on February 02, 2016, 05:27:41 PM
Thanks guys :)

@alexgt I basically BLIT my GROB in small chunks via a for loop and using some variables I make the height change every loop iteration.
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: alexgt on February 02, 2016, 06:09:09 PM
Ok, I was just wondering ;) thanks.
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: Dream of Omnimaga on February 03, 2016, 01:21:11 AM
No problem. I was surprised by how fast it was, even before I speed it up. This is why I thought it was ironic that @Juju did not include the effect in his LOVE 2D remake of Supersonic Ball :P


Pre-rendering stuff on the HP Prime can do wonders, as long as you don't go overboard (especially if you use applications instead of programs)
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: alexgt on February 03, 2016, 02:09:24 AM
/me uses one GROB to store a entire 500x150 map
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: Dream of Omnimaga on February 03, 2016, 02:18:21 AM
Yeah I mean when your GROB's are so large that the game uses several MB of RAM and prevents application versions of it from running (eg the spreadsheet bug). 500x150 isn't that big, but 1920x1080 would be overkill (I think it's possible but glitches or errors will most likely occur)
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: alexgt on February 03, 2016, 03:08:46 AM
I mean't 500x150 tiles (500*16x150*16 ) :P
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: Dream of Omnimaga on February 09, 2016, 04:22:31 AM
Wait, then that would mean your GROB is 38.4 MB large? ??? Because that's 8000x2400 pixels and each pixel is 2 bytes large in GROB format. The calc doesn't even have this much RAM, so if you use such large GROB, then no wonder why your apps error out.

The HP Prime has 32 MB of RAM and half of it is used by the OS, so you only have 16 MB to work with, and even then you should not use it all, in case of HP Prime firmware bugs causing memory leaks.
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: alexgt on February 09, 2016, 02:28:48 PM
No, I have never made a GROB that size xD I was just joking
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: Dudeman313 on February 09, 2016, 05:01:29 PM
This is a CE port waiting to happen.  :P
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: alexgt on February 09, 2016, 07:39:16 PM
Try to make it :P
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: Dream of Omnimaga on February 09, 2016, 07:41:09 PM
Quote from: alexgt on February 09, 2016, 02:28:48 PM
No, I have never made a GROB that size xD I was just joking
Oh phew lol.
Quote from: Dudeman313 on February 09, 2016, 05:01:29 PM
This is a CE port waiting to happen.  :P
I don't know if even CE ASM/C would be capable of such speed, though. Perhaps in lower color bitrate it could, though. But yeah it would definitively not be by me unless Axe was ported to the CE

That said, that's if I was able to read Axe again, becuase I tried deciphering my SSB code earlier and could barely even figure out what each variable did. I should really have commented the code >.<
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: Dudeman313 on February 09, 2016, 07:44:57 PM
SSB?

I asked Runer112 about Axe on the CE, but it would need to be rewritten, and he also said if you had eZ80 knowledge, you wouldn't need Axe.
Title: Re: Improved Supersonic Ball HP PPL title animation (faster)
Post by: Dream of Omnimaga on February 09, 2016, 07:48:38 PM
SSB means Supersonic Ball here.

And yeah I remember Runer112 said that, but sadly I tried learning C in the past and couldn't figure anything out, unlike Axe where I was at least able to display something on the screen and even do grayscale. Oh well, perhaps one day someone will do it themselves.