2012年3月28日水曜日

アルフォスマップ

せっかくなんで(?)、アルフォスのマップをつくってみる
手で打ち込むのは厳しいので、Excel VBAで。
Private Sub CommandButton1_Click()
    Dim sheet As Worksheet
    Dim inputFn As Long
    Dim buffer() As Byte
    Dim file As String
    Dim row As Long
    Dim column As Integer
    Dim value As String
    Dim count As Long
    Dim index As Long

    Set sheet = ThisWorkbook.Worksheets("Map")

    file = ThisWorkbook.Path & "\alpmap.bin"
    inputFn = FreeFile
    Open file For Binary As #inputFn
        ReDim buffer(LOF(inputFn))
        Get #inputFn, , buffer
    Close #inputFn
    
    count = UBound(buffer)
    For row = 1 To (count / 12) + 2
        For column = 1 To 12
            index = count - (((row - 1) * 12) + column)
            If (index > 0) Then
                value = Right("0" & Hex(buffer(index)), 2)
                sheet.Cells(row, column).value = value
                file = ThisWorkbook.Path & "\" & value & ".png"
                sheet.Cells(row, column).Select
                If (Dir(file) <> "") Then
                    sheet.Pictures.Insert (file)
                End If
            End If
        Next column
    Next row
End Sub
For~Nextとか、なつかしすぎる

alpmapをバイナリ化して、「alpmap.bin」としてExcelと同じフォルダに保存
各バイトデータに対応した画像データ(32x32pix)を、「00.png」のようにHex形式のファイル名で同じフォルダに用意しとく
Excelのセルフォーマットをちょっと変更して、上記VBAを実行するとマップが完成

ステージ1

ステージ2

ステージ3

ステージ4

ステージ5

ステージ6

ステージ7

ステージ8

ステージ8の白抜けのところがアルフォスね。
赤枠は、他の背景とバイトデータが違う所。なんだろ?ボム落としても何も出てこないし。。

4 件のコメント:

  1. こ、これは素晴らしい!
    そう言えば、マニュアルに「スキャークロベース:地下に隠れているため、めったに発見できない」と言うのがありましたが、一度も見た事がありません。

    返信削除
    返信
    1. 確かに、、どこにあるか謎ですね。キャラクターイメージは用意されているのですが、マップデータの中には無さそうです。

      削除
  2. 4年も前の記事にコメントするのもあれですが、、、
    (ポケコンのHeavyMetalを見て訪問してしまいました)
    パソピア版は8面までしか無いのでしょうか?
    88版は全9面で、上の画像だとステージ6と7の間にもう一つありました。
    9面を最後まで行くと5面に戻ります。
    9面でアルフォスを倒さずに画面上に残してもう一周したら、2つ目のアルフォスが出現するかと期待しましたが、画面が少しおかしくなるだけでした。(倒せば普通に戻る)

    返信削除
    返信
    1. なるほど、、実際にプレイしていみると、パソピ7版でも指摘の通り1面足りないようです。。今手元に資料がないので原因はわかりませんが、マップを作るExcelでミスったかもしれません。。指摘、ありがとうございました。m(_ _)m

      削除