久しぶりにGBAを動かしたら、液晶がビネガーシンドロームになっていたので、偏光板の交換しました。
もしかしたらと一緒に入れていた他の携帯ゲーム機を確認をしたら、NEOGEO POCKETモノクロの液晶がビネガーシンドロームで酷いことに。
GBAと同様に偏光板の交換をしようと偏光板・粘着剤を剥がしましたが見た目に変化なし、よく見ると反射板の粘着剤で発生していました。
反射板の交換の場合、フレキの半田を取る所からやらないといけない+偏光板がなかなか剥がれないことが分かりました。
何度も偏光板の粘着剤を剥がそうとしているうちに、一か所強く押たようで黒い点が発生してしまいました。
ということで、捨てるのももったいないのでNEOGEO POCKET モノクロ LCDの出力をVGAに変換をRaspberry Pi Picoで作成しました。
NEOGEO POCKETのCPUと同じ6.144Mhz。
1行あたり515clk(約83.82usec)。
1画面当たり102,485clk(約16.69msec)= 515clk x (152line※1 + 47ine※2)。
※1 表示行数
※2 非表示行数
ピン番号 | 電圧 | 名称 | 説明 |
---|---|---|---|
1 | GND | ||
2 | 3V | M | 約2.178ms |
3 | 3V | /DISP | 約16.69msec |
4 | 3V | CL1S | CL2と同じ、または少し前に1clk出てる |
5 | 3V | CL2 | ドットクロック、1行あたり40clkx7回 |
6 | GND | ||
7 | 3V | DI3 | ドットデータの第3ビット |
8 | 3V | DI2 | ドットデータの第2ビット |
9 | 3V | DI1 | ドットデータの第1ビット |
10 | 3V | DI0 | ドットデータの第0ビット |
11 | 3V | VDD | |
12 | 2.26-3.76V? | V3 | コントラスト操作により変化 |
13 | 12.0-19.0V? | V2 | コントラスト操作により変化 |
14 | 15.0-22.8V? | VEE | コントラスト操作により変化 |
15 | 3V | VDD | |
16 | 3V | FLM | 表示開始時に1clk |
17 | GND | ||
18 | 3V | CL1C | 83.82us毎に1clk |
19 | 3V | M | 2ピンと同じ |
20 | 3V | /DISP | 3ピンと同じ |
21 | 3V | VDD | |
22 | 14.0-20.8V? | V1 | コントラスト操作により変化 |
23 | 1.28-1.9V? | V4 | コントラスト操作により変化 |
24 | GND |
NEOGEO POCKETモノクロは、表示幅160dot、1ピクセル3bit(8階調)、1行あたり515clkなため、波形を見る前は表示幅480clk(160x3bit)+H-BLANK35clkだと思って今回作成することにました。
が、波形を見たらまったく意味が分からず、結構はまりました(Raspberry Pi Picoも触っていなかったので思い出すのに時間が掛かりました)。
また、液晶がSTNですが全然触ったことがないためネットで検索したら、下記サイトで分かりやすく説明されていました。
STN液晶モジュールの食べ方
こちらのサイトを見て、波形の意味が何となく分かってきました、大変貴重な情報を公開していただき有難うございます。
どうもモノクロSTNは単色しか表示できず、点滅による残像で他階調を実現しているようです。
NEOGEO POCKETモノクロLCDは8階調ですが、8階調を実現するには7回の点滅が必要になります。
以下の画像が1行分のデータの波形ですが、黄色(CL2)の一塊が40clk(160dot=40clkxDI)で1つの画像表示、それを7回繰り返すことで8階調の画像を表示しているようです。
LCDのピンを調べ始めた時、VSYNC(/DISP)とHSYNC(CL1C)らしき信号があったため、この信号から画像生成について調べていましたが、
どうしても奇数行が表示することができなかったため波形を見直すと、偶数行と奇数行で表示タイミングが違いました。
![]() | |
偶数行 | |
![]() | |
奇数行 |
NEOGEO POCKETモノクロ出力ピンをPIOで読み取り、テストゲームで作成したVGA出力のD-SUB9Pから出力しています。
/DISPピンでタイミングを合わせ、CL2に合わせDI0-3を160x7x152bit読み取ることでNEOGEO POCKETから画像を取得していますが、せっかくソフトで画像生成しているのでNEOGEO POCKET COLORの設定できる色をDIP SWで選択できるようにしています。
NEOGEO POCKETモノクロのLCD出力と、VGAの表示タイミングが違うため、タイミング合わせなど必要かもしれませんが綺麗に表示されているので特殊な制御はしていません。
たぶん、NEOGEO POCKET COLORも簡単に変換できると思います(ただ、ピン数が増えると面倒)が、まだ正常に動いていたので触りたくないですがいつか作成するかもしれません。
また、GBAも簡単に変換できる(ピン数が全然足りないのでハード面の準備が面倒)かと思います。
ついでに、全く使うことのないNEOGEO POCKETモノクロですが、せっかくVGAで出力できるようになったので、ROMエミュレータを作成しようかと大花火を買ってきました(安いのでコネクタ取るように買いましたが、このソフト面白くもなんともないのですが・・・)。
気が向いたらvdmgrから実機開発が行える環境を作成しようかと思ってます。