NESIZM es un emulador del sistema de entretenimiento de Nintendo para la serie Casio Prizm de calculadoras gráficas. Actualmente es compatible con las calculadoras FX-CG10, FX-CG20, FX-CG50 y Graph 90+ E Casio. Nesizm fue construido desde cero con el rendimiento en mente, al tiempo que mantiene la emulación y la compatibilidad precisas siempre que sea posible con el almacenamiento en caché inteligente, la alineación forzada y el ensamblaje escrito a mano cuando sea necesario. Ejecuta la mayoría de los títulos a 60 fps sin overclocking en el FX-CG50.
Este proyecto tiene sus raíces en mi interés en la tecnología de desarrollo temprano del juego, así como los beneficios inherentes del Prizm como plataforma. Hay una gran base de instalación de jugadores que ahora pueden jugar NES durante muchas horas de duración de la batería con un retraso de entrada de 0 de teclado a otro.
Copie el archivo nesizm.g3a (o nesizm_cg10.g3a si tiene un FX-CG10) en la ruta raíz de su calculadora Casio cuando se vincula a través de USB. NES ROMS (.NES) también debe entrar en el directorio de la raíz. Mantenga los nombres de archivo para estos archivos deben ser simples y menos de 32 caracteres, como mygame.nes. El emulador admite el formato ROM NES 2.0, pero no lo he probado ampliamente.
En el sistema de menú, use las teclas de flecha y cambie o ingrese para seleccionar. También puede usar Alpha para salir rápidamente de un submenú. La ayuda para la opción seleccionada actual está en la parte superior derecha.
Cuando esté dentro de un juego, la tecla de menú saldrá a la pantalla Configuración, y el menú de presentación nuevamente lo llevará de regreso al sistema operativo de la calculadora.
Puede configurar sus propias claves en el menú Configuración, estas son los predeterminados que encontré que funciona bien:
Tenga en cuenta que si establece la configuración de turbo en 30 Hz, esto puede ser demasiado rápido para que algunos juegos los hacen mal funcionamiento.
Si desea jugar con un segundo controlador, se puede asignar a otros botones en la calculadora utilizando la opción de botones de reasignación en opciones-> controles. Sin embargo, esto es muy engorroso, por lo que, por defecto, el jugador 2 no está asignado a ningún botón.
Se admite un solo estado de guardado por ROM, que se puede cargar/guardar utilizando las claves retrables mencionadas en la sección Controles. Estos predeterminados a las teclas 'S' y 'L' en la calculadora. El archivo Guard State se guardará en su almacenamiento principal con la extensión .fcs.
Estos estados de guardado generalmente son intercompatibles con FCEUX, el popular emulador de PC NES. Sin embargo, de forma predeterminada, FCEUX permite la compresión en sus estados de guardado al guardar, por lo que para transportar un estado de guardado a su calculadora, debe deshabilitar la compresión de estado Guardar en FCEUX.
Si una ROM usa una función respaldada por la batería, como Legend of Zelda, esta memoria se guardará automáticamente cuando regrese al menú principal con el botón Menú. Tenga en cuenta que el uso de estados de guardado sobrescribirá completamente los datos respaldados por la batería.
La opción de estiramiento de la pantalla utiliza la alta tasa de actualización de la pantalla para entrelazar la señal, que es muy similar a la antigüedad de los televisores entrelazados. Esto funciona con la pantalla de color TFT, que tiene una ligera latencia de color en el Prizm, para ser muy difícil de notar. Si establece la opción de estiramiento en 4: 3, coincidirá muy con las proporciones destinadas a los juegos originales. Sin embargo, requiere un FPS alto. Por lo tanto, las imágenes del emulador comenzarán a verse captanía si tienes un conjunto de opciones de parque de marcos muy alto. En general, establecer sus opciones en un conjunto de marcos muy alto debe ser innecesario. La duración de la batería de la calculadora no parece ser muy afectada por el omisión del marco.
Se incluyen 3 paletas para elegir. Todos se sienten un poco diferentes, así que elija el que crea que es el mejor. No hay un verdadero color correcto para el NES en muchos aspectos, ya que los televisores de la época podrían interpretar la señal del NES de manera ligeramente diferente. Una vez que seleccione una paleta, puede ajustar el brillo (a un nivel muy bajo si está en un entorno oscuro) y las cantidades de saturación de color. Tenga en cuenta que aumentar el brillo solo aumentará el brillo relativo de los colores utilizados, no el brillo de su pantalla.
Si está tan inclinado, se puede usar una paleta personalizada. Hay 192 archivos de paleta de bytes que puede encontrar buscando fácilmente en línea. Cambie el nombre de su paleta deseada a "Custom.pal" e incluya en el directorio raíz de su almacenamiento de archivos. Debe ser seleccionable como la opción de la cuarta paleta en este punto.
4 opciones de fondo están disponibles. El fondo 'Warp' coincide con el menú principal. El fondo de TV proporciona un fondo de televisión antiguo nostálgico, particularmente en los modos de estiramiento de pantalla más pequeños. La opción Game BG Color coincidirá con el color de la paleta de fondo del juego seleccionado actualmente. El uso de esto varía por juego, pero funciona bien en algunos, como las selecciones de fondo azul/negro en Super Mario Bros.
Opcionalmente, se puede mostrar un reloj en el juego en la esquina inferior derecha de la pantalla si necesita realizar un seguimiento del tiempo. Sin embargo, requiere configuración, ya que el reloj no se usa comúnmente en el sistema operativo de la calculadora. Establezca su reloj con una aplicación de terceros, como G-Clock o también dentro de la excelente aplicación de utilidades de GBL08MA.
FPS también se puede mostrar en esta esquina de la pantalla. Tenga en cuenta que esto es simplemente los marcos dibujados en un segundo dado, no los marcos omitidos. Entonces, si esto dice que 40 fps y su opción de omisión de marco se establece en automóvil, el emulador todavía se ejecuta a una velocidad 100%, pero se omite cada tercer cuadro al dibujar a la pantalla para guardar el procesamiento.
El emulador admite casi todos los juegos con un mapeador compatible sin problemas. Si te encuentras con un juego con problemas realmente significativos, hágamelo saber.
Aquí está la tabla de soporte mapeador. El emulador admite casi todos los mapeadores NTSC y PAL de EE. UU., Excluyendo MMC5, que cubre el 98% de los juegos lanzados comercialmente en esas regiones. El disco Famicom y el soporte del sistema VS no se planifica.
Nombre de mapeador | Editor | Nombre | Editor | Nombre | Editor |
---|---|---|---|---|---|
MMC1 | Nintendo | Axom | Nintendo | Nanjing 163 | Nanjing |
MMC2 | Nintendo | Gxrom | Nintendo | Sunsoft 3 | Sunsoft |
MMC3 | Nintendo | Bnrom | Nintendo | Sunsoft 4 | Sunsoft |
MMC4 | Nintendo | Nulo / nrom | Varios | Sunsoft 5 | Sunsoft |
MMC6 | Nintendo | Sueños de color | Sueños de color | Rambo-1 | Tenna |
Cnrom | Nintendo | Nina-03/06 | CRA | Nina-1 | Irem |
Desencadenar | Nintendo | Camerica | Sí | JF-11/14 | Jaleco |
Aquí se puede encontrar una tabla completa de roms y mapeadores, pero no la mantengo completamente actualizada: https://docs.google.com/speadsheets/d/1tfgiu6Dodagvizsmy3flpsmzvifkiYsoxi9uwl-rlry/edit?usp=inginging
Las ROM PAL funcionan a una velocidad de cuadro diferente de 50 Hz en comparación con los juegos de los EE. UU. Y Japón (NTSC) que funcionan a 60 Hz. Esto, además de algunas otras diferencias de tiempo, significa que deben emularse de manera diferente. Desafortunadamente, la mayoría de los archivos ROM para juegos PAL no se identifican con precisión como una emulación de PAL. Con Nesizm, puedes ejecutar correctamente un juego de PAL incluyendo (e) o pal (todos los límites) en el nombre de archivo ROM, como GamePal.Nes
Los códigos de genio del juego se admiten a través de un archivo separado por juego. Si tiene un archivo de texto con el nombre del archivo "GameName.gg" donde GameName coincide con su archivo ROM menos la extensión NES, con códigos de genio del juego separados por línea, el emulador se cargará y usará esos códigos cuando se cargue la ROM. Se le presentará un diálogo en el menú cuando esto suceda con éxito. Recomiendo la aplicación Utilidades de GBL08MA si desea editar códigos manualmente utilizando un editor de texto en la calculadora. Puede encontrar eso en https://github.com/gbl08ma/utilidades
Si tiene un archivo txt con el mismo nombre que su archivo ROM, será visible mientras el juego se cargue en el visor de preguntas frecuentes a través del menú principal. El espectador de las preguntas frecuentes recordará su posición anterior mientras juega. Navegue por las preguntas frecuentes con las teclas de flecha, su posición se muestra a través de la barra de desplazamiento a la derecha. También puede saltar a través de incrementos del 10% del archivo con las teclas 0-9.
El emulador tiene soporte completo para el sonido. El sonido es un algoritmo fino para el sonido de 1 bits que se ajusta más de 500,000 veces por segundo. Desafortunadamente, las rutinas de sonido ralentizarán la emulación en aproximadamente un 20%, pero con el marco omite esto no es tan malo. También puede usar una utilidad como PTUNE3 para overclockear su CG50 para obtener 60 fps con sonido, pero no lo recomiendo ya que es un drenaje de la batería. Habilitarlo en el menú de sonido en las opciones. Para usarlo, necesitará un adaptador de 2.5 mm (hombre) a 3.5 mm (hembra). Estos se pueden encontrar por un par de dólares en varios proveedores en línea, ¡no se necesita nada elegante! También recomiendo a los auriculares sobre la oreja para disfrutar de la señal de sonido.
Una opción de calidad adicional está disponible que es más subjetiva. La opción de calidad disminuirá los generadores de ondas de triángulo y ruido en función del generador DMC al igual que el NES original, y agrega un filtro de paso bajo extra para evitar cambios rápidos. Sin embargo, en la práctica con un sonido de un bit, no parece ser enormemente importante.
Se requiere que mi otro repositorio, Prizmsdk, cree NESIZM a partir de la fuente. Ponga su clon Nesizm en el directorio de proyectos SDK.
Para construir en una máquina de Windows, recomiendo usar los archivos del proyecto utilizando Visual Studio Community Edition, donde tengo muy bien configurado. Para otros sistemas, consulte su documentación de SDK Prizm sobre cómo compilar proyectos. Consulte las opciones de configuración en Make-Devicerelease.bat.
Si usa Visual Studio, se incluye un proyecto que usa un simulador de Windows que escribí que envuelva funciones PRIZM OS para que el código y el emulador puedan probarse e iterarse fácilmente dentro de Visual Studio. Consulte el código Prizmsim.cpp/H para obtener detalles sobre su uso.
El Nesdev Wiki, encontrado en http://wiki.nesdev.com/ fue increíblemente útil en el desarrollo de Nesizm. Mi sincera gratitud a la comunidad de desarrolladores de emuladores que recopilaron toda la información que necesitaba para escribir un emulador en un solo lugar.
Fceux, encontrado en http://www.fceux.com, proporcionó excelentes herramientas de depuración que me permitieron comparar y contrastar mi estado de emulador fácilmente para los juegos que tenían problemas de compatibilidad. ¡Muéstreles un poco de amor usando su emulador en PC!
Criter de Ti-Planet.org por sus excelentes escritos sobre Nesizm y para la comunidad general de Casio. ¡Su emoción es infecciosa!