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

NesVirtualNes (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: