lunes, 22 de julio de 2019

64Inject 1.4 beta

Ya está disponible 64Inject 1.4


Esta versión tiene los siguientes cambios:
- Mejoras de usabilidad, el modo gráfico guarda la carpeta de salida. Ahora la clave común no es sensible a mayúsculas.
- Cuando se produce un error de inyección, se le indica al usuario que busque más información en el archivo log.
- Otras correcciones menores.



DSInject 1.0 beta

DSInject es un programa que permite inyectar juegos de NDS en la Wii U VC. Enfocado en agilizar el testeo de diferentes combinaciones de ROM y juego base de Wii U VC.

Descargar

Características
- Dos modos de uso, gráfico y por comandos.
- Configura la disposición de visualización (layout) de las dos pantallas de la NDS en las dos pantallas de la Wii U. (En desarrollo).
- Soporte para formatos de ROM *.nds y *.srl
- Soporte de imágenes *.png, *.jpg y *.bmp
- El Title ID refleja si has usado la misma combinación de ROM y juego base de Wii U VC.
- Opción para cifrar el resultado (formato WUPInstaller) o dejarlo descifrado (formato Loadiine).
- Define carpetas para tu colección de ROM, galería de imágenes y layouts de visualización.
- Usa juegos de Wii U VC cifrados o descifrados como base.
- Múltiples opciones mediante la ventana de comandos, puedes definir cada cosa o simplemente una carpeta entrada y una carpeta de salida, o combinar (mira los ejemplos).

Uso en modo gráfico

La primera vez que abras DSInject ve a la pestaña de configuración, define las carpetas de tus colecciones, ingresa la Common Key de Wii U y selecciona un juego de NDS de la Wii U VC que previamente tengas para usar como base.


Una vez se haya cargado correctamente la base ve a la pestaña principal.

Da clic en el respectivo botón de la derecha y selecciona la ROM de NDS.

Ingresa un nombre y si deseas ingresa también un nombre de dos líneas.

Modifica la disposición de visualización (layout) de las dos pantallas de la NDS en las dos pantallas de la Wii U. (En desarrollo).

Si no quieres usar las imágenes por defecto cámbialas con los respectivos botones.

Elige si quieres empacar (cifrar) o no el resultado.

Da clic en el botón de inyectar, selecciona la carpeta de salida y espera a que se realice el proceso. El programa te avisara si la inyección fue exitosa o su hubo algún problema.


Sólo es necesario ingresar una vez la Common Key de Wii U y quedara guardada. Es necesaria si quieres cifrar o descifrar contenido NUS.

Mensajes de advertencia

Están contemplados dos mensajes de advertencia, cuando se inicia DSInject.
Uno ocurre cuando no se detecta instalado Java el cual es necesario para ejecutar tanto NUSPacker como JNUSTool.


El segundo ocurre cuando no se detectan NUSPacker o JNUSTool. DSInject funcionará, aunque no estén presentes estas herramientas, pero no podrá descifrar o cifrar contenido NUS, si se le solicita descifrar un juego base cifrado simplemente lo detectara como invalido, si se le solicita cifrar el resultado realizara la inyección en el juego base pero no podrá concluir el proceso lanzando un mensaje de inyección fallida.


Recuerda nunca instalar un juego en la NAND de la consola ya que siempre existe el riesgo de un brick.

Descargo de responsabilidad

Las herramientas empaquetadas con esta aplicación pertenecen a sus respectivos desarrolladores.

Créditos


jueves, 11 de julio de 2019

64Inject 1.3 beta

Ya está disponible 64Inject 1.3


Esta versión tiene los siguientes cambios:
- Por defecto, crea un archivo log (tanto en modo CMD como en modo GUI) con los mensajes del proceso de inyección de la línea de comandos.
- Correcciones menores.

jueves, 16 de mayo de 2019

64Inject 1.2 beta

Ya está disponible 64Inject 1.2


Esta versión tiene los siguientes cambios:
- Cambia la disposición de algunos elementos de la GUI.
- Cambia la forma de calcular el Title ID.
- Correcciones menores y mejora en la estabilidad.

lunes, 22 de abril de 2019

64Inject 1.1.1 beta


Ya está disponible el código fuente de 64Inject en GitHub.


Esta versión tiene los siguientes cambios:
- Cambio de versión de .Net Framework de 2.0 a 3.5.
- Corrige un error que provocó que los argumentos no se compilaran correctamente desde la línea de comandos.
- Muestra más mensajes en el proceso de inyección en la línea de comando para detectar problemas.
- Corrige un error que impedía empaquetar contenido NUS sin una base cargada.

lunes, 8 de abril de 2019

64Inject 1.0 beta

64Inject es un programa que permite inyectar juegos de N64 en la Wii U VC. Enfocado en agilizar el testeo de diferentes combinaciones de ROM, archivo INI de configuración y juego base de Wii U VC.

Descargar

Características
- Dos modos de uso, gráfico y por comandos.
- Configuración del filtro obscuro, la relación de aspecto y la escala de la imagen del juego.
- Soporte para formatos de ROM *.z64, *.n64, *.v64 y *.u64
- Simplifica la incorporación del archivo INI de configuración para el juego.
- Soporte de imágenes *.png, *.jpg y *.bmp
- El Title ID refleja si has usado la misma combinación de ROM, INI y juego base de Wii U VC.
- Opción para cifrar el resultado (formato WUPInstaller) o dejarlo descifrado (formato Loadiine).
- Define carpetas para tu colección de ROM, archivos INI y galería de imágenes.
- Usa juegos de Wii U VC cifrados o descifrados como base.
- Múltiples opciones mediante la ventana de comandos, puedes definir cada cosa o simplemente una carpeta entrada y una carpeta de salida, o combinar (mira los ejemplos).

Uso en modo gráfico

La primera vez que abras 64Inject ve a la pestaña de configuración, define las carpetas de tus colecciones, ingresa la Common Key de Wii U y selecciona un juego de N64 de la Wii U VC que previamente tengas para usar como base.


Una vez se haya cargado correctamente la base ve a la pestaña principal.

Da clic en el respectivo botón de la derecha y selecciona la ROM de N64 y el archivo INI.

Ingresa un nombre y si deseas ingresa también un nombre de dos líneas.

Modifica el diseño del juego (Dark filter, Widescreen y/o Zoom).

Si no quieres usar las imágenes por defecto cámbialas con los respectivos botones.

Elige si quieres empacar (cifrar) o no el resultado.

Da clic en el botón de inyectar, selecciona la carpeta de salida y espera a que se realice el proceso. El programa te avisara si la inyección fue exitosa o su hubo algún problema.


Sólo es necesario ingresar una vez la Common Key de Wii U y quedara guardada. Es necesaria si quieres cifrar o descifrar contenido NUS.

Mensajes de advertencia

Están contemplados dos mensajes de advertencia, cuando se inicia 64Inject.
Uno ocurre cuando no se detecta instalado Java el cual es necesario para ejecutar tanto NUSPacker como JNUSTool.


El segundo ocurre cuando no se detectan NUSPacker o JNUSTool. 64Inject funcionará, aunque no estén presentes estas herramientas, pero no podrá descifrar o cifrar contenido NUS, si se le solicita descifrar un juego base cifrado simplemente lo detectara como invalido, si se le solicita cifrar el resultado realizara la inyección en el juego base pero no podrá concluir el proceso lanzando un mensaje de inyección fallida.


Recuerda nunca instalar un juego en la NAND de la consola ya que siempre existe el riesgo de un brick.

Descargo de responsabilidad

Las herramientas empaquetadas con esta aplicación pertenecen a sus respectivos desarrolladores.

Créditos


sábado, 2 de febrero de 2019

El mito de las consolas de 128 bits

En el salto de la tercera a la cuarta generación de consolas de videojuegos se habló del paso de los 8 bits a los 16 bits. De forma similar sucedió con el paso de la cuarta a la quinta generación, dando el salto de los 16 bits a los 32 bits. Diversa publicidad hizo alusión a esto para indicar un incremento de poder en dichas máquinas y con esto en mente llego la Atari Jaguar que poseía una "potencia" de 64 bits (que en realidad era de la suma de bits de sus dos microprocesadores, "Tom" para gráficos y "Jerry" para audio, de 32 bits cada uno), más tarde llego la Nintendo 64 que, como bien indica, su principal característica era su microprocesador de 64 bits.

Es cuando se empieza a hablar de las maquinas sucesoras a la quinta generación, la sexta generación, donde nace la idea de las consolas de 128 bits, obviamente por duplicar el "poder" de los 64 bits.

Pero ¿qué hace a una consola ser de determinados bits?

Respuesta larga:

Sus componentes electrónicos, procesadores generales, procesadores gráficos, procesadores de audio, cada uno con sus propios registros y diversos bus de comunicación, así como memorias ROM, RAM, EEPROM, NAND, etc. que contienen celdas de cierto tamaño que deben ser direccionadas para poder ser leídas y/o escritas. Considerando el número de bits tanto de ancho de bus como de tamaño de los registros, tamaño de las celdas de memoria y tamaño de los tipos de dato de los diversos microprocesadores.

Respuesta corta: Su microprocesador principal.

Ahora ¿qué hace a un microprocesador ser de determinados bits?

Respuesta corta: El tamaño del tipo de dato entero.

Respuesta larga:

A muy grandes rasgos un microprocesador realiza operaciones algebraicas con dos tipos de datos, enteros y de punto flotante, algunos microprocesadores usan diferentes tamaños de bits según el tipo de dato y algunos usan una técnica llamada SIMD (una instrucción, múltiples datos, por sus siglas en inglés), en la cual, por ejemplo, si quieres sumar cuatro enteros de 16 bits con otros cuatro enteros de 16 bits los "justas" formando dos datos de 64 bits los cuales sumas y colocas el resultado de 64 bits en un registro denominado SIMD vector.

Si bien existen otras características (como el ancho del bus de direcciones, el ancho del bus de datos, el tamaño del registro para almacenar direcciones de la memoria principal, etc.) que también tienen su propio tamaño de bits, no determinan la precisión de las operaciones algebraicas, más bien afectan la velocidad de procesamiento y la cantidad de memoria que puede direccionar el microprocesador.

En consecuencia, tenemos al menos tres características (tamaño del tipo de dato entero, tamaño del tipo de dato de punto flotante y tamaño del SIMD vector) que determinan con cuantos bits opera algebraicamente un microprocesador.

Sabiendo lo anterior y discriminando otros componentes (microprocesadores secundarios, microprocesadores gráficos, microprocesadores de audio, etc.) revisemos los microprocesadores principales de algunas consolas.

Consola Microprocesador Entero (bits) Flotante (bits) SIMD vector (bits)
Magnavox Odyssey² Intel 8048 8 - -
ColecoVision Zilog Z80 8 - -
Intellivision CP1600 10 - -
TurboGrafx-16 HuC6280A (WDC 65C02) 8 - -
Neo Geo Motorola 68000 16 - -
Atari 2600 MOS 6507 8 - -
Atari 5200 MOS 6502 8 - -
Atari 7800 Atari SALLY 6502 (MOS 6502) 8 - -
Atari Jaguar Motorola 68000 16 - -
Sega SG-1000 NEC 780C (Zilog Z80) 8 - -
Sega Master System Zilog Z80 8 - -
Sega Genesis Motorola 68000 16 - -
Sega Saturn Hitachi SH-2 (x2) 32 32 -
Sega Dreamcast Hitachi SH-4 32 64 -
Xbox Intel Pentium III/Celeron (Coppermine-based) 32 64 128
Xbox 360 Xenon (PowerPC 970) 64 64 128
Xbox One Durango (AMD Jaguar) 64 64 128
Xbox One X Scorpio (AMD Jaguar) 64 64 128
PlayStation MIPS R3000 32 32 -
PlayStation 2 Emotion Engine (MIPS R5900) 64 32 128
PlayStation 3 Cell Broadband Engine (PowerPC 970) 64 64 128
PlayStation 4 Liverpool (AMD Jaguar) 64 64 128
PlayStation 4 Pro Neo (AMD Jaguar) 64 64 128
NES Ricoh 2A03 (MOS 6502) 8 - -
SNES Ricoh 5A22 (WDC 65C816) 16 - -
Nintendo 64 NEC VR4300 (MIPS R4300i) 64 64 -
GameCube Gekko (PowerPC 750CXe) 32 64 64
Wii Broadway (PowerPC 750CL) 32 64 64
Wii U Espresso (PowerPC 750CL) 32 64 64
Nintendo Switch Tegra X1 (x4 Cortex-A57 + x4 Cortex-A53) 64 64 128

Si consideramos sólo el microprocesador principal, consolas como la TurboGrafx-16 o como la Atari Jaguar pierden mucho de su "poder", ya que su "conteo de bits" reside en chips secundarios. Pero podemos decir que la TurboGrafx-16 es una consola de 16 bits con corazón de 8 bits y que la Atari Jaguar es una consola de 32 bits (x2) con corazón de 16 bits.

Llegados a este punto es más que evidente que la cantidad de bits no representa la "potencia" de una consola. Pero si es así ¿por qué es relevante? y además ¿por qué no se comercializan computadoras o consolas de videojuegos mayores a 64 bits?

Queremos muchos bits, pero tampoco necesitamos tantos.

El principal motivo para usar más bits es el trabajar con una mayor diversidad de valores en una sola operación. Por ejemplo, con 8 bits puedes representar números del 0 al 255. Si quisieras sumar 1,000 más 723 en un procesador de 8 bits tendrías que "partir" esa suma en dos operaciones para obtener el resultado. Y si quisieras sumar 1,000,000,000 más 723,469,085 en un procesador de 8 bits tendrías que "partir" esa suma en cuatro operaciones para obtener el resultado. Además, a mayor cantidad de bits mayor cantidad de celdas de memoria es capaz de usar directamente el microprocesador.

Con 16 bits puedes representar números del 0 al 65,535 y puedes direccionar 64 kibibytes de memoria.

Con 32 bits puedes representar números del 0 al 4,294,967,295 y puedes direccionar 4 gibibytes de memoria.

Con 64 bits puedes representar números del 0 al 18,446,744,073,709,551,615 y puedes direccionar 16 exbibytes de memoria.

Con 128 bits puedes representar números del 0 al 340,282,366,920,938,463,463,374,607,431,768,211,455 y puedes direccionar 281,474,976,710,656 yobibytes de memoria.

Si bien la técnica SIMD trabaja con 128 bits en realidad esto no representa un valor de 128 bits, sino dos valores de 64 bits o cuatro valores de 32 bits unidos para ser manipulados en paralelo.

En la práctica rara vez es necesario ocupar valores tan grandes como los disponibles para 64 bits y mucho menos como los disponibles para 128 bits.

Por ejemplo, la superficie del planeta tierra (incluidos océanos, mares, lagos, etc.) medida en milímetros cuadrados es aproximadamente de 510,072,000,000,000 (un valor que se puede representar con 49 bits).

Otro ejemplo, la edad aproximada del universo es de 13,800,000,000 de años. 18,446,744,073,709,551,615 segundos equivalen aproximadamente a 584,942,417,355 años, más de 42 veces la edad del universo.

En conclusión

Las consolas de 128 bits, 256 bits, 512 bits, 1024 bits… son sólo un mito.

Y los sistemas que en verdad son de determinados bits, en base a sus características técnicas en conjunto, sólo llegan a 64 bits por que cubren, sobradamente, las necesidades de programación en general.

jueves, 31 de enero de 2019

Especificaciones técnicas de sistemas de sobremesa de Nintendo

Sistemas de sobremesa de Nintendo y sus revisiones


Famicom - HVC-001 (1983)
AV Famicom - HVC-101 (1993)
NES - NES-001 (1985)
NES Top Loader - NES-101 (1993)
Super Famicom - SHVC-001 (1990)
Super Famicom Jr. - SHVC-101 (1998)
Super NES - SNS-001 (1991)
Super NES Jr. - SNS-101 (1997)
Nintendo 64 - NUS-001 (1996)
Nintendo 64 Pikachu - NUS-101 (2000)
GameCube - DOL-001 (2001)
GameCube (Lack Digital AV Out) - DOL-101 (2004)
Wii - RVL-001 (2006)
Wii Family Edition - RVL-101 (2011)
Wii Mini - RVL-201 (2012)
Wii U (8GB) - WUP-001 (2012)
Wii U (32GB) - WUP-101 (2012)
Nintendo Switch - HAC-001 (2017)
NES Classic Edition - CVL-001 (2016)
Famicom Classic Edition - CVL-101 (2016)
Super NES Classic Edition - CVL-201 (2017)
Super Famicom Classic Edition - CVL-301 (2017)

Sistemas portatiles de Nintendo y sus revisiones


Game Boy - DMG-01 (1989)
Game Boy Pocket - MGB-001 (1996)
Game Boy Light - MGB-101 (1998)
Game Boy Color - CGB-001 (1998)
Game Boy Advance - AGB-001 (2001)
Game Boy Advance SP (Frontlit) - AGS-001 (2003)
Game Boy Advance SP (Backlit) - AGS-101 (2005)
Game Boy Micro - OXY-001 (2006)
Nintendo DS - NTR-001 (2004)
Nintendo DS Lite - USG-001 (2006)
Nintendo DSi - TWL-001 (2008)
Nintendo DSi XL - UTL-001 (2009)
Nintendo 3DS - CTR-001 (2011)
Nintendo 3DS XL - SPR-001 (2012)
Nintendo 2DS - FTR-001 (2013)
New Nintendo 3DS - KTR-001 (2014)
New Nintendo 3DS XL - RED-001 (2014)
New Nintendo 2DS XL - JAN-001 (2017)
Virtual Boy - VUE-001 (1995)
Pokémon Pikachu - MPG-001 (1998)
Pokémon Pikachu 2 GS - MPG-002 (1999)
Pokémon Mini - MIN-001 (2001)
Pokéwalker - NTR-032 (2009)