=== cheat3.c ===
- Followed 0.141u1 update and supported shortname if softlist is found (Untested)
If no softlist, try to use default (long) name. But crc attribute on "mamecheat" node is checked even in both cases.
- Added new action tag "write"
This action generates valid expression from some keywords (cpu, address, space, size).
"cpu" is option (default : first cpu)
"address" is always required.
"space" is option (default : "r")
"size" is option. But if no "size", cheat system counts value strings automatically and set appropriate size expression.
For example :
<write address="1234">99 AA BB CC</write>
Value stiring "99AABBCC" has 8 characters so that calculate the size as "d".
And generated expression will be "maincpu.rd@1234=99AABBCC"
Also it recognizes "3 bytes" (bw), "6 bytes" (wd) and "16 bytes" (qq).
In this case, it generates two expression and the address for second expression is auto calculated from address and value strings.
For example :
<write address="123456">4EB9 0078 9ABC</write> <!-- jsr $00789abc.l -->
Generated expression is "maincpu.rw@123456=4EB9,maincpu.rd@123458=00789ABC".
Current expression doesn't support these sizes directly but you can write a seamless code in the file.
And it has little endianness adjuster.
If target cpu has little endianness, auto adjusted value to write with big endianness.
For exampe :
<:write address="5678">CD 4523</write> <!-- call $2345 -->
Generate expression is "maincpu.rw@5678=2345,maincpu.rb@567A=CD"
=== expression.c ===
- Hacked infix_to_postfix() to recognize function separator.
It requires to convert the parameter for expression function.
"Any company has no power to stop people emulating"
MAME is the emulator of no giving in the pressure from any company even if they don't allow
Edited by ShimaPong (01/24/11 04:13 PM)