240

-

241

79: move.l graphlib:tonguelane0,a1 ; Destination Plan0
85: move.l graphlib:tonguelane1,a1 ; Destination Plan1

242

-

243

Orion_ a écrit :
Kevin> Project / Add files / extgraph.a / OK
raté, NOTEPAD et Fichier BATCH RULEZZZZZZZZZZZZZZZZ wink


Ben, alors notepad machin.bat et tu mets: tigcc toto.asm extgraph.a.
Et c'est bête de ne pas utiliser l'IDE. C'est bien plus pratique que Notepad!
bon, je sais, je sais, ch'ui trop une merde en asm
(même pas capable d'afficher un sprite mourn mourn)

voila mon, code, et sa marche pas, je pense pas mettre trompé
pourtant, j'ai essayer de tout bien suivre comment c'etait expliquer dans graphlib.h et sa marche po


Déjà, je ne pense pas que graphlib veuille des sprites au format BITMAP (ça m'étonnerait, vu qu'il faut passer la taille en argument), donc supprime les dc.w 32,32.

Ensuite: si tu veux, je peux te donner le code pour TIGCCLIB et ExtGraph, ça marchera certainement.
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é

244

Orion_ a écrit :
2: sprite0:
3: dc.w 32,32
4: dc.b $FF,$FF,$FF,$FF

j'imagine que tes sprites font 32².
le format de graphlib, la largeur c en octets, pas en pixels.
y'a pitet autre chose, g pas lu.

245

Kevin Kofler
a écrit : il faut passer la taille en argument

non c les coordonnées qu'il faut passer.

246

Orion_ post 241 > ba il a pourtant raison. c pasque y'a autre chose qui déconne wink

et aussi :
78:      movem.l	d0-d1,-(a7)			; Sauvegarde les registres
79:      move.l		graphlib::plane0,a1     	; Destination Plan0
80:      lea		1(pc),a0			; adresse sprite Plan0
81:      move.w		3,d0				; X
82:      move.w		4,d1				; Y
83:      moveq		#-1,d3				; Masque
84:      jsr		graphlib::put_sprite_mask
85:      move.l		graphlib::plane1,a1     	; Destination Plan1
86:      lea		2(pc),a0			; adresse sprite Plan1
90:      jsr		graphlib::put_sprite_mask
91:      movem.l	(a7)+,d0-d1			; Restaure les registres

si g bonne memoire, les regs ne sont pas détruits : inutile de recharger les coords.

P.S.
dsl pour les anti-slashs.. edite mon poste au pire.

247

Pourquoi perdez-vous votre temps à faire fonctionner graphlib alors que c'est très facile avec TIGCCLIB et ExtGraph?
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é

248

heu, franchement c compliqué de passer 3/4 valeurs et de faire un saut ?
je sais pas comment c'est avec TIGCCLIB et ExtGraph, mais je doute que ce soit bcp + épuré..

249

Voilà:
1. sprite.h:
sprite0:
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF

sprite1:
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $00,$00,$00,$00
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF
     dc.b $FF,$FF,$FF,$FF

2. sprites.asm:
     include     "romcalls.h" ;en attendant que je finisse le nouveau nostub.h pour TIGCC
     bra         _main        ;saute les données
     include     "sprite.h"

;plans dans tigcc.a (gray.s)
L_plane equ __L_plane
D_plane equ __D_plane

PutGraySprite MACRO
     movem.l  d0-d2/a0-a1,-(a7) ; Sauvegarde les registres
     move.l   L_plane(PC),-(a7) ; Destination Plan1
     move.l   D_plane(PC),-(a7) ; Destination Plan0
     move.l   #$FFFFFFFF,-(a7)  ; Masque
     pea.l    \2(pc)            ; Plan1
     pea.l    \1(pc)            ; Plan0
     move.w   #32,-(a7)         ; Hauteur (La largeur est donnée par le choix de
                                ; la routine - GraySprite32_BLIT. Il y a aussi
                                ; une version GraySprite8X_BLIT pour des tailles
                                ; arbitraires.)
     move.w   \4,-(a7)          ; Y
     move.w   \3,-(a7)          ; X
     bsr      GraySprite32_BLIT ; Équivalent de graphlib::[i][/i]put_sprite_mask
     lea.l    26(a7),a7         ; Restaure la pile
     movem.l  (a7)+,d0-d2/a0-a1 ; Restaure les registres
 ENDM

     xdef     _ti89
     xdef     _nostub

_main:
     PUSH_LCD_MEM

     ROM_CALL ScreenClear
     bsr GrayOn

     PutGraySprite     sprite0,sprite1,#15,#15

     ROM_CALL ngetchx

     bsr GrayOff

     POP_LCD_MEM

     rts


Et ça a le mérite de marcher. grin
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é

250

grrrr, tu m'obliges à vérifier ses routines pour défendre l'honneur du stub ! grin
je reviens tongue

251

ExtGraph est plus pratique de toute façon, parce qu'elle peut afficher les 2 plans en même temps (un seul appel de fonction au lieu de 2). tongue
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é

252


	include	"doorsos.h"
	include	"graphlib.h"
	include	"userlib.h"

	xdef	_main
	xdef	_ti89
	xdef	_comment

PutGraySprite MACRO
	movem.l		d0-d1,-(a7)
		lea		\1(pc),a0
		move.w		\3,d0   ; X			;note que c pas très malin d'utiliser une macro dans ce genre de cas, puisque tu pourrais éventuellement mettre un moveq ici, selon les cas
		move.w		\4,d1   ; Y			;note que c pas très malin d'utiliser une macro dans ce genre de cas, puisque tu pourrais éventuellement mettre un moveq ici, selon les cas
		moveq		#-1,d3
		move.l		graphlib::plane0,a1
		jsr		graphlib::put_sprite_mask
		lea		\2(pc),a0
		move.l		graphlib::plane1,a1
		jsr		graphlib::put_sprite_mask
	movem.l		(a7)+,d0-d1
	ENDM



_main:
	jsr		graphlib::clr_scr
	jsr		graphlib::gray4
	move.w		#1,graphlib::choosescreen		;ba et ça faudrait pitet pas l'oublier #roll#

	PutGraySprite sprite0,sprite1,#15,#15
	jsr		userlib::idle_loop
 
	jsr		graphlib::gray2
	rts
	
sprite0
 dc.w 32,32/8
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF

sprite1:
 dc.w 32,32/8
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $00,$00,$00,$00
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF
 dc.b $FF,$FF,$FF,$FF

_comment	dc.b	'voili voila voilou',0
	end

253

Kevin Kofler a écrit :
ExtGraph est plus pratique de toute façon, parce qu'elle peut afficher les 2 plans en même temps (un seul appel de fonction au lieu de 2). tongue

Je dirais plutot que graphlib est + souple : ça peut etre pratique pour des animations de mettre chaque plan à des coordonnées différentes, ou d'echanger les plans, etc tonguetongue

254

Tu peux le faire avec ExtGraph. Il suffit d'utiliser la version "normale" (pas la version "gray") des routines, qui fonctionne exactement comme celle de graphlib.
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é

255

[môvaise_fôa]je te crois, mais ça prend de la place toutes ces fonctions dans un seul programme eek[/môvaise_fôa]

256

Soit tu fais exprès, soit tu n'as pas compris le principe des librairies statiques!
Si tu n'utilises pas la fonction, elle n'y sera pas.
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é

257

Kevin Kofler a écrit :
Soit tu fais exprès, soit tu n'as pas compris le principe des librairies statiques! Si tu n'utilises pas la fonction, elle n'y sera pas.

ba évidemment, mais :
- si tu utilise la fn gray : tu es limité
- si tu utilise la fn normale : ça revient au meme que graphlib

P.S.
et, oui, je le faisais tout de meme expres : n'as tu pas vu [môvaise_fôa] [/môvaise_fôa] confus

258

-

259

le prog du post 251 marche parfaitement normalement.
celui de kevin fonctionne aussi. g pas testé, mais s'il le dit, c que c vrai.

260

-

261

ct juste pour ennuyer Kevin grin

262

-

263

-

264

-

265

graphlib::put_sprite2		equ	graphlib@000C
;--------------------------------------------------------------
;put_sprite(x,y,sprite,maskadress)
;
;   Puts the sprite pointed to by a0 on the screen 
;  at (d0,d1). The adress of the mask is a2
;
;Input:	d0.w = x
;	d1.w = y
;	a0.l = adress of the sprite
;	a2.l = adress of the mask
;	Sprite format is:
; sprite:	dc.w	5 	;-> height of the sprite
;		dc.w	1	;width in bytes
;		dc.b	%11111000
;		dc.b	%01110000
;		dc.b	%00100000
;		dc.b	%01110000
;		dc.b	%11111000
;
;	(...)
;
; mask:		dc.b	%11111000
;		dc.b	%11111000
;		dc.b	%11111000
;		dc.b	%11111000
;		dc.b	%11111000
;
;
;Output: nothing
;	NO REGISTERS DESTROYED
;--------------------------------------------------------------


extrait de graphlib.h..
faudrait que tu pense à regarder qd meme wink

266

sprite_plan_0:
dc.b 0,1,2,4,1,65..etc
dc.b 0,1,2,4,1,65..etc
dc.b 0,1,2,4,1,65..etc
dc.b 0,1,2,4,1,65..etc

sprite_plan_1:
dc.b 0,1,2,4,1,65..etc
dc.b 0,1,2,4,1,65..etc
dc.b 0,1,2,4,1,65..etc
dc.b 0,1,2,4,1,65..etc

mask:
dc.b xxxxxxxxxx
dc.b xxxxxxxxxx
dc.b xxxxxxxxxx
dc.b xxxxxxxxxx

267

ps
ne recharge pas 2 fois l'adresse du masque si c la meme !

et puis :
	lea	\1(pc),a0		; Plan1
	lea	\3(pc),a0		; Mask

est incohérent : tu charge l'adresse du sprite dans a0, et puis juste apres tu l'ecrase en chargeant l'adresse du masque.. wink

268

PutGraySpriteMask MACRO
	move.l	graphlib::plane1,a1
	lea	\1(pc),a0
	lea	\3(pc),a2
	move.w	\4,d0
	move.w	\5,d1
	jsr	graphlib::put_sprite2
	move.l	graphlib::plane0,a1
	lea	\2(pc),a0
	jsr	graphlib::put_sprite2
 ENDM

	PutGraySpriteMask	chat0,chat1,Mask_chat,#15,#15


g PAS testé.

269

-

270

tout copier dans un registre d'adresse confus
En préretraitre