LOG 2007


この下のことは、完全に iPod touch 保証外のことをやっています。

くれぐれも、リスクを考えた上で。何かあっても自己責任でよろしくお願いします。

2008/07/12 iPod touch 2.0出た

いいなー、AQUA FORESTいいなー。でもiPhysicsができなくなるなんて耐えられないよー。


kakoさんのそろばん、複数珠同時に操作できるのがすごいですね。

ご破算の五珠を弾く「ジャッ!」って感じを再現したかったので、右FLICKで珠位置リセットする改造を入れてみました。

ソース差分&実行ファイル

こういうことも、2.0にバージョンアップしたら、できなくなっちゃうんだーよーうー。

2008/06/22 SDK正式版公開に向けて

iPhoneOS2.0の公開が近づいてきてますね。

バージョンアップに伴い、ここで公開しているソフトは、全て動かなくなると思います。

エミュレータとか、他の方のソースに機能追加したものとか、GPLのものとかばっかりなので、AppStoreでの公開も、出来ないと思います。

ということで、iPhoneOS2.0でJailBreakができて、自分でコンパイルしたアプリが思いのまま入れられるようになる日がくればいいな…。


僕自身、その日が来たとして、バージョンアップすべきかどうか迷っているところです。新機能とかiPhoneOS2.0用のアプリも使ってみたいよなあ。

2008/06/22

SDK正式版公開まで、テンション下がってたんですけども、OrbLiveとBandがすばらしすぎたので!


OrbLive

OrbというPCで動作するストリーミングサーバに接続して、動画/音楽などをiPod touchから見ることが出来ます。動画は、リアルタイムで回線/端末に合わせてエンコーディングしてくれます。

ストリーミングで見てるので、シークとかはできないっぽい。あと、家のなかで使うだけでも、Orbサイトに登録してOrbサイトのサーバに接続しないといけないのがちょっとひっかかるところ。

PCにTVキャプチャカードが搭載してあれば、TV番組をiPod touchで見ることも可能です。チャンネル設定しておけば、iPod touch側からチャンネル選択することもできるのがすごい。

放送してる番組名とかもネットから取ってきてくれます。(画面上部で文字化けしてるところは局名かな?)

地デジになったらこんなことはきっと出来なくなっちゃうので、そのころのiPodは、DNLAクライアント搭載になってるといいな。


MOO-COW-MUSIC Band

iPod touch単体で楽器を重ねたマルチレコーディングが可能です!単にいろんな楽器で音を鳴らすだけでもおもしろい。

YouTube - MooCowMusic: Band

http://jp.youtube.com/watch?v=Z3NcFL2WCd8

画像とサウンドファイルを用意して、コンフィグファイルを作れば、比較的簡単に自分で楽器追加することもできるみたいです。

楽器ファイルは

/private/var/root/Media/MooCowMusic/Band/Instruments (1.1.1/1.1.2)
/private/var/mobile/Media/MooCowMusic/Band/Instruments (1.1.3/1.1.4)

に入ってます。

サウンドファイルが結構大きくなっちゃうので、たくさんの楽器を登録してると、メモリ使いすぎで落ちちゃうことが多いです。

上のディレクトリに使いたい楽器だけ選択して入れて、残りは消すようにすれば安定すると思います。

今後、ツール内でどの楽器を使うか選択できる機能が付くといいな。

あと、まだ今は作成した音楽のセーブ機能が入ってないみたいなので、そのへんも期待です。

2008/03/04

moyashiさんのソースを参考に、エンコーディング判定も入れてみました。エンコード判定は、藤棚工房さんのソースが源とのことです。

せっかくなので下のナビゲーションバーに、現在のエンコードが出るようにしました。

UTF8なら多国語混在も可能。iPod touch上での入力手段が無いですけど。

星野 裕之さんから、コピー&ペースト機能付きを表したアイコンを頂きました。ありがとうございますー。

前回と同じように、TextEditからの変更ソースとバイナリを置いておきます。上記アイコンも入れてます。TextEditのバイナリと入れ替えて使うのがいいんじゃないかと思います。

20080304moiletexteditcopypaste.zip

エラーチェックとか甘いと思うので、いつ落ちるかわかりません。重要な文書の編集には使わないでください。

もちろん、最悪の場合、iPod touchが壊れるかもしれませんので、自己責任でお願いします。

稚拙なソースで恥ずかしいのですが、アプリ開発してる方のなにかの参考になれば幸いです。

2008/02/27 空気ジャケット

ファームウェア1.1.4が出てるみたいですが、SDKの詳細が判明するまでは1.1.1のままでいいんじゃないかなあって思ってます。


パワーサポートのクリスタルAirジャケットが届きました!

裏の鏡面のみカバーするようになってて、液晶面は保護フィルムで保護する方式です。

これが今まで使ってたTUNESHELL。カバーが分厚くて、液晶の端っこがタッチできないのが見ただけでわかります。

比較してよくわかる厚さの違い。

付けてみました。どうですかこのカバーを付けてないかのようなスリムな雰囲気!

ちゃんとカバー付いてるのです。画面は当然、完全フラット。

こんな感じでツメが引っかかります。ピッタリしてるので、通常使用では外れることはないかと思います。

下側はこんな感じ。広く開いているので、コネクタへの接続は問題ないですね。ストラップ穴は付いてないです。

付属品として、液晶保護フィルム(2種類)とコネクタカバーが付いてました。

僕はずっとオーバレイブリリアント信者なので、液晶保護はオーバレイブリリアント使ってますけども。

なんか、iPod touchってこんなに小さかったんだ、と再認識。

全面をつつむサーマルコントロールケースってのもあるんだけど、操作性が同じであることは期待できないと思うので、この形がベストではないでしょうか。

2008/02/03 コピー&ペーストできた

MobileTextEditに、コピー&ペーストを入れてみました。文字エンコードはシフトJIS固定にしてます。

ひとりぶろぐさんキーボード制御抑制が便利だったので、同じ動作をするようにしました。

開始位置を選択して、2本目の指でタッチ。

終了位置を選択して、2本目の指でタッチ。

カット、コピー、キャンセルを選んでください。カットした場合もクリップボードに入ります。

クリップボードに文字列が入ってる状態で、挿入位置を選択して、2本目の指でタッチ。

ペースト、文字列クリア、キャンセルを選んでください。

「クリア」操作がスマートじゃないんだけど、クリップボードをクリアするタイミングをどっかに用意しないといけないのでしょうがなく。ペーストでクリアするようにしちゃうと、同じ文字列の連続ができなくなっちゃいますので。

いまだルーペは制御できず。画面タップすれば消えてくれます。UITextViewがUITextLoupeオブジェクト持ってるんだと思うんだけど。


TextEditからの変更ソースとバイナリを置いておきます。TextEditのバイナリと入れ替えて使うのがいいんじゃないかと思います。

20080203moiletexteditcopypaste.zip

エラーチェックとか甘いと思うので、いつ落ちるかわかりません。重要な文書の編集には使わないでください。

もちろん、最悪の場合、iPod touchが壊れるかもしれませんので、自己責任でお願いします。

稚拙なソースで恥ずかしいのですが、アプリ開発してる方のなにかの参考になれば幸いです。

2008/02/02 コピー&ペースト実験

ここで提案されてる、iPod touchのクリップボードが結構よさそうだったので、ためしにコピーのとこまで作ってみました。

Think ITで作ってたテキストエディタに機能追加の形です。

コピー開始位置にルーペでカーソルを合わせて、2本目の指でタッチすると開始位置指定。

コピー終了位置にルーペでカーソルを合わせて、2本目の指でタッチするとコピー確認ダイアログ表示。

おお、結構いいかも。今のテキストエディタに組み込めれば、使えそうな雰囲気が。

まだペースト処理が無いですけども。

コピーのときにテンポラリファイルに書き込むとか、常駐プロセスと通信するとかして、他アプリと連携とかもできるんじゃないかなあという気がしてきました。

選択範囲の背景を反転させるとかできればいいんですが、やり方わかんないです。

クリップボードダイアログ表示したときにルーペが表示されたまま。しかも表示がダイアログより上。うーんカッコワルイ。


実行ファイルとソース置いておきます。/var/root/memo.txt のファイルを初期表示するようになってます。

20080202copypastetest.zip


gestureEndedのタイミングで処理してます。

コピー開始指定のとき、

NSRange range = [textView selectionRange];

_textStart = range.location;

で、テキスト中の何文字目が選択されてるか取得して、

コピー終了のときも同じように取得して、開始位置と長さを決定したら

NSRange selectRange;
selectRange.location = _textStart;
selectRange.length = range.location - _textStart;

ってやって

[[textView text] substringWithRange:selectRange]

で選択範囲文字列を取得してます。

文字列は、NSString じゃなくて、NSMutableString を使うことで、マルチバイト文字も扱えるみたいです。

マルチバイト文字とか関係なくて、変更可能な文字列がNSMutableStringみたいです。

マルチタッチの検出は、sonsonさんのページを参考にさせていただきました。

2008/02/01 さよならポーランド

MACalcが新しくなってました!

セッティング項目がたくさん。RPN(逆ポーランド記法)だけでなく、通常の電卓と同じ入力方式(Alg)も使えるようになってます!

iPhone Skinがカッコヨイ。

2008/01/31 さよならクパティーノ

1.1.3Jailbreakにしてから、2日使ってきたのですが。

・すでに接続したことのある無線LANに繋ぐとき、毎回「接続していいですか?」って聞いてくる。

・On-The-Goプレイリストが同期時に保存されない。

・何回変えても、時間帯が「クパティーノ」に戻ってしまう。なのでiTunes同期したら時計がずれてしまう。

て感じでした。ちょっとこれだと普段使うには厳しい。どっかのフォルダのパーミション変えれば解決しそうな雰囲気ではありますが。

ということで、1.1.1JailBreakに戻りました。

実は、1.1.3にする直接の動機は

が出てるのを見たことだったんですが、今見てみたら

てのも出てたので。

きっとSDKが出るまではこのままいきます。

2008/01/29 ターミナルで会いましょう

# cd /Applications/Term-vt100.app
# chmod u+s Term-vt100

ってやって、ターミナルを root で起動するようにしたら、最初にパスワード聞かれますが、ターミナル動くようになりました。
パスワード必要なのは、起動元ユーザが mobile だからかな。

できれば、普通に起動したときは mobile で起動して、必要なときだけ su で root になれる形の方がいいですよね。

TerminalM.app

mobile でログインするようにしてコンパイルしてみました。通常使用はこれでOKかな。pie.png は moyashi さんの TerminalVのを使わせていただきました。

しかしながら、su root してみても、パスワードが違ってるといわれてしまう。うーん。気が向いたときに root になれないと困るんだよう。

2008/01/28 1.1.3

ファームウェア1.1.3のJailbreak情報がだいぶ出てきてますね。公式SDK公開までにはどんなものか見ておきたかったので、アップデートしてみました。

僕のヤツは、まだ1.1.1だったので、まず1.1.2に上げる必要がありました。iTunesから、1.1.2のファイルをSHIFT押して選択してアップデート。1.1.2用のJailbreak.jarを動かしたところ…

「まだOktoPrepしてませんよ?」みたいな表示が画面に。エー。ちゃんとやったはずだよー。

思い返してみると…あー!1.1.2入れるときに「更新」するべきところを「復元」でやってしまった!

ということで、iPod touchの中身はキレイさっぱり消えて、まっさらの1.1.2となっておったのでした。ネットワーク設定とかもやり直しだ。

ドヘー。アプリ残した状態でアップデートして、使えるか確認したかったのですが…。しょうがないので、 1.1.1に戻し、しっかりと OktoPrep。今度こそ間違えないように「更新」で1.1.2にアップデート。

そしてInstallerから1.1.3Jailbreakを起動。何度も何度も「ホントのホントにやりますか?」のポップアップメッセージに「Yes」と回答し続け、アップデート開始。結構大きいファイルをダウンロードするので、完了まで30分ほど待ちました。これ、待てずに電源断しちゃったらアウトですね。

アップデート完了ー。ひさしぶりの寂しい画面。


いろいろ動かないアプリがあるみたいです。

Term-V100は、起動したらPassword聞かれて、rootのパスワード、mobileのパスワードどっち入れてもダメでした。ターミナル使えないのは厳しい。SSHからは接続できるのですが。

iPhiysicsで後で追加したPackが一覧に表示されないです。これは、追加Packインストールディレクトリの

/var/root/Media/iPhysics/ 以下のファイルの所有者が root になってるので、mobileで起動したiPhysicsから参照できないためです。

ファイル所有者を mobile にしてやれば、だいじょうぶです。

$ chown -R mobile /private/var/root/Media/iPhysics

今後の 1.1.3 アプリでは、おそらく、こういうデータは /var/root/Media/ → /var/mobile/Media/ になると思われるので、実体を /var/mobile/Media/に移動して、/var/root/Media からシンボリックリンク張っておくことにしました。

$ cp -Rp /private/var/root/Media/* /private/var/mobile/Media
$ rm -Rf /private/var/root/Media
$ ln -s /private/var/mobile/Media /private/var/root/Media

今後もiPhysicsPack追加インストールしたら、root でインストールされちゃいそうなので、毎回、所有者の変更必要ですね。


あと、iQuasi88も動かしてみた。動いたー。

2008/01/27 SDLすごい

SDL使っているソースから、gnuboyをコンパイルしてみました。

うお、動く。すごい。まだコントローラとか実装してないんで、操作できないですが。

2008/01/11 リンゴが落ちると桶屋が儲かる

iPhysicsの一覧を作ろうとしましたが、多くてまだまだ途中です。

iPhysics PACKまとめページ

2008/01/10 アップンダウン

キーダウンしてたキーを保持しといて、キーアップイベントのときにはそいつをキーアップするようにしました。これでキー押されっぱなし現象は起きない気がします。あと、シフトキーだけは押したらロックして、次に別のキー押したら解除する形にしました。キーボード上では何も変化ないですけど。「SHIFT」押して「8」押したら「(」が入力できたりします。あ、Ctrlもこの形の方がいいのかな。

width 40 だと文字も読みやすいですね。

quasi88_20080110.zip

おいときます。iPod touchが壊れてもいい人だけどうぞ。オプションなどは、本家QUASI88を参照してください。

いっつもSSHからログインして起動してたんで、終了ボタンとかぜんぜんつけてないことに気が付いた。そろそろiPod touch画面から実行することも考えたいなあ。


MobileTerminalのソースがあったので、フォント小さくして縦25行入るようにしてみました。

さすがに文字が小さすぎるか…。ゴシック系の読みやすいフォントに変えようとも思ったんですが、等幅(に近い)フォントって、もともとのTerminalに使われてるCourier系のやつだけだった。

MobileTerminalのソース見た感じだと、うまいことやれば、起動したまま動的にフォントサイズ変えるとか実装できそうな雰囲気ですね。あと、なんとなく2バイト文字表示対応的なソースが入ってるような。

標準キーボードからの文字取得処理もありました。やっぱ、キーダウン/アップの形では取れないっぽい。エミュレータ系で使うには、キーボード独自実装するしかないかあ。

S-OS上で、終了コマンドがわからないプログラムを動かしちゃったときは、Ctrl-Z でいったん S-OSをバックグラウンドにしといて、jobs → kill すればいいです。この頃のプログラムって、「終了=電源切って再起動」てのも結構あったので。

2008/01/09 SOS! SOS! こちら絵夢絶斗!

1985年、「Oh!MZ」誌で発表された、Z80マシン用共通OS、S-OSというのがありました。UNIX用にも公開されてましたので、コンパイルしてみました。画面のサイズは45×17です。縦が25あれば良かったんですが残念。

実行ファイルと同じディレクトリに、DOSモジュール、sword.binが必要です。UNIX版のsword05.tar.gz から取得してください。コマンドは大文字入力が多いので、起動オプション「-c」使うといいです。終了するときは「!」です。

「D」でファイル一覧、「L」で読み込み、「J」で指定アドレスから実行です。

高機能マシン語入力ツールMACINTO-Cもこのとおり!なんですが、ちょっと画面縦サイズが足らないんだよな…。

FuzzyBasicとか、Lisp-85 とか、Prolog-85 とか、いろいろ動きます。ドキュメントがほとんど無いのが厳しいところ。

どのぐらい需要あるのやらわかりませんが、置いときますね。(そもそもこれ使いそうな人なら、自分でコンパイルしちゃうよなあ、とか思いつつ。)

S-OS for iPod touch (sword.binが必要です。UNIX版のsword05.tar.gz から取得してください。)

2008/01/08 チケット買うよ!

簡単にキー入力できる方法が無いか考えました。

←理想だけど無理な画面。

標準キーボードを出してみた。単に出てるだけ。これで入力できたらいいんだけどやり方わからず。

キーイベントが取れたとしても、iPod touchのキーって、押したあとに横にずらして別の文字を入力するとかできるんで、思ったようにキーダウン/アップのイベント取れないんじゃないかという気がします。


結局、一番確実なのは、自分でキーボード作って、そっからSDLにキー送信するし〜くるさんのやり方ですね。

ということで、NES for iPhoneのコントローラ周りのソースと、し〜くるさんのSDLソース参考にして、キー押下でENTER入力できるようにやってみました。パッド画像はNESのやつをお借りしまして…。

←ボタン押したらENTER送るようにしてみた。

ENTER送って、BASIC画面までたどり着けた!

← パッド上下左右に「S」 「T」 「A」 「R」 とか割り当ててみた。

「S」 「T」 「A」 「R」 「T」 の文字入力できるようにして、デゼニランドも開始できたよ〜。これ結構感動だ。


ここまでくれば、あとは、根気でキーボード実装すればいけますね。


根気で!

HappyTappingKeyboardを参考につつ、並べてみました。カーソルキーが変な並びなのはPC-8801実機へのリスペクト。

ちゅうことで、キー入力できるようになったので、デゼニランド、ダフ屋前まで到着できました。

たまに、キーが押しっぱなし状態になっちゃうことがありますね。解決できるかなあ?

シフトキーはロックできるようにしないと使えないや。

システムメニュー周りをどうするか悩み中。ランチャー作って、そこからオプション付加で起動するようにした方が楽かも。

quasi88_20080108.zip

おいときます。iPod touchが壊れてもいい人だけどうぞ。オプションなどは、本家QUASI88を参照してください。

2008/01/06 ミツキマウスを探せ

し〜くるさんのSDLを使って、QUASI88をコンパイルしてみました。ソースはほとんど触ってないです。

SDLのサウンド関連のあたりをコンパイルするためには、Leopardに付属するAudioQueue.hが必要らしいです。持ってないのでサウンドなしで。

$ ./configure --host=arm-apple-darwin --prefix=/usr/local/arm-apple-darwin --enable-shared=no --enable-audio=no

ってやったのと、あとはSDL_iPhoneMain.m の audio関連をコメントアウトしたぐらい。

QUASI88のほうは、generic UNIXとしてコンパイルしてみました。macosx でもいいのかな?

Makefileは、コンパイラの設定とか、INCLUDEとかLIBのパス/ファイルを追加したぐらい。

ターミナルから起動。SSHからでも起動できます。

# ./quasi88.sdl dezeni.d88 -v1h -half -verbose 1

おー。動いたよー。動作速度問題なし。

キーボード無いので、操作は何もできませんが…。あと、SDLで画面描画してるから、画面キャプチャツールはうまく動かないっす。

表示エリアを変えてみる。これで下にキーボードが出せればいいなあ。iPod touch標準キーボードから入力が渡せればいいんだけどなー。どうやればいいかぜんぜんわかんないです。とりあえず、今の僕にできるのはここまでだ。

quasi88.sdl

せっかくなので、おいときます。iPod touchが壊れてもいい人だけどうぞ。オプションなどは、本家QUASI88を参照してください。

ROMやDISKイメージは/var/root/Media/ROMs/PC88/へ入れてください。

起動したら、/var/root下に、.quasi88ってディレクトリが作られます。


スクリーンショットは後日に撮影してますので、日付とか状況とかはそのときのものとは限りません。

感想・質問は→のちな(nochina@hamkumas.net)までどうぞ。


2007年10月21日作成
2008年08月03日更新

ひとつ戻る