Page 1 of 2

Bon anniversaire Nyan Cat, sur ta TI-83 Premium CE

Unread postPosted: 01 Apr 2016, 22:04
by critor
Ce 2 avril c'est l'anniversaire d'une célébrité de l'Internet, j'ai nommé le célèbre Nyan Cat, chat qui a en effet fait son apparition sur la toile le 2 avril 2011.

6794Nyan Cat apporte la réponse à un des plus grands mystères de l'histoire de l'humanité, une question au moins aussi importante que celle sur la vie, l'univers et le reste :
Sachant qu'un chat retombe toujours sur ses pattes, et qu'une tartine retombe toujours du côté beurré, que se passe-t-il si on attache une tartine au dos d'un chat ? ;)

Pour fêter ses 5 ans, Nyan Cat atterrit ce soir sur ton extraordinaire TI-83 Premium CE, et nous espérons que tu sauras lui faire bon accueil ! :)




Il s'agit de l'animation originale de Nyan Cat telle que publiée par le texan Christopher Torres alias prguitarman.

Le programme a été réalisé en C grâce au Project Builder en ligne, et tu es encore une fois libre de cloner le projet pour tes propres créations. :)



Lien : projet en ligne + téléchargement

Re: Bon anniversaire Nyan Cat, sur ta TI-83 Premium CE

Unread postPosted: 01 Apr 2016, 22:08
by Wistaro
Noooon j'ai la musique dans la tête maintenant :(

Une question. J'ai vu que le projet contenait plusieurs fichiers.

Mais comment le compilateur peut-il compacter tout les fichiers, plus les images dans un seul et même fichier 8xp?

Re: Bon anniversaire Nyan Cat, sur ta TI-83 Premium CE

Unread postPosted: 01 Apr 2016, 22:24
by critor
Wistaro wrote:Noooon j'ai la musique dans la tête maintenant :(

:P
Wistaro wrote:Une question. J'ai vu que le projet contenait plusieurs fichiers.

Mais comment le compilateur peut-il compacter tout les fichiers, plus les images dans un seul et même fichier 8xp?

Les images sont déjà dans le code C, sous forme de tableaux compressés en RLE 4-bits.

Sinon, la compilation C s'effectue en deux phases :
  • compilation de chaque fichier source .c en un fichier objet
    Cette phase laisse l'identification des symboles externes à plus tard.
    (ce sont les symboles déclarés ailleurs que dans le code présent ou inclus dans le fichier .c en question)
  • édition de liens :
    regroupement de l'ensemble des fichiers objets, identificiation des symboles externes, et génération d'un fichier exécutable

Re: Bon anniversaire Nyan Cat, sur ta TI-83 Premium CE

Unread postPosted: 01 Apr 2016, 23:11
by critor
En passant, nous avons également KingInfinity qui vous sort aujourd'hui aussi avec son programme HappyCalc une autre animation TI-83 Premium CE basée elle aussi sur un meme Internet, et que je vous laisse la surprise de découvrir :
https://tiplanet.org/forum/archives_voir.php?id=471612

Re: Bon anniversaire Nyan Cat, sur ta TI-83 Premium CE

Unread postPosted: 02 Apr 2016, 10:19
by critor
Mis à jour avec un zoom x2 :
Image
L'animation est donc forcément ralentie puisqu'il y a quatre fois plus de pixels à gérer, mais n'en reste pas moins fluide. :)
Téléchargement : https://tiplanet.org/forum/archives_voir.php?id=472165

Si besoin, changez le SPLASH_ZOOM dans le fichier splash.h du projet.
Projet en ligne : https://tiplanet.org/pb/?id=2043_1459523519_d17200eb61

Re: Bon anniversaire Nyan Cat, sur ta TI-83 Premium CE

Unread postPosted: 03 Apr 2016, 03:26
by MateoConLechuga
Great work critor :) Looking through your code; I have a few suggestions for coding with some recent toolchain updates:

I notice you still use memset. There is also memset_fast, which performs about 30x faster than memset.

While you have your own backlight code; might I recommend using the routines defined here since they are already a part of the toolchain, defined in tice.h?: http://wikiti.brandonw.net/index.php?ti ... clude_File
Especially lcd_GetBacklightLevel and lcd_SetBacklightLevel.

There's no need to have your own cleanUp(); anymore, since tice.h defines pgrm_CleanUp, which performs all the cleanup that you will need :)

Your code begins with this:
Code: Select all
    asm("di");
    asm("CALL 0020848h"); // _RunIndicOff
    asm("CALL 0020814h"); // _ClrScrn


Which is not necessary at all since the C startup module performs these exact commands already.

Might I also recommend taking a look at the C libraries? https://github.com/CE-Programming/libraries/releases
They are already included in the PB and toolchain setup; and although require the user to load a few initial files at one point or another, they have some very handy routines. :)

I must say; fantastic work, and thank you for all your support on this adventure :D

Re: Bon anniversaire Nyan Cat, sur ta TI-83 Premium CE

Unread postPosted: 03 Apr 2016, 03:44
by Adriweb
Uh oh, some of those are my doing, legacy of pre-libs/toolchain-updates/os_*/functions that have since discovered :P
But indeed now the code can be made simpler and cleaner \o/

And thanks for the toolchain updates :)

Re: Bon anniversaire Nyan Cat, sur ta TI-83 Premium CE

Unread postPosted: 03 Apr 2016, 10:16
by Ti64CLi++
Super.
Est-ce jute l'animation ou le jeu comme sur Nspire?

Re: Bon anniversaire Nyan Cat, sur ta TI-83 Premium CE

Unread postPosted: 03 Apr 2016, 10:18
by Wistaro
neuronix wrote:Super.
Est-ce jute l'animation ou le jeu comme sur Nspire?


Il s'agit de "simplement" l'animation.

Re: Bon anniversaire Nyan Cat, sur ta TI-83 Premium CE

Unread postPosted: 03 Apr 2016, 10:22
by Ti64CLi++
Ok.
En tout cas, bien joué au développeur :bj: