programmation de demos sur anciennes machines

programmation de demos sur anciennes machines - ASM - Programmation

Marsh Posté le 13-02-2003 à 22:11:54    

:hello:  
 
je me passionne pour les demos écrites sur d'anciennes machines telles que le ST, l'Amiga, etc
 
j'aimerais savoir si certains parmi vous font ou on fait parti d'un groupe de demomakers pour qu'ils m'expliquent les techniques qu'ils employaient, la maniere dont ils codaient, les langages utilisés...
 
je suis un pur noob à ce niveau et j'aimerais vraiment apprendre. j'ai mis ce post dans la cat ASM car je suppose que c'est le langage utilisé pour les demos
 
:jap:


---------------
Bougredane et bougre d'andouille ne font qu'un !
Reply

Marsh Posté le 13-02-2003 à 22:11:54   

Reply

Marsh Posté le 13-02-2003 à 22:13:22    

En gros, le principal outils de travail, c'est le café mélangé à l'aspirine :D

Reply

Marsh Posté le 13-02-2003 à 22:15:47    

Je te conseille, pour débuter, de faire du C, car c'est la langage le plus proche de l'ASM (c'est juste une surcouche syntaxique pour résumer).
 
Ensuite, quand tu commenceras à bien toucher ta bille, un bon bouquin sur l'ASM, et ça ira.
 
Je te conseille de faire au moins un DEUG MIAS, les calculs seront tes meilleurs amis quand viendra l'heure de l'optimisation.
 
Un bouquin décrivant le fonctionnement d'un processeur en détail, avec notamment un tableau récapitulatif du nombre de cycles nécessaires pour chaque instruction ASM ne sera pas de trop non plus.


Message édité par MagicBuzz le 13-02-2003 à 22:16:59
Reply

Marsh Posté le 13-02-2003 à 22:19:34    

tous les secrets des demos CPC  :D  
 
http://ninja2008.free.fr/CPC/

Reply

Marsh Posté le 13-02-2003 à 22:22:25    

merci pour vos réponses :)
 
y'a t'il parmi vous des codeurs ou ex-codeurs ? j'aimerais beaucoup discuter avec l'un d'entre eux


---------------
Bougredane et bougre d'andouille ne font qu'un !
Reply

Marsh Posté le 13-02-2003 à 22:29:26    

sur le ST & l'amiga, il faut connaitre à mort l'assembleur 68000, pas forcément être une pointure en math, mais l'être en algorthmie.
 
sur le ST & l'amiga en plus du cpu, faut connaitre les recoins de tous les chips, vidéo & son, car l'architecture était fixe et on pouvait faire plein de gruges.
 
le pc ayant une architecture variable, et pas de chips dédiés, le CPU était la clé de tout. (on ne confiait rien à autre chose que le CPU, hormis l'audio dans le cas de la GUS :D)
 
alors que sur le ST & l'amiga, le CPU n'est qu'un chef d'orchestre, les chips dédiés étaient la clé des performances & des effets.

Reply

Marsh Posté le 13-02-2003 à 22:30:50    

d'un autre coté, le fait qu'il n'y ait pas de chips dédiés sur le PC, ont permis à celui-ci de se diversifier dans les possiblitées calculatoires, et arrivé au 386/486, la puissance cpu était telle que ça a sonné le glas du ST et de l'Amiga.

Reply

Marsh Posté le 13-02-2003 à 22:32:50    

et l'optimisation venait beaucoup plus de la connaissance du cpu et du hardware de la machine, et de compétances d'imagination algorithmique, que d'avoir fait un deug MIAS. ;)

Reply

Marsh Posté le 13-02-2003 à 22:33:32    

[:cupra]
Ca faisait des mois que j'attendais un tel topic  :love:  
 
vic > Tu tombes bien mon grand, ton modo préféré est également un ex-codeur de démos Amiga & PC !! J'y ai consacré 5 ans de ma courte vie, 5 ans à dormir 2 heures par nuit, à bouffer des trucs que même un américain ne boufferait pas, à chercher l'instruction miracle qui me permettrait de ne pas dépasser la VBL fatidique, etc...
 
C'était le bon temps tiens  :sweat:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-02-2003 à 22:35:55    

Harkonnen a écrit :

[:cupra]
Ca faisait des mois que j'attendais un tel topic  :love:  
 
vic > Tu tombes bien mon grand, ton modo préféré est également un ex-codeur de démos Amiga & PC !! J'y ai consacré 5 ans de ma courte vie, 5 ans à dormir 2 heures par nuit, à bouffer des trucs que même un américain ne boufferait pas, à chercher l'instruction miracle qui me permettrait de ne pas dépasser la VBL fatidique, etc...
 
C'était le bon temps tiens  :sweat:  


 
quand je pense que j'ai passé tout mon temps sur amiga a jouer plutot que de trifouiller la bete => [:leg9]

Reply

Marsh Posté le 13-02-2003 à 22:35:55   

Reply

Marsh Posté le 13-02-2003 à 22:35:58    

Harkonnen a écrit :

[:cupra]
Ca faisait des mois que j'attendais un tel topic  :love:  
 
vic > Tu tombes bien mon grand, ton modo préféré est également un ex-codeur de démos Amiga & PC !! J'y ai consacré 5 ans de ma courte vie, 5 ans à dormir 2 heures par nuit, à bouffer des trucs que même un américain ne boufferait pas, à chercher l'instruction miracle qui me permettrait de ne pas dépasser la VBL fatidique, etc...
 
C'était le bon temps tiens  :sweat:  


 
haha chercher à ce que le temps de traitement tienne le temps d'une vbl, gruger avec le blitter graphique, et synchroniser avec le retour horizontal, je vois le genre  [:the one]

Reply

Marsh Posté le 13-02-2003 à 22:38:44    

chrisbk a écrit :


 
quand je pense que j'ai passé tout mon temps sur amiga a jouer plutot que de trifouiller la bete => [:leg9]


 
moi aussi, c'est avec le PC que j'appris le C et l'asm en parallèle :/
 
j'avais essayé l'asm sur l'amiga avec un assembleur qui s'appellais le seka. j'avais rien compris :( du tout.
 
un fois que j'ai fait du 68000 au bts, j'ai compris le problème avec le ST et l'amiga: le manque de documentation.
 
alors qu'à l'époque du PC, j'avais des tonnes de potes qui faisait de la démo et qui avait pu me fournir de la doc et des tuto... (flower corp) c eux qui m'ont fait découvrir le watcom  :love:  :love:

Reply

Marsh Posté le 13-02-2003 à 22:40:28    

MagicBuzz a écrit :

Je te conseille de faire au moins un DEUG MIAS, les calculs seront tes meilleurs amis quand viendra l'heure de l'optimisation.


toujours à conseiller des trucs énormes toi... :pfff:
j'avais 20 ans quand j'étais demomaker, et je venais de plier mon IUT
 

MagicBuzz a écrit :


Un bouquin décrivant le fonctionnement d'un processeur en détail, avec notamment un tableau récapitulatif du nombre de cycles nécessaires pour chaque instruction ASM ne sera pas de trop non plus.


ça c'est clair que c'est la bible :jap:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-02-2003 à 22:41:15    

chrisbk a écrit :


 
quand je pense que j'ai passé tout mon temps sur amiga a jouer plutot que de trifouiller la bete => [:leg9]

tu sais pas ce que t'as loupé :pfff:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-02-2003 à 22:41:59    

BJOne a écrit :


 
moi aussi, c'est avec le PC que j'appris le C et l'asm en parallèle :/


 
Pareil, j'ai attendu l'IUT pour ca  
 
avec les deux fameuses ligne d'asm  
 
mov eax,0x13
int 10h
 
Une fois ca fait, c'etait parti :sol: :D
 
[citation]
alors qu'à l'époque du PC, j'avais des tonnes de potes qui faisait de la démo et qui avait pu me fournir de la doc et des tuto... (flower corp) c eux qui m'ont fait découvrir le watcom  :love:  :love:  
[/citation]
 
Moi c un des codeurs de cocoon qui m'a filé le watcom (ainsi que les deux lignes du dessus :D) + de l'aide au début, ca m'a lancé. Et la je me retrouve ce soir, a ecrire un linker de fragment de vertex shader, on voit la décadence :D
 
 
 
 
 
 
 

Reply

Marsh Posté le 13-02-2003 à 22:42:17    

BJOne a écrit :


 
haha chercher à ce que le temps de traitement tienne le temps d'une vbl, gruger avec le blitter graphique, et synchroniser avec le retour horizontal, je vois le genre  [:the one]  


mon grand trip c'était d'optimiser jusqu'a ce que le test de temps machine arrive en bas de l'écran, pile sur la dernière ligne :d
la je me disais que j'avais fait du bon boulot !!


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-02-2003 à 22:42:39    

Harkonnen a écrit :

tu sais pas ce que t'as loupé :pfff:


 
je m'en mordrais bien les couilles si j'avais l'elasticité requise :D

Reply

Marsh Posté le 13-02-2003 à 22:45:53    

BJOne a écrit :

j'avais essayé l'asm sur l'amiga avec un assembleur qui s'appellais le seka. j'avais rien compris :( du tout.


pas étonnant avec Seka !
Devpac powaaaa [:yaisse2]
puis plus tard, l'excellent PhxAss, freeware :love:
 

BJOne a écrit :


un fois que j'ai fait du 68000 au bts, j'ai compris le problème avec le ST et l'amiga: le manque de documentation.


moi c'est quand je suis passé à l'ASM Intel que j'ai compris que jamais je ne retrouverais la souplesse de programmation en assembleur des processeurs 680x0  :sweat:  
 

BJOne a écrit :


alors qu'à l'époque du PC, j'avais des tonnes de potes qui faisait de la démo et qui avait pu me fournir de la doc et des tuto... (flower corp) c eux qui m'ont fait découvrir le watcom  :love:  :love:  


Watcom :love: :love:
Le meilleur compilo C sous Dos jamais sorti !!! A l'époque j'étais soufflé quand je voyais les optimisations qu'il me faisait !!


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-02-2003 à 22:47:14    

Harkonnen a écrit :


mon grand trip c'était d'optimiser jusqu'a ce que le test de temps machine arrive en bas de l'écran, pile sur la dernière ligne :d
la je me disais que j'avais fait du bon boulot !!


 
enfin j'ai pas pratiqué sur mon amiga, c'est quand j'avais de la pratique sur pc, que j'ai été voir comment on faisait à l'ancienne :D  [:ddt]

Reply

Marsh Posté le 13-02-2003 à 22:48:32    

Harkonnen a écrit :


Watcom :love: :love:
Le meilleur compilo C sous Dos jamais sorti !!! A l'époque j'étais soufflé quand je voyais les optimisations qu'il me faisait !!


 
c'est clair c'est lui qui m'a appris à optimiser en assembleur avant que j'ai de la doc précise pour le pentium :D

Reply

Marsh Posté le 13-02-2003 à 22:51:33    

Harkonnen a écrit :


moi c'est quand je suis passé à l'ASM Intel que j'ai compris que jamais je ne retrouverais la souplesse de programmation en assembleur des processeurs 680x0  :sweat:  


 
en mode protégé c'est pas mal quand même :D
 
mais y'a un truc qui me chiffonne, sur le 68000, on pouvait que multiplier un 16 bits par un 16 bits pour avoir un 32 bits (et inversement pour la division), alors que sur le 386 tu pouvais avoir un 32x32=>64, ce qui est vachement plus pratique pour les calculs en virgule fixe.
 
ça devait être la misère sur le 68000 pour faire de la 3d, du traçage de polygone, c'est ptet pour ça que c'est la 2D c'est développée, et que la 3D l'a tué :D

Reply

Marsh Posté le 13-02-2003 à 22:52:48    

ah la la, que de souvenirs  :sweat:  
je me rappelle de mon 1er rotozoom ! j'avais fait une version de test en utilisant des sinus et cosinus calculés en temps réél via le FPU pour voir (la méthode consistait plutot à stocker les sinus de 0 à 2*pi dans une table, et d'ajouter pi/4 à ces valeurs pour obtenir les cosinus correspondants), j'ai vite vu... trop lent !!  :sweat:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-02-2003 à 22:53:35    

BJOne a écrit :


 
ça devait être la misère sur le 68000 pour faire de la 3d, du traçage de polygone, c'est ptet pour ça que c'est la 2D c'est développée, et que la 3D l'a tué :D


 
 
la tracage de poly, sur amiga, ca se faisait pas au tracer de contour + un coup de blitter au XOR ? (confirmation needed :D) (et non a la méthode PC, tracage de triangle)
 
 

Reply

Marsh Posté le 13-02-2003 à 22:55:20    

BJOne a écrit :


 
en mode protégé c'est pas mal quand même :D
 
mais y'a un truc qui me chiffonne, sur le 68000, on pouvait que multiplier un 16 bits par un 16 bits pour avoir un 32 bits (et inversement pour la division), alors que sur le 386 tu pouvais avoir un 32x32=>64, ce qui est vachement plus pratique pour les calculs en virgule fixe.


ben le 68000 avait un bus de données sur 16 bits :/
 

BJOne a écrit :


ça devait être la misère sur le 68000 pour faire de la 3d, du traçage de polygone, c'est ptet pour ça que c'est la 2D c'est développée, et que la 3D l'a tué :D


je pense plutot que ce qui a tué la 2D sur Amiga est l'absence de mode Chunky, beaucoup plus rapide pour déplacer une grande quantité de points à la VBL que le mode bitplane utilisé. ce mode nécessitait des algos de conversion chunky2planar assez couteux en temps machine !


Message édité par Harkonnen le 13-02-2003 à 22:56:10

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-02-2003 à 22:55:23    

Harkonnen a écrit :

ah la la, que de souvenirs  :sweat:  
je me rappelle de mon 1er rotozoom ! j'avais fait une version de test en utilisant des sinus et cosinus calculés en temps réél via le FPU pour voir (la méthode consistait plutot à stocker les sinus de 0 à 2*pi dans une table, et d'ajouter pi/4 à ces valeurs pour obtenir les cosinus correspondants), j'ai vite vu... trop lent !!  :sweat:  


 
mon premier freedir tunnel, pareil, passé de FPU a calcul en virgule fixe, le gain fabuleux, la classe, le bonheur :D
 
En fait, je m'amusais vachement plus a faire des effets pourris qu'a faire les moteurs que je fais now (encore que mon moteur DX7 a sorti pour la premiere une scene impeccable, avec camera tex et objet qui bougeait, ben je crois que j'ai jamais été aussi fier de moi de ma vie)
 
 

Reply

Marsh Posté le 13-02-2003 à 22:58:47    

chrisbk a écrit :


 
 
la tracage de poly, sur amiga, ca se faisait pas au tracer de contour + un coup de blitter au XOR ? (confirmation needed :D)  


exact ! et vu que tu les traçais généralement sur 2 bitplanes pour avoir de quoi dessiner, tu étais limité à 4 couleurs ! d'ou les polygones tramés qu'on voyait. on simulait une nouvelle couleur en alternant 2 points de couleur différente.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-02-2003 à 23:00:36    

chrisbk a écrit :


 
mon premier freedir tunnel, pareil, passé de FPU a calcul en virgule fixe, le gain fabuleux, la classe, le bonheur :D


et les shade bobs, les merveilleux shade bobs ! :love:
ou comment faire de magnifiques trainées en faisant une simple addition !!


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-02-2003 à 23:00:36    

Harkonnen a écrit :


ben le 68000 avait un bus de données sur 16 bits :/


 
bin ouais mais y pouvaient faire l'accès en deux coup, le move.l te lit bien 32 bits en deux cycles non ?
 
je veux dire y pouvaient bien faire une multiplication 32*32=>64 juste avec les registres....

Reply

Marsh Posté le 13-02-2003 à 23:00:46    

Harkonnen a écrit :


exact ! et vu que tu les traçais généralement sur 2 bitplanes pour avoir de quoi dessiner, tu étais limité à 4 couleurs ! d'ou les polygones tramés qu'on voyait. on simulait une nouvelle couleur en alternant 2 points de couleur différente.


 
tu vois, en fait ces techniques de l'ancien temps peuvent paraitre maintenant inutile, mais dPVS utilise ca (tracage au XOR) pour effectuer son occlusion culling (enfin, en partie)
 
Comme quoi, ca sert, ces vieux trucs :)

Reply

Marsh Posté le 13-02-2003 à 23:02:11    

j'ai du mal à vous suivre, j'ai survolé la prog sur amiga moa  [:sisicaivrai]  
 
je suis de l'école tout-cpu àlaintel :D

Reply

Marsh Posté le 13-02-2003 à 23:02:29    

BJOne a écrit :


 
bin ouais mais y pouvaient faire l'accès en deux coup, le move.l te lit bien 32 bits en deux cycles non ?
 
je veux dire y pouvaient bien faire une multiplication 32*32=>64 juste avec les registres....


oui, mais 2 registres étaient utilisés pour le résultat : un registre pour le double mot de poids fort et un autre pour le double mot de poids faible.
on y allait à grands coups de rol.w et ror.w pour trier tout çà !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-02-2003 à 23:03:11    

Harkonnen a écrit :


et les shade bobs, les merveilleux shade bobs ! :love:  
ou comment faire de magnifiques trainées en faisant une simple addition !!  


 
le mode d'affichage 8bits avait son bon coté, quand meme [:ddr555]

Reply

Marsh Posté le 13-02-2003 à 23:04:09    

chrisbk a écrit :


 
tu vois, en fait ces techniques de l'ancien temps peuvent paraitre maintenant inutile, mais dPVS utilise ca (tracage au XOR) pour effectuer son occlusion culling (enfin, en partie)
 
Comme quoi, ca sert, ces vieux trucs :)


le meilleur exemple est le double buffer, créé sur Amiga ! le truc qui ne se démodera jamais !!


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-02-2003 à 23:04:46    

BJOne a écrit :

j'ai du mal à vous suivre, j'ai survolé la prog sur amiga moa  [:sisicaivrai]  
 
je suis de l'école tout-cpu àlaintel :D


 
j'aime bpc le MMX, je trouve ca sympa (et ca a joliment boosté les perfs de mon alpha blending, surtout quand je l'ai couplé a la superbe ([:prosterne]) instruction prefetch)

Reply

Marsh Posté le 13-02-2003 à 23:05:45    

Harkonnen a écrit :


le meilleur exemple est le double buffer, créé sur Amiga ! le truc qui ne se démodera jamais !!


 
ah ben ca je vois pas comment on pourrait s'en passer :D
 
Me rapelle, a mes début en 13h j'ecrivais directement dans la ram video. "Mais pourquoi mon truc rame et clignote comme ca :??:"

Reply

Marsh Posté le 13-02-2003 à 23:08:30    

chrisbk a écrit :


 
ah ben ca je vois pas comment on pourrait s'en passer :D
 
Me rapelle, a mes début en 13h j'ecrivais directement dans la ram video. "Mais pourquoi mon truc rame et clignote comme ca :??:"
 


quand je suis passé sur PC, 2 trucs m'ont surpris au niveau de la vidéo :
- l'adresse figée de la VRAM (A000h pour les intimes) : quand tu es habitué à l'Amiga et au copper, ça fait tout drole !
- le fait que transférer à grands coups de movsb (on bossait en 256 couleurs) la zone off-screen entière vers la VRAM était beaucoup plus rapide que d'écrire directement dans la VRAM


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-02-2003 à 23:09:24    

chrisbk a écrit :


 
ah ben ca je vois pas comment on pourrait s'en passer :D
 
Me rapelle, a mes début en 13h j'ecrivais directement dans la ram video. "Mais pourquoi mon truc rame et clignote comme ca :??:"
 


 
:lol:

Reply

Marsh Posté le 13-02-2003 à 23:12:08    

skoi le truc que vous avez codé et dont vous etes le plus content ? (a tord ou a raison :D)

Reply

Marsh Posté le 13-02-2003 à 23:13:00    

Harkonnen a écrit :


quand je suis passé sur PC, 2 trucs m'ont surpris au niveau de la vidéo :
- l'adresse figée de la VRAM (A000h pour les intimes) : quand tu es habitué à l'Amiga et au copper, ça fait tout drole !
- le fait que transférer à grands coups de movsb (on bossait en 256 couleurs) la zone off-screen entière vers la VRAM était beaucoup plus rapide que d'écrire directement dans la VRAM


 
kler, mais ça dépendait de la carte vidéo...
 
Tseng Labs en VLB roxor  :sol:  
Rest in peace Tseng  [:sisicaivrai]  
 
sinon vive le Vesa 2.0 en mode protégé :D
(j'ai encore la libraire que je m'étais fait, si je regarde le code je vais me tirer une balle)
 
et ma routine de triangle en ombrage de gouraud (sans texture), ou j'avais réussi à cumuler deux pixels en un coup (écriture 16 bits en ram vidéo, fill-rate sympa, je faisait du 1024x768 avec un pentium 200 avec des modèles ASC)

Reply

Marsh Posté le 13-02-2003 à 23:14:06    

chrisbk a écrit :

skoi le truc que vous avez codé et dont vous etes le plus content ? (a tord ou a raison :D)


 
bah j'ai passé des heures de ouf sur ce que je faisais avec le Watcom en mode protégé...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed