>Dark Angel: * quand TI nous sortira un nouveaux HW ou une nouvelle ROM, les ancient jeux continueront a fonctionner quand le kernel et les libs auront ete adapté. les nostub nececiterons une recompilation, voir plus si des ROM_CALLs sont modifié (en C, il suffit d'utiliser des marcos, mais en asm, ca peut foutre un beau bordel)
>BlueZ: Bon, alors on imagine un instant que graphlib et gray4lib aient été statiques : à l'apparition du HW2, plus aucun jeu n'aurait affiché de niveaux de gris, alors que grâce au fait que ces librairies sont statiques [(je suppose que tu voulais dire: "dynamiques")], il a suffit d'en proposer des versions modifiées pour que tous les jeux qui les utilisaient fonctionnent correctement sans nécessiter l'intervention de chaque programmeur.
L'argument de compatibilité est cité souvent... Cependant:
1. Quand AMS 2 est sorti, de nombreux jeux en assembleur (à cette époque pratiquement tous en mode kernel) n'ont plus marché, alors que CReversi, un jeu en _nostub publié avant la sortie de AMS 2.03, a fonctionné sans modifications. L'important est surtout que les jeux ou programmes soient programmés proprement. Dans les sources de kernels et de jeux pour kernel, on trouve généralement au moins autant de saletés que dans les sources en _nostub. (Je sais que mes programmes résidents en mémoire ne sont pas un bon exemple en ce qui concerne la programmation propre, mais je n'ai utilisé les adresses absolues que là où je n'ai pas eu le choix.)
2. Le premier jeu en assembleur de ma connaissance à marcher sur HW2 AMS 2 était CReversi, un jeu en _nostub (et de taille inférieure à 8 KO).
3. Il y a eu une longue période où les kernels n'ont pas marché sur HW2 AMS 2 (jusqu'à la sortie du HW2Patch de JM). Pratiquement tous les programmes en assembleur dépendaient des kernels. Le résultat: Il n'y avait pratiquement aucun programme ou jeu en assembleur qui tournait sur HW2 AMS 2. Les seuls jeux à faire exception à cette règle étaient CReversi et CBlaster, programmés en C _nostub par Zeljko Juric.
4. Pour les niveaux de gris, de nombreux programmes pour kernel (tetris par exemple) n'ont plus marché avec les nouvelles librairies pour HW2 parce qu'ils partaient du principe que plane0=LCD_MEM.
5. TI jusqu'à présent n'a modifié des ROM calls que pour des changements au niveau interne. Les seuls changements incompatibles dont je suis au courant: des fonctions EM_ ont été supprimées pour ne pas user inutilement la ROM Flash lors du passage à AMS 2, et les fonctions OSVRegisterTimer et OSVFreeTimer ont été supprimées dans AMS 2.04 parce que ces timers n'existent plus dans l'architecture AMS.
Bref, on n'est jamais à l'abri des modifications internes, quelle que soit la méthode de programmation employée (kernel ou _nostub).
Quant à l'argument de compatibilité pour les kernels, il doit faire ses preuves avec les prochaines versions de AMS. Pour l'instant, les kernels n'ont pas un passé très heureux en cette direction-là, et je trouve donc que ce n'est pas une très bonne idée de dire en ce moment que les programmes pour kernel sont plus compatibles que les programmes en _nostub.
[edit]Edité par Kevin Kofler le 20-06-2001 à 18:06:39[/edit]