2016-05-19 7 views
0

現在、私は古い古典的なPCゲームに取り組んでいます。プログラミングやデザイナーとしての教育を受けていないため、プログラミングは多くの問題に直面しています。この特定のゲームに対する私の情熱は、それを無駄にします。90年代に開発されたゲーム用の8ビットインデックス画像

現在、ゲームの画像を開こうとしています。画像はPaint Deluxe 2を使用して作成されています。私が知っていることから、変更を追加するために開いたときにすべてPCX形式になっています。その後、実行可能ファイルの横にある外部の目的で、(私が理解できるものから).bmp-filesとしてゲームに保存されます。使用されているパレットは、実際には6ビットチャネル(8ビットではありません)で少し奇妙です。

私は開発者のやり方で問題に直面しています。画像をファイルに追加する前に、ヘッダーは削除され、パレットは外部ファイルに保存されました。 ペイントデラックス2は、190x107〜20544バイトのピクセルの長さを保存します(189x107-190x107-191x107および192x107はすべてヘッダーとパレットを除いて20544バイトのピクセルとして保存されます)。実際には20330バイトにする必要があります。これは私のためにいくつか頭痛をもたらす。同様に、ゲームに使用される画像は、どういうわけか他の方法のようです。どういうわけか、画像が反対方向に保存されているように見えます。

これをクリアするには 20330バイトのFILE34は、ゲームによって画面にロードされたORGINALファイルです。 FILE34は20544バイトですが、ファイルをpcx形式に変更してからbmp形式に戻した後にファイルを削除すると、最終的に終了します。 pcxファイルも含まれており、例えばGIMPで開くことができます。 BIN_PALETTE.PALは画像に使用されるパレットです。

誰もがこの問題に精通していて、助言をいただけますか? enter link description here

+1

どのゲームが好きですか – naomik

+0

これは大きなものです:Actua Soccer 1 – Thomas

答えて

0

通常、BMPファイルはボトムアップで保存されます(最初のスキャンラインまで最後のスキャンラインが最初に格納されます)。最近のBMPファイルは、他の形式と同様にトップダウン形式で保存することもできますが、あまり一般的ではありません。ゲームのファイルがトップダウンで保存されている場合は、通常のBMPファイルとは逆に表示されます。

また、BMP形式では各スキャンラインが32ビット(ロングワード)の境界になるため、ファイルサイズは幅189-192(同じスキャンラインあたり192バイト必要)で同じになります。ゲームのファイルがこのパディングなしで保存されている場合、これがその違いの理由です。

詳細については、WikipediaのBMP file formatを参照してください。

ヘッダーレスのBMPをゲームで使用されているフォーマットに書き換えることは非常に簡単です(2つの点で違いがあります)。

  • 全体のBMPアレイをメモリ(192 x 107)に読み込みます。この場合、プロセス/使用疑似コードの概要を説明します。
  • (2パディングバイトをスキップする)最初の190のバイトをコピーし、各列についてオリジナル
    • の行にわたって
    • (X 107 190)ループ出力を保持することができる新しい配列を作成
    • ストアこれらのバイトを新しい配列に、しかしディスク

    に、結果として得られたバイトを書く端から

  • を埋めます(私はそれがあなたを助けるならば、私は上記のJavaで書くことができます)。

  • +0

    お返事ありがとうございます。手動でファイルを削除することを期待するファイルからパディングを削除する簡単な方法はありますか? – Thomas

    +0

    こんにちはハラルド。もしあなたが私を助けることができれば素晴らしいだろう。その場合、彼らはまたゲームに合わせてサイズダウンされるでしょう。私はイメージに関する経験はほとんどありません。私にとっては、これは本当に痛いものです。私は実際にはPCXイメージとして働いていますが、動作しません。だから私は本当に混乱しています。なぜなら、同じヘッダーを持つ同じサイズの画像が正しいものになる可能性があり、間違っているものがあるからです。 – Thomas

    +0

    こんにちはハラルド。 Dropboxマップに2つのファイルを追加しました。 4x4.bmpファイルを確認してください。黄色のイメージの周囲の黒と白のフィールドがパディングの色になっていますか? – Thomas