mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-09-30 00:06:42 +02:00
Opening a .pkg now offers to install it, the way a .zip does - see the new InstallPkgScreen, which shows what the update patches, what it'll take up on disk (exact, since package contents aren't compressed) and where it's going. The package's PS3-style USRDIR/CONTENT wrapping is stripped so the files land where the PSP expects them, in PSP/GAME/<DISC_ID>. Booting a disc then looks for PSP/GAME/<DISC_ID>/PBOOT.PBP and boots that instead of the disc's own EBOOT, leaving the disc mounted - so the update overrides the files it ships and the disc supplies the rest. The update's DISC_ID has to match; a DISC_VERSION mismatch only warns, since updates do get used with slightly different dumps in practice. Verified against the whole corpus: every one installs, and the digital NP* update/base-image pairs that could be assembled all boot the patch rather than the disc's executable. That includes Super Robot Taisen Operation Extend from a real NPUMDIMG EBOOT.PBP, which settles that ISO.BIN.EDAT does not re-key the PBOOT - a digital title's patched EBOOT is encrypted exactly like a UMD one. On the UMD side, the patched LittleBigPlanet reads PATCH.ARC out of the install alongside the disc's own archive. The DISC_VERSION warning turns out to be load-bearing: many of the pairs mismatch, because the dumps in circulation are later disc revisions than the updates were built against. docs/pkg_notes.md has the numbers, and the one thing that doesn't work - PGD-wrapped .sprx modules, which sceKernelLoadModuleNpDrm can't load. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
130 lines
2.7 KiB
CMake
130 lines
2.7 KiB
CMake
set(UISource)
|
|
if(NOT LIBRETRO)
|
|
list(APPEND UISource
|
|
AudioCommon.h
|
|
AudioCommon.cpp
|
|
)
|
|
endif()
|
|
|
|
list(APPEND UISource
|
|
ImDebugger/ImDebugger.cpp
|
|
ImDebugger/ImDebugger.h
|
|
ImDebugger/ImGe.cpp
|
|
ImDebugger/ImGe.h
|
|
ImDebugger/ImConsole.cpp
|
|
ImDebugger/ImConsole.h
|
|
ImDebugger/ImDisasmView.cpp
|
|
ImDebugger/ImDisasmView.h
|
|
ImDebugger/ImMemView.cpp
|
|
ImDebugger/ImMemView.h
|
|
ImDebugger/ImStructViewer.cpp
|
|
ImDebugger/ImStructViewer.h
|
|
ImDebugger/ImJitViewer.cpp
|
|
ImDebugger/ImJitViewer.h
|
|
DiscordIntegration.cpp
|
|
NativeApp.cpp
|
|
AdhocServerScreen.h
|
|
AdhocServerScreen.cpp
|
|
BackgroundAudio.h
|
|
BackgroundAudio.cpp
|
|
Background.h
|
|
Background.cpp
|
|
ChatScreen.h
|
|
ChatScreen.cpp
|
|
BaseScreens.h
|
|
BaseScreens.cpp
|
|
DebugOverlay.cpp
|
|
DebugOverlay.h
|
|
DevScreens.cpp
|
|
DevScreens.h
|
|
DisplayLayoutScreen.cpp
|
|
DisplayLayoutScreen.h
|
|
EmuScreen.h
|
|
EmuScreen.cpp
|
|
GameInfoCache.h
|
|
GameInfoCache.cpp
|
|
IAPScreen.cpp
|
|
IAPScreen.h
|
|
MainScreen.h
|
|
MainScreen.cpp
|
|
GameBrowser.h
|
|
GameBrowser.cpp
|
|
MiscScreens.h
|
|
MiscScreens.cpp
|
|
MiscViews.h
|
|
MiscViews.cpp
|
|
PauseScreen.h
|
|
PauseScreen.cpp
|
|
SimpleDialogScreen.h
|
|
SimpleDialogScreen.cpp
|
|
TabbedDialogScreen.h
|
|
TabbedDialogScreen.cpp
|
|
GameScreen.h
|
|
GameScreen.cpp
|
|
GameSettingsScreen.h
|
|
GameSettingsScreen.cpp
|
|
DeveloperToolsScreen.h
|
|
DeveloperToolsScreen.cpp
|
|
DriverManagerScreen.h
|
|
DriverManagerScreen.cpp
|
|
GPUDriverTestScreen.h
|
|
GPUDriverTestScreen.cpp
|
|
TiltAnalogSettingsScreen.h
|
|
TiltAnalogSettingsScreen.cpp
|
|
TouchControlLayoutScreen.h
|
|
TouchControlLayoutScreen.cpp
|
|
TouchControlVisibilityScreen.h
|
|
TouchControlVisibilityScreen.cpp
|
|
GamepadEmu.h
|
|
GamepadEmu.cpp
|
|
JoystickHistoryView.h
|
|
JoystickHistoryView.cpp
|
|
LoadStateConfirmScreen.h
|
|
LoadStateConfirmScreen.cpp
|
|
OnScreenDisplay.h
|
|
OnScreenDisplay.cpp
|
|
ControlMappingScreen.h
|
|
ControlMappingScreen.cpp
|
|
RemoteISOScreen.h
|
|
RemoteISOScreen.cpp
|
|
ReportScreen.h
|
|
ReportScreen.cpp
|
|
SavedataScreen.h
|
|
SavedataScreen.cpp
|
|
SystemInfoScreen.h
|
|
SystemInfoScreen.cpp
|
|
Store.h
|
|
Store.cpp
|
|
UploadScreen.h
|
|
UploadScreen.cpp
|
|
CwCheatScreen.h
|
|
CwCheatScreen.cpp
|
|
InstallUpdateScreen.h
|
|
InstallUpdateScreen.cpp
|
|
InstallZipScreen.h
|
|
InstallZipScreen.cpp
|
|
InstallPkgScreen.h
|
|
InstallPkgScreen.cpp
|
|
JitCompareScreen.h
|
|
JitCompareScreen.cpp
|
|
MemStickScreen.h
|
|
MemStickScreen.cpp
|
|
ProfilerDraw.h
|
|
ProfilerDraw.cpp
|
|
CustomButtonMappingScreen.h
|
|
CustomButtonMappingScreen.cpp
|
|
Theme.h
|
|
Theme.cpp
|
|
UIAtlas.h
|
|
UIAtlas.cpp
|
|
RetroAchievementScreens.cpp
|
|
RetroAchievementScreens.h
|
|
)
|
|
|
|
# Headless and unit test builds never link this - they don't have a UI to show. See the
|
|
# comment above add_subdirectory(UI) in the root CMakeLists.txt for why USE_DISCORD=1 has
|
|
# to be defined before this add_subdirectory() call rather than in here.
|
|
add_library(ppsspp_ui STATIC ${UISource})
|
|
target_link_libraries(ppsspp_ui Common Core)
|
|
setup_target_project(ppsspp_ui UI)
|