[HILO OFICIAL] Nintendo 64

Hola, una duda que ya no recuerdo, en N64 sin adaptador es imposible modificar la carcasa para enchufar directamente cartuchos de otra región y que funcionen no? Y esos adaptadores se pueden conseguir baratos o ya ni existen? Me suena ver en aliexpress conversores de NES a Famicom y viceversa por dos duros, pero no me suena ver de otras consolas.
SuperPadLand escribió:Hola, una duda que ya no recuerdo, en N64 sin adaptador es imposible modificar la carcasa para enchufar directamente cartuchos de otra región y que funcionen no? Y esos adaptadores se pueden conseguir baratos o ya ni existen? Me suena ver en aliexpress conversores de NES a Famicom y viceversa por dos duros, pero no me suena ver de otras consolas.


Suponiendo que tengas una N64 NTSC, la única diferencia física entre la región JAP y la USA es la base de plástico interna alrededor del conector donde se encuentran las pestañas que coinciden con la base de los cartuchos al insertarlos.

Sólo la tienes que desmontar y cortar esas pestañas para usar indistintamente cartuchos JAP o USA. Creo que hace tiempo en Aliexpress vi que vendían la base ya modificada... seguro aún la puedes encontrar.

Aquí lo verás mejor.

En la SNES USA pasaba justo esto mismo: la carcasa no tiene problema de forma o tamaño para meter los juegos JAP pero la base alrededor del conector de cartuchos tiene unas pestañas que no permiten que el cartucho se inserte.

[bye]
@isacin tengo PAL jaja, la idea era saber si podría comprar algún original NTSC y usarlo.
Juraría que los NTSC Jap , físicamente son iguales que el PAL, pero no tengo ningún juego para cerciorarme.

Salud.
@dirtymagic Lo son. Son los de USA los que tienen las pestañas en otra parte.

@SuperPadLand A menos que cambios el chip PIF por un UltraPIF o uno japones, los juegos japoneses no te correrán en la N64 PAL. Simplemente la máquina no arranca.
Si tuvieses una N64 NTSC sí podrías meter los juegos NTSC japos o americanos quitando el tope de las pestañas que te han comentado antes.
@EMaDeLoC bah entonces pasó, era por mirar de pillar algún cartucho, pero con flashcard tiromillas.
Hola chicos, a ver si alguien puede confirmarme esto, estuve leyendo algo al respecto però no me quedó claro..

Ahora tengo la N64 conectada a smart tv con un adaptador bitfunx hdmi barato, los gráficos son los que son pero con el summercart puedo jugar cualquier juego NTSC, romhacks etc

Estaba mirando de mejorar imagen con un retroscaler 2x de ali pero vi algunos comentarios acerca de q no es capaz de mostrar los juegos NTSC en una N64 pal?? Alguien tiene esta configuración y podría confirmarlo
9-Volt escribió:Hola chicos, a ver si alguien puede confirmarme esto, estuve leyendo algo al respecto però no me quedó claro..

Ahora tengo la N64 conectada a smart tv con un adaptador bitfunx hdmi barato, los gráficos son los que son pero con el summercart puedo jugar cualquier juego NTSC, romhacks etc

Estaba mirando de mejorar imagen con un retroscaler 2x de ali pero vi algunos comentarios acerca de q no es capaz de mostrar los juegos NTSC en una N64 pal?? Alguien tiene esta configuración y podría confirmarlo


No hay problema, yo lo usaba asi
Buenas,

¿Hay algún video de N64 PAL jugando a un juego NTSC VS una NTSC?

He leido en este foro que los timmings son distintos pero no he visto ningún versus en ningún lado.

Un Saludo.
@naxeras Los timmings distintos es principalmente por el cristal para vídeo, que tiene que ser diferente para el codificador de color que es diferente entre el video NTSC y el PAL. Este cristal lo usa el RCP para sincronizar su salida con el chip de conversión analógica (VDC-NUS, DENC-NUS o MAV-NUS)
Eso produce que un juego PAL en una consola NTSC vaya a 49Hz y un juego NTSC en una consola PAL vaya a 61Hz, aproximadamente.

Eso no significa que los juegos PAL vayan a más FPS en una consola NTSC o los juegos NTSC más lentos en una consola PAL. El reloj de CPU, RCP y RAM es el mismo en ambas regiones, así que el rendimiento es el mismo. Como mucho cada ciertos segundos un frame se mostrará un poco antes o después que en un juego con una configuración estandar, dando en un cálculo medio alguna décima más o menos de fps, pero en la práctica seguirá siendo igual.

De todas formas estaría bien un vídeo comparativo para ver el resultado en el mundo real.
Estaba pensando si es técnicamente posible modificar la rom del resident evil 2 para meterle videos, audios e imágenes sin comprimir ahora que el espacio no es problema con un flashcart, o hay alguna limitación técnica que impida a la consola cargar o procesar archivos más grandes de lo que sería el cartucho?
@soukai La única limitación conocida son 240/256MB de espacio de cartucho (no tengo claro cual es el definitivo, pero mínimo seguro 240MB). Y eso sin mappers o aprovechando la salida de datos en serie del puerto de cartuchos que se usa normalmente para guardar partidas u otras cosas (creo que un modem la usa) para hacer cambios de bancos y usar memoria infinita.
Creo que por ancho de banda daría de sobras para video con menos compresión. Pero quizá habría que reprogramar el descodificador usado en el juego, que creo que es una mezcla entre CPU y RCP, y eso es más complicado.
Mi opinión es que técnicamente es posible,pero hecho desde cero, existen las herramientas hoy en día para comprimir los fondos en Jpeg y los videos en h.264,por lo cual incluso es posible que cupiese en los 64MB con mayor calidad, pero habría que coger la Decomp de RE2 de PC y PSX y pasarlo a N64, una faena que no sé yo si alguien está dispuesto hacer.
Un Survival horror con fondos prerenderizados y FMV de calidad, hecho de cero incluso con la limitación de 64MB, es claramente posible, incluso, sería más pausible hacer un Demake del RE0 para N64, porque habría más incentivo (no existe) , que simplemente mejorar el RE2.

Salud.
EMaDeLoC escribió:@soukai La única limitación conocida son 240/256MB de espacio de cartucho (no tengo claro cual es el definitivo, pero mínimo seguro 240MB). Y eso sin mappers o aprovechando la salida de datos en serie del puerto de cartuchos que se usa normalmente para guardar partidas u otras cosas (creo que un modem la usa) para hacer cambios de bancos y usar memoria infinita.
Creo que por ancho de banda daría de sobras para video con menos compresión. Pero quizá habría que reprogramar el descodificador usado en el juego, que creo que es una mezcla entre CPU y RCP, y eso es más complicado.

El limite del mapa de memoria de la consola dedicado al cartucho son 256 MiB, pero el único cartucho flash que yo sepa que contiene toda esa memoria, el 64drive V2, reserva un bloque de 16MiB al final de ese rango para una interfaz de control entre la consola y el cartucho 64drive, de forma que el software que corre en la N64 pueda acceder a los registros internos del cartucho 64drive (activar el DMA entre tarjeta y RAM para cargar una ROM, establecer bootloader, metodo de guardado, etc), acceder a la tarjeta de memoria y controlar el puerto USB y la interfaz wifi. Los 16 MiB están reservados en exceso imagino que para no complicarse la vida innecesariamente. Tendría que consultar el manual para calcular cuanto de esos 16MiB se usan y cuanto queda "desperdiciado".
Osea que si, la n64 puede acceder a 256MB de ROM de forma directa, pero el 64drive sacrifica los últimos 16 para darselos a la necesaria interfaz entre la consola y las funciones internas del 64drive. Sobra espacio, pero marshallh lo hizo así. O sea, la consola puede acceder 256MiB por el PI, y el 64drive v2 contiene 256MiB de RAM para espacio ROM, pero 16MiB se quedan sin usar y el rango de memoria correspondiente se dedica a esa interfaz interna del 64drive (registros de control, tarjeta flash, usb, wifi...), y así quedan 240 para ROM.

Existen otros "flashcarts" que ofrezcan mas de 64MB de espacio ROM? Hay alguno de 128, por ejemplo? O es el 64drive V2 el único?

En cualquier caso, tampoco estamos limitados a esos 240MiB del 64drive, porque técnicamente se podría programar el software de N64 para acceder al sistema de ficheros FAT32 de la tarjeta directamente, y así tener gigas y gigas disponibles si fuera necesario.
radorn escribió:Existen otros "flashcarts" que ofrezcan mas de 64MB de espacio ROM? Hay alguno de 128, por ejemplo? O es el 64drive V2 el único?

Creo que técnicamente el SummerCart64 tiene 80MB, 64 para emular el 64DD y 16 para cargar la ROM de los dos juegos que acpetan expansión por 64DD.

radorn escribió:En cualquier caso, tampoco estamos limitados a esos 240MiB del 64drive, porque técnicamente se podría programar el software de N64 para acceder al sistema de ficheros FAT32 de la tarjeta directamente, y así tener gigas y gigas disponibles si fuera necesario.

Mmm... No sé si eso entraría en conflicto con el TLB que gestiona las direcciones virtuales de la consola y las traduce a direcciones físicas.
@radorn es el único. El SummerCart 64 permite 78MB y el EverDrive 64 x7 deja hasta 64MB.

Un saludo!
@EMaDeLoC @Falkiño Gracias por confirmar.

EMaDeLoC escribió:
radorn escribió:En cualquier caso, tampoco estamos limitados a esos 240MiB del 64drive, porque técnicamente se podría programar el software de N64 para acceder al sistema de ficheros FAT32 de la tarjeta directamente, y así tener gigas y gigas disponibles si fuera necesario.

Mmm... No sé si eso entraría en conflicto con el TLB que gestiona las direcciones virtuales de la consola y las traduce a direcciones físicas.


Te confirmo que al menos en el 64drive la N64 puede acceder directamente a la SD, el USB y WiFi. El acceso a la SD es necesario como mínimo para que el menú pueda mostrar los contenidos de la SD en pantalla, El cartucho tiene una ROM de arranque en flash interna, que accede al FAT32 de la SD, busca el binario del menú y lo carga. Luego, cuando se carga una ROM, el programa menú recopila los sectores de la SD donde se encuentra almacenada la ROM y se los pasa al FPGA para que copie la ROM a la RAM interna por DMA. Imagino que los otros cartuchos lo harán de forma similar. Todo eso del TLB y las direcciones virtuales no influyen en el acceso a la SD porque no se accede mediante direcciones de memoria, si no como block I/O. accedes bloque a bloque (sectores) y los copias donde los necesites. No hay que mapear los gigas y gigas de la tarjeta a direcciones de memoria.

Si la N64 no pudiese acceder a la SD toda esa programación tendría que ejecutarse en el FPGA del cartucho, lo que implicaría implementar una CPU, añadir RAM extra para ejecutar el programa, establecer un protocolo cliente-servidor para que la N64 mostrase en pantalla los resultados de la lectura de la SD generados por esa CPU interna del cartucho.
soukai escribió:Estaba pensando si es técnicamente posible modificar la rom del resident evil 2 para meterle videos, audios e imágenes sin comprimir

Eso seria algo muy complicado y seguramente tambien hay que modificar el firmware del flash card para poder hacer eso, seria mas sencillo una traducción al español y no existe
La verdadera pregunta es si podría contener escenarios animados como los de GC. Eso sería digno de ver en una N64.
Señor Ventura escribió:La verdadera pregunta es si podría contener escenarios animados como los de GC. Eso sería digno de ver en una N64.


¿Te refieres al REmake y RE 0? Porque ahora mismo no caigo en que el RE 2 tenga fondos animados (o si los tiene que no estén presentes en todas las versiones).
radorn escribió:@EMaDeLoC @Falkiño Gracias por confirmar.

EMaDeLoC escribió:
radorn escribió:En cualquier caso, tampoco estamos limitados a esos 240MiB del 64drive, porque técnicamente se podría programar el software de N64 para acceder al sistema de ficheros FAT32 de la tarjeta directamente, y así tener gigas y gigas disponibles si fuera necesario.

Mmm... No sé si eso entraría en conflicto con el TLB que gestiona las direcciones virtuales de la consola y las traduce a direcciones físicas.


Te confirmo que al menos en el 64drive la N64 puede acceder directamente a la SD, el USB y WiFi. El acceso a la SD es necesario como mínimo para que el menú pueda mostrar los contenidos de la SD en pantalla, El cartucho tiene una ROM de arranque en flash interna, que accede al FAT32 de la SD, busca el binario del menú y lo carga. Luego, cuando se carga una ROM, el programa menú recopila los sectores de la SD donde se encuentra almacenada la ROM y se los pasa al FPGA para que copie la ROM a la RAM interna por DMA. Imagino que los otros cartuchos lo harán de forma similar. Todo eso del TLB y las direcciones virtuales no influyen en el acceso a la SD porque no se accede mediante direcciones de memoria, si no como block I/O. accedes bloque a bloque (sectores) y los copias donde los necesites. No hay que mapear los gigas y gigas de la tarjeta a direcciones de memoria.

Si la N64 no pudiese acceder a la SD toda esa programación tendría que ejecutarse en el FPGA del cartucho, lo que implicaría implementar una CPU, añadir RAM extra para ejecutar el programa, establecer un protocolo cliente-servidor para que la N64 mostrase en pantalla los resultados de la lectura de la SD generados por esa CPU interna del cartucho.


A ver, claro que se pueden cargar ROMs desde una SD, lo hacen todos los flashcarts. Pero eso es porque por lo que tú describes, se carga una ROM que se ejecuta desde la flashcart como si fuese un cartucho normal y permite ver el contenido, pero una vez eliges una ROM, esta pasa a ocupar la memoria del cartucho y hace un softreset. A partir de ahí para la consola la SD o cualquier otra cosa del cartucho ya no existen porque no existen en el programa de la ROM.

Y si me confirmas que el 64drive tiene reservados 16MB para que la consola (mediante software) acceda al USB y el Wifi, eso significa que el 64drive esta hecho expresamente para que ciertas direcciónes del cartucho sirvan de acceso a esos periféricos. Es decir, usa la parte de direcciones reservada para el cartucho para acceder a esas partes, a costa de perder acceso a la memoria completa que podría usar.

Eso es diferente a esto:
se podría programar el software de N64 para acceder al sistema de ficheros FAT32 de la tarjeta directamente

Para eso habría que usar más direcciones de memoria de las que están disponibles para acceder al cartucho (siempre y cuando queramos acceder a más de 256MB). Por eso digo que podría entrar en conflicto con el TLB. Necesariamente habría que usar la solución del 64drive, reservar direcciones de memoria de las que ya están reservadas para el cartucho como interfaz o sistema de comandos para la tarjeta SD. Y aún así estos archivos no podrían pasar de cierto límite de tamaño par situarse como memoria del cartucho a la que acceder por direcciones normales. O incluso ser archivos de poco KB para meterlos directamente en la RAM de la consola.

Es decir, no es lo mismo acceder "directamente" que mediante una interfaz.

Aunque es factible técnicamente, me parece más sencillo meter directamente 256MB de ROM y acceder a ella por las direcciones previstas en la consola sin más complicaciones. O como mucho reservar una simple dirección de 16bits para usarla de mapper y cambiar a distintos bancos situados en una memoria aún mayor. Se podría acceder a 65536 x 256MB bancos, un total de 16TB de datos. [+risas]

Pero vamos, 256MB de cartucho da de sobras para muchos juegos.
RiGaL escribió:
Falkiño escribió:Aunque me gustaría que la Analogue 3D tuviera una herramienta similar de serie y así no depender de esto, he pillado el N64 Dumper de AliExpress esta mañana, ya os contaré cuando me llegue. Teóricamente dumpea las ROMs y es capaz de dumpear y de sobreescribir saves, lo cual está bien para dejar las partidas a buen recaudo.

Un saludo!


Casualmente el mío llegó esta semana, pero es el mismo que recomendaron en el hilo de Analogue y no trae carcasa, es la placa a pelo [+risas] . Lo probé con los cartuchos con pila y estos son los archivos que extrae:

CarTest.txt
ROM.FLA
ROM.N64
ROMF.RAM
ROMF.Z64

Entiendo que los .Z64 y .N64 son dos tipos de rom y .FLA y .RAM son los archivos de salvado. ¿.RAM sería el que habría que sobrescribir en el cartucho en el caso de que le cambies la pila? Ya contarás si haces pruebas.

Dentro del CarTest.txt un apartado que no me coincide con el vídeo que sale del tuyo en aliexpress es el CIC, me sale en todos Failed 6105 (o el nº que corresponda) y en el vídeo NTSC 6105, no sé si por ser todos los míos PAL.


Me llegó hoy, a ver si mañana o el finde lo pruebo bien porque tengo tu misma duda ¿Cuál save es el que debo copiar? XD Y cuál se necesita para restaurar un save en cartucho original.

Un saludo!
Digo yo que será FLA porque algunos cartuchos su memoria de guardado era Flash. Pero ya contaréis por aquí que me interesa el tema [beer]
@EMaDeLoC
En el 64drive, para que la N64 pueda mostrar si quiera el contenido de la SD en pantalla, el menú tiene código para leer el sistema de ficheros fat32 de la tarjeta y un protocolo de acceso a la SD mediante esa interfaz a los registros internos para los que se reservan esos 16MB del rango del PI. Esa interfaz no se apaga porque haya una ROM cargada en RAM. No creo que la situación sea muy diferente en los demás cartuchos. Esos 16MiB asignados en exceso (o sea, que no se usa todo el espacio, pero queda ocupado) para la interfaz, aloja uno o varios buffers mediante los cuales se pueden leer en modo bloque los contenidos de la SD en todo momento si el código ejecutandose en la N64 sabe cómo acceder. La N64 pide un LBA para lectura, el FPGA accede a bajo nivel a la SD, lo lee, llena el buffer, y así queda expuesto a la N64 para poderlo leer también. Esto permite a CUALQUIER SOFTWARE corriendo en la N64 leer y escribir a la SD sin limitaciones. Perfectamente puedes tener una ROM cargarda en la RAM dedicada para ello, y que esa ROM tenga código para acceder a la SD en paralelo. No hay limitación ni conflicto ninguno.

Si alguien quisiera, podría hacer "homebrew" de N64 que fuese expandible mediante ficheros en una carpeta en la SD. Y cuando digo homebrew digo también ROMhacks. Igualmente, en el caso del 64drive V2, podría hacerse homebrew y romhacks que usasen el módulo wifi incorporado, al cual el software también puede acceder mediante los registros expuestos a través de ese rango de 16MiB al final de los 256MiB del PI.

Esa interfaz no se cierra porque haya una ROM en memoria. No se cierra en el 64drive y dudo que la situación sea muy diferente con los otros cartuchos.

No te líes con rangos de memoria, TLBs y todo eso. No tienen nada que ver con esto.

Ahora un poco de especulación. El sistema que acabo de describir es un acceso mediante bloques a la tarjeta, y solo ofrece un pequeño buffer en esa interfaz, por lo que los datos tendrían que copiarse a la RDRAM mediante el PI para poder usarse efectivamente. Una vez en RDRAM, la N64 también podría copiarlos a espacio ROM de vuelta dado que es RW, pero esto no es muy eficiente por la relativa lentitud del PI.
No obstante, hay otra posibilidad, aunque no puedo confirmar que sea posible dado que no se lo suficiente sobre el DMA interno entre SD RAM dentro del cartucho. Se que cuando el menú carga una ROM desde la SD, no usa la inferfaz de los 16MiB porque eso implicaría usar la consola para copiar de SD a RDRAM y luego de RDRAM a ROM-RAM ambas veces a través del PI... y eso sería lentísimo y no permitiría cargar ROMs grandes en segundos como de hecho hace. Así que el menú lee la SD a través de la interfaz, y luego indica al FPGA qué bloques copiar de la SD a RAM en modo DMA sin pasar por la N64. Quizá este acceso DMA se pueda usar también para copiar de SD a RAM en cualquier momento. Si fuera así, podría escribirse un programa que use un segmento del rango PI como cache intermedia donde cargar cosas extra desde la SD sin intermediación de la consola.
¿Juegos multidisco de PS1 con cientos de megas de video que serían dificiles aún con los 256MiB del PI (o los 240 que permite el 64drive? ¿Fondos prerenderizados para alta resolución? Con esto serían posibles.
La explicación de como funciona el 64drive es sencillamente perfecta, pero no me has entendido.
Lo que defines es una interfaz, porque la N64 no tiene capacidad por sí misma de conectarse a una SD. El sistema de direcciones del bus no es compatible de forma directa con el sistema de acceso serie de la SD. Por eso por el lado de la consola requiere de un software, la ROM del menú, que aprovechando un rango relativamente pequeño del bus de direcciones, los 16MB, se hagan lecturas o escrituras concretas que el hardware del cartucho, la FPGA, interprete como comandos para realizar las lecturas. Eso es una interfaz, efectivamente, y se usa una interfaz cuando no se puede directamente.
radorn escribió:Esa interfaz no se cierra porque haya una ROM en memoria. No se cierra en el 64drive y dudo que la situación sea muy diferente con los otros cartuchos.

De nuevo, no me has entendido. Si cargas la ROM de un juego original en el 64drive, su código nunca, jamás, fue concebido para acceder a una SD con la interfaz del 64drive. Ni siquiera para usar 256MB de espacio en ROM del 64drive aunque desde el principio la consola y los kits de desarrollo originales lo permitiesen, pero no hubiese capacidad de fabricar esa cantidad de ROM.
Obviamente si se crea homebrew específico que se apoye en hardware específico, se puede hacer de todo. Si hay cartuchos originales capturadores de vídeo y modems. Pero no tienen "acceso directo", usan una interfaz de alguna forma.

radorn escribió:No te líes con rangos de memoria, TLBs y todo eso. No tienen nada que ver con esto.

Sí tiene que ver. Si no se crea una interfaz y se quiere que la consola tenga un acceso directo a la SD, solo dispone de los 256MB de direcciones de memoria del cartucho. Usar más direcciones crea conflictos con el TLB y los rangos de memoria reservados. Aparte de algo de hardware para traducir esas direcciones de memoria en sectores de la SD. Y aún así el espacio al que puede acceder, si no hubiese conflictos, no podría superar los 4GB.

Espero haber aclarado los matices concretos entre acceder directamente y el usar una interfaz.

Ahora sobre tu especulación:
radorn escribió:Ahora un poco de especulación. El sistema que acabo de describir es un acceso mediante bloques a la tarjeta, y solo ofrece un pequeño buffer en esa interfaz, por lo que los datos tendrían que copiarse a la RDRAM mediante el PI para poder usarse efectivamente. Una vez en RDRAM, la N64 también podría copiarlos a espacio ROM de vuelta dado que es RW, pero esto no es muy eficiente por la relativa lentitud del PI.
No obstante, hay otra posibilidad, aunque no puedo confirmar que sea posible dado que no se lo suficiente sobre el DMA interno entre SD RAM dentro del cartucho. Se que cuando el menú carga una ROM desde la SD, no usa la inferfaz de los 16MiB porque eso implicaría usar la consola para copiar de SD a RDRAM y luego de RDRAM a ROM-RAM ambas veces a través del PI... y eso sería lentísimo y no permitiría cargar ROMs grandes en segundos como de hecho hace. Así que el menú lee la SD a través de la interfaz, y luego indica al FPGA qué bloques copiar de la SD a RAM en modo DMA sin pasar por la N64. Quizá este acceso DMA se pueda usar también para copiar de SD a RAM en cualquier momento. Si fuera así, podría escribirse un programa que use un segmento del rango PI como cache intermedia donde cargar cosas extra desde la SD sin intermediación de la consola.
¿Juegos multidisco de PS1 con cientos de megas de video que serían dificiles aún con los 256MiB del PI (o los 240 que permite el 64drive? ¿Fondos prerenderizados para alta resolución? Con esto serían posibles.

Lo poco que he podido ver sobre el funcionamiento del 64drive es el código fuente opensource de un menu para 64drive y SC64, así que no sé si es posible mandarle al 64drive que cargue un archivo concreto en una región concreta de la SRAM para que el código del juego acceda a esos nuevos datos por el PI como si fuese un cartucho normal. Aunque creo que sí sería posible.
Pero sin necesidad de ceñirse al funcionamiento concreto del 64drive, sí sería posible. Así que me venga a la cabeza, se podría dividir los 256MB de acceso directo en bloques de 8 o 16MB, reservar uno o dos para contener el código y assets de uso frecuente o común, y el resto ir cambiando los datos según fuese necesario. La división en bloques debería ser física en el cartucho y con la FPGA haciendo de intermediario entre la consola y la SRAM, con la idea de que el código pudiera acceder a uno de los bloques y mandarle al cartucho mediante interfaz que actualice los datos de otro bloque. Al ser bloques distintos e independientes del PI, la escritura de uno no provocaría retrasos o latencias en el otro.
Esto sería una posible implementación, pero puede haber otras muchas.

Como dices el resultado práctico sería poder almacenar cientos de megas o incluso gigas, pudiendo acceder a videos largos u horas de música en calidad CD.
Sobre los fondos en alta resolución, tenemos el ejemplo práctico del Resident Evil 2 en el que en apenas 30 y pico megas de espacio (el resto estaba reservado para vídeo) había fondos, modelos, texturas, sonidos, música, etc. Por lo que 256MB de vídeo debería ser más que suficiente para centenares de fondos prerenderizados en alta resolución.

Habría que valorar el coste de fabricación del cartucho. Solo con 256MB de capacidad parece ser más que de sobra para añadir mucho contenido. La creación de un cartucho específico que soportase más, o la fabricación de un clon del 64drive, no parece que esté debidamente justificado, especialmente por el coste extra. De hecho, el coste y complejidad de añadir una interfaz para acceder a una SD sería excesivo cuando sería más barato meter una memoria de 512MB, 1GB o más al cartucho y mediante mapper o sistema de bancos cambiar en bloques de 256MB.
@EMaDeLoC Sería interesante que la scene de N64 crease algo como fue el DLDI en tarjetas flash de NDS, de forma que las ROMs homebrew estuviesen compiladas para esa librería, y el cartucho específico parchease el driver binario apropiado para el hardware asegurando acceso a tarjeta SD de forma universal para todos los cartuchos sin que cada desarrollador tuviese que implementar acceso.

Claro, una solución como esa no se presta bien a repros, como indicas.
Aunque, por otro lado, un cartucho repro podría contener cualquier cantidad de flash y el controlador/fpga/cpld manejar el acceso a los primeros 240 (por continuar con el "estándar" del 64drive), y luego habilitar alguna interfaz equiparable para acceder al resto de la flash a través de ella en modo bloques con un sistema de ficheros, o, mas retro, como un bank-switcher (aunque creo que eso sería menos flexible)
Digamos que un cartucho repro de este tipo podría configurarse con una cantidad cualquiera de flash, pongamos 1 GB, y al flashear podría especificarse que tal cantidad sea para PI-ROM y el resto como acceso por bloques mediante la susodicha interfaz

Y si, 256 MiB, o incluso 240 MíB darían para mucho en N64, pero igualmente tener acceso a al sistema de ficheros FAT32 de la tarjeta (alguno usa exFAT o alguna otra cosa?) ofrecería posibilidades interesantes que no funcionan igual de bien con una ROM. Podría servir para guardados, expansiones, parches, contenido de usuario...

EMaDeLoC escribió:radorn escribió:
No te líes con rangos de memoria, TLBs y todo eso. No tienen nada que ver con esto.


Sí tiene que ver. Si no se crea una interfaz y se quiere que la consola tenga un acceso directo a la SD, solo dispone de los 256MB de direcciones de memoria del cartucho. Usar más direcciones crea conflictos con el TLB y los rangos de memoria reservados. Aparte de algo de hardware para traducir esas direcciones de memoria en sectores de la SD. Y aún así el espacio al que puede acceder, si no hubiese conflictos, no podría superar los 4GB.

Espero haber aclarado los matices concretos entre acceder directamente y el usar una interfaz.


Pero qué beneficio tendría tener "acceso directo" mediante direcciones de memoria a una tarjeta SD, si total la SD ya es de por si un dispositivo que funciona por bloques? No acabo de entender tu empeño en esta via. Estarías emulando memoria de acceso aleatorio desde el substrato de una tarjeta SD. No me parece práctico.
@radorn Sería lo suyo que alguien hiciera un cartucho con acceso SD y una librería compatible con el desarrollo. Creo que con el SC64, que está ganando muchísima popularidad, se puede hacer y solo falta que alguien haga la librería.

Pero no sé si sería práctico de cara al desarrollador. La mayoría de flashcarts soportan los 64MB, y son bastante espacio teniendo en cuenta la mayoría de trucos y optimizaciones sencillas para aprovechar el espacio que hay hoy en día. Además que más contenido creado conlleva más trabajo. Más de 64MB sería necesario para FMV o diálogos en audio muy largos en duración, pero si se quisiera seguir el espíritu de los juegos originales, pues cinemática y textos. Para un desarrollador que lo hace por ocio, apuntar al máximo de 64MB sin necesidad de desarrollar hardware nuevo o complicarse con accesos a SD sería lo más práctico y menos costoso.

Lo veo realmente práctico y necesario si se hicieran ports completos de juegos decompilados de PS1 y Saturn y se quisiera trasladar todo el contenido, especialmente el audioCD y los FMV.

radorn escribió:Pero qué beneficio tendría tener "acceso directo" mediante direcciones de memoria a una tarjeta SD, si total la SD ya es de por si un dispositivo que funciona por bloques? No acabo de entender tu empeño en esta via. Estarías emulando memoria de acceso aleatorio desde el substrato de una tarjeta SD. No me parece práctico.

No me estooy empeñando en hacerlo por esa vía, de hecho estoy diciendo que no es posible por los conflictos con el TLB y las direcciones de memoria reservadas de la máquina. Lo he introducido para dejar clara la diferencia entre "acceso directo a la SD" y usar una interfaz como la de 64drive. La consola no puede hacer acceso directo, hay que crear un conjunto de interfaz coordinado entre el software ejecutado en la N64, su comunicación con el flashcart y un hardware que acceda a la SD.
@EMaDeLoC Bueno, parece que interpretas que "acceso directo" a la SD significa necesariamente mapearlo como memoria y consideras que el acceso por bloques no es directo, pero si lo piensas, así se accede a todo disco habido y por haber en un ordenador convencional: funcionan mediante acceso por bloques, y acceder a ellos así no es "indirecto". De hecho, para acceder a disco mediante un mapa de memoria, se necesitaría una interfaz de traducción de protocolo mediante hardware, lo cual me parece mucho mas indirecto que crear una interfaz de acceso por bloques a un dispositivo que funciona nativamente por bloques (LBAs)

Fuiste tu el que se empeñó en esta via del acceso como memoria y de ahí viene preocuparse por TLBs y todo eso. Pero es que no tiene sentido hacerlo así. Es un desperdicio del mapa de memoria, un aumento de la complejidad del hardware, y tampoco ganarías nada de rendimiento. Esa interfaz que tu pareces considerar "indirecta" es la solución optima para acceder a una tarjeta SD o cualquier otro almancenamiento por bloques LBA (Logical BLOCK Address), que además facilita el uso de grandes tamaños.

Estoy de acuerdo donde dices que llenarlos de contenido es otra cantar, pero ya de puestos a soñar, a mi me gustaría un motor de juego que aceptase añadir contenidos como puedan ser niveles nuevos simplemente copiando unos pocos ficheros en una carpeta en vez de parchear ROMs y tener otra ROM mas aparte solo por uno o dos niveles nuevos. También está el tema de un sistema de guardados mas generoso y flexible. Muy superior a lo que permiten EEPROMs, S-RAMs, o FlashRAMs en cartucho o el escuálido Controller Pak, y andar lidiando con el engorro de administrarlos con herramientas especializadas y copias de respaldo y todo eso, cuando podrías simplemente tener una carpeta dedicada en la tarjeta SD.
6327 respuestas
1123, 124, 125, 126, 127