Jump to content


OpenOrbis PS4 Toolchain 0.5.3

¿Quieres enterarte al momento de las nuevas descargas? Síguenos en Twitter, Mastodon o Threads!

OpenOrbis PS4 Toolchain permite a los desarrolladores crear homebrew sin la necesidad de utilizar el SDK oficial de Sony. Contiene archivos de cabecera, librerías y herramientras para crear aplicaciones y librerías para Playstation 4.

Creating Homebrew Projects

For Windows, /extra provides Visual Studio templates which can be added into your VS installation's templates directory to allow easy creation of homebrew projects. You can also copy and modify the solutions from the provided samples.

For Linux and macOS, /extra contains a setup-project.sh script which will create a project directory based on the hello_world sample.

Tools

Each tool will have a dedicated README.md file for more specific information on the tool. Below is a generic overview of the tools included in the toolchain currently.

create-eboot

The create-eboot tool takes normal Executable Linkable Format (ELF) files and performs the necessary patches and relinking to create an Orbis ELF (OELF). It will further take this OELF and process it into a final wrapped Signed Executable Linkable Format (SELF). This was made possible thanks to flatz' previous work on the make-fself.py script, which can be found in /scripts. For more information on these formats, see the wiki or /docs.

Author: Specter + flatz (fself stuff)

create-lib

The create-lib tool is similar to the create-eboot tool, however it produces Playstation Relocatable eXecutable (PRX) library files from a given ELF file.

Author: Specter + flatz (fself stuff)

create-pkg

The create-pkg tool takes a set of files that applications are expected to have (eboot.bin, param.sfo, necessary modules, etc.) and creates a package file (pkg) for them to install on the PS4.

Author: maxton

stub-generator

The stub-generator generates the header files and shared libraries (.so) files for linking with PS4 system libraries. The output of this tool can be found in /include/orbis and /lib. These directories are essential to properly link with PS4 libraries.

Author: CrazyVoid

miralib

The miralib library contains C# and Python code for interacting with Mira on the desktop side of things. This includes management of a local list of consoles, connecting to a console, and performing various actions once connected via RPC.

Author: Specter + Kiwi

assistant

Assistant is actually a suite of tools for aiding in developing PS4 homebrew. This includes a log viewer, a debugger, a launcher for Mira, and a tray application to easily launch all of these.

Author: Specter

readelf replacement

A replacement readelf tool for reading PS4-compatible ELFs, otherwise known as Orbis ELFs (OELF).

Author: Specter

Scripts

All scripts in the /scripts directory are Python 3 scripts, specifically targeting Python 3.7.0, with the exception of /scripts/make_fself.py. You will need Python installed on your system to run these scripts. Usage of these scripts can be found in /scripts/README.md.

  • autobuild.py - is an automated pkg generating script based on project dir content (may be unstable, wait for release build)
  • dynamic_entries.py - Gets a list of dynamic entries from the dynamic table of Orbis ELFs.
  • make_fself.py - Copy of flatz' script to generate fake SELF files. This functionality has now been integrated as a part of create-eboot and create-lib.
  • program_headers.py - Gets a list of program headers from the program header table of Orbis ELFs.
  • rela_entries.py - Gets a list of relocation with addend (RELA) entries from the relocation table of Orbis ELFs.
  • symbol_entries.py - Gets a list of symbols from the symbol table of Orbis ELFs.

License

OpenOrbis.

This project is licensed under the GPLv3 license - see the LICENSE file for details.

The accompanying LLVM binaries are licensed under the Apache 2.0 license and is owned by LLVM. Under that license, redistribution is allowed.

Credits + Special Thanks

  • Specter: Create-eboot/lib relinker, miralib, assistant suite, readelf, samples and documentation
  • CrazyVoid: Stub generator, headers, samples and documentation
  • maxton: Create-pkg pkg and SFO generation tools
  • Kiwidog: Mira stuff, documentation
  • IDC: Lots of help with libraries and other bug fixes
  • flatz: Homebrew research and writeups, SELF reversing and documentation
  • m0rph3us1987: Help with debugging stuff
  • bigboss / psxdev: Library research and reverse engineering, used for reference by various samples
  • LightningMods / LM: Testing via APP_HOME and lib loading help on the Mira side
  • Lord Friky: Proper macOS support
  • MrSlick: Awesome logo ❤️
  • OpenOrbis Team
  • Other anonymous contributors

Que novedades incluye la versión 0.5.3

Released

  • Arreglar la definición de OrbisSaveDataParam por @bucanero en #174
  • Arreglar el error de compilación de SaveData.h en #173
  • Actualizar SystemService.h para incluir la dependencia por @Al-Azif en #175
  • Muestra de Piglet: censurar sceKernelDlsym por @sleirsgoevy en #182
  • libkernel.h: agregar la definición de scePthreadSelf por @Cpasjuste en #184
  • Agregar métodos RegMgr por @bucanero en #179
  • Se requiere .NET Core 3.0 Runtime para ejecutar LibOrbisPkg por @illusion0001 en #176
  • Actualizar libkernel.h por @Backporter en #186
  • Reagregar la muestra de teclado (corregir un error tipográfico) por @Klairm en #183
  • Eliminar la versión específica de Dockerfile por @Al-Azif en #194
  • Arreglar #178 por @Al-Azif en #193
  • Agregar soporte para trofeos y agregar una muestra para el sistema de trofeos por @Backporter en #188
  • Agregar muestra de HTTP por @bucanero en #196
  • Agregar una muestra de MsgDialog por @bucanero en #197
  • Actualizar Rtc.h por @Backporter en #202
  • Agregar métodos sceNetResolver...() por @bucanero en #207
  • Corregir la estructura del firmware, corregir los argumentos de sceKernelFstat, los argumentos de sceRtcCurrentClockLocalTime, agregar estructuras de diálogo de error y definiciones de funciones, agregar definiciones de Np. por @Backporter en #203
  • Para mayor comodidad, agregue 2 etiquetas XML a MyTemplate.vstemplate por @SummerFalls en #204
  • Actualice fliprate y Screenshot Overlay Stub por @illusion0001 en #212
  • CI: arregle la compilación por @illusion0001 en #217
  • Agregue métodos de servicio de usuario por @bucanero en #215
  • Actualice el script bash para excluir carpetas que no sean de creación por @illusion0001 en #222
  • diálogos: use show_dialog para el ejemplo de condición por @illusion0001 en #221
  • Fuerce que las secciones de sce aparezcan en el elf. por @nkrapivin en #211
  • Mover fliprate a la enumeración por @illusion0001 en #216
  • Actualice las definiciones de ScreenShot por @illusion0001 en #214
  • Agregue funciones y tipo de datos de appinfo. por @OSM-Made en #220
  • Se definieron algunas funciones de red. por @OSM-Made en #219
  • Corregir compilación de net http por @illusion0001 en #224
  • Actualizar insignias readme por @illusion0001 en #225
  • CI: Descargar las últimas versiones desde las URL por @illusion0001 en #227
  • Agregar definiciones por @bucanero en #230
  • Corregir definiciones de C por @bucanero en #231
  • Agregar definiciones de sceUsbd por @InvoxiPlayGames en #229
  • Actualizar save_data.h por @illusion0001 en #234
  • Corregir orden #endif por @illusion0001 en #233
  • Agregar algunas definiciones para GnmDriver y VideoOut por @pipehuffer en #235
  • Agregar compatibilidad con controlador de extensión al encabezado Pad.h. por @InvoxiPlayGames en #228
  • kernel: reemplazar tipos BSD con stdint en los indicadores de kevent por @pipehuffer en #236
  • Actualizar scePadReadExt+scePadReadStateExt por @illusion0001 en #246
  • Renombrar int a int32_t y unsigned int a uint32_t por @illusion0001 en #248
  • Actualizar .gitignore por @illusion0001 en #244
  • Reparar compilación para llvm 14+ por @illusion0001 en #242
  • Reparar símbolos indefinidos por @illusion0001 en #245
  • Cambiar sys/time.h a time.h en save_data.h en #238
  • Agregar información faltante de datos guardados por @xXxTheDarkprogramerxXx en #187
  • Definiciones de lanzamiento de aplicaciones (desde @LightningMods) por @illusion0001 en #232
  • Convertir definiciones de macro en enumeraciones por @illusion0001 en #243
  • Arreglar tipos de protección de mapas por @illusion0001 en #247
  • Actualizar libmonovm.h por @kiwidoggie en #251
  • GnmDriver: Agregar definiciones para SetEmbeddedShader y DrawIndexAuto por @pipehuffer en #240
  • Actualizar CommonDialog.h por @illusion0001 en #252
  • Actualizar la versión de CRT a 1.00 para permitir la compilación en firmwares más antiguos. por @kiwidoggie en #253
  • Crear un stub de biblioteca desde un archivo separado por @0xcaff en #258
  • Actualizar las versiones de acción y reconstruir cada mes por @illusion0001 en #263

No te pierdas nada, síguenos en Twitter, Mastodon o Threads!
Preguntas, aportes y peticiones en el foro.

×
×
  • Crear nuevo...