mirror of
https://github.com/mihawk-99/PS5_RetroArch.git
synced 2026-10-18 23:09:29 -05:00
Sets up this project as the native pipeline's scaffolding plus RetroArch's
sources, so RetroArch is compiled for the title pipeline rather than converted
into it.
- tools/scaffold-native.sh builds the scaffold from
../ps5-native-app-boilerplate-main: tooling, runtime (digest verified),
Makefile and its tools, merged into this repository's tools/ rather than
replacing them. An earlier version replaced tools/ wholesale and deleted this
project's own scripts; the copy is now additive and the reason is in the file.
- tools/fetch-retroarch.sh clones the pinned upstream tag into vendor/ and
records the revision, so "built from RetroArch 1.22.2" is checkable.
- src/display.{hpp,cpp} owns the console's display: VideoOut, direct memory, two
registered buffers, present-and-wait. The sequence and its two load-bearing
details come from the sibling application that proved it on hardware.
- src/main.cpp draws a moving bar: the cheapest thing that proves build, title
format, launcher, VideoOut and the direct-memory path together.
- sce_sys/param.json is this project's identity, PPSA99169.
Evidence: src/display.cpp compiles through the pipeline's compiler
(tooling/prospero-clang18 with PS5_CLANG=/usr/bin/clang, -std=c++20), and a
RetroArch source file compiles the same way with its include paths.
35 lines
869 B
C++
35 lines
869 B
C++
/*
|
|
* ps5-native-app-boilerplate - Native PS5 dynamic-module writer interface.
|
|
* Copyright (C) 2026 BlackBearReloaded
|
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
*
|
|
* Declares conversion of an ordinary LLVM-linked PIE into the PS5 application
|
|
* ELF layout consumed by the FSELF wrapper.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "elf_object.hpp"
|
|
|
|
#include <cstdint>
|
|
#include <span>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace ps5::module
|
|
{
|
|
|
|
struct Options
|
|
{
|
|
std::string entry = "_start";
|
|
std::string file_name = "eboot.elf";
|
|
std::uint32_t module_sdk = 0x02000009;
|
|
std::uint32_t companion_sdk = 0x08050001;
|
|
std::vector<std::string> version_components;
|
|
};
|
|
|
|
[[nodiscard]] elf::Bytes write_executable(const elf::Image &image, std::span<const elf::Stub> stubs,
|
|
const Options &options = {});
|
|
|
|
} // namespace ps5::module
|