I've been working on some snes debugging tools lately that need to obtain the RAM from an emulator,
the way I obtain the current RAM values (in geiger's snes9x debugger) is by using an AutoHotKey script that, on the press of "CAPSLOCK + Q" quickly clicks on the "show Hex" button , sets the range from 7E0000 to 7FFFFF and press Dump which creates a dump of the whole ram that I then can access from programs that I write..
but thats very slow.. there must be a way to directly read the RAM off of the emulator's memory so that a whole RAM dump is not needed.. right ? I've seen some programs (for example the megamanX editor) which seems to have no problem doing this so heres some questions I have about it all:
- Should it be possible to obtain this kind of data from any emulator, using the same general "technique" ?
- Do some emulators have some built-in mechanisms to "share" their RAM/VRAM etc. values with outside programs, and if so does geiger's snes9x happen to have such a feature
- Are there other threads about this subject or documents related to "accessing other program's memory" that I could learn from ? I feel as tho there is a common name for this that I am not aware of
Heres why Im asking:
I've made a tool that uses what I call "script sheets" that works with geiger's snes9x debugger.
Its like a notepad with two states, edit and view, that makes it easy (at least if you can cope with the awkward script syntax..) to see everything you need when debuging..
Basically when switching to "view" mode, every text between "[" "]" is interpreted/executed and the result is shown.
For a basic example, in secret of mana, each CPU controlled character have a "AI script current instruction" value,
the value corresponds to the address where the next AI instruction is located starting from D04F15 (meaning a value of 0000 = D04F15 and a value of 0010 = D04F25, 1000 = D05F15).
This can get bothersome because you don't get the full address right away and need to add D04F15 each time,
Lets say you are messing with AI script and often need to know each character's current AI instruction location.. you could use a"script sheet" like this:
Edit / View
the above is just a very basic example tho..between "[" "]" brackets it is possible to call "functions" that can make conditional operations and return a value as well as define "decoders" that deals with "coded data" (stuff that like ASM has instructions with variable byte count depending on the opcode) all of which are defined in the '3rd mode' (that 'A' book button) which looks like:
yea.. I don't assume you can make out what any of this does since it has this... hum.. Unique ! *cough* cough* awkward and unpractical *cough* *cough* syntax and all.. but it gets the job done and I came to like it somehow
And heres a more complex sheet I made (for secret of mana) to see randi's sprite/animation information: