詳細不明の彩京基板って事で手に入れたガンバード。基板の外見からガンバードだってとこまではわかってたんだけど基本ジャンク。起動してみたら一部のオブジェクトが化けていました。数ライン置きに黒く横ラインが入る感じ。それ以外は正常なので怪我として小さい。
この症状だと考えられるパタンは大きく2つあって。1つはオブジェ面やスプライトを合成する論理の故障。古めのタイトルなら基板上に汎用ロジックで組まれているので、面倒だけど流れる信号をモニタして出力間違ってるやつを探せばなんとかなる。新しめでカスタムチップの中だとお手上げ。もう1つはデータ格納してるROM周り。この手の化け方だとアドレス線かデータ線で断線がある可能性が濃厚だけど、メモリの故障パタンも同じような症例になる。
という事で、最初の切り分けは合成論理なのかデータなのか、という点。前者はキャラ化けが表示面についてくる、後者はパタンについてくる、という特徴がある。この辺はエミュレータ使って切り分けると楽で、画像系のROMを1つずつオール0の空ROMと置き換えて様子をみてやると良い。
こんな感じで、化けてたパタンのみが豆腐になった。って事でデータ側を疑う事に。一通り調べた限り、他のROMは正常のようです。
次はROMなのか配線なのか確認。本当なら外して読んでみるのが早いんだけど、今回対象だったu25はSOPのマスクROM。画像系はわりとマスクROMで基板に直半田って事が多いし、外すことを考えると実はSOPの方がDIPより楽、かな。でも、まずは配線の確認。u14、u15、u24、u25の4枚が並んでおり、ペアではなくそれぞれが16-bitsデータバスでリニアに配置されてるのがpsikyo.cppからわかります。ただ、故障のu25だけサイズが半分。だから他のがOKI製なのに、こいつだけSHARP製で仲間外れなのね。そこだけ気をつけて配線の確認に入ります。マスクROMのピンアサインは見つからない事も多いんですが、今回はOKIのM531602のデータが手に入りました。
NC | 1 | M531602 | 44 | NC |
A18 | 2 | 44 PIN SOP | 43 | A19 |
A17 | 3 | | 42 | A8 |
A7 | 4 | | 41 | A9 |
A6 | 5 | | 40 | A10 |
A5 | 6 | | 39 | A11 |
A4 | 7 | | 38 | A12 |
A3 | 8 | | 37 | A13 |
A2 | 9 | | 36 | A14 |
A1 | 10 | | 35 | A15 |
A0 | 11 | | 34 | A16 |
/CE | 12 | | 33 | /BYTE |
GND | 13 | | 32 | GND |
/OE | 14 | | 31 | D15/A-1 |
D0 | 15 | | 30 | D7 |
D8 | 16 | | 29 | D14 |
D1 | 17 | | 28 | D6 |
D9 | 18 | | 27 | D13 |
D2 | 19 | | 26 | D5 |
D10 | 20 | | 25 | D12 |
D3 | 21 | | 24 | D4 |
D11 | 21 | | 23 | VCC |
アドレスとデータは全部共有バスに繋がってるはずなので、u25とu24の対応する足の導通チェックをしていきます。調べたところ全部問題ありませんし、どうやらSHARPのLH538BNTとOKIのM531602は、サイズは違うけどピン配置は完全に同じようです。A19も繋がっているので、他のROMと同様に倍サイズ載せることもできるようです。
このサイズのROMを置き換えようとするとフラッシュしかなくて、フラッシュはだいたい3.3Vだったりするのですが、このサイズだとギリギリ5Vのフラッシュがありますね。AMDのAM29F800Bを使う事にしました。配置もほぼ一緒。ここでフラッシュを手配して、届くまでしばらくは修理はおあずけ。
届いてから修理再開です。
ヒートガンで綺麗に剥がれる。というか自作基板で表面実装を散々こなしてきたので、既存基板をいじるのも怖くなくなりました。外したROMを読んでエミュレータに突っ込んでみます。
化け方、完全一致。という事でフラッシュを焼いて半田付けします。
この際、フラッシュはピン配置が若干違うので注意が必要。
RY//BY | 1 | AM29F800B | 44 | /RESET |
A18 | 2 | 44 PIN SOP | 43 | /WE |
A17 | 3 | | 42 | A8 |
A7 | 4 | | 41 | A9 |
A6 | 5 | | 40 | A10 |
A5 | 6 | | 39 | A11 |
A4 | 7 | | 38 | A12 |
A3 | 8 | | 37 | A13 |
A2 | 9 | | 36 | A14 |
A1 | 10 | | 35 | A15 |
A0 | 11 | | 34 | A16 |
/CE | 12 | | 33 | /BYTE |
GND | 13 | | 32 | GND |
/OE | 14 | | 31 | D15/A-1 |
D0 | 15 | | 30 | D7 |
D8 | 16 | | 29 | D14 |
D1 | 17 | | 28 | D6 |
D9 | 18 | | 27 | D13 |
D2 | 19 | | 26 | D5 |
D10 | 20 | | 25 | D12 |
D3 | 21 | | 24 | D4 |
D11 | 21 | | 23 | VCC |
1番、43番、44番の3つ。
1番はBUSY出力でマスクROMではNCだった箇所なので特に対処しなくても良いのかもしれません。が、基板上でGNDや5Vにターミネートされてる可能性もあるので、安全のため足を上げておきます。
43番は書き込み制御。A19が来ているピンなので0になったり1になったりしますし、この石を読みに来た時は確実に0になってるのでアウトです(笑)。足を上げて電源に繋ぐ必要があります。
44番はリセット。これもNCでふらついていると動作しないので、同様に足を上げて電源に。
こんな感じで。見た目はイマイチだけど基板側にダメージ残すよりはこっちの方が好み。
はい、ばっちり。ってことで
大儲け〜♪
(ただし、人件費については考えない事とする)