Skip to content

Support executables >1MB #40

@parasyte

Description

@parasyte

There is a current inherent limit of 1MB executable sizes today. This is a result of Nintendo's official IPL3 code copying the first 1MB of data from the cartridge domain into main memory (at the entry point address specified in the header). The IPL3 uses that 1MB for its checksum computation, and secondarily for executing the code.

That means we get 1MB "for free", but to support larger executables the "IPL4" at the executable entry point will need to pull the rest from ROM. We need an upper bound, like presently the upper bound is 1MB. We might increase it to something like 3MB.

Side note: the .rodata section is linked into RAM directly following the .text section. This makes accessing the read-only data very fast. For large .rodata sections, it would be better to keep the section in ROM. Software optimizations can help with improving access times, e.g. virtual memory.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions