某ゲームにおけるNGワード一覧を出力するLuaスクリプト

某ゲーム(ゲームコードだけ書いておくとNTR-BE8J-JPN)におけるNGワード一覧を出力するLuaスクリプトです。 DeSmuME (dev+ビルド)で動きます。

function read_cstr(addr)
    local chars = {}
    local i = 0
    while true do
        local b = memory.readbyte(addr+i)
        if b == 0 then break end
        chars[i+1] = string.char(b)
        i = i + 1
    end
    return table.concat(chars)
end

memory.registerexec(0x020318e4, function ()
    print(read_cstr(memory.getregister("r1")):gsub("\n", "/"))
end)

実行結果

https://twitter.com/fujidig_game/status/1742254404772995385

このデータはどこからきているかもう少し見てみると、"data/data_iz/pic2d/menu/MMName.SPF_"内に圧縮されて入っているようです。