Trim manual juegos GB/GBC

Después de la recomendación del compañero Nitro he decidido abrir este hilo para resolver esa duda que me carcome por dentro y debido a falta de conocimientos para ello.
En cuestión es la de reducir el peso de las roms de GB/GBC para luego transferirlas al EMS.
Pregunto y a ver si compañeros como el anteriormente mencionado, además de bertobp y otros tantos fenómenos que pululan por estos lares me resuelven dichas dudillas.
La recomendación que me dió el compi fue la de eliminar el espacio vacío al final de las roms para reducir el peso de las mismas con un editor hexadecimal,
supongo que se refería a los bloques de "ceros" juntos, no? (quizá me equivoco).
En caso de estar en lo correcto, podría borrar todos los bloques de "ceros" a lo largo de la rom si suponen info. vacía? (siempre dejando una o dos filas de esos ceros para separar código y no surjan conflictos) . Ya he hecho unas pequeñas pruebas borrando bloques de "ceros" en el final y en principio no ha habido problemas, lo que no quiere decir que no puedan surgir.
Ni que decir tiene que si existe ya un software que lo haga de forma automática, agradecería su recomendación ya que no he encontrado gran cosa al respecto, sin embargo sí para GBA y NDS.
Si el hilo encaja mejor en el hilo de clásicas podéis trasladarlo al mismo.
Muchas gracias por las respuestas de antemano y perdonad las molestias. (Sobre todo por el tochazo [ayay] )
A ver te comento lo que yo se, Nintendo definía los tamaños de las memorias que podían ser utilizadas en la Game Boy:
$148 - Tamaño ROM
0 - 256Kbit = 32KByte = 2 bancos
1 - 512Kbit = 64KByte = 4 bancos
2 - 1Mbit = 128KByte = 8 bancos
3 - 2Mbit = 256KByte = 16 bancos
4 - 4Mbit = 512KByte = 32 bancos
5 - 8Mbit = 1MByte = 64 bancos
6 - 16Mbit = 2MByte = 128 bancos
$52 - 9Mbit = 1.1MByte = 72 bancos
$53 - 10Mbit = 1.2MByte = 80 bancos
$54 - 12Mbit = 1.5MByte = 96 bancos
........
Si tu eras programador tu juego tenia que encajar en uno de estos tamaños, para GBC 1,2 y 4 MBits, supongamos que tu juego de Game Boy Color ocupa 500Kbits, lo que se hacia era completar con espacios vacíos o ceros hasta el tamaño superior mas proximo en este caso 1Mbit, esa es la cadena que puedes eliminar. Si eliminas cadenas de ceros en mitad de la rom, no te funcionara. Puede ser que tengas que editar la cabecera de la ROM para cambiarla al nuevo valor en este caso 04 512Kb, y tambien puede que después de todo este trabajo el juego no funcione porque cuenta con algún tipo de comprobación cheksum o CRC tendrás que valorar si merece el esfuerzo.
NiTrO escribió:
A ver te comento lo que yo se, Nintendo definía los tamaños de las memorias que podían ser utilizadas en la Game Boy:
$148 - Tamaño ROM
0 - 256Kbit = 32KByte = 2 bancos
1 - 512Kbit = 64KByte = 4 bancos
2 - 1Mbit = 128KByte = 8 bancos
3 - 2Mbit = 256KByte = 16 bancos
4 - 4Mbit = 512KByte = 32 bancos
5 - 8Mbit = 1MByte = 64 bancos
6 - 16Mbit = 2MByte = 128 bancos
$52 - 9Mbit = 1.1MByte = 72 bancos
$53 - 10Mbit = 1.2MByte = 80 bancos
$54 - 12Mbit = 1.5MByte = 96 bancos
........
Si tu eras programador tu juego tenia que encajar en uno de estos tamaños, para GBC 1,2 y 4 MBits, supongamos que tu juego de Game Boy Color ocupa 500Kbits, lo que se hacia era completar con espacios vacíos o ceros hasta el tamaño superior mas proximo en este caso 1Mbit, esa es la cadena que puedes eliminar. Si eliminas cadenas de ceros en mitad de la rom, no te funcionara. Puede ser que tengas que editar la cabecera de la ROM para cambiarla al nuevo valor en este caso 04 512Kb, y tambien puede que después de todo este trabajo el juego no funcione porque cuenta con algún tipo de comprobación cheksum o CRC tendrás que valorar si merece el esfuerzo.

Muchas gracias por tu respuesta compañero, el CRC y la cabecera las había tenido en cuenta (y con todo y eso he tenido problemas),lo que no recordaba era la separación de los bancos de memoria, ahora recuerdo haberlo leído en algún otro hilo o en tu web/blog. De todas formas me seguiré documentando sobre ello a ver que saco en claro, pero tiene pinta de ser muy tedioso el tema y como dices debe requerir un gran esfuerzo y a ver si merece la pena (encima flojeo en temas de programación...)
De todas formas muchas gracias de nuevo por tu respuesta Nitro [oki]
[bye] [bye]
2 respuestas