From b677a422d3d434a45e9dcdc189c40f8224cc8dc8 Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Fri, 10 May 2024 15:16:34 -0400 Subject: fig-emulator-gb: Profiling the PPU --- fig-emulator-gb/src/Fig/Emulator/GB/CPU.hs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'fig-emulator-gb/src/Fig/Emulator/GB/CPU.hs') diff --git a/fig-emulator-gb/src/Fig/Emulator/GB/CPU.hs b/fig-emulator-gb/src/Fig/Emulator/GB/CPU.hs index 9a6f557..651b27b 100644 --- a/fig-emulator-gb/src/Fig/Emulator/GB/CPU.hs +++ b/fig-emulator-gb/src/Fig/Emulator/GB/CPU.hs @@ -101,7 +101,8 @@ newtype Emulating a = Emulating { runEmulating :: StateT CPU IO a } -- rreg8 = pack . Pr.printf "%02X" -- rreg16 = pack . Pr.printf "%04X" -updateComps :: Int -> Emulating () +-- | Inform all components that the given number of t-cycles have passed +updateComps :: Word16 -> Emulating () updateComps t = do b <- use bus b' <- liftIO $ Bus.update t b @@ -109,12 +110,11 @@ updateComps t = do decode :: Emulating Instruction decode = do - -- updateComps 4 b <- use bus pc <- use $ regs . regPC lastPC .= pc (ins, Addr a) <- liftIO $ readInstruction b $ Addr pc - -- lastIns .= ins + lastIns .= ins regs . regPC .= a pure ins @@ -126,7 +126,6 @@ cond CondC = use (regs . regFlagC) read8 :: Addr -> Emulating Word8 read8 a = do - -- updateComps 4 b <- use bus pc <- use lastPC ins <- use lastIns @@ -150,7 +149,6 @@ read16 a = do write8 :: Addr -> Word8 -> Emulating () write8 a v = do - -- updateComps 4 b <- use bus b' <- liftIO $ Bus.write b a v bus .= b' @@ -679,6 +677,7 @@ step ins = do CbSetB3R8 (B3 idx) r -> {-# SCC "CbSetB3R8" #-} do v <- r8 r setR8 r $ v .|. shiftL 0b1 idx + updateComps 4 where unimplemented :: Emulating () unimplemented = do -- cgit v1.2.3