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)

miércoles, 2 de enero de 2019

Pokémon Interdimensional Trade - Avances del primer año

Hace ya más de un año que inicie el proyecto "Pokémon Interdimensional Trade" no sé cómo calificar los avances del mismo. Por un lado, la parte de programación para realizar la conversión entre un Pokémon de segunda generación a uno de tercera generación ya está más que superado (explicaré en detalle este punto en un post futuro). Por otro lado, la comunicación con el hardware de la Game Boy también ya está hecho, soy capaz de extraer e insertar Pokémon por cable link conectado al microcontrolador conectado a PC. El obstáculo por superar es la comunicación con el Game Boy Advance, ya he conseguido los datos que intercambian dos GBA al comunicarse entre sí para realizar transferencias de Pokémon, el punto que falta es implementar el protocolo en el microcontrolador.
En la foto esta la protoboard que estoy usando para hacer las pruebas. Para conectar los cables de GB y GBA desoldé unos conectores de un par de consolas ya descompuestas. Estoy usando un microcontrolador PIC16F887 pero pretendo cambiarlo por un microcontrolador más potente, y lo estoy conectando atreves de un MAX232 a un adaptador RS232 a USB pero cuando cambie el microcontrolador la comunicación será directa por USB. Para la comunicación con el GBA uso un regulador de voltaje LM317 con un arreglo de resistencias para bajar el voltaje de 5v a 3.3v que alimentan unos diodos 2N7002 que convierten las señales de 3.3v a 5v y viceversa.

jueves, 1 de febrero de 2018

Antecedentes de Pokémon Interdimensional Trade (PKIDT)

Desde que salieron a la venta los juegos Pokémon Ruby y Pokémon Sapphire existe la inquietud por parte de los seguidores de la saga en transferir sus Pokémon de los juegos de la primera y segunda generación a generaciones más recientes. A través de los años han surgido métodos enredados para conseguir en gran medida este objetivo.

Lo primero en surgir fueron los dispositivos que permiten leer la memoria ROM así como leer y sobrescribir la memoria SRAM de los cartuchos de Game Boy y Game Boy Color, como el GB Transferer y el GB Xchanger (o más reciente el Cart Flasher de J.Rodrigo). Los usuarios de estos dispositivos pueden extraer el archivo de guardado de sus juegos originales sin embargo necesitan un programa que les permita tratar dicho archivo de guardado pues la estructura de datos de los Pokémon de primera y segunda generación es significativamente diferente a la estructura de datos de los Pokémon de tercera generación.

Desentrañar la estructura de datos de los Pokémon de tercera generación fue el siguiente paso. Usuarios como GuyPerfect y Metropolis aportaron datos, ideas y herramientas que en justa medida permiten actualmente editar y convertir las estructuras de datos de las tres primeras generaciones de Pokémon.

PKHeX de Kaphotics es actualmente la herramienta casi definitiva para editar y convertir la estructura de datos de cualquier Pokémon a partir de un archivo de guardado de cualquier generación.

Estos dispositivos y programas han desembocado en tutoriales como el de DoktorGilda, el de Lewis Lovhaug o el de da1barker. Para quienes deseen llevar sus Pokémon de la vieja escuela a generaciones más actuales.

Debo señalar también los experimentos con el sistema de intercambio de la primera generación de cartuchos de Pokémon de los programadores Adan y Pepijn de Vos, estos experimentos les han permitido insertar Pokémon desde una computadora a cartuchos originales vía cable link a través de un microcontrolador (o incluso realizar intercámbios y batallas a través de Internet).

Otro desarrollador es obskyr el cual planteo la Lanette's Time Capsule (en alusión a la capsula del tiempo de Bill de la segunda generación), un dispositivo que permitiría intercambiar Pokémon entre la segunda y la tercera generación.

La solución oficial.

Olvidarse de los cartuchos de la primera y segunda generación, y conseguir los relanzamientos de los juegos en la Consola Virtual de Nintendo 3DS.


Como nota adicional. Recientemente en Japón se ha lanzado la campaña Pokémon Rescue en la cual te invitan a recuperar los Pokémon de la tercera generación a través de las respectivas transferencias hasta llegar a los juegos más recientes de la saga.

Fuentes:

https://digiex.net/threads/how-to-backup-gameboy-and-gameboy-colour-save-games-from-retail-cartridges.1187/

https://www.tindie.com/products/JRodrigo/cart-flasher-for-gameboy/
https://gaming.stackexchange.com/questions/12817/is-it-possible-to-trade-pokemon-from-the-1st-generation-games-to-the-most-recent
https://gamingreinvented.com/uncategorized/a-tool-to-transfer-pokemon-from-generation-1-and-2-to-3/
https://projectpokemon.org/home/forums/topic/28067-gen-iii-to-gen-iiiivv-conversion/
http://jul.rustedlogic.net/thread.php?id=16739
http://www.adanscotney.com/2014/01/spoofing-pokemon-trades-with-stellaris.html
https://hackaday.com/2014/01/02/spoofing-pokemon-trades/
https://projectpokemon.org/home/forums/topic/29182-pkhex-gen-1-7-savpkm-editor/
https://projectpokemon.org/home/forums/topic/33544-gen-1-2-3-pokemon-editor-and-converter-for-windows-mac-os-x/
https://www.engadget.com/2015/02/17/you-can-now-trade-pokemon-with-yourself-thanks-to-arduino/
http://www.escapistmagazine.com/news/view/139873-Coder-Creates-Single-Player-Trade-Hack-For-Game-Boy-Pokemon-Titles
https://github.com/pepijndevos/arduino-boy
http://www.retrocollect.com/News/trade-pokemon-via-a-game-boy-link-cable-a-the-internet-with-tcpoke.html
http://pepijndevos.nl/TCPoke/
http://obskyr.io/lanette/devlog/
https://www.reddit.com/r/pokemon/comments/3pwefp/im_making_a_device_to_trade_between_gen_ii_and/
https://hackaday.com/2015/11/07/breaking-out-a-game-boy-link-cable/

https://bulbapedia.bulbagarden.net/wiki/Poké_Transporter

https://daily.pokecommunity.com/2017/11/19/pokemon-stats-red-blue-yellow-gold-silver-recalculated/
http://www.pokemon.co.jp/ex/rescue/

https://docs.google.com/document/d/1ILhyYIjArYLimeWEUJvSa0BsCnB5k706MWN2Pa7fA9c/

http://atopthefourthwall.com/how-to-trade-gen-12-pokemon-into-gen-3-and-up/
http://timespentgaming.blogspot.mx/2014/03/the-great-pokemon-rom-migration-of-our.html

miércoles, 31 de enero de 2018

Un poco de historia

21 de abril de 1989 se pone a la venta (en Japón) la Game Boy.

Empresas y personas con conocimientos en electrónica experimentan con la Game Boy y sus cartuchos. Nacen los primeros dispositivos (no puestos a la venta) que permiten leer la memoria ROM de los cartuchos y también surgen los primeros cartuchos reprogramables, en los cuales se puede insertar ROMs extraídas anteriormente o ejecutar homebrew en la Game Boy.


27 de febrero de 1996 se ponen a la venta (en Japón) los juegos Pokémon Red y Pokémon Green. Nace la primera generación de Pokémon.


22 de octubre de 1998 se pone a la venta (en Japón) la Game Boy Color.


Compañías como Datel, Codemasters, Mad Catz y Pelican comercializan dispositivos que permiten introducir cheats en los cartuchos de la Game Boy y Game Boy Color.

Datel Action Replay
Mad Catz GameShark
Codemasters Game Genie and Pelican CodeBreaker

21 de noviembre de 1999 se ponen a la venta (en Japón) los juegos Pokémon Gold y Pokémon Silver. Nace la segunda generación de Pokémon. Es posible intercambiar Pokémon con juegos de la primera generación por medio de la "Time Capsule" de Bill (personaje, el cual invento el sistema de almacenamiento vía PC de los Pokémon, dentro de los juegos).

Hay a la venta algunos dispositivos que permiten leer la memoria ROM y RAM de los cartuchos de Game Boy y Game Boy Color.

E.M.S. Industrial GB Transferer and Bung Enterprises GB Xchanger


21 de marzo de 2001 se pone a la venta (en Japón) la Game Boy Advance.

Rápidamente emergen algunos dispositivos que permiten leer la memoria ROM y RAM de los cartuchos de la Game Boy Advance, así como cartuchos reprogramables para esta.

Flash Advance Linker
EZ Flash IIEFA LinkerEZF Advance


21 de noviembre de 2002 se ponen a la venta (en Japón) los juegos Pokémon Ruby y Pokémon Sapphire. Nace la tercera generación de Pokémon. Los jugadores se dan cuenta de la imposibilidad de intercambiar o transferir Pokémon de anteriores generaciones.

Surgen cartuchos para Game Boy Advance con memoria Flash extraíble.

SuperCard CF v2EZ Flash IV


21 de noviembre de 2004 se pone a la venta (en Estados Unidos) la Nintendo DS.

En breve emergen tarjetas con memoria Flash extraíble que permiten insertar ROMs de juegos pirateados o ejecutar homebrew en la Nintendo DS.

Acekard 2, DSTWO, R4


27 de septiembre de 2006 se ponen a la venta (en Japón) los juegos Pokémon Diamond y Pokémon Pearl. Nace la cuarta generación de Pokémon. Es posible transferir Pokémon desde juegos de la tercera generación por medio del "Pal Park" (Parque de los Amigos, una reserva natural de Pokémon que "atrae" a Pokémon de otras regiones).

18 de septiembre de 2010 se ponen a la venta (en Japón) los juegos Pokémon Black y Pokémon White. Nace la quinta generación de Pokémon. Es posible transferir Pokémon desde juegos de la cuarta generación por medio del "Poké Transfer".


26 de febrero de 2011 se pone a la venta (en Japón) la Nintendo 3DS.


Se encuentran, y aprovechan, varias brechas de seguridad que hacen posible ejecutar juegos pirateados y homebrew en la Nintendo 3DS.

Nintendo 3DS Homebrew launcher


12 de octubre de 2013 se ponen a la venta (en Japón) los juegos Pokémon X y Pokémon Y. Nace la sexta generación de Pokémon.

25 de diciembre de 2013 se lanza el Pokémon Bank. Es posible transferir Pokémon de la quinta generación a el Pokémon Bank por medio del "Poké Transporter" y retirarlos del Pokémon Bank en juegos de sexta generación.


Existen en el mercado dispositivos mejorados (más pequeños, más rápidos y con interfaces modernas) que permiten leer la memoria ROM y RAM de los cartuchos de Game Boy y Game Boy Color. Así como cartuchos reprogramables con mayor capacidad y durabilidad de sus componetes.

GB Cart Flasher (jrodrigo.net)

GB Flash Cart (jrodrigo.net)GB Flash Cart (ladecadence.net)

27 de febrero de 2016 se ponen a la venta para la Consola Virtual de Nintendo 3DS los juegos Pokémon Red, Pokémon Green, Pokémon Blue y Pokémon Yellow. Es posible transferir Pokémon de la Consola Virtual a el Pokémon Bank por medio del "Poké Transporter" y retirarlos del Pokémon Bank en juegos de séptima generación.

18 de noviembre de 2016 se ponen a la venta los juegos Pokémon Sun y Pokémon Moon. Nace la séptima generación de Pokémon. Es posible depositar Pokémon de la sexta generación a el Pokémon Bank y por el mismo transferirlos a juegos de séptima generación.


Fuentes y referencias:

https://en.wikipedia.org/wiki/Game_Boy

https://en.wikipedia.org/wiki/Game_Boy_Color
https://en.wikipedia.org/wiki/Game_Boy_Advance
https://en.wikipedia.org/wiki/Nintendo_DS
https://en.wikipedia.org/wiki/Nintendo_3DS

https://en.wikipedia.org/wiki/Bung_Enterprises

https://en.wikipedia.org/wiki/Action_Replay
https://en.wikipedia.org/wiki/Game_Genie
https://en.wikipedia.org/wiki/GameShark
https://en.wikipedia.org/wiki/Code_Breaker
https://en.wikipedia.org/wiki/Flash_cartridge
https://en.wikipedia.org/wiki/Revolution_for_DS
https://en.wikipedia.org/wiki/Homebrew_(video_games)

https://bulbapedia.bulbagarden.net/wiki/Pokémon_Red_and_Green_Versions

https://bulbapedia.bulbagarden.net/wiki/Time_Capsule
https://bulbapedia.bulbagarden.net/wiki/Pokémon_Gold_and_Silver_Versions
https://bulbapedia.bulbagarden.net/wiki/Pokémon_Ruby_and_Sapphire_Versions
https://bulbapedia.bulbagarden.net/wiki/Pal_Park
https://bulbapedia.bulbagarden.net/wiki/Pokémon_Diamond_and_Pearl_Versions
https://bulbapedia.bulbagarden.net/wiki/Poké_Transfer
https://bulbapedia.bulbagarden.net/wiki/Pokémon_Black_and_White_Versions
https://bulbapedia.bulbagarden.net/wiki/Poké_Transporter
https://bulbapedia.bulbagarden.net/wiki/Pokémon_X_and_Y
https://bulbapedia.bulbagarden.net/wiki/Pokémon_Bank
https://bulbapedia.bulbagarden.net/wiki/Pokémon_Sun_and_Moon

http://www.kako.com/neta/1999-005/1999-005.html

http://mootan.hg.to/fmgbx/
http://www.reinerziegler.de/readplus.htm
https://www.neogaf.com/threads/gb-gbc-gba-collecting-thread.512997/page-67#post-106321571
https://www.ebay.com/itm/InterAct-Game-Boy-Color-Pocket-Game-Boy-GameShark-Accessory-Only-V-2-1-/142166613938
https://glitchcity.info/wiki/Cheating_device
https://www.epforums.org/showthread.php?84408-GameShark-(GBC)-reflashing-question(s)-plus-request
http://micoleccionvideojuegos.blogspot.mx/2013/08/game-shark-para-game-boy-pocket-y-color.html
http://www.hkems.com/product/gb/gba-tr.htm
https://digiex.net/threads/how-to-backup-gameboy-and-gameboy-colour-save-games-from-retail-cartridges.1187/
https://www.flickr.com/photos/gameboygenius/8503918405
https://www.gp32spain.com/foros/showthread.php?53930-Programador-y-cartuchos-GB
http://reinerziegler.de/GBA/gba.htm
https://ap.nintendo.com/detect/photos/devices/copiers_gameboy_advance.jsp
http://www.gameboy-advance.net/fal_soft/flash_advance_software.htm
http://www.eagb.net/advance/hr13.html
http://www.emu-zone.net/gba-sp/efa.htm
https://giltesa.com/2010/12/29/efa-extreme-flash-advance-drivers-y-software
http://www.ezfadvance.com/cards/EZF_Advance_Realtime.htm
https://wiki.gbatemp.net/wiki/Supercard_(CF/SD/Lite/Rumble)
http://scorpei.com/SuperCard.html
https://wiki.gbatemp.net/wiki/EZ-Flash_IV
http://nds.scenebeta.com/noticia/ez-flash-iv-ezflash-4
http://www.linfoxdomain.com/nintendo/ds/
http://wiki.ladecadence.net/doku.php?id=cartucho_flash
https://www.jrodrigo.net/wiki/how-to-diy-a-gameboy-flash-cartridge-with-a-rom-adapter-board/
https://www.tindie.com/products/JRodrigo/flash-cart-2mb4mb-for-gameboy/
https://www.jrodrigo.net/es/project/gameboy-cart-flasher/
http://smealum.github.io/3ds/
https://3ds.guide/es_ES/

jueves, 25 de enero de 2018

Tamaño de Pokémon Bank


El tamaño de este servicio de almacenamiento en la nube es desconocido, pero podemos especular en base a que su capacidad de almacenamiento es de 3000 Pokémon y que los datos de cada Pokémon (almacenados en la PC en los juegos de sexta generación) ocupan menos de 2048 bits (256 x 8 bits).

3000 x 2048 bits = 6,144,000 bits = 750 x 1024 x 8 bits = 750 KiB.

Aproximadamente 750 KiB pero deben existir varias copias de respaldo, en un esfuerzo para garantizar la disponibilidad de los datos, lo cual multiplica varias veces esta cantidad.

Lo anterior debemos multiplicarlo por la cantidad de cuentas de usuario del servicio más un margen para nuevos usuarios.

Haciendo tres suposiciones, una a lo mínimo, otra a lo máximo y otra intermedia.

Mínimo 2 copias y 1,000,000 de usuarios. 2 x 1,000,000 x 750 KiB = 1,500,000,000 KiB ~= 1.4 TiB.
Máximo 6 copias y 70,000,000 de usuarios. 6 x 70,000,000 x 750 KiB = 315,000,000,000 KiB ~= 293.4 TiB.
Intermedio 4 copias y 7,000,000 de usuarios. 4 x 7,000,000 x 750 KiB = 21,000,000,000 KiB ~= 19.6 TiB.

En mi opinión el tamaño total del servicio Pokémon Bank ronda los 20 TiB.

Memoria interna de las consolas Nintendo 3DS

Flash memory: Alrededor de 1 GiB, el valor exacto varia de una consola a otra. Mínimo 943 MiB = 943 x 1024 x 1024 x 8 bits = 7,910,457,344 bits = 7544 Mibit.


Flash memory
Un tipo de memoria no volátil, de lectura y escritura. Puede almacenar, los juegos y el progreso de estos (de la Consola Vitual y la eShop).

Fuentes:

Memoria interna de las consolas Wii

Flash memory [Wii, Wii (Family Edition) y Wii mini]: 512 MiB = 512 x 1024 x 1024 x 8 bits = 4,294,967,296 bits = 4 Gibit.
Flash memory [Wii U (WUP-001)]: 8 GiB = 8 x 1024 x 1024 x 1024 x 8 bits = 68,719,476,736 bits = 64 Gibit.
Flash memory [Wii U (WUP-101)]: 32 GiB = 32 x 1024 x 1024 x 1024 x 8 bits = 274,877,906,944 bits = 256 Gibit.

Wii

Flash memory
Un tipo de memoria no volátil, de lectura y escritura. Almacena el progreso de los juegos.

Memoria interna del Pokéwalker

EEPROM (ST 512RP): 64 KiB = 64 x 1024 x 8 bits = 524,288 bits = 512 Kibit.

Pokéwalker

Sí se agota la batería del Pokéwalker no se perderán los datos dentro de esté.

Electrically Erasable Programmable ROM (EEPROM)
Un tipo de memoria no volátil, de lectura y escritura. Almacena el progreso del Pokéwalker.