Again the same problem reading an adrress in [mutantf], but a little different way

If you are having problems finding or using cheats for an Emulator (particularly MAME/MESS) or have found a trick that you wish to share this is the place to do it. But please read the Cheat FAQ first.
Post Reply
User avatar
megaman_exe
Posts: 39
Joined: Mon Nov 05, 2007 2:12 am

Again the same problem reading an adrress in [mutantf], but a little different way

Post by megaman_exe »

Hi, in the previous engine version I've found that at 0x1a00f7 there's the value of the credits inserted in the game, but for some reason when I inspect the maincpu in the debugger (the first option in the memory viewer dropdown list) The address changes values every so often, from 0xFF to the credit value, and sometimes when you insert more credits it changes between the current and previous credits inserted.

I've been unable to find the credit counter by normal means (cheatinit, cheatnext. I've tried with ci then cn eq,0 then left the game running a couple of times typing cn eq and then inserting a credit an then typinh cn eq,1, then another credit and cn eq,2 but there are no results). The debugger says the address range 0x1a0000, 0x1affff is not writable. Is there another trick like the one in midway games?

Sorry if I've been asking too many questions but I'm surprised how much has changed the cheat engine apart from the cheat file format.

Thanks in advance for any hint!
Greets!

EDIT: I must add that if I start debugging and then right before the first instruction is executed I open the memory editor and type the address 0x1a00f0 to see the row of bytes where the credit value address is located and then press F5 I get a green screen with the data east logo. If I open the memory viewer around that address later the it shows the data east logo and the credits value is corrupted alternating between ?? and 0 or sometimes just staying at ??. If I insert credits it alternates between ?? and 1 or 0 and 1 and so on if I insert more credits (i.e, 3 credits inserted it alternates between 2 and 3 the credits displayed)
User avatar
Pugsy
Posts: 3638
Joined: Fri Aug 17, 2001 12:59 am
Location: North Wales, UK.
Has thanked: 1 time
Been thanked: 12 times
Contact:

Re: Again the same problem reading an adrress in [mutantf], but a little different way

Post by Pugsy »

The credits address is part of the DECO146 protection, when the game is running open up a memory window CTRL+M.
Change maincpu to

DECO 146 Protection/:ioprot/0/m_rambank0

If you then change address 42 you will see the credits will change (as will the contents of address 1a00f7 in the maincpu)

Basically this will keep overwriting that part of the maincpu memory.

I don't think it's possible to overwrite it with a debugger command/cheat to ioprot, but I might be wrong.
Pugsy

Servicing your cheating needs since 1985 8)

Grab the latest cheat collection:
MAME 0.259 XML cheat collection (6 OCTOBER 2023) from http://www.mamecheat.co.uk or direct from:-
https://mega.nz/file/q4dHGZ6K#i-EUiqIjH ... KMz7hnbTfw (ZIP Archive 3.76MB)
User avatar
megaman_exe
Posts: 39
Joined: Mon Nov 05, 2007 2:12 am

Re: Again the same problem reading an adrress in [mutantf], but a little different way

Post by megaman_exe »

Oh, I see. So, there isn't any way to reference the address just to "watch" the value? I don't know if there's a syntax to reference the ioprot address apart from "maincpu.pb" (something like "ioprot.pb"). Just throwing ideas.

I've a self compiled mame build of 0.174. Maybe I'll have to redefine the rules of what consists in a "writable address".

In the Old cheat engine I could reference that address (the same way in mk). Maybe the way drivers are implemented now doesn't let me read those addresses? (Like the Deco protection emulation wasn't implemented Then?)

Thanks for your guidance
I'll see if I can achieve sth redefining which addresses are writable changing the mame source Code)

Greets!

EDIT: The deco protection is already implemented in 0.123 when I could read the address...The RAM mappings are a little different and the decryption/encryption code is different too. I'll have to inspect thoroughly through the code to see what I can do do read the addresses (and not blew the game emulation)
Post Reply