1. Ton affirmation n'est pas juste tant que tu ne la démontres pas.
2. J'ai déjà démontré le contraire depuis le début du topic, et il n'y a pas de contradiction dans mes arguments.
Et tu mets plein de "no" injustifiés au _nostub:
"System Overrides: No, Yes by using TSR" -> donc Yes!
"TI-Basic extensions: No, without a hack." -> C'est possible, donc c'est Yes!
"Auto-uncompress when executing: No (directly), Yes with ttstart or EXE-packed technology" -> donc Yes!
"Comment: No" -> plus pour longtemps. Il y a déjà la spécification préliminaire. Donc encore Yes! "Protection from buggy programs: No" -> Si, il y a le choix entre crashlib (anti-crash en librairie statique), KerNO et PreOs.
"Size : 65520 / 8K / 24K" -> 131036 avec une DLL _nostub. Et c'est 65518 la limite pour un fichier, pas 65520.La c'est vrai mais une DLL Nostub n'est vraiment pas si simple a utiliser qu'une lib dynamique kernel
De plus, pourquoi les programmes _nostub sont limités à 8 KO, alors que les programmes kernel seraient limités à 24 KO ? A ma connaissance, ils souffrent de la même stupide limitation software sur AMS 2.xx (et cette limitation est triviale à contourner...)C'est un gros avantage du kernel: c'est 64K/64K/64K pour tous les programmes y compris Nostub !
>oui voila je l'avais opublié celui la: HW2TSR,ExtraKeys,Kerno,Autostart voila tout ce qu'il faut pour approcher les fonctionalités du kernel Tu oublies le support du format Kernel
> cf ce qu'on dit depuis 9 pages : le kernel n'est pas dépassé, puisqu'il évolue encoreÇa ne veut pas dire qu'il n'est pas dépassé! Comme j'ai déjà dit: il y a toujours des nostalgiques pour faire évoluer les systèmes totalement dépassés!
Le format de base ne change pas parce qu'il n'a pas besoin de changer. Il est très bien comme il est. Et il y a des évolutions à l'intérieur de ce format de base. Par exemple le format de commentaires et autres données qui est en développement.
Bon, de 2 choses l'une:
- soit elle ressemble à genlib.
- soit elle est simple d'utilisation. Je ne connais pas suffisamment Allegro pour dire laquelle des 2 solutions est la bonne, mais je connais suffisamment genlib pour pouvoir dire que si elle ressemble à genlib, elle n'est pas simple d'utilisation et vice-versa.
- impossible de lancer un programme sans installation préalable d'un programme tiers.
- gaspillage de place en utilisant une surcouche d'émulation par dessus AMS (pour une estimation de la place gaspillée, comparez la taille de PreOs avec celle de KerNO).Argument qui ne vaut pas le Kernel fait plus que l'anti crash de Kerno. Si tu fait la somme de tout ce que je t'ai cité comme TSR pour s'approcher du format kernel, tu le dépasse.
- complique la vie aux développeurs d'outils de développement à cause de son format difficile à gérer pour le linker.La j'avoue que je ne connais pas vraiment le problème. Mais d'un autre coté il y a facilite le vie au programmeur
- gaspillage de place pour les routines inutilisées des librairies dynamiques. etc...gaspillage de place pour les multiples launchers et pour le code réemployé plusieurs fois. On en revient au même.
Si tu trouves nos routines de sprites lentes, tu dois n'avoir jamais essayé BitmapPut.C'est sur que si on compare BitmapPut c'est difficile de faire pire
PpHd a écrit :
>Mais c'est le format natif standard qu'il faudrait respecter... Je le respecte, sinon ca ne pourrait jamais se lancer.
>Je te rappelle qu'AMS n'est pas fait pour la programmation en quoi que ce soit, que ça soit en BASIC ou en ASM... C'est vrai ca.
>D'où mon conseil de laisser tomber genlib et d'utiliser une librairie graphique statique. Plutot fait la fonctionner en mode kernel.
>Je ne vois pas pourquoi, selon toi, ça serait une bonne idée pour PreOs et pas pour mes TSRs à moi.
Du point de vue utilisateur
>Non, tu es passé totalement à côté de mon argument une fois de plus. Tu n'assistes pas du tout l'utilisateur en l'obligeant à utiliser une certaine méthode de lancement! Il vaut beaucoup mieux le laisser faire ce qu'il veut faire, lui. Arg mais avant de le laisser faire ce qu'il veut, il faudrait lui expliquer les choix qui s'offrent a lui.
>... et si les fonctions réutilisées prennent plus de place que les fonctions inutilisées des librairies dynamiques + l'overhead des importations/exportations + le code de relogement des importations (c'est-à-dire le kernel dans le cas des librairies dynamiques en mode kernel), ce qui n'est presque jamais le cas en pratique (j'ai déjà posté des calculs le montrant à plusieurs reprises). Sauf que c'est souvent faux. Cf cc qui est de 64K en _nostub et moins de 56K en kernel...
>Je te signale que ttstart (et donc aussi les lanceurs personnalisés) n'a besoin d'aucun TSR pour fonctionner! Il parlait des equivalents !
>Un programme _nostub qui n'est pas un TSR et qui n'utilise pas NG_execute (on peut lancer les programmes en assembleur/C directement à la place) n'a pas besoin de HW2Patch ni de h220xTSR. Et s'il connait les trucs et astuces a utiliser...
>Mais ça prend encore plus de place! genlib en prend déjà trop toute seule! Compressee, elle ne prend pas tant de place.
>Ben si, on peut aussi faire un jeu qui utilise ExtGraph sans savoir comment fonctionne genlib. Tu veux montrer quoi en affirmant cela ?
-plus facile a utiliser: faux et même tout le contraire, genlib a pas mal de fonctions qui facilitent la vie et si tu es incapable de faire fonctionner cette lib, tu es incapable de faire un jeu qui requière plus que TIGCCLIB.
>ExtGraph est déjà "plus que TIGCCLIB". Et puis, je ne sais pas ce que vous avez tous contre les fonctions de sprites de TIGCCLIB. Elles marchent très bien. Oui. BitmapPut aussi.
>Même PpHd avoue (cf. #258) que des bogues ont été trouvés dans genlib à plusieurs reprises. Avec ExtGraph, il n'y a aucun problème. On ne peut raisonnablement pas comparer les degres de complexite des deux librairies.
Et les bugs sont souvent mineurs.
>Mais ça ne sert à rien [d'être plus rapide que ExtGraph]. Pour toi oui. Pour certains non.
>Je n'appelle pas ça "vouloir contraindre le programmeur", mais lui dire de programmer proprement. Je ne vois pas du tout l'intérêt d'abuser d'un ASM pour mettre des données. Et alors ?
>Il est impossible de concevoir une DLL qui en même temps:
>- contient toutes les fonctions qui pourraient être utiles à un programme.
>- ne contient que les fonctions utilisées par tous les programmes.
Si c'est possible![]()
Une Pack-Archive contenant une centaine de sous-DLL
<Ce n'est pas un problème de conception de la DLL, mais une erreur de conception dans l'idée-même des DLLs. Cf au dessus.
>- faciliter l'implémentation et l'utilisation (pas besoin d'associer un handle aux DLLs s'il n'y en a qu'une seule à la fois) Bof. On aurait pu faire de meme avec plusieurs.
>- limiter les abus (Je répète que ce système est là uniquement pour permettre de créer des programmes de plus de 64 KO!) Un hack est facile.
>Et en tout cas, TI n'a aucun intérêt à empêcher à vcbprintf de fonctionner, et c'est aussi appuyé par le fait que, pour l'instant, aucune mise à jour de AMS n'a causé des problèmes avec vcbprintf. sprintf n'a pas du tout changé entre AMS 1.00 et 2.08. Oué, mais justement, c'est parce que le fichier 'printf.c' n'a JAMAIS ete recompile. S'il le recompilait (rien que par le fait qu'ils vont changer leurs flags de compilation), la methode actuelle serait invalide.
>Il y a de bonnes chances que je serai toujours membre de l'équipe de TIGCC. Moi y'a de bonnes chances que je disparaisse.
>BitmapPut de AMS est clippé! À ton avis, il sert à quoi, le paramètre SCR_RECT *clip
A clipper. Pas eu le temps de mettre le clipping. Si quelqu'un est interresse
>Parce que Windows est la plateforme la plus connue qui les utilise, et parce que sous *nix, le terme "so" (shared object) ou "shared library" est habituellement utilisé à la place. Évidemment, on n'utilise pas ce dernier terme pour les DLLs de TIGCCLIB parce qu'elles ne sont pas prévues pour être partagées!
Et les DLL windows ne sont pas prevus pour etre partages aussiVous auriez mieux fait de mettre 'EASM' comme extension Extended Assembly file.
>Mais un appel de fonction est quand-même une ligne logique. C'est un concept certifie ?
>Ben, évidemment, si tu abuses des sprites pour remplir l'écran entier, il est normal que ce soit lent.
Tu dois pas beaucoup aimer les shoots toi
>C'est plus rapide que de tout réafficher à chaque fois. Faux.
>Si vraiment tu veux du scrolling différentiel, tu peux le faire très facilement toi-même. De toute façon, genlib (et XLib aussi, il me semble) se contente de tout réafficher à chaque fois. Certes, mais les routines de genlib sont optimises pour.
>Si tu fais la même chose, le scrolling différentiel devient trivial. moins que dans genlib.
>Et sinon, avec ExtGraph, tu peux aussi faire quelque chose comme ça (je mets en blanc/noir pour éviter de tout recopier 2 fois, mais c'est la même chose en niveaux de gris):
Ton code est nul
>Ben, si tu recherches les effets spéciaux, ne viens pas râler que c'est lent. La TI-89/92+/V200 n'est pas du tout une plateforme adaptée pour des jeux avec des graphismes impressionnants.
Ah bon
>Et de toute façon, ces effets graphiques ne changent rien à la jouabilité.
Joue a Quake3 en mode flat alors
>C'est bien ce que je dis: tu abuses d'effets graphiques. Phoenix ne lance jamais plus de 4 missiles à la fois et pourtant c'est tout à fait jouable.
Phoenix affiche beaucoup de vaisseaux et de missiles a la fois
>Ça n'apporte pas grand chose en fonctionnalités par rapport à KerNO qui fait la moitié de la taille. L'anticrash est meilleur.
>Traduction: sauf pour les jeux qui abusent d'effets graphiques. Et ben, la solution est simple: il suffit arrêter d'abuser d'effets graphiques! il en est hors de questions !
>>Avec les kernels on aurrait sans doute quelque problèmes mais on devrait pouvoir arriver a quelquechose d'executable a défault de marcher parfaitement.
>J'en doûte, si la matrice clavier et la résolution de l'écran ont complètement changé. File moi un exemple precis et je chercherais un moyen.
>De la même manière que le kernel: en recompilant, et en adaptant les sources au besoin pour gérer la nouvelle taille d'écran. Les programmes pour kernel devront faire exactement la même chose pour fonctionner. Le kernel ne peut rien faire pour résoudre ce problème-là. Comment veux-tu que le kernel change toutes les références à la matrice clavier? Et la taille de l'écran? Beaucoup de programmes nécessiteraient même un changement des sources pour gérer un écran de taille différente, et le kernel n'y change strictement rien. Et c'est exactement ce que j'ai voulu montrer par cet exemple.
Faux le kernel mettrait en place une surcouche emulation de l'ancien hardware. Le seul truc c'est de faire une traduction temps reel de la matrice clavier (Ca roulerait bien).
Pour l'ecran, une int qui s'occupe de la traduction fera l'affaire.
Encore mieux : si le programme fonctionne avec genlib, une adaptation complete de genlib permettrait de s'en sortir facilement (sans a avoir a recompiler tous les autres programmes). Vive genlib
>Et c'est tout à fait normal qu'on compare, vu que c'est exactement le même concept. Non. Toi c'est une Extended Assembly File.
>Je ne vois pas du tout ce que Krypton gagnerait à être en kernel. Au contraire, il perdrait la compatibilité avec les calculatrices sans kernel. Il est gros. Il gagnerait en place en kernel.
>Pourquoi c'est dommage? Les DLLs partagées sont un concept défectueux depuis le départ. Elles ont beaucoup de désavantages pour pas ou presque pas d'avantages. TIGCC supporte parfaitement les librairies statiques, qui sont beaucoup plus adaptées pour le partage de code. Et lorsqu'on a plusieurs libs statiques de versions differentes entre elles incompatibles entre elles et que chaque programme necessite une version differente ?
>Strictement rien.
>Reste en _nostub, c'est mieux.
Taille, mon respect. Ca tournerait sur ma calc
>Je ne vois vraiment pas pourquoi. Déjà, WinZIP (et WinRAR et WinACE) le décompressent sans problèmes. Et puis, untbz2 fait 23 KO. WinZIP fait nettement plus que ça. Certes dont moi, ont des vieilles versions de WinZip et ont pas envie de mettre a jour.
>On ne sait jamais. Le débâcle de EX_patch et de ttstart ne te dit-il rien? C'est une erreur (ça n'a d'ailleurs aucun rapport avec le fait que ttstart soit en _nostub, c'était tout simplement un bogue; le mode kernel n'y aurait changé strictement rien) qui a été mise en relief par une simple mise à jour de AMS. Mes macros ne fonctionnent qu'en mode algortihmique pur. Aucun appel de fonction AMS, ni de references materielles.
>"Programmer en ASM" et "utiliser tigcc.a" ne sont pas incompatibles
Mais programmer en ASM peut faire utiliser les romcalls directement
>Ce n'est pas une solution au problème. Si, c'est une solution.
>Avec une librairie statique, on pourrait économiser la mémoire utilisée par ces fonctions au lieu de les utiliser "juste parce qu'elles y sont". Mais elles y sont ! Donc autant les utiliser.
>En effet, pour la place, ça se discute. Les patches d'adresses prennent sans doûte pas mal de place.
Sauf que parfois on a aussi besoin de plus de 16 registres en meme temps. Le SMC permet de resoudre cela.
>Et le risque d'erreurs est aussi beaucoup plus faible en utilisant un registre qu'en patchant des adresses de partout. Et puis, il est plus propre d'utiliser un registre pour ça. Pas tant que ca. Les erreurs surviennent en general tres vite. Si ca passe une fois, ca passera les autres.
>Par paresse? Ça ne prend pas tellement d'octets/cycles si on le fait correctement. Non. Mais j'aime garder un max de registres pour mes routines.
>Bon, je le ferai ce weekend si j'aurai le temps.
Rappel de francais (Juste histoire que tu te plantes pas dans un exam) :
"je le ferai ce weekend si j'<AI> le temps. "
Futur + SI + present. Desole
>Mais j'ai l'impression que tu fais exprès de ne pas donner de suggestions pour KerNO parce que c'est un "concurrent".
C'est plutot que j'ai pas le temps![]()
Et puis il a du y penser de lui meme non ? C'est trivial a penser. Il a du choisir DlgMsg pour certaines raisons.
>Ce qui alourdit le tout. Tu aurais dû intégrer ttunpack_decompress à PreOs, comme ça pas besoin de librairie de décompression, et un taux de compression meilleur. Ca n'alourdit pas vraiment. Le code utilise reellement le potentiel du kernel.
Et tu peux parfaitement utiliser ttunpack
>Mais DOS est dépassé et difficile à utiliser.
Difficile![]()
Et il manque un autoexec.bat a ASM plutot
>Non. Je répète qu'on s'attend à ce que le programme marche sans avoir lancé quoi que ce soit avant. Pas moi.
PpHd a écrit :
>GCC est assez lourd en effet, mais y a-t'il des compilateurs légers avec des fonctionnalités comparables? Il ne me semble pas. GTC est largement suffisant a mon avis.
Surtout si on veut faire du code portable d'un compilo a un autre.
>Évidemment, si on retire toutes les fonctionnalités intéressantes de AMS, on a la place.C'est surtout qu'AMS n'est pas optimise en taille. En moins de 64K, 350 fonctions d'AMS. Tu trouves ca normal ?
>Il y a aussi des défauts objectifs indéniables. Cf. le premier paragraphe de réponse de ce message.
[Je remets le paragraphe en question:
Je répète ce que j'ai déjà répondu à Uther Lightbringer:
Il est impossible de concevoir une DLL qui en même temps:
- contient toutes les fonctions qui pourraient être utiles à un programme.
- ne contient que les fonctions utilisées par tous les programmes.
Ce n'est pas un problème de conception de la DLL, mais une erreur de conception dans l'idée-même des DLLs.] C'est corrigeable.
>Parce qu'un linker normal identifie une fonction par son nom. D'ailleurs, tu es obligé de passer par des #defines ou des equates pour associer les noms à des numéros. Tout OS identifie ces fonctions internes par des numeros, pas par des noms.
Tu peux utiliser directement sous la forme malib__0000(); C'est lisible.
>Pour un système de librairies qui identifie les fonctions par leur nom (le système de librairies statiques de TIGCC par exemple), on n'en a pas besoin. C'est une tres mauvaise idee a mon avis.
>Tu n'es pas souvent passé sur le forum de la TICT Si. Mais je ne vois pas beaucoup de debat en parlant.
>et sur celui de TI apparemment.
Jamais.
>Il y a pas mal de gens qui disent que les kernels sont complètement obsolètes là-bas. Ils disent des conneries c'est tout.
>Je pense que tu te trompes là. C'est mon droit.
>Ben, les bogues qui empêchent aux jeux en question de s'appeler "version 1.00".Ben ces jeux sont concus pour etre beaus, riches et complexes. Donc ca prend du temps, surtout si on fait autre chose par ailleurs.
>Tu n'as pas dû bien écouter quand le sujet revenait régulièrement. Si mais j'ai corrige.
>Et ce n'étaient pas seulement les utilisateurs finaux (end-users) à s'en plaindre,
Qui ?
>mais aussi certains programmeurs utilisant genlib. Dark Angel par exemple. La c'etait le probleme de la detection de Vti. Un faux probleme.
>Je m'en fiche de la spécification.
>La spécification de AMS interdit les programmes en RAM >24 KO et les TSRs en RAM, et
>pourtant tout le monde s'en fout. L'important est que ça marche. Si tu me trouves un patche viable.
>Bon, voilà 2 exemples (je ne mets pas le code concret, parce que ça serait long et n'apporterait rien de plus que la description en mots):
- remplacer un buffer statique (pour une fonction de style sprintf) par un buffer alloué, plus grand, quand c'est nécessaire
- traverser une table dans un programme en modifiant l'adresse à lire à chaque fois
Évidemment, il y a aussi d'autres manières, plus propres, de coder ça, mais les exemples sont quand-même utiles et cohérents.
Tes deux exemples fonctionnent aussi en kernel. Suffit de faire l'init soit meme, ce qui est quand meme bien plus propre.
>Tu importes le code pour EXECUTE_IN_GHOST_SPACE (un seul xdef), et tu fais:
> move.w %d0,-(%a7)
> move.l HeapDeref*4(%a5),%a0
> jsr (%a0)
> addq.l #2,%a7
> adda.l #0x40000,%a0
> jsr (%a0)
> nop;nop;nop |pour RETURN_VALUE
> C'est tout bête.
Et tu obtiendras une belle barre noire en haut![]()
Sur HW1 et sur HW2
>Montre-moi des saletés dans les programmes TICT alors. Le patch pour faire communiquer tictex / tictexpl
>Pourquoi? Le code de démarrage de TIGCC est prévu pour fonctionner indépendemment de ce que fait le programme principal. Mais un patch peut devoir faire autre chose.
>C'est trop tard. Il y a déjà des programmes qui les utilisent (de la manière prévue). Duke68k et CalcRogue par exemple. On se demande comment ils font. Moi meme en y mettant du mien, j'ai du mal a remplir 64K de code pur.
>Bon, on remplace "100%" par "99%".
Ok.
>Mais il est très improbable que les versions futures de AMS exporteront moins de fonctions.
>Ce n'est pas du tout dans la logique de TI.
>Ils ont retiré quelques fonctions isolées (une douzaine), mais en général, ils rajoutent des fonctions, ils n'en retirent pas. Hum. Tu te contredis. "Ils en ont retires".
>Ils ont quand-même un minimum de souci de compatibilité, même si on les accuse souvent du
>contraire. Ah. Ou ca ? Certains ingenieur peut etre.
>Ah, je vois (c'est dans le ZIP de Pedrom que tu m'as envoyé pour le problème avec A68k ). Il y a pas mal de trucs qui pourraient nous intéresser (pour la documentation de TIGCC) dans ton Note.txt.
C'est fait pour
>Mais il y a certainement un moyen de définir un menu CUSTOM en C.
push_parse_text("custom:text ....");
HS_popESTACK / NG_execute me semble le meilleur moyen.
>Plus simple? C'est plus simple de lancer un NG_execute avec des tags qu'un simple cmd_custmon??? Tu connais le format ?
>C'est certainement plus lent! NG_execute doit interpréter les tokens, puis exécuter le bon cmd_.... Il est certainement plus rapide d'appeler cmd_... directement. A condition de connaitre le format !
>Et alors? prions pour qu'ils ne recompilent pas printf.c
>Certes. Mais je parlais de ce que ça apporterait comme fonctionnalité à un programme, pas ce que ça apporterait pour une librairie standard pour faciliter les portages. Tu l'as dit toi meme: faciliter les portages.
>TI-Connect n'est pas juste une surcouche du logiciel GraphLink. Par exemple, il supporte les câbles USB, ce qui n'est pas le cas du logiciel GraphLink. J'ai essaye. Je n'ai vu qu'une surcouche de graphlink.
Faudrait essayer ces chaines la.
>1. Je me demande bien comment tu veux faire cet "émulateur". Il faudra changer le code du programme de partout, et pour l'écran, les changements ne sont pas automatisables à mon avis. Cf au dessus.
>Nos #defines de compat.h sont tout aussi faciles à changer. De même si le programme lui-même utilise la même technique (#define CONST1 (TI89?1:2)). Plus lourd. Plus lent.
>2. Cet "émulateur" marcherait exactement de la même manière en _nostub.
Pas de maniere automatique ni transparente
>Tu utilises quoi alors? Notepad???
>TIGCC IDE est très pratique, même si tu programmes en assembleur! Ultra Edit pour tout et n'importe quoi (C, HTML, JAVA, ASM, C++, ..) avec pleins de compilos differents.
>Moi, j'aime bien, c'est la syntaxe GNU. Crois moi, on arrive très bien à s'y habituer.![]()
C'est plus lourd. Ca obblige a taper un caractere sup par registre. Bref on voit bien qu'ils programment pas en asm.
>Mais BitmapPut de AMS l'est! Et c'était ça, le contexte. Je ne vois pas du tout ce que vient y faire ExtGraph (à part que tu as recopié le code de ExtGraph pour implémenter BitmapPut ).
Parce que justement je l'ai prise de la
>C'est justement ça ton erreur, à mon avis. Tu veux donc un exemple ou c'est impossible de faire autrement ?
>Tu peux essayer de les envoyer à XDanger. Il peut aussi faire des mises à jour des logiciels TICT si c'est vraiment important.
Ce n'etait pas important. Quelques details. Et puis ca l'obblige a refaire appel aux traducteurs
>Je ne vois pas en quoi ma solution (rajouter un nouveau RAM_CALL pour font_medium,
>changer font_small et font_large, et garder _RAM_CALL_00E pour les fontes du boot)
>causerait des problèmes de compatibilité. Mais bon, tu fais ce que tu veux, de toute façon,
> je n'utilise aucun de ces RAM_CALLs. (Vive le _nostub! )
Parce que certains programmes les utilisent deja
>Ce que je dis est que le fait qu'il y a une mise à jour qui accélère les routines de prévue n'est pas une excuse valable pour ne pas créer une version statique. Ce n'est en rien une excuse. C'est une fonctionnalite supplementaire.
>Si le programmeur a vraiment besoin de la vitesse supplémentaire apportée par la mise à jour, il recompilera/réassemblera/relinkera quand la librairie est mise à jour. Je n'ai pas du tout mis en question le fait que tu n'as pas le temps de sortir la mise à jour tout de suite. Pourquoi n'en aurait-il pas besoin puisque dans le contexe ou elle doit etre utiliser y'a la notion de vitesse.
PpHd a écrit :
>TI-89/92+/V200.
>Les jeux avec FAT Engine ou d'autres techniques 3D tournent souvent autour des 10 FPS. Les jeux en 2D ont des framerates nettement plus élevés. Ils sont plus interressants aussi.
>À peine, mais quand-même. Restons raissonnable. On est pas a 3% pres.
>Le contexte, c'était des conseils à Uther Lightbringer pour comment il peut se passer des librairies qui nécessitent USE_KERNEL. J'ai donc dit qu'en appliquant ces conseils, USE_KERNEL n'est plus nécessaire. Toi, tu as prétendu le contraire. J'aimerais bien que tu m'expliques ton raisonnement...
De toute facon, avec toi, USE_KERNEL n'est jamais necessaire alors
>Il faudra m'expliquer pourquoi ça rame alors...
Ils sont doues les gars de chez Origin. Mais doueIls affichent come un bouef tous les sprites de la map, quelque soit ta position. Je ne vois que ca comme explication.
>Ben, je te signale que pour le scrolling de ExtGraph, il est très facile de comprendre comment il marche. Le système de plans est plus compliqué. Oui. Mais tellement plus simple une fois assimile.
Et plus rapide.
>Ben, alors, il suffit d'expliquer dans le lisezmoi comment on utilise ttstart. Ou mettre un message d'explication dans le programme _nostub juste avant l'extraction du PPG.
>Non, parce que leur affichage n'a pas besoin de 100 ms tout simplement. Et cela indépendemment de la librairie graphique utilisée. mais si ! Essaye de faire tourner Cf/SMA sous Extgraph alors !
>Quelle 3D? 3D isométrique? Dans ce cas, ce n'est pas vraiment de la 3D (ce sont juste des sprites avec un masque non-rectangulaire), et c'est normal que ça ne rame pas.
3D face pleineEn surcouche des maps (2 planes), et des sprites (30 spr 32x32 a l'ecran), plus les fenetres.
>Parce que les fonctionnalités ne sont pas identiques. On peut lancer le programme de manière plus directe avec le lanceur personnalisé. Mais le format des Pack Archive permet de le lancer directement justement !
>D'ailleurs, il y a aussi AutoStart comme troisième solution. Ça permet de combiner lanceur commun et lancement direct. Le désavantage est qu'il y a un TSR à installer.
C'est à l'utilisateur de choisir entre les 3 méthodes, pas au programmeur. Mais si !
>En quoi est-ce un problème? Les fonctions de gray.h sont simples à utiliser et efficace, donc pourquoi dupliquer l'effort en en mettant d'autres dans ExtGraph? D'autant plus que c'est Thomas qui a écrit les routines de TIGCCLIB. Il ne va pas faire de la concurrence à ses propres routines! Ce n'est pas un probleme pour Extgraph, mais tu dois en tenir compte lorsque tu compares avec d'autres libs.
>Il manque quoi (à part les fonctions clippées, ça on le sait déjà)? 1. Les fonctions clippees
2. La generation du halo.
3. L'affichage de plane.
4. Les routines de link. 5. Gestion joypad.
6. Effets de lumiere.
>D'où l'intérêt de ne pas rajouter des fonctions compliquées et à intérêt doûteux (par exemple tes 2 fameuses "super tables") à sa librairie graphique. C'est tres utile. Cf SMA Aquatic Ruins. C'est splendide comme effet !
>>>[ExtGraph est] suffisamment rapide pour pratiquement toutes les utilisations pratiques
>>Qui sont ? Des jeux de reflexions ?
>Toutes sortes de jeux ou autres programmes. Mais pas des jeux d'actions.
>Seulement après avoir installé l'interpréteur du format (c'est-à-dire le kernel).
Parce qu'il y a pas d'autostart ! Faudrait que je fasse Preos en apps.
>Il fonctionne très bien! À part pour un programme avec des milliers de relogements (*ahem* CC *ahem*), évidemment. Mais il est sous-optimal ! Toi qui deteste la place perdu, tu devrais t'en rendre compte !
>Elle ne convient pas très bien parce qu'elle n'existe qu'en dynamique. Arg !
>Sauf que mes calculs ont pris des cas moyens, voire des cas qu'on croierait extrêmement favorisants pour les librairies dynamiques, mais qui en fait, calculs faits, ne l'étaient pas du tout. Hein ? Ou ca ?
>Et ben, je dis que tu te trompes là. Vu la taille de genlib (autour de 16 KO) et vu la taille des routines utilisées d'habitude dans ExtGraph (autour de 2 KO: 1 KO pour les niveaux de gris de TIGCCLIB et 1 KO pour les fonctions de ExtGraph elle-même), il faut au moins 8 jeux avec genlib pour que le fait que genlib est une librairie dynamique soit rentable. Tu oublies toutes les fonctions que l'on doit reecrire par soi meme car ca n'y est pas dans genlib.
tu oublies la vitesse d'execution.
>Or, les jeux avec genlib ont généralement besoin de nettement plus de 655360/8=81920 octets d'archive en tout (cf. SMA, CF, ...), donc la solution de ExtGraph est meilleure. Et la compression n'y changera rien, vu qu'elle compresse genlib et ExtGraph de la même manière.
mais ca permet de mettre a jour genlib pour d'autres machines
>Tu utilises AutoStart si tu veux absolument lancer le programme par son nom seul sans utiliser de lanceur personnalisé. Il prend moins de place que PreOs même en rajoutant la taille de ttstart! Et en ajoutant la taille de Kerno ?
>N'empêche que pas mal de ses fonctions sont inutiles pour la plupart des programmes qui l'utilisent. Attention, je ne dis pas qu'elles ne sont pas utiles pour certains programmes, mais juste qu'elles traîneront inutilisées dans la plupart des cas parce que le principe des librairies dynamiques ne permet pas d'envoyer des fonctions au système de destination ("target", ici la calculatrice) de manière sélective. Lesquelles sont inutilisees ?
>Si, elle est plus compliquée!
Montre le :
genaux_init(GENAUX_DBUFFER|GENAUX_SPR16_TABLE, spr16);
gen_put_sprite_16(16, 16, 0);
gen_wait_key(); genaux_quit();
>Il y en a eu nettement moins. Le mot "bug" apparaît 20 fois (dont 5 fois au pluriel) dans l'historique de genlib, et seulement 4 fois dans celle de ExtGraph. Ce n'est absolument pas le meme degre de complexite.
>Mais non. Si la différence de vitesse est négligeable, elle est négligeable! Elle n'est pas negligeable !
>Je dis qu'il abuse parce qu'il n'adapte pas du tout son usage d'effets spéciaux à la plateforme sur laquelle il programme. Mais ca fonctionne !
>Dans le Mario à 1 fps, on avance par pas de 5 ou 10 pixels quand on court. ... meme fer3 v3.20 va plus vite que 1 fps.
>Et évidemment qu'un Mario à 1 fps n'est pas comparable à un SMA. Mais un Mario à 10 fps l'est tout à fait! Mario et Sonic sont INCOMPARABLES !
>si on laisse les programmeurs programmer en mode kernel, on empêche aux utilisateurs de ne pas utiliser de kernel. Si on laisse les programmeurs programmer seulement pour AMS, on empêche les utilisateurs de ne pas utiliser AMS.
>ma foi, je trouve le switch pr le supprimer très utile
>Dès que je dl une nouvelle version de preOS, je supprime le switch pr HW2tsr, le switch qui permet de supporter les HW2, le switch pr afficher les boites de dialogues à la fin de l'installation... Et je recompile.
>Comme ça, preOS ne contient que ce dont j'ai besoin : il prend moins de place, et j'ai pas de crise de nerfs avec 36 boites de dialogue
(d'ailleurs, PpHd, merci pr ces swithc )
C'est fait pour.
Mais tu auras bientot de nouveaux switchs a ta disposition. Entre autre, ERASE_UNCERTIFIED_LIB.
>Qd j'aurai quitté la communauté, j'aimerai bien qu'un kernel se charge de rendre mes progs compatbiles avec ce qui va arriver dans le futur. CODE EN MODE KERNEL ALORS !
>ma foi, je suis assez d'accord... ça serait bien pratique que ce soit intégré au kernel...
>comme ça, on tape directement le nom du ppg dans la ligne d'entrée,
>pas besoin d'appeller ttstart...
>(en supposant que ce soit possible, ce serait bien pratique !) Tu compiles en Pack Archive, tu crees une lib "ttpack", et c'est bon.
Sinon tu as autostart.
>la superarme "neige", ou "glace", ou un truc comme ça il me semble, où on voit un polygone 3D tourner dans les airs C'est pas qu'un polygone. Y'en a 16 je crois.
XDanger a écrit :
> C'est buggue tout simplement. Il faut tester le materiel avant de changer ce port.
Bien. A ce moment là, sois sport: suggère à Greg Dietsche de changer ce qu'il a fait.
>>1. C'est tout bête. Il suffit de mettre #define EXECUTE_IN_GHOST_SPACE.
>Et cette astuce foirera lorqsue TI mettra plus de 256Ko de RAM.
>Remarque, ce sera pas les seuls programmes a ne pas fonctionner.
En effet. Les kernels eux-mêmes ne fonctionneront plus non plus...
>Les includes headers mettront cela de maniere transparente, et la lib complete est distribuee sous la forme d'une pack. Par exemple, mon portage de tigcclib en lib dynamique, sera une pack archive (tigcclib) contenant comme fichiers l'ensemble des fichiers objets de tigcclib.a.
Je ne savais pas que tu projetais de faire une telle horreur. Ne faut-il pas l'accord de la TIGCC Team, avant de faire cela. Et puis il y a des moyens simples de t'empêcher de faire ce que tu veux faire...
> Par ailleurs, il faudrait verifier si le code que j'ai fait de lecture des nombres reels (PedroM / EStack.asm) ne permettrait pas de reduire encore la taille du code (Plus d'appel a Atof).
Tu penses vraiment que le support pour PedROM sera ajouté dans TIGCC (à part peut-être pour détecter PedROM et ne pas exécuter le programme le cas échéant, autrement dit alourdir le code de startup pour un truc dont la majorité des personnes n'ont rien à faire) ?
Moi, je ne suis pas dans la TIGCC Team, je n'ai pas pouvoir de décision là-dessus, mais ça m'étonnerait. Et en tout cas, je ne suis pas spécialement favorable à un tel ajout.
>>Et si le standard de commentaires _nostub est du vaporware, PedROM, c'est quoi ?
>Je n'ai jamais donne de date de sortie.
A ma connaissance, personne n'a donné de date de sortie pour le standard de commentaires _nostub.
>>Le standard de commentaires _nostub est plus propre et mieux défini que le "standard" imposé par l'usage des kernels.
>Je vois pas en quoi ca peut etre plus propre et mieux definis.
En tout cas, la spec du standard de commentaires _nostub est probablement plus claire et mieux définie que les super specs de certains trucs du kernel (au hasard, les RAM_CALLs de fonts)...
C'est quoi DrawFace ?
> Il ne tient qu'a toi de les corriger.
Il me semble que c'est ce qu'on est en train d'essayer de faire, dans les derniers posts de ces débat.
> Tiens ? Tu t'interresses a la compatibilite AMS 1.0x. Je croyais etre le seul.
Certainement pas. La TIGCC Team et TICT et d'autres tiennent à la compatibilité AMS 1.xx. Si ça n'était pas le cas, je ne me serais pas fait suer pendant des heures à trouver des wrappers pour que des fonctions qui ne sont dans la table de ROM_CALLs que sous AMS 2.xx ou même 2.04+, fonctionnent sur AMS 1.01 et 1.05 (et peut-être pour certaines sur AMS 1.00 92+, je ne peux pas tester).
>>Oui, mais programmer spécifiquement pour PedROM veut dire programmer pour une petite minorité de gens...
>Et ? De toute facon, pour le moment c'est impossible de programmer specifiquement pour lui. Ca veut dire que ça va le devenir ? Incompatibilité power !
Et puis, CC n'utilisait aucune librairie dynamique, donc ça n'a aucun rapport avec les librairies dynamiques ou statiques. C'est juste une question de relogements.c'est déjà ca! Imagine le gain de place si tigcclib était une lib dynamique .
Ben si, on peut aussi faire un jeu qui utilise ExtGraph sans savoir comment fonctionne genlib.L'inverse est aussi vrai!
J'avais dit cela de manière totalement objective. Ça ne sert à rien parce que au moins 95% des jeux sur TI-89/92+/V200 n'ont aucune difficulté à atteindre les 10 fps nécessaires pour obtenir la fluidité. ExtGraph est suffisamment rapide.
Donc plus de kernel en développement? Dans ce cas, il suffira que TI sorte une mise à jour qui empêche à PreOs et Universal OS de fonctionner, et hop, plus de mode kernel. Et donc les programmeurs en mode kernel, auxquels on a promis (à tord) qu'ils ne devront "jamais" recompiler leurs programmes, seront tous obligés à les recompiler... en mode _nostub.
Peut-être, mais la différence de taille ne vient pas de là.
Comme la taille horizontale a diminué dans mon exemple, ça ne donnera rien de lisible. Et puis, on peut faire exactement la même chose en _nostub.
Je parlais de la comparaison DLL Windows / DLL kernel, pas des DLLs _nostub.ha d'accord, dans ce cas la c'est en effet comparable.
En le compilant en une librairie dynamique? Thomas va te tuer si tu fais ça.
XDanger a écrit :
>>Et puis il y a des moyens simples de t'empêcher de faire ce que tu veux faire...
>GPL powa !
Certes. Mais ce que j'ai dit reste (par exemple passer tigcc.a au-dessus de 64K, même compressé; d'accord, on ne le fera pas exprès juste pour t'embêter, mais c'est possible, par exemple en incluant ExtGraph dans TIGCCLIB).
> Arg, tu m'en veux pour ces ramcalls ! Mais pourquoi tant de haine !
Je ne t'en veux pas à toi, j'en veux aux RAM_CALLs, ce qui n'est pas tout à fait la même chose... Et je ne les aime pas car ils sont lents, ils ne reflètent pas ce que l'utilisateur peut faire sous AMS 2.xx.
Un truc que tu pourrais faire, au lieu de rechercher le sprite, c'est un OO_GetAttr/OO_CondGetAttr des attributs 0x300, 0x301 et 0x302, dans OO_SYSTEM_FRAME (0xFF000000). Ca serait plus propre et plus rapide...
> Mais est-ce necessaire ?
Peu de programmeurs les utiliseront. Mais le but, c'est d'être une doc complète, la plus complète possible par les descriptions de fonctions et par le nombre de fonctions/variables. TIGCCLIB est très au-dessus de tiams.h/TIFS/la doc de TIFS là-dessus (sauf pour des topics qui n'intéressent presque personne dans TIGCC, notamment les FlashApps).
Le format kernel a des avantages, mais il a le lourd inconvénient de n'être utilisé que par une minorité, et de nécessiter un kernel (= pas de lancement possible sans kernel installé, ce qui n'est pas le cas des programmes _nostub, qui nécessitent parfois un décompresseur, mais c'est tout)...
>>En le compilant en une librairie dynamique? Thomas va te tuer si tu fais ça.
>Et c'est monsieur je désassemble des routines de gray qui nous dis ca! Peux-tu dire quel rapport il y a entre les deux phrases, s'il te plaît ?