Page 1 of 1

Cheat XML Syntax VS Linux (Manjaro 19)/ GCC 9?

Posted: Tue May 26, 2020 8:47 pm
by help
Hi ...The mmatrix cheat code for invincibility and infinite energy both aren't working on any version of mame including retroarch's versions...The console just spews out the following whenever it's enabled:

Code: Select all

Error executing expression "maincpu.pw@((maincpu.pd@FF49BC)+72)=0002": syntax error
(this is the one for invincibility, but the expression is the same as the infinite energy cheat)
What fixes the issue, it turns out, is to re-write these like so:

Code: Select all

  <cheat desc="P1 Invincibility">
    <script state="run">
      <action>temp0=maincpu.pd@FF49BC</action>
      <action>temp0=temp0+72</action>
      <action>maincpu.pw@temp0=0002</action>
<!--       <action>maincpu.pw@((maincpu.pd@FF49BC)+72)=0002</action> -->
    </script>
  </cheat>
  
I shared this issue with mamedev (https://github.com/mamedev/mame/issues/6742), but they claimed they didn't have an issue with the original expression...That leads me to think that they are on Windows and/or Mac where the syntax is permitted, indicating that Linux and/or anything linux derived (Arch/Manjaro/GCC 9/XML libs/etc) is doing something wrong, and causing more than just Mars Matrix cheats to fail as a result. I don't know what else could be causing this issue...

Re: Cheat XML Syntax VS Linux (Manjaro 19)/ GCC 9?

Posted: Sat Jun 06, 2020 11:49 am
by Pugsy
The expression is perfectly valid. It works in the standard cheat engine and the LUA plugin cheat engine, so I suggest the problem lies with your build.

Have you tried the LUA plugin cheat engine?

I may replace the Invincibility cheat with a ROM cheat at some point to get rid of the standard Invincibility flicker.

Re: Cheat XML Syntax VS Linux (Manjaro 19)/ GCC 9?

Posted: Sat Jun 06, 2020 6:19 pm
by help
...I don't know how to enable/use the lua plugin, and I don't know how mame should be built so that the mmatrix(et al) cheats (and cotton2/cotton boomerang's invincibility cheats) actually works