忍者ブログ
ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
[617]  [616]  [614]  [613]  [612]  [611]  [610]  [609]  [608]  [607]  [606
LuaはC/C++等の他の言語に組み込むのが主な用途なので、既存のLuaが使えるソフトウェアに適用できるかを考えてみます。

考えた結果が以下の通りです。



○V-rep
△Snes9x-ReRecording
×AviUtl、RigidChips




V-repは問題なく使えます。
ただ、simSetThreadAutomaticSwitch関数により自動的にスレッドを切り替える機能を無効にすることと、実行コンテキストでsimSwitchThread関数を呼び出してLua側でスレッドを切り替える必要があるので、やや工夫が必要です。


Snes9x-ReRecordingのようなEmuLuaには一つ重大な問題があります。
Luaスクリプト内でフレームを進めるように命令するためにはframeadvance関数を使う必要がありますが、これがコルーチンからは呼び出せません。なので、Loopライブラリを改変してframeadvance関数を呼び出してやります。

thread/Scheduler.luaのrun関数を改変します。





local snes9x      = require "snes9x"
・・・・・
function run(self, ...)
・・・・・
snes9x.frameadvance()
return self:run()





こういうソフトウェアを出すと炎上する可能性があるのですが、別にエミュレータ自体は違法ではないので叩くのはやめてください。
ただ、Luaライブラリのバージョンが違うとクラッシュするという情報もあるので、動作できるかは不明です。




AviUtlのスクリプトはフレームごとに実行して画像を動かしたりするようなので不可能です。
RigidChipsもシミュレーションのステップごとにスクリプトを実行するようなので無理です。






調べてみた感じですが、多少の需要はありそうな感じです。










にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
カレンダー
06 2018/07 08
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
フリーエリア
最新CM
[08/24 Nobu]
[08/24 puku]
[08/22 Nobu]
[08/22 puku]
[04/17 Nobu]
プロフィール
HN:
Nobu
年齢:
29
性別:
男性
誕生日:
1988/09/22
職業:
あれ
趣味:
妄想、自堕落
バーコード
ブログ内検索
P R
カウンター
忍者ブログ [PR]