Commit Graph
1274 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Sonnet 5 29a38af37e Per-module symbol save/load, module identity via crc, GetModuleIndex fix
SymbolMap:
- Fix GetModuleIndex(): it only checked the end of an active module's range
  (via activeModuleEnds.upper_bound), never the start, so an address sitting
  in the gap before a module was silently misattributed to it. Added
  GetModuleIndexByName() as a companion lookup.
- AddModule() gains an optional crc param, stored per ModuleEntry. Reactivating
  a module by name now also requires the crc to agree when both sides know it,
  so two unrelated binaries that happen to share a name no longer get merged
  into one symbol table (addresses the old TODO at the top of SymbolMap.h).
- AddLabel()/AddFunction() gain an updateName param (default false, preserving
  existing "first writer wins" behavior) so a trusted source - like a loaded
  symbol file - can be allowed to overwrite a name that a lower-confidence
  automatic pass already assigned.
- New SaveModuleSymbols()/LoadModuleSymbols()/GetModuleSymbolsPath(): save or
  restore one module's functions/data/labels to/from a small human-editable
  text file, addressed relative to the module (so the file stays valid however
  the module ends up positioned on a later run). Keyed by
  PSP/SYSTEM/SYMBOLS/<moduleName>_<crc>.ppsym - deliberately by module+crc
  rather than by game, so it's shared by every game/homebrew that loads the
  exact same module. A "# game <id> <title>" comment records who last saved
  it, informational only.

WebSocket debugger: hle.module.saveSymbols/loadSymbols expose the above.

sceKernelModule.cpp: auto-load a module's saved symbols right after it's
registered with the symbol map (both the real ELF-load path and the
savestate-load path), and auto-save on unload (before UnloadModule(), while
its symbols are still active) - gated behind the new bAutoSaveLoadSymbols
config setting (default off), with a matching Developer Tools checkbox and
a --auto-save-load-symbols command-line override for headless use.

Includes some in-progress cleanup already staged: DescribeAddress now calls
g_symbolMap->GetDescription() directly instead of through the now-removed
MIPSDebugInterface::getDescription() wrapper.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GZq8ZtJmFY7bkX5FVkr3P9
2026-08-17 16:01:23 +02:00
Henrik Rydgård fbfcb8925e Merge pull request #22099 from n00mkrad/softgpu-dither-opt
Allow disabling dithering when using software rendering
2026-08-17 12:47:57 +02:00
nmkd 8e9a8b8d76 Allow disabling dithering when using software rendering 2026-08-16 15:27:41 +02:00
Henrik Rydgård 5cffcd34ad Get rid of the confusing old USING_WIN_UI define. Make a more clear system property for headless. 2026-08-16 12:19:41 +02:00
Henrik Rydgård abb57c620f Adjust some log levels 2026-08-09 22:10:54 +02:00
Henrik RydgårdandClaude Sonnet 5 dcf742edb4 Dsable AndroidHwScale by default
AndroidHwScale defaults to 0 instead of the old device/resolution-based heuristic (which is
removed along with DefaultAndroidHwScale()).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L4QAoxV2KY7ek4PcZw3WvY

...
2026-08-09 19:03:08 +02:00
Henrik Rydgård 8cd7e1b2c0 Delete all support for Qt
Our Qt backend has long been left behind and doesn't even support Vulkan
currently. There would be a lot of work to make it viable, and I don't
think anyone is really interested.

ImGui on SDL will soon fulfill the need for a more classic user interface
with a menu bar on Linux, and on Mac we already have a native UI.
2026-08-08 18:18:28 +02:00
Henrik Rydgård 25532a9b64 Fix build error in iOS app store build. Also fix a log error. 2026-08-07 18:43:29 +02:00
Henrik Rydgård 092ab42fe7 Clean up ugly usage of the g_nativeLibDir global. Now it's local in VulkanLoader. 2026-08-06 18:12:04 +02:00
Henrik Rydgård 60fc887306 Clean up Config::PostLoadCleanup, reject disabled GPU backends 2026-08-06 17:45:37 +02:00
Henrik Rydgård db30fabf03 Add a setting (defaulting to false) for enabling file handler plugins 2026-08-03 11:24:36 +02:00
Henrik Rydgård 683704d61d Add new log category for config 2026-07-30 10:03:15 +02:00
Henrik Rydgård 5ef736f6a7 More command line improvements 2026-07-27 18:37:28 +02:00
Henrik Rydgård a886cfb5ab First step of centralizing command line parsing 2026-07-20 12:02:07 +02:00
Henrik Rydgård 993c3a9c67 Avoid accurately computing disk space on iOS and Android (where it can be slow). Add a setting. 2026-07-14 22:22:29 +02:00
Henrik Rydgård 61e1ef8f7a Remove the "Software skinning" option. Now always on. 2026-07-14 17:02:57 +02:00
Henrik Rydgård 5f7281bd8e Remove old vestiges of geometry shader support 2026-07-08 18:25:08 +02:00
Henrik Rydgård 623545bd24 Delete the "Hardware tessellation" feature.
Very hard to maintain and debug, not worth it.
2026-06-16 16:17:14 +02:00
Henrik Rydgård 5265422c0e Remove the old "Fragment ubershader" setting. It's been on by default for years and is not really an ubershader. 2026-06-10 09:54:52 +02:00
Henrik Rydgård 36bdde68f9 Delete the "Lazy texture cache" option 2026-06-09 23:49:54 +02:00
jasaaved 95006cf1d3 Changed bFullScreenExclusive to bAllowFullScreenExclusive
There's no guarantee VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT will enter Fullscreen exclusive (FSE). Under the right conditions, the driver and/or DWM can grant FSE. Adding "allow" to the FSE setting should make this a bit clearer.
2026-06-04 12:54:52 -07:00
jasaaved 0c23cdaf3d Windows Vulkan: default to borderless fullscreen, add exclusive option
Vulkan swapchain now explicitly sets VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT by default, enabling proper borderless fullscreen behavior with benefits including better Alt+Tab, VRR/G-Sync/FreeSync, and Auto HDR support.
2026-06-03 17:15:13 -07:00
Henrik Rydgård 2d7ebe0835 Merge pull request #21688 from RRDVD/cross-shaped-anti-deadzone
Add Steam Input-style advanced deadzone controls to analog calibration
2026-06-03 10:40:47 +02:00
Henrik Rydgård 33ae88af6d Delete option "Disable range culling". No games are known to require it anymore. 2026-05-31 23:31:06 +02:00
Henrik Rydgård 931c246208 Merge pull request #21755 from Eloren1/load-save-confirm
Add load state confirmation setting
2026-05-31 22:04:19 +02:00
Henrik Rydgård e8e357e360 Implement the "Mix audio with other apps" setting on Android. 2026-05-31 19:08:45 +02:00
Eloren1 23aef44ae1 UI: Add load state confirmation option 2026-05-31 19:32:41 +03:00
David Cottingham b585a1fcf4 Address review: remove redundant outer/output anti-deadzone controls 2026-05-22 18:51:08 -10:00
Henrik Rydgård 0092e266de Merge pull request #21697 from GermanAizek/std-empty-and-clear
Core/UI: use clear() and empty() for std containers
2026-05-18 12:43:36 +02:00
Herman Semenoff d406f63102 Core/UI: use clear() and empty() for std containers 2026-05-17 21:28:31 +03:00
David Cottingham 043b0a437c Add Steam Input-style advanced deadzone controls to analog calibration 2026-05-16 19:09:25 -10:00
Henrik Rydgård bc62602935 Add checkboxes to enable/disable the three input backends.
Can probably serve as a workaround for #21494
2026-05-01 21:28:25 +02:00
Henrik Rydgård 5ec0aaeb6b Change the default of "Low latency present" to false, doesn't seem to work well on VRR and on platforms like 2026-04-23 11:22:14 +02:00
Henrik Rydgård c2655eaf82 Don't save the current tab between sessions. 2026-04-16 13:57:27 -06:00
Henrik Rydgård 56ca89a6e3 Adhoc: Don't show player ports by default (control with developer setting) 2026-04-16 12:48:14 -06:00
Henrik Rydgård 49d3d3dc37 Settings and dev settings: Preserve the current tab. Minor UI tweaks. 2026-04-06 12:09:40 -06:00
Henrik Rydgård 8304d8622a Hide the save/load indicator by default, add a (developer) setting. Also sneak in an adhoc server list bug fix.
Fixes #21523
2026-04-06 10:04:09 -06:00
Guido Cella 4413c7b10f Implement pause on lost focus on SDL
This option was Windows exclusive and this commit implements it on SDL
as well.

It is hidden on mobile devices because it makes no sense there.
2026-04-01 15:39:34 +02:00
Henrik Rydgård 300f18db58 Add back the "Landscape auto" rotation type 2026-03-24 10:36:16 -06:00
Henrik Rydgård 620c6ae049 Add UI for adding and removing custom servers from the adhoc server screen 2026-03-09 11:57:31 +01:00
Henrik Rydgård b0a3d5753a Remove an obsolete setting 2026-03-07 09:19:31 +01:00
Henrik Rydgård 04b86a0d87 Address Kethen's feedback 2026-03-06 13:34:16 +01:00
Henrik Rydgård 1a95e9e4e9 Fetch the public adhoc server list from metadata.ppsspp.org/adhoc-servers.json 2026-03-06 13:25:07 +01:00
Henrik Rydgård 3d50bf4b7d Add categories to the server list 2026-03-06 13:25:07 +01:00
Henrik Rydgård 0d8358827b Move the pre-loaded adhoc server address list logic to sceNetAdhoc.cpp
Yes, that file is growing too big...
2026-03-05 10:05:08 +01:00
Henrik Rydgård 2052ebc60c Fix switching of audio devices on Windows.
Fixes #21337
2026-03-04 14:41:59 +01:00
Henrik Rydgård 3255f26b47 Add another adhoc server to the list 2026-03-03 12:17:32 +01:00
Katharine Chui eb87c92252 update brazil server name as requested by server owner 2026-03-03 11:31:34 +01:00
Henrik Rydgård a98ae2e664 Server reordering 2026-03-02 23:40:15 +01:00
Henrik Rydgård e780e32f98 Controls: Add a setting for the threshold used to map analog stick inputs to digital buttons 2026-03-02 22:50:15 +01:00