For SMS/GG program development, an extra header ("tag") was added to the ROM file for identification. It provides some simple features like the date and version of the program, who wrote it, the program name, and any additional notes. Emulators like MEKA and ROM tools such as SMS Checker support the tag.
The original SMS/GG specification is at:
http://www.smspower.org/dev/sdsc/SDSCROMTag101.txt
As someone who's written a lot of SMS/GG software, it's been helpful to keep track of the programs, and as a form of documentation.
So, over at S8-DEV I proposed an alternate implementation of the SDSC ROM tag for Sega Genesis/MegaDrive programs. Kaneda suggested it be discussed here.
My suggested changes for the Genesis are as follows:
- Locate tag at $200. This is past the important parts of the vector table and header, but is low enough in memory that you don't have to inflate the ROM size any more than needed.
- New format is:
Empty strings would just have a NUL character (0) instead of changing the pointer to an arbitrary value. Strings can appear anywhere within the 68000 address space so there is no real limit to size.
I'd rather not modify or expand the original Genesis header, and would like to keep the SDSC tag as simple as possible which is why the proposed Genesis version doesn't do anything more that the SMS/GG version did.
Of course it's up to emulators and tools to support the tag - I wrote a simple commandline program to display the tag and optionally update the date field. Perhaps Kega and Gens can support it.
The other nice thing is that it would fix the problem of ROM renamers getting the title right for PD software - just append the program title, author name, and optionally the version number from the tag and you'll always get a correct filename. Something like:
"Racing Game by John Doe (V1.0).bin"
Any thoughts or suggestions? If people like this idea I'll draft an official specification for review.
PS: Note that this is for homemade software, not something you'd stick into an existing commercial ROM!
The original SMS/GG specification is at:
http://www.smspower.org/dev/sdsc/SDSCROMTag101.txt
As someone who's written a lot of SMS/GG software, it's been helpful to keep track of the programs, and as a form of documentation.
So, over at S8-DEV I proposed an alternate implementation of the SDSC ROM tag for Sega Genesis/MegaDrive programs. Kaneda suggested it be discussed here.
My suggested changes for the Genesis are as follows:
- Locate tag at $200. This is past the important parts of the vector table and header, but is low enough in memory that you don't have to inflate the ROM size any more than needed.
- New format is:
Code:
org $200
dc.b "SDSC"; Tag ID
dc.w $0100; Version (BCD, v1.0)
dc.w $3101,$2005; Date (BCD, DD/MM/YYYY, 31-1-2005, year is big-endian format)
dc.l sdsc_author; Who wrote the program
dc.l sdsc_title; Program title
dc.l sdsc_notes; Any other notes from the author
Empty strings would just have a NUL character (0) instead of changing the pointer to an arbitrary value. Strings can appear anywhere within the 68000 address space so there is no real limit to size.
I'd rather not modify or expand the original Genesis header, and would like to keep the SDSC tag as simple as possible which is why the proposed Genesis version doesn't do anything more that the SMS/GG version did.
Of course it's up to emulators and tools to support the tag - I wrote a simple commandline program to display the tag and optionally update the date field. Perhaps Kega and Gens can support it.
The other nice thing is that it would fix the problem of ROM renamers getting the title right for PD software - just append the program title, author name, and optionally the version number from the tag and you'll always get a correct filename. Something like:
"Racing Game by John Doe (V1.0).bin"
Any thoughts or suggestions? If people like this idea I'll draft an official specification for review.
PS: Note that this is for homemade software, not something you'd stick into an existing commercial ROM!