Author Topic: DolceSDK - Playstation Vita homebrew SDK  (Read 2815 times)

Offline cuevavirus

  • Hot Pockets
  • Refugee
  • *****
  • Posts: 71
    • View Profile
DolceSDK - Playstation Vita homebrew SDK
« on: April 07, 2020, 07:03:11 AM »
Dolcesdk source repositories

DolceSDK is a homebrew SDK forked from Vitasdk due to the latter's glacial pace of development and incoherent policy on backward compatibility. Dolcesdk favours correctness over backward compatibility. Dolcesdk can be installed alongside Vitasdk so it is possible to build projects using either. This thread will be updated with changes and additions to DolceSDK.

Installing Dolcesdk

The installation process is similar to Vitasdk but several things have been renamed. See https://cbps.xyz/sdk/ for instructions on installation and see the next section for name changes.

Transitioning to Dolcesdk

Things have been renamed to avoid conflicts with Vitasdk or to rename explicit references to Vitasdk.

VITASDK envvar -> DOLCESDK
vita.cmake        -> dolce.cmake
vita.toolchain.cmake -> dolce.toolchain.cmake
arm-vita-eabi   -> arm-dolce-eabi
vdpm              -> ddpm
vitasdk-update -> dolcesdk-update
Toolchain commands prefix vita -> dolce
CMake macros prefix vita -> dolce
vitasdk.h and vitasdkkern.h prefix vita -> dolce
pthread function prefix vitasdk -> dolcesdk
« Last Edit: May 25, 2020, 09:22:22 PM by cuevavirus »

Offline cuevavirus

  • Hot Pockets
  • Refugee
  • *****
  • Posts: 71
    • View Profile
Re: DolceSDK - Playstation Vita homebrew SDK
« Reply #1 on: April 07, 2020, 07:10:03 AM »
Changes summary 2020-04-06

toolchain

- CMake macros have fixed dependency management and will no longer have circular dependency error.
- Changes to dolce_create_stubs to allow easy creation of static libraries from stubs
- Added dolce_gen_libs, a new cmake function that allows easy creation of static libraries from yml NID databases

headers

Additions and fixes to  SceJPEG, SceAvPlayer, SceRegMgr, ScePower, SceThreadmgr/Processmgr, SceAudio, SceSblACMgr, SceSysmem, SceLibKernel, SceDisplay

packages

Added ffmpeg and lame (https://github.com/DolceSDK/packages/commit/7e4452a49231d94a7ab18560bc1a28a83b7dddd5)

samples

GXM samples restored (https://github.com/DolceSDK/samples/commit/269651fed1935707023a2a916a8f182dd852ef18)

buildscripts

gdb removed due to intermittent build errors (https://github.com/vitasdk/buildscripts/issues/65)
« Last Edit: April 19, 2020, 10:39:39 PM by cuevavirus »

Offline cuevavirus

  • Hot Pockets
  • Refugee
  • *****
  • Posts: 71
    • View Profile
Re: DolceSDK - Playstation Vita homebrew SDK
« Reply #2 on: April 19, 2020, 10:38:08 PM »
Changes summary 2020-04-19

toolchain

Thanks to Graphene, the toolchain is able to create apps never before seen with Vitasdk.

- fixed a bug in velf generation that prevented most common dialogs from being used
- added dolce-mkbootparam, a new command for creating custom boot params
- changes to dolce-make-fself and dolce_make_self to allow using custom boot params made with the previous command

Dolcesdk/vitasdk makes use of mksfoex, originally from pspsdk. We have included the pspsdk license which vitasdk had failed to do.

headers

Changes to SceIftu.

Offline cuevavirus

  • Hot Pockets
  • Refugee
  • *****
  • Posts: 71
    • View Profile
Re: DolceSDK - Playstation Vita homebrew SDK
« Reply #3 on: April 21, 2020, 11:30:07 PM »
Changes summary 2020-04-21

toolchain

- dolce-mkbootparam renamed to dolce-make-bootparam and updated with all boot param options. See sample usage at https://github.com/cuevavirus/BG-App-PSV

headers

- added psp2/systemgesture.h for SceSystemGesture

packages

- added libvita2d_sys

Offline cuevavirus

  • Hot Pockets
  • Refugee
  • *****
  • Posts: 71
    • View Profile
Re: DolceSDK - Playstation Vita homebrew SDK
« Reply #4 on: May 19, 2020, 02:41:40 AM »
Changes summary 2020-05-18

packages

- packages are now hosted separately from Vitasdk
- added binaries for Dolcesdk exclusive packages: lame, ffmpeg, libvita2d_sys

ddpm

- updated to download packages from new package host

headers

- names and prototypes in SceSysclibForDriver, SceGxmInternalForVsh, SceLibKernel
« Last Edit: May 19, 2020, 05:22:30 PM by cuevavirus »

Offline cuevavirus

  • Hot Pockets
  • Refugee
  • *****
  • Posts: 71
    • View Profile
Re: DolceSDK - Playstation Vita homebrew SDK
« Reply #5 on: June 06, 2020, 09:41:38 AM »
Changes summary 2020-06-06

Compatibility notice: The gcc code gen options "-fno-short-enums" and "-fshort-wchar" are now default as of build-2020-06-05-225312. This fixes enums to 4 bytes and changes the type of wchar to unsigned short. This conforms with the SNC toolchain and provides binary compatibility with the SNC toolchain. Also fixes some wrong struct size in the headers caused by variable size enums. Linking against older binaries may produce a linker warning and can be ignored if you do not use enums and wchars, or have used them in a way that is unaffected by this change. Packages in the DolceSDK package repository will be rebuilt over the coming days.

Deprecation notice: The header files "dolcesdk.h" and "dolcesdkkern.h" will be removed in the future. The number of headers in DolceSDK is increasing and including too many headers can negatively impact compilation speed.

headers

- SceNotificationUtils thanks to Graphene
- Additions for SceKernelThreadmgr, SceGxm, SceGxt, SceScreenShot, SceIme, SceImeDialog

packages

- added fnblit
- updated taihen

Offline cuevavirus

  • Hot Pockets
  • Refugee
  • *****
  • Posts: 71
    • View Profile
Re: DolceSDK - Playstation Vita homebrew SDK
« Reply #6 on: June 18, 2020, 03:49:12 AM »
Changes summary 2020-06-17

As of build-2020-06-17-235400, SceLibc is useable including memory allocation functions. Newlib remains the default but consider this a transitional period while we work towards removing newlib entirely. Follow these steps to use SceLibc:

1. Pass "-nostdlib" to gcc to remove default library links.
2. Link SceLibc_stub, as well as any other necessary libraries.
3. Define _start() instead of main(). These two functions do not share the same arguments.
4. Pass "-h <bytes>" to vita-create-elf specify the libc heap size. The default is 256 KiB if you do not pass this option. Set DOLCE_ELF_CREATE_FLAGS if you are using the CMake macros.
5. Pass "-fno-builtins" if you do not want gcc to use libc builtins.

This has been made possible with help from Graphene.

newlib

- Remove "-fshort-enums"

gcc

- Use "int" and "unsigned int" for "int32_t" and "uint32_t" instead of "long int" and "long unsigned int"

packages

- Various packages added and rebuilt for Dolcesdk

headers

- Added or updated headers for SceGxm, SceNotificationUtil, SceIncomingDialog, SceShellUtil, SceSas

Offline cuevavirus

  • Hot Pockets
  • Refugee
  • *****
  • Posts: 71
    • View Profile
Re: DolceSDK - Playstation Vita homebrew SDK
« Reply #7 on: July 08, 2020, 03:33:17 AM »
Changes summary 2020-07-07

Compatibility notice: In build-2020-07-07-222810, a large number of header changes occurred relating to SCE types and threadmgr. You may need to include additional headers, rename struct fields, rename union fields, rename macros, add field for typedefs and structs that became unions, or remove duplicate definitions. Threadmgr related structs which had the wrong number of fields had also been corrected. With these changes, psp2/kernel/threadmgr.h has all constants and prototypes for thread management and synchronisation.

Headers

- Additions and changes in SceBgAppUtil, SceTriggerUtil, SceThreadmgr, SCE types, error codes, SceCodecEngine, SceJpegArm, SceModulemgr (many of these additions are thanks to Graphene)
- Items common to user and kernel modules are to be placed in psp2common. Do not include directly from psp2common.
- Added a file db_367.yml containing NIDs for firmware >=3.65. At the moment this file is for reference only.

ddpm

- Bug fix related to quoting variable expansion
- Updated default install list to match available packages

makepkg

- Bug fix related with dependency management (or lack thereof)

toolchain

- Made LIB argument for dolce_gen_libs and dolce_create_stubs optional

packages

- Removed various unused packages
- Added libvitaSAS and libShellAudio
- Patched most packages to build with Dolcesdk
« Last Edit: July 08, 2020, 03:36:54 AM by cuevavirus »