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