Thread: [Tool] Nerketur's Pile of Tools
View Single Post
Old May 5th, 2014 (3:55 PM).
psy_commando's Avatar
psy_commando psy_commando is offline
    Join Date: Mar 2014
    Location: Quebec, Canada
    Gender: Male
    Nature: Modest
    Posts: 36
    Hi ! I've been lurking for a while, and decided to try to help.

    I'd like to encourage as much as I can development of tools for PMD EoS, given so little information is available! So we can all have an easier time ! I just began a little side project for PMD Explorers of Sky, a runtime(for now) sprite/data injector/editor. And, if I can find anything that you might find useful I could probably put it in this thread. Though, my main focus are the sprites and avatars.

    But to get back to the topic, I think I might have a few good suggestions for helping you out if you're looking for a debugger! I don't know if you know about those things already though.

    I can't find much details about a good NDS debugger, well besides vague mention of a debugger from the nds devkit and people debugging using visual studio and building DeSmuME from sources. (this also : vgcoding.blogspot dot ca/2011/01/how-to-debug-your-nds-rom-using-visual.html)

    The only thing with building from source, is the amount of messing around you'd have to do to setup the whole thing properly, which can kinda sap your morale and time..
    But as someone who's been messing around with Pokemon XD: Gale of Darkness for a while and dealing with the limited debugger in Dolphin, I developed some workarounds.

    DeSmuME 0.9.10 has some basic features that could help out kinda like Dolphin, namely a disassembler, a memory viewer, and it can run lua scripts. Then, I highly suggest you'd get Cheat Engine. It features a great memory search feature and has data breakpoints, which are like the best thing ever ! And Cheat Engine runs lua scripts, with which you can automate tedious tasks and even write a little program/UI for doing things in cheat engine, or just running your scripts etc..

    Then, the best way I found to find the data you're looking for is usually to make a few hypothesis as to how the data is stored in memory. There are only so many ways to store data, so chances are you'll guess right ! Throughout coding languages and platforms, some common data structures are universally used. Like tables, lookup tables, linked lists etc..

    I hope it doesn't sounds patronizing though, its not my intention.
    And of course, I'm not a great hacker or anything really. I'm mainly a C++ coder that got into reversing a short while ago XD
    So there might be easier ways of doing all this ! But I hope this was of some use to you at least !
    Reply With Quote