Files
ppsspp/UI/CMakeLists.txt
T
Claude 363d816789 Game screen: Compress game as CSO
"Compress game" in the game screen's ... menu, for ISO, CSO, CHD and PSN
EBOOT.PBP games. It opens a list of the CSO presets (and Extract to ISO
for anything that's not an ISO already):

- Best: libdeflate level 12, 64K blocks
- PSP Compatible: zlib level 9, 2K blocks, readable by custom firmware

These match maxcso's presets, and the CSOs come out byte-identical to its.
The writer, Core/FileSystems/CSOCompress, reads the input through PPSSPP's
own block devices, so recompressing is a single pass with no temporary
file.

The original is deleted when done, unless "Keep the original file" is
checked (off by default). When the new name is taken, by a kept original
or another file, a number is added to it.

The work runs on a thread using every core, with a progress bar and time
left at the bottom of the game screen. It keeps going when the screen is
left, and the ... menu offers Cancel meanwhile. On the game list the
game's icon is covered by "Compressing...", and clicking it opens the
game screen instead of playing. When done, recents follow the new file
and the game screen and lists refresh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CCxekYqPnzNr5d8Tp1q7aZ
2026-10-19 16:01:53 +02:00

138 lines
2.9 KiB
CMake

set(UISource)
if(NOT LIBRETRO)
list(APPEND UISource
AudioCommon.h
AudioCommon.cpp
)
endif()
list(APPEND UISource
ImDebugger/ImCommand.h
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
DiscordIntegration.h
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
GamePacker.h
GamePacker.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
ShareFiles.h
ShareFiles.cpp
SystemInfoScreen.h
SystemInfoScreen.cpp
Store.h
Store.cpp
UploadScreen.h
UploadScreen.cpp
CwCheatScreen.h
CwCheatScreen.cpp
FirmwareScreen.h
FirmwareScreen.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)