-
-
Notifications
You must be signed in to change notification settings - Fork 50
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 building Multiboot-ROMs #122
Comments
Yes. I don't recall who, but I recall one user getting multi-boot working with this crate by modifying the linker script and boot shim. They were able to make some pixels show up on actual GBA hardware by using a GBA/GCN link cable hooked to a Wii using some sort of Homebrew thing to send the rom from the Wii to the GBA. So, it's possible. |
I got it to work: Looking at the
I did not have to touch the start script ( Should this be documented somewhere? I can make a PR if you point me in the correct direction. |
I for now just make a file called |
I've been dabbling in this lately - I recently wrote a sample that deploys an already-written multiboot payload to another GBA over MultiPlay: https://github.com/TheHans255/rust-gba-multiboot-test. Ideally, we'd have a way to build a multiboot executable that shares code with a cartridge executable to let us efficiently make updates to both, which would likely happen via a shared library crate and two executable crates.
I believe this is correct for SPI mode, but not for MultiPlay (GBA Link Cable) or JOYBUS (Wii/GameCube) mode. Execution starts at |
Also, an idea that I saw in the GBATEK document (https://www.problemkaputt.de/gbatek.htm#biosmultibootsinglegamepak) is that if a game is less than 256K, it could be compiled in a "hybrid" mode where the same payload is valid for both cartridge and multiboot - in this mode, the cartridge entry point at |
I'm currently dabbling with the GBA's support for loading ROMs from serial (i.e. multibooting).
To build a Multiboot ROM, one must put
.text
and.rodata
intoIWRAMEWRAM (with the entrypoint at0x0200_0000
).Would it be possible to support this usecase in this crate?
I can imagine the following approach:
rsrt0_multiboot.S
).build.rs
rsrt0.o
and put everything inIWRAMEWRAM.The text was updated successfully, but these errors were encountered: