2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00
2026-07-28 06:34:41 +02:00

Icono de NP2kai PS4

NP2kai PS4

Un port nativo de NP2kai para PlayStation 4, con frontend propio, biblioteca de juegos, remapeo completo, estados de guardado, teclado USB y diagnóstico.

Versión 1.0 Plataforma PlayStation 4 OpenOrbis Licencia MIT

Important

Necesitas una PlayStation 4 compatible con GoldHEN. Este repositorio no incluye BIOS, ROM del PC-98, fuentes del sistema ni juegos.

Requisitos

Para instalar y usar

  • PlayStation 4 con GoldHEN funcionando.
  • Un método para instalar paquetes .pkg: USB o FTP de GoldHEN.
  • Archivos propios del PC-98:
    • bios.rom
    • itf.rom
    • sound.rom
    • font.bmp o FONT.rom
  • Imágenes de juego compatibles: .hdi, .fdi, .d88, .hdm o .t98.

Para compilar

  • Linux o macOS.
  • OpenOrbis PS4 Toolchain.
  • git, clang, clang++, ld.lld, llvm-ar o ar, make, patch, python3 y curl si quieres subir el PKG por FTP.

Instalación rápida

  1. Descarga el archivo .pkg desde la sección Releases del repositorio.
  2. Copia el PKG a hdd:/data/pkg/ mediante FTP o a un USB.
  3. Instálalo desde el gestor de paquetes de GoldHEN.
  4. Abre NP2kai PS4 desde el menú principal.

Primera ejecución

En el primer arranque, el frontend comprueba los archivos necesarios y muestra la ruta exacta de cualquier elemento que falte.

Copia las BIOS y la fuente a:

/data/np2kai-runtime/system/np2kai/

Copia tus imágenes de juego a:

/data/np2kai-runtime/games/

Después pulsa Triángulo para volver a comprobar y X para continuar.

Primera configuración

Funciones principales

Biblioteca

La biblioteca muestra la lista de juegos a la izquierda y la información del juego seleccionado a la derecha: formato, tamaño, ruta y perfil de controles.

Biblioteca

Botón Acción
X Abrir el juego seleccionado
Cuadrado Editar sus controles
Triángulo Volver a escanear la carpeta
Options Abrir los ajustes

Menú durante el juego

Pulsa L3 + R3 para abrir la pausa. Esa combinación y el touchpad están reservados para evitar que un remapeo deje el frontend inaccesible.

Desde la pausa puedes:

  • continuar;
  • guardar o cargar estados;
  • cambiar de disco;
  • editar los controles del juego;
  • reiniciar la emulación;
  • abrir los ajustes;
  • volver a la biblioteca.

Controles y teclado USB

Cada botón del DualShock 4 puede representar una tecla del PC-98. Hay un perfil global y perfiles independientes por juego, con 104 asignaciones que cubren las 101 teclas admitidas por NP2kai y los clics del ratón.

El stick derecho mueve el ratón; R2 y L2 actúan como clics. Un teclado USB conectado a la PS4 funciona directamente y también puede utilizarse para asignar teclas dentro del editor.

Editor de controles

Estados de guardado

Hay cuatro ranuras por juego en Pausa > Estados de guardado.

Botón Acción
X Guardar
Triángulo Cargar
Cuadrado Borrar

Los estados permanecen después de cerrar y volver a abrir la aplicación.

Estados de guardado

Diagnóstico

En Ajustes > Desarrollador > Diagnóstico puedes consultar el tiempo empleado por cada frame, FPS, cola de audio y estado del mando y teclado. También se escribe una muestra por segundo en:

/data/np2kai-runtime/logs/perf.log

Diagnóstico

Temas

Incluye cuatro temas: gris, azul pizarra, grafito y medianoche. Se cambian desde Ajustes > Interfaz > Tema.

Compilar desde el código fuente

Clona el repositorio incluyendo sus submódulos:

git clone https://github.com/EmiiBytee/np2kai-ps4.git
cd np2kai-ps4
git submodule update --init third_party/NP2kai

Define la ubicación de OpenOrbis y ejecuta el script principal:

export OO_PS4_TOOLCHAIN="$HOME/Dev/PS4/OpenOrbis/PS4Toolchain"
./build-and-deploy.sh

El script:

  1. comprueba las herramientas y el toolchain;
  2. aplica automáticamente el pequeño parche necesario sobre NP2kai;
  3. copia desde OpenOrbis los módulos requeridos por el paquete;
  4. ejecuta las validaciones de regresión y metadatos;
  5. compila el core, el frontend y el PKG.

El resultado será:

IV0000-BREW00984_00-NP2KAIBOOTSTRAP0.pkg

La primera compilación del core es la parte más lenta. Por defecto se ejecuta en un solo proceso para que cualquier error sea legible. Puedes paralelizarla:

NP2KAI_BUILD_JOBS="$(nproc)" ./build-and-deploy.sh

Para compilar y subirlo directamente al FTP de GoldHEN:

PS4_IP=192.168.1.100 ./build-and-deploy.sh

El puerto predeterminado es 2121. Puedes cambiarlo con PS4_FTP_PORT.

Después de clonar, descarga el core fijado por el proyecto:

git submodule update --init third_party/NP2kai

Estructura del proyecto

.
├── SDL2/                         frontend y backend de teclado PS4
├── assets/                       iconos y configuración incluida en el PKG
├── docs/                         capturas y documentación
├── sce_sys/                      icono y metadatos generados del paquete
├── sce_module/                   módulos copiados desde OpenOrbis al compilar
├── third_party/NP2kai/           submódulo del core original
├── tools/                        validadores, generadores y parche del core
├── Makefile                      compilación y empaquetado
└── build-and-deploy.sh           punto de entrada recomendado

No necesitas subir tu copia completa de OpenOrbis ni otra copia independiente de NP2kai. El primero es una dependencia externa y el segundo se obtiene como submódulo fijado a una revisión concreta.

Rutas de datos

/data/np2kai-runtime/
├── config/                       configuración global y perfiles
├── games/                        imágenes de juego del usuario
├── logs/latest.log               registro principal
├── logs/perf.log                 historial de rendimiento
├── states/                       estados de guardado
└── system/np2kai/                BIOS, fuente y configuración de NP2kai

Solución de problemas

El registro principal está en:

/data/np2kai-runtime/logs/latest.log

Si un juego llega a arrancar pero muestra un error propio del PC-98, prueba a borrar este archivo para regenerar el estado de la máquina emulada:

/data/np2kai-runtime/system/np2kai/np2kai.cfg

Para informar de un fallo, abre un issue e incluye:

  • versión de NP2kai PS4;
  • modelo y firmware de la PS4;
  • versión de GoldHEN;
  • formato de la imagen usada;
  • pasos exactos para reproducirlo;
  • últimas líneas de latest.log.

No adjuntes BIOS, ROM ni imágenes de juegos.

Notas técnicas

Algunas cosas que costaron unas cuantas horas y conviene dejar documentadas:

  • El teclado USB usa libSceKeyboard, no el IME.
  • sceUserServiceInitialize se comparte entre mando, audio y teclado y debe inicializarse una sola vez.
  • APP_VER y VERSION del param.sfo deben usar el formato XX.YY.
  • retro_serialize_size() realiza trabajo equivalente a una grabación completa; no debe llamarse continuamente.
  • El core original no reinicia firstcall al descargar un juego. El arreglo se conserva como tools/np2kai-reload-fix.patch y se aplica automáticamente.

Estado del proyecto

Versión 1.0. Probada en consola real con instalación, biblioteca, vídeo, audio, mando, teclado USB, perfiles, remapeo, estados de guardado y cambio de disco.

La versión es utilizable y relativamente estable, aunque todavía pueden existir bugs y casos de compatibilidad no descubiertos.

Consulta CHANGELOG.md para ver el historial completo.

Licencia y archivos de terceros

El código propio del port —frontend, scripts y herramientas— está disponible bajo la licencia MIT.

NP2kai, OpenOrbis, SDL2, libretro-common, Tabler Icons y las tipografías usadas mantienen sus licencias correspondientes. Consulta THIRD-PARTY.md.

Las BIOS, ROM, fuentes del PC-98 y juegos no se distribuyen.

Créditos

Proyecto por Emii.

2026-10-05 21:24:58 +02:00
Languages
C++ 92.8%
Python 4.6%
Shell 1.8%
Makefile 0.8%