The final output needs to be binary. You can compile things like libraries into object code or static library format for convenience when compiling other project later. Linking a static library is much quicker than compiling the code that makes that library every time.
eteream wrote:Although you can find a lot of roms named *.smd, they are really in bin format renamed to *.smd extension.
Not always. Sometimes such ROMs are actually SMD format (which can be confirmed by attempting to use them as BIN files, or by loading them in a hex editor).
SMD should die as a distribution format. It's only useful if one has an actual SMD (or DPF, I would guess) and can not use software that will convert on the fly when uploading to the copier (or for putting ROMs on floppy disk for use with such a copier).
SMD is just the raw BIN interleaved such that the copier's BIOS (which runs in SMS mode) can copy the ROM data to RAM for execution. SMDs can not accept raw binaries directly, they require the special SMD format ROMs (or uploading software that can convert on-the-fly).
LocalH wrote:
Not always. Sometimes such ROMs are actually SMD format (which can be confirmed by attempting to use them as BIN files, or by loading them in a hex editor).