104 Commits

Author SHA1 Message Date
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
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
19063d4288
Bus: Mirror BIOS area up to 4MB
Fixes bus error when using PS2 BIOS.
2024-07-19 15:51:25 +10:00
Stenzek
8ef73203b2
Bus: Ignore SPU byte writes to unaligned addresses 2024-05-31 21:00:55 +10:00
Stenzek
723af4de3a
Misc: Loading old save state versions is unlikely 2024-05-31 18:48:26 +10:00
Stenzek
1565a2667d
Misc: More format string fixes 2024-05-25 15:48:31 +10:00
Stenzek
4e922a34a7
Log: Simplify macros 2024-05-24 02:08:14 +10:00
Stenzek
792717e03e
Misc: Get rid of format string for result logging 2024-05-24 00:30:06 +10:00
Stenzek
b6d019db66
Misc: Replace log printf calls with fmt 2024-05-24 00:29:49 +10:00
Stenzek
fa104acdd1
Misc: Purge unused code and report startup error to host 2024-05-05 22:29:26 +10:00
Stenzek
ca3cfbaa99
Misc: Pass string_view by value 2024-05-05 22:28:29 +10:00
Stenzek
d1a1cab9a9
Bus: Direct KUSEG+KSEG0 isolated cache reads to ICache 2024-03-13 14:14:40 +10:00
Stenzek
c1381cfda6
System: Gracefully handle memory allocaion failure 2024-02-25 20:30:41 +10:00
Stenzek
3dfc3bd2ba
CPU: Fix incorrect scratchpad masking 2023-11-06 18:09:27 +10:00
Stenzek
23dff0a9b6
Bus: Properly set unmapped pages to NULL for LUT fastmem 2023-10-21 13:49:35 +10:00
Stenzek
c179473c2b
Bus: Allow LUT fastmem on mirrors 2023-10-18 00:49:01 +10:00
Stenzek
9d40164f84
CPU/Recompiler: Offset LUT fastmem pointers 2023-10-18 00:49:01 +10:00
Stenzek
a062b00c1a
Bus: Protect main RAM buffer
Get rid of write-time checks.
2023-10-18 00:49:01 +10:00
Stenzek
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
Stenzek
6fd7eda68f Misc: Fix build on Debian Bullseye 2023-10-02 23:50:56 +10:00
Stenzek
a96111eaeb Misc: Swap make_array() for size deduction 2023-10-02 13:33:33 +10:00
Stenzek
56fc207af6 CPU: Use lookup tables for memory access 2023-10-01 20:48:02 +10:00
Stenzek
dd204d116e CPU: Warning fix 2023-10-01 13:20:14 +10:00
Stenzek
2171fd9a6f Bus: Fix RAM mirrors with LUT fastmem 2023-09-30 23:14:06 +10:00
Stenzek
8822698eaf Bus: Fix running multiple DuckStation instances 2023-09-30 21:49:30 +10:00
Stenzek
ac0601f408 Common: Drop String, add SmallString 2023-09-23 14:14:52 +10:00
Stenzek
3c68543491 Bus: 16KB page compatibility for mmap fastmem 2023-09-23 14:14:52 +10:00
Stenzek
c25c7070b6 Bus: Make variable prefixes consistent 2023-09-20 21:38:38 +10:00
Stenzek
68b59ee748 CMake: Swap USE_ and WITH_ for ENABLE_
Consistency.
2023-09-17 12:36:52 +10:00
Stenzek
199c53f3af BIOS: Replace TTY patch with syscall hook 2023-08-30 00:44:01 +10:00
Stenzek
5b980dafa5 System: Refactor main loop
Reduces JIT exits.
Improves runahead performance.
2023-08-16 01:13:00 +10:00
Stenzek
84e5fbe0c6 CPU: HLE implementation of PCDrv (host file access) 2023-04-29 20:45:39 +10:00
Stenzek
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
Stenzek
1fcf16fc81 System: Store BIOS image info/hash after loading 2023-03-16 19:22:54 +10:00
Connor McLaughlin
3e16746e85 Pad: Convert to namespace 2023-01-11 19:15:59 +10:00
Connor McLaughlin
835834f8f4 SIO: Convert to namespace 2023-01-11 19:15:59 +10:00
Connor McLaughlin
0683b9fa0e InterruptController: Convert to namespace 2023-01-11 19:15:59 +10:00
Connor McLaughlin
db364d0e95 Timers: Convert to namespace 2023-01-11 19:15:59 +10:00
Connor McLaughlin
3acf569d67 DMA: Convert to namespace 2023-01-11 19:15:59 +10:00
Connor McLaughlin
dd73811628 CDROM: Convert to namespace 2023-01-09 22:20:27 +10:00
Connor McLaughlin
1c8ef86f12 MDEC: Convert to namespace 2022-12-20 21:18:30 +10:00
Connor McLaughlin
8c7a192128 Misc: Add copyright/license statement to applicable files
Should've did this in the beginning.
2022-12-04 21:03:49 +10:00
Connor McLaughlin
5b2c18e27c SPU: Convert to namespace 2022-08-15 17:22:23 +10:00
Silent
c98e0bd096
Bus: Added RAM, RAM_SIZE and RAM_MASK exports for external debugger usage
Useful e.g. for Cheat Engine.
2022-07-31 10:43:26 +02:00
Connor McLaughlin
b42b5501f6 UI: Massive revamp, new features and improvements 2022-07-22 21:19:54 +10:00
Connor McLaughlin
b7fbde31a7 Move utility classes from common to own static lib 2022-07-21 17:29:58 +10:00
Silent
270899dbdb
Make DoSafeMemoryAccess return true properly for RAM, BIOS, dcache writes
Fixes broken cheats when writing to unaligned addresses,
maybe also achievements.
2021-09-24 10:07:04 +02:00
Connor McLaughlin
f7f121f036 Bus: Handle unaligned accesses in safe memory routines 2021-09-15 12:24:33 +10:00
Connor McLaughlin
8dcd68b0a8 CPU: Make Safe{Read,Write}Memory{Byte,Halfword,Word} truely safe 2021-09-10 15:53:14 +10:00