今日の雑記

生きることでいっぱいいっぱい

[F-07C]「F-07C」で「SDL+Windowsアプリをそれなりに快適に作成したい」環境を構築するまでの顛末

昨年末に入手して、その後仕事が忙しくなってあまり構ってあげられなかった「F-07C」ですが、今月頭あたりからじわじわ構築したり研究したりした結果「それなりにゲーム開発ができる」環境が構築できたので、いったい誰の役に立つのかはわかりませんが、ここにその顛末を記しておこうと思います。
ちなみに「F-07C」は、「Windows7も」動くdocomoガラケーです。
公式の詳細はこちら↓
docomohttp://www.nttdocomo.co.jp/product/concept_model/f07c/
富士通http://www.fmworld.net/product/phone/f-07c/
あと、ゲームの開発環境は「CygwinMingW)+SDL」でばりばりの2Dゲームです。OpenGLとかDirectXとかは知らないというかやってないのでそこん所は別の人がどうにかしてくれるまで指咥えて待っててください。

前書き

昨年の10月くらいからとあるゲームを友人と作っている。ただ平日あまり時間が取れない(&通勤時間が長い)ので、「通勤時間をなるべく開発時間に充てたい」と思っていた。
同じく昨年の11月、会社の人から「OpenPandora」を借りてそこに開発環境を構築して開発してみた。結果、それなりの成果が得られたので「あーこういう『ハンドヘルド』な開発環境はやっぱり良いなあ」という結論に落ち着いた。
ただ「OpenPandora」は諸々の事情で容易には買えないので、それ以外の道を模索する事にした。

きっかけ

去年の12月に、ふと「そういえばdocomoの端末機種変できるな〜」と思っていたところ、同年夏に富士通から「変態紳士端末」こと(<失礼な)「F-07C」が出ていて、今なら在庫もあるし「月々サポート割で安く手に入るかもなー」と思い、秋葉原を巡った結果「某TSUKUMO(<ちっとも某ではない)」に在庫があるのを発見し、無事入手した。

2011年12月頭

手に入れる前に情報はある程度揃えていたので、それなりの覚悟はしているつもりだった。
有用と思った情報源の代表↓
FAF特殊戦第5飛行戦隊装備班→http://ffr41.air-nifty.com/faf_saf_v/loox_f07c/index.html
F-07Cまとめ→http://www47.atwiki.jp/f07c
これらの情報を元にガシガシと、まずは「普通に使うための(という表現もどうかなあ...?)」環境を整えた。
その後、開発に使うための「SDHC/CLASS-10」なSDカードとか買って、そこに「Cygwin」とか「SDL」とかをズコズコインストール...してたのですが。
F-07Cの制限である「数時間経過すると強制的にWindowsが停止してガラケーモードに戻ってしまう」現象が発動。これは「クレードル装備」でも逃れられない制約でして...。
結果、「Cygwinのインストール」が終わる前にWindowsが終わってしまう現象に。
その後、インストールするパッケージを色々選びつつというか、騙し騙しなんとかインストールを完了させ、SDLもインストールし、その他必要なアプリ(ソースバージョン管理とかクラウド系ストレージ)をインストールし、「さあいざビルド&実行するぜー」という段になって(ここまでで10日くらい)。

「ビルド...。遅いです...orz」
「実行...。もの凄く遅いです...orz」

わりと絶望的でした。

2012年1月くらい

昨年というか先月というか、そんな感じだったので割りと「冷めてた」というか「あー失敗したなー」とか考えてました。
でも道は残されてます。この端末のCPUは「atom1.2G」なのですが、バッテリの持ちを優先したのかdocomoから言われたせいなのかは解りませんが、実質「600MHz(つまり定格の半分のクロック)」で動いてたのです。
そこで、↑のリンク先の情報にもある「CrystalCPUID」で「MAXの1.2GHzで動かす」ことを試す事にしました。ただ、MAXで動かすのにもリスクはあります。

  1. バッテリ消費が半端無い
  2. 発熱がすごい
  3. なので夏場とかで動かすと壊す可能性が(実際そういう報告もあります)

特に「3」は「ちょっと勘弁してくれ」な事象ですね...。
まあコレを実践してたのは冬場なので、「とりあえず試してみるか」と思い、↑記事を元に色々設定した結果...。

「ビルド...。速くなったみたいだけどでも遅いです...orz」
「実行...。まあ以前よりは速いけどでも遅いです...orz」

「体感的」に速くなっているのは解るんですが、でもまあ「常用には耐えられないかなあ...。」という感じでした。
個人的には、この段階で「あーあぁ...。」という感じで。正直「詰んだ」と思ってました。

2012年5月GW後

その後、仕事がてんやわんやになったり、個人的作業もてんやわんやになったりしてたんですが。
そんな日々が落ち着いたGW後のある日、ふと「そういえば当たり前の設定とか見直してなかったなあ...。」と、目に入ったF-07Cを見つつ思ったわけです。
クレードルに刺さった状態のF-07CのWindowsモードを起動。うちの環境では「HDMI出力」されてるのでメインモニターにF-07Cの画面が自動的に写ります。
とりあえず駄目元で「IntelGMA」の「グラフィックプロパティ」を選択し、「ディスプレイ設定」の「画面の色」を「32ビット(デフォルト?)」を「16ビット」にしてみます。
あと、ダイアログ下に並ぶボタンのうち、左から二つめの「オプション」を選択して、出てくるダイアログの中にある「パフォーマンス・モードを有効にする」チェックボックスもOnにします。
あとは「適用」→「OK」という感じでダイアログを閉じ、拙作のゲームを起動してみました。
結果は、見違えるものでした。所々処理落ちしますが、まあ、それ以前とは比較にならないくらいというか、全然開発できるレベルの速度で動いてくれました。
「やっほー!」と思い、クレードルからはずして動かしてみたのですが、途端に以前の速度に戻ってしまいました...。
「えー?クレードルの差してたときのCPU速度とかの問題かしら?」と最初は思ったのですが、そうではないようです。
再度、クレードルからはずした状態で↑6行前の手順を踏んでみたところ、どういうことでしょう?「画面の色」が「32ビット」に戻っていました。
結論から言うと、「画面の色」設定と同じダイアログにある、右側の「回転」オプションである「回転を有効にする」を有効にすれば「画面の色」が反映されることが解りました。理由はわかりません。というか知らんがな。
これで動かしてみて、無事「クレードルに差した状況とほぼ同じ」速度で動く事が確認できました。めでたしめでたし!
...と、いうわけにはいきません。この端末最大の問題が待っています。バッテリーです。

2012年5月中旬〜22日

速度的な問題は解決の目処が付きました。残された問題は「バッテリー」です。
「F-07C」ユーザーにとっては避けられない問題のようです。実際ググってユーザーの反応を見ると「世のスマフォのバッテリの持ちが可愛く思える」くらい持ちません。具体的には標準バッテリでガシガシ開発してたら20分くらいで「ガラケーモード」に強制送還です。
ただ、先にも述べたように「世はスマフォ時代」でして、大容量の外部バッテリがかなり安価(\5,000も出せば充分)で購入できます。また、F-07C用にもいわゆる「デカバ(容量のでかいバッテリー)」も用意されています。
最初は「デカバでいいかなあ?端末からケーブル生えてるのもあんましイクないし」と思ってたんですが、↑の通りビルド&実行するだけでこんだけバッテリー食わされる事実を叩きつけられると、正直「あー中途半端なことするくらいなら最初から外部バッテリ前提で運用しよう」と思うようになりました。
実は「外部バッテリ」はすでに持っていました。スマフォ持つようになって「やっぱ必要よね?」ということで、すでの購入し運用していました。最初はそれを使おうと思っていたのです。
ですが、手持ちの外部バッテリでは充電できなかったのです。原因は「出力電流不足」と「F-07Cのmini-USB」の特殊性でした。
どうも、F-07CのWindowsモードでは「2.1A(以上?)」の出力で、しかもUSB端子の結線が特殊(具体的な名称というか規格はわかりませんが、たまに「モトローラ変換」という言葉を見かけます)な事に起因しているようです。
なので、Webの情報を元に「モトローラの携帯が充電できるケーブル」と、それを最終的にF-07Cに充電できるケーブル&アダプタを買ってきて結線してみたところ、無事充電ランプの点灯を確認する事ができました。充電もできているようです。

今現在(2012/05/23)

本当は他にもやった事(SDHCのカードをさらに高速化した物に変えた)とかあるんですが、その辺は↑で紹介したリンク先にも載っているので、この記事を見て有用と思って(何を勘違いしたのか<おいこら)「うしおらもやってみよう」と感じた方はそれぞれ適宜調べて実践ください。
まあ正直、「F-07Cでゲーム開発をやろう」なんて人間、ボク意外にいるとは思えないですけどね...。