PC6001VX を iOS 向けにビルドしようぜ

PC6001VX を iOS向けにビルドした時のざっくりとしたメモです。

 

Apple の開発者登録は必須になります。(無償版でもいけるかも?わかりません。すいません。)

あくまでざっくりとしたメモなので、手取り足取り書いてません。

自分でQtや、iOS のプログラムを組んだことのある方を想定しています。

 

- Mac を用意します。

- Xcodeを入れます。

- Qt(オープンソース版)を落としてきます。

- Qt のインストールをします。

- Qt のiOS 向けのコンポーネントもインストールします。

- PC6001VXのソースリスト を落としてきます。

 

Qt Creator を起動して、iOS 向けのビルドができるように設定する

   

iOS を選択して、Configure Projectボタンを押す

キットとして、Qt x.xx for iOS を選択

ビルドする

 

iOS 端末でのインストール&実行に失敗するときは?

 

- ビルドディレクトリー( Debug とか)を開く

- Xcode のプロジェクトファイル(PC6001VX.xcodeproj)を Xcodeで開く

- Xcodeで、インストールしたい端末などを設定する

- ビルドする

 

 うまくいけば、iOS端末で、PC6001VX と書かれた起動画面が観れます。

 

Q. 起動しても、真っ黒な画面から動かないときは?

A. Qt 5.13.1 for iOSだと、メッセージボックスでこける問題?があるみたい、下記のパッチファイルを参考にしながら、修正を行ってください。

 

(メッセージボックスを開かずに、いきなり互換ROMで起動するように修正しています。)

 

--- p6vxapp.cpp.orig 2019-10-08 00:05:16.000000000 +0900
+++ p6vxapp.cpp 2019-10-12 15:58:15.000000000 +0900
@@ -596,6 +596,7 @@
         Error::SetError( Error::NoError );
        }
     }else{
+#if 0          // <-----追加
      bool romFolderSpecified = false;
      if(OSD_Message( QString(tr("ROMファイルが見つかりません。\n"
           "ROMフォルダ(%1)にROMファイルをコピーするか、"
@@ -626,16 +627,19 @@
       int ret = OSD_Message( tr("エミュレーター内蔵の互換ROMを使用しますか?").toUtf8().constData(),
                     NULL, OSDM_YESNO | OSDM_ICONQUESTION );
       if(ret == OSDR_YES) {
-       enableCompatibleRomMode(&Cfg, true);
+#endif        // <-----追加
+       enableCompatibleRomMode(&Cfg, true);
          Cfg.Write();
          Restart = EL6::Restart;
-      } else {
+#if 0        // <-----追加
+    } else {
      terminateEmulation();
      exit();
      return;
     }
  }
-    emit vmRestart();
+#endif        // <-----追加
+   emit vmRestart();
     return;
}

再度、ビルド、ランする

 

 互換ROMはPC6001VXに内蔵されているので、ROMがなくても、PC-6001として起動します。

 

f:id:white-apple:20191012165936j:plain

pc6001vx for iOS

ここまで動くのは感涙もの。。。うるうる。。

本当に eighttailes さんには感謝しかありません。

 

 

使い方

 

エミュレータの画面をタップすると、メニューが表示されます。

 System →Virtual keyboard をオンにすると、下の方に仮想キーボードが現れます。

 

Q. メニューの日本語が化けている場合

 

A. 一時的に、言語設定を「英語」にする。

     Qt for iOS の問題だと思われます。

     iOS 13 から、アプリごとに言語設定を弄れるようになっているようですが、それには対応しておりません。すいません。

 

[注意事項]

Qt 5.13.1 では、メッセージボックスを開くとこけるようなので、機種を変更しない。

About Qt を開くと、閉じることができない

などの不具合がありました。早く治して欲しいです。

 

あと、Phone 8 でやっていると、System メニューを選ぼうとしても、すぐに閉じてしまったり、キーボードが押しにくかったりするような。iPhone 11 Pro /11 Pro Max とか、iPad の方がいいのかもしれないです。