Commit Graph

260 Commits (d01343881035e0340c8af6129a4bc186db3b727f)

Author SHA1 Message Date
Connor McLaughlin a1edddc59d CDROM: Revamp/improve preload image procedure 3 years ago
Connor McLaughlin b42b5501f6 UI: Massive revamp, new features and improvements 3 years ago
Connor McLaughlin b7fbde31a7 Move utility classes from common to own static lib 3 years ago
Connor McLaughlin fd76f437b3 Core: Purge WITH_IMGUI define 4 years ago
Connor McLaughlin ec31690587 CDROM: Fix incorrect delay on setmode while shell opening 4 years ago
Connor McLaughlin 25f69e7f8c CDROM: Special case immediate GetlocP after play/read before int
Fixes CDDA in Mad Panic Coaster.
4 years ago
Connor McLaughlin a44e9d16fb CDROM: Fix second response event getting lost on state load 4 years ago
Connor McLaughlin 18241978ea CDROM: Cancel command second response when queuing new command
Fixes Wipeout corrupting parts of the TOC.
4 years ago
Connor McLaughlin c962e9899d CDROM: Reject invalid Setloc commands
Fixes delays in Simple 1500 Series Vol. 31 - The Sound Novel.
4 years ago
Connor McLaughlin a32ef4a963 CDROMAsyncReader: Support reading ahead more sectors 4 years ago
Connor McLaughlin 37e50c62f0 CDROM: Fix intermediate seek->read status transition 4 years ago
Connor McLaughlin 5488bf7128 CDROM: Ignore speed change for non-cued Play 4 years ago
Connor McLaughlin bc34a75e03 CDROM: Add missing include for <cmath> 4 years ago
Connor McLaughlin 67344070ea CDROM: Improve simulation of seek timing 4 years ago
Connor McLaughlin 2c19c7ce57 CDROM: Cancel speed changes if they're not complete 4 years ago
Connor McLaughlin b1776dea61 CDROM: Simulate position holding for GetlocL too 4 years ago
Connor McLaughlin 2548f75267 CDROM: Differentiate between logical and physical hold 4 years ago
Connor McLaughlin 16c02c8559 CDROM: Don't apply speed change delay when already changing 4 years ago
Connor McLaughlin f4da56efea CDROM: Simulate the time it takes to change speeds 4 years ago
Connor McLaughlin 38288e6b36 CDROM: Factor in implicit seeks when calculating time 4 years ago
Connor McLaughlin f2bfbabdcb CDROM: Don't reset full state on Reset command 4 years ago
Connor McLaughlin aa675163e2 CDROM: Fix second response event not being cleaned up 4 years ago
Connor McLaughlin 74013a0853 CDROM: Use physical position for seek time calculations 4 years ago
Connor McLaughlin 36bfc461f9 CDROM: Refactor start/stop/second response 4 years ago
Connor McLaughlin 9d36ce757d CDROM: Simulate motor spin-up time
Fixes disc changing in Tales of Destiny II.
4 years ago
Connor McLaughlin 95247b0b5e CDROM: Don't set motor on before calc read/play time 4 years ago
Connor McLaughlin 3cb01bf23d CDImage: Fix compilation on Linux 5 years ago
Connor McLaughlin 56c08254c9 CDImage: Fix incorrect index returned for track-relative 00:02:00
Fixes some voice lines being very briefly cut off in Tomb Raider.
5 years ago
Connor McLaughlin 98e4c181ca CDROM: Add seek speedup enhancement 5 years ago
Connor McLaughlin 0a50ca3f18 CDROM: Improve CDDA report logging 5 years ago
Connor McLaughlin e64f8cc2c5 CDROM: Jump to seek target on pause while seeking
Fixes music in No Fear Downhill Mountain Biking, but needs more hardware
tests to confirm the behavior here.
5 years ago
Connor McLaughlin 5af6424324 CDROM: More conservative handling of INT1-while-pending-INT3 case 5 years ago
Connor McLaughlin 62360d088a CDROM: Send IRQ1 for triple buffered sectors
Fixes hangs in loading in Eliminator and Colony Wars - Vengeance.
5 years ago
Connor McLaughlin 8df0496dc1 CDROM: Store last subq even when auto-pausing
Fixes track looping in Fighting Force PAL.
5 years ago
Connor McLaughlin 6a0bd7ee64 CDROM: Clear setloc pending on redundant read
Fixes palette corruption in Joshikousei no Houkago... Pukunpa.
5 years ago
Connor McLaughlin 2ac6f60bbb Rename cpu_detect.h to platform.h and add OS 5 years ago
Connor McLaughlin 85c5b99b7a CDROM: GetID should return error when no disc 5 years ago
Connor McLaughlin 50d712c3fe CDImage: Support sub-images, use subimages for m3u 5 years ago
Connor McLaughlin 25d4060bce CDROM: Hold position at end of track, not start of next 5 years ago
Connor McLaughlin 4441bb1a91 CDROM: Apply volume on output not sector read
Fixes audio starting too late in Mega Man Legends.
5 years ago
Connor McLaughlin ee190ef561 CDROM: Fix typo in ResetPhysicalPosition() 5 years ago
Connor McLaughlin 2c1999e622 CDROM: Simulate holding position for GetlocP
Fixes lockups in Tomb Raider.
5 years ago
Connor McLaughlin c6c67b7b27 ImGui: Remove close button from debug windows
They can be closed by unchecking the setting instead, and it stays in
sync with the config this way.
5 years ago
Connor McLaughlin b7752ff30b CDROM: Update position when pausing while seeking instead of erroring
This was causing freezes in FF7 - needs more research.
5 years ago
Connor McLaughlin 02948f988d CDROM: Return 0x00 on response FIFO overread
Fixes CyberSled hanging on boot.
5 years ago
Connor McLaughlin 19032750b4 CDROM: Don't treat no-region discs as audio CDs
Fixes some homebrew games not booting.
5 years ago
Connor McLaughlin 11992bde4e TimingEvents: Use function pointers instead of std::function 5 years ago
Connor McLaughlin 04a187afb2 CDROM: Fix read error/unlicensed flag getting set on all discs
Regression from 75aa52ab06.
5 years ago
Connor McLaughlin 75aa52ab06 CDROM: Fail reads immediately for audio/unlicensed CDs
Fixes first track being unavailable on audio CDs in Vib-Ribbon.
5 years ago
Connor McLaughlin 9294bf6be3 CDROM: Keep target location even after failed seeks 5 years ago
Connor McLaughlin 187de65f50 CDROM: Reset disc position to start after switching discs 5 years ago
Connor McLaughlin 5690aef057 CDROM: Send seek error when read+seeking to audio sector
Fixes hang in Vib-Ribbon when using an audio CD.
5 years ago
Connor McLaughlin f911e90e17 CDROM: Hopefully fix crash in debug window when reading lead-out 5 years ago
Connor McLaughlin f9ac25f2b8 CDROM: Actually fix playing tracks 10+ 5 years ago
Connor McLaughlin c04d6f9ef8 CDROM: Play command track should be BCD
Fixes tracks >= 10 in BIOS CD player, maybe games?
5 years ago
Connor McLaughlin b3edcc5841 CDROM: Don't reset audio decoder state on file/channel change
Star Wars Jedi Power Battles sends constant Setfilter commands, while
playing.
5 years ago
Connor McLaughlin 3890a539ee CDROM: Clear data FIFO on reset
Fixes Snatcher booting.
5 years ago
Connor McLaughlin e081ee4b8e CDROM: Return error to guest instead of panicing for unknown commands 5 years ago
Connor McLaughlin a6947fbc70 CDROM: Implement fast forward/rewind 5 years ago
Connor McLaughlin 0552da6be2 CDROM: Stub out VideoCD command 5 years ago
Connor McLaughlin 902024d225 CDROM: Implement volume peak in CDDA report
Fixes Kyuutenkai hanging at boot.
5 years ago
Connor McLaughlin 8ba93b36a0 CDROM: Add option to speed up double speed reads 5 years ago
Connor McLaughlin ca0bfc39a2 CDROM: Add a setting and hotkey to mute CD audio 5 years ago
Connor McLaughlin 27697d0508 System: Implement CPU overclocking [SAVEVERSION+]
Partial credit to @CookiePLMonster as well.
5 years ago
Connor McLaughlin b05d80ef5c CDROM: Don't choke on non-mode2 sectors
Fixes Formula One 99 circuit selection.
5 years ago
Connor McLaughlin db84bdb560 CDROM: Apply 4 sector penalty to ReadN..ReadN sequence
Fixes Worms Pinball.
5 years ago
Connor McLaughlin 3847be86b0 Fix a bunch of random warnings 5 years ago
Connor McLaughlin 6bbbb96d4b Move GameList to FrontendCommon
Reduces libretro core dependencies further.
5 years ago
Connor McLaughlin 13e3095801 Core: Don't link to imgui for libretro core 5 years ago
Connor McLaughlin 559dc23e4e CDROM: Set playing bit in status after starting
Fixes menu music in Army Men 3D.
5 years ago
Connor McLaughlin 6d75f42e12 CDROM: Update last subq even when auto-pausing
Fixes music looping in Fighting Force.
5 years ago
Connor McLaughlin 466e4099d4 CDROM: Fix handling of logical seeks to audio sectors
Fixes Wizard's Harmony.
5 years ago
Connor McLaughlin 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
5 years ago
Connor McLaughlin 5634e821c5 CDROM: Reset audio decoder state immediately after pause or seek
Fixes stuttering dialogue in Dino Crisis (control room at beginning of
game).
5 years ago
Connor McLaughlin 5a34a15bf2 CDROM: Include FIFO size in debug window 5 years ago
Connor McLaughlin 10cd00c8dd CDROM: Play audio when reading and mode.0 is set 5 years ago
Connor McLaughlin f28ef01d24 CDROM: Move audio FIFO to CDROM class and skip sectors when unempty
Fixes cutscene audio in Nickelodeon Rugrats - Search for Reptar.
5 years ago
Connor McLaughlin 93528db388 System: Use existing CD media when loading state where possible 5 years ago
Connor McLaughlin 6ed67468d2 CDROM: Prevent games which spam Reset from getting wedged 5 years ago
Connor McLaughlin dbce58e07d CDROM: Display paused position in debug window 5 years ago
Connor McLaughlin 50a25b63b1 CDROM: Track seek position when resetting
Fixes Blasto hanging after starting game.
5 years ago
Connor McLaughlin c5e8327e7a CDROM: Seek to LBA 0 when resetting
Fixes Love & Destroy.
5 years ago
Connor McLaughlin 71157b171e CDROM: Use partial seek position when re-seeking 5 years ago
Connor McLaughlin 0710e3b6d3 CDROM: Ignore sectors with channel number=255
Some games (Taxi 2 and Blues Blues) have junk audio sectors with a channel number of 255.
We need to skip them otherwise it ends up playing the incorrect file.

TODO: Verify with a hardware test.
5 years ago
Connor McLaughlin 737337a526 CDROM: Fix incorrect sector read after incomplete seek->read
Fixes crash in Disney's The Lion King - Simba's Mighty Adventure.
5 years ago
Connor McLaughlin 840a80670f CDROM: Reset XA resampler on file switch
Pure guess work, probably won't affect anything.
5 years ago
Connor McLaughlin dcfb929de5 CDROM: Fix double-reads hitting incorrect sector again
Fixes Bedlem / Rise 2 without breaking Vigilante 8 - 2nd Offense.
6 years ago
Connor McLaughlin 5e7fd5aa71 CDROM: Fix integer overflow in seek timing calculation 6 years ago
Connor McLaughlin 1947080d91 CDROM: GetlocL should return an error while seeking
Or more specifically, the coarse seek part. Verified with hardware
tests.
6 years ago
Connor McLaughlin f856a8ad65 CDROM: Ignore pending setloc after read/play
Fixes games which send a second Setloc after reading, e.g. Army Men -
Sarge's Heroes.
6 years ago
Connor McLaughlin 2d067bb101 CDROM: Fix warning log spam on command 6 years ago
Connor McLaughlin 0672cf4873 CDROM: Implement a heuristic for command cancelling
See note in source. Fixes loading times and slowed down audio in Voice
Idol Collection - Pool Bar Story.
6 years ago
Connor McLaughlin a4f79de7f6 CDROM: Return error for incorrect parameter count 6 years ago
Connor McLaughlin 07e8ab4446 CDROM: Increase seek delay by one sector
Fixes Resident Evil 2.
6 years ago
Connor McLaughlin 4e8da3cb41 CDROM: Replace sound map assert with error log
I am not aware of any games which use it yet, so have no way of testing
if the implementation is correct.
6 years ago
Connor McLaughlin 2dd7f48d97 CDROM: Don't skip pregap for CDDA
Fixes music looping in Treasure Gear.
6 years ago
Connor McLaughlin 2264849151 CDROM: Update position when double-seeking
Doesn't fix anything I'm aware of, but makes sense.
6 years ago
Connor McLaughlin 1494f2bc75 CDROM: Set m_current_lba to the sector being read
Fixes double-read commands returning incorrect sectors.

Fixes Vigilante 8 - 2nd Offense.
6 years ago
Connor McLaughlin 3c7229dfe2 CDROM: Add 3 sectors read time to seek time
Simulates the drive's inprecise coarse seek then reading subq to get to
the exact sector.

Fixes Waku Waku Derby.
6 years ago
Connor McLaughlin d41bf86eaa CDROM: Don't apply logical seek rules to subq-based seeks
Fixes Panekit - Infinitive Crafting Toy Case.
6 years ago