Commit Graph
49895 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Opus 5.5 5fd1afffd8 Add the net/adhoc pspautotests to tests_next
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 17:13:45 +01:00
Henrik Rydgård 422887edf8 Merge pull request #22814 from Kethen/adhoc_regression_fix
fix adhocctl regression by restoring wrongly removed logic
2026-10-27 15:47:44 +01:00
Katharine Chui 262416ad90 fix adhocctl regression by restoring wrongly removed logic
- 23efd22efb : Fix Stuck issue on some games (Dissidia 012, Full Auto 2, etc) when Failed to connect to Adhoc Server (faked success)
- 7ec860c24f : Adhoc: Stop waiting for a login that has already failed
2026-10-27 15:02:04 +01:00
Henrik Rydgård 4c49233a39 Merge pull request #22813 from hrydgard/notice-view-style
NoticeView: Round corners like a Choice, pad the contents, fill the width
2026-10-27 14:30:09 +01:00
Henrik RydgårdandClaude Opus 5.5 adf905ce7a NoticeView: Take the padding from the theme's corner radius
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 13:29:01 +01:00
Henrik Rydgård 2ee1a0bea7 Merge pull request #22811 from hrydgard/misc-logic-fixes
Misc logic fixes from a Claude code review
2026-10-27 12:35:59 +01:00
Henrik RydgårdandClaude Opus 5.5 a941ad634d NoticeView: Round corners like a Choice, pad the contents, fill the width
RenderNotice and MeasureNotice take padding (added inside the background)
and the corners to round. The drop shadow moves out of RenderNotice to the
floating OSD notices, since views don't have one. Without layout params, a
NoticeView is FILL_PARENT wide like a Choice.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 12:17:31 +01:00
Henrik RydgårdandClaude Opus 5.5 fd17b7725d Add a "firmware" start screen, for testing the firmware screen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 12:17:31 +01:00
Henrik Rydgård 26ead02a59 Merge pull request #22812 from hrydgard/textdrawer-measure-style
TextDrawer: Measure in a given style without switching fonts
2026-10-27 12:17:10 +01:00
Henrik RydgårdandClaude Opus 5.5 4c7dd44351 TextDrawer: Remove the current font and scale
Drawing now takes the style and scale too, like measuring, so the text
drawers have no font state left. UIContext keeps its current style and
passes it, and fills it in from the theme if nothing has set one yet.
PPGe passes its one font.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 11:54:10 +01:00
Henrik RydgårdandClaude Opus 5.5 dc1e9e50fc TextDrawer: Measure in a given style without switching fonts
Measuring took the current font and scale, so UIContext switched to the
style being measured and back. On first draw the font to switch back to
could be an empty one, which the UWP drawer asserts on.

MeasureString and MeasureStringRect now take the style and scale, and the
backends' MeasureStringInternal measures in the style it's given.
SetOrCreateFont, which sets the font drawing uses, is shared, and the
backends only implement EnsureFont, which creates a font if needed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 11:45:04 +01:00
Henrik RydgårdandClaude Opus 5.5 561badca05 sceAudio: Check sceAudioInput's arguments and routing modes like the PSP
pspautotests audio/sceaudio/input and audio/sceaudio/routing.

- sceAudioInput fails until sceAudioInputInit, then checks that the
  sample count is a nonzero multiple of 64 before checking the rate
  (11025, 22050 or 44100 only). A rate of 0 now gets the PSP's error
  instead of the USB mic's. Init takes about 3ms.
- A blocking mic input woke with the byte count rather than the sample
  count that the non-blocking call returns.
- The routing functions are exported by both sceAudio and
  sceAudioRouting, and the latter had its own copy that ignored the
  stored modes. Both now share the one in sceAudio, with the ranges
  checked. SetVolumeMode returns 0, not the previous mode, and both
  modes start at 0.

sceAudio's savestate section goes to version 5 for the input init flag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 10:56:46 +01:00
Henrik RydgårdandClaude Opus 5.5 3880999ada Misc HLE: Fix heap leak, USB waits, RNG indices and small races
- sceHeapDeleteHeap never freed the heap's memory. Allocation failure
  returned -1 rather than a null pointer, and a near-4GB size wrapped.
- The USB wait timeout resumed threads that were no longer waiting on
  USB, and UsbUpdateState resumed them too, and never rescheduled.
- The Mersenne Twister drew from mt_[index_] with the index taken from
  guest memory. It's now taken modulo the state size. sceSfmt19937
  checks its index, and that fill arrays are at least a state long,
  which the library writes regardless of the length it's given.
- sceCccEncodeUTF16's surrogate test also caught U+F800 - U+FFFF, which
  includes the fullwidth forms.
- sceAudioRoutingSetVolumeMode stored the routing mode.
- A sample rate of 0 to sceAudioInput or the camera mic divided by zero,
  and a huge sample count sized a host buffer. sceP3daBridgeCore's sizes
  could wrap. sceRtc's tz offset could overflow tm_min.
- Camera shutdown freed the frame buffer and config without the lock
  the capture thread uses. GPS data is set from the platform's location
  thread, so it's now locked too, and the satellite index is bounded.
- A loop in the sys event handler list hung the unregister.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-27 10:39:45 +01:00
Henrik RydgårdandClaude Opus 5.5 0b30638e65 HLE: Fix SAS thread wakeup, SAS raw output size, ME and syscon bounds
- The SAS thread waited without checking the state first, so a mix
  queued before it got to the wait was missed, and the next drain hung.
  The state is now atomic too.
- SAS raw output mode writes four planes, twice the size it asked for.
- DMACplus colour conversion with a huge stride overflowed its size
  math. The syscon serial data index wasn't bounded on reads, writes or
  load.
- Replace_memcpy_swizzled copies whole 16x8 blocks, more than the
  pitch * h it asked for. The God Eater depth hook tested the color
  buffer twice instead of the depth buffer, and its size could wrap.
- GranularMixer used 1/0 before the first FPS sample, and read the
  granule being written next when the queue was empty.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-27 10:38:32 +01:00
Henrik Rydgård 57161a245e Merge pull request #22803 from hrydgard/more-ui-work
DisplayLayoutScreen layout tweaks, fix sceImpose "HOME" screen issues
2026-10-27 09:53:02 +01:00
Henrik Rydgård 81a7c7e78c Code cleanup, logging improvement 2026-10-27 09:32:52 +01:00
Henrik Rydgård 0142876cef Remove some slop from the sceImpose Home screen (confusing touch input) 2026-10-27 09:23:57 +01:00
Henrik Rydgård 83d73bb88e Merge pull request #22804 from hrydgard/fix-net-logic
Net Claude code review: Fix use-after-pop, the resolver after loads, inet sockaddr/poll
2026-10-27 09:15:05 +01:00
Henrik Rydgård ebf0d99d36 Merge pull request #22809 from hrydgard/translations-fill-in
Fill in untranslated UI strings in 40 languages, fix wrong-language strings
2026-10-27 09:13:11 +01:00
Henrik RydgårdandClaude Opus 5.5 455209b43e Net: Fix use-after-pop, the resolver after loads, inet sockaddr/poll
- The apctl, NpAuth and NpMatching2 event loops kept references to the
  front of their deque after popping it, so callbacks could get the
  next event's arguments. NpMatching2 also dereferenced its optional
  opt param when it was null.
- The resolver was left stopped after any savestate load or reboot,
  which broke Outrun 2006 (it relies on it starting out running).
- Getpeername/Getsockname with a namelen under 2 copied a negative size.
  They now write the PSP's 16-byte sockaddr truncated to namelen, with
  sa_len 16, as pspautotests net/inet/poll shows on hardware.
- Poll handed an fd that isn't open (-1) to FD_SET. It now reports
  POLLNVAL for it and counts it, as on hardware (net/inet/poll).
  Setsockopt read past a local u32 for larger options, and passed a
  negative optlen to the host. A zero cmsg_len looped forever.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:43:28 +01:00
Henrik RydgårdandClaude Opus 5.5 1b20f4685e Lang: Give the MMPX and xBRZ texture shaders their real names
en_US had the raw section names ("TexMMPX"), which also shadowed the shader's
own Name= fallback, so the UI showed those. Now they match the Spline36/NNEDI3
entries, in every language.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:36:15 +01:00
Henrik RydgårdandClaude Opus 5.5 1f8fef64f4 Lang: Fix mistranslated terms in lt-LT and he_IL, and a typo in ar_AE
lt-LT used "Status" for Portrait and for logging, he_IL called texture
filtering "texture encoding".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:35:28 +01:00
Henrik RydgårdandClaude Opus 5.5 bb6e0347d3 Lang: Name Skip GPU Readbacks in the readback warnings as each language translates it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:34:57 +01:00
Henrik RydgårdandClaude Opus 5.5 066c671439 Lang: Fix strings with words in the wrong script (ar, hr, lo, dr)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:34:01 +01:00
Henrik RydgårdandClaude Opus 5.5 d749f20a6d Lang: Replace Tajik/Russian/Uzbek strings in tg_PH with Tagalog
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:33:38 +01:00
Henrik RydgårdandClaude Opus 5.5 ddaafbb233 Lang: Fill in untranslated Brazilian Portuguese strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:30:21 +01:00
Henrik RydgårdandClaude Opus 5.5 812b81cb17 Lang: Fill in untranslated Japanese strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:30:20 +01:00
Henrik RydgårdandClaude Opus 5.5 c265f2e390 Lang: Fill in untranslated Azerbaijani strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:30:18 +01:00
Henrik RydgårdandClaude Opus 5.5 6662a09b8a Lang: Fill in untranslated Norwegian Bokmål strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:30:17 +01:00
Henrik RydgårdandClaude Opus 5.5 dbc3cc4fbc Lang: Fill in untranslated Polish strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:29:58 +01:00
Henrik RydgårdandClaude Opus 5.5 53427bd27d Lang: Fill in untranslated Turkish strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:29:57 +01:00
Henrik RydgårdandClaude Opus 5.5 7736d2d07d Lang: Fill in untranslated Malay strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:29:56 +01:00
Henrik RydgårdandClaude Opus 5.5 8ff7bb3714 Lang: Fill in untranslated Ukrainian strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:29:54 +01:00
Henrik RydgårdandClaude Opus 5.5 25ba8768c5 Lang: Fill in untranslated Traditional Chinese strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:29:20 +01:00
Henrik RydgårdandClaude Opus 5.5 d96bf9d32b Lang: Fill in untranslated Swedish strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:29:18 +01:00
Henrik RydgårdandClaude Opus 5.5 cc72459f3a Lang: Fill in untranslated Spanish strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:29:17 +01:00
Henrik RydgårdandClaude Opus 5.5 046e431bdd Lang: Fill in untranslated European Portuguese strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:29:16 +01:00
Henrik RydgårdandClaude Opus 5.5 7c81e7ff48 Lang: Fill in untranslated Korean strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:27:44 +01:00
Henrik RydgårdandClaude Opus 5.5 c72e2618bd Lang: Fill in untranslated Thai strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:27:42 +01:00
Henrik RydgårdandClaude Opus 5.5 c2cd4820f4 Lang: Fill in untranslated Simplified Chinese strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:27:41 +01:00
Henrik RydgårdandClaude Opus 5.5 e8ea35e631 Lang: Fill in untranslated Russian strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:27:40 +01:00
Henrik RydgårdandClaude Opus 5.5 297b1b0cf2 Lang: Fill in untranslated Norwegian Nynorsk strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:27:07 +01:00
Henrik RydgårdandClaude Opus 5.5 6903f55149 Lang: Fill in untranslated German strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:27:06 +01:00
Henrik RydgårdandClaude Opus 5.5 1d61a70c02 Lang: Fill in untranslated Italian strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:27:04 +01:00
Henrik RydgårdandClaude Opus 5.5 413a47f0d3 Lang: Fill in untranslated Indonesian strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:27:02 +01:00
Henrik RydgårdandClaude Opus 5.5 aa61d80746 Lang: Fill in untranslated French strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:27:01 +01:00
Henrik RydgårdandClaude Opus 5.5 fd180d5b97 Lang: Fill in untranslated Latin American Spanish strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:27:00 +01:00
Henrik RydgårdandClaude Opus 5.5 8ae00e7585 Lang: Fill in untranslated Hungarian strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:26:58 +01:00
Henrik RydgårdandClaude Opus 5.5 85f5c2f6e0 Lang: Fill in untranslated Arabic strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:26:57 +01:00
Henrik RydgårdandClaude Opus 5.5 46735bf2d5 Lang: Fill in untranslated Finnish strings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:26:55 +01:00