Midwayeighttailsの雑記帖です。プログラミング、レトロPCの小ネタについて書いていきます。>>2014年10月04日P6ゲームのグラフィックデータで遊ぶ今回はちょっと脱線気味の遊びをしてみました。P6用ゲームソフトの中のグラフィックデータを参照、編集できるツール、名づけて「P6GraphBinEdit」を作ってみました。(命名超適当)取り扱うデータはP6用のベタテープイメージを想定していますが、特にフォーマットは規定していません。P6の色フォーマットでビットマップがベタに記録されているファイルであれば何でも開けます。逆に言うと、インテルHEXのテープイメージやディスクイメージでは難しいと思います。ツールで適当なゲームソフト(ここではタイニーゼビウスマーク2)のテープイメージを開いてみます。ランダムっぽい模様が表示されます。本来プログラムバイナリであるものを無理やりグラフィックとして表示しているのだから当然です。この中からグラフィックデータがないか探していきます。ここでは下の方にタイトルの影っぽいものが見えます。グラフィックデータは一定のバイト幅の繰り返しの形で格納されていると考えられるので、ウィンドウ上部の「オフセット」「幅」の値を調整し、完全な絵として見えるポイントを探していきます。スクリーンモードもそのゲームが使っているモードに合わせておく必要があります。この画像の上から、ドットをポチポチ打って編集することができます。編集したデータはそのままファイルに保存できます。これでちょっとしたハックロムなら作れます。(右上の方のタイトルデータはうまく見つかりませんでしたorz)何しろ突貫で作ったので、描画機能はひたすらドットを打つのみ(コピー、貼り付け、塗りつぶし等一切無し)、アンドゥ機能なし、コード領域を破壊しないような保護機構もなし、保存は上書きのみというなんともデンジャラスな仕様です。ちなみに、モード4カラーのゲームは白黒で表示されます(手抜き)ただし、編集に際しては赤と青を塗るため、1ドットおき描画機能だけはつけてます。ビットマップとして格納されているデータでも、そのままでは表示できないというケースもあります。Questを例に取ると、このゲームはマシン語部分もBASICと一緒にロードするため、00が連続するとCLOADが止まるという仕様を回避するために、グラフィックデータの各バイトに0x02を足した値をテープに書き込み、表示前に2を引いて処理するということをしています。したものについては、エディタ側で個別のゲームに対してのカスタム実装が必要になります。ネタのために突貫で作ったもので、エディタとしての完成度も低くリリースは今のところ考えていません。それでもなにか作りたいという方がいらっしゃれば応相談ということで...。|この記事へのコメントコメントを書くお名前:メールアドレス:ホームページアドレス:コメント:※ブログオーナーが承認したコメントのみ表示されます。