Logicielsmoto.com

Nous sommes le 03 Juil 2022, 19:49

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 420 messages ]  Aller à la page Précédente  1 ... 24, 25, 26, 27, 28  Suivante
Auteur Message
MessagePosté: 19 Mai 2022, 12:23 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 479
C'est a peine croyable. Sonic est le jeux que je n'aurais jamais choisi pour faire une conversion. Lemmings, c'etait deja assez pour moi :D

Ca dechire grave !

Je remarque ici un GROS block d'avant plant, c'est normal ?

Fichier(s) joint(s):
Screen Shot 2022-05-19 at 4.07.13 PM.png
Screen Shot 2022-05-19 at 4.07.13 PM.png [ 242.53 Kio | Vu 496 fois ]


J'imagine bien que Sonic ne pourra jamais se trouver la, mais, je me demandais si c'etait normal.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 21 Mai 2022, 08:18 
En ligne

Inscription: 21 Avr 2019, 21:48
Messages: 307
Localisation: Var
Hello, oui c’est normal il y a un peu de hauteur sous plafond dans la grotte. Ça masque aussi le bouclier quand sonic en a un (enfin il y a un bug dans le jeu original ou la bulle depasse, c’est corrigé dans la version pour mobile)


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 25 Mai 2022, 09:05 
En ligne

Inscription: 21 Avr 2019, 21:48
Messages: 307
Localisation: Var
Petite session de debug "synchronisée" ;-)
A gauche le code megadrive (MAME) ... a droite le code pour TO8

Le code de gestion de collision avec le décors est implémenté (2500 lignes d'asm ...), il faut maintenant le debug !

Fichier(s) joint(s):
debug session.png
debug session.png [ 251.7 Kio | Vu 458 fois ]


Il va me falloir bcp de patience :oui:


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 25 Mai 2022, 11:31 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1644
Localisation: Brest
Oh mais tu as une sorte de convertisseur automatique du code 68000 ver le 6809. Les registres du 68000 sont émulé au travers de variables globales. La dessus quand c'est une donnée, le calcul est effectué par le registre D, et si c'est une adresse par le registre X (voire juste une indirection entre $1E7F4 coté 68000 et ligne 169 coté 6809).

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 25 Mai 2022, 12:12 
En ligne

Inscription: 21 Avr 2019, 21:48
Messages: 307
Localisation: Var
Les routines sur cette partie du code utilisent beaucoup de registres, donc j'ai déclaré des variables en direct page pour chacun d'entre eux.
Le code est tellement long que j'ai décidé de conserver au maximum les noms de variables et le noms de registres, sinon ça devenait trop complexe.
Une fois le code fonctionnel on pourra envisager des optims et de la factorisation de code (on retrouve des troncs communs dupliqués parfois 4 fois !)

Code:
; DIRECT PAGE TEMP VARIABLES
; --------------------------
glb_d0   equ   direct_page+128
glb_d0_b equ   direct_page+129
glb_d1   equ   direct_page+130
glb_d1_b equ   direct_page+131
glb_d2   equ   direct_page+132
glb_d2_b equ   direct_page+133
; must be a free byte here for 24bits computation
glb_d3   equ   direct_page+135
glb_d3_b equ   direct_page+136
; must be a free byte here for 24bits computation
glb_d4   equ   direct_page+138
glb_d4_b equ   direct_page+139
glb_d5   equ   direct_page+140
glb_d5_b equ   direct_page+141
glb_d6   equ   direct_page+142
glb_d6_b equ   direct_page+143
glb_a3   equ   direct_page+144
glb_a3_b equ   direct_page+145
glb_a4   equ   direct_page+146
glb_a4_b equ   direct_page+147
glb_page equ   direct_page+148


Pour convertir le code je n'ai pas encore d'outil très évolué (peut être un jour), pour l'instant j'utilise quelques expressions régulières pour faire du rechercher/remplacer, ce qui réduit la quantité de code à écrire.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 25 Mai 2022, 13:23 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1644
Localisation: Brest
oui il y a des optims possibles
Code:
move.b (A2,D0.w),d0
andi #$ff,d0
beq ...
lea $42d50.l,A2
move.b (a2,d0.w),(a4)
devient
Code:
ldd glb_d0
ldb d,x
anda #0 --> clra mais en fait il ne sert à rien à cause du abx
std glb_d0
beq ..
ldd glb_d0 --> sert à rien (D déjà chargé), sauf si un saut tombe juste sur cette adresse.
ldx ColCurveMap
abx     \___  c'est déjà optimisé ?
lda ,x  /       Ici j'aurais vu un lda d,x en traduction automatique
sta [glb_a4]

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 25 Mai 2022, 21:50 
Hors ligne

Inscription: 22 Mai 2009, 11:08
Messages: 58
Localisation: dijon
Bonsoir @bentoc et bravo encore pour tout ce que tu fais !
j'ai quelques questions à te poser

1) est ce une démo technique à laquelle tu veux arriver ou alors veux tu nous procurer Sonic pour teo ?
2) est ce que tu utilises seulement un to8d avec 512ko de ram par exemple ou utilises tu des procs supplémentaires ? tes captures video sont tellement incroyables que je ne sais si cela est possible sur teo
2) enfin quelle carte son utilises tu ? que j'essaye ton jeu dès que possible !

Dans tous les cas bravo, c'est une preuve de code superbe et moi qui ne code pas j'en ai bouche bée !

très bonne continuation à toi et merci encore pour ce que tu fais.

_________________
--- que dire ---


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 25 Mai 2022, 22:44 
En ligne

Inscription: 21 Avr 2019, 21:48
Messages: 307
Localisation: Var
Salut,

Le projet est avant tout de produire un moteur de jeu open source pour TO8.
l'équipe wide-dot (composée de fxrobin et adnz et moi même) travaille sur le sujet.

Concernant Sonic je ne pensait pas réussir a faire le scroll jusqu'à il y a quelques semaines.
Du coup comme ça rend bien, je poursuit avec la gestion de collision.
Tout ce qui est ajouté à la démo est intégré et donc utile au moteur de jeu.
A court terme je vise de pouvoir faire déplacer Sonic dans un niveau, on verra ensuite.

Pour le moment les vidéos postées tournent sur un TO8 standard + extension mémoire 256Ko + cartes son.

Lorsque j'aurai besoin de plus de place pour les graphismes, je vais basculer sur l'utilisation de la mégarom T.2.
Dans ce cas l'extension mémoire ne sera plus nécessaire.
On aura donc certainement deux versions (une disquette, une autre megarom).

Pour les cartes son c'est ici :
http://forum.system-cfg.com/viewtopic.p ... 3&start=45
https://github.com/dinoflorenzi/THOMSON-MO-TO-SOUNDCARD

Il y a deux cartes : une avec le SN76489 (square wave + noise) et l'autre avec le YM2413 (FM synth), le driver de notre moteur de jeu est capable de gérer les deux en //
Pour le moment personne ne les fabrique, il faut les monter soi-même.
Idéalement il faudrait faire une version sur une seule carte ... ce serait moins cher, plus pratique et plus esthétique.
Quand la démo Sonic 2 sera plus aboutie il sera temps de s'y coller !

Dès que la gestion de collision fonctionne je posterai une première démo jouable pour que vous puissiez essayer chez vous.
a+ et merci pour ton intérêt au projet.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 25 Mai 2022, 22:48 
En ligne

Inscription: 21 Avr 2019, 21:48
Messages: 307
Localisation: Var
Samuel Devulder a écrit:
oui il y a des optims possibles
Code:
move.b (A2,D0.w),d0
andi #$ff,d0
beq ...
lea $42d50.l,A2
move.b (a2,d0.w),(a4)
devient
Code:
ldd glb_d0
ldb d,x
anda #0 --> clra mais en fait il ne sert à rien à cause du abx
std glb_d0
beq ..
ldd glb_d0 --> sert à rien (D déjà chargé), sauf si un saut tombe juste sur cette adresse.
ldx ColCurveMap
abx     \___  c'est déjà optimisé ?
lda ,x  /       Ici j'aurais vu un lda d,x en traduction automatique
sta [glb_a4]


Merci Sam,

Je termine d'abord mon debug et planche sur ces optim juste après.
L'idée de bosser sur un convertisseur me plait bien, ça permettrait de convertir le code (souvent simple) de l'IA des ennemis.
J'ajouterai certainement un fil dédié à la conversion 68000 => 6809


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 27 Mai 2022, 17:39 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 479
Comment fonctionnent ces cartes son ? Je ne vois pas de prise audio (pour les connecter a des speakers par exemple) ni de buzzer ? D'ou sort le son ?


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 27 Mai 2022, 20:52 
En ligne

Inscription: 21 Avr 2019, 21:48
Messages: 307
Localisation: Var
Le son produit par les chip est injecté sur le connecteur 3B du port d'extension, le son sort donc par la prise péritel au même titre que le dac interne du TO8.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 29 Mai 2022, 16:07 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 479
Bentoc a écrit:
Le son produit par les chip est injecté sur le connecteur 3B du port d'extension, le son sort donc par la prise péritel au même titre que le dac interne du TO8.


C'est cool ca. Merci pour l'explication ! Je me demande si l'interieur du boitier a assez de place pour mettre cette carte son en interne :D


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 29 Mai 2022, 17:09 
En ligne

Inscription: 21 Avr 2019, 21:48
Messages: 307
Localisation: Var
Je pense qu'il y a la place, mais moi je suis plutôt partisan de l'utilisation du port d'extension : c'est fait pour ça ;-)

Il y a d'autres chip son intéressants, en particulier qui utilisent un DAC externe.
L'intérêt est de pouvoir orienter le signal des différentes voies du synthé FM vers la sortie gauche ou droite du DAC pour créer de super effets (chorus, ...)
Avec ce système + une prise jack sur la carte on aurait un super son stéréo. bon du coup ça ne passerait plus par la péritel.
On pourrait aussi y mixer le son du dac interne.
Mais tout ça demande du taf ...


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 29 Mai 2022, 17:35 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1644
Localisation: Brest
Moi j'aime bien l'esprit d'envoyer le son sur la péritel, tout comme l'extension musique(?) et jeux.

Ca me semble assez compatible avec ce que les ingénieurs Thomson avaient préparés comme signaux sur le bus d'extension et c'est compatible sur toute la gamme il me semble.

A l'époque une telle extension intégrée dans la musique et jeux (avec ici, une vraie notion de musique), aurait cassé la barraque des autres ordis.

Mais on ne refait pas l'histoire...

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 30 Mai 2022, 06:40 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 479
Bah oui :oops: Je n'avais pas pensé a l'extension musique et jeux qui fonctionnait de cette facon ...


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 420 messages ]  Aller à la page Précédente  1 ... 24, 25, 26, 27, 28  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Bentoc et 2 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