Jump to content
Sign in to follow this  
Ptchnk

Bugs graphiques sur convert Viewpoint

Recommended Posts

J'ai récupéré un boot MVS de Puzzle de Pon il y a quelque temps. Quelques maskorms sur la CHA board, inquide que le donneur était un World Heroes 2 (PROG4096B et CHA42G-3). La CHA board avait été un peu modifiée également avec un shunt entre le LS139 (pin1/GND) et la pin 1 (A18) de la C6 (maskrom résiduelle), et également un autre au dos mettant la pin 3 du LS139 et le pin 9 du LS74 à la masse.

bootPdPON.thumb.jpeg.7388c170f5f939c9acdfe11d90807cf8.jpeg

Mon idée était d'en faire un Viewpoint qui d'origine est monté à partir de PROG4096/CHA42G-2 ou de PROG-G2/CHA42G-1.

Après viré les shunts et mis les eproms qui vont bien: 27C160 pour V1&2 et C1&2, 27C800 pour P1 et 27C1001/27C1000 pour M1/C1. Le jeu démarre bien mais présente des bugs graphiques (en gros il manque des tuiles dont celle du background). J'ai essayé avec une CHA256 et après avoir vérifié les eproms, même résultat.

Le pb ne vient pas de la PROG board, car testée ok avec un autre Viewpoint sur CHA42G-2.

Après il s'avère que pour les CHA42G, G-1 et G-2, il y a quelques différences par rapport aux autres CHA boards comme précisé ici pour la CHA42G avec un inversion entre les pins du peigne de la cartouche et les celles du NEO-273 pour A19 (pin45) et A20 (pin46), de même entre S1 (A2/pin10 & A4/pin8) et le NEO-273 pour (pin 50 & 51). Après vérifiaction, la CHA42G-3, elle, est routée comme la CHA256 pour les points ci-dessus.

La page du dev wiki indique que si utilisation de rom de 2Mo, il faut les reconstruire comme suit:
    C1 = First 1MiB of C1 + First 1MiB of C3
    C2 = First 1MiB of C2 + First 1MiB of C4
    C3 = Second 1MiB of C1 + Second 1MiB of C3
    C4 = Second 1MiB of C2 + Second 1MiB of C4

Donc à priori, pas de pb pour le faire en sens inverse pour faire tourner le jeu sur une CHA board "classique" si utilisation de 4 roms de 2Mo. Par contre dans le cas d'un jeu avec seulement 2 roms C1 & C2 de 2Mo comme Viewpoint, cela signifierai de le répartir sur 4 eproms de 1Mo à priori. Pas pu tester pour l'instant car pas suffisamment de 27C800 sous le coude.

Pour garder les C sur seulement 2 eproms de 2Mo sans couper de pistes et faire des shunts sur la CHA board et comme le jeu semblant être programmé pour tourner seulement sur des CHA42G, G-1 ou G2, serait-il, d'après vous, possible de modifier le programme sur P1 pour changer les adressages pour les tuiles graphiques? Cela serait l'occasion de voir un peu comment tout ça fonctionne.

Share this post


Link to post
Share on other sites

La je n'ai pas trop le temps de me triturer le cerveau, mais d'après mes archives, j'ai monté 2 exemplaires par le passe en utilisant une PROGGSC/CHA42G-1 pour l'une et une PROG-G2/CHA-42G1 pour l'autre.

Si tu veux les sets.

Share this post


Link to post
Share on other sites

Salut Red, merci pour la proposition mais je sais que cela marche avec le set de Mame si on utilise une CHA42G-1 (ou 42G ou 42G-2) qui sont routées spécifiquement. Pour la PROG, les G2, 4096, GSC, TOP et BK1 font l'affaire normalement.

Il me semble comprendre d'après la page wiki, que si utilisation de rom de 2Mo, le programme lit d'abord la première moitié de chaque C, puis seulement après avoir lu le début de C3/C4, va lire la seconde moitié des C. Comme si la seconde moitié de C était vu comme des 1Mo sur des emplacement C5/6 et C7/8. D'où la reconstruction nécessaire si on met un autre jeu sur une CHA42G ou -1 ou -2.

Sur la CHA42G-3, j'ai l'impression que si on utilise les C1/C2 de Viewpoint telles quelles sur des 2Mo, le programme lit bien la 1ère moitié des 2 C (j'ai tous les sprites notamment) et ensuite, au lieu d'allée chercher les backgrounds dans la seconde moitié des C, il regarde le début d'une éventuelle C3/C4 même si il n'y en a pas. J'ai tous les textes donc S1 est OK. A priori, pas de pb si seulement des 1Mo sont utilisées. Dès que j'ai des 27C800 sous le coude, j'en rajouterai sur le CHA déjà montée avec la deuxième moitié des C1/2 dessus tout en gardant les C1/C2 de base sur des 2Mo. Si cela règle le pb, cela confirma l'ordre de lecture attendu par le programme ou bien que je raconte beaucoup de conneries (c'est aussi fortement probable). Restera à voir si l'inversion sur les pins de S1 crée des glitches ou pas.

 

 

Share this post


Link to post
Share on other sites

La CHA42G-3 étant déjà montée et ayant déjà été torturée, je ferai un modif du hard en premier pour inverser les pins du peigne (P14 & P15) qui sont associées  sur le NEO-273 respectivement à A19 (45) et 1A-LS139 (46) pour la 42G-3,  et respectivement aux /CE des C (/CE C1/C2 sur pin 46 et /CE C3/C4 sur pin 47) et A19 (pin 45) sur le 42-G2.

Sur la 42G-2, le programme va donc d'abord titiller le /CE (P14) avant de regarder A19 (P15) si qui peut expliquer la lecture inhabituelle des C roms sur cette carte. En transposant tout sur la 42G-3, cela bugue forcement car P14 se retrouve alors classiquement associé à à A19 et P15 à 1A-LS139.

Share this post


Link to post
Share on other sites

Petit update: J'ai fait l'inversion entre P14/P15 et les pins 54/55 du NEO-273 et bingo, je retrouve mes tuiles de background... par contre comme attendu, cela fout le bordel dans les textes car cela crée une inversion entre les pins A2(10) et A4(8) de S1 vis à vis de P14/P15. Donc il faudra aussi croiser ses 2 lignes par rapport au pin 50/51 du NEO-273. Donc 4 shunts à mettre en tout.

Ce semble confirmer que le programme des jeux qui tournent sur les cartes CH42G, 42G-1 & 42G-2 est spécifique à ces cartes.

D'où ma question, est-ce envisageable de modifier P1 et S1 pour intervertir les secteurs associés à P14/P15 et A2/A4 respectivement pour remplacer les shunts harware?

Share this post


Link to post
Share on other sites

Voilà cela fonctionne 8-)

Comme l'inversion sur les pin 45/46 du neo-273 inversait également les pins A2(10) et A4(8) de S1 car elles partagent les mêmes pistes entre le neo-273 et le peigne de la cartouche, j'ai remis les continuités d'origine à ce niveau et fait l'inversion au niveau des pins 45/46 du NEO-273.

Pour rappel:

Sur une CHA42G-2: la pin 45 = A19 (1) des C, et les pins 46&47 servent d'inverseur CE&/CE avec 46 = /E (11) de C1/C2 et 47 = /E(11) de C3/C4. Les pins /G (32) des C en high (Vcc)

Sur une CHA42G-3: la pin 45 = A19 (1) des C, et les pins 46 = 1A (2) LS139 et 47 = NC. Le LS139 est connecté aux pins /E (11) des couples C1/C2, C3/C4, C5/C6 et C7/C8. La pin 1B (3) du LS139 est connectée au LS74. Les pins /G (32) des C en high (Vcc)

Sur une CHA256: la pin 45 = A19 (1) des C, et les pins 46 = 1A (2) LS139 et 47 = NC. Le LS139 est connecté aux pins /G (32) des couples C1/C2, C3/C4, C5/C6 et C7/C8. La pin 1B (3) du LS139 est connectée au LS74. Les pins /E (11) des C en low (GND).

 

Comme sur la 42G-2, les pins 54/55 du NEO-273 sont inversées, au lieu de les inverser sur la 42G-3 et du coup inverser aussi A2/A4 de S1, j'ai simplement inversé les pins 45/46 en mettant 46 = A19 (1) des C et 45 = 1A (2) LS139. Cela m'a permis de récupérer les tuiles de background mais ces dernières et les sprites étaient bugués (lignes de pixel multiples (doublées ou quadruplées)). Le souci est résolu en mettant la pin 1B (3) du LS139 à la masse. C'est pas super propre mais ça fait le job.

CH42G3mod.thumb.JPG.a709006dc95d821ea469d0ecaa1b2d64.JPG

 

Au final, cela fait 3 shunts à faire. Je ne sais pas si la manip est jouable sur le CHA256.

Aussi splitter les C1/C2 en 2 pour avoir C1(2Mo)=C1(1Mo)+C3(1Mo) et C2(2Mo)=C2(1Mo)+C4(1Mo) permettrait normalement de faire tourner le jeu aussi bien sur CHA42G-3 que CHA256 dans faire de modifs sur les cartes.

Reste la question de la possibilité de modifier P pour gérer l'inversion P14/P15 au niveau du soft?

Share this post


Link to post
Share on other sites

Bravo pour la résolution de ton soucis et aussi pour l'explication.

Il y a 6 heures, Ptchnk a dit :

Reste la question de la possibilité de modifier P pour gérer l'inversion P14/P15 au niveau du soft?

Quand tu parles de P14 et P15 tu parles des pin 14 et 15 de P1 ? ou A14 et A15 de P1?

Share this post


Link to post
Share on other sites
il y a une heure, SkUnK a dit :

Bravo pour la résolution de ton soucis et aussi pour l'explication.

Quand tu parles de P14 et P15 tu parles des pin 14 et 15 de P1 ? ou A14 et A15 de P1?

En fait, j'ai dit en partie un connerie. P14/P15 n'ont rien à voir avec les pins de la rom P1 mais avec le P bus sur le CM entre la cartouche et les chips vidéos.

neo geo dev wiki

Reste que le programme du jeu doit quand même avoir son mot à dire la dedans pour s'adapter à la CHA board affecté au jeu.

Share this post


Link to post
Share on other sites

Bien joué, c'est toujours sympa de lire ce genre de montage, même si pour le coup tu t'es un peu compliqué la tache. ;)

Perso, j'en ai monté une certaine quantité et je n'ai jamais osé commencer a partir de vrais plaques bootleg, jamais eu confiance.

Et puis avec les années, j'ai un peu fait le tour du format.

Le dernier modd en date, je ne me rappelle bien avait été un peu différent des autres; j'étais retombé sur des plaques que j'avais réparé il y a quelques années. De mémoire une antique PROG16 et une "récente" CHA512, et j'avais cherché un titre pouvant tourner sur ces plaques que de nombreuses années séparent: et bien j'avais cherché 5 minutes, mais j'avais fini par trouver et au final j'avais trouvé ça fun de batailler pour faire travailler de concert 2 plaques qui n'auraient jamais du se retrouver ensemble.

Bref, j'aime bien quand on cherche des moyens détournés pour parvenir a ses fins. :267383937_EmojiSmiley-14:

Share this post


Link to post
Share on other sites

Je dois avouer que l'aspect bricole m'intéresse limite plus que de jouer. Dans la cas présent, je n'avais surtout pas le courage de re-dessouder les 7 eproms. Puis j'ai appris pas mal de trucs et j'ai mis à profit ce que j'ai appris en cartographiant les CHA256 et CHA512 :D

Sinon, effectivement joli challenge de faire tourner un jeu sur une PROG qui ne prend de des 27C800 en taille max (bon y a moyen d'ajouter un LS08 pour mettre un 27C160 sur une V) et une CHA qui ne prend sue de 27C322 en taille mini :). T'as pas du utiliser beaucoup de slots C sur le 512!

Share this post


Link to post
Share on other sites

Je crois qu'on est plusieurs ici bas à être plus intéressé par le voyage que par la destination.

Et voici le Money pour lequel tu as bien entendu deviné comment j'étais parvenu à mes fins.

Prog16.thumb.jpg.1eb20229541132a67a571ee70ffefc49.jpgCha512Y.thumb.jpg.d35c0af5dd4e62b4196e4ace99556534.jpg

C'était un peu pour m'occuper pendant les confinement, et puis après avoir réparé ces plaques qui avaient été utilisés comme donneuses d'organe, je me disais que ce serait bien qu'elles servent enfin.

Le jeu a booté, j'ai du faire deux ou trois crédits et je doute y retoucher un jour. :267383937_EmojiSmiley-14:

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...