The N64 SDK provides the makerom
tool to create a ROM image given a file describing the ROM layout called spec
and the various object files it refers to such as the N64 OS, RCP microcode, and the game's code itself. Additionally, the manual recommends the use of overlays due to the memory restrictions of the console. However, the example described in the overlay page above does not provide details for creating overlays which are relocatable; instead they are at a fixed location.
This seemed simple enough to do by setting the RAW
attribute so that any relocation info wouldn't be stripped. However, when doing this, the overlay and the boot segment were never linked by makerom
, and as such any references to functions contained in the boot file are never resolved.
Is there any way to link my overlay with the boot segment as to resolve these references while keeping the boot and overlay segments separate without removing relocation information?
makerom
utility isn't going to know where or what format to store the relocations or how to populate your function table. If you can get your compiler to generate position-independent code that might help simplify things.