ユーザーブロマガは2021年10月7日(予定)をもちましてサービスを終了します

  • PSXjin Lua 関数リファレンス

    2014-03-17 10:25

    PSXjin Lua 関数リファレンス

    emu ライブラリ

    emu.speedmode(string mode)

    引数のmodeに指定された文字列を渡すとエミュレータ(PSXjin)の速度を変更します。速度状態は維持されます。

    "normal"
    等速
    "nothrottle"
    毎フレーム描画ありで速度制限なし
    "turbo"
    毎フレーム描画ありで速度を上げる
    "maximum"
    描画を一切しない

    emu.frameadvance()

    1フレーム進めます。

    emu.pause()

    エミュレータを一時停止させます。

    emu.unpause()

    エミュレータの一時停止を解除します。

    emu.message(string msg)

    エミュレータにメッセージを表示します。引数のmsgは表示する文字列です。

    emu.exitemulator()

    エミュレータを終了させます。

    emu.registerbefore(function func)
    emu.registerafter(function func)
    emu.registerexit(function func)

    emu.registerbeforeは処理前、emu.registerafterは処理後、emu.registerexitは終了時に処理を行います。

    emu.registerafter(function()
    -- 処理
    end)

    emu.lagcount()

    現在のラグカウントを取得します。

    boolean emu.lagged()

    現在のラグフレームであるかどうかを調べ、ラグカウンタであればtrue、そうでなければfalseを返します。

    memory ライブラリ

    Luaでメモリアドレスを読み込んだり、書き込んだりすることができるライブラリで、TAS動画製作にmemory.readXXを使えばいいですが、memory.writeXX は使ってはいけません。

    int memory.readbyte(int addr)

    addr で指定されたメモリアドレスの数字を符号なしバイト単位で読み取ります。

    int memory.readbytesigned(int addr) -

    addr で指定されたメモリアドレスの符号付バイトを読み取ります。

    int memory.readword(int addr)

    addr で指定されたメモリアドレスを符号なし16ビット単位で読み取ります。

    int memory.readwordsigned(int addr)

    addr で指定されたメモリアドレスを符号付16ビット単位で読み取ります。

    int memory.readdword(int addr)

    addr で指定されたメモリアドレスを32ビット符号なし整数を読み取ります。

    int memory.readdwordsigned(int addr)

    addr で指定されたメモリアドレスを32ビット符号あり整数を読み取ります。

    string memory.readbyterange(int startaddr, int length)

    startaddr から length までの範囲を読み取ります。

    memory.writebyte(int addr, int val)
    memory.writeword(int addr, int val)
    memory.writeshort(int addr, int val)
    memory.writedword(int addr, int val)
    memory.writelong(int addr, int val)

    addr に指定された値 val を書き込みします。

    memory.registerwrite(int address, function func)

    address には書き込むメモリアドレスを指定します。func には実行する関数を指定します。

    joypad ライブラリ

    table joypad.read(int which = 1)

    ユーザーが入力したジョイパッドの状態を読み取ります。

    table joypad.get(int which)

    すべてのゲームボタンのテーブルを返します。
    押されていればtrue、押されていなければfalseを返します。

    table joypad.getdown(int which)

    すべてのゲームボタンが押されているかどうかを返します。

    table joypad.getup(int which)

    すべてのゲームボタンが離されているかどうかを返します。

    joypad.set(int which, table buttons)

    ゲームボタンを押下状態にします。
    "select", "l3", "r3", "start", "up", "right", "down", "left", "l2", "r2", "l1", "r1", "triangle", "circle", "x", "square"で、
    使い方としては joypad.set(1, {start = true}) のようにスタートボタンを押したことを意味します。

    int joypad.controltype(int which)

    ゲームボタンの種類を取得します。

    table joypad.getanalog(int which)

    ユーザーが入力したジョイパッドのアナログスティックを読み取ります。

    joypad.setanalog(int which)

    ジョイパッドのアナログスティックを設定します。

    savestate ライブラリ

    object savestate.create(int slot=nil)

    指定したスロット(slot - 1)にステートセーブを生成します。
    state = savestate.create(1) で 0番のスロットに作成することを意味します。

    savestate.save(object state)

    state にセーブステートを保存します。
    savestate.save(state) といった感じで使います。

    savestate.load(object state)

    state にセーブステートを読み込みます。
    savestate.load(state) といった感じで使います。
    savestateライブラリはemu.registerafterの中で使うとセーブステートのロード・セーブができます。

    movie ライブラリ

    int movie.framecount()

    ムービーファイルのフレーム数を取得します。

    string movie.mode()

    ムービーファイルの状態を取得します。
    "record"は記録であることを、"playback"は再生であることを文字列で返します。そうでなければ nil を返します。

    boolean movie.active()

    ムービーファイルがアクティブ化になっていればtrue、なっていなければ false を返します。

    boolean movie.playing()

    ムービーファイルが再生中であれば true、そうでなければ false を返します。

    string movie.name()

    ムービファイルのファイル名を取得します。アクティブ化になっていればファイル名を返し、そうでなければ空文字列を返します。

    int movie.length()

    ムービーファイルの総フレーム数を取得します。アクティブ化になっていれば総フレーム数を返し、そうでなければ0を返します。

    int movie.rerecordcount()

    ムービーファイルの追記回数を取得します。アクティブ化になっていれば追記回数を返し、そうでなければ0を返します。

    movie.setrerecordconting(int count)

    ムービーファイルの追記回数を設定します。

    movie.rerecordcounting(boolean skipflag)

    ムービーファイルの追記回数のスキップするかどうかを設定します。

    movie.stop()

    ムービーファイルの再生中もしくは記録中を停止させます。

    gui ライブラリ

    function gui.register(function f)

    関数 f を画面更新時に呼び出す関数テーブルに登録します。

    string gui.popup(string message, string type = "ok", string icon = "message")
    string input.popup(string message, string type = "yesno", string icon = "question")

    ユーザーにメッセージボックスを表示して質問を促します。

    gui.text(int x, int y, string msg[, color="white"[, outline="black"]])

    エミュレータの指定された位置の画面上に文字列を表示します。
    規定では文字色が白、縁が黒の文字列を表示します。たとえば、color = "yellow" と指定すると黄色で表示することができます。

    gui.gdoverlay([int dx=0, int dy=0,] string str [, sx=0, sy=0, sw, sh] [, float alphamul=1.0])

    画面上にオーバーレイ画像を表示します。これらはLua GDライブラリと併用することで発揮します。

    gui.drawbox(x1, y1, x2, y2, fillcolor, outlinecolor)

    四角形を画面上に表示します。

    gui.drawpixel(x, y, colour)

    画面上に点を描画します。

    gui.drawline(x1, y1, x2, y2, color,skipFirst)

    画面上に線を引きます。

    gui.drawcircle(x0, y0, radius, colour)

    画面上に丸を描画します。

    gui.fillbox(x1, y1, x2, y2, colour)

    画面上に塗りつぶしの四角形を描画します。

    gui.fillcircle(x0, y0, radius, colour)

    画面上に塗りつぶしの丸を描画します。

    string gui.gdscreenshot()

    スクリーンショットをします。

    gui.opacity(number alphaValue)

    文字列や四角形などの透明度を設定します。

    gui.transparency(int strength)

    透明度を設定するかどうかの設定します。

    gui.clearuncommitted()

    LuaのGUIコマンドを解除します。

    test ライブラリ

    number test.checksum(string component)

    componentで指定されたCRC32のチェックサムを返します。

    "mainmem"
    メインメモリ
    "videomem"
    ビデオメモリ
    "cpu"
    CPU
    "savestate"
    セーブステート

    bit ライブラリ

    これらは「Lua Bit Operations Module」に 載っているライブラリと同じです。ドキュメントはそちらを参照してください。

    int bit.tobit(int x) - ビットに変換
    int bit.tohex(int x [, int n]) - 16進数に変換
    int bit.bnot(int x) - ビットの論理否定
    int bit.bor(int x1 [, int x2...]) - ビットの論理和
    int bit.band(int x1 [, int x2...]) - ビットの論理積
    int bit.bxor(int x1 [, int x2...]) - ビットの論理否定
    int bit.lshift(int x, int n) - ビットの左シフト
    int bit.rshift(int x, int n) - ビットの右シフト
    int bit.arshift(int x, int n) - 算術右シフト
    int bit.rol(int x, int n) - 左にローテート
    int bit.ror(int x, int n) - 右にローテート
    int bit.bswap(int x) - ビットの入れ替え
    int AND(int x1 [, int x2...]) - bit.bandと同じ動作
    int OR(int x1 [, int x2..]) - bit.borと同じ動作
    int XOR(int x1 [, int x2...]) - bit.bxorと同じ動作

    int SHIFT(int shift)

    shiftが0以下であればbit.lshiftを呼び出し、0より大きければbit.rshiftを呼び出します。

    int BIT(int n1, int n2, ..., int nn)

    引数で与えられたビットをオンにします。少なくとも31はあります。


  • 広告