- Ce sujet contient 30 réponses, 4 participants et a été mis à jour pour la dernière fois par donamiga, le il y a 3 années et 4 mois.
-
CréateurSujet
-
21 novembre 2020 à 22 h 52 min #104642Arnaud.68K
- Level 3
- Messages : 69
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 !
-
CréateurSujet
-
AuteurRéponses
-
22 novembre 2020 à 10 h 29 min #104665donamiga
- Level 5
- Messages : 249
y a pas beaucoup de demos Amiga 500 avec un rubik’s cube
– It Will make you Mad/Intryx (12/1992).
routine apparue la premiere fois dans RAW 4 Headlines/PMC (10/1992) par le meme auteursur Aminet il y a le Rubik Cube Solver
et la magnifique demo Atari Falcon : Joy/New Beat
22 novembre 2020 à 10 h 50 min #104672donamiga- Level 5
- Messages : 249
polygoneSauvePourRotation:
ds.w 21*16,0nan. asmtow semble bien permissif :
soit ds.w 21*16
soit dcb.w 21*16,0
compatible devpac à 2 ou 3 trucs…
22 novembre 2020 à 18 h 58 min #104696jean3.5- Level 8
- Messages : 617
Bravo à toi Arnaud.68000, le rubiks tourne chez moi !
avec quelques bugs sans doute car j’ai du supprimer les ligne avec « font8 »
Quand j’arriverai à faire ça, je serai trop heureux !
Bonne continuation !
22 novembre 2020 à 20 h 15 min #104700jean3.5- Level 8
- Messages : 617
Je me suis rendu compte qu’en enlevant juste le chemin de ta source et en laissant le fichier font8.fnt à la base dans le même dossier que ASMtwo, ça fonctionnait.
Par contre j’obtiens ça :
22 novembre 2020 à 23 h 43 min #104708Arnaud.68K- Level 3
- Messages : 69
Normal Jean tu es en mode Debug
Passe à 0 la ligne 35 environ :
DEBUGDISPLAYTIME=1 ;affiche le debug
Le mode Debug permet de voir graphiquement le temps CPU qu’il te reste (vert) et le temps utilisé (rouge) à chaque balayage écran et donc de jauger les optimisations apportées.
Pour être fluide, il faut pouvoir garder un peu de vert, sinon passer un balayage pour finir les calculs et donc passer de 50 à 25 images/secondes.
Avec de la patience et de l’envie tu peux y arriver
A500 + 512k, adepte du SM attention avec un A devant !
23 novembre 2020 à 17 h 51 min #104828jean3.5- Level 8
- Messages : 617
Ok 1000 pardons ! j’aurais du lire un peu ton code avant de dire et faire n’importe quoi ^^.
Oui merci, j’ai pas beaucoup de temps mais dès que je peux, je me met à l’apprentissage de l’ASM. Pour te donner mon niveau, je ne suis arrivé qu’à la vidéo 4 de Jel que je regarde en boucle en ce moment, donc vraiment qu’au tout début ! Et c’est vraiment encourageant de suivre tes deux projets
24 novembre 2020 à 9 h 22 min #104845Arnaud.68K- Level 3
- Messages : 69
Bonjour,
Voilà j’ai mis de la couleur .. en filaire (pour du plein on verra plus tard)
https://github.com/Amiga68000/Rubiks.Amiga.68000/releases/tag/AA
A500 + 512k, adepte du SM attention avec un A devant !
24 novembre 2020 à 9 h 31 min #104846Arnaud.68K- Level 3
- Messages : 69
@
Ok 1000 pardons ! j’aurais du lire un peu ton code avant de dire et faire n’importe quoi ^^. Oui merci, j’ai pas beaucoup de temps mais dès que je peux, je me met à l’apprentissage de l’ASM. Pour te donner mon niveau, je ne suis arrivé qu’à la vidéo 4 de Jel que je regarde en boucle en ce moment, donc vraiment qu’au tout début ! Et c’est vraiment encourageant de suivre tes deux projets
Merci pour ton retour, ça fait aussi plaisir de voir mon code tourner sur une vrai machine. Perso je suis sur WinUae, mon A500 étant dans les cartons j’aimerais bien faire tourner mon code dessus mais j’ai un peu de taff pour le rendre opérationnel :
- carte interface video pour moniteur à mettre en route
- transférer code sur disquette, à ce propos tu fais comment pour ton 1200 ?
A500 + 512k, adepte du SM attention avec un A devant !
24 novembre 2020 à 10 h 11 min #104847Arnaud.68K- Level 3
- Messages : 69
y a pas beaucoup de demos Amiga 500 avec un rubik’s cube – Made In Croatia/Binary – It Will make you Mad/Intryx sur Aminet il y a le Rubik Cube Solver et la magnifique demo Atari Falcon : Joy/New Beat
Merci DonAmiga
— Made in Croatia —
Ca plante, je sais pas quelle conf il faut, est-ce de l’A500
— Intryx —
Demo sympa, très jolie. Le rubiks est dessiné avec ses faces .. et ses arrêtes en noir sur fond bleu.
Pour du temps réel chapeau car il y a pas mal de calculs :
- pas d’interférence des faces lors des rotations de couronnes (à ce propose je sais pas trop comment faire pour du temps réel)
- arrêtes noires dessinées en plus des faces
- rotation de couronnes
— JOY falcon 30 —
Top je confirme. On est pas dans la même cour, le Faclon 30 est un 68030, belle machine.
A500 + 512k, adepte du SM attention avec un A devant !
24 novembre 2020 à 10 h 37 min #104849donamiga- Level 5
- Messages : 249
made in croatia : plante où ??
A500, rien de bien particulier… 512/512 ou plus, je viens de la faire tourner en quickstart 1.3ds.b FIN_POLY-POLY,$BB
pourquoi ça marche avec asmTwo : ds.b xxx,$BB ça n’existe pas, … faut faire du code qui marche partout : ds.b FIN_POLY-POLY (déjà signalé plus haut)
hint : movea.l 4.w,a6, du code (pc) relatif pour moins de hunks reloc
pour les allocmem, en faire 1 en chip plutôt que plusieurs petits et spreader sur les pointeurs alloc (permet de faire un erroralloc au cas où) et 1 seul freemem:
move.l #COPSIZE+display*3,d0
move.l #$10002,d1
jsr AllocMem(a6)
move.l d0,copperlist_PTR
beq errormem
add.l #COPSIZE,d0
move.l d0,bitplaneA
…note : je trouve la perspective du cube etrange… comme dans celle d’Intryx d’ailleurs
24 novembre 2020 à 11 h 44 min #104859jean3.5- Level 8
- Messages : 617
tu fais comment pour ton 1200 ?
Je ne sais pas si j’ai bien compris la question…
mais justement depuis une semaine*, je n’ai utilisé que mon 1200. Je lance ASMtwo depuis mon disque dur (WB3.1) et je récupère ton code depuis mon pc via une carte CF en pcmcia .
*depuis une semaine… car j’ai pommé mon adaptateur usb-SD qui me sert à lire mes ADF avec mon gotek, comme pour ASMone par exemple. pour ma première tentative de lecture de ton code, je l’avais copier dans le dossier « exemple » dans l’adf de ASMone avec WinUAE, avant de le lire dans le gotek du A500.
Pour le coup, j’ai commandé 2 nouveaux adaptateur SD, dont un qui devrait être dans la boite aux lettre à cette heure
Seul
Voici c que ça donne avec le 1200 de base +fast ram
https://www.facebook.com/100013145713455/videos/1052514681863379/
24 novembre 2020 à 13 h 14 min #104870donamiga- Level 5
- Messages : 249
d’autres remarques : il faudrait assainir le code avec un basecode potable : cf. cours de JEL qui a le merite d’être clair
et là ça devient illisible en code spaghetti sans subroutine
pour le copper par exemple : $FF00 ?? dc.w $yyxx,$FFFEles tableaux, eviter les espaces entre les valeurs : « 12, 15,10 » ça merde avec certains compilateurs
mettre la copperlist direct en chip dans un section copper,data_c
à la limite, idem pour les screens (appelés ici bitplaneA,B,C) dans un section screen,bss_c
pour un phase de test ça permet de mieux savoir où sont les screens qu’avec allocmem
enfin bon, là j’ai testé avec devpac, plus rien ne s’affiche. et avec asmone, c’est une fois sur 2 ecran vide
24 novembre 2020 à 13 h 59 min #104875Arnaud.68K- Level 3
- Messages : 69
>made in croatia : plante où ??
Ça dépend, là c’est 2 secondes après l’apparition du premier objet graphique 3D rouge et blanc (kickstart 1.3, winUAE, temps réel, 500+500ko)
>ds.b FIN_POLY-POLY,$BB
C’était pour des tests, j’avais un bug et je voulais savoir si ma table était bien remplie. Donc au départ je la remplissait avec une valeur quelconque. 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.
>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 ?
>pour les allocmem, en faire 1 en chip plutôt que plusieurs petits et spreader sur les pointeurs alloc (permet de faire un erroralloc au cas où) et 1 seul freemem
Ok ça marche je vais corriger
>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 ?
>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
>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 ?
>à 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
>pour le copper par exemple : $FF00 ?? dc.w $yyxx,$FFFE
C’était dans le code de YRAGAEL, peut pas te dire, ou alors j’ai pas compris ta remarque
Merci pour tes remarques
Voici mes TODO :
;TODO Basecode portable
;TODO AllocMem en 1 fois et en Chip
;TODO supprimer les espaces dans les tables
;TODO clarifier le code avec des SUB
;TODO mettre la copperlist direct en chip dans un section copper,data_cA500 + 512k, adepte du SM attention avec un A devant !
24 novembre 2020 à 14 h 03 min #104878Arnaud.68K- Level 3
- Messages : 69
Je ne sais pas si j’ai bien compris la question…
Si impec, un GOTEK ça marche.
Merci pour ta video, ça fait plaisir
A500 + 512k, adepte du SM attention avec un A devant !
24 novembre 2020 à 14 h 37 min #104891StaffZarnal- Level 22
- Messages : 7453
Pour croatia j’ai un plantage au bout de 3s avec la 4.4 et la dernière beta 4.5.
Ok en 4.3. Certainement à cause des modifs 68000 de la 4.4. Il y avait déja eu quelques problèmes à la suite de ces changements au départ.
Je tente un report sur EAB, le temps de préparer un savestate.
Edit : c’est fait.
A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.