2014年10月04日

P6ゲームのグラフィックデータで遊ぶ

今回はちょっと脱線気味の遊びをしてみました。
P6用ゲームソフトの中のグラフィックデータを参照、編集できるツール、名づけて「P6GraphBinEdit」を作ってみました。(命名超適当)

取り扱うデータはP6用のベタテープイメージを想定していますが、特にフォーマットは規定していません。P6の色フォーマットでビットマップがベタに記録されているファイルであれば何でも開けます。
逆に言うと、インテルHEXのテープイメージやディスクイメージでは難しいと思います。
まずはツールで適当なゲームソフト(ここではタイニーゼビウスマーク2)のテープイメージを開いてみます。
GRAPHBIN_START.png
ランダムっぽい模様が表示されます。本来プログラムバイナリであるものを無理やりグラフィックとして表示しているのだから当然です。この中からグラフィックデータがないか探していきます。ここでは下の方にタイトルの影っぽいものが見えます。
グラフィックデータは一定のバイト幅の繰り返しの形で格納されていると考えられるので、ウィンドウ上部の「オフセット」「幅」の値を調整し、完全な絵として見えるポイントを探していきます。また、スクリーンモードもそのゲームが使っているモードに合わせておく必要があります。
GRAPHBIN_XEVIOUS.png

さらにこの画像の上から、ドットをポチポチ打って編集することができます。編集したデータはそのままファイルに保存できます。これでちょっとしたハックロムなら作れます。(右上の方のタイトルデータはうまく見つかりませんでしたorz)
GRAPHBIN_XEVIOS.png
TINYXEVIOS.png
何しろ突貫で作ったので、描画機能はひたすらドットを打つのみ(コピー、貼り付け、塗りつぶし等一切無し)、アンドゥ機能なし、コード領域を破壊しないような保護機構もなし、保存は上書きのみというなんともデンジャラスな仕様です。

ちなみに、モード4カラーのゲームは白黒で表示されます(手抜き)
GRAPHBIN_PORTPIA.png
ただし、編集に際しては赤と青を塗るため、1ドットおき描画機能だけはつけてます。

また、ビットマップとして格納されているデータでも、そのままでは表示できないというケースもあります。
Questを例に取ると、このゲームはマシン語部分もBASICと一緒にロードするため、00が連続するとCLOADが止まるという仕様を回避するために、グラフィックデータの各バイトに0x02を足した値をテープに書き込み、表示前に2を引いて処理するということをしています。
こうしたものについては、エディタ側で個別のゲームに対してのカスタム実装が必要になります。
GRAPHBIN_QUEST.png

何しろネタのために突貫で作ったもので、エディタとしての完成度も低くリリースは今のところ考えていません。それでもなにか作りたいという方がいらっしゃれば応相談ということで…。
posted by eighttails at 23:02| Comment(0) | PC-6001 | このブログの読者になる | 更新情報をチェックする

2014年09月20日

雑誌掲載作品レビュー(11)「RUINS」

今回のお題はPiO1986年8月号掲載の「RUINS」です。
こちらもソノシート収録作品です。
内容はと言うと、オーソドックスなダンジョン探索型RPGです。
ジャンルとしては以前紹介したSLAYERに近いですが、モード2用ということもあり、内容はより充実しています。

RUINS00.png
続きを読む
ラベル:PIO PC-6001
posted by eighttails at 21:51| Comment(0) | 雑誌掲載作品レビュー | このブログの読者になる | 更新情報をチェックする

2014年09月07日

雑誌掲載作品レビュー(10)「BUG FIRE!」

今回のお題は「BUG FIRE!」です。
本作品はPiO1986年7月号掲載のアクションゲームです。
内容は、スクロールする迷路の中をうろついているバグをストッパーで足止めし、ハンマーで倒していくゲームです。
BUGFIRE01.png

続きを読む
ラベル:PIO PC-6001
posted by eighttails at 19:50| Comment(0) | 雑誌掲載作品レビュー | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。