@valdivia Por desgracia para quienes lo necesitan, parece que solo la versión americana de Banjo-Tooie fue parcheada, y esta no tiene las traducciones a francés, alemán y español que si tiene la version europea. El parche es de los tiempos de la scene original de N64 y, cuando empezaron a salir los flashcarts de N64, se empezó a desenterrar material antiguo de entonces. Creo que el autor, LaC nuevamente, dijo que sí había parche PAL, pero nadie parece tenerlo... También es probable que yo entendiera mal y que realmente nunca existiera.
-----------------------------
@EMaDeLoC los guardas EEPROM en los cartuchos de N64 son chips de 8 patillas, y a ellos llega una linea de comunicacion en serie que los conecta con el PIF dentro de la consola. creo que este bus es denominado SI, Serial Interface. Los chips SRAM van conectados al PI, o Parallel Interface, que ya conocemos, igual que los chips ROM. Los chips FlashRAM tambien van conectados al PI.
Hay que recordar que el bus PI es un bus intercalado o "interleaved", que envia y recibe datos por las mismas lineas por donde indica las direcciones. Este diseño requirió de usar chips ROM especiales y por eso no se pueden usar chips de memoria normales como en consolas de cartucho anteriores y solo desde hace unos pocos años hay placas repro con sus correspondientes chips controladores para convertir el protocolo del bus.
Volviendo al SI, siendo este un bus en serie, parece bastante esperable que la EEPROM use comandos. Sin embargo, el mero hecho de estar en el PI no libra al SRAM, y mucho menos al Flash, de usar comandos tambien. Y digo esto porque he visto mas de una vez conversaciones tecnicas sobre N64 hablando de cómo acceder a chips de guardado especificos, y que hay variantes. No todos los chips Flash son iguales, y creo que los SRAM tampoco. A medida que Nintendo iba cambiando los chips en su linea de produccion, tambien actualizaba las librerías de acceso a los chips de guardado en la ultralib para soportar todos los modelos en circulacion, o quizá ya los tenía preparados de antemano, quien sabe. La cosa es que esto denota que no todos los chips de un mismo tipo se acceden exactamente igual. Se que el SI incluye, entre otras lineas de control, dos que son /read y /write. Hay que activar esa linea cada vez que quieres leer o escribir en uno de los chips. Obviamente los chips ROM no responden a /write... probablemente ni estén conectados. Y cada chip sabe a qué rango de direcciones debe responder o ignorar.
En mi experiencia personal trasteando con la N64 he encontrado "pruebas circunstanciales" que parecen confirmar que no todos los chips SRAM son iguales: Hace años hice copias de mis cartuchos originales y sus partidas guardadas usando metodos un tanto rocambolescos, con un Action Replay, un Passport 3, controller paks, un NeoMyth 64... una historia que, si a alguien le interesa, puedo contar aqui o en el hilo de curiosidades, la cosa es que el Action Replay (o GameShark en America) tiene un "save manager" capaz de copiar datos de partidas de cartucho a notas de juego en un Controller Pak, y tambien volverlas a copiar de vuelta al cartucho.
Como sabemos hay 5 tipos de guardado en cartuchos EEPROM 4k y 16k, SRAM 256k y 768k, y Flash 1024k, y luego está el CP que es tambien SRAM 256k.
El save manager del AR/GS guarda sin problema las partidas EEPROM en notas de CP sin compresión. Si tienes alguna forma de copiar datos del Controller Pak al PC, puedes extraer las notas con una serie de programas y usar los datos en un emulador o pasarlas al flashcart sin problema. No he tenido ningun problema con ninguno de mis cartuchos originales con EEPROMs, todos han funcionado. Claro que tampoco tengo tantos juegos como para tener una alta confianza estadística.
En el caso de SRAM, siendo ambos chips del mismo tamaño y siendo que el formato del CP ya ocupa lugar, el cartucho hace compresion de datos. Por ejemplo, mi partida de Zelda acabó reducida a 19 paginas del CP.
Sin embargo, la partida de otro juego SRAM que tengo, Smash Bros, no solo no lo copia, si no que ni lo ve, no aparece en el administradors de "saves". O bien el AR/GS intenta comprimirlo y viendo que no va a caber, desiste y no muestra nada, o bien sencillamente no es capaz de comunicarse con el chip porque las rutinas de acceso que tiene no valen para ese chip. Yo me decanto por lo segundo.
EMaDeLoC escribió:Viendo que Banjo Tooie y Jet Force Gemini si tienen sistemas antipirata, resultaría extraño que DK64 tenga el CIC x105 y sin embargo funcione con los x101 sin rechistar.
A mi me parece que no resulta extraño en absoluto si recordamos la historia del desarrollo de DK64, que empezó como juego de DD, donde lo que se autenfica con el CIC y el PIF es la ROM de arranque del 64DD, y no el disco. Por tanto, cuando lo convirtieron a cartucho, y con los problemas que ya tuvieron (y el feliz accidente que permitió la salida del EP al mercado al margen del DD) para terminar el juego a tiempo, lo extraño sería que se pusiesen a implementar medidas de sabotaje antipirata en el ultimo momento ¿no crees?
Hasta donde yo se, el CIC interno del 64DD tampoco tiene medidas de seguridad extra como las del x105, lo cual tambien es esperable, si tenemos en cuenta que, de haber sido lanzado al gran publico, lo que se piratearía serían los discos, y no el 64DD en si, que es el que lleva el CIC para que la consola arranque su ROM. A fin de cuentas, el 64DD no es otra cosa que un cartucho enorme que lee discos magneticos xD. No muy diferente de un flashcart que lee tarjetas SD si lo piensas. La piratería en DD, por tanto, no hubiera dependido de un CIC, pues ya lo vas a tener porque viene con el DD, si no de los discos, que tendrán su formato especifico y alguna medida para entorpecer su replicacion tambien, aunque seguramente nada que no acabasen solucionando en poco tiempo los piratas comerciales. Estoy convencido de que el motivo principal de que no saliese el DD fue el terror que tenía Nintendo a que le pirateasen los discos, que fue tambien la razon por la que siguieron con cartuchos.
EMaDeLoC escribió:Las EEPROM pueden comunicarse a traves de protocolos, mientras las SRAM leen o escriben datos según este activa la línea correspondiente. De ahí la necesidad de parches según los copiones o flashcarts que se fuesen a utilizar en su momento.
No, lo de los parches para diferentes guardados te aseguro que fue por lo que dije antes. Había mas cartuchos originales y adaptadores multibloque (que enlacé antes, si te los has peridido) con eep4 y sram256 que con eep16 y desde luego flash1024. Se hicieron los parches para facilitar el uso con copiones y las capacidades mas comúnmente disponibles en ellos. Nada que ver con las propiedades electronicas de los diferentes tipos de memoria.
EMaDeLoC escribió:Pues debido al uso de protocolos algunas EEPROM aceptan comandos y uno de esos comandos, y aquí viene lo interesante, es el borrado completo del chip.
Valdivia comentó al principio que se le habían borrado LAS partidas, lo que cuadra con el uso del comando de borrado del chip. Pensemos en este comando: ¿cuantas veces se usaría en todo el catálogo de la N64? Normalmente cada juego con memoria interna guarda dos o tres partidas distintas para que así varias personas puedan seguir con la suya simultaneamente. Es normal que se pueda borrar una partida, ¿pero todas a la vez? ¿Hay algún juego que implemente borrar toda la memoria de guardado del cartucho con un solo botón?
Creo que estás especulando demasiado. Exista o no un comando de borrado completo. nada impide borrar con una escritura de 00s o FFs. Los chips EEPROM de N64 son 512 y 2048 bytes. No ganas nada implementando comandos exoticos.
Además...
valdivia escribió:Sobre lo de las partidas fue siempre solo una la que se acababa borrando
Esto me suena mas a corrupcion de datos. Cada juego es un mundo, pero muchos tienen medidas de comprobacion e incluso de copia doble en las partidas guardadas para asegurar la integridad de los datos.
A mi me suena a un error de transmision o de copia de los datos, la partida queda corrupta, y, cuando el juego la va a revisar, ve que hay un problema, trata de corregirlo y no puede, y dice, "esto no vale y lo borro".
Eso o la hipotetica medida de sabotaje.
EMaDeLoC escribió:¿y si en el momento de implementar Marshall los comandos de EEPROM en su 64drive no implementó el de borrado del chip? Tendría sentido pues para qué gastar esfuerzo y espacio en un comando que a priori no se usa. Asumiendo claro que la EEPROM de DK64 trabaje por comandos. ¿Y porqué el Everdrive si funciona? Intuyo que Krikzz se limitaria a usar una librería genérica para controlar la EEPROM que incluyera el comando y por eso se borran las partidas. Esto estaría en el firmware y no podría deshacerse con una actualización del OS.
Todo esto me parece aun mas improbable. Los eeproms de la N64 son ya archiconocidos en la scene. Si hubiera tal comando estaría implemetado y no tendría sentido ninguno decir "bueno, no se si esto se usa o no, así que me lo salto y cruzo los dedos para que no pase nada". No, lo implementas y te quedas tranquilo.
Despues de toda esta divagacion y analisis, y el detalle de la partida individual que nos da
@valdivia, me inclino aun mas que antes por un error en el ED que causa corrupcion y el propio juego se ve obligado a corregirlo, borrando esa partida concreta, y no toda la eeprom.
EMaDeLoC escribió:coger un cartucho como el ED v2 de Valdivia, quitarle el chip 7101 que lleva, cambiarlo por un 7105
¿Acepta ser usado así? ¿Tiene tambien booloader dual como el 64drive HW1? (el HW2 asumo que no lo tiene, dado que usa un UltraCIC, igual que los EDs mas nuevos)
------------------------
AÑADO y CORRIJO: Me acabo de dar cuenta de una cosa. EEPROM son las siglas de Electronically Erasable and Programmable Read Only Memory. Es ROM, no RAM. Antes de las EEPROMs existian las ROMs, que se fabrican directamente con los datos ya escritos, y las EPROMs (Electronically Programmable ROM) que se podían programar electricamente de un tiron y usarlas en lugar de una ROM tradicional, pero, para borrarlas, hay que retirar una etiqueta y exponer el chip, visible a traves de un cristal, a luz ultravioleta (aunque tambien puede funcionar la luz natural del Sol), que lo borra completamente y entonces se puede volver a PROGRAMAR.
En este contexto, el concepto de programar es diferente al de escribir. Mientras que otras memorias se pueden escribir de manera aleatoria (RAM, y sus variantes, como SDRAM, S-RAM...), o por bloques (Flash), las memorias PROGRAMABLES, se escriben de una sola vez, y si quieres volver a escribir algo nuevo tienes que borrarlas completamente y volverlas a escribir, o, mejor dicho, programar, de un tiron.
Las EEPROM son iguales, con la diferencia de que el borrado se puede hacer electronicamente, sin necesidad de luz ultravioleta.
Todo esto para decir que es imposible que el 64drive no incorpore el comando de borrado, como sugeriste, pues es algo inherente al proceso de manipular una EEPROM. Los juegos realmente cachean el contenido de los guardapartidas en la RAM de la N64 y, cuando hay datos modificados, borran y reescriben el chip entero.
Así que seguimos con la teoria de que o bien hay una medida de sabotaje anti-piratas y los usuarios del 64drive no han jugado lo suficiente al DK64 para toparse con el (o no se han quejado de ello, hasta donde yo se), o hay versiones del ED que tienen algun tipo de fallo que provoca este problema.