Files
Gary Riches 81bc5d1eec PS5 DevLoop: a virtual controller and screen capture for unattended PS5 development
A resident payload (ps5loop, port 9112) and a Python client that let a script
or an AI agent press buttons on a jailbroken PS5 and see what its screen shows.

- pad: a system-wide virtual DualSense through scePadVirtualDevice*, bound to
  the foreground user and made the controller titles read
- grab: the running title's own frame, through a request file the title answers
- shot: the console's screenshot, deleted afterwards through libSceContentDelete
- AGENTS.md: the operating guide for agents, and how to give a title the grab hook

Tested on firmware 13.60.

Claude-Session: https://claude.ai/code/session_017LYNPMseS8c9yDQh8GWSGZ
2026-10-11 09:55:35 +01:00

32 lines
697 B
Makefile

# PS5 DevLoop - resident input and screen-capture payload build.
# Copyright (C) 2026 Gary Riches
# SPDX-License-Identifier: GPL-3.0-or-later
#
# Builds build/ps5loop.elf. Run tools/build.sh, which resolves PS5_PAYLOAD_SDK.
ifndef PS5_PAYLOAD_SDK
$(error PS5_PAYLOAD_SDK is undefined; run tools/build.sh)
endif
include $(PS5_PAYLOAD_SDK)/toolchain/prospero.mk
ROOT := $(abspath $(CURDIR)/..)
OUTPUT := $(ROOT)/build
ELF := $(OUTPUT)/ps5loop.elf
CFLAGS := -std=c11 -O2 -g -Wall -Wextra -Werror
LDLIBS := -lScePad -lSceUserService -lpthread
all: $(ELF)
$(ELF): main.c | $(OUTPUT)
$(CC) $(CFLAGS) -o $@ main.c $(LDLIBS)
$(OUTPUT):
mkdir -p $(OUTPUT)
clean:
rm -f $(ELF)
.PHONY: all clean