TradeMark Security System
From Sega Retro
The TradeMark Security System (TMSS) was a feature of Sega Mega Drive motherboards ensuring games which were unlicensed by Sega (and thus not receiving the Sega Seal of Quality, which was attainable through a fee paid to Sega) were not playable. Though TMSS was not produced in whole until late 1992/early 1993, the necessary code was in programmer documentation as far back as 1989. Some early games that did not implement TMSS in full consequently did not work in newer board revisions.
TMSS works by simply requiring instances of the SEGA trademark to appear in various memory locations (see below). Should an unlicensed game appear on the market, Sega could exert its rights over the SEGA trademark and sue the developer for trademark infringement.
The legality of this system was challenged in the United States by Accolade in the court case SEGA vs. Accolade, which ruled in Accolade's favor. The verdict set a precedent that copyrights do not extend to non-expressive content in software that is required by another system to be present in order for that system to run the software. While the system was never challenged elsewhere, Sega did not enforce it after the Accolade case, and consequently several unlicensed game developers started popping up.
In order for software to run on a Mega Drive/Genesis with a TMSS built in, the software must do two things:
- have either the longword whose bytes represent ASCII string "SEGA" in big endian at ROM address $100 or the five bytes " SEGA" at the same address — this is checked by the TMSS ROM and is the source of the "Produced By or Under License From Sega Enterprises Ltd." message.
- write a long word containing "SEGA" (all caps) to address $A14000 a short time after the Motorola 68000 resets. If the game fails to do this, the next VDP data port access will cause the 68000 to lock up — this is done by some unknown chip, most likely the VDP.
- The sample code in the official programmer documentation has this part skipped on boards that report themselves as revision 0; the effect of doing this write on a revision 0 board is unknown.