Las familias de cartuchos
La página anterior compara bytes, y por eso sólo ve una rutina compartida si además la ensamblaron en la misma dirección. Aquí cada instrucción se normaliza poniendo a cero sus operandos de dieciséis bits —los que llevan direcciones— y se comparan secuencias de instrucciones. Un tramo largo de instrucciones iguales salvo las direcciones es la misma rutina reensamblada en otro sitio.
La diferencia no es teórica. Super Cobra y Yie Ar Kung-Fu comparten 203 instrucciones, y la comparación por bytes sólo les encontraba 39. Golf y Tennis: 632 instrucciones frente a 256 bytes.
No se traza nada. El listado de cada desensamblado lleva cada instrucción con su dirección delante, así que las direcciones ordenadas son el código, y lo que mide una instrucción es la distancia hasta la siguiente. Cuando esa distancia pasa de cuatro bytes —el máximo del Z80— es que en medio hay datos, y ahí se corta. Se miden 37 cartuchos; los otros 12 se quedan fuera y dicen por qué: las cintas y las MegaROM no declaran un origen único.
| cartuchos | años | la pareja más estrecha | quiénes |
|---|---|---|---|
| 20 | 1983–1986 | athletic / cabbagepatch · 44,5 % y 40,8 % | athletic, billiards, boxing, cabbagepatch, goonies, hyperrally, hypersports1, hypersports2, hypersports3, kingsvalley, knightmare, monkey, mopiranger, pingpong, pippols, roadfighter, skyjaguar, supercobra, yiearkungfu, yiearkungfu2 |
| 5 | 1984–1985 | hyperolympic1 / hyperolympic2 · 67,3 % y 63,4 % | baseball, golf, hyperolympic1, hyperolympic2, tennis |
| 2 | 1983–1983 | timepilot / frogger · 7,4 % y 14,9 % | frogger, timepilot |
El reparto no va por año. La familia grande abarca de 1983 a 1986 y la de los cinco deportivos va de 1984 a 1985: se solapan. Tampoco va por número de catálogo.
Sueltos, sin llegar al umbral con nadie: antarctic, gamemaster, mahjong, soccer, twinbee.
Se une una pareja cuando el código común es al menos ese porcentaje de ambos —el menor de los dos, no la media: que Road Fighter comparta el 10 % de lo suyo con Soccer no dice nada si para Soccer es el 4 %—. Barriendo el umbral se ve que el reparto no es un capricho:
| umbral | parejas | tamaños de los grupos |
|---|---|---|
| 2 % | 202 | 28 + 2 + 1 + 1 |
| 3 % | 144 | 28 + 2 + 1 + 1 |
| 4 % | 99 | 22 + 5 + 2 + 1 + 1 + 1 |
| 5 % | 60 | 20 + 5 + 2 + 1 + 1 + 1 + 1 + 1 |
| 6 % | 33 | 16 + 5 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 |
| 8 % | 14 | 5 + 3 + 2 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 |
| 10 % | 8 | 5 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 |
El grupo de cinco y el de dos son los mismos del 4 al 8 %, mientras la familia grande se va deshaciendo poco a poco. Eso es lo que distingue una familia de un artefacto del umbral.
Agrupa por código compartido medido, y nada más. Que dos cartuchos caigan en la misma familia no dice que los escribiera el mismo equipo ni que uno saliera del otro: dice que hoy tienen rutinas en común. Y la familia de veinte, unida por un 5 %, es más un vecindario que una familia: dentro hay parejas al 44 % y parejas que apenas se rozan.