How to make
Nintendo DS emulator option – example 2.
For example, consider DeSmuMe SVN r4120:
http://tv-games.ru/up/down/file/emuls/nds/EmuCR_DeSmuMe_r4120_x86.rar
Nintendo DS
MainRAM 02000000-023FFFFF 4Mb
We'll
find a zero address on known address of parameter:
Game:
Commando– Steel Disaster (U)
http://www.artmoney.ru/tables/NintendoDS/Commando%20-%20Steel%20Disaster%20(U).amt
Known address of parameter: Health (exact value) Integer 1 byte 022C7EB4
We
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
and others
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):
Lose
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:
DeSmuMe r4120;DeSmuME_VS2008.exe;N;85bbdc9f09dc38643c47dcbe498f369f
;MainRAM 4Mb;02000000;00D3FE30;400000
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)
Windows 7
Duke Nukem
– Critical Mass (E)
http://www.artmoney.ru/tables/NintendoDS/Duke%20Nukem%20-%20Critical%20Mass%20(E).amt
Windows XP
SP3: