TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

将棋倶楽部24万局集をCSAに変換

以前に棋譜から棋力測定を試した際に、中古で「将棋倶楽部24万局集」を買ったが結局使わずに眠らせていた。
せっかく買ったので棋譜を分析してみようとCDROMを開いたらデータ形式が棋泉というソフトの形式で、一括で処理しようとすると変換が必要であることがわかった。
そこで、後で使いまわせるように、CSAに一括で変換を行った。

以下に、変換方法について示す。

インストーラから棋泉のデータベースを取り出す

CDROMにはInstallShieldで作成された棋泉のインストーラが格納されており、棋泉のデータベースが直接ファイルとして取り出せない。

一旦インストールを行えばよいが、インストーラが16bitアプリケーションのためWindows11では実行できない
そこで、Universal Extractor 2を使って、インストーラからファイルを取り出した。

インストーラからファイルを取り出すと、Group1からGroup12というフォルダができる。
データベースは、Group7に格納されている。

なお、棋泉は、Windows11でも動くバージョンが公開されているので、取り出したデータベースを開くことができる。
https://www.vector.co.jp/soft/winnt/game/se504748.html

棋泉のデータベースを変換する

棋泉のデータベースは独自のバイナリ形式になっている。
KIF形式への変換ツール(KiseKaki)がフリーソフトで公開されているが、16bitのMSDOS用ツールで、Windows11では動かない。
柿木の将棋ソフトウェア

VirtualBoxなどでWindows XPで動かせば実行できるが、16bitのため、変換できる棋譜の上限が16bitで制限されるため、データベースに格納されている24万棋譜は変換できない。

しかたがないので、データベースを読み込んで変換するツールを自作することにした。

データベースのフォーマットは、Twitterのやり取りを参考にして解析した。

自作したCSAに変換するツール

gist.github.com

対局者の名前、対局日、レーティング、戦型も出力できるようにした。

まとめ

棋泉のデータベースをCSAに変換するツールを自作した。
めったに必要になることはないと思うが、同じことを行いたい方のために公開しておく。