Initial commit: Immich client PoC for PS Vita

Scrollable chronological photo grid with full-screen viewer, fetching
previews from an Immich server via its REST API. Thumbnails stream in
on a background thread over a keep-alive connection. JPEG decoding is
done with libjpeg directly (vita2d's loader rejects Immich's
APP2-first JPEGs). JSON parsed with vendored jsmn (the vitasdk jansson
package is built as PIC, which vita-elf-create can't handle).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Sads
2026-06-11 23:34:27 +02:00
co-authored by Claude Fable 5
commit b7ac3768a8
5 changed files with 1685 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
cmake_minimum_required(VERSION 3.10)
if(NOT DEFINED CMAKE_TOOLCHAIN_FILE)
if(DEFINED ENV{VITASDK})
set(CMAKE_TOOLCHAIN_FILE "$ENV{VITASDK}/share/vita.toolchain.cmake" CACHE PATH "toolchain file")
else()
message(FATAL_ERROR "Please define VITASDK to point to your SDK path!")
endif()
endif()
project(vitaImmich C)
include("${VITASDK}/share/vita.cmake" REQUIRED)
set(VITA_APP_NAME "Vita Immich")
set(VITA_TITLEID "VIMM00001")
set(VITA_VERSION "01.00")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2")
add_executable(${PROJECT_NAME}
src/main.c
)
target_link_libraries(${PROJECT_NAME}
vita2d
curl
ssl
crypto
zstd
freetype
png
jpeg
z
m
SceDisplay_stub
SceGxm_stub
SceSysmodule_stub
SceCtrl_stub
SceCommonDialog_stub
ScePgf_stub
SceAppMgr_stub
SceNet_stub
SceNetCtl_stub
)
vita_create_self(${PROJECT_NAME}.self ${PROJECT_NAME})
vita_create_vpk(${PROJECT_NAME}.vpk ${VITA_TITLEID} ${PROJECT_NAME}.self
VERSION ${VITA_VERSION}
NAME ${VITA_APP_NAME}
)