rst escribió:Spirax, mola tio, pero no acabo de entender por que solo lo puedes dejar en 700 MB cuando todo eso en este juego es dummy. Lo cierto es que el juego es buenisimo pero el dummy lo mata
Pues voy a intentar explicarme mejor
Este puto juego no busca los ficheros por nombre si no que se va a buscarlos directamente a los sectores en el disco.
el fichero dirfile.txt contiene una tabla con 4 partes
1.- lba donde empieza el archivo
2.- tamaño del archivo
3.- una especie de firma o crc
4.- el nombre del archivo
hasta aqui todo ok, he cambiado todas las posiciones de los archivos corrigiendolas por los lba's que tocan.
y pensareis pues entonces cambia la firma del filedir.txt ¿no?
sip eso mismo pense yo
, pero me di cuenta de que era un camelo, no puedes poner la firma dentro del fichero por varios motivos, no sabes que firma va a tener hasta que no lo tengas terminado, si despues cambias una letra deberia de cambiar la firma. asi que pense voy a probar a ver y funcionó. Lo que me extraño es que no pusieran la firma como la del dummy por ahi escondia como vereis abajo (seguir leyendo)
Como no he modificado ningun archivo la firma de los mismos sigue siendo la misma y los carga sin problemas.
Pero el problema comienza con el fichero dummy, por varias razones:
1.- no utiliza la lista para cargar este fichero , primera pista la firma esta a 0
2.- segunda pista aunque quites el fichero de la lista sigue funcionando (si el fichero esta donde toca y del tamaño apropiado)
Conclusión me puse a investigar en el interior del boot.bin y localize parte de la rutina de carga donde le dice la posicion lba y el tamaño del fichero dummy, he cambiado la posicion de lba para probarlo desde otro sitio y va bien por lo que le puse el ultimo. (para que cuando lo quite
no me modifique las lbas de los demas que esa parte ya la tengo)
Pero como puse en el post anterior cuando cambio el tamaño del fichero dummy deja de funcionar, supongo que tiene la firma tambien grabada en el boot.bin y cuando carga el fichero comprueba dicha firma y al cambiar el tamaño no coincide y se queda frito.
Para la poner la direción del lba dentro de la rutina de carga se utiliza esta instrución:
ori a2,zero,25000 #siendo 25000 el lba original donde esta el dummy
para el tamaño utiliza esta otra
lui a3,0x28a0 #ya que esto pone ceros a los ultimos 16bits quedando 28a00000
si localizo algo, estas son algunas de las ideas que tengo:
1.- probar con un fichero pequeñito de los que sabemos la firma
y cambiar la instrucion lui a3,0x28a0 por esta otra
ori a3,zero,tamañodelnuevofichero
y modificar el codigo con la firma de este fichero
El problema es que como no se como puede ser la firma estoy un poquito despistao buscandola (no se que buscar
)
asi que toy intentando seguir el codigo, pero como dige en su dia con el codigo mips estoy muuuuuuuyyy verde.
si alguien se anima, la teoria esta en a mesa
Un saludo
Spirax