Logicielsmoto.com

Nous sommes le 26 Oct 2021, 08:30

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 264 messages ]  Aller à la page Précédente  1 ... 9, 10, 11, 12, 13, 14, 15 ... 18  Suivante
Auteur Message
MessagePosté: 26 Aoû 2021, 14:51 
Hors ligne

Inscription: 12 Fév 2021, 15:54
Messages: 34
Bentoc a écrit:
Au passage merci à fxrobin pour sa première contribution au github (je viens d'intégrer son premier pull request).
Il a fait les tests et les adaptations nécessaires pour que la compilation fonctionne sous linux et réglé des incompatibilités avec les dernières versions java.



De rien.

Moi je suis très impressionné par le rendu sur Sonic !!!!!

_________________
Fan de Atari 2600, Thomson MO5, Thomson TO8, Atari STE.
Retro-Codeur à mes heures perdues. https://www.fxjavadevblog.fr


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 26 Aoû 2021, 14:54 
Hors ligne

Inscription: 12 Fév 2021, 15:54
Messages: 34
Samuel Devulder a écrit:
Il faudrait que TEO émule le fonctionnement de la cartouche MegaRom2. (TEO possède aussi un débuggeur sympa.)


C'est TEO que j'utilise sous Linux d'ailleurs.
En revanche, je ne suis pas (encore) très à l'aise avec son Debugger.

_________________
Fan de Atari 2600, Thomson MO5, Thomson TO8, Atari STE.
Retro-Codeur à mes heures perdues. https://www.fxjavadevblog.fr


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 26 Aoû 2021, 15:04 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 198
Localisation: Var
Yoann Riou a écrit:
Quand tu parles d'images compilees, tu veux dire que c'est du code assembleur qui les affiches (plutot qu'une routine generique qui lit dans les data des images pour les afficher) ? Si c'est le cas, on effet, ca doit prendre de la place mais en retour, c'est "ultra" rapide. Pour les demos que j'ai ecrit, et notament "Vector Balls" et "Space Dance", tous les sprites sont affiches direct par assembleur avec toutes les optimisations possible par rapport a chaque octets, et au passage si possible en utilisant la valeurs des octets precedents lorsqu'on peut en tirer quelque chose.


C'est exactement ça, c'est un générateur en java qui le fait tout seul (j'y ai passé quelques mois ...)

La dernière phase du générateur (une fois que le code est produit) c'est un algo "brute force" qui va permuter les registres et trouver les combinaisons les plus rapides en se basant sur le principe que tu as décrit : si un registre est déjà chargé avec la bonne valeur elle est réutilisée et on économise son chargement.

Bon on ne fait pas le test de toutes les combinaisons évidement ... mais en général ça fait gagner qq % en cycles


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 26 Aoû 2021, 15:19 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 198
Localisation: Var
En fonction des suites de pixels rencontrées j'utilise différents patterns.
Si je prend un bout de code au hasard en plein milieu d'une image (en sortie du générateur) on a par exemple :

Code:
     LDA #$b0
     STD -8,U
     LDA #$00
     LDX #$00dc
     PSHU D,X,Y
     LEAU -34,U

     STD -8,U
     PSHU D,X,Y
     LEAU -34,U

     STD -8,U
     LDX #$00bc
     LDY #$6888
     PSHU D,X,Y
     LEAU -34,U


(ça correspond à trois lignes d'une image)

C'est quand même pas mal ... bon a la main on peut faire mieux dans certains cas mais le but c'est le traitement en masse.
Peut être qu'en faisant une revue du code généré on pourrait améliorer le générateur.

Tu n'avais peut être pas vu au début du fil mais il y a deux générateurs, le second sauvegarde le background dans un buffer avant d'écrire en mode sprite compilé. Le code est entremêlé et tout se fait en une seule passe => gain de temps ;-)


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 26 Aoû 2021, 16:21 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 457
Bentoc a écrit:
Tu n'avais peut être pas vu au début du fil mais il y a deux générateurs, le second sauvegarde le background dans un buffer avant d'écrire en mode sprite compilé. Le code est entremêlé et tout se fait en une seule passe => gain de temps ;-)


Dans Space Dance, vu que le background est static, je ne le sauvegarde mais pour chaque sprite, je le recharge directement a partir de la page ou le background est stocke. Ca evite de sauvegarder ce qu'on a deja en memoire.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 26 Aoû 2021, 17:23 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 198
Localisation: Var
Oui avec un fond fixe et tous les sprites qui sont rafraichis à chaque image c'est carrément la meilleur des solutions de venir réutiliser le background.

Au passage : Bravo pour votre belle collection de démo.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 07 Sep 2021, 16:26 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 437
Citation:
Tout avoir sur une carte : c'est "chaud" d'un point de vue taille car chacune des deux "cartes son" fait déjà la taille d'un SDDRIVE ;-) et puis au niveau du coût, de la fabrication ...

J'aimerai bien aussi me fabriquer un clone de la carte de synthèse vocale, personne ne l'a fait ?


Pas ma connaissance, mais tout cela est relativement facile et il y a beaucoup de marge pour reduire les couts et ameliorer l'integration de ces cartes son.

La synthese vocale avec le MEA 8000 n'a pas grand chose dessus. Peut-etre un projet pour quand j'aurais du temps ... :violon:

Le truc avec ce MEA8000, c'est pas le hard, c'est sa programmation. Je reve d'un outil qui determine automatiquement les phonemes les plus proches d'un son digitalise pour pouvoir le rejouer (avec une qualite forcement degradee). La bande passante du MEA8000 se compte en centaines de bits, max 1-2 kbits/s, c'est tres leger.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 07 Sep 2021, 17:20 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 198
Localisation: Var
Ils parlent de cette technique dans une publication technique (http://c.papy.free.fr/ZX81/original/mea8000-1.pdf) :

Fichier(s) joint(s):
mea8000-1.png
mea8000-1.png [ 61.52 Kio | Vu 527 fois ]


Le processus semble décrit dans le pdf ici :
https://patentimages.storage.googleapis.com/27/c9/ba/289fd73333b28b/NL8603163A.pdf

ça dépasse largement mon savoir mathématique et linguistique ;-)


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 10 Sep 2021, 09:06 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 437
C'est un A, donc le brevet n'a pas été accordé ou a été retiré avant acceptation, ce qui explique sans doute le manque de traduction. Cela signifie qu'il n'apporte rien à l'état de l'art, je vais regarder les références qu'il mentionne.

Mais j'ai compris l'idée et ça correspond à ce que j'avais déjà imaginé dans les grandes lignes : analyse spectrale avec une petite transformée de Fourier et extraction des 4 fréquences principales. Ca se tente, finalement ...


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 11 Sep 2021, 12:12 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 198
Localisation: Var
Fool-DupleX a écrit:
Citation:
Tout avoir sur une carte : c'est "chaud" d'un point de vue taille car chacune des deux "cartes son" fait déjà la taille d'un SDDRIVE ;-) et puis au niveau du coût, de la fabrication ...

J'aimerai bien aussi me fabriquer un clone de la carte de synthèse vocale, personne ne l'a fait ?


Pas ma connaissance, mais tout cela est relativement facile et il y a beaucoup de marge pour reduire les couts et ameliorer l'integration de ces cartes son.


le code vhdl de ces puces (ym2413, SN76489, ...) existe, pourquoi pas un fpga + sortie audio.
Sur MSX ce genre de chose existe (sous forme de cartouche) :
https://www.msx.org/wiki/RBSC_Carnivore2

Sur Thomson il me semble que le son n'est pas connecté au port cartouche, on resterai sur le port d'extension.
Si on intègre en plus les fonctionnalités de sddrive ... ce serait effectivement top et permettrai de développer/utiliser des extensions "virtuelles".
Bon je comprend que ça puisse ne pas plaire à tout le monde, on perd un peu en authenticité.

Le code + circuit du carnivore2 est dispo sur github :
https://github.com/RBSC/Carnivore2


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 16 Sep 2021, 22:52 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 198
Localisation: Var
Voila ce que donne le moteur de Tilemap.
J'ai ajouté une fonction auto-scroll, dont le pas de déplacement correspond à un tile.
L'auto-scroll tient compte des limites min et max de camera pour la submap et s'arrête en butée si nécessaire.
Quand on le lance on choisi une direction, une vitesse ainsi qu'une durée.

Les submaps, les sprites ainsi que la camera ont un positionnement dans la map codé sur 16bits pour x et 16 bits pour y.
Cette position est ensuite ramenée à un systeme 8bit pour le positionnement écran des sprites et submap en fonction de la position de camera.

Pour avoir un rendu fidèle à RD, le code objet fige les contrôles et l'animation lors de l'auto scroll.

Le changement de submap est opéré de la manière suivante :
- a chaque tour de la boucle principale on vérifie si le personnage entre en collision avec une zone positionnée dans la map.
- on ne contrôle que la zone de sortie de la submap en cours (évidement)
- en cas de collision, on charge la submap suivante et on passe à la routine de détection suivante

phpBB [video]


Le code est modulaire et peut être adapté a tout type de jeu ...
J'ai encore pas mal d'idées pour les tiles et le scroll, mais je dois avancer sur d'autres sujets, j'y reviendrai plus tard.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 17 Sep 2021, 07:34 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1523
Localisation: Brest
Ca a l'air de marcher pas mal. C'est cool :sol:

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 17 Sep 2021, 13:46 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 457
Samuel Devulder a écrit:
Ca a l'air de marcher pas mal. C'est cool :sol:


Ca déchire tu veux dire ! :eek:

[edit : Ca prend combien de place cette petite demo ? ]


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 17 Sep 2021, 14:48 
Hors ligne

Inscription: 12 Fév 2021, 15:54
Messages: 34
Bentoc me corrigera si me trompe, mais sur disk ça prend un peu moins de 16 Ko
mais comme tout est passé à exomizer, après décompression, en RAM cela représente un peu plus de 40 Ko

_________________
Fan de Atari 2600, Thomson MO5, Thomson TO8, Atari STE.
Retro-Codeur à mes heures perdues. https://www.fxjavadevblog.fr


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 17 Sep 2021, 15:00 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 198
Localisation: Var
merci ;-)

Pour les chiffres je vous donne ça ce soir en détail.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 264 messages ]  Aller à la page Précédente  1 ... 9, 10, 11, 12, 13, 14, 15 ... 18  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com