What they share
Every binary against every other, looking for identical byte runs of 32 or more: 570 of the 1,176 possible pairs share something, and 305 of those share code.
The first thing that comes up when you sort by how many cartridges share a run
is forty-six bytes present in twenty-six Konami cartridges… and it is not a
routine: it is the typeface. 3E 63 03 0E 03 63 3E draws a
3 and 7C 66 63 63 63 66 7C a D. Konami
reused its drawings as much as its code, and a matrix of bytes cannot tell.
Here it can, without guessing: each game's listing already knows which bytes are code, because it carries them as instructions with the address in front. If the run's address shows up that way, it is code; if not, it is data.
| bytes | cartridges | distinct names | what they call it |
|---|---|---|---|
| 36 | 18 | 12 | LEE_EL_TECLADO, LEE_MANDOS, LEE_TECLADO, L_45E8, lee_el_mando, lee_el_mando_1, lee_el_teclado, lee_las_filas_7_y_8_del_teclado, lee_los_mandos, lee_mando_y_teclado, lee_teclado_1, teclado_del_jugador_1 |
| 161 | 12 | 11 | L_464F, L_4716, L_4766, L_4867, L_4902, L_4A02, L_4A54, L_4B2F, L_4C0C, L_4C45, PINTA_TIRA_BUCLE |
| 170 | 11 | 6 | SUBE_LOGOTIPO, baja_un_paso, barre_la_pantalla, sube_el_logotipo_una_fila, sube_el_rotulo, tarea_0_desplaza_logo |
| 53 | 11 | 9 | ACTUALIZA_CANAL_7D6A, L_52B9, MUSICA_EVENTO_LARGO, NOTA_DE_UN_BYTE, corre_el_canal_nota_larga, lee_una_nota_de_musica, lee_una_nota_larga, manda_de_la_melodia, mandatos_largos |
| 50 | 9 | 7 | L_7BA6, L_9F80, MIRA_LA_OCTAVA, corre_el_canal_barrido, melodia_octava, mira_el_prefijo_de_octava, mira_si_hay_octava_si_no |
| 174 | 9 | 5 | SUBE_LOGOTIPO, baja_un_paso, barre_la_pantalla, sube_el_logotipo_una_fila, sube_el_rotulo |
The same controls read —ld a,7 and the BIOS call at 0x0141, which
reads one keyboard row— sits byte for byte in eighteen cartridges and goes by
twelve different names, because the repositories were written over months with no
single place to look. This is that place.
And there is a 161-byte piece across twelve cartridges that ten of them left
unnamed (L_4716, L_4766, L_4867…): only
Ping Pong named it, as PINTA_TIRA_BUCLE.
It compares bytes, so it only finds a shared routine if it was also assembled at the same address: as soon as the memory map changes, the same routine yields different bytes because its addresses differ. That is why a clean split into two frameworks does not fall out of this —at a low threshold every Konami stays connected and at a high one they break into fragments— but a continuum.
One concrete warning: the 65-byte controls read that Athletic Land shares with Antarctic Adventure is in the European and Japanese 1st Antarctic, and not in the 2nd — which is the one its Makefile picks by default and the one this database measures. A finding can depend on which dump you look at.