Gamoover

[move]Vous aimez le couscous-boulettes, le chorizo, la Force 4, et la mimolette ? Alors soyez les bienvenus sur Gamoover ! [/move]

Problème sur un Juju Densetsu Bootleg

Démarré par Processor, Mercredi 30 Mars 2011, 12:34:27 PM

High_Cobra

Pas forcement au niveau CPU, ça peut très bien etre un soucis d'adressage... C'est à dire les composants qui permettent de choisir quel bank mémoire sera lu et donc la CPU croit lire une adresse et en lit une autre... Faudrait déjà trouver quelle ROM contient le sprites qui merdent... Mame peut t'aider à trouver ça...

Processor

L'histoire de l'adressage avait déjà été évoqué par un de mes oncle qui était prof d'électro.
Mais comment identifier ce qui crée le fameux problème?
En ce qui concerne Mame, le problème c'est que mes bootlegs ne sont pas référencés.

Le seul boot référencé est celui-ci:
http://www.solvalou.com/subpage/arcade_roms/J/tokij

Evidemment ce n'est pas un de ceux que j'ai :( et de toute manière je ne vois pas comment je pourrais faire le lien entre les roms du set mame et mes eproms sans lecteur/programmateur d'eprom.

En ce qui concerne les réseaux de résistances voici 2 photos:





Donc aucune indication sur la valeur du réseau, mais j'imagine que dans un réseau de ce type toutes les résistances à l'intérieur sont de la même valeur, or sur la carte buggée, les résistances n'ont pas toutes les même valeur. :|

Voici le condensateur qui devrait être à la place de la résistance qui est connectée à la clock tu CI sur la carte buggée:


Le 104 dessus indique quoi? sa valeur j'imagine mais en quoi? µf?
J'ai regardé chez Gotronic j'en ai pas vus avec la valeur 104µf.

Processor

speedsterharry

104 = 10x10^4 soit 100 000, l'unité je crois que c'est des pF, ca te ferait 100nF
(info recoupée avec Google "104 capacitor")

Processor

Processor

maldoror68

Citation de: speedsterharry le Jeudi 28 Avril 2011, 19:49:20 PM
104 = 10x10^4 soit 100 000, l'unité je crois que c'est des pF, ca te ferait 100nF
(info recoupée avec Google "104 capacitor")

nice shot !  ^-^

Little_Rabbit

Salut,

Le condensateur CD43 est effectivement un condo de 100 nF. Il s'agit à priori d'un condensateur dit "de découplage". Il est mis aux bornes de l'alimentation du circuit TTL voisin afin de servir de mini réservoir d'énergie de proximité (si tu regardes bien, quasiment chaque circuit TTL en a un de la sorte). Un circuit TTL présente des pics de consommation au moment des changements d'état. Avoir un tel condo de découplage permet au circuit de trouver immédiatement l'énergie dont il a besoin. Cela évite aussi de perturber la ligne d'alimentation générale du PCB en lissant ces pics de consommation.

Je ne pense pas qu'il puisse être en cause dans ta panne, et il n'a pas de rapport avec le réseau de résistance voisin.

Sur ta dernière photo, on voit que les deux condensateurs céramiques placés entre IC20 et IC21 ont les pattes un peu tordu. On a l'impression que l'un d'entre eux touche une des broches de IC21. As-tu bien vérifier qu'aucun composant aux pattes tordues de la sorte ne touchait un de ses voisins ?

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

f4brice

Attention :
J'observe sur le PCB des sérigraphies "RR1", "RR2" => réseau de résistances.
Mais il y a des sérigraphies "RRC1", "RRC2". Pour moi, ce n'est pas anodin. Ca doit etre un réseau de résistances + condos.

Dans tous les cas, c'est une fausse piste. Ces trucs ne tombent jamais en panne, sauf quand ils ont été desoudés par un dépanneur qui n'a pas fini son boulot comme dans le cas de mon PCB Chelnov.

Pour dépanner la sélection d'adresse, il faut regarder le code source de Mame, regarder quelles adresses mémoire sont mappées sur quelles EPROM et faire la correspondance avec les composants du PCB.

Processor

Salut à tous,

Tout d'abord merci pour votre participation ensuite:

@Little_Rabbit
Oui j'ai vérifié coté composants et côté soudure que rien ne se touchait

@F4brice

CitationPour dépanner la sélection d'adresse, il faut regarder le code source de Mame, regarder quelles adresses mémoire sont mappées sur quelles EPROM et faire la correspondance avec les composants du PCB.

Je vais voir ce que je peux faire mais la ça commence à dépasser mon domaine de compétence, je vais déjà essayer d'identifier quelle partie du code source Mame gère cette carte
Processor

Processor

Salut,

Bon je suis en train de regarder le code source de Mame voilà ce que j'ai trouvé pour les la famille des proces M68000

//  Address decoder
//          15      7
//  0xFFFC00    AMAR0       AAMR0
//  0xFFFC02    -       AACR0
//  0xFFFC04    AMAR1       AAMR1
//  0xFFFC06    -       AACR1
//  0xFFFC08    -       AACR2
//  0xFFFC0A    -       ATOR
//  0xFFFC0C        ARELR
//  0xFFFC0E    -       -


Bon j'ai trouvé d'autres choses également mais, je suis payé pour un boulot, je vais donc mettre ça de coté pour plus tard ;)

A+
Processor

f4brice

Il faut regarder dans l'address map du jeu, pas dans l'émulateur du CPU !

Citation de: fichier toki.c de Mame
ROM_START( jujub )
   ROM_REGION( 0x60000, "maincpu", 0 )   /* 6*64k for 68000 code */
   ROM_LOAD16_BYTE( "8.19g",   0x20000, 0x10000,  CRC(208fb08a) SHA1(113d3924d738705cb73d137712a23fa25cd4c78c) )
   ROM_LOAD16_BYTE( "5.19e",   0x20001, 0x10000,  CRC(722e5183) SHA1(87b813e818670bad45043db7f692619052987ce8) )
   ROM_LOAD16_BYTE( "9.20g",   0x00000, 0x10000,  CRC(cb82cc33) SHA1(1c774b72d12e84e9e159f66fc151f779dabbdfbd) )
   ROM_LOAD16_BYTE( "6.20e",   0x00001, 0x10000,  CRC(826ab39d) SHA1(dd7696d78deac02890a7c12f6beb04edfd1158b1) )
   ROM_LOAD16_BYTE( "10.21g",  0x40000, 0x10000,  CRC(6c7a3ffe) SHA1(c9a266ef7a5aeaa78b4d645c4df28068bcab96d0) )
   ROM_LOAD16_BYTE( "7.21e",   0x40001, 0x10000,  CRC(b0628230) SHA1(f8ed24ee53efc595e4dae13e2563021322c049e1) )

   ROM_REGION( 0x20000, "audiocpu", 0 )   /* Z80 code, banked data */
   ROM_LOAD( "3.9c",    0x00000, 0x02000, CRC(808f5e44) SHA1(a72d04367adf428b8f0955ef6269c39eb47eee14) ) /* first 0x2000 is empty */
   ROM_CONTINUE(0x0000,0x6000)
   ROM_LOAD( "4.11c",   0x10000, 0x10000, CRC(a67969c4) SHA1(99781fbb005b6ba4a19a9cc83c8b257a3b425fa6) )   /* banked stuff */

   ROM_REGION( 0x020000, "gfx1", 0 )
   ROM_LOAD( "5.19h",   0x000000, 0x10000, CRC(8aa964a2) SHA1(875129bdd5f699ee30a98160718603a3bc958d84) )   /* chars */
   ROM_LOAD( "6.20h",   0x010000, 0x10000, CRC(86e87e48) SHA1(29634d8c58ef7195cd0ce166f1b7fae01bbc110b) )

   ROM_REGION( 0x100000, "gfx2", 0 )
   ROM_LOAD16_BYTE( "1.17d",  0x00000, 0x20000, CRC(a027bd8e) SHA1(33cc4ae75332ab35df1c03f74db8cb17f2749ead) )
   ROM_LOAD16_BYTE( "27.17b", 0x00001, 0x20000, CRC(43a767ea) SHA1(bfc879ff714828f7a1b8f784db8728c91287ed20) )
   ROM_LOAD16_BYTE( "2.18d",  0x40000, 0x20000, CRC(1aecc9d8) SHA1(e7a79783e71de472f07761f9dc71f2a78e629676) )
   ROM_LOAD16_BYTE( "28.18b", 0x40001, 0x20000, CRC(d65c0c6d) SHA1(6b895ce06dae1ecc21c64993defbb3be6b6f8ac2) )
   ROM_LOAD16_BYTE( "3.20d",  0x80000, 0x20000, CRC(cedaccaf) SHA1(82f135c9f6a51e49df543e370861918d582a7923) )
   ROM_LOAD16_BYTE( "29.20b", 0x80001, 0x20000, CRC(013f539b) SHA1(d62c048a95b9c331cedc5343f70947bb50e49c87) )
   ROM_LOAD16_BYTE( "4.21d",  0xc0000, 0x20000, CRC(6a8e6e22) SHA1(a6144201e9a18aa46f65957694653a40071d92d4) )
   ROM_LOAD16_BYTE( "30.21b", 0xc0001, 0x20000, CRC(25d9a16c) SHA1(059d1e2e874bb41f8ef576e0cf33bdbffb57ddc0) )

   ROM_REGION( 0x080000, "gfx3", 0 )
   ROM_LOAD16_BYTE( "11.1j",        0x00001, 0x10000, CRC(6ad15560) SHA1(707a05ac0c61a66ac65c8c3718e5d2b958da9142) )
   ROM_LOAD16_BYTE( "12.2j",        0x20001, 0x10000, CRC(68534844) SHA1(ff4aa635e2221a552f844e30db93c73107a70cf2) )
   ROM_LOAD16_BYTE( "13.4j",        0x40001, 0x10000, CRC(f271be5a) SHA1(c9847439f0c48f6bb710999acc172a2d6fc8d58b) )
   ROM_LOAD16_BYTE( "14.5j",        0x60001, 0x10000, CRC(5d4c187a) SHA1(b2e0e705910fe8fd230de14053513248fd76d054) )
   ROM_LOAD16_BYTE( "19.1l",        0x00000, 0x10000, CRC(10afdf03) SHA1(f1388e0f3b720ef80c395d1aa0dbb17bc3c56975) )
   ROM_LOAD16_BYTE( "20.2l",        0x20000, 0x10000, CRC(2dc54f41) SHA1(cee34fae49a60dd0009b5ed89e098f6cbfc19431) )
   ROM_LOAD16_BYTE( "21.4l",        0x40000, 0x10000, CRC(946862a3) SHA1(398913ccef8bd5242987c516194752ac38e10918) )
   ROM_LOAD16_BYTE( "22.5l",        0x60000, 0x10000, CRC(b45f5608) SHA1(fbf9f748db285f8693e0493d9b449c23cf02748b) )

   ROM_REGION( 0x080000, "gfx4", 0 )
   ROM_LOAD16_BYTE( "15.18j",        0x00001, 0x10000, CRC(cb8b1d31) SHA1(8dc858c4a096d71ee66541d04f8a3acb97565ac8) )
   ROM_LOAD16_BYTE( "16.19j",        0x20001, 0x10000, CRC(81594e0a) SHA1(6390798f0829d69a70a05dbb169b0eb9183cc9a9) )
   ROM_LOAD16_BYTE( "17.20j",        0x40001, 0x10000, CRC(4acd44ce) SHA1(517444d22f252784ad0cb2b8948d86d4db186ae4) )
   ROM_LOAD16_BYTE( "18.21j",        0x60001, 0x10000, CRC(25cfe9c3) SHA1(6e649ce1f48f8e46d79f67cf43bd45d072441c77) )
   ROM_LOAD16_BYTE( "23.18l",        0x00000, 0x10000, CRC(06c8d622) SHA1(cc2a5b255d14e9984fcadfb465aefd3be42d8dd9) )
   ROM_LOAD16_BYTE( "24.19l",        0x20000, 0x10000, CRC(362a0506) SHA1(0a712b2c6200bbf8c01d6fa1fb2032efb1eba295) )
   ROM_LOAD16_BYTE( "25.20l",        0x40000, 0x10000, CRC(be064c4b) SHA1(d777b560942e9f6300aed1bf22a07b381c27a479) )
   ROM_LOAD16_BYTE( "26.21l",        0x60000, 0x10000, CRC(f8b5b38d) SHA1(6ec60cf5259469cc9c4bdd9ffc6c63bc2785b708) )

   ROM_REGION( 0x40000, "oki", 0 )   /* OKI samples */
   ROM_LOAD( "1.6a",   0x00000, 0x10000, CRC(377153ad) SHA1(1c184197b344c2b65b5842f9ba99fab776a9577b) )
   ROM_LOAD( "2.7a",   0x10000, 0x10000, CRC(093ca15d) SHA1(1b298146c9eea93c22c03e63513200b483b86a3f) )
ROM_END


Le problème est kekpart dans gfx2, gfx3 ou gfx4...  :D

Technique :

  • faire une (grosse) corruption de données dans un fichier présent dans le .zip du jeu (il faut corrompre le fichier complet, et non pas quelques octets par ci par là)
  • lancer Mame
  • regarder quelle est la conséquence
  • quand tu observes le même pb que sur ton PCB, tu as bousillé le bon fichier, donc tu sais quelle EPROM est en cause sur ton PCB

Il est préférable de n'avoir qu'un seul fichier corrompu à la fois dans le .zip, sinon tu vas t'emmêler les crayons.
Quand tu as identifié l'EPROM, il faut chercher autour. Ce n'est pas forcément le composant lui-même qui est en cause.

Autre technique :

  • pour chaque EPROM concernée par gfx2, gfx3 et gfx4, retirer 1 EPROM et démarrer le PCB
  • quand tu observes que tu as retiré 1 EPROM et que le jeu ne bugge pas davantage => tu as trouvé l'EPROM

Il est préférable de ne retirer qu'une EPROM à la fois. C'est à dire que le PCB ne doit démarrer qu'avec 1 seule EPROM manquante à la fois.
En gros, tu vires la 1.17d, tu allumes le PCB, tu observes.
Puis tu remets la 1.17d, tu vires la 27.17b, tu allumes le PCB, tu observes.
Etc...

Processor

bon déjà visiblement ce serai plus situé dans la partie GFX 3 ou 4, si je me base la dessus:
static GFXDECODE_START( tokib )
GFXDECODE_ENTRY( "gfx1", 0, tokib_charlayout, 16*16, 16 )
GFXDECODE_ENTRY( "gfx2", 0, tokib_spriteslayout,  0*16, 16 )
GFXDECODE_ENTRY( "gfx3", 0, [b]tokib_tilelayout[/b], 32*16, 16 )
GFXDECODE_ENTRY( "gfx4", 0, [b]tokib_tilelayout[/b], 48*16, 16 )


Si j'ai le temps je ferai des tests entre midi et deux.

donc si je comprends bien F4brice l'idée serai de corrompre une rom afin de reproduire mon problème avec l'émulateur, Pour identifier quelle eprom est impactée et ensuite trouver quel CI fait que le contenu de cette eprom est mal traité.

C'est ça?

Sinon pour en revenir à l'histoire du "bricolage sur la carte" est-ce que tu me conseille de remettre ça d'équerre?
Processor

f4brice

Citation de: Processor le Mardi 03 Mai 2011, 12:29:02 PM
C'est ça?

Voui.  :)

Citation de: Processor le Mardi 03 Mai 2011, 12:29:02 PM
Sinon pour en revenir à l'histoire du "bricolage sur la carte" est-ce que tu me conseille de remettre ça d'équerre?

Voir la phrase sous mon avatar !  ;)
Plus sérieusement, je te déconseille de modifier le PCB, sauf à savoir très précisement ce que tu veux et comment y parvenir.

Processor

Processor

Processor

Salut bon j'ai voulu faire quelques tests pendant ma pause déjeuner, mais je suis confronté à un souci.
Lorsque je modifie le contenu d'une des roms, ça modifie son checksum également, or mame refuse de lancer une rom si son checksum est différent de celui du driver du jeu.

J'ai donc voulu modifier la valeur crc de mame pour un tokib mais problème c'est qu'une fois compilé on y a plus accès :(

Je me vois mal editer le driver et recompiler à chaque fois. (surtout que je suis sous linux et faire fonctionner mame est un tout petit peu plus chiant à faire fonctionner que sous Windows)

Si vous avez une soluce je suis preneur!!
Processor

Little_Rabbit

Une discussion similaire avait eu lieu dans ce WIP :

http://www.gamoover.net/Forums/index.php?topic=21423.msg311855#msg311855

=> l'option debug devrait te sortir d'affaire.

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

f4brice

Citation de: Little_Rabbit le Mardi 03 Mai 2011, 16:52:36 PM
=> l'option debug devrait te sortir d'affaire.

Pas sûr.
J'utilise GCC et je n'ai pas de problème.
Voir mon topic contre le Démon des pannes ; Mame rouspète mais démarre.