1

Salut,

Est-ce quelqu'un sait ou je pourrais trouver toutes les valeurs de CTL0 et CTL1 que l'on trouve dans les SCB ?

Là par exemple je connais juste 0x10 (active les données pour zoom) et 0x08 (active la réutilisation de la palette) et c'est tout. Et impossible de trouver une liste exhaustive. J'aimerais par exemple activer le tiltling et le stretching dans mes SCB,,,

Merci !

2

(désolé si ça fait pub mais ça répond à la question)

http://devlynx.ti-fr.com/?pag=9&cat=43 pour le fonctionnement du moteur de sprite, tu as les liens vers la doc mémoire...

SPRCTL0 : http://devlynx.ti-fr.com/?pag=17&act=dtl&adr=0xFC80
SPRCTL1 : http://devlynx.ti-fr.com/?pag=17&act=dtl&adr=0xFC81
avatarWebmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

3

Ah non mais tu as totalement raison de faire ta pub.

C'est exactement ce que je cherchais smile (et bizarrement c'est quasi impossible de trouver ces infos sur le web anglophone...).

edit : par contre je suis un peu circonspect par les infos (ou leur traduction) de CTL0, en effet pour les bits 0, 1, 2 tu donnes :
"Sprite type correspond à : 7=ombré, 6=XOR ombré, 5=sans collisions, 4=normal, 3=bordure, 2=bordure ombré, 1=arrière plan, 0=arrière plan ombré."
Or moi quand je mets 7 (111) c'est pour activer la transparence, mais je ne sais plus trop ou j'avais trouvé l'info.

4

C'est la traduction de la doc papier officielle (dont tu peux trouver les scans sur atariage)
avatarWebmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

5

Woké donc ombré = transparence chez Atari grin

6

Ne me dis pas que tu découvres que les docs Atari ne doivent pas être prises au pied de la lettre ? cheeky
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

7

Si... aveugle

(et j'ai surtout tout appris en zieutant les tuto ici et sur atari age ainsi que des sources homebrew ^^)

8

oui, le "ombré" c'est la couleur d'index 0 qui sert de transparence
le "XOR" c'est un xor bit à bit de l'index de palette
le "bordure" c'est pour ne garder que les pixel extérieurs (le premier à gauche et le premier à droite de chaque groupe de pixel)
avatarWebmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

9

Sinon j'essaye de m'amuser un peu avec stretch et tilt, enfin surtout le premier, quelqu'un a déjà essayé de faire un effet pseudo 3d, un peu dans le style du sol de electrocop ? (ou du niveau de Ryu dans SFII)

10

oui, déjà essayé : http://www.mirari.fr/peMm

le truc "con" c'est que le moteur ne gère aucune rotation... mais avec stretch/tilt tu peux faire une perspective...
avatarWebmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

11

PS : il y a une lib "bêta" dans newcc65 pour dessiner des triangles (en vue de la réalisation d'un moteur troidé) si ça t'intéresse

POLY.M65
* Note: This routine is buggy and not yet perfect working ! Only experimental !! YOU've been warned !! **************** * solid triangle * (x1,y1),(x2,y2),(x3,y3) * draw * A * /\ * / \ * / \ * B / \ B' * \ \ * \_ \ * \_ \ * \_ \ * \_ \ * \_ \ * \_ \ * \_\ * C * * two triangles/sprites : 1) ABB' 2) BB'C * **************** * * x e ]-80,80[ * y e [0,101] xref popax,ScreenBase x1 equ ptr1 y1 equ ptr1+1 x2 equ ptr2 y2 equ ptr2+1 x3 equ ptr3 y3 equ ptr3+1 bsszp tiltAB ds 2 tiltBC ds 2 tiltAC ds 2 text triangle:: jsr popax sta line_scb_color sta line_scb2_color * * sort points * jsr popax sta tmp1 stx tmp1+1 ldy #5 _0 lda (tmp1),y sta x1,y dey bpl _0 lda y2 cmp y1 bcs _1 lda x1 ldx x2 sta x2 stx x1 lda y1 ldx y2 sta y2 stx y1 _1 lda y3 cmp y1 bcs _2 lda x1 ldx x3 sta x3 stx x1 lda y1 ldx y3 sta y3 stx y1 _2 lda y3 cmp y2 bcs _3 lda x3 ldx x2 sta x2 stx x3 lda y3 ldx y2 sta y2 stx y3 _3 * ldy #0 sec lda y2 sbc y1 sta $fc56 sta line_scb_ysize+1 stz $fc60 sec lda x2 sbc x1 bpl _4 dey eor #$ff ina _4 sta $fc62 stz $fc63 _5 bit $fc92 bmi _5 tya bmi _6 lda $fc53 sta tiltAB lda $fc54 sta tiltAB+1 bra _7 _6 sec lda #0 sbc $fc53 sta tiltAB lda #0 sbc $fc54 sta tiltAB+1 _7 * ldy #0 sec lda y3 sbc y1 sta $fc56 stz $fc60 sec lda x3 sbc x1 bpl _8 eor #$ff ina dey _8 sta $fc62 stz $fc63 _9 bit $fc92 bmi _9 tya bmi _10 lda $fc53 sta tiltAC lda $fc54 sta tiltAC+1 bra _11 _10 sec lda #0 sbc $fc53 sta tiltAC lda #0 sbc $fc54 sta tiltAC+1 _11 * ldy #0 sec lda y3 sbc y2 sta $fc56 stz $fc60 ina sta line_scb2_ysize+1 sec lda x3 sbc x2 bpl _12 eor #$ff ina _12 sta $fc62 stz $fc63 _13 bit $fc92 bmi _13 tya bmi _14 lda $fc53 sta tiltBC lda $fc54 sta tiltBC+1 bra _15 _14 sec lda #0 sbc $fc53 sta tiltBC lda #0 sbc $fc54 sta tiltBC+1 _15 *************** lda x1 sta line_scb_x lda y1 sta line_scb_y lda #$80 sta line_scb_xsize lda #1 sta line_scb_xsize+1 lda tiltAB+1 bpl _16 lda tiltAC+1 bpl _17 sec lda tiltAC sbc tiltAB lda tiltAC+1 sbc tiltAB+1 bcs _18 lda tiltAB sta ptr1 lda tiltAB+1 sta ptr1+1 lda tiltAC sta ptr2 lda tiltAC+1 sta ptr2+1 bra _19 _18 lda tiltAC sta ptr1 lda tiltAC+1 sta ptr1+1 lda tiltAB sta ptr2 lda tiltAB+1 sta ptr2+1 _19 sec lda ptr2 sbc ptr1 sta ptr2 lda ptr2+1 sbc ptr1+1 sta ptr2+1 bra _20 _17 lda tiltAB sta ptr1 lda tiltAB+1 sta ptr1+1 sec lda tiltAC sbc ptr1 sta ptr2 lda tiltAC+1 sbc ptr1+1 sta ptr2+1 _20 bra _21 _16 lda tiltAC+1 bpl _22 sta ptr1+1 lda tiltAC sta ptr1 sec lda tiltAB sbc ptr1 sta ptr2 lda tiltAB+1 sbc ptr1+1 sta ptr2+1 bra _23 _22 sec lda tiltAC sbc tiltAB lda tiltAC+1 sbc tiltAB+1 bcs _24 lda tiltAC sta ptr1 lda tiltAC+1 sta ptr1+1 lda tiltAB sta ptr2 lda tiltAB+1 sta ptr2+1 bra _25 _24 lda tiltAB sta ptr1 lda tiltAB+1 sta ptr1+1 lda tiltAC sta ptr2 lda tiltAC+1 sta ptr2+1 _25 sec lda ptr2 sbc ptr1 sta ptr2 lda ptr2+1 sbc ptr1+1 sta ptr2+1 _23 _21 lda ptr1 sta line_scb_tilt lda ptr1+1 sta line_scb_tilt+1 lda ptr2 sta line_scb_stretch lda ptr2+1 sta line_scb_stretch+1 ;> MOVE x3,line_scb2_x ;> MOVE y3,line_scb2_y ;> MOVEI $180,line_scb2_xsize ; $180 ;> _IFMI tiltBC+1 ;> _IFMI tiltAC+1 ;> CMPW tiltBC,tiltAC ;> _IFLT ; (-tiltAC)<(-tiltAB) ;> MOVE tiltBC,temp ;> MOVE tiltAC,temp1 ;> _ELSE ;> MOVE tiltAC,temp ;> MOVE tiltBC,temp1 ;> _ENDIF ;> NEGW temp ;> NEGW temp1 ;> SUBWABC temp,temp1,temp1 ;> _ELSE ;> MOVE tiltAC,temp ;> SUBWABC tiltBC,tiltAC,temp1 ;> NEGW temp ;> _ENDIF ;> _ELSE ; (tiltBC>0) ;> _IFMI tiltAC+1 ;> MOVE tiltBC,temp ;> NEGW temp ;> SUBWABC tiltAC,tiltBC,temp1 ;> _ELSE ;> CMPW tiltBC,tiltAC ;> _IFGE ; AC>=BC ;> MOVE tiltAC,temp ;> MOVE tiltBC,temp1 ;> _ELSE ;> MOVE tiltBC,temp ;> MOVE tiltAC,temp1 ;> _ENDIF ;> SUBWABC temp1,temp,temp1 ;> NEGW temp ;> _ENDIF ;> _ENDIF ;> MOVE temp,line_scb2_tilt ;> MOVE temp1,line_scb2_stretch ;> lda #$D0 ;> sta line_scb2 lda ScreenBase sta $fc08 lda ScreenBase+1 sta $fc09 lda #<line_scb sta $fc10 lda #>line_scb sta $fc11 lda #1 STA $FC91 stz $fd90 wait STZ $FD91 bit $fc92 bne wait STZ $FD90 rts ************************************************** line_scb dc.b $c0,$80|$30,0 dc.w 0,dotimage line_scb_x dc.w 0 line_scb_y dc.w 0 line_scb_xsize dc.w $100 line_scb_ysize dc.w $100 line_scb_stretch dc.w 0 line_scb_tilt dc.w 0 line_scb_color dc.b $03 line_scb2 dc.b $d0,$80|$30,0 dc.w 0,dotimage line_scb2_x dc.w 0 line_scb2_y dc.w 0 line_scb2_xsize dc.w $100 line_scb2_ysize dc.w $100 line_scb2_stretch dc.w 0 line_scb2_tilt dc.w 0 line_scb2_color dc.b $e dotimage dc.b 2,$11,0
avatarWebmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

12

Merci !

Pas mal l'effet, je suis en train de voir si y a moyen de faire un sol comme ca (avec un seul sprite donc, et chaque partie est stretchée et tiltée selon sa position - y a qq chose d'assez similaire sur le sol d'electrocop) :
sf2-01-ryu.jpg

(pas de projet de jeu de combat en vue, c'est juste pour le fun pour le moment)

Sinon je vais tester ton code pour dessiner des triangles, mais je ne me vois pas faire un jeu en 3d sur lynx ceci dit wink

13

(juste pour rendre à césar... le code des triangles n'est pas de moi)
avatarWebmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

14

(ton image me fait penser qu'il y aurait un joli truc à faire avec des rasters smile)
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo