Aplicacion de Homebrew para 3DS que lee tu equipo de Pokémon Platino, HeartGold/SoulSilver, Negro/Blanco 1 y 2, o X/Y/Omega Rubí/Alfa Zafiro — detecta el juego solo — y te deja elegir un compañero como "principal" para cuidarlo (alimentar / jugar) con estado persistente en la SD.
No modifica tu save original en ningún momento: solo lo lee.
Pantalla principal (arriba y abajo) y tarjeta StreetPass (experimental) — capturas reales de la consola.
- devkitPro instalado con el paquete
3ds-dev - El paquete
citro2d(sudo dkp-pacman -S citro2do víadkp-pacman -S 3ds-dev citro2den el instalador gráfico) tex3ds(viene con3ds-dev/general-tools)- Una 3DS con Luma3DS (CFW) para correr homebrew
Verifica que tienes todo:
export DEVKITPRO=/opt/devkitpro # o donde lo hayas instalado
export DEVKITARM=$DEVKITPRO/devkitARM
which tex3dspkCare/
├── Makefile
├── source/
│ ├── main.c # loop principal, estados, UI tactil
│ ├── gen4_save.c/.h # parser Platino/HeartGold/SoulSilver: CRC, LCRNG, unshuffle
│ ├── gen5_save.c/.h # parser Negro/Blanco 1 y 2
│ ├── gen6_save.c/.h # parser X/Y y Omega Rubi/Alfa Zafiro
│ ├── text_decode_g4.c/.h # decodificador de texto propietario
│ ├── anim.c/.h # particulas (corazones, estrellas, migas)
│ ├── petstate.c/.h # hambre/felicidad persistentes
│ └── species_table_g4.h # numero de Pokedex Nacional -> nombre
├── gfx-src/ # sprites e íconos (PokéSprite, ya incluidos)
└── romfs/gfx/ # se genera solo al compilar (no tocar)
Los sprites, íconos y etiquetas de tipo ya vienen incluidos en gfx-src/
(ver Créditos) — no hace falta conseguir ni copiar nada,
el Makefile los convierte a .t3x automáticamente.
cd pkCare
makeEsto genera pkcare.3dsx (y pkcare.smdh). Cópialo junto al .smdh
a la carpeta /3ds/pkcare/ de tu SD, o directo a /3ds/ si prefieres,
y ábrelo desde el Homebrew Launcher.
Además de lo anterior, necesitas makerom
y bannertool
— no vienen con dkp-pacman, hay que bajarlos de esos releases y dejarlos
en el PATH.
make ciaEsto genera pkcare.cia. Instálalo con FBI
en tu 3DS. A diferencia del .3dsx, esta queda instalada de forma
permanente en el menú HOME.
El save puedes obtenerlo desde tu copia original del juego utilizando diversas herramientas de dump de la partida.
- Cartuchos de DS (Platino, HeartGold/SoulSilver, Negro/Blanco 1 y 2):
con el cartucho físico puesto en la ranura de DS de tu 3DS, usa
Checkpoint o
TWLSaveTool para volcar el save a
un
.saven la SD. - Cartuchos de 3DS (X/Y, Omega Rubí/Alfa Zafiro): con el cartucho puesto en la 3DS, usa Checkpoint o JKSM para volcar el save a la SD.
desde la pantalla de selección de equipo (o desde la de error si todavía no encontró ninguno),
Y abre un explorador que navega toda la SD y deja elegir cualquier
.sav (o archivo sin extensión, como los que genera JKSM) donde sea que lo
hayas volcado — la ruta elegida se recuerda para la próxima vez.
Tamaños aceptados: 512KB o 256KB para los cartuchos de DS (dos pares de bloques o uno solo; la app valida el CRC y usa el más reciente), y el tamaño fijo que corresponde a cada juego de 3DS.
- Cuidado básico: comida y felicidad con barra, animaciones al alimentar y jugar.
- Ciclo día/noche real: el fondo cambia con la hora de la consola.
- Tiempo real: las estadísticas bajan solas, incluso con la app cerrada.
- Minijuego de bayas: atrapa bayas que caen moviendo la canasta con el touch.
- Paseo: podómetro real de la consola, canjeable por comida y felicidad.
- Mimos: acaricia al Pokémon en la pantalla táctil.
- Multi-Pokémon: hasta 16 recordados individualmente por su PID.
- Pantalla de info: especie, stats reales del save, tipos, movimientos y entrenador original.
- Energía y sueño: se agota despierto, se recupera durmiendo.
- Vínculo y racha: puntos por cuidarlo y racha de días consecutivos.
- Interacción física: soplar el micrófono, sacudir la consola.
- Pesca: minijuego de timing con bayas y tesoros de recompensa.
- Economía balanceada: topes diarios y costos de energía por acción, ajustables en el código.
- StreetPass (experimental, no terminado)
Controles: SELECT vuelve al selector de equipo, START cierra la app.
Todos los sprites e iconos de gfx-src/ vienen de
PokéSprite, el proyecto de
msikma que recopila y mantiene las ilustraciones de cada especie. Sin ese
trabajo esta app no tendría gráficos — gracias totales.
Para entender el formato de los saves también fueron una referencia constante PKHeX (el editor de saves de kwsch, la fuente principal para los offsets y la criptografía de cada generación) y PKSM (usado para cruzar y confirmar el formato de Gen 6). Para la parte de intercambio entre consolas (CECD) fueron referencia NetPass y CECTool. En los cuatro casos se usaron solo para entender el formato — nada de código de esos proyectos está copiado aquí.
Este proyecto se desarrolló trabajando junto a Claude Code (Mi pana Claudio), usado como asistente de desarrollo durante todo el proceso.
El código de esta aplicación — todo lo que vive en source/, el
Makefile y los scripts de build — es de mi autoría y se distribuye bajo
la licencia MIT: puedes usarlo, copiarlo, modificarlo y
redistribuirlo libremente, siempre que mantengas el aviso de copyright
que figura en el archivo LICENSE.
Esa licencia no cubre los sprites. Las imágenes de gfx-src/ (y los
.t3x que se generan a partir de ellas al compilar) vienen de
PokéSprite — ver la sección de
Créditos más arriba — y en última instancia son
ilustraciones de personajes propiedad de © Nintendo/Creatures Inc./GAME
FREAK Inc. Esta app no reclama ningún derecho sobre esos diseños, ni sobre
el resto del material relacionado con la franquicia (nombres de los
juegos, mecánicas, formato de los saves, etc.): es un proyecto de fans sin
fines de lucro, hecho para uso personal, y no está afiliado ni respaldado
por Nintendo, Creatures Inc., GAME FREAK ni The Pokémon Company. Si
compartes tu propia build, ten en cuenta esta misma distinción entre el
código y los assets gráficos.