Jump to content
Jagware

SebRmv

Level1
  • Content count

    1,553
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by SebRmv


  1. just a quick reply.

     

    I get the feeling that the blitter is not quite understood here =) ....If i get time this weekend i will trye to show some basics.

     

    to put $28000 to clear 2*32768 os not a "workaround" its the way it is supposed to be! since b_count is (ycount<<16|xcount) ...working in a window fasion.. the blitter will clear xcount pixels (32768. inner loop) ...then step back with A-step pixels in x direction.. step A1Ystep in y direction (outer loop) and then reenter the inner loop..

    ...?... no that made no sence at all =) sorry its friday afternoon, micro holiday! =P and I will post some stuff later explaining better.

    Last thing though.. I have never ever had the problem of a clrscreen missing pixels... so you must be dooing something backwards... but keep Hacking all of a sudden you find a usefull bug ;P

     

    cheers

     

    no, no I understand it is not a workaround. I had already the idea of doing that.

    I just said that the sentence of Jag_v8.pdf page 75 which said that

    "The counters both accept values in the range 1 to 65536 (encoded as 0)"

    is false: the value 0 does not encode 65536 !

     

    for the clear bug, it appears at byte 55028 or 57076 in my case (I have noticed that thanks to my alpine)

    I would be pleased if others could do the test and try to clean a buffer that is larger than say 60000 bytes and see if the buffer is entirely cleared (just write a check loop)


  2. J'ouvre un sujet sur le blitter, c'est un des points très fort de la Jag, aussi bien coté puissance que l'étendu de ces capacités peut rendre beaucoup de service.

    Avant certaines questions et réponses techniques, quelqu'un aurait une idée de ce que veut dire ceci (Trouvé dans la doc officielle Atari) :

    Single scan of polygon fills

    Parce que sauf erreur de ma part on parle bien de remplissage de polygones, mais le single scan me perturbe, ca veut dire quoi ?

    GT En train de cherché a comprendre :wacko:

     

    pour répondre en echo à ma relance d'un autre topic :P

    single scan = ligne de balayage

     

    en fait, si vous regardez votre routine de polygone, vous avez une boucle genre

     

    pour chaque segment [M,N] 
      tracer "virtuellement" le segment et remplir soit le tableau xmin, soit le tableau xmax

     

    et j'imagine après

     

    for y = ymin to ymax
      ...
      lit xmin et xmax pour y
      trace la ligne à l'ordonnée y de xmin à xmax
      ...
    done

     

    la deuxième boucle "for" utilise la technique de tracé par ligne de balayage

     

    mais le hic dans l'histoire, c'est que ça sert absolument à rien d'avoir deux boucles for!

     

    en effet, on peut aussi se débrouiller pour avoir un code comme suit:

     

    for y = ymin à ymax
      ...
      {calculer xmin et xmax}
      ...
      {tracer la ligne de xmin à xmax}
      ...
    done

     

    et on a ainsi viré le stockage des points en insérant le code de tracé

    (ça ne marche évidemment que pour les polygones convexes ;))

     

    (ce bout de) la doc Atari devrait maintenant prendre tout son sens, non :P ?

     

    edit: j'ai corrigé maintenant que je me suis souvenu de l'algo classique des démomakers des années 90

    ça devrait avoir plus de sens maintenant


  3. SCPCD found how to correct the bug, I should have use the A1_STEP register and the UPDA1 command.

     

    which one ?

     

     

     

    ok, so I played (again) a bit with the blitter and I found two bugs:

    - the first one is that contrary to the Atari documentation I have, a value of 0 for one of the B_COUNT registers is not 65536. I believed that for example $10000 would be 1*65536 but instead it is just 1 !

    The work around I have found is to put $28000 instead of $10000 to clear 2*32768 = 65536 words

     

    -the second one which is more problematic but which might be related to one of Orion_'s bug is that I have noticed that when clearing a buffer with the blitter, it happens that somewhere in the buffer it is not cleared. The problem is that it seems completely random. I will investigate a bit more this evening and maybe post an interesting piece of code for all of us.


  4. I am happy to announce the opening of a wiki dedicated to the Atari Jaguar knowledge.

     

    The url is http://jagopedia.atari.org/ .

     

    In order to contribute, you have to be sponsored by an active Jagopedia contributor.

    The current Jagopedia members are listed there:

     

    http://jagopedia.free.fr/jagopedia/index.p...ecial:Listusers

     

    Send your request for an account to jagopedia AT free DOT fr with your desired login.

     

    Do not hesitate to subscribe, Jagopedia needs you.

     

    Enjoy!

     

    Seb

     

    edit: Updated list of users


  5. For zoomed sprite, we've got three additionall paramters who are HSCALE, VSCALE and REMAINDER

     

    HSCALE and VSCALE got integer part and floating part, that's the 3 first bits who are the integer part ? Thats allows size from 0 to 7 and if we take the floating part we can zoom up until 7.99999999 that's it ?

     

    and the REMAINDER, what's it ?

    GT Turbo ;)

     

    This is used by the OP to render scaled sprites (the Atari documentation is your friend) :)

    After each line is processed, the corresponding 68k program (to what the OP do) is

     

    ;; d0.b = REMAINDER
    ;; d1.b = VSCALE
    ;; d2.w = HEIGHT
    ;; d3.w = DWIDTH
    ;; a0 = DATA
            sub.b   #1<<5,d0; subtract 1 to REMAINDER
            bcc.s   .done    ; if positive then that's all
    .adjust:
            add.w   d3,a0; next line in DATA
            subq.w #1,d2; decrement height by one 
            beq.s    .done; if height becomes 0 then stop
            add.b   d1,d0    ; add VSCALE to REMAINDER
            bcc.s    .adjust; until it becomes positive
    .done:
    ;; update values (REMAINDER, HEIGHT, DATA)


  6. L'installer en défnitive sur l'espace de Jagware serait une idée (il y a largement la place), tu en resterait le principal administrateur bien sûr.

     

    Et merci Seb de prendre le pas sur ma fainéantise.

    ah bah pourquoi pas

    bon, on peut tenter de l'héberger sur le compte que j'ai ouvert exprès chez free et si ça nous gave vraiment, on le bouge chez Jagware...


  7. Ça c'est une très bonne idée :yes:

     

    Aparté : ça ne pose pas de problèmes de faire tourner un wiki, surtout chez Free ? Je pense question sécurité, charge serveur, tout ça... (je n'y connais pas grand-chose là-dedans)

     

    je ne pense pas que ça soit un réel problème mais je ne m'y connais guère plus que toi :)

     

    Free offre la possibilité d'utiliser un moteur wiki à ses "abonnés" (wikini). Vu que j'aime vraiment pas son look, j'ai juste un peu bidouillé pour installer mediawiki à la place. Et apparemment, je ne suis pas le seul à l'avoir fait chez Free :D

     

    par contre, c'est clair qu'il y a des moments où ça rame grave mais à défaut de mieux...

     

    et sinon, j'ai commandé un compte (gratuit) Jagopedia chez Free :)

     

    Seb

     

    PS: c'est aussi pour ça que je fachise les droits d'édition sur le wiki en n'autorisant que les personnes inscrites à participer. Et comme ces personnes doivent m'avoir montré patte blanche avant, normalement je peux avoir confiance. (n'hésitez d'ailleurs pas à demander un compte, le succès de Jagopedia dépend de ses utilisateurs)


  8. Après discussion avec stabylo, on s'est dit que la Jaguar devrait avoir son wiki pour elle toute seule...

    Je me suis un peu battu avec mediawiki ce soir, et apparemment, l'installation a réussie!

    Je l'ai appelé Jagopedia et pour l'instant, ce wiki vit sur free.

    Que ceux qui veulent un compte me fasse signe car c'est nécessaire pour éditer les pages (et il n'y a que moi qui puisse vous créer un compte)!

    l'URL:

    http://jagopedia.free.fr/jagopedia/index.php?title=Main_Page

     

    Donc si vous voulez un compte:

    un petit PM avec le pseudo que vous désirez (un seul mot), (éventuellement votre vrai nom) et votre email

    (si tout marche bien, ça vous enverra alors un mail avec un password)

     

    edit: mise à jour url (pas encore disponible)


  9. Personnally, if I had to develop an assembler or a compiler, I won't write it in C (and even less in assembler by the way :P)

    As some of you know, I am fond of ocaml (caml.inria.fr) and I think it is really a cool language to write such tools.

    I think the algebraic data types and pattern matching constructs are really must have constructs to write a compiler. The easy memory management (thanks to the garbage collector) is also a great advantage compared to C/asm.

×