Jp:Getting started with GP2X development

From wiki.gp2x.org

Contents

概要

 GP2Xは多様性に富む携帯機です→仕様。  GP2X向けにカスタマイズされたLinuxで動いています。一般ユーザーからは隠蔽されていて気にすることはありませんが。

三種類のメモリを積んでいます。

  1. 64MBのRAM
  2. 64MBのNAND フラッシュメモリ…主にブートローダー、OS、共用ライブラリが納められています。
  3. SDカード…16MB~4GBに対応しています。プログラム、(動画や音楽)ファイル保存用です。

電源を入れて、

  1. 物理的に起動すると画面が真っ白になり、
  2. 次にブートローダーが起動して黒バックにGP2Xのロゴがでます。
  3. そして緑バックにGP2XロゴがでてLinuxが起動します。
  4. 最後に/usr/gp2x/gp2xmenuプログラムが実行されます。このプログラムがグラフィカルなファイラー・ビューワー(テキスト、画像、動画、など)、プログラム(ユーティリティ、ゲーム、など)ランチャーです。

プログラム開発は(GP2X単体ではなく)別の開発機(PC)で行います。これをクロス開発と言います。 参考→WikiPedia cross compiler(英語。日本語Wiki pediaには項目がありませんでした)

コンパイルされたファイル、と、実行に必要なファイル、シェルスクリプト、データをSDカードにコピーします。そして、GP2X上で(よくある)メニューから実行します。

どんなものを作るか?

2つではありますがGP2X向け開発について挙げてみます。 もちろんこの二通りが全てではありません。が、ほとんどはこのどちらかではないかと思われます。

エミュレータ

 以下に、他の機体用に書かれたゲームを動かす、「エミュレーター」をGP2Xで動かす意義などについてを述べましょう。

 エミュレーターの優れたところは、一つのエミュレーターを書くだけで、その瞬間何十何百といったプログラムが動くというところです。  エミュレーション:模倣 は様々なパフォーマンスにおいて不利です(大抵遅くなる)。また、また、完璧でもありません(忘れ去られた???(訳注:エラータ(ハードのバグ)?裏コマンド?)はエミュレートされないので、希に固まるゲームがある)。そして最後に法律の問題があります(ゲームのバイナリイメージ、画像、音楽諸々は著作権が存在します)。

 *よい*エミュレーターを書くのはホネです。ひとまとめにして配布することは、まぁ、簡単なことです。どちらの作業もコミュニティへ大きな貢献となります。

移植

 すでにあるアプリケーションをGP2Xで動かす…移植するにはソースコードを書き換える必要があります。

 Porting has the bonus that it brings an application or framework to the GP2X while reusing the work required to make existing source code. 

 ほとんどのゲームの移植は操作系はじめ、GP2Xの仕様に多少の変更をするだけです。簡単!

 例として Super Methane Brothers を参考にしてみてください。

 一般的なコードで書かれた、アニメーションするスプライト、フォントの扱い方、絵の表示の仕方などのルーチンは、多くのプラットフォームで動きます。

 GP2K向け移植では、(SDLを使って)(V)RAMをいじれば表示を、(MikModを使って)音楽の出力、(これもSDLで)本体のジョイスティックで操作をすることになります。

→おもしろさも機能を削らずにゲームが出来ます!


”移植”とは別の機械用に書かれたプログラムをGP2Xに持ってくることです。

 OSであるLinuxSDLエミュレーターの一つである、MAME などは移植の例です。

 GP2Xに移植することはGP2Xを便利に/楽しくするのに*非常に*役立ちます。

始めましょう

GP2Xの開発手順は...

  • 開発環境のセットアップ
  • デモプログラムをテストする。
  • 後は思いのままに!
  • IRC にチャンネルを上げてます

irc.tokyo.wide.ad.jp:6667 #gp2x-develop

立ち上げたばかりなのでユーザーは少ないと思われますが、気長にまったり運営してます。

なんとなくそれとなく、ユーザーが集まってくれるチャンネルになれば、と思っております。

開発環境の揃え方

留意点 -ゲームを書き始める前に-

GP2X向けにコンパイルする

 ライブラリはスタティックリンクにすることを強くお薦めします。それであればできあがった .gpe をコピーするだけです。

 もし、ダイナミックリンクとしてライブラリをコピーする際には細心の注意をお払い下さい。  /lib のファイルを上書きするとGP2Xは高価なbrick(ガレキ/レンガ)と化します。

 これを回避するにはおそらくシェルスクリプトを使うことです。script このスクリプトはコンパイルしたプログラムが正常に動作するように LD_LIBRARY_PATH を書き換える物です。

Personal tools