MSX Village forum

L'atelier Mettre un SN76489AN dans un MSX (jeux ColecoVision sur MSX)

GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 11/07/2012 à 00h17

Reprise du message précédent

igal :
Par contre, plutôt que de modifier/Patcher la ROM Colécovision, il est peut être possible de faire un périphérique qui regroupe de PSG + Port Manette spécifique ;)


Pour ne pas avoir à patcher les jeux, il faudrait aussi ajouter le VDP qui provoque une interruption non-masquable à l'adresse 066h et voir même une ROM pour le BIOS de la ColecoVision.

Et puis, brancher des joystick sur une cartouche n'est pas une bonne solution car on risque de retirer la cartouche en tirant dessus en pleine partie. C'est pour ça que d'abord j'ai pensé à un adaptateur sans fil.



Le but de ce projet est de faire pas cher. Sinon, il y a PlaySoniq (ou Franky) qui existe et peut faire bien plus sans patch (ou très peu).



http://supersoniqs.com/projects/
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 11/07/2012 à 10h43
le décodage F0 est bon et en effet on peut se passer des résistances sur les signaux du LS688
d'aprés le schéma de la coleco il reste le signal READY a cabler
c'est une combinaison du signal clock /2 par un 74LS74 et du signal M1 + 2 portes inverseuses



:noel
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 11/07/2012 à 13h21
Je ne comprends pas. Je pensais relier le /WAIT au READY.
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 11/07/2012 à 16h43
tu doit avoir raison , ce qui m'a induit en erreur c'est le signal ~Wait coté CPU et Wait ailleurs

a vérifier sur une vrai coleco que tous ces signaux sont bien le même


:noel
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 27/07/2012 à 16h06
J'ai un petit problème, l'ordre des données de la puce SN76489 diffère selon les sources.

Les Wiki sur cette puce ainsi que diverses sources donnent un sens inverse que celui du PDF suivant.



http://www.colecovision.dk/PDF/SN%2076489.pdf

http://www.nvg.ntnu.no/bbc/doc/datasheets/SN76489.zip



Par habitude, je suis tenté de dire que les Wiki sont faux.



Alors, qui a raison ? :hum



EDIT :



J'ai trouvé le fin mot de l'histoire sur la page suivante (en rose).



http://members.casema.nl/hhaydn/howel/parts/76489.htm



traduction :
A une époque, Texas Instruments avait décidé de nommer les bits de données en commencent par le plus significatif, "le bit zéro", en incrémentant chaque bit jusqu'au le moins significatif. Ainsi, un octet était étiqueté de D0 à D7, au lieu de D7 à D0 comme tout le monde. Les caractéristiques techniques de cette puce ont été publiés à cette époque là, mais ce document en ligne utilise la convention standard pour éviter toute confusion. Les schémas et tableaux ont aussi été révisés.




Les Wikis et d'autres sites ont inversé les bits pour garder la nomination standard actuelle.



D'ailleurs en regardant le pdf de plus près, on s'en rend compte que tout est à l'envers. Edité par GDX Le 28/07/2012 à 09h06
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 04/08/2012 à 07h36
Le proto est fait ! :)



N'ayant pas encore réussi à créer une ROM avec un jeu ColecoVision qui fonctionne, j'ai fait quelques tests avec des OUT sous BASIC.

Première constatation : À chaque fois que j'allume le MSX (un MSX1 de Toshiba), un son constant est toujours émis. Ce son est plus ou moins différent à chaque allumage.

Je tente de couper le son de chaque voix :

Voix 1 : OUT&HF0,&H9F

Voix 2 : OUT&HF0,&HBF

Voix 3 : OUT&HF0,&HDF

Voix 4 : OUT&HF0,&HFF

Le son se coupe bien et je remarque que seules les voix 1 et 2 émettent un son à chaque allumage.

Je réactive la voix 1 en modifiant le volume :

OUT&HF0,&H94

OUT&HF0,&H92

OUT&HF0,&H90 (son maximum)

Le volume marche.

Je change la fréquence de la voix 1 :

OUT&HF0,&H88:OUT&HF0,&H3f

Le son change. (110Hz correspondant à un LA)

Conclusion :

Ça semble fonctionner mais le fait que ça émet toujours un son au démarrage du MSX est un problème. Comment peut-on y remédier en hardware ? :hum
J'ai vérifié le montage, tout semble OK. :sick

Voici le schéma utilisé :

Edité par GDX Le 04/08/2012 à 12h04
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 06/08/2012 à 10h46
Ce weekend, j'ai créé 2 ROM, une avec Donkey Kong et une avec Zaxxon. Pour cela, j'ai utilisé les versions déjà converties pour MSX et j'ai remplacé les routines sonores du PSG MSX et de l'SCC par les routines originales de la ColecoVision. Sauf que le BIOS de la ColecoVision faisant des OUT FFh,A au lieu de OUT F0h,A comme je l'ai vu ailleurs, j'ai adapté les OUT pour le port F0h.

1/ Je teste les 2 jeux sur émulateur. Ça fonctionne bien mais sans le son. C'est normal. :)

2/ Je les teste sur MSX avec le proto dans un SLOT,
- La ROM de Zaxxon se lance mais plante dès le menu de sélection ou au moment de lancer une partie. Pas le temps d'entendre le moindre son.
- Quant à la ROM de Donkey Kong, elle se lance. Le jeu tourne et... le son est parfait mais c'est très instable. Ça plante aléatoirement au bout d'un certain temps.

3/ Je teste les 2 jeux sur le MSX sans le proto. Ça fonctionne bien sans le son, comme sur les émulateurs. J'ai joué plusieurs fois quelques stages sans aucun problème. :heink

Conclusion le proto rend le MSX instable lorsqu'on y accède. Pouquoi ? Je sèche. :hum Edité par GDX Le 06/08/2012 à 13h50
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 06/08/2012 à 13h47
Je vérifierais si les routines son Coleco n'interfèrent pas avec des routines du BIOS MSX, notamment dans la zone des HOOKs. Juste une supposition .... Edité par Visiteur Le 06/08/2012 à 13h48
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 06/08/2012 à 13h59
Le BIOS MSX n'est pas utilisé. Il est remplacé par le BIOS de la ColecoVision modifié pour le MSX. Donc la zone des Hooks n'existe plus.

Vue que les jeux fonctionnent très bien sans le proto mais qu'ils plantent avec, c'est le proto qui fait que ça plante.

Mes hypothèses : Etant donné que ça émet un son au démarrage du MSX, peut-être que ça plante parce que le SN76489AN est mal initialisé ? Ou alors, peut-être qu'il faut mettre des condensateurs pour éviter les parasites ? Edité par GDX Le 06/08/2012 à 14h11
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 06/08/2012 à 22h29
il faudrait être sur que l'adresse choisie est bien décodé sur un vrai MSX car souvent les adresses sont décodées par paquets et non pas a l'unité

pour faire un essai choisit une adresse libre avant 80H

voir tableau http://map.grauw.nl/resources/msx_io_ports.php

ex: tu prends 10h tu refait le decodeur 74688 puis tu remplace tous tes f0H par 10H et tu teste


:noel
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 07/08/2012 à 10h45
J'ai testé le proto sur Turbo R. Il y a toujours le son qui de produit au démarrage mais curieusement le port f0h ne répond pas.

J'essayerais donc un autre port comme tu le conseilles la prochaine fois.

Tout cela me rappelle que lorsque j'ai converti des jeux ColecoVision, ça plantait sur MSX1 avec certains jeux parce qu'ils envoyaient des données trop vite au processeur vidéo. C'est pourtant le même VDP.
En cherchant, j'ai lu quelque part que la ColecoVision avait un Buffer pour les Entrées / Sorties.
Si c'est le cas, ça expliquerait les plantages car le MSX n'a pas de Buffer je crois.


Autres tests vite fait sur le MSX1 :

- J'ai relié la patte /OE à VCC (avec une résistance de 10KΩ ) et /P=Q dans le vide pour interdire l'écriture mais le son qui se produit au démarrage reste. Vue que le Bios de la ColecoVision coupe le son dès le démarrage de la console, ce son est peut-être normal après tout vu la rusticité de ce PSG.

- J'ai relié la patte Ready à la masse (avec une résistance de 10KΩ ) pour voir si ça stop les plantages. Le son se produit toujours au démarrage. Ça fait le même effet que ci-dessus. Les tournent et le port f0h est inactif.

- Pareil en mettant Wait à la masse ou à VCC...
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 07/08/2012 à 11h36
pour résoudre le probléme de son au démarrage il faudrait combiner le signal /IORQ et le /WR dans une porte de LS32 pour attaquer le /WE


:noel
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 08/08/2012 à 12h09
J'ai changé le port.

J'ai mis le 10H (Q4 à VCC et les autres Q à la masse) et le MSX se fige dès texte de présentation "MSX System..." lorsque le proto est dans un SLOT.

J'ai mis le 0FH => pareil.

En retirant le PSG du proto, le MSX démarre normalement.

:fou Edité par GDX Le 08/08/2012 à 12h27
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 08/08/2012 à 12h12
as tu essayé la solution /iorq et /wr du post au dessus ?


:noel
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 08/08/2012 à 12h23
Pas encore. Je n'ai pas les composants.

Je ne pourrais pas m'en occuper jusqu'à la semaine prochaine...
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 08/08/2012 à 12h44
vérifie bien le cablage de ton SN76489 par rapport au pinout du schéma coleco


:noel
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie