メインコンテンツへスキップ
見出し画像

UbuntuでDQ1を再コンパイルしたら、makefileでハマった―開発環境の再構築②

    前回までのあらす

    前回、UbuntuでX68000のエミュレータであるXEiJを動作させた。
    動作させたと言っても、Windowsの環境で構築したHDDイメージをそのまま使用しているわけだが。さらにUbuntu環境でも、コンパイル済みのdq1.xが動作することは前回確認していた。
    が、動作したdq1.xは、以前の記事用にNPCを非表示にしていたものだった。


    makeされない

    以前インストール済みのvscodeでソースファイルを開き、#if 0を一箇所
    #if 1に変えて、

    make

    だけで終わる予定だった。

    画像
    え?

    もちろん、makefileがないなんてことではない。

    画像

    いろいろやっているうちにわかったが、makefileを指定してやれば問題ないらしい。

    make /f makefile

    でも、それはそれで納得が行かない。
    もともと、Windowsでは xxxx を使用しており、特に問題なく、makeだけで動作していたから。
    ファイルが間違っていれば、以下のようにファイル名が表示されるばす。

    画像

    そもそも、makefileがないとNo targetになる。

    画像
    makefileがなくても同じ

    で、別エミュレータでは認識していることを加味すると考えられるパターンは、

    rename makefile MAKEFILE


    画像

    認識した。…やっぱり^^;
    チャッピーに公式のサイトを探してもらったら、

    Linux標準の ext4 は大文字小文字を区別するので、Human68kで使うには不向き。
    LinuxでHFSを使うなら、可能ならWindows用にフォーマットされたディスクを割り当てることを推奨。
    FAT32は大小文字を区別しないので問題なし。
    NTFSなら nocase オプションを使う。

    https://stdkmd.net/xeij/feature.htm

    私がext4上で動作させているのが問題らしい…。
    DQ1のためだけにFAT32を用意するのももったいないので、このままext4にしますけど…まぁ、原因が判明すれば特に問題はないです。


    再コンパイル

    #if 0 を一箇所だけ #if 1に戻して、再度コンパイル。
    依存関係により複数のファイルがコンパイルされて、リンクされ、生成された dq1.x を起動すると…王の間が表示され、一瞬で終了した。

    起動ログによると、メインループが即終了している。
    エラー落ちしているわけではない。? もちろん、思い当たる節はある。
    デバッグ用にA+B(A,Bボタンの同時押し)で終了するようにしている。
    恐らく、このA+Bボタン同時押しをなぜか、検知しているのだろう。

    画像

    メインループでやっているA+Bボタン同時押しでの終了をとりあえず、止めて、再コンパイル。やっぱり、普通に起動できるよね^ ^;

    画像

    X68000には、インタラプトボタンがあるので、それを押して、Aキーを押せば、とりあえず終了はできるので、まずは、これでいいと言うことにしておくか。
    とはいえ、ジョイスティックが使用できないのも不便なので、次回はジョイスティックを動作させる方法を考えてみる。

     
     

    knight

     
     
    技術のことを中心に、 試したこと・ハマったこと・気づいたことをメモしています。 PC歴40年。 なぜか高校時代に作りかけたDQ1を、今になってまた作っています。 完璧な解説より、 「実際どうだったか」を残すのが目的です。 誰かの遠回りを一つ減らせたら嬉しい。

    あなたへのおすすめ