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 !

Bug graphique Sega SpaceTactics

Démarré par gottlieb, Lundi 08 Avril 2013, 21:13:46 PM

spectroman

salut,

mon programmateur (eetools topmax) sait programmer les AM27S19 & 74S288.

hésite pas.

a+

gottlieb

Merci Spectroman  ^-

Je savais que je pouvais également compter sur toi  ;)

Merci à  tous encore une fois pour votre aide si précieuse  :-*

Gottlieb
A la maison  ;)
bornes: racecab speed up Gaelco et Ridge racer, table cocktail Taito SI part II ,cockpit Sega Space tactics, 1 borne Karateco, 3 bornes Jeutel, tactile megatouch , Naomi 1, Naomi 2, title fight sega, Time crisis 2 et 3 DX, HOTD2 et 1 mini borne enfant
flipper: silver slugger, pin bot, Whitewater,Indianapolis 500 Earth wind and fire
Billard: superleague diplomat
dart: Lowen royaldarts ...
Pashislot: Hokuto no ken
Jukebox jupiter mirage 120 et Atari Hit Parade 144
babyfoot Roberto sport
Ma gaming room :-*

gc339

#114
Sortie des informations de couleur :

Les bits RGB ainsi qu'un bit de réduction d'intensité pour le vert, tous issus de la PROM µPB426 en 86, sont latchés par le 74S175 en 79. Trois des sorties de ce latch sont directement raccordées au connecteur de la carte (n° des contacts illisibles sur le schéma "F" ). Le quatrième bit, celui  de réduction d'intensité, met en service une résistance (R33/D1 ) en // sur la sortie du vert réalisant ainsi un pont diviseur de tension, l'intensité du vert se retrouve abaissée sensiblement quand ce dernier bit est à "1".
Ainsi la carte peut générer les 8 couleurs de base : noir, bleu, rouge, magenta, vert, cyan, jaune et blanc. Plus 4 autres couleurs intermédiaires quand le bit de réduction d'intensité du vert est activé, ce qui porte le nombre de couleurs possibles à 12.

Signaux "CELL A" à "CELL D"

Comme expliqué plus en avant, Le latch 74LS174 en 67 de la page vidéo "B" mémorise temporairement les bits de poids fort du n° de sprite auquel on veut accéder (fils CA3 à CA7 ). Un deuxième latch connecté à la suite du premier, le 74LS175 en 88, en mémorise quatre à nouveau quelques cycles plus tard sur le front ascendant du signal "COLOR" issu du séquenceur.
A partir des 4 fils "CA3" à "CA7" sont ainsi créés en ligne directe et dans le même ordre quatre nouveaux signaux "CELL A" à "CELL D".
Cela revient à fractionner les 256 sprites appartenant à la page vidéo "B" en 16 groupes (adressables à partir des fils "CELL" de A à D ) de 16 sprites (adressables avec les fils "CA0" à "CA3" ). Ainsi une couleur spécifique peut être affectée à chaque groupe, ce qui a permis de réduire de 4 le nombre de fils d'adresse nécessaire sur la PROM PR-54.

Création des couleurs à partir de la PROM PR-54

Il ne faut pas oublier qu'à l'époque où ce jeu a été créé, la taille des mémoires RAM disponibles était limitée et que celles-ci coutaient relativement cher, les moniteurs couleur n'étaient pas non plus légion!
Ainsi, par souci d'économie, les signaux issus des différentes pages ne pouvaient être que monochrome : le pixel extrait ne pouvait être que soit éclairé soit éteint, un point c'est tout. La mémoire PROM PR-54 est donc l'artifice qui va permettre de colorer les pixels monochromes en fonction de la page vidéo d'où ils ont été extraits.

La PROM PR-54 est alors adressée par :

  • Le n° de groupe de sprites appartenant à la page vidéo "B" : fils "CELL A" à "CELL D"
  • Dans l'ordre des adresses croissantes : le pixel extrait des pages : "B", "F", "E" puis "D".
  • Deux signaux "FLM COL 0" et "FLM COL 1" dépendant directement du µP 8080 et qui lui permettent de modifier le jeu de couleurs probablement en fonction du contexte ou du niveau atteint par le joueur.
Un tableau a été réalisé à partir du contenu de cette PROM afin de comprendre comment la programmation des couleurs a été effectuée par Sega.

  • Il est constituées de 4 bandes horizontales de 16 lignes :

    • A chaque bande horizontale correspond un des 4 contextes imposé par le µP 8080 (FLM COL : 0 et 1 ).
    • A chaque ligne correspond un groupe de sprites appartenant à la page "B" (CELL : A, B, C et D ).

  • Chaque bande horizontale est divisée en 16 bandes verticales de 4 colonnes :

    • A chaque bande verticale correspond une combinaison des pixels extraits simultanément des différentes pages. A raison d'un pixel par page, il y a 16 possibilités donc 16 bandes verticales ou blocs. Chaque pixel a été baptisé avec la lettre de la page vidéo dont il est issu (B, F, E et D), n'est affichée la lettre dans les entêtes bleu sombre que quand le pixel correspondant est éclairé.
    • Chaque bande verticale ou bloc regroupe 4 colonnes, chacune correspondant à une des sorties de la PROM PR-54 baptisées : "R", "G" et "B" pour les trois couleurs primaires et "½" pour le bit de réduction d'intensité du vert.

Le tableau réalisé à partir du contenu de PR-54 avec le tableur Calc d'OpenOffice :




Affiché avec cette organisation, rien ne se dégage de trivial. Par contre le tableau devient limpide et intuitif dés qu'on affiche le contenu de la PROM PR-54 en inversant l'ordre des pixels qui assurent en partie son adressage.
Ainsi les bandes verticales ou blocs qui auraient dû normalement être affichés de gauche à droite dans l'ordre croissant (de 00 à 15 ) si l'on avait respecté le même adressage "DEFB" que celui de la PROM, sont avec cette en inversion de pixels en "BFDE" maintenant affichées avec ce nouvel ordre : 00, 08, 04, 12 , 02, 10, 06, 14, 01, 09, 05, 13, 03, 11, 07 et 15.

Le nouveau tableau après réorganisation :




Avec cette réorganisation, le tableau apparait constitué en deux parties :

  • La moitié droite où la page "B" impose ses couleurs quand ses pixels sont éclairés.
    Que les pixels des autres pages soient éclairés ou éteints, les 8 bandes verticales dans chaque bande horizontale restent toujours identiques et d'une bande horizontale à l'autre le contexte ne modifie que les 4 lignes surlignées en plus clair.
    Cela signifie que la page "B" est une page d'avant plan ou d'avant scène, ses pixels éclairés sont prépondérants et masquent tous ceux des 3 autres pages.
  • La moitié gauche, ou première moitié, où la page "B" n'interagit pas avec les 3 autres quand ses pixels sont éteints.

    Cette première moitié apparait aussi scindée en deux zones :

    • Le quart droit où la page "F" est prédominante et impose ses couleurs par dessus les deux autres quand ses pixels sont éclairés.
    • Le quart gauche, ou premier quart, où la page "F" n'interagit pas avec les autres quand ses pixels sont éteints.

      Ce premier quartier apparait aussi découpé en 2 nouvelles zones :

      • Le huitième droit où la page "E" est prédominante et impose ses couleurs par dessus la dernière page quand ses pixels sont éclairés.
      • Le huitième gauche, ou premier huitième, où la page "E" n'interagit pas avec la dernière quand ses pixels sont éteints.

        Ce premier huitième de tableau apparait aussi composé de deux zones, ce sont les deux derniers seizièmes :

        • Le seizième droit où il n'y a que le seul pixel de la page "D" d'éclairé.
        • Le seizième gauche, ou premier seizième, où tous les pixels sont éteints quelque soit la page.

    Il est à noter que les couleurs associées aux pixels des pages "D", "E" et "F" sont indifférentes au N° de groupe de sprites de la page "B" et qu'elles ne dépendent que du contexte généré par le µP 8080.

Ainsi selon le contexte :

  • Tous les sprites appartenant à la page "D", celle de niveau le moindre, apparaissent uniformément d'une couleur jaune (G + R), verte, cyan (B + G) ou à nouveau verte.
  • Tous les sprites appartenant à la page "E", de rang immédiatement supérieur, apparaissent uniformément d'une couleur verte, magenta (B + R, à noter que le bit de demi-teinte est ici incongru car il n'agit que sur le vert ), rouge ou orange (½ G + R).
  • Tous les sprites appartenant à la page "F", de rang immédiatement inférieur à celui du premier plan, apparaissent uniformément d'une couleur rouge, orange (½ G + R), jaune ou magenta (B + R).
  • La couleur des sprites appartenant à la page "B", la page d'avant scène, est ici fonction du contexte, bien sûr, mais aussi du groupe (de 00 à 15 ) auxquels ils appartiennent. Ainsi les sprites de cette page pourront être affichés avec pratiquement toute la gamme de couleurs qui peuvent être synthisées.
Le repos, c'est fait pour les jeunes. Ils ont toute la vie devant eux. J. Gabin/M. Audiard





gottlieb

#115
Citation de: gc339 le Samedi 21 Décembre 2013, 21:09:45 PM
Sortie des informations de couleur :

Les bits RGB ainsi qu'un bit de réduction d'intensité pour le vert, tous issus de la PROM µPB426 en 86, sont latchés par le 74S175 en 79. Trois des sorties de ce latch sont directement raccordées au connecteur de la carte (n° des contacts illisibles sur le schéma "F" ). Le quatrième bit, celui  de réduction d'intensité, met en service une résistance (R33/D1 ) en // sur la sortie du vert réalisant ainsi un pont diviseur de tension, l'intensité du vert se retrouve abaissée sensiblement quand ce dernier bit est à "1".
Ainsi la carte peut générer les 8 couleurs de base : noir, bleu, rouge, magenta, vert, cyan, jaune et blanc. Plus 4 autres couleurs intermédiaires quand le bit de réduction d'intensité du vert est activé, ce qui porte le nombre de couleurs possibles à 12.

J'ai contrôlé sur la carte et pour mettre au clair le schéma, les sorties de IC79 arrivent:

Q1 pin 2 (R) arrive sur A28 sur le connecteur A face coté composants (rep A1 à A40)
Q2 pin 7 (G) arrive sur A26 sur le connecteur A face coté composant (rep A1 à A40)
Q3 pin 10 (B) arrive sur A16 sur le connecteur A face dessous composant (rep A1 à AA)

Je me régale en lisant le fonctionnement de la créations des couleurs à l'écran  :-*
C'est fascinant  ^- les idées qu'ont eus les électroniciens de l'époque pour gérer la couleur  ^- (il se peut que le jeu fût créé en N/B et la couleur rajouté ensuite  :-\ ) C'est vrai que les écran couleurs coûtaient un bras au début des années 80'  :'( Les couleurs étaient plus faite par des bandes de  film gélatine posés sur les écrans N/B

Citation de: gc339 le Samedi 21 Décembre 2013, 21:09:45 PM

Avec cette réorganisation, le tableau apparait constitué en deux parties :

  • La moitié droite où la page "B" impose ses couleurs quand ses pixels sont éclairés.
    Que les pixels des autres pages soient éclairés ou éteints, les 8 bandes verticales dans chaque bande horizontale restent toujours identiques et d'une bande horizontale à l'autre le contexte ne modifie que les 4 lignes surlignées en plus clair.
    Cela signifie que la page "B" est une page d'avant plan ou d'avant scène, ses pixels éclairés sont prépondérants et masquent tous ceux des 3 autres pages.
  • La moitié gauche, ou première moitié, où la page "B" n'interagit pas avec les 3 autres quand ses pixels sont éteints.

    Cette première moitié apparait aussi scindée en deux zones :

    • Le quart droit où la page "F" est prédominante et impose ses couleurs par dessus les deux autres quand ses pixels sont éclairés.
    • Le quart gauche, ou premier quart, où la page "F" n'interagit pas avec les autres quand ses pixels sont éteints.

      Ce premier quartier apparait aussi découpé en 2 nouvelles zones :

      • Le huitième droit où la page "E" est prédominante et impose ses couleurs par dessus la dernière page quand ses pixels sont éclairés.
      • Le huitième gauche, ou premier huitième, où la page "E" n'interagit pas avec la dernière quand ses pixels sont éteints.

        Ce premier huitième de tableau apparait aussi composé de deux zones, ce sont les deux derniers seizièmes :

        • Le seizième droit où il n'y a que le seul pixel de la page "D" d'éclairé.
        • Le seizième gauche, ou premier seizième, où tous les pixels sont éteints quelque soit la page.

    Il est à noter que les couleurs associées aux pixels des pages "D", "E" et "F" sont indifférentes au N° de groupe de sprites de la page "B" et qu'elles ne dépendent que du contexte généré par le µP 8080.

Ainsi selon le contexte :

  • Tous les sprites appartenant à la page "D", celle de niveau le moindre, apparaissent uniformément d'une couleur jaune (G + R), verte, cyan (B + G) ou à nouveau verte.
  • Tous les sprites appartenant à la page "E", de rang immédiatement supérieur, apparaissent uniformément d'une couleur verte, magenta (B + R, à noter que le bit de demi-teinte est ici incongru car il n'agit que sur le vert ), rouge ou orange (½ G + R).
  • Tous les sprites appartenant à la page "F", de rang immédiatement inférieur à celui du premier plan, apparaissent uniformément d'une couleur rouge, orange (½ G + R), jaune ou magenta (B + R).
  • La couleur des sprites appartenant à la page "B", la page d'avant scène, est ici fonction du contexte, bien sûr, mais aussi du groupe (de 00 à 15 ) auxquels ils appartiennent. Ainsi les sprites de cette page pourront être affichés avec pratiquement toute la gamme de couleurs qui peuvent être synthisées.

Suivant le manuel d'utilisation (page 14 du Pdf)

-La page B est  une page d'avant plan  ;) Elle gère l'affichage de tout ce qui est texte et scores, les bases à défendre (affichage en permanent et  disparaissant lors de leurs destructions) la barrière de protection jaune et les bombes des envahisseurs  ;)  Il a de plus la capacité d'afficher la palette des 12 couleurs disponible.

-La page F gère quand à elle, l'agrandissement des envahisseurs lorsqu'ils sont en avant plan et les soucoupes entre chaque niveaux  ;)  peut afficher 4 couleurs

-La page E gère les vaisseau des envahisseurs lorsqu'il sont sur le milieu de l'espace dédié au jeu  et peut également afficher 4 couleurs

-La page D gère les vaisseau des envahisseurs apparaissant tout au loin et n'a la possibilité d'afficher que 3 couleurs.


Pour la petite explication

Pour rappel, le jeu se déroule en vue subjective avec un point de fuite (pour donner un effet de profondeur) Les vaisseaux des envahisseurs apparaissent sur le milieu de l'air de jeu et grandissent au fur et à mesure qu'ils se rapproche du joueur  ;)

Quand les vaisseaux sont arrivés au premier plan, le jeu redevient plus basique (presque) de type Space invaders  ;)



Lorsque l'on regarde les vidéos suivantes, Je pense que l'on voit la prédominance de la page B dans l'avant plan du jeu! Quand un vaisseau situé en avant plan passe devant un vaisseau situé en arrière plan, on distingue toujours par effet de transparence la partie de la soucoupe caché  ;)

Les vidéos permettent de se rendre compte du gameplay  ;) et du fonctionnement des différentes pages "B", "D","E","F" suivant les explications de gc339  ^- Dans la première vidéo, tout ce qui se trouve sous le trait blanc n'existe pas dans le graphisme du jeu mais sous forme de leds et d'affichage dans le cockpit.





Gottlieb

PS:

Citation de: gc339 le Jeudi 05 Décembre 2013, 12:26:05 PM
Difficile d'analyser finement le timing des signaux issus de la micro machine avec un analyseur logique car il faudrait pouvoir la comparer à celle d'une autre carte fonctionnelle.
Citation de: gottlieb le Jeudi 05 Décembre 2013, 23:58:32 PM
Là ça se complique   :?
Trouver une autre carte fonctionnelle pour comparer, il est vrai que c'est quasi impossible (je n'ai pas dit impossible) :-[

:-)= :-)=

J'ai trouvé un possesseur d'une borne aux States  :D mais apparemment, il a le même problème que moi  :-X Je l'ai invité à venir jeter un œil par ici. Cela peut être bien pour une comparaison de signaux en cas d'autre problème  :D

Edit: Son problème est vertical et le mien horizontal  =:))

http://www.antiqueradios.com/forums/viewtopic.php?f=2&t=235259#wrapheader
A la maison  ;)
bornes: racecab speed up Gaelco et Ridge racer, table cocktail Taito SI part II ,cockpit Sega Space tactics, 1 borne Karateco, 3 bornes Jeutel, tactile megatouch , Naomi 1, Naomi 2, title fight sega, Time crisis 2 et 3 DX, HOTD2 et 1 mini borne enfant
flipper: silver slugger, pin bot, Whitewater,Indianapolis 500 Earth wind and fire
Billard: superleague diplomat
dart: Lowen royaldarts ...
Pashislot: Hokuto no ken
Jukebox jupiter mirage 120 et Atari Hit Parade 144
babyfoot Roberto sport
Ma gaming room :-*

gottlieb

#116
Donc aujourd'hui, ma petite factrice adorée m'a apporté 2 enveloppe de l'étranger  :-)=

Une polonaise (pas celle de "J'en ai connue des Polonaises qui ont prenait le matin au p'tit déjeuné"   pour ceux qui connaissent  =:)) ) Celle ci contient 2 nouvelles pince test fort pratique pour prendre des signaux sur plusieurs IC Lien Cela ira parfaitement avec mon nouvel analyseur logique en cours d'envois  ;)

Et la deuxième bien plus chère à mon cœur et arrivant d'Israël  :D 2 Proms TBP38S030  :-)=  La résurrection de la Pcb approcherait elle ?????  :-)=




A la maison  ;)
bornes: racecab speed up Gaelco et Ridge racer, table cocktail Taito SI part II ,cockpit Sega Space tactics, 1 borne Karateco, 3 bornes Jeutel, tactile megatouch , Naomi 1, Naomi 2, title fight sega, Time crisis 2 et 3 DX, HOTD2 et 1 mini borne enfant
flipper: silver slugger, pin bot, Whitewater,Indianapolis 500 Earth wind and fire
Billard: superleague diplomat
dart: Lowen royaldarts ...
Pashislot: Hokuto no ken
Jukebox jupiter mirage 120 et Atari Hit Parade 144
babyfoot Roberto sport
Ma gaming room :-*

maldoror68


TylerDurden67

J'ai la meme pince,c'est de là bombe :-)

Ca sent bon la ressurection :D

spectroman

Citation de: TylerDurden67 le Mardi 24 Décembre 2013, 14:05:02 PM
Ca sent bon la ressurection :D

oui, mais il va y avoir du retard :
- mon programmateur sait programmer les AM27S19 & 74S288.
- Gottlieb a trouvé des TBP38S030

Même si tous ces modèles sont équivalents, ils ne se programment pas de la même manière.

J'ai aussi un vieux programmateur HI-LO ALL-07 mais il ne programme que la famille TBP18/24/28

gottlieb

 :-\ Aïe la tuile   :-[

Tiens moi au courant de la possibilité  ;) Sinon, je te fait expédier des AM27S19PC si tu me peux les programmer  ;) Il y a toujours une solution  ^-
A la maison  ;)
bornes: racecab speed up Gaelco et Ridge racer, table cocktail Taito SI part II ,cockpit Sega Space tactics, 1 borne Karateco, 3 bornes Jeutel, tactile megatouch , Naomi 1, Naomi 2, title fight sega, Time crisis 2 et 3 DX, HOTD2 et 1 mini borne enfant
flipper: silver slugger, pin bot, Whitewater,Indianapolis 500 Earth wind and fire
Billard: superleague diplomat
dart: Lowen royaldarts ...
Pashislot: Hokuto no ken
Jukebox jupiter mirage 120 et Atari Hit Parade 144
babyfoot Roberto sport
Ma gaming room :-*

f4brice

Le programmateur auquel j'ai accès ne sait pas programmer la TBP38S030.
Il sait programmer des TBP24<truc> et des TBP28<machin>.

TylerDurden67

Citation de: f4brice le Mardi 07 Janvier 2014, 19:12:06 PM
Le programmateur auquel j'ai accès ne sait pas programmer la TBP38S030.
Il sait programmer des TBP24<truc> et des TBP28<machin>.

Pareil

spectroman

Il y a quand même une solution mais il doit y avoir une journée de boulot  :?.

j'ai pensé en lisant le datasheet, faire une prog manuelle comme à l'époque et rentrer les 24 octets a programmer en manuel.

Descriptif de la solution :
1) Deux roues codeuses hexa, pour coder l'octet de DATA à programmer
2) Un roue codeuse hexa et un cavalier pour gérer les adresses
3) un petit micro contrôleur pour gérer les timings et la prog bit à bit
4) un inter pour valider la prog d'un octet

Si je peux éviter de passer une journée complète en ce moment la dessus, je préfère (Very Bad WAF).

Donc si tu peux m'envoyer des AM27S19PC, c'est top. Je ne les ai jamais programmés mais c'est géré par mon programmateur (cf. ma réponse du 20 décembre) :



A+


gottlieb

Merci F4brice  ;) et TylerDurden67  ^-^

Spectroman, je passe commande et te les fait envoyer en direct  ;)
Je ne veux pas te faire passer ta journée dessus ce n'est pas la peine  ;)

Gottlieb
A la maison  ;)
bornes: racecab speed up Gaelco et Ridge racer, table cocktail Taito SI part II ,cockpit Sega Space tactics, 1 borne Karateco, 3 bornes Jeutel, tactile megatouch , Naomi 1, Naomi 2, title fight sega, Time crisis 2 et 3 DX, HOTD2 et 1 mini borne enfant
flipper: silver slugger, pin bot, Whitewater,Indianapolis 500 Earth wind and fire
Billard: superleague diplomat
dart: Lowen royaldarts ...
Pashislot: Hokuto no ken
Jukebox jupiter mirage 120 et Atari Hit Parade 144
babyfoot Roberto sport
Ma gaming room :-*

spectroman

salut gottlieb,

elles sont arrivées ce matin, je viens de les programmer, tu les auras cette semaine.


-AMD Am27S19 selected.
Blank check ok.
--------------------------------> 0.27 Sec.
-Filling buffer.
-Done.
-File loading...
C:\Documents and Settings\Administrateur\Bureau\pr65
-File load success.
-Buffer checksum : 0009CE50h
-Buffer checksumCRC-32 : A1506B9Dh
Program ok.
Verification ok.
--------------------------------> 0.59 Sec.
Blank check ok.
--------------------------------> 0.23 Sec.
Program error.
  Chip addr:0000014h  data:B5h
Buffer addr:0000014h  data:F5h
--------------------------------> 0.34 Sec.
Program ok.
Verification ok.
--------------------------------> 0.50 Sec.
Verification ok.
--------------------------------> 0.23 Sec.


La programmation de la deuxième PROM (celle qui n'a pas d'étiquette verte) a plantée, je l'ai reprogrammée et testée à nouveau et elle est aussi OK maintenant.

vivement ton Wip du WE prochain  :-)=

a+

gottlieb

 :-*

Un grand merci Spectroman pour ton aide   ^-^ le WIP va reprendre son fil  ^-

Il suffit de savoir se montrer patient  ;)

:-* :-*
A la maison  ;)
bornes: racecab speed up Gaelco et Ridge racer, table cocktail Taito SI part II ,cockpit Sega Space tactics, 1 borne Karateco, 3 bornes Jeutel, tactile megatouch , Naomi 1, Naomi 2, title fight sega, Time crisis 2 et 3 DX, HOTD2 et 1 mini borne enfant
flipper: silver slugger, pin bot, Whitewater,Indianapolis 500 Earth wind and fire
Billard: superleague diplomat
dart: Lowen royaldarts ...
Pashislot: Hokuto no ken
Jukebox jupiter mirage 120 et Atari Hit Parade 144
babyfoot Roberto sport
Ma gaming room :-*

maldoror68