Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support executables >1MB #40

Open
parasyte opened this issue Dec 27, 2020 · 0 comments
Open

Support executables >1MB #40

parasyte opened this issue Dec 27, 2020 · 0 comments
Labels
enhancement New feature or request

Comments

@parasyte
Copy link
Collaborator

parasyte commented Dec 27, 2020

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.

@parasyte parasyte added the enhancement New feature or request label Dec 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant