Lordjontan escribió:Pues eso me la ha dicho uno de los colaboradores de retro, he revisado el extinfo.dat y hay unos cuantos juegos con 00000000 como ID. Habría que probar si el Radiant funciona con esto. En dado caso no entiendo entonces porque no llenan todo con ceros como tu dices
Edit: Me han dicho que algunas traducciones tocan la estructura de la rom donde se aloja el AP patch y por eso es necesario tener dos entradas diferentes en el extinfo.lib ya que el código del ap patch cambiaría. Por otro lado llenando todos los ID con 00000000 podría dar problemas con algunos juegos pero en general debería funcionar.
Por lo que me estás diciendo eso afecta sólo al AP patch, no a la ejecución del juego, que es el principal problema (el AP patch siempre se puede parchear aparte), y el errcode -4 se seguiría produciendo. Lo que no entiendo es por qué se modifica en una traducción, así que si te lo explican, eso que salimos ganando, con algún ejemplo de traducción al español, para poder ver qué cambia. Pero no recuerdo haber visto ningún AP patch que se deba poner en una posición diferente por el mero hecho de traducir ya que no se cambia nada del código del juego.
Yo recuerdo haber mirado algunos ficheros duplicados, como el B2LP ("Tropical Lost Island") y la razón es porque hay versión 1.0 y versión 1.1 originales, que es cuando me parece lógica la repetición ya que el código sí cambia en esos casos.
Lo que me estoy temiendo es que se refieren a que algunas roms, como el "Radiant Historia", son trimeadas, lo que hace que algunas cosas almacenadas estén en diferente lugar, así que el ID code será diferente porque se basa en esos datos, pero a la hora de ejecutar el juego se siguen cargando en las mismas posiciones de memoria, sin cambios, tanto el ARM9 como los overlays, que es donde está el código, y esos offsets son los que están indicados en la información de los ficheros del firmware, aunque no he mirado todos los juegos, claro, pero en los que lo he hecho coincide siempre.
Para que veas hasta qué punto lo absurdo que es el ID code, coge la rom del Radiant Historia y con un editor hexadecimal cambia el título, que son los 12 primeros bytes de la ROM, cambiando "HISTORIA" por "HISTERIA", y el juego dejará de funcionar, y no es porque cambie nada relativo al juego, ningún offset o ninguna instrucción del código, es porque el sistema para generar el ID code que necesitan esas tarjetas es absurdo y no guarda ninguna relación sobre cómo se carga el juego en memoria o sobre su funcionamiento.
La solucion más sencilla, si todos esos juegos tienen información repetida, sería eliminar el ID code que se calcula, que me sigue pareciendo, y cada día que pasa más y más, que no tiene ningún sentido, y poner en su lugar el serial con el número de versión. El B2LP, por ejemplo, tendría las entradas B2LP-0 y B2LP-1 para indicar que tiene las dos versiones, y la mayoría de los juegos usarían sólo el XXXX-0, que sería válido para cualquier modificación que se hiciese. Los juegos traducidos seguirían usando su código original, como tú mismo has probado con el "Radiant Historia", y la gente podría jugar desde el primer día, sin esperas de ningún tipo.
Cuando salga el próximo juego con una traducción con el errcode -4, me das un toque, por si se me olvida, y, si puedes probar algo, te paso unas cosillas para ver si funcionan, sin necesidad de tocar los ficheros del firmware, sólo modificando una tontería en la ROM.