How to make Nintendo DS emulator option – example 2.
For example, consider DeSmuMe SVN r4120:
Nintendo DS MainRAM 02000000-023FFFFF 4Mb
We'll find a zero address on known address of parameter:
Game: Commando– Steel Disaster (U)
Known address of parameter: Health (exact value) Integer 1 byte 022C7EB4
need to find an equivalent PC address , then add to that address
offset -2C7EB4h, and we have got our zero address.
DeSmuME without a pointer to zero address (speed access to memory is faster without the pointer):, as well as those emulators:
Sony PlayStation - ePSXe
DreamCast, Sega Naomi 1/2, Sammy Atomiswave – Demul (zero address fixed at 2C000000)
SNES – Bsnes, ZSNESWin
Nes – VirtualNes (older versions), puNes, Bsnes, Nintendulator 0.975 beta 9-12-11
Nintendo 64 – 1964, emu-1964, (zero address fixed at 20000000)
PC Engine/Turbografx/CD – Mednafen, PCEjin
Arcade emulator ZiNc (Capcom ZN1/ZN2 based on PSX hardware)
Wonderswan Color, NeoGeo Pocket/Color - Mednafen
Killer Instinct 1/2 – Ultra64 emu
Atari Jaguar – Jagulator
Atari 8-bit, Atari 5200 - Altirra
ArtMoney can select emulator options automatically when loading of ArtMoney table. You can view MD5 file hash in "Process Information" window.
Start the DeSmuMe emulator. Next, open the Process Information and check MD5 hash
Now run Commando – Steel Disaster (U), wait until first mission is loading, then press Pause button. Exact value search (value is 99):
your health, when a value was equal to 74. Then go back to ArtMoney, click the
"Filter" button, enter value 74 and click OK button (1).
Lose more health,
so it was equal to 49. Click the “Filter” button, enter value 49 and
click OK button (2). Lose more health, so it was
equal to 19. (3) Enter value 19 and click OK button again.
We can easily determine our address of a player's health from remaining addresses. Now change value at this address to another value, I changed value to 99.
(1) RMB at this address - "Copy" (Ins). (2) Next enter offset -2C7EB4h in "Plus" field, and click "Plus" button.
As a result, we obtain the emulator option:
Emulator option contains a version of the emulator, MD5 checksum, EXE file name, bytes order, emulator virtual zero address (base address, start of RAM, RAM base), zero address and size of this memory area.
It's necessary to test emulator option on games in two different Windows versions. I made this emulator option in Windows 7 , check the option on the XP SP3
Commando– Steel Disaster (U)
Duke Nukem – Critical Mass (E) http://www.artmoney.ru/tables/NintendoDS/Duke%20Nukem%20-%20Critical%20Mass%20(E).amt
Windows XP SP3: