I just recently learning from pugsy you can write to ROM memory using maincpu.ox
Is there any documentation on the cheat engine, such as main.cpupx, main.cpumx etc...? I can't seem to find it on the MESS/MAME debugger wiki.
Documentation for commands expressions
- Pugsy
- Posts: 3675
- Joined: Fri Aug 17, 2001 12:59 am
- Location: North Wales, UK.
- Has thanked: 1 time
- Been thanked: 15 times
- Contact:
Re: Documentation for commands expressions
What's not in the debugger help system you can find in the source, and there's load of examples in the cheat files as these debugger commands are what are used in the XML cheat files to provide the cheats. But to answer your question...
maincpu.pb@10BEEF=0F
1. maincpu: This is the tag of the CPU whose memory you want to poke, maincpu is in 99% of cases the tag you will need
2. p : This is the memory space that needs to be poked, there are 7 possibilities p/d/i/3/o/r/m (they won't all work for all games)
p = program write (most RAM cheats need this)
m = region write (most ROM cheats use this)
r = RAM write (use this for ROM cheats if m doesn't work or for RAM cheats if p doesn't work)
o = Opcode Write (use this for ROM cheats if m and r don't work - often used for encrypted memory )
d = data write (don't think I've ever used this)
i = i/o write (don't think I've ever used this)
3 = SPACE3 write (I've definitely never used this)
3. b : memory size of what's being poked, there are four possibilities b (byte), w (word=2 bytes), d (doubleword=4 bytes) or q (quadword=8 bytes)
I'm sure you can work out that 10BEEF is the address and 0x0F is what's being poked.
Note, the pb part above can be preceded by p (physical) or l (logical/default) if p/d/i/3 memory spaces are being poked - it's a rare occurrence to need 'p' and it's normal just to drop l for physical so eg. maincpu.pb rather than maincpu.lpb .
maincpu.pb@10BEEF=0F
1. maincpu: This is the tag of the CPU whose memory you want to poke, maincpu is in 99% of cases the tag you will need
2. p : This is the memory space that needs to be poked, there are 7 possibilities p/d/i/3/o/r/m (they won't all work for all games)
p = program write (most RAM cheats need this)
m = region write (most ROM cheats use this)
r = RAM write (use this for ROM cheats if m doesn't work or for RAM cheats if p doesn't work)
o = Opcode Write (use this for ROM cheats if m and r don't work - often used for encrypted memory )
d = data write (don't think I've ever used this)
i = i/o write (don't think I've ever used this)
3 = SPACE3 write (I've definitely never used this)
3. b : memory size of what's being poked, there are four possibilities b (byte), w (word=2 bytes), d (doubleword=4 bytes) or q (quadword=8 bytes)
I'm sure you can work out that 10BEEF is the address and 0x0F is what's being poked.
Note, the pb part above can be preceded by p (physical) or l (logical/default) if p/d/i/3 memory spaces are being poked - it's a rare occurrence to need 'p' and it's normal just to drop l for physical so eg. maincpu.pb rather than maincpu.lpb .
Pugsy
Servicing your cheating needs since 1985
Grab the latest cheat collection:
MAME 0.264 XML cheat collection (3 APRIL 2024) from http://www.mamecheat.co.uk or direct from:-
https://mega.nz/file/SxsQUJoT#jBdz6GLm_ ... QzFGSMms2c (ZIP Archive 3.8 MB)
Servicing your cheating needs since 1985
Grab the latest cheat collection:
MAME 0.264 XML cheat collection (3 APRIL 2024) from http://www.mamecheat.co.uk or direct from:-
https://mega.nz/file/SxsQUJoT#jBdz6GLm_ ... QzFGSMms2c (ZIP Archive 3.8 MB)