Gamoover

Si vous êtes nouveau, n'hésitez pas à vous présenter ici et à poser toutes vos questions, meme si elles vous paraissent ridicules... Gamoover regroupe une communauté de passionnés prêts à vous aider ! Bienvenue à vous ;)

[WIVSP] Space Invaders upright, Midway 1978

Démarré par Little_Rabbit, Vendredi 29 Septembre 2017, 18:30:04 PM

viriathe

+++ Vitre Arcade Magnum +++
+++ Marquee Royal Video Special 20P +++
+++ Spare pour Borne PAC-MAN +++

olschool

J'aime bien les histoires qui se finissent bien

:-*
Winner's Don't Use Drug mais ça aide quand même pour finir Ghost & Goblins.



Citation de: ducatman1098 le Lundi 05 Novembre 2018, 22:45:37 PM
En rentrant le camion au garage,  je me suis aperçu que j avais récupérer une after burner  ;D

Little_Rabbit

Salut,

Merci pour vos commentaires qui sont encourageants :), car avec la fréquentation en baisse de Gamoo, je me dis parfois que personne ou presque ne doit lire les tartines que je mets à chaque fois :D. Est-ce bien utile du coup ?... mais je me dis que Google peut toujours nous amener de nouveaux lecteurs.

@Rygar : en effet ! D'autant que cela fait 5 mois déjà que la Space Invaders n'est plus dans le salon, nous l'avons viré pour cause de travaux (travaux qui n'ont finalement commencé qu'en février !...).



(Là elle prenait un bain de soleil début septembre, mais rassurez-vous elle n'est pas restée dehors, elle était stockée dans la salle de jeux ! ;) et puis elle est revenue dans le salon pendant les fêtes, pour le côté festif ;) )

Mais pas sûr qu'elle se retrouve dans le salon quand les travaux seront finis car il y a de la négociation dans l'air pour que je trouve une autre borne, plus petite...  ::) Comme si c'était encombrant une Space Invaders ! Et puis son extrême élégance et sa beauté intemporelle gomment complètement ses dimensions généreuses non  ? :D

Citation de: olschool le Mercredi 06 Mars 2019, 09:52:32 AM
J'aime bien les histoires qui se finissent bien

:-*

Moi aussi ! :) Mais l'histoire n'est pas finie ! En effet, j'ai eu droit à un rebondissement inattendu après ce premier succès 8). Je vais essayer de vous raconter ça ce soir (attention, le récit sera une fois encore un peu long ! ;) ).

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

olschool

Citation de: Little_Rabbit le Mercredi 06 Mars 2019, 13:54:35 PM
Salut,

Merci pour vos commentaires qui sont encourageants :), car avec la fréquentation en baisse de Gamoo, je me dis parfois que personne ou presque ne doit lire les tartines que je mets à chaque fois :D. Est-ce bien utile du coup ?... mais je me dis que Google peut toujours nous amener de nouveaux lecteurs.


C'est ce que je me dis également...    ::)



Citation de: Little_Rabbit le Mercredi 06 Mars 2019, 13:54:35 PM
Comme si c'était encombrant une Space Invaders !


N'importe quoi ! c'est tout petit tout mignon Une Space Invader et puis elle est si belle ....  :-*

Faut vraiment que je m'attaque à la mienne.. :D




Citation de: Little_Rabbit le Mercredi 06 Mars 2019, 13:54:35 PM


Mais l'histoire n'est pas finie ! En effet, j'ai eu droit à un rebondissement inattendu après ce premier succès 8). Je vais essayer de vous raconter ça ce soir (attention, le récit sera une fois encore un peu long ! ;) ).

A+


La suite la suite j'ai hâte de lire ça ce soir  :-)=
Winner's Don't Use Drug mais ça aide quand même pour finir Ghost & Goblins.



Citation de: ducatman1098 le Lundi 05 Novembre 2018, 22:45:37 PM
En rentrant le camion au garage,  je me suis aperçu que j avais récupérer une after burner  ;D

rygar

Citation de: Little_Rabbit le Mercredi 06 Mars 2019, 13:54:35 PM

Mais pas sûr qu'elle se retrouve dans le salon quand les travaux seront finis car il y a de la négociation dans l'air pour que je trouve une autre borne, plus petite...  ::)


Mais qui a demandé une chose pareille ... (j'ai ma petite idée là dessus ...  ;)  ) Quoiqu'il en soit, la Space Invaders de mon Little doit rester dans le salon, rien que pour l'hygiène de l' oeil   ^-^

Bon allez, la suite  !!!!     :-)= :-)= :-)=

Little_Rabbit

#101
Salut,

Oui hein, comment peut-on trouver une SI encombrante ?!  ;)

Super content de mes dernières avancées, j'étais curieux de voir comment les sons se comportaient quand la carte fille était à nouveau mise sur la carte mère originale, celle avec ces satanés bugs graphiques.

Je réinstalle le tout sur mon banc test.

Je remets sous tension, et presque tout de suite, le haut-parleur gueule à tout va ! Mais je vous assure, un volume énorme et des sons stridents, genre scie circulaire ! J'ai même cru que cela allait avoir péter mon haut parleur !

Je coupe aussitôt l'alimentation et m'interroge sur la raison de ce vacarme. Je vérifie mes branchements, mais ne trouve rien d'anormal. À chaque nouvelle mise sous tension, ça gueule de la même façon, et plus surprenant encore, quelque soit le réglage du potentiomètre censé réglé le volume du son, le son restait toujours aussi fort :-\ !

La vidéo suivante vous montre le phénomène, sans restituer la violence du volume que le micro a minoré :


Mais pourquoi cette carte fille qui fonctionne parfaitement sur l'autre carte mère ici provoque un vacarme pareil ??

Je reprends les schémas, celui de la carte fille notamment :



Récapitulons tous les modules que comporte la carte fille Space Invaders :
-   les multiplexeurs qui permettent de lire les boutons du panel et les options définies par les DIP switch
-   le shifter
-   le watchdog
-   la génération de tous les bruitages (avec en plus la commande de « Mute » pour couper tous les sons)
-   l'ampli audio
-   et enfin le registre faisant office de port d'adressage ou sélection de ces modules distincts.

Je regardais donc en détail le schéma avec perplexité... quand soudain je vois un truc qui m'interpelle ! Mais bon sang et si c'était ça ?! =>



Le zoom sur cette partie du schéma montre comment tout ce petit monde est piloté/adressé par le microprocesseur.

Ce sont les bits d'adresse A8, A9 et A10, ainsi que le signal « Sample » qui vont permettre de sélectionner soit la lecture du panel, soit la purge du watchdog, soit la lecture/écriture vers le shifter, ou encore déclencher les sons et la fonction Mute !

A8, A9 et A10, cela ne vous rappelle rien ?? :)

Mes bugs graphiques se produisaient justement sur certaines combinaisons de A8, A9 et A10 !



Quand j'ai vu sur le schéma A8, A9, A10 cela a fait tilt dans ma tête !

Si vous avez écouté la vidéo postée juste au dessus, vous aurez remarqué que le vacarme commence dès le test mémoire, partie du code où l'on se contente de lire et écrire en RAM (et purger il est vrai le watchdog, mais globalement une partie du code qui n'est pas censé adressé quoi que ce soit lié au son).

Mais pourquoi la carte se met-elle à gueuler alors ?

Pour que vous compreniez mieux, je me permets une petite explication sur l'architecture des systèmes à base de microprocesseur :
Tout microprocesseur dispose d'un bus de donnée qui va lui permettre de dialoguer avec son environnement : les données sont lues ou écrites sur ce bus. Le bus d'adresse quant à lui détermine la zone où se dialogue va se tenir. Enfin le bus de contrôle précise si on lit ou on écrit, gère les interruptions, le RESET, reçoit les signaux d'horloge qui vont cadencer le tout, et précise enfin la nature du dialogue qu'opère le microprocesseur :
- le microprocesseur dialogue-t-il avec la mémoire (RAM ou ROM) ?
- ou bien, le microprocesseur dialogue-t-il avec les composants périphériques ?

En effet, la plupart des microprocesseurs dispose de deux plans d'adressage :
-   le plan mémoire
-   le plan des entrées/sorties (E/S) dédié à l'adressage par exemple d'un port parallèle (PIO/PIA), un port série (SIO/6850), un chip audio, un contrôleur de lecteur de disquette, etc.

Cette distinction est faite d'une part pour que les E/S n'empiètent pas sur la zone mémoire qui s'en trouverait réduite d'autant sinon, et aussi parce que les composants périphériques gèrent des événements souvent plus lents que les échanges avec la mémoire.

Par voix de conséquence, le microprocesseur possède des instructions qui sont propres aux échanges avec la mémoire :

     LD     A, (2000H)   ; charge dans l'accumulateur A l'octet situé à l'adresse 2000H


et d'autres instructions dédiées au dialogue avec les composants périphériques :

     IN     A, (10H)   ; lit le registre d'un composant périphérique à l'adresse 10H
     OUT    (24H), A   ; écrit le contenu de l'accumulateur sur port situé en 24H

Dans le cas des microprocesseurs 8 bits, le bus d'adresse fait généralement 16 bits permettant d'adresser 64 Ko, alors que le bus d'adresse pour adresser les périphériques ne fait plus que 8 bits, permettant d'adresser 256 registres de périphériques différents.

Si je vous explique tout ça, c'est parce que dans le cas de Space Invaders, la carte fille s'adresse uniquement avec des IN et des OUT, c'est-à-dire dans le plan des E/S.

Or le test mémoire de la ROM de test passe le plus clair de son temps à lire et écrire uniquement en mémoire, donc à adresser le plan mémoire et pas le plan d'E/S !

Je tenais donc là une excellente piste d'investigation ! ^-^

Reste à comprendre comment le 8080 d'Intel gère ses accès soit en mémoire, soit en E/S.

Sur des microprocesseur comme le Z80, c'est simple : le bus de contrôle dispose de broches qui vont directement indiquer dans quel plan d'adressage on se trouve :
-   si la broche MREQ est activée, on dialogue avec la mémoire (MREQ pour Memory REQuest)
-   si la broche IORQ est activée, on dialogue avec les périphériques (IORQ pour Input/Output ReQuest)

N'ayant jamais étudié le 8080, et après examen de son bus de contrôle, je n'avais pas la moindre idée de la façon dont il gérait ça. J'ai trouvé sur le net le livre complet d'Intel expliquant dans le détail l'architecture des systèmes à base de 8080 : « Intel 8080 Microcomputer Systems User's Manual, September 1975 »



Comme le bouquin fait 260 pages, je ne l'ai parcouru qu'en diagonale très rapide :D. Mais on y trouve des trucs amusants comme ça :



La façon dont les cartes perforées sont organisées pour un système 8080 ! ;D Nous sommes assurément en des temps bien lointains que même moi n'ai pas connus ! :D

Revenons-en à nos E/S sur 8080. À la lecture rapide de l'ouvrage, je comprends que le 8080 utilise en fait un registre externe au microprocesseur pour consigner l'état dans lequel il se trouve ! C'est le rôle de son « Status Latch » :



Une instruction donnée du microprocesseur est décomposée en plusieurs cycles, et une fois que l'instruction est décodée, et sa nature connue, le microprocesseur présente sur le bus de donnée le « Status » associé à cette instruction. Le registre externe mémorise cette valeur pour être exploitée par l'électronique de la carte.

Les différents états sont donc définis selon cette table :



J'ai surligné le bit D4 qui est celui qui m'intéresse puisqu'il est responsable des écritures vers les périphériques !

Comment cela est-il mis en place sur le carte mère de Space Invaders ?



C'est le 74174 qu'on voit en haut à gauche qui joue le rôle de Status Latch. Il est ensuite combiné à d'autres portes logiques pour générer le signal « Sample » qu'on a vu tout à l'heure sur la carte fille, et qui sert à capturer la valeur des ports adressés sur la carte fille.

Maintenant que je sais comment est fait le distinguo entre un accès mémoire ou accès E/S, il ne reste qu'à observer les composants impliqués. On va commencer par le fameux Status Latch :



À l'analyseur logique, voyons ce que l'on observe :



Bingo ! Le bit D4, mémorisé par le registre et présenté en Q4, censé n'être activé que lors d'opération de type OUT est à 1 en permanence !! Cela veut dire que n'importe quelle instruction exécutée par le processeur déclenchait un accès à la carte fille ! Du coup, le registre des ports de la carte fille était activé en permanence, avec des valeurs qui ne lui étaient pas destinée, provocant un comportement erratique, et cela se traduisait par deux conséquences fâcheuses :
- le bit de la commande « Mute » était activé à haute fréquence ! Si vous écoutez bien la vidéo du post précédent, celle où je fais une partie, quand on presse START, le CPU déverrouille la commande Mute, et cela provoque un « POC » assez fort dans le haut-parleur. Générez ainsi des centaines de POC par secondes, et vous obtiendrez le son de scie circulaire que j'ai observé !
- la carte fille agissait comme si le processeur voulait y lire certaines valeurs et présentait sur le bus multiplexé des données, données qui venaient parasiter le bus de donnée lors des accès mémoire correspondant aux zones d'adressage de A8, A9 et A10 ! Voila l'origine des bugs graphiques observés !

Je dessoude le 74174 et le test sur mon testeur :



Gné ??  :-X  WTF ???  :?

Comment pourrait-il être bon alors que la sortie Q4 est à 1 en permanence ?  :-X

Je change quand même ce registre par un neuf :



Eurêka !! Adieu bugs graphiques, et adieu bruit de scie circulaire !  :-)=

Cela prouve qu'il ne faut pas se fier à 100% à ce que diagnostique un testeur de composants, et qu'en matière de dépannage, il est bon de faire appel à tous ses sens : ouvrir les yeux, mais aussi les oreilles !  ;)

Content Rosco : le démon de pannes s'est pris une nouvelle raclée !

Bon, force de reconnaître qu'il m'en a fait baver, qu'il m'a parfois démotivé au point d'être à deux doigts de lâcher l'affaire. Mais le démon des pannes ne savait sans doute pas combien un Breton peut être têtu ! :D Quoiqu'il en soit, il est cette fois-ci bien à terre et KO ! J'espère qu'il ne se relèvera pas de si tôt ! :)

Autre conséquence de cette victoire : j'ai pu restituer à Gun Fight sa carte mère puisque Space Invaders est à présent 100% fonctionnel, avec ses cartes d'origine  ^-^ . Cela m'a motivé pour poursuivre le WIP Gun Fight, qui fera l'objet d'un autre exposé ;).

Merci à ceux qui m'auront lu jusqu'au bout  ^-.

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

tefou1050

Salut.
J'adore ton sujet, je trouve ça passionnant, et pourtant je ne comprends que 20% de ce que tu dis,

Alors même si il y a moins de monde sur le forum, continue  ^-^, j'ai l'impression de me coucher un peu moins con  dans ce domaine.
CHERCHE: du temps pour wiper, du temps pour jouer....et c'est déjà pas mal

lencouet

Super bravo
Et merci pour ces explications Je viens comprendre pas mal de truc je me bat depuis quelques jour avec un moon patrol et un soucis avec le z80
Tu viens de m ouvrir de nouvelles pistes
Felicitation pour ce travail de recherche

lencouet

Petite question dans le tableau qui présente ses états je vois qu'il ne vient jamais lire dans la mémoire
C'est normal?

Little_Rabbit

Re,

Merci pour vos encouragements :) !

Citation de: lencouet le Mercredi 06 Mars 2019, 20:55:56 PM
Et merci pour ces explications Je viens comprendre pas mal de truc je me bat depuis quelques jour avec un moon patrol et un soucis avec le z80
Tu viens de m ouvrir de nouvelles pistes
Félicitation pour ce travail de recherche
Attention, dans mon exposé si dessus, j'explique les principes génériques du fonctionnement de nombreux microprocesseurs, dont parfois le Z80 de chez Zilog. Mais le cas détaillé appliqué à Space Invaders ne s'applique qu'au 8080 de chez Intel qui est très différent du Z80 ! ;)

Citation de: lencouet le Mercredi 06 Mars 2019, 20:59:45 PM
Petite question dans le tableau qui présente ses états je vois qu'il ne vient jamais lire dans la mémoire
C'est normal?
Si, dans le tableau "Status word chart" tu as l'état "Memory Read" en n°2. Mais attention, encore une fois cela s'applique au 8080 et ne t'aidera pas à dépanner un Moon Patrol architecturé autour d'un Z80 ;). D'ailleurs tu devrais ouvrir un post spécifique à ton dépannage, comme ça tu pourrais nous expliquer le problème rencontré, et peut-être pourrons-nous t'aider à le résoudre :).

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

lencouet

Oui je sais que ce n est pas la même architecture mais ce qui m'intéresse c est ton approche
Oui. C'est pas la lecture mais l écriture numéro 3 tous les bites sont à zero

olschool

Génial

ça pour une victoire c'est une victoire, le démon des pannes en a pris plein la gueule, bien fait pour lui.

toujours aussi passionnant a lire, même si je ne comprend pas tout, tu décrit de bien belle manière et réussi a rendre intelligible aux néophites

bravo  ^-  :-*
Winner's Don't Use Drug mais ça aide quand même pour finir Ghost & Goblins.



Citation de: ducatman1098 le Lundi 05 Novembre 2018, 22:45:37 PM
En rentrant le camion au garage,  je me suis aperçu que j avais récupérer une after burner  ;D

AsPiC

Superbe effort de vulgarisation dans la rédaction de tes posts ! Merci  ^-^

Et bien content que le démon des pannes ce soit pris une grosse tatane en pleine poire :D

vaes

Citation de: Little_Rabbit le Mercredi 06 Mars 2019, 13:54:35 PM
Salut,

Merci pour vos commentaires qui sont encourageants :), car avec la fréquentation en baisse de Gamoo, je me dis parfois que personne ou presque ne doit lire les tartines que je mets à chaque fois :D. Est-ce bien utile du coup ?... mais je me dis que Google peut toujours nous amener de nouveaux lecteurs.


Merci Little_Rabbit pour ce partage de ton WIP.  ^-
Je fais partie de tous ceux qui lisent régulièrement les nouveaux posts sur Gamoo, mais qui ne postent pas à chaque fois (sûrement pas assez souvent  :-\)
Je suis partisans du maximum de détails. Grâce à tes posts détaillés, et surtout complétés avec de nombreuses photos, j'apprends beaucoup de choses. Et notamment sur les indices qui te permettent d'avancer sur une panne.
Et c'est en lisant tous ces récits de victoires sur le démon des pannes (de mémoire c'est sur les posts de F4brice que j'ai lu, pour la première fois cette expression, mais elle est peut-être apparue avant  ;D) que j'essaie de me motiver pour commencer mon WIP.

Encore merci.  ^-^
J'ai hâte de lire les autres WIP 

PS : Quand je souris en lisant :
Citation de: Little_Rabbit le Mercredi 06 Mars 2019, 20:31:19 PM

Content Rosco : le démon de pannes s'est pris une nouvelle raclée !

Je prends un coup de vieux.  :-((
mais en même temps je suis content  =:))

funkycochise

#110
bien joué, little rabbit.
j'avoue que je n'aurais sûrement pas ton obstination à dépanner
ma SI de la sorte. Même s'il faudra bien un jour  :D

Il te manque plus que le mug qui t'est promis


Little_Rabbit

Salut,

Merci à tous pour vos retours  ^-^ : ils font chaud au cœur et m'encouragent alors à poursuivre ces récits wipesques à rallonge ! :D

@vaes : oui tout à fait, "démon des pannes" est une expression © F4brice que j'ai réutilisé sans vergogne ! :) Je n'ai pas la prétention d'égaler f4brice, mais le démon des pannes se matérialise à toutes sortes d'échelles, je m'attaque à celles qui peuvent être à ma portée ;).

@funkycochise : je n'ai pas compris à quel mug tu faisais allusion ! :D J'ai bien un mug Pacman, mais pas encore de SI :)
Si tu as un PCB Space Invaders en rade, fais péter le WIP ! Je commence à bien le cerner ce PCB, ce peut-être l'occasion de faire voir au démon des pannes de quel bois on se chauffe sur Gamoo !  8)

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room