It would be nice to know how to put on the header that Tursi talked about or how to make my own compilation images, or even a single image and know how to replicate X number of times to make a valid and usable .BIN file.
It's not a question of just "adding a header"... the cartridge needs to be designed that way, because it occupies space that some carts might otherwise use for code or data. Not very much space, and to me it's well worth it, but it's not something that can be easily inserted after the fact, and certainly not automatically or via a fixed process.
My proposal, though, is that programs written for bank switching carts have, as their first instruction, a command to switch to the intended 'first' bank... and then that much is copied to the beginning of every bank. That way you guarantee the startup state, even after a reset.
Something like this:
CLR @>6000 * set bank 0
That block would take 28 bytes -- if every bank on the ROM started with that exact set of bytes, you'd always get the header and always start up correctly (banks other than the first one can stop after the CLR statement, after the bank switch the code will then continue in the first bank).
This is the wrong thread for this though...