From 2441acd38b2a9ce529eec0239859278604b5245d Mon Sep 17 00:00:00 2001 From: beirich Date: Mon, 26 Nov 2012 02:15:21 +0000 Subject: [PATCH] PCE-CD: hook up client drive LED api --- BizHawk.Emulation/Consoles/PC Engine/PCEngine.cs | 6 ++++-- BizHawk.Emulation/Consoles/PC Engine/ScsiCDBus.cs | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/BizHawk.Emulation/Consoles/PC Engine/PCEngine.cs b/BizHawk.Emulation/Consoles/PC Engine/PCEngine.cs index 1d480c40e2..cdcbb57962 100644 --- a/BizHawk.Emulation/Consoles/PC Engine/PCEngine.cs +++ b/BizHawk.Emulation/Consoles/PC Engine/PCEngine.cs @@ -74,12 +74,13 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx { systemid = "PCECD"; CoreOutputComm = new CoreOutputComm(); + CoreOutputComm.CpuTraceAvailable = true; + CoreOutputComm.UsesDriveLed = true; Type = NecSystemType.TurboCD; this.disc = disc; Init(game, rom); // the default RomStatusDetails don't do anything with Disc - CoreOutputComm.RomStatusDetails = string.Format( - "{0}\r\nDisk partial hash:{1}", game.Name, disc.GetHash()); + CoreOutputComm.RomStatusDetails = string.Format("{0}\r\nDisk partial hash:{1}", game.Name, disc.GetHash()); } void Init(GameInfo game, byte[] rom) @@ -243,6 +244,7 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx public void FrameAdvance(bool render, bool rendersound) { lagged = true; + CoreOutputComm.DriveLED = false; Controller.UpdateControls(Frame++); PSG.BeginFrame(Cpu.TotalExecutedCycles); diff --git a/BizHawk.Emulation/Consoles/PC Engine/ScsiCDBus.cs b/BizHawk.Emulation/Consoles/PC Engine/ScsiCDBus.cs index bd7fdfa227..aa333e77fd 100644 --- a/BizHawk.Emulation/Consoles/PC Engine/ScsiCDBus.cs +++ b/BizHawk.Emulation/Consoles/PC Engine/ScsiCDBus.cs @@ -162,9 +162,12 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx ResetDevice(); return; } - + if (DataReadInProgress && pce.Cpu.TotalExecutedCycles > DataReadWaitTimer) { + if (SectorsLeftToRead > 0) + pce.CoreOutputComm.DriveLED = true; + if (DataIn.Count == 0) { // read in a sector and shove it in the queue