oplaza escribió:ddf, si te vale de algo,
se que GST en algun lugar del codigo chekean k el cartucho de la consola sea el de neoflash, a lo mejor te vale para descifrar algo de codigo
Hasta donde he llegado, tal vez este codigo publico no sea igual que el que han usado en las otras roms, te comento, no es necesario hacer ninguna comprobacion de que tienen el neoflash, sino simplemente la propia manera de funcionar del parche inhabilita a todos los demas flash
.
Para hacernos una idea, la DS solo puede "ver" 32 megabytes, para conseguir ver los otros 32 (en el caso de los cartuchos de 512 megabits), necesitamos hacer una operacion que se conoce como page flipping o bank switching, esa operacion no es algo universal, sino que es de cada cartucho, en concreto el xg2 y el neoflash usan el mismo. El ezflash otro, visoly tenia uno curioso (y documentado hasta mas no poder), la SC parece ser que no es necesario gracias a su firmware interno (sabe cuando hay que cambiar...). Lo que hacen estos del GST, es aprovechar esa caracteristica propia del cartucho para evitar la carga (no se si fue realmente casualidad o asi lo quisieron), el parche mas o menos lo que hace es lo siguiente, al contrario del NDSPatch, que cuando recibe una peticion de conseguir un dato para el dsslot, suma la direccion que le piden con la direccion donde esta el cartucho flash, 0x08000 bla bla bla, asi copia un bloke de 512 y bla bla bla, haciendo la misma operacion que haria esa funcion con el cartucho de DS, pero con la flashcart, el problema se da cuando el dato que pide el juego esta mas alla de los 32 megas, el parche en concreto no tiene ni puta idea de resolver esto y suma copia y listo, lo que esta copiando son datos aleatorios, vacio, o cualquier cosa impredecible, solucion? hacer un bank switch, pero.... habria que hacer uno especifico para cada cartucho y lo mejor de todo... no se conoce como hacerlo en todos (cosas internas de cada diseñador..) asi que ya vamos jodidos. Asi que por eso fallan todos los juegos por encima de 256 megabit(32megabytes), la SC funcionan porque su firmware sabe arreglar (o hasta donde yo se) estas cosas y es capaz de saber cuando va pedir algo por encima de los 32 megas y hacerlo bien.
Funcionamiento del parche del gst, pues muy diferente, pero muy muy inteligente, le piden un dato, pero en vez de irse hasta el, lo que hace es traerlo... me explico, el siempre lee la misma posicion de memoria, o si lo quieres ver mejor el mismo bloque a copiar. Para que esto funcione, lo que hace es hacer siempre siempre un page flipping, provocando que el cartucho ponga los datos que el quiere en la direccion que el va empezar a copiar, asi si nos damos de cara contra una rom de +de32megas, funcionara igual de bien que sino los supera, porque siempre trae los datos, esten donde esten, asi si tenemos cerka de los 60 megas, lo traemos hasta la posicion 1 por ejemplo, leemos lo que queramos, y lo dejamos asi... cuando vuelve a pedir, si estaba mas atras el dato, nos vamos para atras. Esto se aplica tambien a la SRAM, por eso graba bien los juegos de 2 megas (256 kilobytes) perfectos... cosa que el ndspatch no puede,porque solo puede ver 64kilobytes efectivos de la SRAM y sin el pageflipping nada...
Por cierto, las roms de mas de 64 megas, ya rondando el los 128... van a funcionar con el GST, pero lo que tienen que hacer es liberar la forma de hacer el bank switiching los de Ezflash y tendra solucion... (sino esta liberado ya claro...)
Bueno todo esto pa explicar porque no funciona, sencillo sin el pageflipping, weno el parche lo intenta, pero el cartucho no sabe ni que coño hace ( en cualquier otro hablo..) asi que toda la informacion sigue donde esta... el parche copia el trozo que le pide el juego pero..... copia basura, inutilizable... asi que pantallazo blanco... porque el juego no sabe ni que hacer.
Creo que con esto queda solucionado...