DS用プログラミング言語DSLuaを使ってみる。その2
とりあえず、テトリスみたいなアレゲなものが出来たのでご報告まで、画像とムービーをのっけときます。画像の方はDSのエミュレータDeSmuME0.8上で動作しているところの画像で、ムービーの方はDS実機で動いているところです。(画質わるいです。)
ニンテンドーDS+マジコン(使ったのはR4)+DSLua0.7上で動作します。
基本DeSmuMEで動作確認しながらプログラムを書いていきました、最終確認だけ実機で行いました。
Luaという言語自体よくわかってないので基本的な良くある構文だけ使って作りました。でもって行き当たりばったりで作ったものなのでソースもアレな感じですw。公開するべきかどうか迷いましたが、一応公開しておきます。プログラミング初心者の方の参考にでもなれば幸いですが、間違っても上級者の方は見ないで下さい恥ずかしいのでwww(〃▽〃)ゞ
テトリスみたいなものソースコード 00 – klith.lua
DSLua言語を学びたい。DSで何か作ってみたいって方は下記のサイトなどを見て勉強することをおすすめします。
DSLua Wiki
<http://dslua.7mc.org/>
Lua: 5.0 リファレンスマニュアル
<http://uri.sakura.ne.jp/~cosmic/yuno/lab/lua5_manual_ja.html>
DSLua – Home
<http://www.dslua.com/>
ニンテンドーDSでDSLuaを使ってプログラミングをしたり遊んで見たい場合は
等の機器機器が必要です。できれば上記の様なLua言語の書籍があったほうが便利です。
追記:2012/10/09
動画投稿サイトムービーキャスターがなくなって、動画も消えていたので、youtubeにアップロードしなおして復活しました。
はじめまして。
DSLua0.7で動くカードゲームを作ろうとしています。
スクリプト自体はHSPでいちど走っているのですが、
DSLua0.7でどうにも判らなくなりました。
DSLua0.7に付属していたスクリプトファイルは
マイクロSDカードにコピペすれば動くのですが、
一度テキストエディタで開いた後
SDに上書き保存すると動かないのです。
KUMAさま?はそのようなことになりましたでしょうか?
windows XP でEmEditorでスクリプトを開いて
USB2.0仕様のmicroSDアダプタでmicroSDに書き込んでいます。
DSM3simplyを使っています。
ちなみにDSlinuxは走りました。
それと、もしよろしければ、
DeSmuMeでDSLua0.7を走らせた後、
どのようにしたらLuaファイルを開くことができるのかをご教授下さいませ。
http://blog.kumacchi.com/2008/07/dsdslua_1.html
window XPでEmEditorをつかって
DS上のDSLua0.7で走るスクリプトを書こうとしています。
EmEditorでDSLua0.7に付属している01-Hallo Worldを
開いて、加工せずにmicroSDに名前をつけて保存すると
DSで走りません。
もちろんEmEditorを使わず、misroSDにコピペすると
ちゃんと走ります。
KUMA?さまは、このような現象に遭遇されましたでしょうか?
DSM3simplyを使っています。
DSlinuxは走りました。
それと、DeSmuMEでDSLua0.7を走らせるところまではできたのですが、そのあと.luaファイルを開くのは
どうやるのでしょうか?
ファイルをEmEditorで開く前と、開いた後で何らかの変化がファイルに起こっていて、動かなくなっていると考えられますよね。または、ファイル名に日本語を使ってしまって動かなくなるケースなどが考えられます。
エディタで開く前のファイルと開いて新たに別の名前を付けて保存したファイルを、Stirling等のバイナリエディタの比較機能を使って比較してファイルに差異が起こっていないかをチェックしてみてください。
改行コードや文字コードに変化が起こっている場合はバイナリが一致しないはずです。
あとは、ファイル名に日本語を利用しないでアルファベットと数字のみ等の簡単な名前で拡張子は.luaになっている事を確認して見てください。
Stirling(Windows95/98/Me / ユーティリティ)
http://www.vector.co.jp/soft/win95/util/se079072.html
あと、未確認ですが、僕も同じようにわけがわからない状態でプログラムが動作しない様になった事があるような覚えが少しあります。
scriptsフォルダの中じゃないと動かなかったりする事があったような気がするのと
サンプルのファイルは
01 – Hello.lua
02 – TextPadsStylus.lua
のような感じでフォーマットでファイル名が付いてますが、適当に名前を付けるとなぜかうまく動かない事があったような気もするので
僕は、下の様に名前を付けて、使っていました。
00 – klith.lua
DsLuaの仕様を確認したわけではなく、オカルト的でおまじない的なものですので、どうしてもうまくいかない場合は、試してみてください。
単に僕の気のせいかも知れません。
あまり気にしてませんでしたが、DsLuaのスクリプトファイルの管理に変な癖があるのかなーとちょっと思った事もあります。
http://blog.kumacchi.com/2008/07/dsdslua_1.html
ありがとうございます!
ちょうど使い勝手のいいバイナリーエディタも探していたところなので、重ねてお礼いたします。
早速やってみます。
結果報告いたしますね。
http://blog.kumacchi.com/2008/07/dsdslua_1.html
動きました!
バイナリーデータは同一だったのですが、
オカルトは実在したみたいです。
>サンプルのファイルは
>01 – Hello.lua
>02 – TextPadsStylus.lua
>のような感じでフォーマットでファイル名が付いてま
>すが、適当に名前を付けるとなぜかうまく動かない事
>があったような気もするので
>僕は、下の様に名前を付けて、使っていました。
>00 – klith.lua
パクらせていただき
01 – hallo.lua のコピペのバイナリーを
同一と確認したうえで
00 – hallo.lua
に改名して動作を確認して
BGBotText:SetColor( 6 )
を加えて
00 – halloo.lua
に改名したら、みごとブルー字で走りました!
ほんとにありがとうございました!
そういや今日はもう元旦ですね。
あけましておめでとうございます。
よいお年になりますよう。
あけまして、おめでとうございます。
ほとんど、思い付きでしたが、お役に立ててホントによかったです。
オカルトが実在するとは(‘∀`;)
プログラムの作成がんばってください。
(o´ヮ`)
プログラムの移植はたのしいですよねw。
http://blog.kumacchi.com/2008/07/dsdslua_1.html
おかげさまでDSLuaチュートリアルのマリオまで来ました。
でもなぜか?SetColor()コマンドが、数字が二倍(たとえば 0→白、1→無効、2→赤・・・)となっています(笑)
どうもよくわからないクセの強いスクリプトですね(笑)
なかなか自作の三人通信のカードゲームまでは遠いです・・・
scriptフォルダーにトランプ画像を54枚.pal,.raw,それに背景.mapまでいれたらやたら大きくなりますね。
またバグらなきゃいいんですが。
それと、DeSmuMEでDSLua0.7を走らせるところまではできたのですが、そのあと.luaファイルを開いて走るのを確認するのはどうやっておられるのですか?
file→open→だと.ndsファイルしか読んでくれないし
DSLuaを走らせた状態で.luaファイルをコピペしたら
エラー終了してしまいます。
どうやるのでしょうか?
色は確かにおかしいですね。とりあえず色々試して、出る色を使ってますw。
プログラムの動作の確認は、直接scriptsフォルダの中のluaファイルをテキストエディタでいじるか、どこかで編集したものをscriptsフォルダにコピーしてくるかになると思います。
それから、DeSmuMEを起動してDSLua.ndsを起動してDSLuaからscriptsフォルダに移動して、スクリプトを選択するだけです。特に特別な事はしてないと思います。つまり動作確認ごとにDeSmuMEを起動しなおしています。
エミュレータ上で動かすDSLua.nds自体にはDLDIパッチを当てるとだめかもです。
僕はDeSmuMEを毎回起動して、DSLuaのフォルダまで移動するのが面倒だったので、DeSmuME.exeのショートカットを作成して、ショートカットのプロパティで作業フォルダをDSLua.ndsがあるフォルダに指定して、ショートカット自体は、DSLua.ndsがあるフォルダにおいておき、
ショートカットからDeSmuMEを起動->DSLua.ndsを起動->scriptsフォルダに移動->.luaスクリプトを選択
という手順で動作確認を行っていました。
デバッグ環境については良くわからないので、script自体の動作で動かなくなった場合はコメントアウトしたりしてしらみつぶしにしながらデバッグしました。
あと、エミュレータ自体の性能で、実機では動いてもDeSmuMEでは動かない事もあるので、デバッグ環境という点では、色々大変ですね。そこら辺については2ちゃんねるのDSでのプログラム開発スレッドなどに詳しい方がいるかと思いますので、そういうところで質問してみるといいかも知れません。
最近DSのエミュレータがどの程度まで進化してるのか確認していませんが、基本wifiに対応していないので、ネットワークがらみのテストは実機でやる必要があるのでデバッグは大変になりがちかと思います。
突然のコメントで失礼いたします。
WinXP上にてDSLua0.7で作成されているサンプルプログラムを、
DeSmuME0.9.5で動作確認をしようと試みたところ、
Hello from DSLua
Failed to initialize IO deveices.
と表示され、実行されずに停止してしまいます。
御手数とは存じておりますが、御教示願えませんでしょうか。
宜しく御願い致します。
DSLua自体が起動できないという話だと思いますが、とりあえず、DeSmuME0.8をなら起動できるのを確認しましたので、0.8をダウンロードして試してみるといいかと思います。0.9系ではwifiやマイクなどの機能が拡張された関係できっとそこら辺をちゃんと設定してあげないとDSLuaがハードがあるのに初期化できないと処理しているんだと思います。エミュレータの方の設定でなんとかなるのかまだ機能の搭載が不完全で回避不能なのかは未確認です。
たしか同じような理由で、no$gbaの方でもDSLuaが同じようなエラーが出たと思います。
くまっち様
おかげさまで無事に動作いたしました!
動作中:DSLua0.7+DeSmuME0.8
このエラーだけで海外も含めていろんなサイトを3日旅しました。結果くまっちさんに聞いてみるしかないとなり、
本当感謝いたします!
PC環境を構築する上では、結構観るエラーでしたのですが、
全くわかりませんでした。
DeSmuME0.9系だと動かないんですね~。
DSLuaのバージョンとも何か関係あるわけなんですね。
仕事でWEBアプリ系を作成しているため、各ツールのバージョンの愛称ってものを感じました。
これでやっとDSLuaができる環境が揃いました。
ありがとうございました!