Commit Graph

114 Commits

Author SHA1 Message Date
2e080d4998 Qt: Add edit function to debugger memory view 2024-09-06 22:48:50 +10:00
ab1c85790c CPU: Refactor execution mode switching
Fixes single step breaking in branch delay slots with recompiler.
Simplifies initialization.
Removes multiple sources of truth for fastmem.
2024-09-06 20:00:30 +10:00
7f4e5d55db Misc: Update copyright headers 2024-09-01 22:08:31 +10:00
707453b596 FileSystem: Swap vector for DynamicHeapArray
No point zeroing it out.
2024-08-25 22:13:18 +10:00
421bd23dc8 Bus: Add stub for SIO2 accesses
But only enable it when using a PS2 BIOS. I could put the check in the
handler registration, but realistically this is basically never going to
be called, so better to keep things simple.
2024-08-13 14:48:18 +10:00
00a58eb4e5 Bus: Fix sideloading EXEs without initial SP value 2024-08-11 23:50:37 +10:00
c3bf267936 System: Remove redundant remap 2024-08-04 21:03:39 +10:00
02fbfae6a0 System: Add advanced 'Export Shared Memory' option
Memory map is exported as duckstation_<pid>. Previously, this only
worked on Windows, now it is extended to Linux as well.
2024-08-04 20:28:07 +10:00
3a83c4265c Misc: Fix a bunch of code analysis warnings
Some of which were even actual errors.
2024-08-02 23:56:07 +10:00
6fe0c986fa System: Rewrite EXE override/loading
Relies on POST=7 as a kernel initialization indicator, instead of
patching the BIOS.

Fixes EXE loading with OpenBIOS and PS2 BIOS, and fast boot getting
baked into save states.
2024-07-28 19:05:56 +10:00
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
dce1221021 Bus: Log when RAM_SIZE changes 2024-07-23 23:00:44 +10:00
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
19063d4288 Bus: Mirror BIOS area up to 4MB
Fixes bus error when using PS2 BIOS.
2024-07-19 15:51:25 +10:00
8ef73203b2 Bus: Ignore SPU byte writes to unaligned addresses 2024-05-31 21:00:55 +10:00
723af4de3a Misc: Loading old save state versions is unlikely 2024-05-31 18:48:26 +10:00
1565a2667d Misc: More format string fixes 2024-05-25 15:48:31 +10:00
4e922a34a7 Log: Simplify macros 2024-05-24 02:08:14 +10:00
792717e03e Misc: Get rid of format string for result logging 2024-05-24 00:30:06 +10:00
b6d019db66 Misc: Replace log printf calls with fmt 2024-05-24 00:29:49 +10:00
fa104acdd1 Misc: Purge unused code and report startup error to host 2024-05-05 22:29:26 +10:00
ca3cfbaa99 Misc: Pass string_view by value 2024-05-05 22:28:29 +10:00
d1a1cab9a9 Bus: Direct KUSEG+KSEG0 isolated cache reads to ICache 2024-03-13 14:14:40 +10:00
c1381cfda6 System: Gracefully handle memory allocaion failure 2024-02-25 20:30:41 +10:00
3dfc3bd2ba CPU: Fix incorrect scratchpad masking 2023-11-06 18:09:27 +10:00
23dff0a9b6 Bus: Properly set unmapped pages to NULL for LUT fastmem 2023-10-21 13:49:35 +10:00
c179473c2b Bus: Allow LUT fastmem on mirrors 2023-10-18 00:49:01 +10:00
9d40164f84 CPU/Recompiler: Offset LUT fastmem pointers 2023-10-18 00:49:01 +10:00
a062b00c1a Bus: Protect main RAM buffer
Get rid of write-time checks.
2023-10-18 00:49:01 +10:00
7625d4769c Bus: Keep old behavior of memory being readable when Isc
Some games (e.g. Parasite Eve) write to cache control with Isc on.
Need some hardware tests here.
2023-10-06 22:57:54 +10:00
6fd7eda68f Misc: Fix build on Debian Bullseye 2023-10-02 23:50:56 +10:00
a96111eaeb Misc: Swap make_array() for size deduction 2023-10-02 13:33:33 +10:00
56fc207af6 CPU: Use lookup tables for memory access 2023-10-01 20:48:02 +10:00
dd204d116e CPU: Warning fix 2023-10-01 13:20:14 +10:00
2171fd9a6f Bus: Fix RAM mirrors with LUT fastmem 2023-09-30 23:14:06 +10:00
8822698eaf Bus: Fix running multiple DuckStation instances 2023-09-30 21:49:30 +10:00
ac0601f408 Common: Drop String, add SmallString 2023-09-23 14:14:52 +10:00
3c68543491 Bus: 16KB page compatibility for mmap fastmem 2023-09-23 14:14:52 +10:00
c25c7070b6 Bus: Make variable prefixes consistent 2023-09-20 21:38:38 +10:00
68b59ee748 CMake: Swap USE_ and WITH_ for ENABLE_
Consistency.
2023-09-17 12:36:52 +10:00
199c53f3af BIOS: Replace TTY patch with syscall hook 2023-08-30 00:44:01 +10:00
5b980dafa5 System: Refactor main loop
Reduces JIT exits.
Improves runahead performance.
2023-08-16 01:13:00 +10:00
84e5fbe0c6 CPU: HLE implementation of PCDrv (host file access) 2023-04-29 20:45:39 +10:00
33f5d9cb9c System: Remove BIOS from save state
Makes the states smaller, as well as not creating potential piracy
issues when sending across the wire.
2023-03-16 19:34:01 +10:00
1fcf16fc81 System: Store BIOS image info/hash after loading 2023-03-16 19:22:54 +10:00
3e16746e85 Pad: Convert to namespace 2023-01-11 19:15:59 +10:00
835834f8f4 SIO: Convert to namespace 2023-01-11 19:15:59 +10:00
0683b9fa0e InterruptController: Convert to namespace 2023-01-11 19:15:59 +10:00
db364d0e95 Timers: Convert to namespace 2023-01-11 19:15:59 +10:00
3acf569d67 DMA: Convert to namespace 2023-01-11 19:15:59 +10:00