I guess this is an ultra level necro.
For all you CtrBootManager9 holdouts (must also be a gateway user, so, like, no one these days) here's something useful.
payload_stage2.bin (from a9hl v1 days) converted to firm... fix94's repo, but edited to skip screen initialization and loading embedded arm9loaderhax.bin (gateway's); literally only this:
Code:
#include "common.h"
#define PAYLOAD_ADDRESS 0x23F00000
extern u8 gw_bin[];
extern u32 gw_bin_size;
int main()
{
memcpy((void*)PAYLOAD_ADDRESS, gw_bin, gw_bin_size);
//gateway
*(volatile uint32_t*)0x80FFFC0 = 0x18300000; // framebuffer 1 top left
*(volatile uint32_t*)0x80FFFC4 = 0x18300000; // framebuffer 2 top left
*(volatile uint32_t*)0x80FFFC8 = 0x18300000; // framebuffer 1 top right
*(volatile uint32_t*)0x80FFFCC = 0x18300000; // framebuffer 2 top right
*(volatile uint32_t*)0x80FFFD0 = 0x18346500; // framebuffer 1 bottom
*(volatile uint32_t*)0x80FFFD4 = 0x18346500; // framebuffer 2 bottom
*(volatile uint32_t*)0x80FFFD8 = 1; // framebuffer select top
*(volatile uint32_t*)0x80FFFDC = 1; // framebuffer select bottom
((void (*)())PAYLOAD_ADDRESS)();
}
@Hayleia's only worked with bootctr9, not ctrbootmanager9, from my testing.
This is also OK as a standalone boot.firm loaded by b9s 1.4, or chainloaded by luma. Fastboot3DS and GM9 (Saltmode ver.) show black screen / "invalid" (changes if I build FIRM from .elf or .bin)
---
Sadly what I really wanted to do was convert the stage2 from "GW A9LH" for... well, my own curiosity; results were mixed: kinda works with the same "firmtool build" command for this stage 2, but didn't load the menu (gateway logo mirrored on both screen until it autoboots, but this is not really acceptable since you can navigate the menu "blind" if you hold select and L, imagine selecting format emunand...)