Commit Graph

12249 Commits (5fd366809053fe287291de7a39752c4d5d5b146b)
 

Author SHA1 Message Date
Stenzek 5fd3668090
Achievements: Don't double-free login callback on request failure
Callback always runs.
1 month ago
Stenzek 5ee1d25690
GameDB: Disable PGXP/WS in Vanark
Crashes in first mission otherwise.
1 month ago
Stenzek c130fc12c0
dep/fmt: Update to v12.2.0 1 month ago
Stenzek b2f9c8fba9
Misc: Fix deprecated implicit conversion of fstring->string_view 1 month ago
Stenzek 1f925f86e2
Misc: Add a couple of missing fmt/format.h includes 1 month ago
Stenzek 04f4f1ba2d
Achievements: Respond to RAIntegration reset request 1 month ago
Stenzek 9f9009d640
Achievements: Ensure callbacks run on core thread for RAIntegration
They seem to always be executing in a thread pool currently...
1 month ago
Stenzek 2c32612091
Qt: Simplify logout callback
Use QPointer<> to track widget lifetime.
1 month ago
Stenzek 232c9ad9fb
Achievements: Make password login asynchronous
Gets rid of the wait-for-all-requests which fails with RAIntegration.

Also cleaner, the less blocking the better.
1 month ago
Stenzek 8ec85e305b
Qt: Update machine translations 1 month ago
Stenzek d59fcfb9d5
ImGuiManager: Support rendering Hebrew text 1 month ago
Stenzek 89fb3ad338
DMA: Hardwire reverse direction for OTC
Prevent register writes from clearing the bit, which means a OTC at the
end of memory would trigger a DMA error even though the actual clear is
forced to be negative.

Fixes missing every-other-frame/flicker in Prism Land Story.
1 month ago
Stenzek 8a96948a8d
GPUDevice: Use same buffer sizes across backends
Hopefully avoid failed allocations in Metal.
2 months ago
Stenzek c8abcf4b25
GDBServer: Expose GTE registers 2 months ago
Stenzek 8c1a2022e4
GDBServer: Expose target memory map and registers
Ugh, XML.
2 months ago
Stenzek e2b78d4cab
Qt: Tie relative mouse state to the active window
Release mouse grab when we switch to another window, re-acquire it once
we get focus again.
2 months ago
Stenzek cf24957592
Qt: Implement mouse capture using CoreGraphics
Specifically CGAssociateMouseAndMouseCursorPosition().

Avoids the need for accessibility permissions for mouse capture.
2 months ago
Stenzek 2cf108618f
GDBServer: Fix unused capture warning 2 months ago
Stenzek 3bb39f4e33
ELFFile: Skip embedded PS-X EXE header segments
Ignore the metadata PT_LOAD segment emitted by PS1 linker scripts and
validate loadable segment ranges before invoking the loader callback.

Fixes kernel crash when loading.
2 months ago
Stenzek c7f282f184
Core: Use multiplexer to idle sleep for GDB server 2 months ago
Stenzek 30fa5b4c4e
Qt: Rename background controller poll to idle update
Been that for a while anyway.
2 months ago
Stenzek fa5e11116f
GDBServer: Use indexing instead of range-based for
Just in case the write fails and the client is deleted.
2 months ago
Stenzek 86360211ba
GDBServer: Report watchpoint stop details
Emit rwatch, watch, or awatch stop fields for the matching client and
preserve that complete stop reply for later '?' queries, while falling
back to a generic trap for unrelated breakpoints.
2 months ago
Stenzek b147ed63dc
CPU: Enumerate actions for callback breakpoints
Pass the actual breakpoint type to callbacks, let their return value
control whether the breakpoint is retained, and then follow the normal
breakpoint pause path. This makes callback-backed execute and memory
breakpoints observable without bypassing the instruction-completion
behavior used by watchpoints.
2 months ago
Stenzek e3bea19784
GDBServer: Expand watchpoint ranges
Interpret Z2/Z3/Z4 kind values as byte lengths and represent each
watched byte with an owned CPU breakpoint. Validate MIPS
execute-breakpoint kinds, reject zero, overflowing, or excessively
large watch ranges, and avoid invasive changes to the CPU
memory-access dispatcher.
2 months ago
Stenzek 71c88506ec
GDBServer: Track breakpoint ownership
Represent protocol breakpoint types with a scoped enum and track each
client's logical breakpoints separately from a shared reference-counted
CPU breakpoint registry. Disconnects now remove only breakpoints
created by GDB, preserve pre-existing UI breakpoints, and keep
breakpoints alive while another GDB client still references them.
2 months ago
Stenzek ac6d899191
GDBServer: Disable nagle buffering on connect
"It's always TCP_NODELAY. Every damn time. - Marc's Blog"
2 months ago
Stenzek 0a00cbc3ce
GDBServer: Send invalid instead of zero values for extra registers 2 months ago
Stenzek c2418520ef
GDBServer: Notify host when first/last client connects/disconnects
Enables higher frequency polling.
2 months ago
Stenzek fe32554cce
GDBServer: Restore run state after disconnect
Remember whether the system was running before the first debugger
client forced it to pause, and resume only after the final client
disconnects. This prevents a dropped connection or disabled server
from leaving an originally running system paused, while preserving a
pause that predated debugger attachment and avoiding premature resumes
with multiple clients.
2 months ago
Stenzek d176e31aa3
GDBServer: Support signal resume packets
Accept the remote protocol's C and S packet forms, including their
optional resume addresses, so GDB can continue or step after reporting
a signal. Validate the signal and address fields completely; signal
delivery itself is intentionally ignored because the emulated
bare-metal target has no inferior process signal mechanism.
2 months ago
Stenzek cba85882a6
GDBServer: Reject oversized incoming packets
Enforce the advertised PacketSize while scanning the receive buffer.
Close clients that exceed the framed packet limit so an unterminated
or oversized request cannot fill the fixed receive buffer and leave
the connection permanently stalled.
2 months ago
Stenzek 54d074fb6a
GDBServer: Retransmit rejected replies
Keep the most recently framed RSP reply for each client and resend it
when GDB returns a negative acknowledgement. Build acknowledgement and
reply frames separately so only the reply packet is retained for
protocol recovery.
2 months ago
Stenzek 60a4ec3639
GDBServer: Queue complete protocol packets
Expose BufferedStreamSocket's allow-smaller policy through Write while
preserving the existing default for other callers. GDB replies now
require enough queue space for the complete RSP packet and close the
connection instead of silently discarding an unwritten suffix.
2 months ago
Stenzek 8d7046a893
GDBServer: Bound remote packet sizes
Advertise a 16 KiB RSP PacketSize and cap memory reads so their
hex-encoded replies fit within it. This prevents small m packets from
requesting multi-gigabyte allocations and keeps generated replies
within the server's transport capacity.
2 months ago
Stenzek 7c279dc96b
GDBServer: Invalidate code after memory writes
Invalidate affected emulated instruction-cache lines and translated
RAM code pages after a successful M packet. This ensures debugger
patches and GDB's fallback software breakpoints execute the newly
written instructions instead of stale cached code.
2 months ago
Stenzek 4e0940500d
GDBServer: Apply register writes atomically
Decode and validate the complete G packet before mutating CPU state,
preserve the zero and read-only BadVaddr registers, and return the
protocol-defined OK response. Apply SR and CAUSE masks and side
effects, and rebuild the instruction pipeline only when PC changes.
2 months ago
Stenzek aea3746414
GDBServer: Validate complete packet fields
Require command payloads, numeric fields, breakpoint kinds, and
checksums to be consumed in full. This prevents valid command prefixes
and partial numeric conversions from accepting trailing garbage while
retaining the protocol-defined breakpoint packet layout.
2 months ago
Stenzek 3885778a2b
GDBServer: Reply to invalid command arguments
A checksum-valid packet must be acknowledged even when its command
arguments are malformed. Return an RSP error or unsupported reply from
the affected handlers instead of sending a negative transport ACK,
which caused GDB to retransmit the same valid packet indefinitely.
2 months ago
Stenzek 05166d1a79
GDBServer: Track the last stop signal
Record the signal reported by each client's most recent stop reply and
use it when handling the '?' query. Interrupt requests now report
SIGINT while single-step, breakpoint, and other system pauses continue
to report SIGTRAP.
2 months ago
Stenzek c7324e3333
GDBServer: Preserve unchanged resume state
Avoid calling SetPC when an address-qualified continue or single-step
names the CPU's current PC. The next instruction is already prefetched
at that address, and rebuilding the pipeline would incorrectly discard
pending load and branch-delay state.
2 months ago
Stenzek a36b75716a
GDBServer: Support single-step addresses
Honor the optional resume address carried by the remote protocol's
single-step packet. Validate the address and update the CPU through
SetPC before setting the single-step flag so the instruction pipeline
resumes from the requested location.
2 months ago
Stenzek 1a9379bd63
GDBServer: Support continue addresses
Route continue packets through the normal checksum-validated command
dispatcher and parse the optional resume address defined by the remote
protocol. Address-qualified continues now update the CPU through SetPC
before resuming instead of being treated as unsupported commands.
2 months ago
Stenzek f04e08b245
GDBServer: Fix stop reply acknowledgements
Acknowledge step and continue packets when they are received, then send
the eventual stop reply without another leading ACK. This avoids
emitting two acknowledgements for a single resume packet and prevents
external system resumes from producing stray protocol ACKs.
2 months ago
Stenzek d92fe3dacf
Data: Move all PromptFont glyphs to unallocated range
They just keep conflicting with the text/emoji fonts otherwise.

Also drop some unused glyphs.
2 months ago
Stenzek 0697597c5a
Controller: Make mandatory functions pure virtual 2 months ago
Stenzek f7797b57ea
Controller: Add 'Disable Simultaneous Opposing Cardinal Directions' option 2 months ago
Stenzek ee21478ad1
GPU/HW: Don't miss updating read texture for recursive draws
Fixes missing glow in Castlevania SOTN.
2 months ago
Stenzek 6f704d405b
FullscreenUI: Fix shared card name not disabling if unused 2 months ago
Stenzek 4431915b41
FullscreenUI: Expose multitap memory cards 2 months ago