[Reparación] Gokujou parodius, problemas gráficos.
Publicado: Mar Feb 12, 2013 7:56 pm
Este juego lo adquirí en un lote de placas descompuestas. Cuando lo ví, se me iluminó una sonrisa y a la primera oportunidad probé si funcionaba. Es un Konami System GX, no había tenido experiencia previa con estos sistemas. Se trata de una combinación de placas, una con el CPU y sistema base, y la segunda con los datos del juego y algo de procesamiento extra en muchos casos.
Como fan de Parodius, quería saber que tipo de falla tenía. Por suerte, la PCB arrancó y al comenzar la demostración el problema fue evidente:
Este problema fue muy similar al que tuve y solucioné un día antes, en Great 1000 Mile Rally y a uno de otra placa que veía al mismo tiempo. Por ello, quise aplicar la misma solución. Antes de ello, utilicé el menú de pruebas de la PCB, y esto confirmó mis sospechas:
Una Mask ROM dañada, la 28G. No fue difícil localizarla ya que se encuentran claramente marcadas. Procedí a desoldarla, colocar una base con tiras de pines para sustituirla, grabar una eprom equivalente - casualmente una 27c160 también - y a probar.
El error seguía allí.
De hecho estaba tan convencido que ni siquiera hice dump de la mask rom para compararla con la versión de MAME, cosa que regresé a probar de inmediato. Y efectivamente, la ROM estaba en perfecto estado. En otras palabras, no tenía para que haberla desoldado. Debí analizar mejor antes de concluir.
Ya que había desoldado la Mask ROM, y después de analizar un rato con la lupa y verificar continuidad con el multímetro sin encontrar nada; se me ocurrió hacer algo más metódico y a ciencia cierta, lógico. Puse una ROM 27c160 en blanco en la posición de la Mask ROM, y con la ayuda de la punta lógica me puse a revisar las lineas de datos y direcciones para saber si el problema estaba en la placa del juego o en la del cpu.
Cabe señalar que esto fue útil porque una ROM cuando se encuentra en blanco, contiene puros 1s. Cuando ésta se graba, se cambian los 1s por 0s al liberar la energía de los diminutos capacitores en donde deben de ir. El borrarla con la luz ultravioleta es en realidad cargar todos los capacitores a 1 - más info acá.
En resumidas cuentas, con una eprom en blanco las lineas de datos siempre están en 1 lógico. Ya que no cuento con los diagramas de una Konami System GX, con éste truco que se me ocurrió por la desesperación me fue más fácil diagnosticar los conectores. De allí me dí cuenta que un pin no tenía datos en el conector que unía a las dos placas. Lo verifiqué contra todos los pines de datos de la Mask ROM 28, y busque cual no tenía continuidad hacia el conector. Así descarté la placa de sistema y quedé convencido de que el problema se encontraba en la pcb del juego.
Resultó ser el pin 16, que al examinarlo con cuidado tiene su pista por la parte superior de la placa, y que por desgracia se iba por debajo de la mask ROM que estaba justo al lado. Por lo mismo, no podía reparar la pista sin saber a donde iba ni el porque no hacía contacto. Mi primer suposición es que al desoldar la Mask ROM pude haber roto la pista por arriba, así que procedí a raspar con un x-acto muy delgado desde arriba - entre las dos mask roms - la pista para confirmar la continuidad con el pin de la base. Con ayuda de una pata de capacitor amarrada al multímetro, y después de poner una pequeña plasta de soldadura en la base de la pata para asegurarme de que había contacto, comprobé que había continuidad hasta ese punto, justo antes de ir debajo de la Mask ROM antes mencionada.
No quedaba más remedio que desoldar la Mask ROM contigua. Y cual sería mi sorpresa al estarla levantando:
Así es, hongo o corrosión de algún tipo abajo de la Mask ROM que no se veía de ningún otra manera. Quité la mask ROM por completo, limpié bien y efectivamente no había continuidad al punto donde la pista cambiaba de lado de la PCB. Seguí por el anverso la pista y la dejé identificada para realizar el puenteo por debajo.
Acto seguido soldé los pines para la base de esta Mask ROM:
Y en el punto que creí más conveniente, raspé la pista con el x-acto para soldar allí el cable. Cabe mencionar que la pista que descubrí anteriormente fue cubierta responsablemente con barniz de uñas transparente. Sí, es ideal para cubrir pistas y pegar cables a la PCB.
De allí ya sólo restó parchar la pista con cable:
Y después de ello todo funcionó como debía. Sin embargo, este incidente me dejó preocupado con respecto al moho que se puede formar en placas mal almacenadas, que puede dar problemas en cualquier momento...
Como fan de Parodius, quería saber que tipo de falla tenía. Por suerte, la PCB arrancó y al comenzar la demostración el problema fue evidente:
Este problema fue muy similar al que tuve y solucioné un día antes, en Great 1000 Mile Rally y a uno de otra placa que veía al mismo tiempo. Por ello, quise aplicar la misma solución. Antes de ello, utilicé el menú de pruebas de la PCB, y esto confirmó mis sospechas:
Una Mask ROM dañada, la 28G. No fue difícil localizarla ya que se encuentran claramente marcadas. Procedí a desoldarla, colocar una base con tiras de pines para sustituirla, grabar una eprom equivalente - casualmente una 27c160 también - y a probar.
El error seguía allí.
De hecho estaba tan convencido que ni siquiera hice dump de la mask rom para compararla con la versión de MAME, cosa que regresé a probar de inmediato. Y efectivamente, la ROM estaba en perfecto estado. En otras palabras, no tenía para que haberla desoldado. Debí analizar mejor antes de concluir.
Ya que había desoldado la Mask ROM, y después de analizar un rato con la lupa y verificar continuidad con el multímetro sin encontrar nada; se me ocurrió hacer algo más metódico y a ciencia cierta, lógico. Puse una ROM 27c160 en blanco en la posición de la Mask ROM, y con la ayuda de la punta lógica me puse a revisar las lineas de datos y direcciones para saber si el problema estaba en la placa del juego o en la del cpu.
Cabe señalar que esto fue útil porque una ROM cuando se encuentra en blanco, contiene puros 1s. Cuando ésta se graba, se cambian los 1s por 0s al liberar la energía de los diminutos capacitores en donde deben de ir. El borrarla con la luz ultravioleta es en realidad cargar todos los capacitores a 1 - más info acá.
En resumidas cuentas, con una eprom en blanco las lineas de datos siempre están en 1 lógico. Ya que no cuento con los diagramas de una Konami System GX, con éste truco que se me ocurrió por la desesperación me fue más fácil diagnosticar los conectores. De allí me dí cuenta que un pin no tenía datos en el conector que unía a las dos placas. Lo verifiqué contra todos los pines de datos de la Mask ROM 28, y busque cual no tenía continuidad hacia el conector. Así descarté la placa de sistema y quedé convencido de que el problema se encontraba en la pcb del juego.
Resultó ser el pin 16, que al examinarlo con cuidado tiene su pista por la parte superior de la placa, y que por desgracia se iba por debajo de la mask ROM que estaba justo al lado. Por lo mismo, no podía reparar la pista sin saber a donde iba ni el porque no hacía contacto. Mi primer suposición es que al desoldar la Mask ROM pude haber roto la pista por arriba, así que procedí a raspar con un x-acto muy delgado desde arriba - entre las dos mask roms - la pista para confirmar la continuidad con el pin de la base. Con ayuda de una pata de capacitor amarrada al multímetro, y después de poner una pequeña plasta de soldadura en la base de la pata para asegurarme de que había contacto, comprobé que había continuidad hasta ese punto, justo antes de ir debajo de la Mask ROM antes mencionada.
No quedaba más remedio que desoldar la Mask ROM contigua. Y cual sería mi sorpresa al estarla levantando:
Así es, hongo o corrosión de algún tipo abajo de la Mask ROM que no se veía de ningún otra manera. Quité la mask ROM por completo, limpié bien y efectivamente no había continuidad al punto donde la pista cambiaba de lado de la PCB. Seguí por el anverso la pista y la dejé identificada para realizar el puenteo por debajo.
Acto seguido soldé los pines para la base de esta Mask ROM:
Y en el punto que creí más conveniente, raspé la pista con el x-acto para soldar allí el cable. Cabe mencionar que la pista que descubrí anteriormente fue cubierta responsablemente con barniz de uñas transparente. Sí, es ideal para cubrir pistas y pegar cables a la PCB.
De allí ya sólo restó parchar la pista con cable:
Y después de ello todo funcionó como debía. Sin embargo, este incidente me dejó preocupado con respecto al moho que se puede formar en placas mal almacenadas, que puede dar problemas en cualquier momento...