Skip to content

Latest commit

 

History

61 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pkCare 3DS

Read this in English

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 (superior): Charizard de noche Pantalla principal (inferior): barras y botones de cuidado Tarjeta StreetPass (experimental)

Pantalla principal (arriba y abajo) y tarjeta StreetPass (experimental) — capturas reales de la consola.


1. Requisitos

  • devkitPro instalado con el paquete 3ds-dev
  • El paquete citro2d (sudo dkp-pacman -S citro2d o vía dkp-pacman -S 3ds-dev citro2d en el instalador gráfico)
  • tex3ds (viene con 3ds-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 tex3ds

2. Estructura del proyecto

pkCare/
├── 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)

3. Compilar tu propio pkCare

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
make

Esto 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.

Instalable como .cia

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 cia

Esto genera pkcare.cia. Instálalo con FBI en tu 3DS. A diferencia del .3dsx, esta queda instalada de forma permanente en el menú HOME.

4. Exportar el save de tu cartucho

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 .sav en 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.

5. Funciones y características

  • 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.

6. Créditos

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.

7. Licencia

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.

About

Homebrew app to care buddies based on Pokemon games from DS and 3DS

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages