Commit Graph

63 Commits

Author SHA1 Message Date
a6947fbc70 CDROM: Implement fast forward/rewind 2020-10-30 00:44:39 +10:00
27697d0508 System: Implement CPU overclocking [SAVEVERSION+]
Partial credit to @CookiePLMonster as well.
2020-09-30 23:48:34 +10:00
b6f871d2b9 JIT optimizations and refactoring (#675)
* CPU/Recompiler: Use rel32 call where possible for no-args

* JitCodeBuffer: Support using preallocated buffer

* CPU/Recompiler/AArch64: Use bl instead of blr for short branches

* CPU/CodeCache: Allocate recompiler buffer in program space

This means we don't need 64-bit moves for every call out of the
recompiler.

* GTE: Don't store as u16 and load as u32

* CPU/Recompiler: Add methods to emit global load/stores

* GTE: Convert class to namespace

* CPU/Recompiler: Call GTE functions directly

* Settings: Turn into a global variable

* GPU: Replace local pointers with global

* InterruptController: Turn into a global pointer

* System: Replace local pointers with global

* Timers: Turn into a global instance

* DMA: Turn into a global instance

* SPU: Turn into a global instance

* CDROM: Turn into a global instance

* MDEC: Turn into a global instance

* Pad: Turn into a global instance

* SIO: Turn into a global instance

* CDROM: Move audio FIFO to the heap

* CPU/Recompiler: Drop ASMFunctions

No longer needed since we have code in the same 4GB window.

* CPUCodeCache: Turn class into namespace

* Bus: Local pointer -> global pointers

* CPU: Turn class into namespace

* Bus: Turn into namespace

* GTE: Store registers in CPU state struct

Allows relative addressing on ARM.

* CPU/Recompiler: Align code storage to page size

* CPU/Recompiler: Fix relative branches on A64

* HostInterface: Local references to global

* System: Turn into a namespace, move events out

* Add guard pages

* Android: Fix build
2020-07-31 17:09:18 +10:00
8e1c0a4fe4 System: Support loading m3u playlists 2020-07-23 02:36:05 +10:00
f28ef01d24 CDROM: Move audio FIFO to CDROM class and skip sectors when unempty
Fixes cutscene audio in Nickelodeon Rugrats - Search for Reptar.
2020-07-22 00:05:52 +10:00
93528db388 System: Use existing CD media when loading state where possible 2020-07-22 00:02:37 +10:00
50a25b63b1 CDROM: Track seek position when resetting
Fixes Blasto hanging after starting game.
2020-07-11 20:35:36 +10:00
dcfb929de5 CDROM: Fix double-reads hitting incorrect sector again
Fixes Bedlem / Rise 2 without breaking Vigilante 8 - 2nd Offense.
2020-06-02 00:59:13 +10:00
a4f79de7f6 CDROM: Return error for incorrect parameter count 2020-05-30 21:59:03 +10:00
340640821e CDROM: Add delay when swapping discs
Fixes broken disc swap detection in Metal Gear Solid.
2020-05-20 02:26:07 +10:00
5d46556b7d CDROM: Update position while seeking for GetlocP
Fixes track selection in WipEout.
2020-05-20 01:52:54 +10:00
e1157bff65 CDROM: Don't delay CDDA report, only skip index 0
Fixes music in Advanced V.G.
2020-05-16 00:27:09 +10:00
d6f6154380 CDROM: Read last delivered sector when pausing and reading without seek
Fixes Adidas Pro Soccer, Bedlem, Rise 2.
2020-05-13 00:13:57 +10:00
d866bd9cb8 CDROM: Reset XA resampler state on read
Should get rid of pops when switching files.
2020-05-12 12:36:10 +10:00
5b389ae13d CDROM: Synthesize lead-out area and stop reading when reached 2020-05-08 10:51:49 +10:00
a4416d8cf5 CDROM: Add seek time when starting reading/playing without setloc 2020-04-25 14:16:20 +10:00
05e4e7d262 CDROM: Add timing for speed changes/adjust seek timing
This makes the BIOS take longer to load the executable off the disc,
giving the sound effects longer to fade out and reducing the overlap
with the game.
2020-04-11 00:40:44 +10:00
08567fedf4 CDROM: Fix crash when loading save state from different system 2020-04-08 13:08:27 +10:00
0c1547d9e3 CDROM: Don't use valid bit for last subq, read on reset
Fixes GetlocP failing after resetting the system, causing some FMVs to
break/games to get wedged.
2020-04-06 00:25:56 +10:00
45d7294c3c CDROM: Limit XA playback to first-identified file/channel
Fixes background music in initial menu of Tomb Raider III.
2020-04-05 01:39:43 +10:00
f6711cbafa CDROM: Pausing while seeking should be an error response
Confirmed by hardware test.
2020-03-31 22:28:55 +10:00
00c24c2501 CDROM: Adjust ACK timings to be closer to hardware test results
Fixes Shrek Treasure Hunt.
2020-03-31 22:28:48 +10:00
02f67a801e CDROM: Fix behavior of stat bit 5 according to hardware tests 2020-03-29 17:52:37 +10:00
deb2865606 CDROM: Preserve header valid bit on more commands
Fixes Goryuujin Electro hanging on boot.
2020-03-29 01:16:01 +10:00
0e0bd2852f CDROM: Trigger INT5 on shell open
This behaviour has been verified on console.

Fixes disc swap detection in "Arc the Lad III"
2020-03-29 01:15:04 +10:00
10197506c5 CDROM: Implement 8-sector buffering behavior 2020-03-29 01:13:25 +10:00
e076526898 CDROM: Rework sector buffering behavior
This has not been tested on hardware yet, but fixes a couple of games.
2020-03-12 15:33:07 +10:00
3effa1238f CDROM: Return correct SCEx string based on disc region
Fixes SCEI/SCEE displaying as SCEE in BIOS.
2020-03-12 13:51:53 +10:00
e98c753d3d CDROM: Delay the first CDDA report by one second
Needs hardware testing...
2020-03-09 00:01:28 +10:00
4eeaa38ccd CDROM: Don't persist seek error bit in secondary status
Fixes Viewpoint (#56).
2020-03-08 15:54:09 +10:00
c700913322 CDROM: Implement SetSession command 2020-03-07 15:10:19 +10:00
959a555274 CDROM: Implement asynchronous disc reading 2020-02-22 00:24:35 +09:00
1b9609ef61 Implement event-based scheduler instead of lock-step components 2020-01-24 16:23:39 +10:00
0a5f7fcd75 System: Update running game when media changes from save state 2020-01-24 14:50:48 +10:00
5d0a6f88ad CDROM: Header valid/playing should not be set on SeekL
Fixes Syphon Filter locking up on boot.
2019-11-23 19:13:50 +10:00
246c97ccb3 System: Scaffolding for multi-system/multi-bios 2019-11-16 20:50:59 +10:00
d6209937fb CDROM: Properly handle audio sectors in SeekL 2019-11-16 12:54:41 +10:00
8cfb8d7922 CDROM: Fix track skip behavior with track=0
Fixes Doom.
2019-11-13 16:33:51 +10:00
8e06f86db8 CDROM: Implement auto-pause at end of track 2019-11-12 20:40:37 +10:00
6f4cf7d5e3 System: Support changing BIOS path 2019-11-11 19:43:39 +10:00
5a84122862 CDROM: Implement CDDA report 2019-11-10 23:03:52 +10:00
ab90d287bb CDROM: Use Sub-Channel Q for GetLocP 2019-11-10 22:45:48 +10:00
68fe492130 CDROM: Use seek time formula from Mednafen 2019-11-10 15:01:18 +10:00
5dd4f6f65e CDROM: Implement ReadTOC command 2019-11-09 00:21:11 +10:00
5eea2f9ced CDROM: Fix interrupt enable register having no effect 2019-11-08 23:49:28 +10:00
a1ed2d1d77 CDROM: Implement motor on command 2019-10-28 17:25:04 +10:00
c15822d745 CDROM: Implement stop command 2019-10-28 17:19:29 +10:00
6bbf5b70bb CDROM: More refactoring, playing -> header valid bit changes 2019-10-27 19:55:49 +10:00
4181b8c6b5 CDROM: Fix XA sectors overwriting unfetched data sectors 2019-10-27 13:44:23 +10:00
62f6a5597e CDROM: Don't crash emulator when interrupts are missed 2019-10-26 22:34:05 +10:00