Trademark Security System

From MegaDrive Wiki
Revision as of 15:36, 10 December 2011 by Tristanseifert (talk | contribs) (Created page with "right The Trademark Security System, or TMSS, was a feature Sega added in later revisions of the Mega Drive 1 and all Mega Drive 2 and 3 mo...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
TMSS BootScreen.png

The Trademark Security System, or TMSS, was a feature Sega added in later revisions of the Mega Drive 1 and all Mega Drive 2 and 3 models that is an attempt at locking out unlicensed games. Even though TMSS wasn't added until late 1992/early 1993, the necessary code and requirements were in Sega's programmer documentation as far back as 1989. Some extremely early games neglected to complete all steps required by the TMSS, and were thus unable to run on 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:

  1. 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.
  2. 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 the I/O controller.
    • 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.