90

-

91

Voici un extrait de driver smile
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;ROUTINE DE SCROLLING ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; decall:                                 ;routine de scrolling dans un sprite de                                         ;512*512         lea     virt_screen1,a0         ;on charge les 2 écrans virtuels et         move.l  virt_screen_adress3,a1  ;les adresses des 2 grands sprites         lea     virt_screen2,a2         move.l  virt_screen_adress4,a3         move.w  posymap,d4         lsl.w   #6,d4                   ;y*nb de bit du sprite         add.w   d4,a1                   ;on ajoute au sprite         add.w   d4,a3         move.w  posxmap,d5         move.w  d5,d2         lsr     #5,d5                   ;x/32 (car l)         lsl.w   #2,d5                   ;*4         add.w   d5,a1                   ;on ajoute au sprite         add.w   d5,a3         and.w   #31,d2                  ;on prend le reste         moveq   #32,d5         sub.w   d2,d5                   ;on fait 32-reste         moveq   #119,d7                 ;nb de ligne d'un écran (-8 :) ) retourdecall:         moveq   #6,d0                   ;nb de bits en largeur (-2 :) ) boucledecall:         move.l  (a1)+,d1                ;met un l du sprite dans d1 et d3         move.l  (a3)+,d3         lsl.l   d2,d1                   ;decallage vers la gauche         lsl.l   d2,d3         move.l  d1,(a0)                 ;on remet dans les ecrans virtuels         move.l  d3,(a2)         move.l  (a1),d1                 ;on met un l dans d1 et d3         move.l  (a3),d3         lsr.l   d5,d1                   ;on decalle vers la droite         lsr.l   d5,d3         or.l    d1,(a0)+                ;on fait un "ou" vers les ecrans virtuel         or.l    d3,(a2)+         dbf     d0,boucledecall         lea     2(a0),a0                ;on ajoute aux ecrans virtuels         lea     2(a2),a2         lea     36(a1),a1               ;on avance sur le sprite         lea     36(a3),a3         dbf     d7,retourdecall         ;et c'est reparti pour un tour ;)         rts
En préretraitre

92

-

93

franchement, c meme po un centieme de la source sans rigoler grin
En préretraitre

94

-

95

Orion : <<il vaut mieux pas metre:
pea.l (93)+(0)*$10000
pea.l (93)+(160)*$10000
pour ne pas ce tromper en comptant pour : lea 10(a7),a7 ???
>>

Si tu veux, c'est pareil... magic
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

96

nan nan l'asm n'a que des avantages smile
c pas parce que il y a beaucoup de lignes que c tres dur smilecouic
En préretraitre

97

-

98

Orion_ a écrit :
Nitro, essaye de modifier AS pour qu'il integre cette macro, on dirait qu'elle est plus légére.


Non c'est exactement la meme chose... ton programme est plus petit avec A68k parce qu'il fait des optimisations automatiques que AS ne fait pas. smile
So much code to write, so little time.

99

-

100

http://tigcc.ticalc.org/doc/a68k.html#exts

Et si tu n'aimes pas les optimisations, dans: Project / Options / A68k Switches rajoute -n. Mais c'est assez bête comme idée de supprimer les optimisations.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

101

-

102

103

-

104

Tu as acquis ConText ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

105

Orion_, 102> j'ai jamais trouvé de tuto comme ça... peut-être est-ce pour ça que j'ai jamais eu le courage de vraiment me mettre à l'ASM...
y'a plein de docs sur le net... mais il faut reconnaitre que j'en ai plus appris sur le fonctionnement de la TI que sur l'ASM en les lisant sad

mais bon...


SINON, JE SUIS SQUALE92, AVEC UN 'E' !!!!!!!!!!!!!!!!!!
(pas comme le personnage de ff !)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

106

-

107

pas de pb smile
je t'en veux pas smile je fais pareil des fois grin
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

108

-

109

connaissant la réputation de WH, je testerai pas à ta place grin
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

110

-

111


Kevin>Non, c'est celui donné avec TIGCC et il n'est pas dépassé.
Si tu veux qu'on mette des trucs à jour dedans, dis-nous quoi. Je ne vois pas grand chose à changer. Tout ce qu'il y a dedans fonctionne en tout cas.

copy preos/include/* tigcc/include/asm rotfl

vo mieux pas imaginer les sources de Chrono f et genlib

Tu peux downloader les vieilles sources de Chrono sur http://www.timetoteam.fr.st rubrique download/docs
C'est pas plus complique qu'en C. Il suffit d'etre tres rigoureux.

112

-

113

Lis les exemples d'abord ! Et puis c'est juste comme ca que je te montre les sources.

114

Xlib est open source.. tu pouras peut etre apprendre des choses dedans... et comme cela tu pouras faire tes propres routines...
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

115

-

116

-

117

Orion_ a écrit :
BON, alors genlib VERSION 0.99.20e marche (enfin) sur ma 89
((g pas pris la beta car elle marche po))

La vieille version marche ? Qu'ést-ce que j'ai encore fait moi dans genlib ? triso

quand je compile un prog d'exemple pour genlib en ASM
ca marche aussi
les exemples en C fonctionne eux aussi
sauf quand je les compiles moi même

cool

Explication: gendisk.c fonctionne quand je le compile moi même
mais genscr16.c ne fonctionne pas quand je le compile moi même
(crash intercepted)
surement parceque genscr16.c fait appel a un fichier externe
gendat16.asm pour inclure les .lvl et .bin
vala, c t juste comme ça pour signaler

Tu compiles avec : tigcc genscr16.c gendat.asm ?

sinon, dans l'exemple gentut.asm, pkoi on utilise 2 DScreen ?
ou pourrait pas en utiliser qu'un seul
car de toute façon tout est redessiner a chaque fois
g pas trop bien compris sur ce plan la.

C'est le principe du double-buffer. Lorsque tu reaffiches la scene, ben la scene que tu es en train d'afficher est pas belle. Si on l'affichait directement on verrait l'etape de construction s'effectuait, bref ca serait pas beau, et ca clignoterait a donf.
Lorsque tu effaces pour reafficher, cela se voit.
Il faut donc afficher une image, et en construire une autre.
D'ou la necessite de deux DScreen, ok ?

en fait y'a 3 ou 4 truc que g pas trop compris: top.gif=compris ;; confus.gif=pas compris


; Initialisation de Genlib top.gif
; Allocation des ecrans DScreen top.gif(pour le premier DScreen) ;; confus.gif(pour le second DScreen)

Cf plus haut

; Initialisation des DScreens top.gif
; Creation d'un plan top.gif
; Fixe les coordonnées du plan top.gif
; Met a jour les coordonnées du plan top.gif
; Lecture clavier top.gif
; Gestion de Haut/Bas/Gauche/Droite top.gif
; Sauvegarde les nouvelles coordonnées top.gif
; On affiche le plan en tant qu'arriere plan confus.gif

On affiche le plan quoi. On l'affiche.
Tu peux l'afficher avec transparence aussi, c'est pour ca que je fais la difference.

; Do the double-buffer confus.gif
; On attend pour avoir une frequence de l'ordre de 30 Hz confus.gif

[/cite]
Ben il faut permutter les deux ecrans. L'ecran que l'on a fini de dessiner, on decide de l'afficher, et l'ecran precedemment affiche va servir comme base pour redessinner le nouveau. Ensuite on fixe une frequence fixe pour le jeu (histoire d'eviter d'avoir des ralentissements et des accelerations sans arret).
Compris ?

118

-

119

Orion_ a écrit :
oui, et sa marche pas (que ce soit en rajoutant -O2 a la fin ou sans)

Je ne sais pas d'ou vient le probleme.
au fait tu testes comment ?
Tu prends genlib-v0.99.22b sur ta calc et les headers de genlib-0.99.20e ?
Ou tout pareil ?


sinon, bravo pour GenLib
en fait c bien plus qu'une simple lib graphique
car sa gerre tout, le temps, le clavier, les plan, le gray, le link, etc...... c bien mieux que d'utiliser plein d'autre lib séparer.

Enfin quelqu'un qui a compris. cool

120

-