From cb59dbbf941347c63a18196370cb1e9c390b8827 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com>
Date: Sun, 23 Jul 2023 11:38:36 +0100
Subject: [PATCH] chore: added APU automated testing

---
 frontends/sdl/README.md                       |   2 +-
 .../test/blargg/dmg_sound/01-registers.png    | Bin 0 -> 331 bytes
 .../res/test/blargg/dmg_sound/02-len ctr.png  | Bin 0 -> 365 bytes
 .../res/test/blargg/dmg_sound/03-trigger.png  | Bin 0 -> 378 bytes
 frontends/sdl/src/test.rs                     |  28 +++++++++++++++++-
 src/apu.rs                                    |   4 ---
 6 files changed, 28 insertions(+), 6 deletions(-)
 create mode 100644 frontends/sdl/res/test/blargg/dmg_sound/01-registers.png
 create mode 100644 frontends/sdl/res/test/blargg/dmg_sound/02-len ctr.png
 create mode 100644 frontends/sdl/res/test/blargg/dmg_sound/03-trigger.png

diff --git a/frontends/sdl/README.md b/frontends/sdl/README.md
index 262c2271..4e213ce2 100644
--- a/frontends/sdl/README.md
+++ b/frontends/sdl/README.md
@@ -79,7 +79,7 @@ cargo vcpkg -v build
 It's possible to run the emulator in headless mode using the `--headless` parameter:
 
 ```bash
-cargo run  -- --rom-path ../../res/roms/test/blargg/cpu/cpu_instrs.gb --cycles 100000000  --headless --device stdout --unlimited
+cargo run -- --rom-path ../../res/roms/test/blargg/cpu/cpu_instrs.gb --cycles 100000000 --headless --device stdout --unlimited
 ```
 
 ## Features
diff --git a/frontends/sdl/res/test/blargg/dmg_sound/01-registers.png b/frontends/sdl/res/test/blargg/dmg_sound/01-registers.png
new file mode 100644
index 0000000000000000000000000000000000000000..e442d3943aa3e93ec105d93411bcdb6ce6c14410
GIT binary patch
literal 331
zcmeAS@N?(olHy`uVBq!ia0vp^3xIe62asS`b<aMAfq_xT)5S5Q;?~<67x|hDcvvs|
z{%>z9A981bl;P!{1s)<ZFU##>TbWtEk5zy&P#|S+a_UU;ttb5(PwJ-F@%{-dh$>p%
z+c+ur$Hw>mPs--x+5A4A%4M*YJ&ilY{@C-6KP<|h3CSDXNZrKnE_?fY^L_tI9~7SL
z->LoV{K|7ZTZ3yW&10_J+N-tw<K3TsURhaaE{GR$fPw>;eJ|fOU&Q?`qIeZ^G`G&L
z`$aWRg}&c>^L=vl-OrLaZ#|El+E*d?A@tj~_0!V~uGZ^lXJ2TQ0{Za7`t98N)Iu6X
So?QL|3MEfhKbLh*2~7Y#^?i>3

literal 0
HcmV?d00001

diff --git a/frontends/sdl/res/test/blargg/dmg_sound/02-len ctr.png b/frontends/sdl/res/test/blargg/dmg_sound/02-len ctr.png
new file mode 100644
index 0000000000000000000000000000000000000000..d77ee13986dcda743b88b9bf68a3a8aa41e624a3
GIT binary patch
literal 365
zcmeAS@N?(olHy`uVBq!ia0vp^3xIe62asS`b<aMAfq~J))5S5Q;?~>i(R|Gc0t^TC
z{$KjiU)$rLyK>TG!%UM)CwA!UaH;ws*gzqe&Zw*ubn5w1%}0U<I=1|pdZ_t)$HfDx
zVZINnH(l)bP-HLl_Bx|-a2KEbfw-2>Uw_pfZu{~3qorv-Q~R?A<@~SvmNUMNSyimF
zJ-kCB$lQ%d_X@~C^+EjKPAxyi{_L2S;jH-^X6^pV_PB9l_=<mFC*tDyzcIYE%DE*V
z|KZHpgImng^Vr^<y_7dML-x$%Cj~BQZ>BsB@jJ^pt$M<WbDF%jf6SA5WHjq*-n(Zv
zclRZD&F#p2)1A+r=bC@$*Y*B{xlNag0}gU=aB%#1@t9RlOn;fDix(d#96eqAT-G@y
GGywqg(y8|V

literal 0
HcmV?d00001

diff --git a/frontends/sdl/res/test/blargg/dmg_sound/03-trigger.png b/frontends/sdl/res/test/blargg/dmg_sound/03-trigger.png
new file mode 100644
index 0000000000000000000000000000000000000000..d232a0ffe26ec58495d842914a42ac89a166c559
GIT binary patch
literal 378
zcmeAS@N?(olHy`uVBq!ia0vp^3xIe62asS`b<aMAfq~J{)5S5Q;?~<6xBHq51Q;&-
z{6BwQ>E^~QTSR?yQYSl$EUtZ#ST)=5)5CBECdxn^uf%%o|8|eonkR7@B)$Ko&{5&S
z^7y-`ZbtVDxf?g+7jslzQ#N3i2xVC;ko*1K_lwof1k4TB)JrpN_wb+BoU2~@ps?dN
zzj>l)x^?@j6C!U#v%cG<$oK5*KIF;7!NFl+<LQ=pZJ}-6t%bW!I!((AJs3MfW7^LL
zJN|F}cJhD)^A=B+buy2*=WQ)EIDhTT*#nzHZ>_l%E&j3o2D|;uYhogcK3<#?#jTS)
z+3)V`@ADM?D!vQNoc#J;wqVYxg=e1G&whHK{9^Qm|GmmLrc7P^d_jw-fPlb<i`V&A
XJr+J>_;c4!P@sCc`njxgN@xNA?HP~1

literal 0
HcmV?d00001

diff --git a/frontends/sdl/src/test.rs b/frontends/sdl/src/test.rs
index 12f082fa..63922a84 100644
--- a/frontends/sdl/src/test.rs
+++ b/frontends/sdl/src/test.rs
@@ -64,11 +64,37 @@ mod tests {
             Some(50000000),
             TestOptions::default(),
         );
-        compare_images(&result, "res/test/blargg/instr_timing/instr_timing.png");
         let image_result = compare_images(&result, "res/test/blargg/instr_timing/instr_timing.png");
         assert_eq!(image_result, true);
     }
 
+    #[test]
+    fn test_blargg_dmg_sound() {
+        let result: [u8; FRAME_BUFFER_SIZE] = run_image_test(
+            "../../res/roms/test/blargg/dmg_sound/01-registers.gb",
+            Some(50000000),
+            TestOptions::default(),
+        );
+        let image_result = compare_images(&result, "res/test/blargg/dmg_sound/01-registers.png");
+        assert_eq!(image_result, true);
+
+        let result: [u8; FRAME_BUFFER_SIZE] = run_image_test(
+            "../../res/roms/test/blargg/dmg_sound/02-len ctr.gb",
+            Some(50000000),
+            TestOptions::default(),
+        );
+        let image_result = compare_images(&result, "res/test/blargg/dmg_sound/02-len ctr.png");
+        assert_eq!(image_result, true);
+
+        let result: [u8; FRAME_BUFFER_SIZE] = run_image_test(
+            "../../res/roms/test/blargg/dmg_sound/03-trigger.gb",
+            Some(100000000),
+            TestOptions::default(),
+        );
+        let image_result = compare_images(&result, "res/test/blargg/dmg_sound/03-trigger.png");
+        assert_eq!(image_result, true);
+    }
+
     #[test]
     fn test_dmg_acid2() {
         let result: [u8; FRAME_BUFFER_SIZE] = run_image_test(
diff --git a/src/apu.rs b/src/apu.rs
index c64ff9b4..78cd133c 100644
--- a/src/apu.rs
+++ b/src/apu.rs
@@ -444,14 +444,10 @@ impl Apu {
             }
         };
 
-        println!("APU read: 0x{:04X} = 0x{:02X}", addr, value);
-
         value
     }
 
     pub fn write(&mut self, addr: u16, value: u8) {
-        println!("APU write: 0x{:04X} = 0x{:02X}", addr, value);
-
         // in case the sound is disabled then ignores writes
         // to any register aside from the sound on/off
         if !self.sound_enabled && addr != 0xff26 {
-- 
GitLab