GP2Xdev:SDLPrograming

過去の記録を閲覧用に保存しています。投稿・編集はできません。一部の旧記法・画像や HTML の表示は再現されていません。同名ページは候補から選択してください。

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つだけを拾ってはいけません。

当然ながら上と左の同時入力とかがないので斜め方向が効かなくなります。

あと、純粋に上下左右だけってのもなかなか入りにくいのよね。すぐに斜めと同時押しになってしまう。

ちなみにこのスティックでゲームをやるとひじょーに辛いです。(倒す角度が深すぎる)