かげさんの111から始まるHistory » PSP関連 » Minimalist PSPSDK でスクリプト言語 Lua を使う

« 背中、痛すぎ | トップページ | 地球最古の恐竜展 »

2011.07.14

Minimalist PSPSDK でスクリプト言語 Lua を使う

| |コメント (0)|トラックバック (0)

 このエントリーをはてなブックマークに追加

Minimalist PSPSDKをインストールすると
「Minimalist PSPSDKのインストールディレクトリ\psp\sample」に
script.luaというLuaスクリプトを使うサンプルプログラムがある。

Luaは、
ラグナロクオンラインなどのゲームでも使われているスクリプト言語で
C言語との親和性が高いものとして知られている。

このサンプルを動かすのに
SourceForge.JP のココにあるlua-5.1-pspdevpak.exeを
ダウンロードして設定したのだが
上述のサンプルプログラムをmakeすると

f:/pspsdk/0.11.2r3/bin/../lib/gcc/psp/4.3.5/../../../../psp/lib\liblualib.a(lbas
elib.o): In function `luaB_tonumber':lbaselib.c:(.text+0xbc8): undefined reference to `__ctype_ptr'

といったリンクエラーが出てしまう。
確認したのはminimalist PSPSDK 0.11.2r3です。

リンクしているライブラリ「liblualib.a」にある
ソースが「lbaselib.c」の関数名「luaB_tonumber」で使っている
「__ctype_ptr」が宣言されていない
という意味だ。

残念ながら、lua-5.1-pspdevpak.exeには
ライブラリとヘッダファイルしか存在せず
直しようが無い。

と思っていたのだが
Source code for Lua 5.1」に
C言語のソース一式があるのを発見!

各ソースのリンク先で表示されるソースを1つ1つC言語のソースとして保存し
PSPSDKのmakeしてみた。

いろいろやってみたところ、どうやら
・ヘッダファイルは、まとめて一箇所にしておく
 Incluedes、Coreにあるヘッダファイルを同じフォルダにする
(分けても良いのだが、その場合、
 LibrariesのソースがCoreのヘッダを見れるようにする必要がある)
・Coreというグループになっているソースを
 ライブラリliblua.aとしてmake
・Librariesというグループになっているソースを
 ライブラリliblualib.aとしてmake
とすればOKのようだ。

これで最初のsampleフォルダに
liblua.a、liblualib.aをコピーしてmakeするとリンクまで通る。

EBOOT.PBPをPSPにコピーして動かすと
ちゃんとC言語プログラムとLuaスクリプトが動いている。

LuaとC言語の連携とかは
Lua - 自分用のメモとか」を見るとなんとなく雰囲気はつかめる。

サンプルでは、
LuaスクリプトファイルからC言語プログラムの関数を呼び出しており
スクリプト内で○ボタンと×ボタンが入力されたら
○ボタン押下時は「circle pressed」と画面表示され
×ボタン押下でスクリプトから抜けるようになっている。

ふむ、なかなか使えそうじゃないか。


 このエントリーをはてなブックマークに追加

| |コメント (0)|トラックバック (0)

このエントリーへのリンク

このエントリーのリンクを入れるHTML:

トラックバック

この記事へのトラックバックの一覧です: Minimalist PSPSDK でスクリプト言語 Lua を使う:

コメント

このブログの新着コメントをRSSリーダに登録する為のxml




←名前とメールアドレスは必須です。
URLも記入すれば、URLのみが公開されます。
メールアドレスのみですと、メールアドレスが公開されてしまいますので、御注意ください。

↓コメント本文では、「a href」「b」「i」「br/」「p」「strong」「em」「ul」「ol」「li」「blockquote」「pre」のタグが使えます。絵文字をクリックすると、本文にタグを挿入できます。