将MAME作弊码转换为Lua脚本

我正在尝试将MAME作弊码转换为Lua脚本:

<mamecheat version="1">
  <cheat desc="作弊描述">
    <script state="run">
      <action>audiocpu.pw@F018=0000</action>
    </script>
  </cheat>
</mamecheat>

当我在HUD上显示@F018的内容时,它成功地显示了当前音乐的ID:

audiocpu = manager:machine().devices[":audiocpu"];
mem = audiocpu.spaces["program"];
print(mem:read_i8(0xF018));

但是当我将0写入内存时,HUD内容显示0,但音乐不停止...

mem:write_i8(0xF018, 0x0000);

我需要做其他事情吗?

点赞
用户1280523
用户1280523

我在读写8位数据,但实际上数据是16位的。因此,这是正确的语法:

print(mem:read_i16(0xF018));

mem:write_i16(0xF018, 0x0000);
2019-06-04 11:07:20