[ATARI ST] Tutorial pour jouer des fichiers YM

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Carl, Papy.G, fneck

Répondre
Avatar de l’utilisateur
fxrobin
Messages : 54
Inscription : 07 mars 2019 13:51
Localisation : RENNES
Contact :

[ATARI ST] Tutorial pour jouer des fichiers YM

Message par fxrobin »

Bonjour à tous,

je vous propose un nouvel article sur comment jouer des fichiers YM sur Atari ST et son YM-2149F.
Article : https://www.fxjavadevblog.fr/m68k-atari-st-ym-player

Exemple :


Bonne lecture !
Fan d'ATARI 2600, de THOMSON MO5-TO8 et d'ATARI ST
Mes articles de retro-prog : https://www.fxjavadevblog.fr/retro-programming/
Zebulon
Messages : 672
Inscription : 02 nov. 2020 14:03

Re: [ATARI ST] Tutorial pour jouer des fichiers YM

Message par Zebulon »

Merci pour ce tuto très détaillé et instructif sur le format YM. Je ne connais pas Atari ST mais je suppose que la logique est transposable sur Amstrad CPC. Je suis surpris par l'organisation du fichier en lui-même. C'est clair que niveau compression c'est idéal. Par contre le streaming est impossible (probablement de toutes façons les temps d'accès disque seraient prohibitifs) mais tout de même effectuer 14 fois l'addition de l'offset 50 fois par seconde... C'est pas glop en terme d'optimisation si on veut faire autre chose à côté. La décompression/réorganisation du fichier en mémoire est évidemment assez lourde mais sur une boucle musicale dans un jeu ça vaut le coup je pense. Sinon en terme de bitrate on est à 5600 bits par seconde de musique... Ça laisse rêveur. :D
Avatar de l’utilisateur
dvallet
Messages : 53
Inscription : 10 août 2013 09:52
Localisation : Nord de la France

Re: [ATARI ST] Tutorial pour jouer des fichiers YM

Message par dvallet »

Bravo, excellent tuto.
Alias DidierV, CEO Mag
Fan d'Oric et de Micro-Ordinateurs 8bits
Markerror
Messages : 1770
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: [ATARI ST] Tutorial pour jouer des fichiers YM

Message par Markerror »

Le format YM (je devrais dire les formats YM, car il y a plusieurs versions) a suscité l'intérêt des démo-makers CPC à la fin des années 90, et pas mal de monde a essayé de les utiliser. Comme vous vous en doutez, la problématique tenait à la taille de ces fichiers. Sur un CPC, il fallait trouver un moyen de faire tenir en mémoire tout ça. La base était de réorganiser les données en virant tout ce qui n'était pas utile et en essayant de compresser le reste. C'est cette étape qui s'est avérée le plus compliqué :-).

Le grand gagnant à l'époque a été Madram/Overlanders qui a créé le kit AYC.Par rapport à un fichier YM brut, le gain est très appréciable et on peut utiliser la plupart des fichiers YM Atari et Spectrum sans difficulté. Cerise sur le gâteau, le player YM est rapide. Il a donc été utilisé dans de nombreuses démos, y compris avec des musiques créées sur CPC.

Plus tard, un player YM "à temps fixe"a été utilisé, créé par Hicks il me semble (pas sûr). Là encore, gros intérêt pour les démos.

Seul vrai défaut de ce format, vu que la fréquence de la puce AY n'est pas la même entre toutes les machines de l'époque, les sons "hard" passent mal dans les conversions. Ca peut aller du "correct" au franchement horrible (quand le gars ayant fait la conversion n'a pas essayé de compenser... ).
jasz
Messages : 1126
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: [ATARI ST] Tutorial pour jouer des fichiers YM

Message par jasz »

Il n'est pas nécessaire de passer par l'extraBios pour initialiser le timer A (vecteur $134.w)
Tu peux le faire en 4 lignes de codes ASM. ;)

Il faut que je retrouve mon vieux calepin :roll: A l'époque, nous n'avions pas internet et on trouvait des solutions en examinant les programmes des autres. Simplement pour dire que le C n'était, en ces temps, pas d'une grande utilité. :lol:
Avatar de l’utilisateur
fxrobin
Messages : 54
Inscription : 07 mars 2019 13:51
Localisation : RENNES
Contact :

Re: [ATARI ST] Tutorial pour jouer des fichiers YM

Message par fxrobin »

Bonjour jasz,

merci pour ton retour.

Effectivement j'avais hésité à directement changer le vecteur d'interruption du Timer A directement en ASM.
En mixant C et ASM, choisir quoi faire faire par l'un et par l'autre n'est pas toujours facile :-)
Pour le coup j'ai préféré choisir la solution XBIOS car je voulais aussi pouvoir proposer une implémentation full C (où l'ASM était donc proscrit).

Tu as une grosse expérience sur Atari ST : tu as des liens ou des docs à toi (des astuces) à partager pour que je puisse monter + en compétence. Ce serait super !

Thanx.
Fan d'ATARI 2600, de THOMSON MO5-TO8 et d'ATARI ST
Mes articles de retro-prog : https://www.fxjavadevblog.fr/retro-programming/
jasz
Messages : 1126
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: [ATARI ST] Tutorial pour jouer des fichiers YM

Message par jasz »

Mis a par pour POV (Persistence Of Vision) ou les scripts se rapprochaient au C et quelques 48 heures d'attente pour avoir une image 24 bits raytracée, ce langage n'était, à ma connaissance, que très très peu utilisé voire pas du tout. Généralement, le GFA Basic était un moyen de substitution plus courant.

Tu as fait allusion dans ton commentaire du IKBD et pour sortir du programme il faut appuyer sur ESC.
Le clavier du ST possède un ship. Les valeurs envoyées ont deux états; pression et relâché. Dans ton article, tu précises une valeur relâchée (129 --> $#81) c'est à dire 1 sur pression (appuyer).

Le code escape le plus simple est

Code : Tout sélectionner

.wait
	CMP.B  1,$FFFFC002
	BNE    .wait
Avatar de l’utilisateur
fxrobin
Messages : 54
Inscription : 07 mars 2019 13:51
Localisation : RENNES
Contact :

Re: [ATARI ST] Tutorial pour jouer des fichiers YM

Message par fxrobin »

Oui, le relâché est volontaire aussi :-) C'est ce que je préfère comme comportement :wink:

J'ai effectivement écrit ceci :
Dans notre cas, il suffit de scruter l’adresse $FFFC02 et de regarder si elle vaut 129 ce qui correspond à l’appui et au relâchement de la touche ESC
Je ne suis pas rentré dans le détail des scancodes et justement de la valeur retournée. Je trouvais déjà l'article bien (trop) long comme ça.
Effectivement '1' c'est le scancode de la touche ESC enfoncée, '129' c'est le code de la touche ESC '1 + 128' (bit 7 à 1) enfoncée et relâchée.

Cependant dans le programme et dans son exécution j'affiche un peu d'information sur le contenu de l'adresse $FFFC02 en haut à droite.
On y voit le bit 7 passer à "1" quand on relâche n'importe quelle touche. (ainsi que le code de la touche).

Tu me fais regretter d'avoir mis sous silence ces "détails" dans la partie sur le clavier :cry:
Note : dans les liens en fin d'article il y a une référence vers les scancodes.
Fan d'ATARI 2600, de THOMSON MO5-TO8 et d'ATARI ST
Mes articles de retro-prog : https://www.fxjavadevblog.fr/retro-programming/
Dmanu78
Messages : 134
Inscription : 20 juin 2020 14:28
Localisation : Yvelines

Re: [ATARI ST] Tutorial pour jouer des fichiers YM

Message par Dmanu78 »

Bravo pour cet article que j’ai lu avec beaucoup d’intérêt. C’est très bien vulgarisé. On pourrait remplacer ATARI par CPC que ce serait quasi identique quoi que l’accès aux registres y est beaucoup plus aisé sur le ST…J’ai effectivement vu des players YM sur amstrad CPC avec des résultats convaincants…
J’ai hâte de lire ton prochain article :)
Avatar de l’utilisateur
fxrobin
Messages : 54
Inscription : 07 mars 2019 13:51
Localisation : RENNES
Contact :

Re: [ATARI ST] Tutorial pour jouer des fichiers YM

Message par fxrobin »

Dmanu78 a écrit : 30 juin 2021 14:42 J’ai hâte de lire ton prochain article :)
C'est un très beau compliment ! Ca me motive beaucoup !
Merci.
Fan d'ATARI 2600, de THOMSON MO5-TO8 et d'ATARI ST
Mes articles de retro-prog : https://www.fxjavadevblog.fr/retro-programming/
Répondre