|
No.000584 | - Wiki Edit - |
Date : | Jan.10.2006 12:38'17 |
Topic : | GP2Xdev:SDLPrograming |
No.000583 | - Wiki Edit - |
Date : | Jan.10.2006 12:09'49 |
Topic : | りもWiki |
No.000582 | www.limo.fumi2kick.com で OK です |
Date : | Jan.10.2006 11:41'22 |
Author : | rerofumi |
Topic : | 連絡事項 |
Parent Article : | http://www.limo.fumi2kick.com/fbbs/lmbbs.rhtml?id=581 |
ご心配かけて申し訳ありません。 怠けてて作業がまだでした。 で、リンク張り直しても大丈夫かという事については問題ありません。 長らく pos.to と fumi2kick.com の両方になるべく同じものを置くようにしていましたが、4年ほど前から fumi2kick.com の方がメインになっています。むしろ pos.to の方が隅々まで更新が行き届いていなかったりします。なのでこの際一本化しちゃおうというのが今回の流れというわけです。 (両方をメンテというのがなかなかに骨でして) で、更新がまだなのは私の無精ゆえなのですが、この一年間なんの更新も無かったのはこれまた事実だったりします... といってもまったくなにもやっていないわけでもないのでちょびちょびと出していければと思います。よろしくお願い致します。 |
|
|
No.000581 | リンクの更新、本当に大丈夫? |
Date : | Jan.09.2006 10:53'39 |
Author : | MID |
Topic : | 連絡事項 |
久しぶりに「http://www2.pos.to/~rero2/」をのぞくと、 Dec.14.2005 連絡事項 実質開店休業中なのと、メンテナンスの都合から www2.pos.to 側のページを 2005年一杯で停止したいと思います。 普段、こちらのほうを見ている方は、お手数ですがhttp://www.limo.fumi2kick.com/の方へリンクやブックマークの変更をお願いします。 と、あるじゃないですか。んで、「http://www.limo.fumi2kick.com/」を見に行くと、 Jan.01.2005 今年もゆるゆると気が向いたときになにかしらをやっていくと思います。 これからもよろしくお願いします。 となっている。リンクの更新をしても大丈夫なのでしょうか? 7777 |
|
|
No.000580 | - Wiki Edit - |
Date : | Jan.06.2006 21:45'38 |
Topic : | GP2Xdev:HardAbstruct |
No.000579 | GP2Xdev:SDLPrograming |
Date : | Jan.06.2006 21:41'40 |
Edit history : |
Jan.10.2006 21:38'17 |
GP2Xdev:TOP *GP2X プログラミング TIPS ? 気をつけた方が良いかもしれないメモ。 **SDL の Screen surface は 16Bit SWSURFACE GP2X のフレームバッファと LCDドライバは 24bit depth という今時中途半端な仕様らしく 32bit color が使えません。 それ故、GP2X の SDL は 16Bit と 8Bit でしか動作しません。 16Bit Surface が意外と使いにくいので注意。 テクスチャとして使用する surface は SDL_ConvertSurface() を使って Screen surface にフォーマットをあらかじめ合わせておきましょう。 32Bit の surface をスクリーンに BitBlt するとびっくりするほど遅いです。 **テクスチャの抜きは色で指定 32Bit color が使えないのでαマスクも使えません。 テクスチャの背景抜きは基本 ColorKey の指定で行うことになります。 あらかじめテクスチャの方で抜き色を決めておきましょう。 **GP2X の方向ボタンもボタン扱い 本体に付いているスティックもボタンも全部ジョイスティックボタンとして入力します。結果、SDLからはジョイスティックが1つ見え、そのジョイスティックにスティックは付いていないものの 19個ものボタンがあるという事になります。 詳しいマッピングは gp2xdev wiki を参照。 http://wiki.gp2x.org/wiki/SDL_Joystick_mapping **soft-float に期待するな メインCPU である ARM920T には浮動小数点演算機能がありません。 float 等の浮動小数点型は全てソフトウェアで処理されます。 つまりは遅いです。結構致命的なほどに。 速度低下を招かないようにできるだけ整数型のみで処理しましょう。 **音量調整は自分で行え GP2X には音量ボタンが付いていますが、その音量管理はシステム側で面倒をみてくれないようです。(えー) なので、音量の上げ下げボタン(読み取れます)が押されたら SDL_mixer を使うなりなんなりでアプリが音量調を行わないとならないという。 起動時の音量はいくつにしておけば良いんだ? **スティックの斜めに気をつけろ スティックは 8つのスイッチを持っていますが、従来のゲームを移植する際使わないからと上下左右の 4つだけを拾ってはいけません。 当然ながら上と左の同時入力とかがないので斜め方向が効かなくなります。 あと、純粋に上下左右だけってのもなかなか入りにくいのよね。すぐに斜めと同時押しになってしまう。 ちなみにこのスティックでゲームをやるとひじょーに辛いです。(倒す角度が深すぎる) |
|
|
|
No.000578 | GP2Xdev:DevelopEnvironment |
Date : | Jan.06.2006 21:25'47 |
GP2Xdev:TOP *GP2X 開発環境の構築 GP2X の開発に当たって必要な初期情報は GP2X dev wiki にまとまっているのでそれを参照。 http://wiki.gp2x.org/wiki/Main_Page 基本的にはこれで十分なので、以下は個人的メモ程度に。 **Windowsでのクロス開発 Windows でのクロス開発環境は gp2x_devpack として纏められていて、これをインストールすると一通りの環境が手に入る。 んが、この devpack は msys + mingw32 で構成されていて普段 Cygwin を使っているのでその上で開発しようとしていた人にとってはちょいと都合が悪い。(パス表記が違うため) そこで Cygwin 上でクロスコンパイルのための ARM toolchain をビルドしようとしたのだけれども、うまくいかなくて大いに困る事に。 binutils と gcc だけで良いかなと思ったら devpack の glibc と折り合いが合わず soft-float 周りで整合が取れなくて苦しむ。 binutils+glibc+gcc とセットでビルドしようとしたら glibc-2.3.5 が Cygwin 上でうまくビルドできなくて苦しむ。 結局諦めて、crosstool を使って toolchain を作ることに。 gcc-3.4.1/glibc-2.3.3 というちょっと古いセットだけれども安定して構築できたのでまあ良しとする。実際これで GP2X アプリを開発できたし。 そのとき作った toolchain (binutils + gcc + glibc) の Cygwin バイナリセットは以下に置いておく。 http://www.fumi2kick.com/gp2x/gp2x-arm-toolchain.tar.bz2 **SDLライブラリ SDLのライブラリは devkit の方にも入っているけれども、theoddbot-libs-open2x-soft-float の方がお勧め。 http://wiki.gp2x.org/wiki/Other_Available_Libraries ここからたどって http://brendan.mine.nu/theoddbot-libs-open2x-soft-float-beta2.tar.gz sdl-config と /lib /include は theoddbot-libs-open2x-soft-float を用い、toolchain は環境に応じたものをチョイスして使うといった形になる。 ディレクトリが別れるけれども、そこは Makefile でカバー。 theoddbot-libs-open2x-soft-float には devkit で抜けていたライブラリも入っていて便利なのだが、そのかわり -static でリンクする必要が出てくる。 バイナリサイズにも響くので注意。 |
|
|
|
No.000577 | - Wiki Edit - |
Date : | Jan.06.2006 21:09'28 |
Topic : | GP2Xdev:Backup |
No.000576 | GP2Xdev:Backup |
Date : | Jan.06.2006 21:08'18 |
Edit history : |
Jan.07.2006 06:09'28 |
GP2Xdev:TOP *バックアップで構造を理解しよう GP2X ファームウェアのバックアップを取ることで内部構造の理解を深めます。 それよりもバックアップ取らないとなんか怖いので。 **バックアップの必要性 GP2X には「ユーティリティー」という SDカード内のファイルを実行する機能があります。 主にアップデート等に使われるのですが、この時に実行される .gpu ファイルはスクリプトです。 どんな感じになっているのかライブラリインストーラの .gpu ファイルを見てみましょう。 > #/bin/sh > tar -zxvf /mnt/sd/install_libs.tar.gz -C / > cd /usr/gp2x > ./gp2xmenu わかりやすい内容に笑う以上にぎょっとしたあなたは正解。 メモリ内のシステムファイルに簡単に書き込みができるのです。 この場合 SDL の追加ライブラリという見通しの立つものでしたが、今後同じようにインストールするアイテムがあったとして、それが元でシステムが不調になることも考えられます。 それより悪意のあるインストーラがシステムを破壊することも容易なのがわかるでしょうか。 ということでシステムのバックアップを取る方法を考えます。 それを通して GP2X のシステム構造をかいま見ましょう。 **システム構造を覗き見る まずはシステムの構成が知りたいところであります。 そこで、dir.gpu という下記のようなスクリプトを実行してみました。 > #/bin/sh > ls -lR / > /mnt/sd/directory.txt > cd /usr/gp2x > ./gp2xmenu これを実行することで SDカードのルートに directory.txt というテキストファイルが作成されています。 http://www.fumi2kick.com/gp2x/directory.txt これを見ることでディレクトリ構成と存在しているコマンドとライブラリが把握できます。 **バックアップを取る ここまで来ればバックアップの取り方も容易でしょう。 backup_fw.gpu という名前の以下のようなスクリプトを容易して実行します。 > #/bin/sh > echo FW backup ... > tar -C / -cf /mnt/sd/backup/fw_bkup.tar bin etc home lib root sbin usr var > sync > sync > sync > cd /usr/gp2x > ./gp2xmenu sync はまあおまじないということで。 tar に z オプションをつけて .tar.gz を生成することもできますが、あまりにも時間がかかるので挫けること必須です。 実際このバックアップが役に立つことは無いとは思いますがまあ念のため。 また、バックアップファイルを解凍してファイル構造を眺めるのも良い物です。 |
|
|
|
No.000575 | - Wiki Edit - |
Date : | Jan.06.2006 20:48'47 |
Topic : | GP2Xdev:SDKAbstruct |
No.000574 | GP2Xdev:SDKAbstruct |
Date : | Jan.06.2006 20:48'24 |
Edit history : |
Jan.07.2006 05:48'47 |
GP2Xdev:TOP *SDK概要 GP2X のソフトウェア開発には SDL が提供されていてそれが基本的な API となる。 **ソフト開発インターフェース gp2x は Linux カーネルが動作しており、その上で Linux アプリケーションを走らせる。 画面、音、入力いったインターフェース部分のアプリケーション SDK は SDL を利用する。 SDK と呼ばれているのは、arm-linux のクロスコンパイル環境と、gp2x 用の SDL のセットになる。 SDL で開発できると聞いていたので、おそらくファウンデーションライブラリが 1層あって、その上に SDL をインターフェースラッパーとして使っているのだろうとか思っていたのだけれどもそれは間違い。本当に SDL しかなくてほとんどがその上で作られていた。 SDL の VIDEO 周りは fbvideo を改良した物(そりゃそうか)。なので基本 software surface。 なんか accelerator FIFO に投げているところが一部あったような気もする。そこは /dev 経由でのアクセスだったので、あーなるほどと思ったり。 JOYSTICK 周りは /dev/gpio から読み込み。 SDK 自体は GP2X dev wiki に詳しい解説等があるのでそれを参考に。 http://wiki.gp2x.org/wiki/Main_Page **SDLソースコード 情報がとっちらかっているので集めるのも大変なんだけれども、カーネルやライブラリのソースコードはちゃんと入手できます。 http://wiki.gp2x.org/wiki/Setting_up_a_development_environment_%28Linux%29 私は、ココ経由で ftp.gp32spain.com から入手した。 カーネルやライブラリ(システムも?)をもっとオープンなものに差し替えて完全フリーにしてしまおうというのが Open2x というプロジェクトらしい。現在進行中。 http://www.distant-earth.com/open2x/ 物自体は見えないけれども、ソースはぱらぱらと見かける。 |
|
|
|
No.000573 | GP2Xdev:HardAbstruct |
Date : | Jan.06.2006 20:45'35 |
Edit history : |
Jan.07.2006 06:45'38 |
GP2Xdev:TOP *ハードウェア概要 スペックシート等を斜め読みして得たおおまかな GP2X に対する知識 **チップ概要 gp2x に使われているプロセッサは MAGICEYES の MMSP2 こと MP2520F。 gp2x が ARM のデュアル CPU とされているのは、このチップの中に 2つの ARM プロセッサを持っているから。ARM を 2個積んでアプリケーションプロセッサとメディアプロセッサとする構成は、世界で最も成功したメディアチップである PortalPlayer のそれ(iPod のチップ)に習ったのかもしれない。 MP2520F はオールラウンドなワンチップで、プロセッサ、(簡単な)グラフィックアクセラレータ、MPEGエンコード/デコードエンジン、ビデオプロセッサ、ビデオポストプロセッサ(動画のフィルタ等)、LCDドライバ、ストレージコントローラ、各種I/Oなどなんでもこの中におさまっている。 というのも、この MP2520F は最近流行のポータブルメディアデバイスを作るためのチップなのである。 このチップに LCD とハードディスクを付ければ、HDD ビデオプレイヤーの出来上がり。DVD ドライブを付ければ DVD プレイヤーの出来上がり。といった具合。 なので、メディア系リファレンスが存在しているはずなので gp2x が容易に各種メディアプレイヤーとなり得ているのも頷ける。 汎用チップなのでそんなに高額にならずにこれだけの機能を納められているのだろう。 ただし、そういった素性のチップなので「ゲーム機」としてデザインされたものではない。ポータブルメディアチップにボタンを付けてゲームも遊べるようにしましたといった風情である。 このへんデータシートやリファレンスコード、開発キットがいくらでも手にはいるのでそれを眺めて楽しむ事ができる。 http://www.mesdigital.com/english/Products/product_mmsp2.asp **ソフトウェア開発に関わる部分 2Dアクセラレーションがあるにはあるけど、WinCE GDI と Direct2D とかで大した機能は無し。まあ、このへん(特定の) PDA を狙って実装されている向きがあるのだけれども。 Direct2D と書いてあるけれども、アルファブレンディングが無いので超しょんぼり。単なる矩形転送やマスク付き矩形転送が CPU パワー無しで行えるといった程度。 実際 SDK である SDL ではあまり使われていなさそうだったし。 でも、逆にこのチップで PDA を作ったら結構楽しそうではある。全体としてはそれなりにパワーがあると思うし。 本体のボタンと方向キーは GPIO 経由で読み込み。方向キーもボタンとして扱われ、合計 19個のボタンとして取得する。 方向キーが斜め方向も含め 8個キーを持っているので、16方向の検出が可能というのはちょっと面白いぞ。ゲームインターフェースとしては異質かも。 メモリは 64MB 載っているけれどもソフトで使えるのは半分の 32MB だそうで。 後の 32MB は主にフレームバッファとムービー再生の際に大量に使うバッファ。 64MB だから PSP より多いかと思ったけれども、結局同じくらいなのね。 http://wiki.gp2x.org/wiki/Development_FAQ#Memory_Layout メモリマップを見ると微妙に空いているところがあるので技を駆使して使うことも可能か。 色々危険だけれども。ああ、でもそのへんにテクスチャーを置いておきたい。 サウンドは AC97 互換(ただしモデムは除く)とか書いてあって、そのへん詳しくないのだけれども、DMA 5ch まで使用可能とあるから最大 5ストリームはいけるのだろうか。 |
|
|
|
No.000572 | GP2Xdev:TOP |
Date : | Jan.06.2006 20:42'05 |
*DP2X 開発メモ RIGHT:Linux萌え萌え大作戦 RIGHT:http://www.limo.fumi2kick.com/ **GP2Xとは GP2X は韓国 Gamepark Holdings 社の「パーソナルエンターテインメントプレイヤー」です。 一応ゲーム機なのですが、Linux カーネルで動いていて SDK は SDL になっているというオープンソースっぷり。 ユーザーがアプリを開発し放題という、日本ではちょいと考えられないアイテムなのですよ。 **開発メモ GP2Xdev:Backup - ファームウェアのバックアップで構造を知る GP2Xdev:HardAbstruct - スペックシートが入手し放題 GP2Xdev:SDKAbstruct - ソフトウェアの作りかた序論 GP2Xdev:DevelopEnvironment - クロスコンパイル環境の入手 GP2Xdev:SDLPrograming - プログラミングで気をつけた方が良い事メモ等 **リンク rerofumi が作成したアプリケーションは以下のページで公開しています。 http://www.fumi2kick.com/gp2x/ **情報源 gp2x 開発関連の情報メモ 日本語での情報、輸入代理を行ってくれている MELONCOKE さん。 http://gp32blu.hp.infoseek.co.jp/ gp2x でのソフトウェア開発周りの情報は GP2X dev wiki に集まっている。 http://wiki.gp2x.org/wiki/Main_Page 情報入手の取っ掛かりとしては FAQ あたりから手を伸ばしていくと良い。 gp2x のアプリケーションを探すときは gp2x File Archive。 http://archive.gp2x.de/cgi-bin/cfiles.cgi ニュースやコミュニティはこちら。 http://www.gp32x.com/ 新しいアプリケーションの情報は dcemu が早いっぽい。 http://gp2x-emulation.dcemu.co.uk/ 自作アプリを動作させる前に必ず gp2x SDL Libraries をユーティリティー経由でインストールしておくこと。 http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,31,869 gp2x SDL Libraries に含まれているのは libfreetype libSDL_mixer libSDL_ttf libstdc++ といったあたり。 SDL や SDL_image は最初からシステムに入っているので、ユーザーアプリに便利なところを追加する為のアイテムといったところか。 |
|
|
|
No.000571 | - Administrator elimination - |
No.000570 | - Wiki Edit - |
Date : | Dec.27.2005 00:35'46 |
Topic : | mod_sslの設定 |
|
|
|