La idea es guardar datos en un cartucho de Game Boy de forma oculta. Esto implica que el juego ha de ser jugable sin problemas pero tener contenido guardado que podamos rescatar posteriormente simplemente sabiendo lo que ocupa la ROM del juego original.
Lo primero de todo es elegir un juego de game boy en el que queremos guardar nuestros datos.
Para esta prueba he utilizado el Sumer Mario Land de Game Boy Classic.
$ wget https://56k.es/wp-content/uploads/2026/04/smarioland.zip $ unzip smarioland.zip $ cd smarioland/ $ du -b *
Nos lo bajamos y miramos con du -b los bytes que ocupa. En este caso ocupa: 65536 bytes el archivo smarioland.gb
A groso modo dependiendo del cartucho que tengamos vamos a poder almacenar más o menos información oculta (restando siempre el tamaño del juego original que pongamos al principio del cartucho).
Estos son los datos de capacidad de los diferentes cartuchos de Game Boy (más habituales):
- Los de Game Boy Classic: ROM: 32 KB–4 MB
- Los de la Game Boy Color: ROM: 128 KB–8 MB
- Los de la Game Boy Advance: ROM: 4 MB– 32 MB
Si queremos camuflar el archivo textura.png en el cartucho (archivo que viene en el zip que hemos bajado) vamos a usar cat así:
$ cat smarioland.gb textura.png > final.gb $ du -b *
Se tendría que ver que final.gb es una rom que ocupa la suma de smarioland.gb + textura.png
Ahora usando gb-operator grabamos final.gb a un cartucho y veremos que el juego es totalmente jugable pero que tras de sí está nuestra mandanga extra, nuestro archivo oculto llamado textura.png
Tenemos por tanto un cartucho grabado con un juego que funciona pero que tiene al final otro archivo que es el que hemos ocultado.
Todo está ya en el cartucho grabado por lo que podríamos ya borrar lo demás y cuando necesitemos el archivo extraer la rom completa del cartucho y luego separar el juego real del archivo oculto.
Esto se hace con el software de gb-operator (lo de grabar roms o dumpearlas) pero si queremos extraer finalmente el contenido se hace así:
$ dd skip=65536 status=none iflag=skip_bytes,count_bytes if=final.gb of=textura.png
De esta forma separamos ambos archivos porque skipeamos (nos saltamos) los primeros 65536 del input file (if=final.gb) y guardamos el resto en el output file (of=textura.png).
Y de esta forma puedes tener juegos funcionales de game boy con archivos secretos en su interior.
No puede ser más sencillo realmente. Usamos cat para concatenar archivos y luego usamos dd para separar el juego del archivo oculto.
Lo único que tiene dificultad es disponer de cartuchos y de un grabador/lector como el GB-Operator. Si tienes eso entonces podrás facilmente ocultar documentos en cartuchos
Saludos cordiales.










