banner

Blog

Jul 04, 2023

Cómo: hacer PS4 Homebrew en 2023 (tutorial, más o menos)

por wololo · agosto 26, 2023

Decidí sacar mi vieja PS4 de su estante y ver qué fácil (o no) se ha vuelto crear cerveza casera para la PS4, desde la última vez que lo miré seriamente, que fue hace mucho tiempo.

La buena noticia: ya existen buenos tutoriales sobre cómo hacer una PS4 casera, siguen siendo muy válidos en 2023 y, en su mayor parte, son todo lo que necesitas. La mala noticia: son sorprendentemente difíciles de encontrar, en un mar de basura que Google/Bing parecen ansiosos por sacar a la luz. Consultas aparentemente simples como “Cómo hacer PS4 Homebrew” o “Tutorial de PS4 Homebrew” no arrojaron resultados particularmente interesantes (al menos para mí). Pero al final encontré el camino hacia lo correcto 🙂

Para esta guía me centraré enWindows y Visual Studio, pero en general las guías y recursos que señalo también son válidos para Linux y MacOS.

Esta guía asume que usted está razonablemente familiarizado con

Esta sección por sí sola debería ser suficiente para comenzar. Sin embargo, una vez hecho esto, hágase un favor y configure un entorno de depuración (consulte Depuración a continuación). Si tiene problemas, consulte la sección Solución de problemas.

Antes de descargar o instalar cualquier cosa, lea los 5 puntos siguientes de principio a fin. ¡El primer video de Spectre en particular lo guía a través de todo el proceso de instalación (que es el punto 2 completo a continuación)! Y, francamente,La serie de videos de SpecterDev es probablemente lo único que realmente necesitas si no quieres leer este tutorial.

Los 5 pasos anteriores deberían ser suficientes para comenzar a crear Homebrew para cualquier PS4 pirateada. Aunque existen otras formas de crear cerveza casera para PS4 (incluso, de manera infame, a través de un SDK oficial de Sony filtrado con Unity),OpenOrbis Toolchain es “la” herramienta actualizada y respaldada por la comunidad en 2023 . Y es posible, una vez que se acostumbre a Toolchain y sus dependencias, actualizar a la última y mejor versión si es necesario.

Sin embargo, en mi búsqueda por poner en funcionamiento un entorno homebrew en mi máquina con Windows, me encontré con los siguientes problemas, algunos de los cuales también podrían sucederle a usted:

Aparentemente, esto es un error que ocurre cuando intentas ejecutar una aplicación de PS4 que fue creada para un firmware superior al que estás ejecutando. Las personas que intentan "reportar" juegos de PS4 a firmwares más bajos están particularmente familiarizadas con este problema.

En mi caso, y en el contexto del desarrollo de Homebrew, esto me pasó porque mi PS4 tenía el Firmware 4.05, mientras que OpenOrbis Toolchain está escrito para soportar Firmwares 4.5x y superiores. Aunque esa elección fue arbitraria (se eligió el SDK 4.508.101 en el momento de crear la cadena de herramientas, como el número de SDK más actualizado), y en teoría podría parchear su Homebrew para que funcione en 4.05 reemplazando esa versión del SDK en la versión apropiada. archivos de la cadena de herramientas, personalmente decidí no preocuparme y actualicé mi PS4 al firmware 5.05.

Mira y GoldHEN ofrecen formas de obtener resultados en tiempo de ejecución de los registros de Homebrew en una terminal (consulte "Depuración" a continuación). Pero no los vi en mis pruebas, para las muestras proporcionadas en la cadena de herramientas de PS4. Parece que dependiendo de su versión de LLVM y otros factores, la libc podría estar redirigiendo printf a la canalización incorrecta (no me cite sobre eso). La solución, como sugirió Illusion, fue utilizar la libc interna de la PS4 con prioridad a la normal. Esto se hizo agregando -lSceLibcInternal en la sección de bibliotecas establecidas delconstruir.batarchivo, antes de -lc:

No encontré una manera de "instalar" las plantillas de OpenOrbis VS desde Visual Studio. Resulta que lo único que puede hacer es copiarlos (sin extraerlos) en la carpeta C:\Users\[your user]\Documents\Visual Studio 20xx\Templates\ProjectTemplates\Visual C++ Project.

Spectre menciona que también funciona en la carpeta principal, así:

Cualquiera de estos debería funcionar, y el resultado cuando crea un nuevo proyecto en Visual Studio es que debería tener las plantillas listas. Esas plantillas le permitirán crear su proyecto, pero lo que es más importante, compilarlo usando el botón "compilar" de Visual Studio, en lugar de ejecutar los comandos de creación de paquetes y creación manualmente. No hace falta decirlo, pero esas plantillas de Visual Studio son solo atajos para cosas que puedes hacer manualmente, no realizan ninguna magia. No los “necesitas”, pero son buenos ayudantes que abstraen algunas cosas.

TLDR:

La larga historia:

Los verdaderos expertos le dirán: la única buena forma de depurar una aplicación es printf. Bromas aparte, este es el más rápido de implementar para comenzar y algo que la mayoría de los desarrolladores usan en cualquier plataforma.

Al momento de escribir este artículo, los videos tutoriales de SpecterDev no cubren la parte de "depuración" del desarrollo, aunque en mi experiencia es fundamental: ejecutar el código de desarrollo en tu PS4 a veces falla, y querrás saber qué está pasando. Créame, cada vez que pienso que puedo prescindir de él, termino arrepintiéndome. Perderá más tiempo tratando de "adivinar" qué está mal con una aplicación Homebrew específica en su consola sin ningún registro en tiempo real, que habilitando este monitoreo.

La forma más sencilla de hacerlo es monitorear la salida de tu Homebrew en tiempo real, lo cual es mucho más fácil de hacer de lo que parece, gracias a las utilidades incluidas con los exploits populares de PS4.

GoldHEN y Mira están enviando algunos registros a un puerto específico de la consola, que puedes escuchar desde tu PC. En este ejemplo, usaré goldHEN, con el que en mis pruebas fue más fácil trabajar, pero creo que Mira ofrece una funcionalidad similar.

GoldHEN envía el contenido del registro del kernel al puerto TCP 3232 (y aparentemente, al puerto 9998 para Mira). Además, GoldHEN tiene una opción para agregar la salida estándar de su cerveza casera (normalmente lo que escribe con printf) a la salida del registro del núcleo (“klog”) (también conocido comoHabilitar redireccionamiento TTY ). Esas dos cosas combinadas significan que es fácil configurar el monitoreo en tiempo real de la impresión de su cerveza casera, desde su PC.

Primero, En tu PS4, deberás ir a la configuración de GoldHEN KLog y habilitar TTY Redirect. Esto asegurará que los registros de Homebrew se agreguen a klog. Tenga en cuenta que solo debe habilitar esto cuando realmente desee depurar algo; de lo contrario, se recomienda no tenerlo "activado" cuando simplemente use la consola.

En segundo lugar , puedes conectarte al puerto 3232 de tu PS4 desde tu PC, en un terminal Telnet. Personalmente estoy usando Putty para hacer eso.

Pruebas: Una vez que hagas clic en "Abrir" desde el terminal PuTTY, casi instantáneamente deberías ver el terminal llenándose de mensajes del kernel de PS4. Para probar que mi homebrew está funcionando correctamente, intenté ejecutar el homebrew de muestra de "gráficos" desde PS4 Toolchain. Ese homebrew hace algunas depuraciones printf aquí y allá. En su archivo main.cpp:

Cuando inicio este homebrew específico en mi PS4, con PuTTY conectado, puedo ver que está funcionando correctamente:

Hay formas "mejores" de depurar código, ¡pero ésta debería darte una buena ventaja!

Las herramientas de código abierto para crear PS4 Homebrew están aquí, debidamente documentadas y bien respaldadas por una comunidad bastante activa. Cereza encima, ¡la compatibilidad con Windows no parece ser la tercera rueda! Configurar este entorno de Windows por mi parte no me llevó mucho tiempo (si ignoras el hecho de que comencé con una PS4 4.05 que no había encendido en años y tuve que resolver un montón de problemas relacionados con eso), y, en general, todo funcionó de inmediato.

Intentaré mantener este artículo actualizado (en particular, si las personas tienen problemas o preguntas, estoy más que ansioso por actualizar la sección de solución de problemas), ¡así que no dudes en comentar!

¡Mi agradecimiento a Al-Azif, Illusion y Sleirsgoevy por su ayuda con algunos de mis problemas y preguntas tontas!

Windows y Visual StudioLa serie de videos de SpecterDev es probablemente lo único que realmente necesitas si no quieres leer este tutorial.OpenOrbis Toolchain es “la” herramienta actualizada y respaldada por la comunidad en 2023construir.batTLDR:La larga historia:Habilitar redireccionamiento TTYPrimero,En segundo lugarDirección IPpuertoTelnetPruebas:
COMPARTIR