From d559847e0f2489b31d2fc0fe5464718b4b735bf1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com>
Date: Sat, 22 Jul 2023 22:14:03 +0100
Subject: [PATCH] chore: made ch3 length timer a 256 value

---
 src/apu.rs | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/apu.rs b/src/apu.rs
index 6a9b9a0a..efa48fcd 100644
--- a/src/apu.rs
+++ b/src/apu.rs
@@ -57,7 +57,7 @@ pub struct Apu {
     ch3_position: u8,
     ch3_output: u8,
     ch3_dac: bool,
-    ch3_length_timer: u8,
+    ch3_length_timer: u16,
     ch3_output_level: u8,
     ch3_wave_length: u16,
     ch3_length_enabled: bool,
@@ -551,7 +551,7 @@ impl Apu {
             }
             // 0xFF1B — NR31: Channel 3 length timer
             0xff1b => {
-                self.ch3_length_timer = value;
+                self.ch3_length_timer = value as u16;
             }
             // 0xFF1C — NR32: Channel 3 output level
             0xff1c => {
@@ -572,7 +572,7 @@ impl Apu {
                 if trigger {
                     self.trigger_ch3();
                 }
-                if length_trigger && self.ch3_length_timer >= 64 {
+                if length_trigger && self.ch3_length_timer >= 256 {
                     self.ch3_enabled = false;
                 }
             }
@@ -770,7 +770,7 @@ impl Apu {
                     return;
                 }
                 self.ch3_length_timer = self.ch3_length_timer.saturating_add(1);
-                if self.ch3_length_timer >= 64 {
+                if self.ch3_length_timer >= 256 {
                     self.ch3_enabled = false;
                     self.ch3_length_timer = 0;
                 }
-- 
GitLab