No CPU Challenge
14 sujets de 1 à 14 (sur un total de 14)
-
Admin
Le lien vidéo de @mikedafunk m’a intéressé
Techniquement, cela peut être intéressant à faire … Un seul exécutable (alias « runner ») charge en chip ram le fichier de la démo qui s’exécute uniquement avec les custom chips Amiga
https://github.com/askeksa/NoCpuChallenge
Ils en parlent aussi sur EAB :
Pour info, ton dernier lien ne fonctionne pas.
Peut être ce lien?
https://eab.abime.net/showthread.php?t=121087Mod
N’étant pas un expert du côté soft d’un Amiga, comment cela peut-il marcher ?
Pour moi l’horloge donne le tempo et le CPU doit exécuter du code…mais là pas de code à exécuter et les customs chips se débrouillent ? C’est juste parce qu’on a mis des données dans la RAM que les custom chips vont se servir et dérouler la démo ?
Merci pour vos lumières…
Only AMIGA makes it possible !
Chouette démo au passage.
C’est faux en faite, ou du moins c’est jouer sur les mots.
Peu importe le ‘code executé’ d’ailleurs.
Pour ‘envoyer’ du ‘code’ au custom-chip t’es obligé de ‘coder’ des instructions CPU (pas de miracle)
Après, effectivement… une fois le ‘code’ envoyé au custom chip, le cpu ne fait…. rienMais le titre est un non-sens.
A moins que quelqu’un est une baguette magique pour injecter du code directement dans les custom-chips SANS passer par une commande quelconque de CPU. (abra cadabra)
ce qui, sur Amiga, n’est juste pas possible (ou alors.. grooooooossse magouille hardware… et encore)Après, au niveau émulation, SI l’émulateur le permet (injection de code direct sur un des custom-chips, why not)
Sur un Amiga500 réel, NIETRéparation électronique (Amiga and Co et re-cap.)
Contact UNIQUEMENT via email (voir ma page web)
https://sasfepu78.ddns.net/PA/index.htmlMod
Je commence à comprendre…en fait pour mettre le code dans la RAM il faut au départ utiliser un « runner » qui mettra ensuite le CPU en niveau d’interruption 7 et empêchera tout chip de le relancer par interruption.
C’est expliqué ici : https://github.com/askeksa/NoCpuChallenge/tree/main/runner
Only AMIGA makes it possible !
Hello, petite rectif,
étant donné que les interruptions sont traitées par le processeur, il suffit juste de jouer des masques pour les bloquer.
Et de toute façon, au pire il suffit de faire un vecteur qui pointe sur une routine qui ne fait rien.
Mais dans tous les cas, interruption ou pas, ça ne change pas le fond du problème, c’est plus ou moins inexact.
De mon point de vue,
si on veut du full custom chips, il faut au moins une passe de cpu (un loader si vous préferez) qui instruit une copperlist au copper, et à partir de la copperlist on peut en effet piloter les autres customs chips.
Donc à partir d’une grosse copperlist chargée en chip, une init par le cpu, oui normalement ça fonctionne.
Mais en gros ça sera une sorte d’anim, une énorme copperlist qui orchestrera la démo, on peut faire du son aussi avec.
Ce n’est pas une nouveauté mais ça reste un challenge intéressant.
Créer un exe qui charge tout en chip n’est pas compliqué sur amiga, les sections peuvent être spécialisées en fonction du type de mémoire, donc l’os chargera directement en chip si on place les données et le code dans une section de type chip.
Mais, il faudra bien quelquechose pour désactiver l’os, initialiser proprement le hardware, et indiquer au copper ou se trouve la copperlist, et ça se fera au cpu.
En espérant avoir éclairé un peu.
Titre agicheur 🙂
Mais réel perf et chouette ‘démo’.
Est ce que du coup on peut parler de ‘démo’ du coup ? (question pour _Sam)Réparation électronique (Amiga and Co et re-cap.)
Contact UNIQUEMENT via email (voir ma page web)
https://sasfepu78.ddns.net/PA/index.htmlAdmin
Bah ca reste une démo qui montre ce que les custom-chips (a priori avec peu de fonctions de calcul élaborées) peuvent faire à elles-seules.
Le runner charge en RAM, protège le système si possible (assez de ram) puis passe la main aux customchip jusqu’à la fin de la démo et restore le système si possible (on est pas des sauvages). Durant la démo il semble que ce soit une coppertlist qui séquentialise le tout, c’est à dire un CPU avec 3 instructions: MOVE, WAIT et SKIP. Donc pas de tests ou d’algos direct avec lui, juste du timing et des écritures de données immédiates à des adresses fixes; sauf que la partie ALU (unité logique-arithmétique) d’un cpu complet peut moralement être effectuée via le blitter qui modifie dynamiquement la copperlist. On peut donc réaliser des algos balèzes en combinant l’utilisation des customchips sur du code auto-modifié, mais il faut être astucieux et bien se creuser là tête.
C’est un peu ca le truc bien quand on voit les effets réalisés à l’écran. Ca pose la question : mais comment ont-ils faits ? Et si on se pose cette question, c’est qu’on a affaire non seulement à une démo technique avec de beaux effets, mais aussi à des exploits de programmation sous contraintes, comme dans toutes les bonnes démos oldskool et contrairement aux demos 3D/PC où la solution est dans la puissance du CPU/GPU exclusivement.
J’aime bien l’idée.
Samuel.
Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne 🙁
A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
A500 Vampire V2+ ^8^ 🙂
(mais aussi TO8, TO8D, TO9. Groupe PULS.)Ben surtout la synchro sur la musique dans la démo en plus du reste !
Le codeur à du passer un temps dingue à faire ça, ou alors il à du se faire des outils très intéressants, mais ça laisse dans tous les cas pas indifférent.
Et en plus y’a du design et pas mal de graphismes.
beau résultat en tout cas c’est sur.
Je ne pense pas que ce soit ‘pre-calaculé’ à la main.
Des outils simple en python est assez logique.
Après je ne sais pas si il existe un post détaillé de comment il a fait, ça serait interressant.Réparation électronique (Amiga and Co et re-cap.)
Contact UNIQUEMENT via email (voir ma page web)
https://sasfepu78.ddns.net/PA/index.html
14 sujets de 1 à 14 (sur un total de 14)
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › No CPU Challenge