120

boogerman
a écrit : Il appelle userlib::idle_loop qui aparamment a bessoin de l'auto int 1 du TIOS.


Si tu utilises les niveaux de gris de TIGCCLIB, tu peux remettre l'ancien auto-int 1 sans désactiver les niveaux de gris en écrivant son adresse en __gray_old_int1_hw1 et en __gray_old_int1_hw2.
En plus, toutes les foncions merdiques du TIOS (ie: drawstrxy) écrivent sur main_lcd et non pas sur le LCD actif...

http://tigcc.ticalc.org/doc/graph.html#PortSet
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é

121

godzil a écrit :
tiens boogerman, tu viens de me donner une id #héhé#

J'verrait bien si sa sera realisable grin


id??? t'entends quoi par là? fou
Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

122

Kevin Kofler a écrit :
Si tu utilises les niveaux de gris de TIGCCLIB, tu peux remettre l'ancien auto-int 1 sans désactiver les niveaux de gris en écrivant son adresse en __gray_old_int1_hw1 et en __gray_old_int1_hw2.


http://tigcc.ticalc.org/doc/graph.html#PortSet


Trop fort Kevin, t'as tjs la réponse à tout top. Cela fait combien de tps que tu prog sur TI?
Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

123

Bravo pour tes prog Boogerman (c la 1ere fois que je poste dans ce topic)

Au fait t'as d'autre projet ?

124

boogerman a écrit :
Trop fort Kevin, t'as tjs la réponse à tout top. Cela fait combien de tps que tu prog sur TI?

En BASIC sur TI-85, je ne sais plus exactement. En BASIC sur TI-89, 3 années environ. En assembleur, 2 années environ.
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é

125

arf, bcp de BASIC qd même ... smile
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

126

-

127

Slack
a écrit : Au fait t'as d'autre projet ?


Pas sur 68k, à part deux librairies que j'ai écrites pour l'emul. Tu peux regarder sur http://www.boogersoft.com/projects
Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

128

Bon la je suis en train de modifier les Makefiles pour utiliser tigcc.exe pour compiler mais j'arrive pas à dire a a68k.exe où se trouvent mes include files. J'ai essayé -Wa,-i.lib comme option sur tigcc.exe mais on dirait que ça ne marche pas... J'ai aussi essayé -I et -B
Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

129

Orion_ a écrit :
kevin, expert de GCC, n'ayant jamais apris le C, trop fort grin

J'ai appris le C, mais après l'assembleur. smile
boogerman a écrit :
Bon la je suis en train de modifier les Makefiles pour utiliser tigcc.exe pour compiler mais j'arrive pas à dire a a68k.exe où se trouvent mes include files. J'ai essayé -Wa,-i.lib comme option sur tigcc.exe mais on dirait que ça ne marche pas... J'ai aussi essayé -I et -B

-WA,-ilib (le . n'est pas faux, mais inutile - mais il faut absolument un A majuscule).
-Wa avec un a minuscule passe le paramètre à l'assembleur GNU, pas à A68k.
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é

130

07/27/2002 - v0.3

Mostly visual updates. It's still buggy as hell, but it sure looks nicer :^).

- Fixed wrong sprite_Y0 in 8x16 mode when Y<16.
- Added sprite X-flip and Y-flip support and optimized a little the sprite
reload routine.
- Added support for sprite transparency (background transparency still in the
todo list).
- Added grayscale (and made some nasty patches keep the debug working) using
gray.s from TIGCC (Thanks a lot Kevin Kofler for your help with this!). As a
consequence I (hopefully) removed all references to the $60010 port so it
should now run in HW2 calculators (in case anyone dares to try :^P ).
- Added different steps to init and deinit to give it a better style.
- Changed the Makefiles so that everything now compiles with tigcc.exe (no more
need for doorsos' buggy link.exe).
- Fixed compile error when DEBUG is set to 0.
- Corrected rom2ti.bat so that it also works with Win9x (thanks Orion_ for the
report and correction). The old version (WinNT) was saved as rom2ti.cmd.

Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

131

Et c ou qu'on dl ???
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

132

133

Kevin:
Je pense que je vais porter tout ça en nostub. D'après ce que j'ai lu dans ton tuto (qui est d'ailleurs très bon), il n'y a pas grand chose à réecrire. Le seul truc est comment je fais pour transformer une librairie dynamique en statique pour que l'éditeur de liens de TIGCC y compile automatiquement les fonctions que j'utilise?

Un autre truc: je pense que j'ai trouvé un bug dans tigcc.exe: lorsqu'un des sub-procès appelés (a68k, link, ...) trouve une erreur tigcc ne renvoie pas le code dans le CMD (on dirait qu'il retourne tj 0), donc si le tout fait partie d'un batch (tel un Makefile) la compilation ne s'arrête pas!
Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

134

Pkoi t'as pas utiliser graphlib::gray4 ? C du gaspillage de place !

135

Si le projet aboutitop
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com

136

PpHd
a écrit : Pkoi t'as pas utiliser graphlib::gray4 ? C du gaspillage de place !

Le fait d'utiliser TIGCCLIB a plusieurs avantages:
1. graphlib n'exporte pas le pointeur vers l'ancien int1, et on ne peut donc pas rediriger l'ancien int1 après avoir activé les niveaux de gris. (Oui, on peut faire graphlib@0013+4, mais ça ne marche probablement qu'avec la version de PreOs, et tu es sans doûte d'accord avec moi que c'est très sale de faire ça, surtout parce que graphlib est une librairie dynamique et peut donc changer à tout moment.)
2. Avec TIGCCLIB, on peut passer au double-buffering sans trop de travail supplémentaire si on a envie.
3. Avec TIGCCLIB, on peut passer au _nostub sans trop de travail supplémentaire si on a envie.
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é

137

>1. graphlib n'exporte pas le pointeur vers l'ancien int1, et on ne peut donc pas rediriger l'ancien int1 après avoir activé les niveaux de gris. (Oui, on peut faire graphlib@0013+4, mais ça ne marche probablement qu'avec la version de PreOs, et tu es sans doûte d'accord avec moi que c'est très sale de faire ça, surtout parce que graphlib est une librairie dynamique et peut donc changer à tout moment.)
Interet ?
Enfin bon c mon avis.

>2. Avec TIGCCLIB, on peut passer au double-buffering sans trop de travail supplémentaire si on a envie.
Avec graphlib aussi !

>3. Avec TIGCCLIB, on peut passer au _nostub sans trop de travail supplémentaire si on a envie.
Tu connais mon opinion la dessus.

138

boogerman a écrit :
Kevin: Je pense que je vais porter tout ça en nostub. D'après ce que j'ai lu dans ton tuto (qui est d'ailleurs très bon), il n'y a pas grand chose à réecrire. Le seul truc est comment je fais pour transformer une librairie dynamique en statique pour que l'éditeur de liens de TIGCC y compile automatiquement les fonctions que j'utilise?

La solution la plus simple est:
tigcc -ar lib.asm
Mais le problème est que dans ce cas, les fonctions ne pourront pas être séparées par l'éditeur de liens. Donc ce qu'il faut faire est faire un fichier ASM par fonction, et puis utiliser:
tigcc -ar lib0000.asm lib0001.asm lib0002.asm ...
Malheureusement, je me demande s'il ne faudra pas un fichier externe (librairie dynamique _nostub) pour lcdlib, vu que la taille totale de tes programmes est en ce moment de 68648 octets, et que la taille maximale d'un fichier sur TI-89/92+/V200 est de 65518 octets seulement. Le linkage statique réduira la quantité d'informations de relogements nécessaires, mais j'ai peur que ça ne suffira pas pour économiser 3130 octets.
Mais peut-être en désactivant le débogueur, on peut les économiser... À essayer.
Un autre truc: je pense que j'ai trouvé un bug dans tigcc.exe: lorsqu'un des sub-procès appelés (a68k, link, ...) trouve une erreur tigcc ne renvoie pas le code dans le CMD (on dirait qu'il retourne tj 0), donc si le tout fait partie d'un batch (tel un Makefile) la compilation ne s'arrête pas!

Je ne pense pas que c'est un bogue, je pense que tout simplement tigcc.exe ne gère pas les "exit codes" et c'est tout. Tu peux en discuter avec Sebastian Reichelt si tu veux (maile-lui à Sebastian@tigcc.ticalc.org). Mais la solution la plus pratique pour voir si ça a marché est:
del toto.89z
del toto.9xz
tigcc toto.asm
if not exist toto.89z goto failure
if not exist toto.9xz goto failure
echo Success
goto success
:failure
echo Error
:success
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é

139

PpHd a écrit :
>1. graphlib n'exporte pas le pointeur vers l'ancien int1, et on ne peut donc pas rediriger l'ancien int1 après avoir activé les niveaux de gris. (Oui, on peut faire graphlib@0013+4, mais ça ne marche probablement qu'avec la version de PreOs, et tu es sans doûte d'accord avec moi que c'est très sale de faire ça, surtout parce que graphlib est une librairie dynamique et peut donc changer à tout moment.) Interet ?

On peut changer entre _rowread et ngetchx sans devoir désactiver et réactiver les niveaux de gris.
>2. Avec TIGCCLIB, on peut passer au double-buffering sans trop de travail supplémentaire si on a envie. Avec graphlib aussi !

Il n'y a aucune fonction de double-buffering dans 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é

140

Bon bon allez c'est pas l'endroit pour refaire tout le débat _nostub vs kernel. C'est juste un choix que j'ai fait, bon où mauvais, 'y a pas trop de fondement.

Bon dans la release précedente il y avait un bug horrible qui causait que certains sprites soient corrompus. Je conseille fortement de télecharcher la 0.3.1:

07/28/2002 - v0.3.1

- Fixed very ugly bug (add.w #16*3,(atmp3) -> add.w #16*3,atmp3) (shame on me)
in ob_rld. This caused some sprites not to be shown properly when previous
sprites in the list were hidden (X=Y=0).

Kevin: de tts façons ça saute dans les move machin.9xz ../bin donc c'est pas grave, mais n'empêche que ce serait logique qu'en cas d'erreur il retourne 1 au shell. Je vais écrire à ce mec dont tu parles
Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

141

Kevin Kofler a écrit :
La solution la plus simple est:
tigcc -ar lib.asm
Mais le problème est que dans ce cas, les fonctions ne pourront pas être séparées par l'éditeur de liens. Donc ce qu'il faut faire est faire un fichier ASM par fonction, et puis utiliser:
tigcc -ar lib0000.asm lib0001.asm lib0002.asm ...


OK superbe
Malheureusement, je me demande s'il ne faudra pas un fichier externe (librairie dynamique _nostub) pour lcdlib, vu que la taille totale de tes programmes est en ce moment de 68648 octets


La taille est plus grande que l'on a bessoin, vu que les structures font partie du code alors que l'on pourrait les obtenir avec alloc (surtout celles de lcdlib qui font 26ko). En plus avec la compression...

N'y a-t-il pas un moyen de créer ces structures dynamiquement (comme en C)?



Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

142

Les ROM_CALLs HeapAllocPtr et HeapFreePtr sont l'équivalent de malloc et free en C.
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é

143

Kevin Kofler a écrit :
Les ROM_CALLs HeapAllocPtr et HeapFreePtr sont l'équivalent de malloc et free en C.


Si si je sais me je parlais pas de ça je parle de

static mystruct_t mystruct;

cela se crée lorsque le programme démarre et se détruit lorsqu'il finit, n'est ce pas?
Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

144

-

145

Orion_ a écrit :
boogerman: p koi tu a pas ajouter ttbin2str dans le repertoire ???
on ai pas censé avoir le repertoire de ticttool dans le path.

et pkoi ta pas virer userlib ??? c pas compliquer, y'a 2 ou 3 truc a changer (perso, moi je me le suis fait avec les sources et sa marche nikel)


ttbin2str ne fais pas partie de mon project. C'est un des trucs externes dont on a bessoin (tel tigcc, et je ne l'inclus pas dans le zip).

en ce qui concerne userlib, t'as raison j'ai oublié ce sera pour la prochaine version...

toutefois je ne considère pas cela prioritaire. je pense que mon premier but pour la prochaine version ce sera d'implementer cette histoire de LY dont je parlais dans le changelog de la 0.2
Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

146

boogerman a écrit :
Si si je sais me je parlais pas de ça je parle de

static mystruct_t mystruct;
cela se crée lorsque le programme démarre et se détruit lorsqu'il finit, n'est ce pas?

Non. Pas en mode _nostub. (En mode kernel, ça met la structure dans le segment BSS.)

Pour créer une structure dynamiquement, même en C, il faut utiliser malloc et free.
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é

147

-

148

Orion_
a écrit : ben précise alors qu'on en a besoin.


Extrait du readme:

Once you get the ROM, you will need to convert it to a format the TI can eat.
To do that, you must copy the ROM, say game.gb, to /bin and type:

>rom2ti.bat game.gb

(for this to work you will need to have ttbin2str.exe from TIGCC Tools Suite in
your path or in the current directory). This *should* create files rom00.9xs to
romxx.9xs wich you can upload to your calc and (optionaly) put in archive.
Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

149

Bon je pense que je vais travailler dans ceci pour la prochaine version. Éh oui, c'est en anglais

;-------------------------------------------------------------------------------
;some thoughts
;
;  The GameBoy LCD redraws itself from the top to the bottom. The LY register
;holds the line wich is currently being redrawn, and is incremented every
;H-Blank. It is not enough to draw the LCD at the V-Blank stage (the interval
;in wich the LY register is out of the screen - LY>144) since some games use
;this hardware feature to create all kind of effects. The simplest of them is
;a scrolling multi layer background. Since the GameBoy only has one background
;layer there is no easy way to create a background where each element scrolls at
;diferent speeds. Let's say we have a background composed of a road, trees and
;clouds like this:
;
;                                         LY
;clouds:	CCC        CCC            0
;
;trees:   ^   ^   ^   ^   ^   ^   ^   ^   36
;        /  /  /  /  /  /  /  / 
;         T   T   T   T   T   T   T   T
;road:   -------------------------------  90
;        | | | | | | | | | | | | | | | |
;
;(my ASCII art is terrible)               144
;
;We want that as Mario walks to the right the background scrolls to the left,
;but we want the road to scroll faster than the trees, and the trees to scroll
;faster than the clouds. How do we do that? Well we can scroll the background
;using the SCX and SCY registers, but that won't do since it will scroll the
;whole background the same way. So what we do is keep three coordinates (xroad,
;xtrees, and xclouds), then when LY is 0 we set SCX=xclouds, then we wait until
;LY is 36 and we set SCX=xtrees, then we wait until LY is 90 and we set
;SCX=xroad. That's it, the only thing left to do is add a diferent value to
;each one of xroad, xtrees and xclouds (say 8, 4 and 2 respectively) at every
;V-Blank and there you got your multilayer background! (and a pain in the ass to
;emulator programmers :^)
;
;  The brute force solution for this is to redraw the whole LCD for each LY, but
;that is totally unacceptable since it would imply 144 redraws per LCD cycle.
;
;  A better approach is to redraw only what has changed. Usually sprite data is
;only modified during V-Blank, and most of the time nothing will change from one
;line to another, so no extra calculation should be needed...
;
;  In any case, we will need an extra buffer wich will be copied line by line to
;the screen buffer

Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

150

Kevin Kofler a écrit :
Non. Pas en mode _nostub. (En mode kernel, ça met la structure dans le segment BSS.)

Pour créer une structure dynamiquement, même en C, il faut utiliser malloc et free.


Non, si tu le mets en static, il part dans le segment data, donc il est alloué statiquement même en mode kernel. Mais tu peux enlever le static sans pb smile

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)