From 49a4b2014be6f16bc7c451c267f80d7e24c2d36a Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Fri, 10 Mar 2023 01:52:47 +0100 Subject: [PATCH] Build for PSP --- .circleci/config.yml | 11 +++++++++++ CMake/Platforms.cmake | 4 ++++ CMake/platforms/psp_defs.cmake | 9 +++++++++ CMakeLists.txt | 12 +++++++++++- Packaging/psp/background.png | Bin 0 -> 47500 bytes Packaging/psp/icon.png | Bin 0 -> 968 bytes Source/multi.cpp | 2 ++ Source/storm/storm_svid.cpp | 8 ++++++++ Source/utils/display.cpp | 4 ++++ 9 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 CMake/platforms/psp_defs.cmake create mode 100644 Packaging/psp/background.png create mode 100644 Packaging/psp/icon.png diff --git a/.circleci/config.yml b/.circleci/config.yml index ddd92ae23..3623e169b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -48,6 +48,16 @@ jobs: - run: cmake -S. -Bbuild -GNinja -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo - run: cmake --build build -j 2 - store_artifacts: {path: ./build/devilutionx.vpk, destination: devilutionx.vpk} + psp: + docker: + - image: pspdev/pspdev + working_directory: ~/repo + steps: + - checkout + - run: apk --no-cache add git cmake gettext + - run: psp-cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_PRX=1 -DENC_PRX=1 + - run: cmake --build build -j 2 + - store_artifacts: {path: ./EBOOT.PBP, destination: EBOOT.PBP} workflows: version: 2 @@ -57,3 +67,4 @@ workflows: - 3ds - amigaos-m68k - vita + - psp diff --git a/CMake/Platforms.cmake b/CMake/Platforms.cmake index 56e138f1b..e762155ba 100644 --- a/CMake/Platforms.cmake +++ b/CMake/Platforms.cmake @@ -52,6 +52,10 @@ if(VITA) include(platforms/vita) endif() +if(PSP) + include(platforms/psp_defs) +endif() + if(PS4) include(platforms/ps4) endif() diff --git a/CMake/platforms/psp_defs.cmake b/CMake/platforms/psp_defs.cmake new file mode 100644 index 000000000..e5ca1e00d --- /dev/null +++ b/CMake/platforms/psp_defs.cmake @@ -0,0 +1,9 @@ +set(NONET ON) +set(DEVILUTIONX_SYSTEM_SDL_IMAGE OFF) +set(BUILD_TESTING OFF) +set(PREFILL_PLAYER_NAME ON) +set(NOEXIT ON) + +set(DEFAULT_WIDTH 480) +set(DEFAULT_HEIGHT 272) + diff --git a/CMakeLists.txt b/CMakeLists.txt index aa67083b9..50d8ee97c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -240,7 +240,7 @@ endif() # # PS4 toolchain crashes in `create-fself` when linking with these flags, so we exclude it: # https://github.com/PacBrew/ps4-openorbis/issues/8 -if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" AND NOT PS4) +if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" AND NOT PS4 AND NOT PSP) add_compile_options("$<$>:-ffunction-sections;-fdata-sections>") if(APPLE) add_link_options("$<$>:LINKER:-dead_strip>") @@ -501,6 +501,16 @@ if(NXDK) add_custom_target(nxdk_xbe DEPENDS "${_xbe_path}") endif() +if(PSP) + create_pbp_file( + TARGET ${BIN_TARGET} + ICON_PATH "${PROJECT_SOURCE_DIR}/Packaging/psp/icon.png" + BACKGROUND_PATH "${PROJECT_SOURCE_DIR}/Packaging/psp/background.png" + PREVIEW_PATH NULL + TITLE ${PROJECT_NAME} + ) +endif() + if(CPACK AND (APPLE OR BUILD_ASSETS_MPQ OR SRC_DIST)) if(WIN32) if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") diff --git a/Packaging/psp/background.png b/Packaging/psp/background.png new file mode 100644 index 0000000000000000000000000000000000000000..8059ff242b85e681e7789683cdf24f9b91bfd68a GIT binary patch literal 47500 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 literal 0 HcmV?d00001 diff --git a/Packaging/psp/icon.png b/Packaging/psp/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..558d3c47a042d92bdf4a3fa72d33dd080c9b3e16 GIT binary patch literal 968 zcmV;(12_DMP)P)t-sQ2+n{ z0000001*)p92^`oGc!U$LRD2&UteEl003rYW`Fi+-$|NsA|H%F!b0004WQchCDsc+@;P;u|P^vDD||eyc%5QrT1i)sjT&?f!T?LYuz5 z0h`0*{RKyqC1!!3$=hDbN*IH{$k_{-?EsLZ%PbukG-BF}DK<@r8BDkqY?5lfu z1KvqP-kKZxdRZq88(U6=v(vuYD#b`Tw7|*n4NTGjBEm?zz7HO)$X7Y$}21Fvp>eiY$?eH@g zNizUI6bTm~VLCMD0<*ng-i&nUR!S+FL_#r6O+02PHEi&24M zh>f<-mft``)AD_NMM{Yh1g1eg0|H|^0lVdL{t6eMv^h=XA6C)@2;l0($sxWqA(D#f zH6>9Wa}GyIDHV+(HoYYgk)#UX)vfn1HqN$c%i!?T%nOOr2Xg-nEaUJ9*wcbS}76kw_Z$|ba5qfdI$~)|;C`orkTM$vb z`k#U4^KsvIbeF11j76{hSK#@4?10Tq4i(pgS98Mc6YvZYM9}7%V{AH*5Jg0CIs*Ix zs+25%kGY2T)yzaBiRQn6r{qoGq|Z6$nxhxVIpWU<&s&73lSYm{*6LKv1xao{fN0j@UA5d1an46aW=YP)e!{&c>sY-EAh2uE@0000(SVidWidth); int renderHeight = static_cast(SVidHeight); +#ifdef PSP + texture = SDLWrap::CreateTexture(renderer, SDL_PIXELFORMAT_ABGR1555, SDL_TEXTUREACCESS_STREAMING, renderWidth, renderHeight); +#else texture = SDLWrap::CreateTexture(renderer, SDL_PIXELFORMAT_RGB888, SDL_TEXTUREACCESS_STREAMING, renderWidth, renderHeight); +#endif if (SDL_RenderSetLogicalSize(renderer, renderWidth, renderHeight) <= -1) { ErrSdl(); } @@ -379,7 +383,11 @@ void SVidPlayEnd() #ifndef USE_SDL1 if (renderer != nullptr) { +#ifdef PSP + texture = SDLWrap::CreateTexture(renderer, SDL_PIXELFORMAT_ABGR1555, SDL_TEXTUREACCESS_STREAMING, gnScreenWidth, gnScreenHeight); +#else texture = SDLWrap::CreateTexture(renderer, SDL_PIXELFORMAT_RGB888, SDL_TEXTUREACCESS_STREAMING, gnScreenWidth, gnScreenHeight); +#endif if (renderer != nullptr && SDL_RenderSetLogicalSize(renderer, gnScreenWidth, gnScreenHeight) <= -1) { ErrSdl(); } diff --git a/Source/utils/display.cpp b/Source/utils/display.cpp index 18c180e27..d711aa3da 100644 --- a/Source/utils/display.cpp +++ b/Source/utils/display.cpp @@ -387,7 +387,11 @@ void ReinitializeTexture() auto quality = StrCat(static_cast(*sgOptions.Graphics.scaleQuality)); SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, quality.c_str()); +#ifdef PSP + texture = SDLWrap::CreateTexture(renderer, SDL_PIXELFORMAT_ABGR1555, SDL_TEXTUREACCESS_STREAMING, gnScreenWidth, gnScreenHeight); +#else texture = SDLWrap::CreateTexture(renderer, SDL_PIXELFORMAT_RGB888, SDL_TEXTUREACCESS_STREAMING, gnScreenWidth, gnScreenHeight); +#endif } void ReinitializeIntegerScale()