This topic is intended to start a discussion - not to piss puritans off!
One of the biggest issues these days is to get all ROMs running in an emulator, despite the auto detection mechanism being very good at detecting ROM types it's not always 100% perfect.
Since we have to face reality and understand that MSX software is being bought up by hoarders and collectors who will hang on to it so they can sell them for extremely high prices ("manufactured" scarcity) or store them in the attic in boxes and when they "pass on" everything goes to the garbage dump because it's all old junk in the eyes of most people anyway.
With the rise of FPGA based MSX-es (like the MiSTer) we still don't have a header in our ROM dumps. Now I can hear the puritans scream 'IT'S NOT PART OF THE SOFTWARE!!!' correct - it's part of the hardware!
I've been working for close to 17 years on the openMSX ROM database and the thing is getting HUGE since my life isn't infinite and my goal always has been the preservation of software/hardware on the platform (hence why I have been assisting the openMSX team for close to 18 years now)
Anyway - what I am getting at is the following - and I'm probably going to get yelled at by puritans.
NES ROMs have a header and these headers identify the mapper types. There are various mapper types for the MSX. Konami/KonamiSCC/ASCII8/ASCII16 being the most common ones for megaroms. MSX ROMs do not have headers and the emulator/sofarun has the guess what mapper a ROM has unless it uses a ROM Database like blue and openMSX.
For the FPGA based computers this isn't an option since there is no real way for FPGA to go through a big blob of XML data to pick out the right mapper. And most people don't feel like picking their own mappers.
I was going to propose creating a separate ROM type to indicate if a header is present. I have the information needed to add a header and some other information to a ROM in the database I maintain/update.
Here is what I propose: having a header of 256bytes which contains:
- Indication a header is present (including mapper type version)
- mapper type
- year of release
- name
- publisher
(name/year/publisher can be optional or just 1 blob of text I guess - to keep it small)
To prevent confusion with the clean dumped ROMs we could have a separate extension for those ROMS like MSH or MSX even. I know I'm proposing to create a new pile of ROMs dumps with headers that won't work on real MSX computers with programs like SofaRun or older emulators that don't support headers (that would be most of the inactive emus like blueMSX)
In the long run emulators could benefit from this as it will be clear what mapper type is used.
But in my opinion the future of the MSX is FPGA and Emulation.
Alternatively I could also create a extension to indicate what mapper is used, Like
MS1 trought MSZ the last letter in the extension being a mapper type (so we have 37 different mapper types to indicate). That way we can avoid an added headers inside a ROM.
Maybe some FPGA wizz can step in and propose something else entirely.
The goal is to have a standard with ROM headers
https://wiki.nesdev.com/w/index.php/NES_2.0 << NES 2.0 Header implementation