[ASM 68000] Rubik’s

Forum Amiga Coding [ASM 68000] Rubik’s

  • Ce sujet contient 30 réponses, 4 participants et a été mis à jour pour la dernière fois par donamigadonamiga, le il y a 1 mois et 3 semaines.
  • Créateur
    Sujet
  • #104642
    Arnaud.68000Arnaud.68000
    • Level 2
    • Messages : 49

    Bonjour,

     

    Voici mes débuts sur un cube Rubik’s A500 temps réel

    https://github.com/Amiga68000/Rubiks.Amiga.68000

    Pour le moment ça passe dans le VBL mais le cube :

    – est en monochrome

    – n’est pas en faces pleines

    – n’a pas encore de rotations de couronnes

    Vous pouvez voir dans le code certains TODO en guise de pistes d’optimisation.

    A+

    Arnaud

    @donAmiga, peux-tu reposter ici tes liens vers les démos existantes ;-)

    A500 + 512k, adepte du SM attention avec un A devant !

15 réponses de 16 à 30 (sur un total de 30)

Partager sur vos réseaux sociaux préférés :
Facebooktwitterredditpinterestlinkedintumblrmail

  • Auteur
    Réponses
  • #104897
    donamigadonamiga
    • Level 5
    • Messages : 249

    faut arreter avec les versions à la con de winuae tant qu’elles ne sont pas stables, merci

    >ds.b FIN_POLY-POLY,$BB

    Ca n’a pas l’air de marcher sous ASMTwo (K-SEKA y avait une commande de ce type, je me souviens plus), je vais supprimer.

    le truc c’est DCB.b FIN_POLY-POLY,$BB

    >hint : movea.l 4.w,a6, du code (pc) relatif pour moins de hunks reloc

    quelle différence avec movea.l Execbase,a6 puisque Execbase vaut 4 ?

    tu gagnes 2 octets, après c’est une convention d’ecriture (un detail)

    >note : je trouve la perspective du cube etrange… comme dans celle d’Intryx d’ailleurs

    Il n’y a pas de perspective avec lignes fuyantes, c’est peut être pour ça ?

    ok, mais ça fait bizarre

    >basecode potable

    Ok je le mets en TODO, mais je vais avoir besoin de conseils, si il y a un doc ou une video spécifique je prends

    utilise un basecode existant, de blueberry, stingray, etc… pour Jel, voir YouTube

    exemple avec startup.i (attention, macro waitblit existe, la renommer si besoin)

    >mettre la copperlist direct en chip dans un section copper,data_c
    Donc pas besoin de faire un transfert en chip ? D’ailleurs ça marche comment une fois compilé, l’OS charge les sections de code en fonctions des directives d’allocation ?

    les hunks exe de l’AmigaOS servent à ça : section permet de créer les hunks data, code, bss en fast ou ou chip avec code_c,data_c,bss_c

    de plus ton code a déjà un section code_c, donc la copperlist est déjà en chipram…

    >à la limite, idem pour les screens (appelés ici bitplaneA,B,C) dans un section screen,bss_c
    Oui je comprends le besoin pour le test, mais après faut allouer pour pas grossir le code

    le bss ça ne prend aucune place dans le code :  c’est un hunk d’allocmem que le systeme fera automatiquement.

    >pour le copper par exemple : $FF00 ?? dc.w $yyxx,$FFFE

    C’était dans le code de YRAGAEL

    $FF00 ça ne se voit pratiquement jamais pour un WAIT copper, ou alors c’est un SKIP

     



    #104900
    jean3.5jean3.5
    • Level 6
    • Messages : 393

    Merci pour ta video, ça fait plaisir

    de rien ;)

    ça y est, adaptateur reçu :lol: le A500 peut à nouveau lire mes adf.

    par contre j’ai que 512k de ram, donc dès que l’alloue plus de 100k à ASNtwo, voilà ce que j’ai :

    et un peu pareil pour le Cube3D.

    par contre, si me met juste 100k de chip ram, ça passe bien pour tes 2 codes.

    voici le rubiks sur le 500 https://www.facebook.com/100013145713455/videos/1052685005179680/

    j’ai pas encore testé celui en couleur ;-)

    #104908
    donamigadonamiga
    • Level 5
    • Messages : 249

    Je tente un report sur EAB.

    pour une fois que ça marche :good: :yahoo:

    #104919
    Staff
    ZarnalZarnal
    • Level 18
    • Messages : 4409

    Et tu imagines bien que je teste au moins sur la dernière version officielle avant de reporter. :-p

    C’est une très bonne chose de faite.

    Cela a marché parce que ce n’était pas un truc en AGA. Si j’ouvre un fil pour ubergirl par exemple, je vais bien me faire recevoir ou bien le post va rester vide. :lol:

    @Jean3.5

    Ton écran est une oeuvre d’art. :-p

     

     

     

    A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.

    #104924
    donamigadonamiga
    • Level 5
    • Messages : 249

    sur EAB, a/b a signalé une version de 1998 aga fix
    je l’ai trouvé sur the scene archives :
    ftp://ftp.scene.org/mirrors/the_scene_archives/The_Scene_Archives_Vol_10/Disks_are_in_Here/Disks_9301_To_9350/9345-Made_in_Croatia_AF.DMS

    elle marche avec winuae 4.4

     

    #104994
    Arnaud.68000Arnaud.68000
    • Level 2
    • Messages : 49

    Made in Croatia : tout simplement superbe !

    A500 + 512k, adepte du SM attention avec un A devant !

    #104999
    donamigadonamiga
    • Level 5
    • Messages : 249

    j’avais commencé à desassembler le rubik, mais la 3d ça pique un peu.
    je vois que tu maîtrises bien.faudrait que je finisse

    Je pense à un truc : il faudrait verifier et corriger des comments sur des sources de cracktros utilisant la 3d, parce qu’il doit y avoir pas mal de conneries au niveau des calculs 3d/2d (exemple : ici ou ici)
    je dis ça, je dis rien

     

    #105015
    Arnaud.68000Arnaud.68000
    • Level 2
    • Messages : 49

    Je maitrise, je maitrise, c’est vite dit. Quand je vois ce qui se fait en 1 VBL je me dis que j’ai du taff et à progresser ;-)

    parce qu’il doit y avoir pas mal de conneries au niveau des calculs 3d/2d

    Qu’entends tu par « conneries » sur les calculs ?  J’ai lancé Delight, ça bugue un peu mais le 3D est là.

    J’essaie de poster mon code nettoyé demain.

    A500 + 512k, adepte du SM attention avec un A devant !

    #105017
    donamigadonamiga
    • Level 5
    • Messages : 249

    pour les conneries je parlais des « commentaires » du code et  du fait qu’il faut quand même bien connaitre les calculs 3d (je parle pas d’optimisation)
    (note : le code fonctionne c’est l’original desassemblé et reassemblé avec new startup sur amiga… après pour winuae…)

    edit : note 2 : avant de dire que la zenith ne fonctionne pas (asmtwo, winuae, etc…), comme pratiquement toutes les autres, refaite sur a500 1.3 512/512 en 1996-97 : donc ça marche. c’est vrai que je n’arrive pas à la faire fonctionner avec asmtwo, rien n’apparait, mais passe avec asm-one 1.48

    #105176
    Arnaud.68000Arnaud.68000
    • Level 2
    • Messages : 49

    Hello,

    voici une nouvelle release

    https://github.com/Amiga68000/Rubiks.Amiga.68000/releases/tag/2020-11-27

    J’ai nettoyé et optimisé le code, le code s’exécute en 2 VBL :-(

    ..dites moi si c’est plus clair

    Ligne 1404, dc.w COLOR04,MIRROR_SCROLL_COLOR, je comprends pas pourquoi si je l’active mon écran est noir ? J’ai pas testé avec une autre ligne.

    Pour le code relogeable, j’ai commencé mais j’ai dû laisser des coquilles. Une question comment tester si son code est bien relogeable ?

     

    A500 + 512k, adepte du SM attention avec un A devant !



    #105178
    Arnaud.68000Arnaud.68000
    • Level 2
    • Messages : 49

    ZenithBuc testé sous ASMOne, j’ai une erreur :

    ** Illegal Operator

    8 opt c-,ow-,o+

    Je sais pas pour quel assembleur ça été écrit.

    @DonAmiga : C’est toi qui a désassemblé ?

    A500 + 512k, adepte du SM attention avec un A devant !

    #105188
    donamigadonamiga
    • Level 5
    • Messages : 249

    ZenithBuc testé sous ASMOne, j’ai une erreur :

    ** Illegal Operator 8 opt c-,ow-,o+

    Je sais pas pour quel assembleur ça été écrit. @DonAmiga : C’est toi qui a désassemblé ?

    oui, c’est moi qui l’ai desassemblé

    j’utilise Devpac ou asm-pro (ou asm-one 1.48 68020)
    cette ligne sert à indiquer case sensitive no, optimisation oui (pas toujours recommandé je l’avoue)

    il suffit de supprimer cette ligne pour asmone

    ou rajouter :

    ASMONE

    ifnd ASMONE
    opt c-,ow-,o+
    endc

    ifd ASMONE
    incdir « dhx:zenithbuc/ » ; à modifier
    endc

    [/code]

    et changer les else par elseif ou mettre :
    ifd ORIG

    endc
    ifnd ORIG

    endc

    il y a le D_CON qui utilise le signe | qu’il faut remplacer par ! ou +

     

     

    #105199
    donamigadonamiga
    • Level 5
    • Messages : 249

    oulalala… c’est quoi ces beq.s label(pc) / blo label(pc) ?!?
    jamais de (pc) sur un bxx ni dbxx !! ça n’existe pas et ça ne sert à rien, c’est déjà du relatif.
    asmtwo laisse tout passer ou quoi : moi j’ai « garbage following instruction »

    le pc sert pour les datas avec lea, move ET les JSR/JMP pour le coup : adressage absolue, autre hunk (section) ou trop long qu’un bxx ne pourrait atteindre
    pas de (pc) sur ce qui est dans un autre hunk/section non plus

    edit : version corrigée pour devpac (testé aussi sur asm2). je vois pas le cube en mode debugdisplay_raster=1 (sur les 2)

    #105202
    Arnaud.68000Arnaud.68000
    • Level 2
    • Messages : 49

    Quel assembleur 68000/A500 non permissif tu me conseilles ?

    GG pour le désassemblage

    Tu as dû coder des demos ou autres en ces temps illustres ?

    A500 + 512k, adepte du SM attention avec un A devant !

    #105204
    donamigadonamiga
    • Level 5
    • Messages : 249

    Quel assembleur 68000/A500 non permissif tu me conseilles ? GG pour le désassemblage Tu as dû coder des demos ou autres en ces temps illustres ?

    je prefere rien conseiller… les demomakers utilisent beaucoup asm-one. voir une version compatible a500. il y a asmpro (je crois que c’est compatible 68020). il existe aussi  des clones (de silents par exemple trashemone ou un truc comme ça)
    c’est vrai qu’avec devpac 2 : tout est signalé

    oui, j’ai codé quelques trucs dès 1989-90…. au depart avec k-seka (pas longtemps, argl), un peu asm-one, et un gars avait acheté devpac en 90 et me l’a passé (doc en anglais que j’ai recopié à la main et traduite en 1 semaine, le temps qu’il me l’a laissé)

    vers 2008 j’ai fait quelques installs whdload sur A3000, mais pas de communication avec les devs de patchs (quand on ne fait pas partie du clan, il n’y a rien à faire…), j’ai donc arreté et j’avais un probleme avec l’option MMU de whdload de mon A3000, donc pour faire des patchs complets… dur

    edit :  asmone 1.20 de T.F.A.  ou le 1.05

     

     

Partager sur vos réseaux sociaux préférés :
Facebooktwitterredditpinterestlinkedintumblrmail
15 réponses de 16 à 30 (sur un total de 30)
  • Vous devez être connecté pour répondre à ce sujet.