El sistema TMSS (trademark security system) es un sistema de autenticación de originalidad para soportes extraíbles. Dado que estos soportes pueden ser replicados sin la autorización de SEGA, se tuvo que idear este sistema. Este sistema está desde la Master System.
Se basa en poner la cadena ASCII SEGA en una dirección específica de la RAM del 68000 durante el proceso de carga del cartucho. Si esta dirección no dispone de la cadena SEGA, el cartucho no será cargado y el 68000 se mantendrá en modo reset.
También intervienen varios otros factores en la carga satisfactoria del cartucho, los principales son un checksum válido y una cabezera correcta.
El chequeo de el TMSS ("SEGA") se hace de la siguiente manera:
1- La Mega Drive se pone en marcha, el IOP comienza a cargar el cartucho hacia la RAM y el 68000.
2- El 68000 lee las primeras direcciones del cartucho y son mandadas al IOP.
3- El IOP comprueba la cabezera, si no sigue este orden: copyright, nombre JAP, nombre USA / PAL, número de serie, periféricos usados, soporte para juego online / SEGANET, región, el 68000 se mantiene en modo reset y el cartucho no se carga.
4- El IOP comprueba el checksum con la siguiente fórmula:
Se empieza a contar en la dirección 0.
Se pasan 512 bytes de la ROM (cabezera).
Se lee un byte aleatorio, se multiplica su valor ASCII por 256, y se suma a el valor de checksum indicado en la cabezera.
Se lee el siguiente byte al aleatorio, y se suma a el valor de checksum.
Se cojen los primeros 16 bits de el código resultante.
Si este código es desigual al checksum indicado en la cabezera, este software se indica como software no firmado, y se deja de cargar.
5- El cartucho comprueba el registro 0xA10001, si el bit 3 es igual a 0, no hace falta hacer el proceso del TMSS, ya que esta Mega Drive es un modelo de los que no tenían el mensaje del principio xD (TMSS).
6- Si es uno el valor del bit anteriormente mencionado, se coloca SEGA en la dirección de memoria 0xA14000.
7- El IOP carga la BIOS (TMSS), situada en la EEPROM serial (colocada detrás del modulador RF en las consolas MKI) en el 68000, este comprueba si la dirección 0xA14000 contiene SEGA, si lo contiene, hay un resultado satisfactorio y finalmente se carga la ROM
Creo que lo he explicado suficientemente detallado, si hay aún algo que no se entiende lo decís.
Saludos.