@EMaDeLoCEn la primera respuesta que me diste sobre lo de los "16MB sobrantes" parecias haber entendido que yo decia que eran algo que sobraba EN el mapeado de la N64, por eso hice la aclaracion de que me referia al 64drive. Pero parece que esa aclaracion causó otra confusion, y ahora parece que crees que dije que el 64drive se guardaba esos 16MB en vez de ponerlos disponibles para el PI.
He vuelto a revisar la especificacion tecnica de la N64 y he visto que puede que haya algunos pocos KB del rango de direcciones del PI en donde el 64drive da acceso a la N64 a algunos registros internos para que la N64 pueda controlar ciertas cosas especificas del 64drive, como el puerto USB, el wifi, registros internos, como uno para activar acceso RW, y mas. Asi que puede que el PI acepte algo mas espacio ROM que los 240MB que el 64drive ofrece y simplemente lo haya redondeado a 240MB por conveniencia.
En todo caso, lo que digo es que la memoria interna que el 64drive mapea al PI debe ser (quitando las excepciones mencionadas) la misma que la consola soporta.
Desde el lado de la N64, si la CPU intenta acceder a direcciones fuera del rango mapeado al PI, la peticion o bien acabará en alguna otra parte del sistema o bien causará una excepcion o algun otro error. Desde el lado del 64drive, el FPGA tiene que mapear explicitamente esa porcion de 240MB de su RAM interna al rango de direcciones del PI que llegan por el conector del cartucho.
Ambos elementos estan de acuerdo en donde estan los limites.
Lo del 64DD, no dije que tu hubieras dicho que habia que darle vueltas al disco, pero, por alguna razon, insistes en que la maquina escribe a las dos caras de manera independiente, y ni es cierto ni sería practico.
Dado que no vas a darle vuelta al disco, como pasaba en disqueteras muy antiguas de un solo cabezal, montas 2 cabezales en el lector, y teniendo 2 cabezales la forma mas practica de montarlos es en un mismo brazo con los dos cabezales mirando al mismo punto del disco pero en caras opuestas. Por que si tienen que moverse independientemente, ya sea de forma simultanea o uno de cada vez, complicas innecesariamente la mecanica del lector, con brazos independientes mas motores y/o mecanismos para cambiar de un brazo a otro... Y total para que? Si lees de las dos caras al mismo tiempo duplicas la velocidad de lectura, asi que porque separar los datos en 2 caras independientes cuando puedes leer las 2 en una misma continuidad de datos y al doble de velocidad?
Como ya he dicho antes, el reparto de partes reescribibles y de solo lectora no se hace por caras, si no que los discos de 64DD vienen formateados con una especificacion de hasta donde llega la zona de solo lectura y donde empieza la parte reescribible. Segun leí en su momento, hay 7 "tipos" de disco que van desde "todo el disco es de solo lectura" a "todo el disco es reescribible" y diversos porcentajes de reparto entre esos dos. No es que los discos sean diferentes fisicamente, si no que vienen formateados diciendo "soy de tipo #", y el hardware de control del 64DD se encarga de permitir o denegar a la N64 escribir en determinadas zonas. Cuando una desarrolladora hace un juego, ya se encarga de especificar que tipo de formato quiere, y pone los datos del juego en la zona RO, dejando la zona RW para datos de usuario (aunque tambien puede traer datos de fabrica en la zona RW, como Mario Artis Talent Studio, que trae una animacion de Hiroshi Yamauchi que puedes borrar para siempre si no te interesa).
@CalculinhoNo puedo jurarlo, pero dudo mucho que el 64DD esté preparado para leer discos de mayor capacidad. Estas cosas se diseñan para ser lo mas baratas posible. Desde luego, es seguro que la electronica incluida y el software que lo controla no van a permitir leer un formato mas denso que el oficial, y con respecto a los cabezales, probablemente estén diseñados para leer correctamente el formato oficial y si intenta uno hackear el aparato para leer algo mas denso probablemente de muchos problemas. Asi que de eso olvidate.
Respecto a lo de los multiples discos, estás absolutamente en lo cierto. Si fuera necesario, se podría hacer un juego en multiples discos, a lo RPG de PS1, y pedir al usuario que lo cambie en puntos de inflexion de la historia. Dicen incluso que el MOTHER 3 iba a venir en 4 discos, aunque puede ser un rumor.
EMaDeLoC, lo siento, macho, pero aqui te has equivocado. Si que se puede hacer hot-swap perfectamente, y de hecho hay juegos que lo hacen. Primeramente y mas importante que cualquier otro, está la serie Mario Artist, que son 4 titulos que intercambian datos entre ellos.
Paint Studio (para hacer dibujos 2D), Polygon Studio (modelados 3D y algunos juegos donde usar los modelos que haces), Talent Studio (para crear personajes que luego puedes usar en pases de modelos, peliculas animadas y alguna chorrada mas) y Communications Kit. El Communications Kit está especificamente diseñado para poder intercambiar datos entre los diferentes discos, de forma que puedas usar renderizados de tus modelos de Talent y Polygon en el Paint, o usar dibujos de Paint como texturas en Polygon y Talent, y alguna otra combinacion asi. Incluso los 3 discos de actividades tienen menus para administrar archivos y creo que se puede cambiar el disco para intercambiar archivos, pero no estoy seguro de esto ultimo e igual solo se puede hacer con el CommKit. El Communications Kit, ademas, permitia usar el modem (conectado al puerto de cartuchos) para enviar tus artistadas a los servidores de Nintendo y no se si habia competiciones o una galeria en la web y se podian bajar cosas que hacian otros, o algo asi... solo duró 2 años o año y medio.
Luego está Doshin the Giant, del cual sacaron una especie de "secuela" en la que controlas la presencia onirica de un niño en sus sueños, paseando por una especie de parque tematico y haciendo que se yo que cosas bizarras. En ciertos puntos del juego se supone que tienes que saca el disco y meter el doshin normal para pasarle datos para desbloquear alguna historia o algo asi...
EMaDeLoC escribió:Si en el momento en que se saca un disco se interrumpe la ejecución del programa, pues olvídate del swap disc...
Parace que el 64DD tiene un ejecutable en caso de no haber disco, para realizar configuraciones. Tiene pinta de que salte en cuanto el disco se saque. En ese caso, swap disc imposible.
El 64DD tiene tanto su firmware interno para controlar los mecanismos, como una boot-rom/BIOS que la N64 carga si no hay un cartucho insertado en la consola. Si hay cartucho, por mucho que haya un 64DD con o sin disco, se carga el cartucho, y ya sabrá el cartucho si quiere usar el 64DD y le vale el disco que haya dentro o no. Si no hay cartucho, la N64 carga la BIOS del 64DD, que es como una ROM de N64, y la propia BIOS se encarga de inicializar el 64 y ver si hay un disco dentro y cargarlo si lo hay. Si no hay disco, la BIOS tiene menus para cambiar la hora del reloj interno y alguna otra cosilla. El disco no puede arrancar por si mismo. Primero carga la BIOS y la esta busca el disco y lo intenta arrancar si lo encuentra.
Hay 2 cartuchos especiales pensados para usar con el 64DD que no arracan la N64 como un cartucho de juego normal, si no que dejan que arranque el 64DD: el modem y la tarjeta de captura de video. El modem lo puedes usar con el disco RandNET (basicamente un navegador web) y el Mario Artist Communications Kit. El cartucho de captura de video sirve para conectar una camara, un video o alguna otra fuente de video compuesto y capturar imagenes para hacer cosas en el mario artist.
Asi que, si, una vez mas, se puede hacer hotswap sin problemas. El software de 64DD está pensado para usar el expansion pak como caché y el disco solo se accede cuando es necesario. La mayoria de programas están diseñados para avisarte cuando sacas el disco en un momento indebido. Me imagino que si sacas el disco durante una pantalla de carga podría ser mas problematico y hasta causar un error, pero tambien es posible que tenga codigo para aguantar en esos casos y simplemente pedirte que vuelvas a meter el disco.
Otra cosa, para los que aun duden: El conector EXT de debajo de la consola es, electricamente, el mismo conector que el de cartuchos en la parte de arriba. Son las mismas patillas. De hecho, si abres la consola, es el conector EXT el que está soldado a la PCB, y el conector de cartuchos va insertado en el conextor EXT mecanicamente y sin soldadura. La diferencia, logicamente, es que, desde abajo, el orden de las patillas es a la inversa. Tambien está la diferencia de que en el conector de cartuchos hay 2 patillas que no están conectadas y que en el conector EXT si. No estoy seguro ahora mismo, pero creo que es un rail de 12voltios para los motores del 64DD y que ningun componente de los cartuchos necesita.
La separacion entre cartucho y 64DD se hace por direcciones de memoria. Ahora bien. La BIOS del 64DD obviamente se carga como si fuera un cartucho, pero en un rango de direcciones diferente. Lo que ya no se es cual es el modo de acceso a los datos del disco. No se si se accede como un cartucho, leyendo direcciones de memoria, o se mandan comandos de lectura a un "puerto" y se espera a que el 64DD lea el disco y devuelva una respuesta. Me inclino por la segunda opcion, que es lo que se suele hacer en estos casos. El acceso por direcciones de memoria es mas para memoria en estado solido, que no tiene que hacer lentas operaciones mecanicas y puede responder de forma inmediata. Se cargan los datos en el Expansion Pak y a ejecutar.
El 64DD hasta tiene su propio CIC, o chip de seguridad, diferente a todos los usados en cartuchos (o la placa de arcade Aleck64), que autentifica la ROM de la BIOS. Me imagino que está diseñado para tardar algun que otro milisegundo mas en activarse para dar preferencia al de cartucho e inhibirse si ve que el cartucho ya está activo, y asi conseguir ese efecto de que si hay cartucho cargue el cartucho aun cuando haya 64DD conectado. Tambien podría ser otro proceso, no lo se...