bombseb

Toutes mes réponses sur les forums

  • En réponse à : Trigo en asm 68k

      #345764

      Bon,

      Pour le swap, je vient de comprendre…
      Il fait un swap pour ne pas avoir à faire deux lsl de suite :
      lsl.l #8,d1
      lsl.l #8,d1

      après le swap, la partie basse de d1 n’est pas significative pour le divu (d’où le clr.w en commentaire)

      Par contre je ne pige toujours pas pourquoi il met -1 dans d2 à la place du 40500

      En réponse à : Trigo en asm 68k

        #345762

        Salut,

        Je remonte ce thread, déjà pour dire que ton algo fonctionne très bien (compile du premier coup avec AsmOne), c’est très rapide (quasi instantané), mais aussi pour poser une question.
        Je suis tombé sur une routine de Photon de Scoopex pour faire la même chose.

        ;Bhaskara sine approx by Photon/SCX
        ;note that this is better than std parabolic so no 2% deviation \o/
        ;sin x=4x(180-x)/(40500-x(180-x))
        ;changed from 180 to 126 steps for 180 degs
        
        steps2	=126	;orig 180
        ampl	=-1	;orig 40500 => $1bd0 ampl, -1 => $1080 ampl, 11909=$7ff7 ampl
        
        B:
        	lea Sin(PC),a1
        	moveq #steps2-1,d0
        .l:	bsr.s BSine
        	move.w d1,(a1)+
        	neg.w d1
        	move.w d1,steps2*2-2(a1)
        	DBF d0,.l
        	RTS
        
        BSine:	;d0.w=x (0..steps2=0..179 degs)
        	moveq #steps2,d1
        	sub.w d0,d1
        	mulu d0,d1		;x(180-x)
        	moveq #-1,d2		;fine-stretch amplitude with this.
        	sub.w d1,d2
        	swap d1			;*4*16384ampl/2, lsl.l #8,d1 => 4*64ampl
        ;	clr.w d1		;@only nec at high amplitudes AND high coord/scr rez.
        	divu d2,d1		;check if rest works as autorandomvalues. ;)
        	RTS
        Sin:
        	blk.w steps2*2,0
        E:

        Visiblement la formule de base est différente, méthode Bhaskara : sin x=4x(180-x)/(40500-x(180-x))

        Je n’arrive pas à comprendre pourquoi ces deux lignes :

        – Pourquoi il met -1 dans d2 ? il est pas sensé mettre 40500 ??
        moveq #-1,d2 ;fine-stretch amplitude with this.

        – Pourquoi ce swap ? De plus je ne comprend le commentaire…
        swap d1 ;*4*16384ampl/2, lsl.l #8,d1 => 4*64ampl

        Le registre d1 est utilisé pour faire une division, pourquoi est t-il d’abord swappé ? J’aurai compris qu’il fasse un lsr à la place du swap, mais là avec le swap, il va y avoir des trucs dans la partie haute de d1 ce qui risque de faire du caca avec le divu….pourtant ca fonctionne

        En réponse à : Debugger ASM-One

          #345671

          Yes, merci, j’ai commencé à lire la doc mais c’est quand même moins intuitif que le debugger d’AsmOne…

          En réponse à : Trigo en asm 68k

            #311645

            Yes, très bien expliqué merci beaucoup Sam…Il me manquait surtout cette formule : 4x(1-|x|/pi)/pi que je ne connaissais pas
            Je vais pouvoir m’amuser maintenant 🙂

             

             

            En réponse à : Trigo en asm 68k

              #311625

              Je vais encore t’ennuyer un petit peu 🙂

              Comment tu arrive de ca : 65536*4*(x/512)*(1-abs(x)/512)

              à ca  x*(512-abs(x)) ?

              Désolé ca fait un bail que j’ai pas fait de maths….

              En réponse à : Trigo en asm 68k

                #311624

                Oui c’est cool merci, j’aurai pas eu l’idée de voir le truc comme ca 🙂

                 

                En réponse à : Trigo en asm 68k

                  #311620

                  Excuse moi je ne comprend pas cette phrase :

                  « Ta table fait 1024 entrées pour 0..2PI, donc pi (en x) vaut: 512, et 1 en y est 65536.  »

                  Pourquoi tu remplace pi par 512 ? -> C’est bon j’ai compris 🙂

                   

                  En réponse à : Trigo en asm 68k

                    #311619

                    Wow impressionnant 🙂

                    Bon je vais devoir digérer tout ca alors…

                    Merci beaucoup

                     

                    Pour info j’ai touvé ca aussi, c’est intéressant : https://amycoders.org/tutorials/sintables.html

                     

                     

                    En réponse à : Trigo en asm 68k

                      #311617

                      Salut Sam,

                      On va dire que j’aimerais générer une table de 1024 valeurs de sinus dont les valeurs vont de 0 à 65535 (une table de word donc)

                      Flottant ou point fixe, peu importe….une approximation devrait suffire pour un sine scroller…

                      Je viens de tomber là dessus justement  : https://amycoders.org/sources/sinegensource.html

                       

                      En réponse à : Problème avec ASMOne

                        #311520

                        Merci 🙂

                         

                        En réponse à : Problème avec ASMOne

                          #311506

                          aaaah merci l’ami !! J’avais pas vu ce truc là…

                           

                           

                          En réponse à : L'Amiga pour les nuls

                            #213861

                            Et pour ma carte de 8go t’a une idée ?

                             

                            NdBigdan : pas deux posts à la suite SVP, il suffisait d’éditer ton post précédent.

                            En réponse à : L'Amiga pour les nuls

                              #213860

                              ah bon ?
                              Je laisse WinUAE tourner ? Ca peut durer combien de temps ?

                               

                              En réponse à : L'Amiga pour les nuls

                                #213856

                                Je viens de réessayer avec une carte CF de 4go mais j’ai le même problème : Volume is validating…

                                 

                                En réponse à : L'Amiga pour les nuls

                                  #213851

                                  J’ai trouvé ce tuto http://obligement.free.fr/articles/installation_amigaos_cf_disquedur_winuae.php

                                  Mais j’ai pas AmigoOS 3.9 … vous savez pas comment faire autrement svp ?

                                   

                                15 sujets de 1 à 15 (sur un total de 58)

                                Amiga Impact