2007/05/28(月)PCastTV2の衛星放送に関するiEPG情報
2007/05/28 6:17
さて、PC-MV5DX/PCIというキャプチャボードを愛用しているのだが、これの視聴ソフトPCastTV2が、EPGで衛星放送を扱えるようにできていない。PCastTV2はBuffaloブランドのキャプチャ製品共通のソフトであるが、対応機器に衛星チューナー搭載のものがないのが原因である。
そこで今回のミッションは、なんとかしてPCastTV2でUHF33,35チャンネルをNHK BS1,BS2のEPG情報に割り当て、GUIや録画ファイル名に反映させて幸せになるというもの。
[1]PcastTV2のインストール
そもそもPCastTV2はPC-MV5DX/PCIにインストールできるようになっていない。しかし動いてしまえばMV5DXに対応しているようである。従って、インストール時にレジストリをいじってやる。
[HKLM\SYSTEM\ControlSet*(使っているコントロールセット)\Control\DeviceClasses\{65E8773D-8F56-11D0-A3B9-00A0C9223196}##?#PCI#VEN_14F1&DEV_8800&SUBSYS_051E1154&REV_05#4&CF81C54&0&10F0#{65e8773d-8f56-11d0-a3b9-00a0c9223196}#GLOBAL\Device Parameters
]の値
BUFFALO PC-MV5DX/PCI Video Capture
を
BUFFALO PC-MV52DX/PCI Video Capture
に書き換え、PCastTV2をインストール。
インストール後、文字列を元に戻しPCastTV2を起動。
このままだとPCastTV2がMV5DXを認識していない場合があるので、その場合はPCastTVを立ち上げる必要がある。
さらに録画しても容量0のファイルができる場合はドライバをインストールし直す。ここまでやればたぶんOK。
[2]pcast_iepgloc.datの設定
受信するEPG情報を決めているファイルは、
C:\PROGRAM FILES\BUFFALO\PCastTV_2\EPG\pcast_iepgloc.dat
である(標準のインストール先の場合)。
このファイル中の受信放送エリアの行は、
Lct=東京(東京)
7001=NHK総合<001>,7002=NHK教育<003>, ...
となっている。自分の受信エリアのLctを探し、その下の行を書き換える。
=の前の4桁の数字は、SO-NET TV王国
http://www.so-net.ne.jp/tv/bangumi/
中の放送局コード。
PCastTV2はEPG情報をここ決めうちでダウンロードしているようだ(EPGサイト設定できるけど、リンククリックしたときに開くだけっぽい)。
上記サイトで地域選び、番組表から番組名をクリックしアドレスをみたときに、?st_cd=となっている部分が放送局コードになる。
放送局名はTV王国にあわせる。<>は自分が設定したチャンネル。たとえば、9002=NHK衛星第2<035>と追記してやると、衛星第2の情報がダウンロードされ、PCastTV2のGUIに衛星第2の列が追加される。
[3]でも番組名が出てこないんですが・・・・・・
列が追加され、情報もダウンロードしているのに、なぜか番組タイトルが表示されない。どういうこっちゃ!? と思って調べた。
ダウンロードしたEPG情報は、
C:\PROGRAM FILES\BUFFALO\PCastTV_2\EPG
内の
SEPG.txt(は日付)
に記録される。これがTV王国が提供してる生データか、PCastがパースし直したものかは謎だが、それをさらに加工して表示用のデータ、
EEPG.txt(は日付)
に直している。
調べてみると、先の例でいう衛星第2=放送局コード9002の番組はSEPGの方には記録されているが、EEPGには記録されていない。そこで放送局コードの数字をいじって、PCastがどういう挙動をしているのか確認してみた。放送局リストみたいなものを持っていて、一致しないものを捨てているのかと思いきや、シンプルに、
放送局コードが、
・8999以下->通し
・9000以上->捨て
という挙動であるようだ(8999と9000の境界以外は適当にしか確認していない)。
TV王国のサイトを眺めてみると、9000以上はWOWOWやNHK衛星にしか使われていないようで、地上派オンリーだからそれでいいということらしい。
となってくるとこの判定部分を探せばいいということになる。ついにOllyDbgの出番が来た、それ解析解析~と・・・・・・思ったのだが、使用許諾確認したら逆アセンブル、書き換え禁止となっている。とはいえしゃくに障るので、バイナリ読むのだったら問題ないと考え、それらしい名前のCEpgDll.dllをバイナリエディタで開いてみた。
さて、一文字目を検査して8,9の場合分けだと探しづらい。この際、このコードを書いた人間が一番単純にやっていると考えて、パースしたあと、atoiで数値変換->比較という流れであると想定。
ねらいが正しければ、8999(0x2327)か9000(0x2328)がどこかに見つかるはず。
・・・・・・1カ所あった、28230000が(リトルエンディアン)。あれその前が、0x3Dになってる。3Dってたしか・・・
C・M・P
ここでほぼ確定。アドレス0x2C32からの、3D 28 23 00 00の部分をいじってやればいいっぽい。たとえば、9999(=3D F0 27 00 00)とかに。とはいえ使用許諾があるので書き換えはできないわけで。
Buffalo様何とかしてください。