Originally Posted By R. Belmont
That's fair. I've deliberately avoided converting all of that to devices because MAME's irritating "startup order is not guaranteed" policy means we could easily end up with a situation where sometimes it can find the media and sometimes not.

That's what dependencies are for. At startup, a device can query other devices it depends on and see if they are started. If they are not, it can call device_delay_init() and exit, meaning it will be re-queued to the end.