Stenzek
440e08cf3e
Qt: Fix crash opening game compatibility report
2024-07-27 01:31:22 +10:00
Stenzek
7a3a72ec3d
GPU: Add display rotation option
2024-07-26 23:09:33 +10:00
Stenzek
0b5287f199
Bus: Implement RAM_SIZE register
...
Fixes Rock-Climbing - Mitouhou e no Chousen - Alps Hen (Japan) crashing
on boot. Silly game does a 512 word DMA from CDROM to 0x001FFF04, with the
mapped memory size set to 4MB, expecting the DMA to trigger a bus error,
because if it doesn't, then your kernel memory goes bye bye.
A bunch of other games do set the upper 4MB to be unmapped, but this
change appears to have no effect on them. As expected, they're probably
doing the correct thing.
2024-07-24 00:14:17 +10:00
Stenzek
dce1221021
Bus: Log when RAM_SIZE changes
2024-07-23 23:00:44 +10:00
Stenzek
68575d15a4
CDROM: Shift instead of divide in ZigZagInterpolate
2024-07-23 22:10:04 +10:00
Stenzek
5ec9c8a397
CDROM: Fix handling of 8-bit ADPCM and decoder overruns
...
Fixes pops in menu music in Simple 1500 Series Vol. 92 - The Tozan
RPG - Ginrei no Hasha.
I haven't seen anything that _properly_ uses 8-bit ADPCM yet. The above
game does, but only in the inaudible portion of the start of the track.
2024-07-23 21:54:22 +10:00
Stenzek
861d4a5aa2
FullscreenUI: Reorder graphics settings to match Qt
2024-07-23 21:11:01 +10:00
Stenzek
0407f939fc
CPU: Fix loading recompiler-saved states with interpreter
2024-07-23 21:11:01 +10:00
Stenzek
2a617c505a
GPU/HW: Support using ROV for accurate blending
2024-07-23 14:46:06 +10:00
Stenzek
e743c5d1b1
GPU/HW: Force update CLUT on save state
...
Fixes switching from hardware->software renderer in games that are
drawing without reloading the CLUT.
2024-07-22 21:25:14 +10:00
Stenzek
298f39a0c8
GPU/HW: Fully report shader/pipeline creation failures
2024-07-22 15:43:18 +10:00
Stenzek
deed0c9713
GameDatabase: Merge compatibility messages
2024-07-22 14:59:55 +10:00
Stenzek
b4136d2834
TimingEvents: Avoid heap allocation in SortEvents()
2024-07-21 16:15:40 +10:00
dreamsyntax
d9ada75d4f
Qt: Toggle for DualSense Player LED ( #3254 )
2024-07-21 16:07:36 +10:00
Stenzek
3172eac8df
PINE: Disable nagle buffering
2024-07-21 13:43:21 +10:00
Stenzek
f2e88ce0e5
PINE: Add MsgReadBytes/MsgWriteBytes
2024-07-21 13:34:10 +10:00
Stenzek
79644bfb2a
CPU: Add Safe{Read,Write}MemoryBytes
2024-07-21 13:33:54 +10:00
Stenzek
52f9e8556a
CDROM: Deactivate command attempt before queueing another
...
Reduces chances of ending up with unordered events.
2024-07-20 22:35:32 +10:00
Stenzek
efd8aab437
TimingEvents: Fix events ending up out-of-order
2024-07-20 22:35:32 +10:00
Stenzek
9b77a9aff7
TimingEvents: Move interrupt dispatch to end of loop
...
Saves another iteration.
2024-07-20 13:42:01 +10:00
Stenzek
4f7ddfaae6
TimingEvents: Remove pointer indirection
...
Probably should move this to one big array for locality.
2024-07-19 22:56:41 +10:00
Stenzek
56dd9878e1
Misc: RISC-V build fixes
2024-07-19 22:25:57 +10:00
Stenzek
2e96931c32
CPU/CodeCache: Dynamically compute BIOS memory access timing
...
The timings can change if the game does so. Instead of forcing the
blocks to recompile, we can just manually multiply size * word_time.
Improves stability of Nightmare Creatures booting, and fixes corrupted
text in Formula Circus when using the cached interpreter.
2024-07-19 22:25:57 +10:00
Stenzek
d9a224ef6c
GameList: Fix bogus entries on disc change due to disc set
2024-07-19 15:51:25 +10:00
Stenzek
6a920b268e
CDROM: Handle BFRD clears inbetween DMA transfers
...
Fixes disc detection in Metal Gear Solid: Special Missions.
2024-07-19 15:51:25 +10:00
Stenzek
f0945ca3ca
BIOS: Refactor loading/hashing of images
...
Fixes identification of PS2 BIOSes. However, they are not (yet) fastboot
compatible.
2024-07-19 15:51:25 +10:00
Stenzek
19063d4288
Bus: Mirror BIOS area up to 4MB
...
Fixes bus error when using PS2 BIOS.
2024-07-19 15:51:25 +10:00
Stenzek
7217536fdd
MD5Digest: Span-ify
2024-07-19 15:51:25 +10:00
Stenzek
6176a21ff1
ProgressCallback: Eliminate redundancy and drop C format strings
2024-07-19 15:51:25 +10:00
Stenzek
567b86ce79
Host: Purge ReportFormattedDebuggerMessage()
2024-07-19 14:00:29 +10:00
Stenzek
92038da3d5
CDROM: Handle speed change while reading
...
Fixes level music in Croc 2 demo.
2024-07-18 00:31:19 +10:00
Stenzek
9a89ab3bab
GameDatabase: Add deinterlacing mode override
2024-07-17 20:57:36 +10:00
Stenzek
f1ca914512
CDROM: Further adjust IRQ delay
...
Fixes audio dropouts in Crime Crackers, Ogre Battle seems fine now as
well.
2024-07-17 20:57:36 +10:00
Stenzek
9392c19a70
CDROM: Handle audio sectors in 2X mode
...
Fixes menu background in 360 Three Sixty.
2024-07-17 20:57:35 +10:00
Stenzek
44b9d16d9f
CDROM: Defer set of autopause track
...
Pitball's menu music starts mid-second, and there's no pregap,
so the first couple of reports are for the previous track.
It doesn't enable autopause until receiving a couple, and it's
actually playing the track it wants.
2024-07-17 20:57:35 +10:00
Stenzek
fb747d6ded
CDROM: Drop setloc on double Play
...
And limit the locations position is updated while seeking.
Fixes menu music in Hot Wheels: Extreme Racing.
2024-07-17 20:57:35 +10:00
Stenzek
bc30569a6d
SPU: Reverb input should be muted when SPU muted
...
Fixes pause menu in Bubsy 3D, Tuning Car Battle Spec R.
2024-07-17 20:57:17 +10:00
Stenzek
fae6b7ae86
System: Fix double error on load/boot cancel
2024-07-14 21:32:10 +10:00
Stenzek
fee888758f
System: Purge unused RecreateSystem()
2024-07-14 21:30:52 +10:00
Stenzek
640ed4a2d3
CPU/Recompiler: Eliminate redundant speculative reg read
2024-07-14 21:26:17 +10:00
Stenzek
59a2309a83
GPU: Use half width vector types where appropriate
2024-07-14 21:25:48 +10:00
Stenzek
df979d4648
Build: Fix DiscordRPC not being included in Mac bundle
2024-07-14 21:25:26 +10:00
Stenzek
500fbe5ef1
Achievements: Fix potential uninitialized data read
2024-07-14 21:25:25 +10:00
Stenzek
8698298499
CPU/NewRec: Fix incorrect condition in GenerateCall()
2024-07-14 21:25:25 +10:00
Stenzek
a5a320720a
GPU/HW: Fix incorrect dirty rect union
...
Reduces GPU usage during screen waves effect in Um Jammer Lammy from
over 70% down to 3% on my 7900GRE at 9x.
2024-07-14 18:26:02 +10:00
Stenzek
fd0626aa6d
GameList: Re-extract memcard icon if deleted
...
But don't keep trying if the game doesn't have a save.
2024-07-14 18:26:02 +10:00
Stenzek
5da6c926d9
GameList: Always open icon cache with r+b on Linux
...
Fixes flock() error on startup.
2024-07-13 18:32:42 +10:00
Stenzek
2cfa535784
System: Fix certain GPU settings not applying until unpause
2024-07-13 17:52:42 +10:00
Stenzek
7c45ad3fed
GameList: Add dedicated gameicons directory
2024-07-11 17:17:25 +10:00
Stenzek
2ac2ad605e
CPU/Recompiler: Break blocks on invalid instructions
2024-07-11 17:17:25 +10:00
Stenzek
3b9c489787
CPU: Pass instruction query values by reference
2024-07-11 17:17:25 +10:00
Stenzek
226a8eac81
MemoryCardIconCache: Ignore shared cards
2024-07-10 21:47:02 +10:00
Stenzek
11f7bfc461
CPU/PGXP: Refactor add/sub for small speedup
2024-07-10 20:56:42 +10:00
Stenzek
e5c62b8baf
CPU/PGXP: Fix incorrect Y on invalid add/sub
2024-07-10 20:56:21 +10:00
Stenzek
5881133cf5
CPU/PGXP: Set valid on bitwise ops from lowprec
2024-07-10 19:10:56 +10:00
Stenzek
9be7a37416
GSVector: SIMD-ify YUVToRGB
...
Almost 10x speedup on the function alone, 15% in practice ingame.
2024-07-10 15:18:42 +10:00
Stenzek
8659c8cca6
Core: Add MemoryCardIconCache
2024-07-09 21:38:38 +10:00
Stenzek
de27e5de92
GPU: Add option to disable PGXP on 2D polygons
2024-07-09 20:37:58 +10:00
Stenzek
f0e2d1a9fa
CPU/PGXP: Rewrite SLTI/SLTIU handlers
...
Don't read uninitialized memory...
2024-07-09 20:14:08 +10:00
Stenzek
d922a43127
CPU/PGXP: Don't force valid input on slt/sltu
2024-07-09 19:45:44 +10:00
Stenzek
3b7844be5a
CPU/PGXP: Don't force valid inputs on mult/div
2024-07-09 19:21:47 +10:00
Stenzek
d831cb69a9
CPU/PGXP: Normalize variable names
2024-07-09 19:16:16 +10:00
Stenzek
5410a42fd7
CPU/PGXP: Explicitly handle addi rt, zero, nnnn
2024-07-09 19:07:17 +10:00
Stenzek
b6f7420018
CPU/PGXP: Don't force inputs to valid on add/sub
2024-07-08 17:18:27 +10:00
Stenzek
7f21226a99
GameDatabase: Warn if vertex cache is enabled but unnecessary
2024-07-07 14:29:29 +10:00
Stenzek
d63ae8718f
GPU: Always calculate draw rect
...
Stops postfx shaders that depend on the draw rect going into NaN
territory.
2024-07-07 12:46:09 +10:00
Nik Chizhov
a3d600d5c3
fix: moved vairable access
2024-07-07 12:45:49 +10:00
Nik Chizhov
5cdcdb565f
fix: string to c-string to string
2024-07-07 12:45:49 +10:00
PugsyMAME
d372609bdc
Add memory contents to "Addr=" string in debugger
...
Tweaks the format of the addr= string in the debugger/trace so that it includes the memory contents.
It will also take the 2nd character of the opcode and if it's b or h it will size it accordingly.
so
addr=800BC2D0
becomes
addr=800BC2D0[00000000] or addr=800BC2D0[0000] or addr=800BC2D0[00]
This change amongst other things will facilitate a widescreen cheat scanner, that will take a lot of the work away from making widescreen cheats.
2024-07-06 22:51:59 +10:00
Stenzek
ed5a99066f
GPU: Cull off-screen sprites/lines
...
And further optimizations to culling in general.
2024-07-06 22:13:46 +10:00
Stenzek
bc73dacea4
System: Use socket multiplier for sleeping when connected
...
Should significantly reduce PINE latency.
2024-07-06 21:56:30 +10:00
Stenzek
b06fceffa4
GDB/PINE: Fix listen socket leak on shutdown
2024-07-06 21:56:30 +10:00
Stenzek
9a70003b70
MSBuild: Silence MSVC warning C4324
2024-07-06 19:45:16 +10:00
Stenzek
23962fd07e
GTE: Pack local config in struct
2024-07-06 19:33:38 +10:00
Stenzek
b6a264b8b4
TimingEvents: Pack state in struct
2024-07-06 19:18:25 +10:00
Stenzek
a57101c1f0
Timers: Pack state in struct
2024-07-06 19:18:25 +10:00
Stenzek
f5cae1957b
MDEC: Pack state in struct
2024-07-06 19:18:25 +10:00
Stenzek
e1a4c7dfdd
DMA: Pack state in struct
2024-07-06 19:18:25 +10:00
Stenzek
536b48d706
SPU: Pack state in struct
2024-07-06 19:18:25 +10:00
Stenzek
77488db3dc
Misc: Align CPU state and SPU voices to cache lines
...
Fixes the ~12% performance regression from the texture replacement
namespace'ify commit. Apparently LTO was placing the CPU struct in the
middle of a cache line...
2024-07-06 18:49:37 +10:00
Stenzek
4c0250716d
GPU/HW: Ensure buffers are freed prior to recreating
2024-07-04 21:54:44 +10:00
Stenzek
c02bf0f662
CPU/NewRec/RV64: Compile fix
2024-07-04 21:40:19 +10:00
Stenzek
87f2995f3d
TextureReplacements: Namespace-ify
2024-07-04 15:52:32 +10:00
Stenzek
69c35c9fcd
Deps: Remove rapidjson from in-tree
2024-07-04 15:52:32 +10:00
Stenzek
f6d3a7987d
System: Load discord-rpc dynamically
2024-07-04 15:52:32 +10:00
Stenzek
00d2d862c2
Build: Use shared discord-rpc
2024-07-04 15:52:32 +10:00
Stenzek
4b61a3cbf3
Qt: Unrestrict resolution scale up to device limits
2024-07-04 13:25:27 +10:00
Stenzek
2bcb85d431
GPU/HW: Push all draws/writes through a common path
2024-07-03 15:44:12 +10:00
Stenzek
9ef7e8c5d0
GPU/HW: Use GSVector instead of Rectangle
2024-07-03 15:44:12 +10:00
Stenzek
ef152c47a6
GPU/HW: Interpolate native texture coordinates when upscaling
2024-07-03 15:44:12 +10:00
Stenzek
044d7a4797
GPU: Eliminate heap allocation on state load
2024-07-03 00:24:12 +10:00
Stenzek
f9bf2e8239
GPU: Use GSVector for SW scanout
2024-07-03 00:24:12 +10:00
Stenzek
0968610ba7
CDROM: Use GSVector
2024-07-03 00:24:12 +10:00
Stenzek
69471950f0
ImGuiOverlays: Use GSVector
2024-07-03 00:24:12 +10:00
Stenzek
b094c9cd87
MDEC: Vectorize IDCT
2024-07-03 00:24:12 +10:00
Stenzek
baab966b4e
System: Check for SSE4.1 in early hardware checks
2024-07-03 00:24:12 +10:00
Stenzek
173a61039c
System: Use cpuinfo for cache line size check
2024-07-03 00:24:12 +10:00
Stenzek
aabe39d0f8
GPU: Allow DMAs in Mode 1
...
Exact behaviour is still unknown, but it works on console (Nicolas
Noble's torus demo).
2024-07-02 16:56:11 +10:00
Stenzek
e1f90e6baf
MDEC: Store scale/IDCT matrix transposed
2024-07-02 16:56:10 +10:00
Stenzek
6d6659c85e
MDEC: Increase intermediate IDCT precision
2024-07-02 16:56:07 +10:00