N64Recomp/N64Recomp

Add support for games with overlapping VRAM addresses for executable sections

AngheloAlf opened this issue · 1 comments

Currently the recompiler tool doesn't have proper support for this kind of games.

This can produce warnings like [Warn] Potential jal resolution ambiguity

Game with overlapping executable include (but not limited to):

  • Paper Mario
  • Pokémon Snap
  • Starfox 64

The current plan to implement this is the following according to Wiseguy:

And more specifically, there's actually no need to call LOOKUP_FUNCTION for most cases with overlapping addresses. For example if a jal is in section 3 and the one of the target functions is also in section 3, then the recompiler just has to emit the function call to that function in section 3 since it's unambiguous. It's a very small change, I'm just in the middle of a refactor to clean up the instruction handling at the moment so it'll probably have to wait until after that's done.

(from #77 (comment))