I want someone to double check that I am not going insane or understanding something wrong.
This issue is reproducible in OpenMSX.
What appears to be the issue is that the MFR does not scan all pages of the cartridge's ROM for the cartridge header - only the first bytes of the file. Loading my built ROM in openMSX works fine until I try to mount it with a virtual MFR. Then I get the same crash I witness on my hardware. I managed to fix it by duplicating the cartridge header in page 1. If I'm not mistaken then the beginning of each page of memory SHOULD BE checked for a cartridge header, not just the first few bytes of the cartridge data.
Details:
A 32kB ROM intended to exist in pages 1-2 will not boot on an MFR if the ROM does not have its header in page 1.
(This is contrary to observed behavior w/o MFR)
To reproduce:
1. Create a 32kb ROM image with its header at org $8000 and empty space at $4000
2. Load into openMSX
3. Observe boots properly
4. Load MFR SCC+SD into expansion slot
5. Load same rom image using MFR SCC+SD browser, reset emu
6. Observe ROM will not boot