3

I used to know more about the SNES memory mapping than I do now, apparently.

I'm using a combination of bsnes-plus (a debug oriented fork of bsnes) and IDA pro in an attempt to figure out something about a ROM.

bsnes-plus displays addresses in a linear/flat fashion, e.g. 59f49. IDA pro displays addresses with a bank:offset format, e.g. 80:8039, to calculate the linear address, I believe you must take:

(Bank Number * Bank Size) + Address within Bank

Fair enough.

However, I just want to go to an address in IDA pro, when I see it in bsnes-plus. I thought that the "G" command in IDA takes an absolute, flat address. However, most of the time it doesn't work.

For some particular address, if I'm in the top function name, and hit "G", it takes me to the correct location, perhaps this address just happened to be relative to that particular bank?

For a different address (bigger one), it doesn't work.

I must be misremembering something trivial about either IDA itself or how the SNES memory works.

5
  • 2
    This sounds as if you're asking about how to operate some modern software, doesn't it? If that's the case, you may want to rather look at ask at either software's documentation and/or ask at its development sites/forums.
    – Raffzahn
    Sep 17 at 11:39
  • 1
    @Raffzahn I suppose you're right, but it is also very specific to the SNES memory architecture, with the way banks work, I believe. Sep 17 at 12:54
  • Sounds likely. So wouldn't it be possible to formulated it in terms of that memory structure? And if doing so, would that eliminate asking for how to operate the modern software?
    – Raffzahn
    Sep 17 at 14:09
  • 1
    Banks are 64KB on the 65816 (including the SNES CPU), so "12:3456" and "123456" refer to the same location. In some places the ROM is mapped into the top half of each bank; may be that's causing confusion? en.wikibooks.org/wiki/Super_NES_Programming/SNES_memory_map
    – fadden
    Sep 17 at 14:26
  • @fadden That sounds like an answer Sep 18 at 20:24

0

You must log in to answer this question.

Browse other questions tagged .