Jump to content
Jagware

RaZ

Root Admin
  • Content count

    402
  • Joined

  • Last visited

Everything posted by RaZ

  1. Les Jagpads et comment les traiter : ------------------------------------ Pour les traiter, traiter les bien !!! Trève de plaisanterie(stupide), cet article va vous expliquer comment récuperer les valeurs des pads (0 et 1) et aussi ceux des autres pads (Team Tap), pour une raison simple c'est pas plus difficile voire c'est exactement pareil !!! En premiere partie, on va vous expliquer comment faire, sur la seconde partie, comment optimiser tout cela et oui sur ce site on vous dit même comment faire des vrais jeux Jag !!! YES !!! Et on envoie la sauce : Pour faire cela c'est tres simple, sisi !! On dispose de deux registres : Appelation officiel Atari, adresse JOYSTICK ,$f14000 JOYBUTS ,$f14002 Vu le nombre de pad et le nombre de possibilités (comptez les touches d'un pad multiplié par 8 (Pour deux team taps !)), Atari a prévu un truc beaucoup plus simple coté gestion. Un registre permet d'indiquer les infos qu'il nous faut, suivant le pad. Ces infos sont divisés en deux parties, d'abord suivant le pad qu'on veut interroger et ensuite la colonne. Non pas d'erreur les pads son divisés en colonnes, 4 pour etre exact, 3 du keypad et 1 pour les directions (Les fire et pause, Option sont traités un peu a part, vous verrez). Pour résumer on va mettre une valeur dans le registre JOYSTICK et la Jag va nous renvoyer notre valeur dans ce meme registre, c'est cool non ? Quel valeur mettre ? Vu que c'est un peu la berezina dans la doc je vous ais fait un tableau qui va bien. Mais avant de passer au tableau, il faut savoir comment sont organisé ces 4 colonnes (allant de 0 a 3) Si on demande la colonne 3, on va récup les touches : # 9 6 3 Si on demande la colonne 2, on va récup les touches : 0 8 5 2 Si on demande la colonne 1, on va récup les touches : * 7 4 1 Si on demande la colonne 0, on va récup les touches : Up Down Left Right (La position du jagpad) +--------+-------+-------+-------+-------+ |Colonne | Pad 0 | Pad 1 | Pad 2 | Pad 3 | +--------+-------+-------+-------+-------+ | 3 | $7 | $3 | $8 | $f | +--------+-------+-------+-------+-------+ | 2 | $b | $2 | $6 | $c | +--------+-------+-------+-------+-------+ | 1 | $d | $1 | $5 | $a | +--------+-------+-------+-------+-------+ | 0 | $e | $0 | $4 | $9 | +--------+-------+-------+-------+-------+ Ceci est pour soit le joypad 0, soit le premier pad sur le team tap 1, si vous accedez au pad 0, que le team tap soit branché ou pas, cela ne change rien. Et je mets donc cette valeur ou et comment ? On va écrire cette valeur dans JOYSTICK ($f14000), sous la forme : $810x : x étant la valeur du tableau que vous voulez. (Le 81 n'y faites pas gaffe, cela permet de garder la sortie son active et sélectionner les joy, le zéro c'est pour faire une sélection sur l'autre port) donc en 68000 si vous voulez lire la colonne zéro (position du pad), du pad 0 (On regarde dans le tableau Pad 0, colonne 0 : $e) donc vous faites un : move.w #$810e,JOYSTICK (ou move.w #$810e,$f14000 comme vous voulez) (Vous pouvez utilise JOYSTICK si vous incluez le fichier d'include d'Atari) et maintenant on fait cela : move.w JOYSTICK,d0 (ou move.w $f14000,d0 comme vous voulez) et donc vous avez donc d0 la donnée demandé. Par contre pour ce joy le données sont renvoyés en position 8-11 (4 bit), donc il faut faire un and.w #$0f00,d0 pour nettoyer les trucs indésirables, après vous en faites ce que vous voulez !! Petite note, les bits fonctionnent a l'envers, cela veut dire que si le bit vaut zéro la touche est appuyé, cela n'est pas une grande gêne, vous pouvez faire cela pour remettre tout cela en ordre : not.w d0 Qui inverse d0, sinon vous adaptez votre code en conséquence, inversez les tests (!) vous faites exactement pareil pour les autres valeurs. Cela va toujours ? et on recommence avec l'autre joy, vous savez tout, donc juste le petit tableau qui va vous simplifié la vie : +--------+-------+-------+-------+-------+ |Colonne | Pad 0 | Pad 1 | Pad 2 | Pad 3 | +--------+-------+-------+-------+-------+ | 3 | $e | $c | $1 | $f | +--------+-------+-------+-------+-------+ | 2 | $d | $4 | $6 | $3 | +--------+-------+-------+-------+-------+ | 1 | $b | $8 | $a | $5 | +--------+-------+-------+-------+-------+ | 0 | $7 | $0 | $2 | $9 | +--------+-------+-------+-------+-------+ Ces valeurs (en binaire) sont les mêmes que le joy 1 mais lu dans l'autre sens : exemple : %0010 devient %0100 pour le joy 2. ATTENTION ! Mettez vous bien en tete une chose, sur la Jag on a deux ports pour les pads : le 0 et le 1, sur chaque port on peut aller jusqu'a 4 jagpads. Ce qui fait un total de 8. Donc si je parles du pad 1 sur le port 1, cela correspond au second joy sur le team tap du second port. N'oublies pas qu'on a pris la (sale ?) habitude de compter les zéros en info. Donc a partir de maintenant quand je parles du joy 2, cela concerne le 3 joy branche sur le team tap dans le second port de la Jag (Parce que maintenant on parle que du second port Pad) Donc pour le port 2 en 68000 si vous voulez lire la colonne 1 (*741), du pad 3 (On regarde dans le tableau Pad 3, colonne 1 : $5) donc vous faites un : move.w #$8150,JOYSTICK (ou move.w #$8150,$f14000 comme vous voulez) (Vous pouvez utilise JOYSTICK si vous incluez le fichier d'include d'Atari) et maintenant on fait cela : move.w JOYSTICK,d0 (ou move.w $f14000,d0 comme vous voulez) et donc vous avez donc d0 la donnée demandé. Par contre pour ce joy les données sont renvoyes en position 12-15 (4 bit), donc il faut faire un : and.w #$f000,d0 pour nettoyer les trucs indesirables, après vous en faites ce que vous voulez !! Still alive ? Le plus dur est passé, les bouttons ca sert a rien !! Non on va faire un rapide passage sur les bouttons, le principe est exactement le même que pour les touches, Une sélection par JOYSTICK mais par contre la relecture des données se fait par JOYBUTS ($F14002). On va rajoute un truc dans notre tableau (Premier tableau) : +--------+-------+-------+-------+-------+---------------+ |Colonne | Pad 0 | Pad 1 | Pad 2 | Pad 3 | Boutton 10 | +--------+-------+-------+-------+-------+---------------+ | 3 | $7 | $3 | $8 | $f | xO | +--------+-------+-------+-------+-------+---------------+ | 2 | $b | $2 | $6 | $c | xC | +--------+-------+-------+-------+-------+---------------+ | 1 | $d | $1 | $5 | $a | xB | +--------+-------+-------+-------+-------+---------------+ | 0 | $e | $0 | $4 | $9 | PA | +--------+-------+-------+-------+-------+---------------+ O=Option, C B A Sont les 3 fires, P=Pause x=sans importance Le 1 et le 0 designe les bit 1 et 0 de JOYBUTS. Donc quand vous lisez la colonne 0 d'un joy (Position du pad), après avoir lu JOYSTICK, vous lisez directement en JOYBUTS les 2 premiers bits et vous obtenez P(ause) et (Fire) A, exemple : move.w #$810e,JOYSTICK ; (Selection colonne 0) move.w JOYSTICK,d0 ; (Recup les donnees) move.w JOYBUTS, d1 ; recup P(ause) et A (Fire) Donc si vous testez le bit 0 de d1, vous pousez savoir si A est pressé. La même règle s'applique pour les bits, ils sont inverses de ce qu'on a l'habitude, donc vous pouvez revenir a la 'normale' par un : not.w d1 Pour le second port : +--------+-------+-------+-------+-------+---------------+ |Colonne | Pad 0 | Pad 1 | Pad 2 | Pad 3 | Boutton 32 | +--------+-------+-------+-------+-------+---------------+ | 3 | $7 | $3 | $8 | $f | xO | +--------+-------+-------+-------+-------+---------------+ | 2 | $b | $2 | $6 | $c | xC | +--------+-------+-------+-------+-------+---------------+ | 1 | $d | $1 | $5 | $a | xB | +--------+-------+-------+-------+-------+---------------+ | 0 | $e | $0 | $4 | $9 | PA | +--------+-------+-------+-------+-------+---------------+ Exactement pareil pour le second port, sauf c'est les bit 3 et 2. Pas d'exemple, je penses que vous etes assez grand pour l'écrire vous même... Et voila !! Vous savez tout sur les joys, puisse cet article, faire qu'on puisse avoir beaucoup plus de jeux multijoueurs sur Jag, on devrait presque imposer les deux joueurs minimun quand le jeu le permet, vous pensez pas ? La seconde partie est la !!! Deux petits trucs pour récuperer quelques cyles. La premiere, regardez bien le registre JOYSTICK, j'ai pas fait gaffe au début, mais la selection est séparé pour les 2 ports, donc vous pouvez lire les deux ports en même temps !! Exemple : move.w #$81e7,JOYSTICK Sélectionne les colonnes 0 des deux ports, pour le traitement : move.w JOYSTICK,d0 move.w d0,d1 and.w #$0f00,d0 and.w #$f000,d1 (Si on revient a la normale cela donne : move.w #$8107,JOYSTICK move.w JOYSTICK,d0 and.w #$0f00,d0 move.w #$81e0,JOYSTICK move.w JOYSTICK,d0 and.w #$f000,d0 Il y a pas photo !!) Voila dans d0 vous avez les données du premier port et dans d1 les données du second port. Ce qui fait 1 accès exterieur pour deux joys, ce qui évite de trop squatter le bus. Pour 8 pads, cela nous fait que 4 accès au lieu de 8, c'est bon hein !!! C'est pareil pour les bouttons. La seconde technique ? Regardez bien JOYSTICK ET JOYBUTS, mais pas les appelations officielles d'Atari les adresses même : $f14000 et $f14002 elles se suivent et elles font chacune 1 mot (2 octets) ce qui fait un total de 4 octets, vous voyez ou je veux en venir ? Non et bien regardez bien cela : move.l JOYSTICK,d0 Je lis JOYSTICK ET JOYBUT d'une seule traite, donc vous avez les touches et les bouttons pressés d'une seule traite. Si vous voulez traiter les bouttons (Fire ABC, Option et Pause) normalement vous faites ceci : move.w #$810e,JOYSTICK move.l JOYSTICK,d0 move.l d0,d1 swap d1 Et ceci remplace : move.w #$810e,JOYSTICK move.w JOYSTICK,D0 move.w JOYBUTS,D1 Au nombre de lignes, je perds sur mon optim et bien gagné mais je gagnes en vitesse et en taille !! Si on comptes les cyles, voila le resultat : move.w #$810e,JOYSTICK ; 20 cycles 8 octets move.l JOYSTICK,d0 ; 20 cycles 6 octets move.l d0,d1 ; 4 cycles 2 octets swap d1 ; 4 cycles 2 octets Ce qui nous fait un total de 48 cycles et 18 octets Et pour l'autre : move.w #$810e,JOYSTICK ; 20 cycles move.w JOYSTICK,D0 ; 16 cycles move.w JOYBUTS,D1 ; 16 cycles (Total de 52) Total de 52 cycles, 16 octets On gagne 4 cycles et 2 octets, ce n'est pas grand chose, mais il y a une chose très importante, dans la version non optimisé on a un total de 3 accès en extérieur, donc au bus, dans la version optim on a 2 accès au bus, cela evite de squatté le bus, et le laisse plus libre pour afficher des sprites, c'est plus efficace. Et donc dans la version optim vous avez dans d1 JOYBUTS comme si vous l'aviez lu comme cela : move.w JOYBUTS,d1 Il existe peut etre d'autres moyens d'optimiser, si vous trouvez faites moi s'en part. J'ai trouvé une technique encore plus efficace, écrire la routine Pad au Gpu ou Dsp, cela marche j'ai une routine qui tourne. Je stocke le résultat dans la ram interne du Gpu, ceci pour des raisons de vitesse. Et chaque Vbl on va relire dans la ram interne avec le 68000, par : lea Adr_joy,a0 move.l (a0)+,Joy_0 move.l (a0)+,Joy_1 move.l (a0)+,Joy_2 move.l (a0)+,Joy_3 move.l (a0)+,Joy_4 move.l (a0)+,Joy_5 move.l (a0)+,Joy_6 move.l (a0)+,Joy_7 Ou plus efficace : movem.l Adr_joy,d0-d7 movem.l d0-d7,Joy_0 Ca va vous avez tout compris ? Sinon TANT PIS !! Voili, voila c'est fini pour les joys, un truc pas compris, des idées des bugs (C'est pas possible car avec Atari on est .............. !) Contactez moi sur ce forum, on en discutera. GT Turbo (C.V.S.D. Membre de la Jagware Team) P.S. : En lisant ces registres on peut aussi savoir quel type de joy est branché mais vu le nombre de possesseurs de Joy genre Tempest Controller, on s'en passera. Si vous désirez l'info vous savez ou me trouvé
  2. L'optimisation Du Code 68000

    Article en construction Dans cette partie vous trouverez différentes techniques ou astuce pour le code 68000, pour ceux qui ont du mal a utiliser le Gpu / Dsp ou les ont déjà chargés a mort !! Ces techniques proviennent d'un paquet d'années passés sur le St en developement de démo, ceci proviendront aussi bien de recherches persos que de trucs ultra connu dans la communauté 68000. C'est parti !! Quelques bases utiles : D'un point de vue binaire, une multiplication par 2 d'une valeur consiste a décaler cette valeur vers la gauche de un : lsl.w #1,d0 multiplie d0 par 2, le lsl.w fait 8+2n cycles, n étant le nombre de décalages. Et tout les multiples des puissances de deux sont possibles, par exemple multiplier par 4,8,16,32,64,128, etc... toute ces multiplications sont transformables en décalage. Exemple multiplication par 32 de d4 : lsl.w #5,d4 (2^5=32) Ce qui est beaucoup plus rapide. Il y a encore plus rapide pour la multiplication par 2 c'est add.w d0,d0 Qui fait pareil et est encore plus rapide !! si vous devez faire des multiplications, essayez de voir si vous pouvez pas la réduire en différents décalages, exemple une multiplication par 160 peut ètre décomposé en deux multiplications, une de 128 et une 32 (128+32=160) move.w d0,d1 lsl.w #8,d0 lsl.w #5,d1 add.w d1,d0 et voila votre multiplication faite a coup de décalages et c'est beaucoup plus rapide !! Division par les multiples de puissance de 2 c'est exactement pareil mais decalage a droite : lsr.w #x,d0 (X etant bien sur le nombre de decalages !) ..... Et maintenant 2 techniques bien puissantes : Code automodifiant Code automodifiant ? C'est quoi ce truc ? C'est simple c'est un code qui peut modifier un ou plusieurs instructions durant son déroulement, on dirait un truc de science fiction et bien non. Cela n'est possible qu'en assembleur, car vous savez exactement ou se trouvent les instructions et comment elles sont codées. L'adresse d'une instruction est simple a obtenir : Adresse_instruction: nop Je sais un nop c'est pas le truc du futur mais c'est pour comprendre. Imaginons que maintenant vous voulez transformez cette instruction en addition par exemple add.w d0,d1, comment qu'on va faire ? Prenez votre assembleur, tapez votre instruction : add.w d0,d1 affichez l'assemblage a l'‚cran, vous allez obtenir le code hexa de l'instruction qui est : $d240, marrant hein ?! Sinon vous pouvez prendre une doc 68000 et assemblez l'instruction a la main, mais c'est pas très marrant, après un moment a pratiquer cela, certaines instructions on connait par coeur leur valeur hexa !! Maintenant baguette magique hop un nop en addition, c'est simple on fait : move.w #$d240,Adresse_instruction c'était dur n'est ce pas !!!! A quoi cela peut servir ? A mettre un peu de patate dans votre code, imaginons que vous voulez remplir une zone mémoire avec 4 mots différents suivant une couleur, avant vous faisiez comme cela : Boucle : si couleur=1 écrire un mot x sinon écrire un mot y end si si couleur=2 écrire un mot x sinon écrire un mot y end si (Encore 2 fois) .............. boucler jusqu'a truc On peut faire cela de façon beaucoup plus rapide, vous testez votre valeur en dehors et vous modifiez vos instructions dans la boucle suivant la couleur, votre boucle devient alors cela : Boucle : écrire mot a écrire mot b écrire mot c écrire mot d boucler jusqu'a truc C'est plus court et beaucoup plus rapide, certains vont dire ont peu utiliser 4 registres et mettre les bonnes valeurs en dehors de la boucle, d'abord faudrait déjà avoir 4 registre de libre et ensuite ceci n'est qu'un exemple, a vous de choisir quand faudra l'utiliser. Faites gaffe au taille des instructions quand meme, remplacez une de 2 par une de 4 peut poser quelque soucis.... Code généré Ca c'est une technique de bourrin, un truc a ne pas oublier, un truc de mangeur de ram. Vous faites du 68000 depuis 1784 (Hein !), vous connaissez les dbra dans tous les sens et les utilisez a toutes les sauces, mais vous savez aussi que pour manger des cycles ca va etre dur de le battre (exception faite de truc ultra lent) !!! 12 Cycles la bete, ca fait mal la boucle, prenons un exemple, une boucle de 200 un truc assez courant 200*12=2400 cycles, ces cyles il y a moyen de les récuperer. On va écrire un morceau de code qui va 'générer‚' 200 fois le bout de code a repeter mais sans le dbra, on va gagner 2400 cycles et un registre, mais la contrepartie cela mange un peu de ram mais pas de quoi tuer un chat. Il existe plusieurs techniques pour generer 200 fois un code, certains vont utiliser les directives de compilation : REPT 200 add.w d0,d1 lsl.w #8,d7 ENDR Cela est pas terrible, et peut être lent suivant la machine utilisée pour assembler ou suivant l'assembleur. Perso je fais comme cela : Vous écrivez votre bout de code quelque part ou il dérange pas : Debut_code: nop add.w d0,d0 lea 160(a0),a0 Fin_code: Vous allez en section bss et envoyez ceci : Code_genere: ds.b 200*(Fin_code-Debut_code) ds.b 2 Voila vous avez reserve la place necessaire a votre code+2 octets qui vont servir a... Ensuite dans les inits on envoie cela : lea Code_genere,a0 move.w #200-1,d7 Copy_gen_code: lea Debut_code,a1 move.w #(Fin_code-Debut_code-1),d6 lsr.w #1,d6 ; on divise par 2, les instructions ; sont obligatoirement paire subq.w #1,d6 ; -1 pour le dbra Copy_le_bout_de_code: move.w (a1)+,(a0)+ dbra d6,Copy_le_bout_de_code dbra d7,Copy_gen_code Et voila vous venez de générer 200 fois votre code, il manque un truc, aprês ceci faut rajouter un : move.w #$4e75,(a0) C'est quoi cela ? Un 'Rts' est rajouté a la fin du code généré, donc maintenant quand vous voulez utiliser votre code généré : jsr Code_genere La classe, le programme est plus leger (a la lecture), plus rapide. Cette technique est une technique de bourrin, c'est sur mais quand on a pas de cycle de libre on 'ram' oui je sais je sors....... Une technique combinatoire est possible, générer du code mais d'aprês certains critêres, cela permet d'avoir du code ultra spécifique sans dbra. Pour ceux qui connaissent, par exemple le Flexiscroll de Griff (Electronic Images) dans la Decade démo, a utiliser ces deux techniques pour générer pour chaque lettre un code spécifique. Ces techniques m'ont permis de faire des effets qui n'aurait pas été possible a cette vitesse la, ces techniques ne sont plus utilisées actuellement car maintenant pour accelerer un code, on accelere sa carte mêre, et surtout a savoir, un (micro) processeur avec un cache n'apprécies pas toujours le code auto modifiant, car dans certains cas il va modifier les données dans le cache et pas dans la ram ce qui peut faire planter la chose voire des résultats aléatoires !!!! Par contre ce sont des techniques qui peuvent servir pour tout ceux qui font du retro-gaming, toutes les consoles passé‚s sans cache, c'est utilisable. Dans le cas de la Jag vous pouvez y aller comme vous voulez ca craint rien !!! Mais n'utilisez le 68000 quand dernier recours, quand le Gpu et le Dsp sont bloqués et peuvent plus rien faire, les deux processeurs sont três três rapides, et vous avez peut être pas besoin de ce genre de code (Quoi que je ferais bien du code automodifiant dessus) mais faites gaffe, les procs n'ont pas de cache mais decode les instructions 'beaucoup en avance', au moment ou vous changez l'instruction il aura peut être déjà décodé l'instruction et votre modification ne prendra lieu qu'au prochain passage, donc a utiliser quand vous savez ce qu vous faites. En ésperant que vous ayez appris quelque chose avec ceci, pour l'instant retournez donc faire du code, ca fera avancez tout le monde !!! GT Turbo
  3. As some have already noticed (and signaled). There was a problem to create new topic. The editor was completely messed. This was due to an important upgrade i made on thursday. I've basically checked if it was working fine afterwards, but obviously forgot this part. By the time i can redo the old skin on the new system, everyone will have to use the default one (which is not really different). [EDIT] On monday the 4th at 1:36 am, the jagware skin is mostly back, a complete refresh of the webpage should do it (shift+f5 or control+f5).
  4. I have updated the french translation but had to force anyone using the old one to use the english while i was changing the files. You may now chose which translation to use withou any bug.
  5. Jagcf And Jjr Demo Video

    Excellent !
  6. Yup, french translation is rather old and lack some parts of the new skin... How can you use the french version of this board
  7. Display Problems

    There's a problem with the old skin set since the yesterday's upgrade, till i can find time and a way to fix this, i'll force the use of the default skin for every users. [EDIT] At least, i put the logo back (in a dirty way...).
  8. Catnip Cable : Will You Buy One ?

    There is none, trussssst me, you'll buy one
  9. Un long et détaillé making of sur la création d'un "petit" jeu par une équipe réduite. http://www.dk-games.info/RonronsMakingOf/L...ingOf_Intro.htm A long and detailed (and french) making of about a "little" game made by a small team.
  10. Check this flash game. Animation kicks ass. http://www.armorgames.com/games/fancypants...ture_popup.html
  11. En attendant la terrible Evo II de SCPCD (Classe comme intro, trouvez pas ?) Comment développer des productions Jag sur une config Atari : ------------------------------------------------------------ Beaucoup de personnes developpent du programme Jag sur Pc, mais c'est tout a fait possible avec un Atari (Du Stf au Falcon) et a une vitesse qui va faire passer votre copain dvpeur d'à coté pour un mangeur de spaghettis carbonara a la menthe (Beurk !!) Comment faire cela ? En transformant Devpac en Shell !!! Allez on ouvre les hostilités !! Ce que j'utilises et comment : Ma config perso est un Falcon 030 mais on peut utiliser un ST(E/F), le loader (Programme de transfert Atari->Jag) est compatible (C'est ce qui est écrit, j'ai pas essayé !! Mais vu que le transfert se fait par le port centronic (Imprimante) cela devrait tourner sans soucis, le prog lui meme étant du code 68000 (J'ai vérifié !)). Une Jag avec une puce Bjl et le cable de transfert. Comme prog de dvp sur l'Atari il vous faut principalement, trois trucs : - Devpac (Version supérieur au 1.99 (Oui je sais ...... !)) - MadMac (Assembleur Gpu / Dsp) - Loader Bjl. Vous avez tout ? Donc détails. Chargez Devpac, a droite une barre d'outils est présente (Tools) dedans vous pouvez placer des progs, pour cela allez dans le menu (Dérouler le) avant de cliquez sur une case, gardez 'Control' enfoncé et cliqué, un formulaire s'ouvre. En haut vous mettez le nom qui doit apparaitre dans le menu, par exemple : 'Bjl uploader' pour le prog de transfert. En dessous le type de prog (Tos dans le cas du Bjl, si vous savez pas trop cliquez sur Gem, meme si c'est un prog Tos cela plantera pas (Normallement pas !)) Après la ligne de commande, il y a un petit truc pour accélérer tout cela. Quand vous assemblez votre prog, vous le faites sur disque toujours avec le meme nom de fichier, par exemple quand j'assembles un code à envoyer à la Jag, je le fais toujours avec ce nom E:TRY.TOS. Pourquoi faire cela ? Pour allez très vite !! Dans la ligne de commande vous cliquez sur This et vous rentrez 'E:TRY.TOS' ou le nom de votre prog. Comme cela chaque fois que vous cliquerez (sans 'Control') dans le menu sur Bjl Uploader, le loader sera lancé et le nom de fichier envoyé au loader sera 'TRY.TOS' se trouvant sur le lecteur E:, votre code sera chargé et lancé sur la Jag sans rien faire de plus, cela va beaucoup plus vite !!! Ensuite vous cliques sur Fsel et selectionnez le loader, et voilà on continue. Vous retournez dans le menu outils (Tools) choisissez maintenant une autre ligne, cliquez dessus (Control enfoncé) et on refait pareil pour l'assembleur MadMac, vous pouvez aussi préciser un nom de fichier comme avant, par contre une chose, vous avez une option pause, cliquez sur 'on', par ce que quand vous lancez MadMac il quitte dès qu'il a fini, donc on peut pas voir si il y a des erreurs (Ca vous arrive ?!?) ou et lequels !!! Ensuite menu Tools et vous sauvez tout cela 'Save tool info'. Voila mon menu à moi : (Oubliez Devpac Dsp et le RCS (Ou si vous les avez tant mieux !), c'est pour le dvp Falcon et les utilitaires dvpé pour la Jag.) Comme cela quand vous lancez Devpac a chaque fois tout est en place, faudra juste indiquer une fois le nom du fichier quand vous assemblez, car ceci n'est pas sauvé (Du moins avec une version 2.xx), faites le direct quand vous lancez Devpac, car je me suis fait avoir plusieurs fois. Donc si je veux coder un truc. Je charges Devpac, j'écris mon morceau de code et je l'assemble normalement (Alt A puis return). Puis au retour je vais lancer le loader (Car bien sur vous n'avez pas d'erreur, avec Atari on est tous des dieux !) menu Tools et un clique sur Bjl Uploader et hop tout est envoyé et lancé sur la Jag, qui dit mieux !!! Vous pouvez laissé tourné votre code sur la Jag, pour voir certains détails et en profiter pour modifier votre code sur votre Atari, c'est nickel. Comment faire pour les codes Gpu / Dsp ? C'est ultra simple (Avec Atari on est tous....) Vous écrivez votre code Gpu (Le Gpu est mon ami, le Dsp aussi !) sous Devpac, vous le sauvez en 'powercode.s' (Nom choisi arbitrairement...) direction menu Tools, on clique sur MadMac et soit vous avez déjà prédéfini votre ligne de commande et cela part tout feu tout flamme, soit vous rentrez le nom de fichier et return. Et hop retour a Devpac !! C'est pas beau !!! Pour utilisé un code Gpu je fais un Code_dsp: INCBIN "E:POWERCODE.O" EVEN (Etre sur de la parité zau caz ou !) Avec Devpac l'avantage, c'est plusieurs fenêtres simultanément, j'écris le code 68000 dans une fenêtre et le code Gpu dans une autre, si mon code 68000 tourne correctement, mais le code Gpu a des soucis, c'est top moumoutte, exemple. Alt 1 (Fenetre 1 devant) : pour avoir ma fenetre avec mon code Gpu en premier plan je modifies mon code et clique sur MadMac, retour je fais Alt 2 (Fenetre 2 vous savez maintenant !) : retour a mon code 68000, je fais Alt A lance l'assemblage et clique sur Bjl loader. Cela va très vite, je vous le dis je suis tombé amoureux de la Jag, de cette manière de dvp, l'essayer c'est l'adopter. Ceux qui utilise toute les m... officielles d'Atari (Librairie ou ce qui y ressemble), linker et tout le toutim, est ce que vous dvp aussi vite sur un PC ? Malgré votre Gigahertz de vitesse ? Mon 68030 a 16 Mhz est il plus rapide pour dvper ? Ca c'est une bonne question... La technique Atari, meilleure ? Qui oserait en douté..... En passant, vous pouvez faire assembler votre code complet par MadMac (68000 et Gpu), mais c'est moins marrant, et perso certaines directives sont pas completes ou fonctionne pas (Apparement pas d' ORG en section 68000 !) et comme cela vous n'assemblez que le code que vous avez modifié (68000, Gpu) et si cela plante vous savez quel code déconne !!!! Héhé !! Enfin bon, voila cet article arrive à sa fin. J'espère que vous avez tout compris et que cela vous aidera. Certains préfereront Assemble, mais il dispose pas de menu Tools et sur un Falcon il est déjà lent, donc le choix est fait. Si vous avez besoin d'une puce Bjl, du cable de transfert, de Devpac, de l'assembleur MadMac (Enfin tout quoi !) adressez vous a Fredifredo sur ce même forum ou allez en liens et cliquez sur son site (Que j'aime beaucoup pour la présentation !) GT Turbo (C.V.S.D. Membre de la Jagware Team) :8) P.S. : On peut encore accélérer un peu la chose, si vous avez un peu de ram (Enfin vu la taille du loader et de MadMac !) sur les versions 'récentes' de Devpac (Celle que vous pouvez trouvé sur le CD a Fredifredo), quand vous définissez vos outils, il y a une case 'make resident', si vous cliquez la dessus, Depac va gardé les outils en mémoire, conclusion plus d'accès disque a part votre code !!! Cet article peut etre librement utilisé et recopié, traduit, vous avez juste obligation de citer qu'il provient de Jagware.org
  12. La Faq De Jagware

    Suite à une (ou deux ) discussions avec Azrael, nous est venu l'envie et la volonté d'ouvrir une FAQ à la sauce Jagware consacré à la Jaguar. Si je poste ici, c'est pour savoir tout simplement quelles sont les catégories à créer en premier lieu, non parce que j'ai vraiment la flemme de chercher tout seul et en fait, j'en sais rien. Juste pour vous aiguiller, on y regroupera les réponses aux questions basiques (comment ca marche un BJL, comment qu'on grave un cd qui marche, etc...) et celles plus pointus (pourquoi ca bug quand j'aligne mon 'inserez instruction exotique' sur un octets impaires, etc...). Et une preview pas du tout interactive et pleine de trous devrait être visible dans la journée à cette adresse : http://faq.jagware.org Ca, c'est l'adresse, le petit nom pour l'instant c'est Faqware, c'est un peu limite mais c'est ça ou Fagware (les amateurs d'argots vont apprecier ). RaZ
  13. La Faq De Jagware

    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.
  14. Adaptateur Compact Flash

    Which attitude ? I had no said "attitude", it was a simple, flat answer to the question why it wasn't discussed in an english topic. Forums have merged recently, it's a mess, try a search, point, end... And because i didn't put smileys in a post doesn't mean i'm trying to insult, or hurt anyone. As i know, do not having smileys just undermeans neutral/no attitude.
  15. Adaptateur Compact Flash

    It is, even though it's not up to date. There you go. You have to know that english and french forums have merged recently, so try a search next time.
  16. What Is Jagware ?

    What is Jagware ? Jagware is an online community whose aim is to gather as many talented people as possible, in order to develop games for the Jaguar 64 bits console. What does Jagware offer ? Support from experienced Jaguar enthusiasts, including some professionals (coders, graphic artists, musicians, mathematicians, electronics engineers...), all interested in working together. Public forums open to everybody. Private forums for team projects. Teams leaders can freely choose to whom they grant access, so discretion is assured. An IRC channel for chatting : #jagware on irc.worldnet.net (Web-based version)
  17. Voici de la saine lecture. Celle qui vous redonne le courage de continuer à faire des choses que beaucoup (trop) de gens pensent inutiles, voir completement con. Je remets Sanqua en passant, parce Sanqua sbien. Sanqua. FR The Escapist que je viens de découvrir, et surtout pour cette série d'articles qui tentent de développer une nouvelle approche du développement et de la distribution indépendante. EN
  18. Bienvenue à tous les nouveaux !

    Excusez moi pour mon manque flagrant de diplomatie là mais... Faut arreter vos conneries avec les personnes en cours de validation ! Si ca se trouve c'est encore un bot comme les cinq autres que vous n'avez pas vu passer... [EDIT] Ca m'emmerde d'avoir raison dans ces cas la mais oui, c'est du flan, fausse adresse qui rend une erreur à l'envoi.
  19. Le dossier sur Shadow n'est qu'une traduction d'un article en anglais que l'on peut trouver online. Le magazine à mis beaucoup de temps a sortir, c'est pour ca que certains dossier sont défraichis. C'est un magazine qui se veut surtout pour les développeurs francophone, c'est déjà pas si mal.
  20. Game development magazine N°1 est sorti il n'y a aps trop longtemps et comporte un article copieux bien qu'un peu brouillon sur le game design que je vous conseille de lire. http://www.gamedevelopmentmag.com/
  21. Les Droits D'adaptation

    Il y a une subtilité dans le terme "concept". Je crois savoir qu'en françe, une idée n'est pas déposable, un process/technique l'est uniquement. Toujours est il que si par concept tu entends Tetris-like, tu pourrais te faire tomber dessus, les droits appartenants à une obscure societé, russe il me semble. Par contre si par concept, tu entends FPS, tu n'auras aucun problème, le fps n'étant plus un concept mais un style de jeu. La subtilité dans le premier cas est de s'éloigner suffisamment de l'original, comme le précise très bien fredifredo, pour qu'aucune action légale ne puisse être envisagé. (Mais pour Tetris, je crois que c'est baisé, sérieux)
  22. Futurs projets et compétences

    I've added a text box in the profil concerning skills (compétences), everyone could fill in. I may precise they better fill this part, for everyone to be able to check what they can do, when they register.
  23. L'IA qui n'en est pas, ou comment avec un brin de jugeotte, quelques bons scripts et un level-design sans faille, le joueur se convainc qu'il est en fasse d'un réelle menace : http://www.gamespy.com/pc/fear/698080p1.html
  24. Inscription Et Validation

    Etant donné le succès que connais Jagware ces derniers temps et la recrudescence d'inscription, dont certaines qui paraissent motivé uniquement par des intérêts personnels, les inscriptions seront désormais validés à la main par l'administrateur du site, cad RaZ. Nous nous devons, dans le respect de la tranquilité et de la discrétion des informations échangés entre inscrit productif, de limiter tout parasitage de ce site. Merci de comprendre notre position et d'éviter tout abus, à savoir que si cela s'avère nécessaire, les motivations des personnes voulant s'inscrire pourraient être demandés via email. [english] Following the success Jagware has and considering the amount of registration these last times, some of these looking like they are only motivated by personnal interests, every registration will be manually validated by this website administrator, aka RaZ. We have to, in respect for the peace of mind and discretion about exchanged informations between productive members, restrict any interferences in this site. Thanks for understanding our position and avoid any abuse, you have to know that if necessary, motivations for willing registrant could be asked by email.
  25. Inscription Et Validation

    J'en ai encore deux en attente de validation, un italien et un, euh, des pays de l'est. Et une piqure de rappel est souvent utile.
×