Gamoover

Vous aimez GAMOOVER ? Vous avez trouvé la perle rare grâce à notre forum ?
Alors pourquoi pas nous soutenir en effectuant un petit don Paypal sur : contribution@gamoover.net
C'est peut être un détail pour vous, mais nous, ça nous aiderait beaucoup !

[WIP 90%] Borne vectorielle : Sega Space Ship

Démarré par f4brice, Jeudi 31 Décembre 2009, 16:57:03 PM

BIGJEJE

4 étages sans ascenseur pour monter les bornes .... ça tente quelqu'un ?????

mes ventes c'est ici...

hikaru

absolument fabuleux
ce jeu est magnifique
le son rappelle trop de souvenir d'enfance
quand on jouai a astéroïde dans les bar
en attendant le bus pour rentrer du lycée
magnifique travail ^-^

DCE

Un grand bravo pour cette belle restauration électronique ^-^ ce fut un plaisir de se plonger dans cette électronique vintage avec des explications détaillées aussi clairement présentées ^-

Une histoire qui se termine bien, bravo <:)

Baddy

#147
Juste un petit message pour dire que j'ai trouvé un Vectrex récemment et que j'ai le portage de ce jeu dessus ! :D Donc moi aussi je joue à Space Wars  =:))

Edit : J'ai fait une vidéo, la voici : Solar Quest

f4brice

Citation de: Baddy le Dimanche 07 Février 2010, 20:27:03 PMEdit : J'ai fait une vidéo, la voici : Solar Quest

Il faut que je me trouve une Vectrex dans un vide-grenier !  :-*

HI

nope le jeu sur vectrex c'est bien Space wars, solar quest c'est un autre jeu aussi sur vectrex  ;)

f4brice

Bonsoir.

Petite mise à jour de ce WIP.

La dernière fois, j'avais laissé la borne fonctionnelle mais avec un problème de tir pour le 1er joueur.
J'ai décidé aujourd'hui de me pencher sur le problème.

J'avais déjà déterminé que le problème venait du bouton de tir lui-même.
Aucun contact électrique n'est réalisé lorsqu'on appuie sur le bouton.
Effectivement, ça n'aide pas.

Dans un 1er temps, il a fallu retirer le bouton du panel.
Manque de bol, le bouton ne peut sortir que par le haut et la partie en plexy du panel l'empêche de sortir.

J'ai dû jouer légèrement de la fraise pour agrandir un chouilla la découpe carrée du panel :


Le bouton est libéré

Voici la confirmation de ce que j'avais déjà diagnostiqué lorsque le bouton était en place dans la borne :


Ça môrche pô !

L'avantage avec le matériel de cette époque, c'est que c'est démontable :


Déclipsage en cours

Le bouton est maintenant complètement démonté.
Là, j'avoue avoir été très surpris par ce que j'ai trouvé :


Surprise !

Je pensais trouver une simple partie mobile faisant contact sur des broches oxydées par le temps.
Finalement, le bouton est très différent de ce que je pensais.
La partie mobile (en bas sur la photo) porte un petit aimant.
Quand on appuie sur le bouton, l'aimant vient se placer au milieu d'un ILS (l'ampoule verte au milieu du plastique jaunâtre en dessous du ressort) et c'est l'ILS qui assure le contact électrique.
Je suis surpris que ça ne fonctionne plus.
C'est totalement étanche à la poussière, quasiment increvable tant que la petite ampoule n'est pas cassée.

Finalement, il se trouve que l'ILS fonctionne toujours, mais l'une de ses broches est déssertie du support.

Deux petits coups de fer à souder plus tard, et c'est réglé :


2 soudures

Vérification :


Et voilà ! Le bouton est remonté.
Dernière vérification, car c'est beaucoup plus facile de le faire sur l'établi que dans la borne sous le panel :


Je remonte le bouton sur panel de la borne et je mets la borne sous tension.
Fichtre !
Le haut-parleur émet un son absolument anormal.
J'attends quelques secondes, mais aucune image ne s'affiche...
Mon PCB est à nouveau en panne...  :'(

J'ai donc réinstallé le banc de test dans mon bureau :


C'est reparti !

Je suis près à parier que c'est la dernière puce de RAM d'origine, la seule que je n'ai pas changée, qui s'est petit-suicidée...

En regardant vite fait, je vois que le chien de garde électronique se déclenche : le PCB est réseté sans arrêt.
Pourtant, le compteur de crédit est bien activé quand je mets un crédit.
Chose étrange : sans mettre aucun crédit, tout appui sur les boutons de tir (joueur 1 et joueur 2) déclenchent le son correspondant.
Le jeu devrait rester muet quand aucun crédit n'est inséré.

Ce genre de comportement me fait vraiment penser à un problème de RAM !

À suivre...

supercarotte

Bornes: Out Run DX, Super Hang On DX, ThunderBlade DX, Enduro Racer DX, RoadBlasters DX, Space Invaders, Discs of Tron, SuperSprint, Hang On, Pacmania, Rolling Thunder, Marble Madness, Blasteroids, Super Off Road, Rampage, NBA Jam TE, Operation Thunderbolt, Power Drift, Street Fighter, twin Sega Rally, CrazyTaxi, Harley Davidson + Aero City, Jaleco Pony // Cocktails : Missile Command, Galaxian, Nintendo DK // Flip : Creature FTBL, Revenge from Mars, Funhouse, The Machine BOP, Elvira ATPM, Swords of Fury, Xenon

Wapata

Je suis sur que t'avais tout prévus pour ne pas t'ennuyer !

madyoyo

surprenaznt en effet le coup du bouton à ILS, mais en y réfléchissant, c'est la solution la plus fiable sur le lon, voire trés long terme. pas de contacts "ouverts" signifie pas d'usure autre que le ressort ou la tige verticale dans sa glissiere, tout deux vachement durables.

maldoror68

ce wip ....  ;D j'adore!

bon, ben bon courage pour ta panne inopinée...

par contre, l'intérupteur ILS sur wiki ils disent que le temps de réponse est plus long qu'un bouton standard ? quid ?  :?

f4brice

Citation de: maldoror68 le Dimanche 21 Février 2010, 13:10:38 PMpar contre, l'intérupteur ILS sur wiki ils disent que le temps de réponse est plus long qu'un bouton standard ? quid ?  :?

C'est très certainement exact.
A mon avis, ce genre de bouton ne serait pas apprécié par les adeptes des jeux de fight par exemple.

dapsaille

Wahouu ...

il faut avouer que ça en jette un max ...

On sent bien les passionnés par le sujet ..

Autant Fabrice, l'instigateur du projet que Gc qui vient apporter son soutien ..

Bravo, chapeau bas messieurs.

Biglunk

J'ai travaillé plusieurs années dans la téléphonie mobile et sur l'un de nos modèle nous utilisions un contacteurs type ILS et bien je peux vous dire que ca n'est pas le truc indestructible que vous pensez !! Le nombre de panne et de retour client que nous avons eu a cause de ça  ::) >:D !!! Quoi qu'il en soit F4brice Go-Go-Go !!!!!!  ^-^

gc339

#158
Bonjour.

Ces RAM 256×4 ne semblent pas être d'une fiabilité extraordinaire tout comme les MCM51L01 que je proposais comme remplaçantes temporaires, ces dernières claquaient comme des mouches et il fallait souvent les remplacer.

Une suggestion : pourquoi ne pas les remplacer par des mémoires caches pour carte mère de PC à base de 486, elles sont très véloces avec un temps d'accès de l'ordre de 15 ns, donc théoriquement au moins 10 fois plus rapides que celles d'origine. Ce qui devrait oblitérer tout un tas de problèmes potentiels que ne manqueraient pas d'occasionner des mémoires, plus facile à trouver, mais beaucoup plus lentes comme la HM6116 (2K×8 CMOS).
Il devrait être possible de trouver une de ces vielles cartes pour une somme symbolique. La plupart du temps ces mémoires cache étaient montées sur support ce qui facilite la tâche pour les récupérer.

Le problème avec ce type de mémoire cache, c'est que les entrées/sorties sont multiplexées, il est donc nécessaire de les différencier à l'aide d'un buffer de bus du genre LS244.
L'encombrement de ces mémoires ainsi que leur brochage étant complètement différents, il sera nécessaire de les installer avec les buffers de bus sur une petite carte fille tout comme l'a fait Biltronix pour ses ersatz de ROM : http://www.biltronix.com/CCPU_Custom_Chip_Replacements.html


Un schéma possible pour des RAM UM61512AK-15 utilisées sur ces vieilles cartes mères à base de 486 :


Il s'agit plus d'un schéma de principe que d'un schéma fonctionnel car il n'est pas exclu qu'il y ait des problèmes de timing entre les buffers, la RAM et/ou les bus concernés du CCPU ... Ici le schéma est incomplet car il n'est dessiné que pour les 4 bits de poids forts, il est nécessaire de le dupliquer pour les 4 bits de poids faibles.




Le repos, c'est fait pour les jeunes. Ils ont toute la vie devant eux. J. Gabin/M. Audiard





gc339

#159
Bonsoir.

Citation de: gc339 le Mercredi 03 Février 2010, 12:29:24 PM
Maintenant [couic] tu devrais pouvoir écrire un petit bout de programme simple pour faire tester les RAM's par le noyau du CCPU avec la méthode du damier :

  • En écrivant alternativement 555H, 0AAAH, 555H... dans toutes les lignes de la mémoire.
  • Puis en vérifiant ce qui a été écrit dans chaque ligne.
  • En refaisant une deuxième passe en décalant le motif d'une adresse : 0AAAH, 555H, 0AAAH...

Cela permettrait de tester le CCPU en vitesse réelle avec un jeu d'instructions réduit,

Plus tard tu pourras même utiliser une méthode plus sophistiquée comme celle du 1 ou du 0 baladeur pour tester chaque module mémoire 4 bits :

  • Le un baladeur : 0000, 0001, 0010, 0100, 1000, 0000, 0001 et ainsi de suite ... en décalant le motif d'une cran à la passe suivante.
  • Le zéro baladeur : 1111, 1110, 1101 et ainsi de suite ...

Précision pour les tests : il ne faut pas tester les lignes mémoire individuellement les unes après les autres mais faire le test en globalité :

Le test du damier :
Il faut d'abord écrire le motif sur toutes les lignes de la mémoire :

  • 1er ligne : 0555H ou 010101010101 en binaire.
  • 2em ligne : 0AAAH ou 101010101010 en binaire.
  • 3em ligne : 0555H ou 010101010101 en binaire.
  • 4em ligne : 0AAAH ou 101010101010 en binaire.
  • Et ainsi de suite jusqu'à la dernière ligne mémoire incluse.
Il faut ensuite relire les lignes les unes après les autres pour vérifier le motif qui vient d'être écrit.
S'il n'y a pas d'erreur à la relecture, il faut enchaîner une deuxième passe de test en décalant le motif d'une ligne lors de sa réécriture :

  • 1er ligne : 0AAAH ou 101010101010 en binaire.
  • 2em ligne : 0555H ou 010101010101 en binaire.
  • 3em ligne : 0AAAH ou 101010101010 en binaire.
  • Et ainsi de suite jusqu'à la dernière ligne mémoire incluse.
Tout comme pour la première passe, il faut effectuer une relecture pour vérifier ce deuxième motif ligne par ligne jusqu'à la dernière incluse.

Ce test du damier s'effectue toujours en deux passes puisque le motif est répétitif toutes les deux lignes mémoires. Une fois ces deux premières passes effectuées on peut enchaîner indéfiniment sur une série de nouvelles passes en décalant le motif d'une ligne mémoire à chaque fois.

Le test du 1 baladeur :
Bien que la ligne mémoire du CCPU ait une largeur de 12 bits, les boîtiers mémoires n'ont qu'une largeur de 4 bits. Aussi il sera plus simple et plus rapide de balader 1 bit par ligne de boîtier mémoire qu'un bit par ligne mémoire, car il est quasi impossible qu'un bit d'un boîtier interfère sur celui d'un boîtier voisin.
Il faut d'abord écrire le motif sur toutes les lignes de la mémoire :

  • 1er ligne : 0000H ou 0000.0000.0000 en binaire.
  • 2em ligne : 0111H ou 0001.0001.0001 en binaire.
  • 3em ligne : 0222H ou 0010.0010.0010 en binaire.
  • 4em ligne : 0444H ou 0100.0100.0100 en binaire.
  • 5em ligne : 0888H ou 1000.1000.1000 en binaire.
  • 6em ligne : 0000H ou 0000.0000.0000 en binaire.
  • 7em ligne : 0111H ou 0001.0001.0001 en binaire.
  • Et ainsi de suite jusqu'à la dernière ligne mémoire incluse.
Il faut ensuite relire les lignes les unes après les autres pour vérifier le motif qui vient d'être écrit.
S'il n'y a pas d'erreur à la relecture, il faut enchaîner la passe de test suivante en décalant le motif d'une ligne lors de sa réécriture :

  • 1er ligne : 0111H ou 0001.0001.0001 en binaire.
  • 2em ligne : 0222H ou 0010.0010.0010 en binaire.
  • 3em ligne : 0444H ou 0100.0100.0100 en binaire.
  • 4em ligne : 0888H ou 1000.1000.1000 en binaire.
  • 5em ligne : 0000H ou 0000.0000.0000 en binaire.
  • 6em ligne : 0111H ou 0001.0001.0001 en binaire.
  • 7em ligne : 0222H ou 0010.0010.0010 en binaire.
  • Et ainsi de suite jusqu'à la dernière ligne mémoire incluse.
Tout comme pour la passe précédente, il faut effectuer une relecture pour vérifier ce deuxième motif ligne par ligne jusqu'à la dernière incluse.

Le motif étant répétitif toutes les cinq lignes mémoires, il faudra donc cinq passes consécutives pour effectuer un test complet, c'est à dire pour tester toutes les possibilités pour chaque ligne mémoire (à noter qu'il aurait fallu 13 passes consécutives si un seul bit avait été baladé sur toute la largeur de la ligne mémoire, le faire au niveau de chaque boîtier est somme toute beaucoup plus rapide )

Pour résumer :
  • 1er passe : le motif démarre avec 0000H ou 0000.0000.0000 en binaire.
  • 2em passe : le motif démarre avec 0111H ou 0001.0001.0001 en binaire.
  • 3em passe : le motif démarre avec 0222H ou 0010.0010.0010 en binaire.
  • 4em passe : le motif démarre avec 0444H ou 0100.0100.0100 en binaire.
  • 5em passe : le motif démarre avec 0888H ou 1000.1000.1000 en binaire.

Cette manière de faire permet de mettre en évidence des interférences entre lignes ou blocs d'adresses car d'une part le motif est écrit dans toute la mémoire avant d'être relu pour vérification et d'autre part il est répétitif modulo 5 pour éviter d'être en phase avec des blocs mémoire défectueux dont le nombre de lignes est selon toute évidence une puissance de 2.

Le test du 0 balladeur :
Identique à celui du 1 balladeur, il suffit d'inverser les 1 et les 0 dans le motif binaire de chaque ligne à tester.
Il faudra donc aussi 5 passes consécutives, avec décalage du motif à chaque passe, pour effectuer un test complet.

Il est bien sûr possible et même conseillé d'enchainer les différents tests les uns à la suite des autres et de reboucler indéfiniment jusqu'à l'arrêt par intervention humaine ou détection d'une faute mémoire.
En jonglant avec les registres internes du CCPU, il devrait être possible d'écrire un programme de test qui n'a besoin d'aucune ressource mémoire RAM pour fonctionner.

Le repos, c'est fait pour les jeunes. Ils ont toute la vie devant eux. J. Gabin/M. Audiard